home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / DISASM / REVAS25.LBR / MAN3.WZ / MAN3.WS
Text File  |  2000-06-30  |  9KB  |  264 lines

  1.  
  2.  
  3. .he          REVAS IMPLEMENTATION
  4.  
  5.  
  6.  
  7.                    Loading REVAS From Cassette
  8.  
  9.  
  10.     Thσá standarΣá REVA╙á cassettσ i≤á recordeΣá iεá straigh⌠ ì
  11. Tarbel∞á format«á I⌠ start≤ witΦ ß 2╡ seconΣ synπ streaφ tha⌠ yo⌡ ì
  12. caε usσ t∩ adjus⌠ you≥ interface« Followinτ thσ synπ streaφ i≤ 1╡ ì
  13. second≤ oµ carrier¼á anΣ theε thσ firs⌠ loaΣ module« Thσ cassettσ ì
  14. contain≤ │ loaΣ modules╗ thσ firs⌠ modulσ i≤ 1400╚ byte≤ lonτ anΣ ì
  15. i≤ nameΣ REVAS«á Iµ yo⌡ d∩ no⌠ havσ thσ CP═ system¼á thi≤ i≤á thσ ì
  16. onl∙á modulσ oµ interes⌠ t∩ you«á Thσ seconΣ modulσ i≤ 400╚ byte≤ ì
  17. long¼á anΣá i≤ nameΣ REVAS.COM«á Thσ thirΣ modulσ i≤ 1400╚á byte≤ ì
  18. lonτ anΣ i≤ nameΣ REVAS.LOD.
  19.  
  20.  
  21.     REVA╙ (thσ firs⌠ module⌐ ma∙ bσ loadeΣ anywherσ yo⌡á wisΦ ì
  22. iεá memor∙á anΣ executeΣ b∙ jumpinτ t∩ thσ loaΣá address«á Durinτ ì
  23. firs⌠á execution¼á thσá relocatinτá codσá i≤á destroyeΣá anΣá thσ ì
  24. resultinτ cop∙ oµ REVA╙ i≤ n∩ longe≥ relocatable«á Thus¼á t∩ makσ ì
  25. I/╧ patche≤ t∩ thσ jum≡ vectors¼á thσ modification≤ mus⌠ bσá madσ ì
  26. t∩á thσ cop∙ immediatel∙ afte≥ loading«á Thσ modifieΣ cop∙ caε bσ ì
  27. saveΣá (oε tape¼á fo≥ example¼á o≥ oε disc)╗á thσá relocatabilit∙ ì
  28. featurσ wil∞ stil∞ bσ valiΣ iµ yo⌡ havσ donσ n∩ morσ thaεá changσ ì
  29. thσá argument≤ oµ thσ I/╧ jum≡ vector«á Oncσ executed¼á REVA╙á i≤ ì
  30. exactl∙ 1000╚ byte≤ long.
  31.  
  32.     REVAS.CO═á anΣ REVAS.LO─ shoulΣ bσ loadeΣ int∩ memor∙ onσ ì
  33. a⌠á ß timσ anΣ saveΣ froφ locatioε 100╚ (thσ CP═ tpa⌐á usinτá CP═ ì
  34. commands« Morσ detail≤ arσ giveε iε thσ appendeΣ REVAS/CP═ guide.
  35.  
  36.     Beforσá loadinτá REVAS¼áá inser⌠á thσá cassettσá iεá you≥ ì
  37. recorde≥á witΦá thσá interfacσ disconnecteΣ s∩ yo⌡ caεá hea≥á thσ ì
  38. data«á Pla∙ thσ tapσ froφ thσ beginning« Thσ firs⌠ sounΣ yo⌡ hea≥ ì
  39. wil∞ bσ tha⌠ oµ thσ synπ stream¼á theε thσ carrie≥ tone« Notσ thσ ì
  40. place≤á wherσ thσ stead∙ tonσ oµ thσ carrie≥ i≤ replaceΣá b∙á thσ ì
  41. 'noiseº sounΣ oµ thσ recordeΣ data«á Thσ program≤ arσ recordeΣ iε ì
  42. thσ orde≥ listeΣ above¼ witΦ abou⌠ 1╡ second≤ betweeε copies« No≈ ì
  43. positioεá thσá tapσá ß fe≈ second≤ aheaΣ oµ thσá cop∙á yo⌡á want¼ ì
  44. reconnec⌠á thσá Tarbel∞á interface¼á anΣ cop∙á thσá prograφá int∩ ì
  45. memory.
  46. .PAè
  47.                     I/O Interface Description
  48.  
  49.  
  50.     REVA╙á i≤á designeΣ t∩ suppor⌠ onσ logica∞á inpu⌠á devicσ ì
  51. (thσ console⌐ anΣ │ logica∞ outpu⌠ device≤ (console¼á punch¼á anΣ ì
  52. printer).
  53.  
  54.     Thσá physica∞á device≤á referenceΣ b∙ thσá logica∞á name≤ ì
  55. (console¼á punch¼á anΣá printer⌐á arσ determineΣ b∙á you≥á drive≥ ì
  56. routine≤á anΣ thσ jum≡ vector≤ iε REVA╙ tha⌠ poin⌠ t∩á them«á Yo⌡ ì
  57. could¼ fo≥ example¼ havσ thσ puncΦ actuall∙ writσ oε ß disπ file.
  58.  
  59.     Al∞ I/╧ transaction≤ takσ placσ througΦ thσ jum≡á vector≤ ì
  60. locateΣá nea≥ thσ beginninτ oµ thσ REVA╙ program«á Thesσá vector≤ ì
  61. arσ showε iε thσ listinτ below«á Yo⌡ mus⌠ verif∙ tha⌠ thesσ jump≤ ì
  62. poin⌠á t∩ thσ prope≥ drive≥ routine≤ iε you≥ system«á Iµ yo⌡á arσ ì
  63. usinτá ß monito≥ froφ Technica∞ Desigε Lab≤ anΣ i⌠ i≤ locateΣá a⌠ ì
  64. 0F000H¼á theε n∩ change≤ wil∞ bσ necessary«á Otherwise¼á yo⌡ mus⌠ ì
  65. changσá thσ jum≡ argument≤ s∩ tha⌠ the∙ poin⌠ t∩ you≥ owεá drive≥ ì
  66. routines.
  67.  
  68.     Thσá drive≥ routine≤ mus⌠ observσ thσ followinτá registe≥ ì
  69. usagσ conventions:
  70.  
  71. ááááá     ┴ bytσ t∩ bσ outpu⌠ i≤ transmitteΣ iε thσ 'Cº ì
  72. áááááregiste≥á anΣ wil∞ bσ iε thσ 'Cº anΣ 'Aº register≤ ì
  73. áááááoεá returε froφ thσ outpu⌠ driver«á Aε inpu⌠á bytσ ì
  74. ááááá(froφá thσ console⌐ i≤ expecteΣ t∩ bσ iεá thσá 'Aº ì
  75. áááááregister«á Thσ conten⌠ oµ al∞ othe≥ register≤ mus⌠ ì
  76. ááááábσ returneΣ unchangeΣ durinτ aε I/╧ operation.
  77.  
  78.  
  79. .PAè
  80.                     REVAS Entry & I/O Vector
  81.  
  82.  
  83.  
  84.  
  85. ADDR  CODE     LABEL      OPR    OPA      COMMENTS
  86.  
  87.  
  88. 0020  31 XXXX      REVAS: LXI   SP,STACK ;LOCATE STACK
  89.  
  90.  
  91.     ;ADDR is the address relative to the load
  92.     ;address BEFORE execution. During execution,
  93.     ;all of this code is moved down 20H bytes,
  94.     ;so that the instruction labeled REVAS is
  95.     ;located at relative address 0000.
  96.     ;XXXX depends on Version number of REVAS
  97.  
  98.  
  99. 0023 C3 XXXX             JMP   START    ;GO TO WORK
  100. 0026 C3 12F0       CSTS: JMP   0F012H   ;CONSOLE STATUS
  101.  
  102.  
  103.     ;RETURNS WITH 0FFH IN ACCUMULATOR IF THERE IS
  104.     ;CONSOLE INPUT WAITING, 00 IF NOT.
  105.  
  106.  
  107. 0029 C3 03F0     CNSLIN: JMP   0F003H   ;CONSOLE INPUT
  108. 002C C3 09F0     CSLOUT: JMP   0F009H   ;CONSOLE OUTPUT
  109. 002F C3 0FF0      LPOUT: JMP   0F00FH   ;PRINTER OUTPUT
  110. 0032 C3 0CF0       POUT: JMP   0F00CH   ;PUNCH OUTPUT
  111. 0035 C3 1EF0       TRAP: JMP   0F01EH   ;RETURN TO MONITOR
  112.  
  113.  
  114.     ;RETURN FROM THE MONITOR WITH ALL REGISTERS
  115.     ;(INCLUDING THE STACK PTR AND THE PC)
  116.     ;RESTORED TO THEIR STATES AT THE TIME OF THE
  117.     ;JUMP TO TRAP WILL PERMIT CONTINUED EXECUTION
  118.     ;OF REVAS WHERE IT LEFT OFF. IF YOUR MONITOR
  119.     ;ROUTINES DO NOT INCLUDE THIS FACILITY, THEN
  120.     ;RETURN SHOULD BE THROUGH A JUMP TO REVAS
  121.     ;(I.E. JUMP TO RELATIVE LOCATION 0000)
  122.  
  123.  
  124. .PAè              Symbol Table Pointers after execution
  125.  
  126.  
  127. REL ADDR    CONTENT DESCRIPTION
  128.  
  129.  
  130. 0FF5        TFLAG: 0=EMPTY TABLE; 1=NOT EMPTY
  131. 0FF6        A1: ADDR OF FIRST ENTRY OF INDEX TABLE
  132. 0FF8        A3: ADDR OF LAST ENTRY OF INDEX TABLE
  133. 0FFA        A4: ADDR OF FIRST ENTRY IN LABEL TABLE
  134. 0FFC        A2: POINTER TO NEXT AVAILABLE LOCATION
  135.         FOR LABEL ENTRY (RELATIVE TO FIRST ENTRY)
  136. 0FFE        A5: POINTER TO LAST LOCATION IN THE
  137.         LABEL TABLE RELATIVE TO THE FIRST ENTRY
  138. 1000        DEFAULT LOCATION OF INDEX TABLE (THIS ADDR
  139.         WOULD BE IN A1: ABOVE)
  140.  
  141.  
  142.                  Patch Locations after execution
  143.  
  144.  
  145. REL ADDR    CODE        REMARKS
  146.  
  147.  
  148. 0850        3B        Comment Field Delimiter
  149. 0908        AE        Right Justify Label Field
  150.                 EE=Left Justify Lbl Field
  151. 091C        3A        Label Terminator
  152. 0EA1        2E 42 59 54 C5    '.BYTE' Pseudo-Op For Tables
  153. 0EA6        2E 45 4E C4    '.END' Pseudo-Op
  154. 0EAA        0D 0A 00 80 00    CRLF For List Device
  155. 0EAF        0D 0A 00 80 00    CRLF For Other Devices
  156. 0ECE        06 86        Lockout bytes, ^F^F
  157.  
  158.  
  159. (To change an ASCII string such as this to some other
  160. string such as 'DB', observe the following two rules:
  161.     1. You must use the same number of characters,
  162.        filling out with blanks if necessary.
  163.     2. The last byte in the string must have
  164.        bit 7 set. I.e., the parity bit must be equal
  165.        to one.)
  166.  
  167.  
  168. 0037        38        LC: Line Counter
  169. 0038        5        TM: Top Margin
  170. 0039        5        BM: Bottom Margin
  171. 003A        38        LP: Text Lines/Page
  172.  
  173.  
  174.                   Immediate command characters
  175.  
  176. 0445        52        R=RET to Command Mode
  177. 0187        53        S=Suspend Disassembly
  178. .PAè                    Line Format Modification
  179.  
  180.  
  181.     Thσá linσá buffe≥á i≤ 6░ byte≤ lonτ anΣá i≤á divideΣá int∩á ╢ ì
  182. fields«á Thσá lengtΦ oµ eacΦ fielΣ i≤ specifieΣ iε ß forma⌠á lis⌠ ì
  183. startinτá a⌠á 0018H«á I⌠ contain≤ ╖ words¼á eacΦ oµ whicΦ i≤á thσ ì
  184. absolutσ addres≤ oµ thσ star⌠ oµ ß field« Thσ fielΣ startinτ witΦ ì
  185. thσ seventΦ addres≤ i≤ no⌠ used« Thσ firs⌠ addres≤ iε thσ lis⌠ i≤ ì
  186. thσ star⌠ oµ thσ linσ buffe≥ afte≥ execution.
  187.  
  188.  
  189.                            Format List
  190.  
  191.  
  192. REL    HEX    SYMBOL    FIELD    FIELD DESCRIPTION
  193. ADDR    WORD
  194.  
  195.  
  196. 0018    D40E    LB    1    address field
  197. 001A    D90E    LB+5    2    object code
  198. 001C    E50E    LB+17    3    label field
  199. 001E    ED0E    LB+25    4    operator field
  200. 0020    F30E    LB+31    5    operand field
  201. 0022    080F    LB+52    6    comment field
  202. 0024    0D0F    LB+57    defines end of field 6
  203.  
  204.  
  205.                        Page Format Control
  206.  
  207.  
  208.     Pagσá forma⌠ fo≥ thσ lis⌠ devicσ outpu⌠ i≤ controlleΣá b∙ ì
  209. TM¼ LP¼ anΣ BM« T═ specifie≤ thσ numbe≥ oµ blanδ line≤ a⌠ thσ to≡ ì
  210. oµ thσ page¼á L╨ specifie≤ thσ numbe≥ oµ tex⌠ line≤ pe≥ page¼ anΣ ì
  211. B═ specifie≤ thσ numbe≥ oµ blanδ line≤ a⌠ thσ bottoφ oµ thσ page« ì
  212. Tota∞ pagσ lengtΦ i≤ thu≤ thσ suφ oµ thesσ threσá constants«á Yo⌡ ì
  213. caε changσ T═ o≥ B═ t∩ an∙ 8_bi⌠ value¼ includinτ zero« L╨ ma∙ bσ ì
  214. assigneΣ an∙ 8_bi⌠ valuσ excep⌠ zero«á Thesσ assignment≤ arσ madσ ì
  215. b∙ modifyinτ thσ appropriatσ patcΦ locations.
  216.  
  217.  
  218.                         Nulls After CRLF
  219.  
  220.  
  221.     Thσá CRLF-Null≤ sequencσ i≤ separatel∙ specifieΣ fo≥á thσ ì
  222. Lis⌠á Devicσá anΣá fo≥á al∞á othe≥á outpu⌠á devices«á (Seσá PatcΦ ì
  223. Locations⌐ A≤ supplied¼á REVA╙ output≤ ▓ null≤ afte≥ ß linσ feed« ì
  224. Yo⌡á caε changσ thi≤ t∩ froφ zer∩ t∩ threσ null≤ b∙ changinτá thσ ì
  225. bytσ iε thσ sequencσ fo≥ whicΦ bi⌠ ╖ i≤ set«á Fo≥ zer∩ nulls¼ thσ ì
  226. sequencσ mus⌠ bσ changeΣ t∩ 0D_8A_00_00_00╗ fo≥ │ null≤ changσ t∩ ì
  227. 0D_0A_00_00_80.
  228.  
  229. .PAè                      REVAS COMMAND SUMMARY
  230.  
  231.  
  232.  
  233.  
  234. A    Assign location of symbol tables
  235. B    Build internal tables
  236. C    Control output of comment field
  237. D    Disassemble using tables if present
  238. E    Insert '.END' pseudo-op into output stream
  239. F    Find all instructions that use the given address
  240. H    Halt at top of list page
  241. ^H    Don't halt at top of list page
  242. G    Go to a user routine and execute it
  243. I    Initialize tables to empty state
  244. K    Kill table entries
  245. L    Label assignment for any object program location
  246. ^L    (ASCII Form Feed) advances to top of page
  247. M    Mark a location as instruction or table
  248. O    Output device assignment
  249. P    Print the symbol table
  250. S    Symbol assignment for instructions
  251. T    Symbol assignment for table locations
  252. X    Produce a cross reference listing
  253.  
  254.  
  255.  
  256.                     Immediate Action Commands
  257.  
  258.  
  259. ^C    Trap to monitor (and return from TDL Monitor)
  260. R    return to command mode
  261. S    stop disassembly, wait for keybd entry
  262.  
  263.  
  264.