X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=doc%2Findex.html;h=6d320c68cea4da4b082a1fac86e2870168be04f3;hb=7ad7475c2abf891a92b457339aaa0c20c40634d1;hp=a3506129f284a2bd064d35391cf1b321809da395;hpb=791dce846c524feca7b344307597c1d1224ba1de;p=fifth.git diff --git a/doc/index.html b/doc/index.html index a350612..6d320c6 100644 --- a/doc/index.html +++ b/doc/index.html @@ -2,7 +2,7 @@
-Screenshots -
- --Read more about: -
++After downloading and unpacking the ZIP file you shoud get directory +tree similar to this: +
+ +
+[DOC] - Fifth documentation
+ [commands] - documentation on Fifth built-in commands
+ [modules] - documentation on additional commands, realized as loadable modules
+ [shots] - Fifth screenshots
+
+[imageFile] - files contained within 'disk.raw', just an extracted form.
+
+[source] - source files
+ [emulator] - emulator source
+ [util] - utilites
+
+disk.raw - Virtual disk file, has filesystem inside.
+emulator.com - main executable.
+
Core and high-level boot code is stored outside of the filesystem to allow easy access to it, at early booting time, when filesystem is not yet initialized.
IP | +instruction pointer | +
DSP | +data stack pointer | +
RSP | +return stack pointer | +
+Virtual CPU, commands (most of them are avaiable as ordinary commands +in programming lanquage): +
+ +
+
+code mnemonic description
+
+0 nop does notheing
+1 halt halt CPU ( return to DOS on emulator )
+
+2 kbd@ ( – c ) read scancode of pressed or released key.
+ Returns 0, if no data avaiable.
+3 num <dword> ( – n ) put immidiate number into datastack
+
+4 jmp <dword> jump to specified code
+5 call <dword>jump to specified code, save return address to
+ return stack.
+
+6 1+ ( n – n+1 )
+7 1- ( n – n-1 )
+
+8 dup ( n – n n ) duplicate top of data stack
+9 drop ( n – ) drop last element in data stack
+
+10 if <dword> ( n – ) jump to addr if top element was 0
+11 ret jump to code, specified in return stack.
+
+12 c@ ( addr – n ) read byte from memory at specified address
+13 c! ( n addr – ) store byte to specified memory
+
+14 push ( DSTK -> RSTK ) move top of datastack to returnstack
+15 pop ( RSTK -> DSTK ) move top of returnstack to datastack
+
+16 <unused>
+17 rot ( n1 n2 n3 – n2 n3 n1) rotate stack elements
+
+18 disk@ ( FromDiskSect ToMem – ) read 1KB from disk into RAM
+19 disk! ( FromMem ToDiskSect – ) write 1KB to disk
+
+20 @ ( addr – n ) read 32 bit number from memory
+21 ! ( n addr – ) store 32 bit number to memory
+
+22 over ( n1 n2 – n1 n2 n1 ) self explaining …
+23 swap ( n1 n2 – n2 n1 ) -,,-
+
+24 + ( n1 n2 – n1+n2 ) -,,-
+25 - ( n1 n2 – n1-n2 ) -,,-
+
+26 * ( n1 n2 – n1*n2 ) -,,-
+27 / ( n1 n2 – n1/n2 ) -,,-
+
+28 > ( n1 n2 – result ) is true when n1 > n2
+29 < ( n1 n2 – result ) is true when n1 < n2
+
+30 not ( n1 – not_n1 ) logical not
+31 i ( – n ) copies top of return stack into datastack
+
+32 cprt@ ( addr – n ) read one byte from hardware port
+33 cprt! ( n addr – ) store one byte to hardware port
+
+34 i2 ( – n ) like "i" but takes socond top stack element.
+35 i3 ( – n ) like "i" but takes third top stack element.
+
+36 shl ( n amount – n ) left bit shift
+37 shr ( n amount – n ) right bit shift
+
+38 or ( n1 n2 – n ) logical or
+39 xor ( n1 n2 – n ) exclusive logical or
+
+40 vidmap ( addr – ) copy memory from "addr" to video memory.
+
+41 mouse@ ( – x y button ) read mouse coordinates & buttons
+
+42 vidput ( addr1 addr2 x y – ) put image1 into image2, at
+ location x, y. Does clipping, so part of a big image
+ can be mapped into smaller one.
+
+43 cmove ( addr1 addr2 amount ) move memory from addr1 to addr2
+ if addr1 is greater than addr2 then count address
+ foward while moving, elseway starts from end and
+ counts backwards, so no data loss will occure on
+ overlapping.
+
+44 cfill ( c addr amount – ) fill memory starting at "addr"
+ with "c" bytes.
+
+45 tvidput ( addr1 addr2 x y – ) same as "vidput" but treats
+ color 255 in source image as transparent.
+
+46 depth ( – depth ) returns current depth of data stack.
+
+47 charput ( colorfg colorbg addrsrc addrdest x y )
+ draw character to image buffer located at "addrdest"
+ to specified x & y location. Decodes 8 bytes from
+ source to bits, used to draw character.
+
Fifth uses a different character table and codes than ASCII (still almost similar). I call it FSCII (Fifth Standard Code for Information @@ -732,9 +929,9 @@ numeric values. So typical nemric characters "0123…" is treated like ordinary letters.