1

Topic: New command available for ESXDOS

Eons ago, I started making my own video players, first for the DivIDE, then for the +3e system, and now with the ZX-Uno development almost finished, I've ported one of these players to it.

It's a video-only player (no sound, sorry), but it is device-independent. That is: you can use it with DivIDE and/or DivMMC. It uses the double screen buffer mode of the 128K, so you need one of these.

Asuming you have the ESXDOS SDK (which I won't post here), all you need is to assemble this source code with PASMO using binary output mode (not tap or tapbas) and you're done smile

The video format is explained as a comment at the beginning of the source code, but as this is in spanish, I will translate it into english:

ZXM Format:
---------------
VIDEO is composed of HEADER, followed by a sequence of one or more FRAMES
HEADER: 256 fixed block.
  Offsets 00h to 02h contains the letteres Z X M
  Offset 10h-11h contains the number of frame of current video (not used by this player)
  Offset 12h contains the number of 512 byte sectors used per frame, including padding. The value in this offset is 0Ch for a monochrome video data (0Ch = 12 sectors * 512 = 6144 bytes), and 0Eh for colour video data (0Eh = 14 * 512 = 7168 bytes)
  Rest of bytes in header have reserved meaning. Currently they are set to 0.

FRAMES: 
  For monochrome videos, a frame is just 6144 bytes of frame data in the same format as the ZX Spectrum screen memory. A pixel with value 0 is displayed as white. A pixel with value 1 is displayed as black
  For colour videos, a frame is composed by a small padding block of 256 bytes followed by 6912 bytes of frame data in the same format as the ZX Spectrum screen memory. The padding is to ensure each frame uses an integral number of sectors

You can test this command with two provided videos from the ZX-Uno repository

2

Re: New command available for ESXDOS

BTW: I tried to use the F_STAT syscall to get the file size of an opened file, but I get 0 in the file size field. Is F_STAT working? (I'm using 0.8.5)

3 (edited by ub880d 2015-01-25 21:17:24)

Re: New command available for ESXDOS

mcleod_ideafix wrote:

BTW: I tried to use the F_STAT syscall to get the file size of an opened file, but I get 0 in the file size field. Is F_STAT working? (I'm using 0.8.5)

yes, it should work in 085 as i used it in .stat command http://sindik.at/~ub880d/tmp/stat .

btw. do you mean F_STAT or F_FSTAT? F_STAT takes filename and not handle of opened file.