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.TZT / MAN3.TXT
Text File  |  2000-06-30  |  12KB  |  397 lines

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