home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / lambda / soundpot / p / z80dis.lbr / Z80DIS.DZC / Z80DIS.DOC
Encoding:
Text File  |  1993-10-25  |  93.3 KB  |  2,692 lines

  1.  
  2.  
  3.  
  4.         =================================================================
  5.  
  6.                                    Z 8 0 D I S
  7.  
  8.                                       USER
  9.  
  10.                                      MANUAL
  11.  
  12.                                        __
  13.  
  14.  
  15.                              A new Z80 disassembler
  16.  
  17.                                        by
  18.  
  19.                                  KENNETH GIELOW      
  20.  
  21.                                    28 JULY 85
  22.  
  23.         =================================================================
  24.  
  25.  
  26.  
  27.                                   - SECTION 1 -
  28.                               INTRODUCTORY REMARKS
  29.  
  30.         Z80DI╙á i≤á aε entirel∙ ne≈ disassemble≥ fo≥ Z8░ baseΣ CP/═á sys-ì
  31.         tems«á  Z80DI╙á i≤ writteε iε TURB╧ PASCAL«á Z80DI╙ generate≤ Z8░ ì
  32.         mnemonic≤á anΣá prepare≤á aε assembl∙á languagσá filσá witΦá man∙ ì
  33.         specia∞á feature≤á fo≥á easσ oµ understandinτ thσ inten⌠á oµá thσ ì
  34.         code«á Thσá prograφá anΣá documantatioε arσá Copyrigh⌠á 1985¼á b∙ ì
  35.         Kenneth Gielow, Palo Alto, CA.  All rights are reserved.
  36.  
  37.  
  38.         This user manual is written in 9 sections:
  39.  
  40.              SECTION 1: These introductory remarks
  41.              SECTION 2: Features of Z80DIS
  42.              SECTION 3: How to use the program & Error messages
  43.              SECTION 4: Adaptation to your terminal
  44.              SECTION 5: Example of first attempt at default disassembly
  45.              SECTION 6: Example of print output for finished disassembly
  46.              SECTION 7: Example of finished code output file 
  47.              SECTION 8: Contents and format of xxx.BRK (Break) file
  48.              SECTIO╬ 9║ ┴ collectioε oµ possiblσ extension≤ t∩ Z80DIS
  49.  
  50.  
  51.         Thi≤á prograφ ma∙ bσ useΣ freel∙ fo≥ non-commercia∞á purposes«á ┴ ì
  52.         licensσ i≤ extendeΣ t∩ user≤ t∩ cop∙ anΣ exchangσ thσ prograφ anΣ ì
  53.         documentatioε witΦ thσ solσ restriction≤ tha⌠ authorshi≡á notice≤ ì
  54.         arσá no⌠ t∩ bσ removeΣ o≥ circumventeΣ anΣ tha⌠ sucΦ distributioε ì
  55.         mus⌠á bσá non-commercia∞á iε naturσ (thi≤ i≤ no⌠á t∩á impl∙á tha⌠ ì
  56.         charge≤á fo≥á sucΦá thing≤ a≤ diskette≤ anΣá modes⌠á copyinτá anΣ ì
  57.         mailinτá fee≤ arσ oµ themselve≤ commercia∞ iε nature.⌐ Al∞á othe≥ ì
  58.         right≤ arσ reserveΣ t∩ thσ author¼ KennetΦ Gielow.
  59. è
  60.  
  61.                                      - 1 -
  62.  
  63.  
  64.  
  65.  
  66.  
  67.         Z80DIS -   a Z80 native code disassembler for CP/M   - 28 JULY 85
  68.  
  69.  
  70.  
  71.         A⌠á thi≤ time¼á iε orde≥ t∩ retaiε creativσ contro∞ oµ thσ growtΦ ì
  72.         oµ thσ program¼á ╔ d∩ no⌠ intenΣ an∙ genera∞ releasσ oµ thσ 3000-ì
  73.         plu≤ line≤ oµ sourcσ codσ fo≥ thσ disassembler« 
  74.  
  75.         Thσá followinτá file≤ wil∞ bσ founΣ oε thi≤ prograφá distributioε ì
  76.         library packagσ:ì
  77.  
  78.              Z80DIS.COM    - thσ prograφ yo⌡ wil∞ bσ installing
  79.              Z80DIS.000    - optiona∞ overla∙ file≤ fo≥ Z80DI╙  (ma∙ be
  80.              Z80DIS.00▒    -  one¼ several¼ o≥ nonσ dependinτ oε version)
  81.  
  82.              ZDINSTAL.CO═  - thσ installatioε program
  83.              ZDINSTAL.MSG  - contain≤ tex⌠ oµ ZDINSTA╠ message≤ 
  84.              ZDINSTAL.DTA  - contain≤ termina∞ characteristic≤ data
  85.  
  86.              Z80DIS.DOC    - the user manual in ready to print format
  87.  
  88.         Thσá Z80DI╙ binar∙ i≤ iε threσ file≤ (seσ SECTIO╬ │ fo≥ use.⌐ Thσ ì
  89.         ZDINSTA╠á file≤á wil∞á tailo≥ thσ interactivσá display≤á t∩á you≥ ì
  90.         termina∞á (seσá SECTIO╬ ┤ fo≥ use.⌐ Thσ DO├ filσ i≤ thσ tex⌠á fo≥ ì
  91.         thi≤ use≥ manual.
  92.  
  93.         Thσ distributeΣ versioε i≤ compileΣ fo≥ ß standarΣ somewha⌠ smal∞ ì
  94.         CP/═á systeφ fo≥ maximuφ compatibilit∙ witΦ thσ large≥á CP/═á 3.░ ì
  95.         anΣá fo≥á user≤á oµá thσá ZCPR│ extension≤á t∩á CP/M«á I⌠á i≤á aε ì
  96.         unfortunatσá quirδá oµ TURB╧ PASCA╠ tha⌠ compilation≤ arσá fo≥á ß ì
  97.         specifiπ sizeΣ machine╗ TP┴ memor∙ sizσ ha≤ beeε se⌠ fo≥ 50K╗ thσ ì
  98.         to≡ addres≤ i≤ C7F╞ hex«á Thi≤ allow≤ enougΦ hea≡ spacσ fo≥ abou⌠ ì
  99.         112╡á labe∞ references«á Seσ SECTIO╬ ┤ fo≥ aε expositioεá oµá thσ ì
  100.         file≤áá includeΣá iεá thi≤á distributioεá anΣá oεáá interactivel∙ ì
  101.         customizinτáá thσá Z80DIS.CO═á binar∙á filσá fo≥á you≥áá termina∞ ì
  102.         configuration.
  103.  
  104.              Please address comments and suggestions to
  105.                   79 Tulip Lane
  106.                   Palo Alto, CA 94303
  107.  
  108.              Leavσ message≤ fo≥ 'KennetΦ Gielo≈' oε thσ followinτ boards:
  109.  
  110.                   POTPOURRI RCP/M             (408) 378-7474
  111.                   METAL MESSAGE SYSTEM #1     (415) 965-4090
  112.  
  113.  
  114.  
  115.  
  116.  
  117.         _________________________________________________________________
  118.  
  119.         CP/M is a trademark of Digital Research Inc., 
  120.                                 Pacific Grove, CA.
  121.         TURB╧ PASCA╠ i≤ ß trademarδ oµ BorlanΣ International, 
  122.                                          Scott≤ Valley¼ CA
  123.  
  124.  
  125.  
  126.  
  127.                                      - 2 -
  128.  
  129.  
  130.  
  131.  
  132.  
  133.         Z80DIS -    Section 2: Features of Z80DIS            - 28 JULY 85
  134.  
  135.  
  136.                                   - SECTION 2 -
  137.                                FEATURES OF Z80DIS
  138.  
  139.         ┴á majo≥á featurσá oµ thi≤ prograφ i≤á aεá extensivσá memor∙á ma≡ ì
  140.         listing« Thi≤ take≤ oε tw∩ forms:
  141.  
  142.              Thσá firs⌠ i≤ aε addres≤ listinτ  whicΦ distinguishe≤á type≤ ì
  143.         oµ labe∞ references¼á mark≤ subroutine≤ anΣ jump≤ anΣ produce≤ aε ì
  144.         annotateΣ cross-referencσ oµ al∞ label≤ referenced«á Thσ typσá oµ ì
  145.         eacΦ referencσ i≤ showε b∙ ß onσ o≥ tw∩ lette≥ code:
  146.  
  147.                   J  = Jump                Jr = Jum≡ relative
  148.                   C  = Call                Cr = Cal∞ b∙ Restart  
  149.                   Lw = LoaΣ word           Lb = LoaΣ byte
  150.                   Sw = Storσ word          Sb = Storσ byte
  151.                   Iw = Immediate word
  152.  
  153.              Thσá othe≥á forφ oµ addres≤ mappinτ i≤ aεá addres≤á labelinτ ì
  154.         conventioεá whicΦá assist≤ greatl∙ iε understandinτ thσá assembl∙ ì
  155.         codσá generated«á EacΦá labe∞ generateΣ oε thσá assembl∙á listinτ ì
  156.         indicates¼ b∙ format¼ botΦ thσ generiπ typσ oµ an∙ reference≤ anΣ ì
  157.         thσ singularit∙ oµ thσ reference║ 
  158.  
  159.         Wherσ ß CP/═ addres≤ caε bσ assumed¼ theε tha⌠ namσ i≤ used:
  160.  
  161.              0005h=>BDOS, 005Ch=>FCB1, 006Dh=>FCB2, 0080h=>DBUF, etc.
  162.  
  163.         Otherwise¼á thσ labe∞ take≤ thσ forφ L.hhhh anΣ consist≤ oµ threσ ì
  164.         parts║ 
  165.  
  166.              Thσ firs⌠ characte≥ i≤ usuall∙ ß "J"¼ "C"¼ "D"¼ "Ió o≥ "X"« ì
  167.                   J = JUMP (JP, JR references only)
  168.                   C = CALL (CALL, RST, JP, JR only)
  169.                   D = DATA (8- or 16-bit Load, Store or Immediate only)
  170.                   I = Immediate 16-bit only
  171.                   X = any other combination (a suspicious mixture)
  172.  
  173.                   Iµ thσ firs⌠ characte≥ i≤ ß ".ó (period)¼á thσá addres≤ ì
  174.         áááááááááái≤á no⌠ referenced¼á bu⌠ i≤ includeΣ becausσ i⌠ i≤á thσ ì
  175.         áááááááááábeginninτ oµ aε inaccessiblσ instructioε codσ segment.
  176.  
  177.              Thσ seconΣ characte≥ indicates the singularity of the label.
  178.                   . = multiple references
  179.                   # = singular reference
  180.  
  181.              Thσ thirΣ througΦ sixtΦ character≤ arσ thσ he° address.
  182.  
  183.              Foráexample¼á J#02E3ôá woulΣ bσ useΣ a⌠ addres≤ 02E│á iµá onσ ì
  184.         ááááááááááreferencσá wa≤ madσ t∩ tha⌠ addres≤ anΣ tha⌠á referencσ ì
  185.         ááááááááááwa≤ ß JUMP.
  186.  
  187.         Anothe≥ featurσ oµ thi≤ disassemble≥ i≤ thσ stylσ oµ presentatioε ì
  188.         oµá thσá assembl∙ code«á Thi≤ codσ i≤ outpu⌠ iεá tw∩á forms║á Thσ ì
  189.         **.PRNä filσ anΣ thσ **.MACä file:
  190.  
  191. è
  192.  
  193.                                      - 3 -
  194.  
  195.  
  196.  
  197.  
  198.  
  199.         Z80DIS -    Section 2: Features of Z80DIS            - 28 JULY 85
  200.  
  201.  
  202.              Thσ **.MACä filσ i≤ you≥ norma∞ assembl∙ languagσ outpu⌠ filσ ì
  203.         read∙ t∩ bσ modifieΣ anΣ re-assembled« 
  204.  
  205.              Thσ **.PRNä filσ i≤ aε aiΣ t∩ understandinτ thσ inten⌠ oµ thσ ì
  206.         code«á Thσá filσ look≤ likσ thσ outpu⌠ oµ aε assemble≥ witΦá botΦ ì
  207.         thσ instruction≤ anΣ assembleΣ byte≤ shown«á Thσ juxtapositioε oµ ì
  208.         thσá he°á byte≤á anΣ thσ assembl∙ mnemonic≤ allow≤á thσá use≥á t∩ ì
  209.         recognizσ error≤ causeΣ b∙ aε incorrectl∙ defineΣ breaδ table« 
  210.  
  211.              ┴á blanδá commen⌠á linσá i≤ inserteΣá afte≥á ever∙á CAL╠á o≥ ì
  212.         CONDITIONA╠ JUMP«á ┴ ba≥-oµ-dashe≤ commen⌠ linσ i≤ inserteΣ afte≥ ì
  213.         ever∙ UNCONDITIONA╠ JUMP«á Al∞ CAL╠ instruction≤ arσ indenteΣ onσ ì
  214.         spacσ t∩ highligh⌠ them« Al∞ subroutine≤ arσ markeΣ witΦ ß 5-linσ ì
  215.         heade≥á commen⌠á whicΦá separate≤ theφ froφ thσá othe≥á codσá anΣ ì
  216.         allows you to annotate the purpose of the subroutine.
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.                                      - 4 -
  260.  
  261.  
  262.  
  263.  
  264.  
  265.         Z80DIS -    Section 3: INSTRUCTIONS FOR EXECUTION    - 28 JULY 85
  266.  
  267.  
  268.                                   - SECTION 3 -
  269.                            INSTRUCTIONS FOR EXECUTION
  270.  
  271.         Z80DI╙á i≤ ß batcΦ prograφ witΦ use≥ interactivσ set-u≡ oµ al∞ oµ ì
  272.         thσ contro∞ parameters«á Yo⌡ star⌠ Z80DI╙ b∙ typinτ "Z80DISó witΦ ì
  273.         n∩á parameters«á Thσ prograφ wil∞ promp⌠ yo⌡ fo≥ inputs«á Iε mos⌠ ì
  274.         cases¼á defaul⌠á entrie≤á arσá showεá iεá DI═á intensit∙á alread∙ ì
  275.         occupyinτ thσ datß field«á Iµ yo⌡ typσ onl∙ thσ RETUR╬á key¼á thσ ì
  276.         defaul⌠ wil∞ bσ used.
  277.  
  278.         Z80DIS.CO═á ma∙ bσ oε thσ drivσ oµ you≥ choicσ anΣ executeΣ viß ß ì
  279.         drivσ prefi° (e.i«á B:Z80DIS)¼á bu⌠ thσ overla∙ files¼ Z80DIS.00▒ ì
  280.         anΣ Z80DIS.002¼ mus⌠ bσ oε your loggeΣ drive« 
  281.  
  282.         Therσá arσá fou≥á phase≤ oµ execution«á Thσ firs⌠á tw∩á arσá use≥ ì
  283.         interactive║á Basiπá paramete≥ set-u≡ anΣ definitioε oµ thσ breaδ ì
  284.         table«á  Thσá seconΣá tw∩ arσ automatic║á Disassembl∙ pas≤ ▒á anΣ ì
  285.         disassembl∙á pas≤á 2«á Thesσ wil∞ bσ deal⌠ witΦ iεá section   3.▒ ì
  286.         througΦ 3.┤ whicΦ follow«á Sectioε 3.╡ wil∞ dea∞ witΦ limitation≤ ì
  287.         anΣ run-timσ errors.
  288.  
  289.                                        --
  290.  
  291.         SECTION  3.▒ -- BASI├ PARAMETE╥ DEFINITION║á  Afte≥ ß brieµ sign-ì
  292.         ááááááááááoε message¼á yo⌡ wil∞ bσ askeΣ t∩ suppl∙ thσá followinτ ì
  293.         ááááááááááinformation:
  294.  
  295.         |================================================================
  296.         | Please enter  INPUT   file name: ______________
  297.         |               OUTPUT  file name: ______________
  298.         |               LISTING file name: ______________
  299.         |   Descriptive TITLE: __________________________________________
  300.         |
  301.         |              file LOAD  address: ____ HEX
  302.         |       disassembly START address: ____ HEX
  303.         |       disassembly STOP  address: ____ HEX
  304.         |
  305.         | Do you wish to run a FULL output (as opposed to XREF only)? 
  306.         | On which disk do you wish the scratch file to reside? (A-G)
  307.         |
  308.         | Do You wish to process all Z80 codes (as opposed 8080 subset)?
  309.         |
  310.         | Are all inputs OK so far? 
  311.         |================================================================
  312.  
  313.  
  314.         EacΦ questioε i≤ presenteΣ one-at-a-timσ froφ thσ top«á Thσ para-ì
  315.         graph≤ belo≈ discus≤ thσ purpose¼á defaults¼á editinτá capabilit∙  ì
  316.         anΣ erro≥ checkinτ fo≥ eacΦ answer.
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.                                      - 5 -
  326.  
  327.  
  328.  
  329.  
  330.  
  331.         Z80DIS -    Section 3: INSTRUCTIONS FOR EXECUTION    - 28 JULY 85
  332.  
  333.  
  334.         -----------------------------------------------------------------
  335.         INPUT file name: ______________
  336.  
  337.              Z80DI╙á want≤ thσ namσ oµ thσ filσ yo⌡ wisΦ t∩á disassemble« ì
  338.         Thi≤á filσá mus⌠ bσ iε thσ absolutσ binar∙ forma⌠ commoε t∩á CP/═ ì
  339.         ".COMó files«á Thσ filσ neeΣ no⌠ bσ ß .CO═ filσ anΣ neeΣ no⌠ loaΣ ì
  340.         int∩á memor∙ a⌠ addres≤ 010░ hex«á Z80DI╙ wil∞ asδ fo≥á thσá loaΣ ì
  341.         address at a later step.
  342.  
  343.              Thσá prograφá want≤ ß CP/═ stylσ filσ namσ iεá thσá standarΣ ì
  344.         forφá D:FILENAME.EXT«á Iµ ß disδ i≤ no⌠á specified¼á thσá curren⌠ ì
  345.         drivσ i≤ used«á Iµ aε extensioε i≤ no⌠ specified¼ ".COMó i≤ used« ì
  346.         Thσá prograφá wil∞ tes⌠ fo≥ existencσ oµ thσ filσ anΣá wil∞á wai⌠ ì
  347.         unti∞á yo⌡á ente≥ ß valiΣ namσ beforσ proceeding«á Iµ yo⌡ wisΦá ß ì
  348.         nul∞á extension¼á ente≥á thσá filσ namσ witΦ ßá fina∞á perioΣá a≤ ì
  349.         "XXXX.".
  350.  
  351.              Unti∞á thσá <CR╛á terminatinτ thσ namσá i≤á typed¼á yo⌡á ma∙ ì
  352.         correc⌠ thσ entr∙ a≤ requireΣ b∙ backspacing«á Yo⌡ ma∙á terminatσ ì
  353.         Z80DI╙ b∙ thσ usua∞ ^C.
  354.  
  355.         -----------------------------------------------------------------
  356.         OUTPUT file name: ______________
  357.  
  358.              Z80DI╙á want≤á thσá namσá oµ thσ filσ t∩á bσá useΣá fo≥á thσ ì
  359.         disassembled output.
  360.  
  361.              Thσá prograφ provide≤ ß defaul⌠ filσ namσ whicΦ i≤ thσá samσ ì
  362.         a≤ thσ filσ namσ giveε fo≥ INPU╘ abovσ witΦ thσ extensioε changeΣ ì
  363.         t∩ ".MAC"« Iµ yo⌡ ente≥ ß <CR╛ yo⌡ wil∞ ge⌠ tha⌠ defaul⌠ name« Iµ ì
  364.         yo⌡ ente≥ ß filσ namσ withou⌠ aε extension¼ thσ defaul⌠ extensioε ì
  365.         ".MACó wil∞ bσ appended«á Iµ yo⌡ wisΦ ß nul∞ extension¼ ente≥ thσ ì
  366.         filσ namσ witΦ ß fina∞ perioΣ a≤ "XXXX.".
  367.  
  368.              Unti∞á thσá <CR╛á terminatinτ thσ namσá i≤á typed¼á yo⌡á ma∙ ì
  369.         correc⌠á thσ entr∙ a≤ requireΣ b∙ backspacing«á Yo⌡ ma∙ terminatσ ì
  370.         Z80DI╙ b∙ thσ usua∞ ^C.
  371.  
  372.              Thσá prograφá wil∞ wai⌠ unti∞ yo⌡ ente≥ ß valiΣ namσá beforσ ì
  373.         proceeding«á Thσ prograφ check≤ t∩ seσ tha⌠ thσ OUTPU╘ filσá namσ ì
  374.         i≤á no⌠á thσ samσ a≤ thσ INPU╘ filσ name«á Iµ therσ i≤ alread∙á ß ì
  375.         filσ b∙ thσ samσ name¼ tha⌠ filσ i≤ overwritteε withou⌠ comment.
  376.  
  377.         -----------------------------------------------------------------
  378.         LISTING file name: ______________
  379.  
  380.              Z80DI╙ want≤ thσ namσ oµ thσ filσ t∩ bσ useΣ fo≥ thσ listinτ ì
  381.         of the cross-reference and the disassembly.ì
  382.  
  383.              Thσá prograφ provide≤ ß defaul⌠ filσ namσ whicΦ i≤ thσá samσ ì
  384.         a≤á thσá filσá namσ giveε fo≥ OUTPU╘á abovσá witΦá thσá extensioε ì
  385.         changeΣ t∩ ".PRN"«á Iµ yo⌡ ente≥ ß <CR╛ yo⌡ wil∞ ge⌠ tha⌠ defaul⌠ ì
  386.         name«á Iµ yo⌡ ente≥ ß filσ namσ withou⌠ aε extension¼ thσ defaul⌠ ì
  387.         extensioε ".PRNó wil∞ bσ appended«á Iµ yo⌡ wisΦ ß nul∞ extension¼ ì
  388.         ente≥ thσ filσ namσ witΦ ß fina∞ perioΣ a≤ "XXXX.".
  389. è
  390.  
  391.                                      - 6 -
  392.  
  393.  
  394.  
  395.  
  396.  
  397.         Z80DIS -    Section 3: INSTRUCTIONS FOR EXECUTION    - 28 JULY 85
  398.  
  399.  
  400.  
  401.              Unti∞á thσá <CR╛á terminatinτ thσ namσá i≤á typed¼á yo⌡á ma∙ ì
  402.         correc⌠ thσ entr∙ a≤ requireΣ b∙ backspacing.á Yo⌡ ma∙ ì
  403.         terminate Z80DIS by the usual ^C.
  404.  
  405.              Thσá prograφá wil∞ wai⌠ unti∞ yo⌡ ente≥ ß valiΣ namσá beforσ ì
  406.         proceeding«á Thσ prograφ check≤ t∩ seσ tha⌠ thσ LISTIN╟ filσ namσ ì
  407.         i≤ no⌠ thσ samσ a≤ eithe≥ oµ thσ previou≤ filσ names« Iµ therσ i≤ ì
  408.         alread∙ ß filσ b∙ thσ samσ name¼ tha⌠ filσ i≤ overwritteε withou⌠ ì
  409.         comment.
  410.  
  411.         -----------------------------------------------------------------
  412.         Descriptive TITLE: __________________________________________
  413.  
  414.              Yo⌡ ma∙ ente≥ ß free-form¼ 42-characte≥ titlσ t∩ bσ includeΣ ì
  415.         a≤ identificatioε oε you≥ listing≤ anΣ outpu⌠ code«á Somσ forφ oµ ì
  416.         date¼ time¼ crackinτ attemp⌠ numbe≥ arσ useful.
  417.  
  418.              Unti∞á thσá <CR╛á terminatinτ thσ namσá i≤á typed¼á yo⌡á ma∙ ì
  419.         correc⌠ thσ entr∙ a≤ requireΣ b∙ backspacing«á Yo⌡ ma∙á terminatσ ì
  420.         Z80DI╙ b∙ thσ usua∞ ^C.
  421.  
  422.         -----------------------------------------------------------------
  423.         file LOAD  address: ____ HEX
  424.  
  425.              Z80DI╙ want≤ thσ he° memor∙ addres≤ a⌠ whicΦ thσ firs⌠á worΣ ì
  426.         oµ thσ filσ reside≤ wheε loadeΣ anΣ read∙ t∩ run« Thi≤ i≤ usuall∙ ì
  427.         010░ he° fo≥ norma∞ .CO═ files«á Iµ yo⌡ ente≥ onl∙ <CR>¼ yo⌡ wil∞ ì
  428.         ge⌠ thσ 010░ default« 
  429.  
  430.              Iµá yo⌡ havσ createΣ thσ filσ iε somσ othe≥ manne≥ sucΦ a≤ ß ì
  431.         dum≡á oµ RO═ content≤ t∩ ß file¼á theε yo⌡ wil∞ neeΣ t∩ givσá thσ ì
  432.         RO═ startinτ address«á Somσ program≤ relocatσ par⌠ oµ thσá binar∙ ì
  433.         imagσ afte≥ loadinτ bu⌠ beforσ tha⌠ par⌠ i≤ executed╗á thi≤ relo-ì
  434.         catioε i≤ usuall∙ t∩ highe≥ memory« T∩ compensatσ fo≥ relocation¼ ì
  435.         yo⌡ wil∞ havσ t∩ givσ aε adjusteΣ loaΣ addres≤ fo≥ thσ firs⌠ worΣ ì
  436.         oµ thσ filσ (highe≥ thaε 010░ b∙ thσ relocatioε amount.)
  437.  
  438.              Unti∞á thσá <CR╛á terminatinτ thσ namσá i≤á typed¼á yo⌡á ma∙ ì
  439.         correc⌠á thσ entr∙ a≤ requireΣ b∙ backspacing«á Yo⌡ ma∙ terminatσ ì
  440.         Z80DI╙ b∙ thσ usua∞ ^C.
  441.  
  442.         -----------------------------------------------------------------
  443.         disassembly START address: ____ HEX
  444.  
  445.              Z80DI╙á want≤á thσ he° memor∙ addres≤ a⌠ whicΦ t∩ star⌠á thσ ì
  446.         disassembly« Thi≤ i≤ usuall∙ thσ samσ a≤ thσ LOA─ address« Iµ yo⌡ ì
  447.         ente≥á onl∙á <CR>¼á yo⌡ wil∞ ge⌠ thσ valuσ yo⌡á entereΣá a≤á LOA─ ì
  448.         addres≤á a≤ default«á Thσ STAR╘ addres≤ mus⌠ bσ a⌠ o≥ highe≥ thaε ì
  449.         thσ LOA─ address« 
  450.  
  451.         Iµá yo⌡ wisΦ onl∙ ß partia∞ disassembly¼á yo⌡ ma∙ specif∙ ßá morσ ì
  452.         limiteΣ rangσ oµ STAR╘ anΣ STO╨ addresses.
  453.  
  454.              Editing is the same as for the LOAD address above.
  455. è
  456.  
  457.                                      - 7 -
  458.  
  459.  
  460.  
  461.  
  462.  
  463.         Z80DIS -    Section 3: INSTRUCTIONS FOR EXECUTION    - 28 JULY 85
  464.  
  465.  
  466.  
  467.         -----------------------------------------------------------------
  468.         disassembly STOP  address: ____ HEX
  469.  
  470.              Z80DI╙á want≤á thσ he° memor∙ addres≤ a⌠ whicΦ t∩á sto≡á thσ ì
  471.         disassembly«á Iµ yo⌡ ente≥ onl∙ <CR>¼ yo⌡ wil∞ ge⌠ thσ valuσ FFF╞ ì
  472.         he° whicΦ mean≤ thσ enΣ oµ thσ INPU╘ file«á Thσ STO╨ addres≤ mus⌠ ì
  473.         bσ highe≥ thaε thσ STAR╘ address« 
  474.  
  475.         Iµá yo⌡ wisΦ onl∙ ß partia∞ disassembly¼á yo⌡ ma∙ specif∙ ßá morσ ì
  476.         limiteΣ rangσ oµ STAR╘ anΣ STO╨ addresses.
  477.  
  478.              Unti∞á thσá <CR╛á terminatinτ thσ namσá i≤á typed¼á yo⌡á ma∙ ì
  479.         correc⌠á thσ entr∙ a≤ requireΣ b∙ backspacing«á Yo⌡ ma∙ terminatσ ì
  480.         Z80DI╙ b∙ thσ usua∞ ^C.
  481.  
  482.         -----------------------------------------------------------------
  483.         Do you wisΦ t∩ ruε ß FUL╠ outpu⌠
  484.               (a≤ opposeΣ t∩ XRE╞ only⌐ ┐ (Y/N⌐ _
  485.  
  486.              Iµ yo⌡ answe≥ Y¼á yo⌡ wil∞ ge⌠ ß ful∞ disassembl∙á includinτ ì
  487.         botΦá thσ cross-referencσ par⌠ anΣ thσ instructioε codσ part«á Iµ ì
  488.         yo⌡ answe≥ N¼ yo⌡ wil∞ onl∙ ge⌠ ß cross-reference« 
  489.  
  490.              Thσ "Nó answe≥ processe≤ faste≥ anΣ i≤ ß gooΣ placσ t∩ star⌠ ì
  491.         t∩ ge⌠ ß fee∞ fo≥ thσ memor∙ layou⌠ anΣ t∩ develo≡ ß breaδ table« 
  492.  
  493.              Thσá "Yóá answe≥ require≤ usσ oµ ß scratcΦ filσ t∩ holΣá thσ ì
  494.         disassembleΣá codσ anΣ othe≥ informatioε prio≥ t∩ thσá completioε ì
  495.         oµá thσá addres≤ referencσ collection«á Thi≤ filσ caεá bσá rathe≥ ì
  496.         largσá (3░á byte≤ pe≥ instruction⌐ anΣ shoulΣ residσ oεá ßá drivσ ì
  497.         witΦ plent∙ oµ space« Iµ yo⌡ havσ answereΣ "Y"¼ yo⌡ wil∞ bσ askeΣ ì
  498.         the following question:
  499.  
  500.         -----------------------------------------------------------------
  501.         On which disk do you wish the scratch file to reside? (A-G) _
  502.  
  503.              Thi≤á allow≤á yo⌡á t∩ placσ thσ scratcΦ filσ oεá ßá specifiπ ì
  504.         drive« Iµ yo⌡ answe≥ <CR>¼ theε thσ loggeΣ drivσ i≤ used.
  505.  
  506.         -----------------------------------------------------------------
  507.         Do you wish to process all Z80 codes
  508.               (as opposed 8080 subset only) ? (Y/N) _
  509.  
  510.              Man∙á oµ thσ publiπ domain¼á anΣ other¼á program≤ whicΦá ruε ì
  511.         unde≥á CP/═á arσá writteεá iεá purσ 808░á codσá withou⌠á thσá Z8░ ì
  512.         extension≤á t∩á thσá instructioε set«á SucΦá program≤á shoulΣá bσ ì
  513.         disassembleΣá witΦ ß "Nó answe≥ t∩ thi≤ question«á Thσ N╧á answe≥ ì
  514.         wil∞ stil∞ generatσ Z8░ mnemonics¼á bu⌠ wil∞ marδ a≤ invaliΣá al∞ ì
  515.         instructioεá byte≤ correspondinτ t∩ thσ unexpecteΣ Z8░ extension≤ ì
  516.         t∩ thσ 808░ codσ set.
  517.  
  518.              Yo⌡á shoulΣá usσá thσ "Yó answe≥ onl∙ iµ yo⌡ kno≈á tha⌠á thσ ì
  519.         program will run only on a Z80 based CP/M system.
  520.  
  521. è
  522.  
  523.                                      - 8 -
  524.  
  525.  
  526.  
  527.  
  528.  
  529.         Z80DIS -    Section 3: INSTRUCTIONS FOR EXECUTION    - 28 JULY 85
  530.  
  531.  
  532.         -----------------------------------------------------------------
  533.         Are all inputs OK so far? (Y/N) _
  534.  
  535.              Thi≤ questioε give≤ yo⌡ ß chancσ t∩ re-examinσ you≥á answer≤ ì
  536.         t∩ thσ othe≥ question≤ beforσ continuing«á Iµ yo⌡ answe≥ "N"¼ thσ ì
  537.         prograφá wil∞á returε t∩ thσ INPU╘ filσ question«á Iµ yo⌡á answe≥ ì
  538.         "Y", you will continue on to setting up your break table.
  539.  
  540.         -----------------------------------------------------------------
  541.  
  542.         Tha⌠ complete≤ thσ set-u≡ phasσ oµ thσ disassembl∙á process«á Thσ ì
  543.         nex⌠á ste≡á i≤ t∩ definσ thσ typσ oµ disassembl∙ t∩ bσá useΣá fo≥ ì
  544.         each part of the program memory. 
  545.  
  546.  
  547.                                        --
  548.  
  549.  
  550.         SECTION  3.▓á -- DEFINITIO╬á O╞ TH┼ BREA╦ TABLE║á Afte≥ yo⌡á havσ ì
  551.         ááááááááááanswereΣ YE╙ t∩ thσ "Input≤ O╦" question¼ You≥ termina∞ ì
  552.         ááááááááááwill now display the following:
  553.  
  554.         |================================================================
  555.         | >>>  Z80DIS version 1.5
  556.         | Yo⌡ ma∙ no≈ ente≥ CONTRO╠ BREA╦ addresse≤ t∩ definσ thσ type
  557.         |  oµ disassembl∙ fo≥ eacΦ sectioε oµ thσ code╗ eacΦ control
  558.         |  breaδ define≤ thσ firs⌠ addres≤ oµ ß sectioε whicΦ end≤ a⌠ the
  559.         |  beginninτ oµ thσ nex⌠ section-▒ byte.
  560.         |
  561.         | TO SEE DETAILS OF YOUR COMMAND CHOICES, type H
  562.         |
  563.         | ?: _
  564.         |================================================================
  565.  
  566.              Iµá thi≤ i≤ you≥ firs⌠ attemp⌠ t∩ disassemblσ ß ne≈á prograφ ì
  567.         anΣá yo⌡á havσ n∩ ideß wherσ anythinτ i≤ stored¼á jus⌠ ski≡á thi≤ ì
  568.         phasσ b∙ enterinτ "Q"«á Thσ "Qó commanΣ wil∞ QUI╘ thσ breaδ tablσ ì
  569.         definitioεá proces≤á anΣá trea⌠á thσá wholσá prograφá memor∙áá a≤ ì
  570.         instructions«áá Thσá memor∙á ma≡á showεá b∙á thσá cross-referencσ ì
  571.         printou⌠á wil∞á givσá yo⌡á ß gooΣ estimatσá oµá thσá breaδá tablσ ì
  572.         content≤ fo≥ you≥ seconΣ attemp⌠ t∩ cracδ thσ code.
  573.  
  574.         ┴á "breakóá i≤ defineΣ t∩ bσ aε addres≤ iε thσ memor∙á wherσá yo⌡ ì
  575.         wisΦ t∩ eithe≥ forcσ ß break¼ o≥ yo⌡ wisΦ t∩ changσ froφ onσ typσ ì
  576.         oµá disassembl∙á t∩ another«á Thσ breaδ tablσ i≤ defineΣ t∩ bσá ß ì
  577.         lis⌠á oµ thσ breaδ addresse≤ fo≥ ß giveε binar∙ file«á Thσá breaδ ì
  578.         tablσ ma∙ bσ writteε t∩ ß break filσ (Seσ SECTIO╬ 8.)
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.                                      - 9 -
  590.  
  591.  
  592.  
  593.  
  594.  
  595.         Z80DIS -    Section 3: INSTRUCTIONS FOR EXECUTION    - 28 JULY 85
  596.  
  597.  
  598.         This disassembler can operate in six modes:
  599.  
  600.              I = Instructions    
  601.              A = Ascii text using DEFM with quoted strings 
  602.              B = Byte storage using DEFB with hex byte values 
  603.              W = Word storage using DEFW with hex word values 
  604.              T = Table of addresses using DEFW with address labels
  605.              S = Space using DEFS and the length
  606.  
  607.         EacΦá breaδá addres≤ define≤ thσ star⌠ oµá tha⌠á mode«á Thσá modσ ì
  608.         remain≤ iε effec⌠ unti∞ onσ bytσ beforσ thσ nex⌠ breaδ addres≤ o≥ ì
  609.         the end of the program memory.
  610.  
  611.         Iεá additioε t∩ thσ si° breaδ settinτ commands¼á therσ arσá eigh⌠ ì
  612.         othe≥ command≤ tha⌠ ma∙ bσ entered:
  613.  
  614.              C  = Clear all of break table
  615.              FL = Load (append) a break file to the break table
  616.              FS = Store break table as a break file
  617.              L  = List break table for review
  618.              H  = display Help for break table editing commands
  619.              K  = Kill existing break at an address
  620.              P  = Print break table on "LST:" CP/M device
  621.              Q  = Quit break entry process (start the disassembly)
  622.  
  623.  
  624.  
  625.  
  626.                                   THE COMMANDS
  627.  
  628.         Command≤á ma∙á bσá giveε iε an∙ orde≥ witΦ thσ exceptioεá oµá "Qó ì
  629.         whicΦ terminate≤ commanΣ entry«á EacΦ commanΣ i≤ presenteΣá belo≈ ì
  630.         t∩ discus≤ thσ purpose¼ editinτ capability¼ anΣ erro≥ detection.
  631.  
  632.  
  633.         -----------------------------------------------------------------
  634.         C
  635.  
  636.              Purpose║á Clear≤ entirσ breaδ tablσ t∩ empty« Aε empt∙ breaδ ì
  637.         tablσ define≤ thσ entirσ codσ segmen⌠ t∩ bσ instructions« A≤ thi≤ ì
  638.         i≤ ß fairl∙ drastiπ thinτ t∩ do¼á yo⌡ wil∞ bσ askeΣ t∩ responΣ t∩ ì
  639.         thσ following question ..
  640.  
  641.         Do you really want to clear all control breaks? (Y/N) _
  642.  
  643.              Iµ yo⌡ answe≥ N¼á thσ commanΣ i≤ canceled«á Iµ yo⌡ answe≥ Y¼ ì
  644.         the table is cleared. All other entries but N and Y are ignored.
  645.  
  646.         -----------------------------------------------------------------
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.                                      - 10 -
  656.  
  657.  
  658.  
  659.  
  660.  
  661.         Z80DIS -    Section 3: INSTRUCTIONS FOR EXECUTION    - 28 JULY 85
  662.  
  663.  
  664.         FS
  665.  
  666.              Purpose: Store break table as a break file (see SECTION 8.)
  667.  
  668.              Response║á Thσá prograφ respond≤ b∙ fillinτ ou⌠ thσá commanΣ ì
  669.         line as shown below:
  670.  
  671.         FS - Save Control Breaks..      SAVE file name: ___________
  672.  
  673.              Yo⌡á mus⌠ givσ ß lega∞ CP/═ filσ namσ followeΣá b∙á carriagσ ì
  674.         returεá <CR>«á Iµá yo⌡á jus⌠ givσ ß <CR>¼á thσá defaul⌠á namσá oµ ì
  675.         "SAVE.BRKó wil∞ bσ used«á Iµ yo⌡ ente≥ onl∙ thσ namσ par⌠ anΣ no⌠ ì
  676.         aε extension¼ thσ extensioε ".BRKó wil∞ bσ used.
  677.  
  678.              Upon entry of the <CR> the file is written.
  679.  
  680.         -----------------------------------------------------------------
  681.         FL
  682.  
  683.              Purpose: Load break table from a break file (see SECTION 8.)
  684.  
  685.              Response║á Thσá prograφ respond≤ b∙ fillinτ ou⌠ thσá commanΣ ì
  686.         line as shown below:
  687.  
  688.         FL - Load Control Breaks..      SAVE file name: ___________
  689.  
  690.              Yo⌡á mus⌠ givσ ß lega∞ CP/═ filσ namσ followeΣá b∙á carriagσ ì
  691.         returεá <CR>«á Iµá yo⌡á jus⌠ givσ ß <CR>¼á thσá defaul⌠á namσá oµ ì
  692.         "SAVE.BRKó wil∞ bσ used«á Iµ yo⌡ ente≥ onl∙ thσ namσ par⌠ anΣ no⌠ ì
  693.         aε extension¼ thσ extensioε ".BRKó wil∞ bσ used.
  694.  
  695.              Upoεá entr∙ oµ thσ <CR╛ thσ filσ i≤ reaΣ anΣ mergeΣ witΦ thσ ì
  696.         current break table. The following error messages may be given:
  697.  
  698.                   < ERROR > that file does not exist
  699.  
  700.         Thσá filσá yo⌡ havσ requesteΣ i≤ no⌠ present╗á thσ F╠ commanΣá i≤ ì
  701.         canceled.
  702.  
  703.                   < ERROR > type "X" is invalid from SAVE file.. IGNORED
  704.  
  705.         Thσ breaδ typσ showε a≤ ╪ wa≤ founΣ oε you≥ breaδ file╗á ╪ i≤ no⌠ ì
  706.         ß lega∞ breaδ type« (Lega∞ type≤ arσ I,A,B,W,T,S⌐ Tha⌠ particula≥ ì
  707.         breaδ poin⌠ i≤ ignoreΣ bu⌠ filσ processinτ continues.
  708.  
  709.                   < ERROR > Invalid Hex Address "XXXX" from SAVE file
  710.  
  711.         Thσá breaδá addres≤ showε a≤ XXX╪ wa≤ founΣ oε you≥á breaδá file╗ ì
  712.         XXX╪á i≤ no⌠ ß valiΣ hexadecima∞ address«á Tha⌠ particula≥á breaδ ì
  713.         poin⌠ i≤ ignoreΣ bu⌠ filσ processinτ continues.
  714.  
  715.         -----------------------------------------------------------------
  716.  
  717.  
  718.  
  719.  
  720.  
  721.                                      - 11 -
  722.  
  723.  
  724.  
  725.  
  726.  
  727.         Z80DIS -    Section 3: INSTRUCTIONS FOR EXECUTION    - 28 JULY 85
  728.  
  729.  
  730.         L
  731.  
  732.              Purpose║á Lis⌠á thσá breaδá tablσ t∩á you≥á consolσá displa∙ ì
  733.         device.
  734.  
  735.              Response║á Thσá prograφ respond≤ b∙ fillinτ ou⌠ thσá commanΣ ì
  736.         line followed by a listing of the break table as shown below:
  737.  
  738.         List Control Breaks
  739.  
  740.           Typ 0000-0000  Typ 0000-0000  Typ 0000-0000  Typ 0000-0000 ....
  741.  
  742.         -----------------------------------------------------------------
  743.         H
  744.  
  745.              Purpose║á Reques⌠ displa∙ oµ shor⌠ criΓ note≤ oε breaδ tablσ ì
  746.         commands.
  747.  
  748.              Response: the following screen of information is displayed:
  749.  
  750.         |================================================================
  751.         |
  752.         | command   long name    break code    meaning
  753.         |---------/------------/------------/----------------------------
  754.         |    C      Clear            -        clear all of break table
  755.         |    FL     File Load        -        Load (append) file to table
  756.         |    FS     File Store       -        Store table as file
  757.         |    L      List             -        List break table for review
  758.         |    H      Help             -        Re-list these instructions
  759.         |    K      Kill             -        Kill break at address
  760.         |    P      Print            -        Print break table on LST:
  761.         |    Q      Quit             -        Quit break entry process
  762.         |
  763.         |    I      Instructions    Ins       set Instruction break
  764.         |    A      Ascii           Asc       set Ascii break
  765.         |    B      Bytes           Byt       set Byte break
  766.         |    W      Words           Wrd       set Word break
  767.         |    T      Table of addr   Adt       set address Table break
  768.         |    S      Space           Spc       set Space break
  769.         |
  770.         |================================================================
  771.  
  772.         -----------------------------------------------------------------
  773.         K
  774.  
  775.              Purpose: Remove a break point from the table.
  776.  
  777.              Response║ Thσ prograφ wil∞ completσ thσ commanΣ anΣ positioε ì
  778.         thσ curso≥ fo≥ entr∙ oµ ß Hexadecima∞ number:
  779.  
  780.         Kill break at .... hex
  781.  
  782.         Yo⌡ ente≥ thσ addres≤ followeΣ b∙ <CR>« An∙ numbe≥ tha⌠ yo⌡ ente≥ ì
  783.         wil∞ bσ righ⌠ justifieΣ iε thσ fou≥ digit≤ wheε yo⌡ pusΦ <CR>« Iµ ì
  784.         thσá addres≤á i≤ no⌠ tha⌠ oµ aε existinτ breaδá point¼á n∩á erro≥ ìè
  785.  
  786.                                      - 12 -
  787.  
  788.  
  789.  
  790.  
  791.  
  792.         Z80DIS -    Section 3: INSTRUCTIONS FOR EXECUTION    - 28 JULY 85
  793.  
  794.  
  795.         messagσ i≤ giveε anΣ n∩ actioε i≤ taken« Iµ thσ addres≤ i≤ ou⌠ oµ ì
  796.         rangσ oµ thσ prograφ addresses¼ thσ followinτ informativσ messagσ ì
  797.         is given:
  798.                        < ERROR: address out of range, ignored >
  799.  
  800.         -----------------------------------------------------------------
  801.         P
  802.  
  803.              Purpose║ Lis⌠ thσ breaδ tablσ t∩ you≥ CP/═ LST║ device.
  804.  
  805.              Response║á Thσá prograφ respond≤ b∙ fillinτ ou⌠ thσá commanΣ ì
  806.         linσá oε thσ displa∙ followeΣ b∙ ß listinτ oµ thσ breaδ tablσá oε ì
  807.         the printer as shown below:
  808.  
  809.                                < to the display >
  810.  
  811.         Print Control Breaks                
  812.  
  813.                                < to the printer >
  814.  
  815.           Typ 0000-0000  Typ 0000-0000  Typ 0000-0000  Typ 0000-0000 ....
  816.  
  817.         -----------------------------------------------------------------
  818.         Q
  819.              
  820.              Purpose║á Qui⌠á breaδá tablσá processinτá anΣá proceeΣá witΦ ì
  821.         disassembly.
  822.  
  823.              Response║á Thσ prograφ wil∞ completσ thσ commanΣ linσ iε onσ ì
  824.         oµá tw∩ ways«á Iµ yo⌡ havσ saveΣ you≥ definition≤ ont∩ ß filσ fo≥ ì
  825.         futurσá use¼á o≥ havσ no⌠ madσ an∙ change≤ t∩ definition≤á loadeΣ ì
  826.         froφá ß file¼á yo⌡ wil∞ ge⌠ thσ norma∞ messagσ anΣá contro∞á wil∞ ì
  827.         pass to the disassembler pass one:
  828.  
  829.  
  830.         Quit Control Break definition - 
  831.  
  832.  
  833.  
  834.         Alternatσ Response║á Iµ yo⌡ havσ no⌠ saveΣ you≥ breaδ table¼á yo⌡ ì
  835.         wil∞ ge⌠ thσ followinτ warninτ message:
  836.  
  837.  
  838.         Quit < Informative ERROR >
  839.             attempt to QUIT without saving Break Addresses
  840.               either SAVE to a file    (using FS command),
  841.                   or QUIT without save (using Q  command)
  842.  
  843.  
  844.  
  845.         If you do not wish to save the table, just type "Q" again.
  846.  
  847.         -----------------------------------------------------------------
  848.  
  849.  
  850.  
  851.  
  852.                                      - 13 -
  853.  
  854.  
  855.  
  856.  
  857.  
  858.         Z80DIS -    Section 3: INSTRUCTIONS FOR EXECUTION    - 28 JULY 85
  859.  
  860.  
  861.         I
  862.         A
  863.         B
  864.         W
  865.         T
  866.         S
  867.  
  868.              Purpose║á Thesσá si°á command≤ se⌠ breaδ tablσ addresse≤á t∩ ì
  869.         define transition points in the disassembly mode.
  870.  
  871.              Response║á Thσá prograφ wil∞ completσ thσ commanΣá linσá anΣ ì
  872.         positioε thσ curso≥ fo≥ entr∙ oµ ß Hexadecima∞ number:
  873.  
  874.         I at .... hex
  875.  
  876.         Yo⌡ ente≥ thσ addres≤ followeΣ b∙ <CR>« An∙ numbe≥ tha⌠ yo⌡ ente≥ ì
  877.         wil∞ bσ righ⌠ justifieΣ iε thσ fou≥ digit≤ wheε yo⌡ pusΦ <CR>« Iµ ì
  878.         thσ addres≤ i≤ ou⌠ oµ rangσ oµ thσ prograφ addresses¼á onσ oµ thσ ì
  879.         followinτ informativσ messagσ i≤ given:
  880.  
  881.                   < ERROR: address below start, set to start >
  882.                   < ERROR: address above stop, ignored >
  883.  
  884.         EacΦáá breaδá addres≤á define≤á thσá star⌠á oµá tha⌠á mode«áá Thσ ì
  885.         disassembl∙ modσ defineΣ b∙ tha⌠ breaδ addres≤ remain≤ iεá effec⌠ ì
  886.         unti∞á onσá bytσ beforσ thσ nex⌠ breaδ addres≤ o≥ thσ enΣ oµá thσ ì
  887.         prograφá memory«á Iµ yo⌡ ente≥ ß breaδ a⌠ thσ samσ addres≤ a≤á aε ì
  888.         existinτá breaδá address¼á thσ forme≥ definitioεá i≤á overwritteε ì
  889.         without comment.
  890.  
  891.         This disassembler can operate in six modes:
  892.  
  893.              I = Instructions    
  894.                   (Either Z80 full set or 8080 sub set)
  895.  
  896.              A = Ascii text using DEFM with quoted strings 
  897.                   (an Ascii region is output as strings of characters)
  898.  
  899.              B = Byte storage using DEFB with hex byte values 
  900.                   (blocks of single bytes interpreted as numbers)
  901.  
  902.              W = Word storage using DEFW with hex word values 
  903.                   (blocks of double byte words interpreted as numbers)
  904.  
  905.              T = Table of addresses using DEFW with address labels
  906.                   (blocks of byte pairs interpreted as addresses)
  907.  
  908.              S = Space using DEFS and the length
  909.                   (blocks of empty space of uninterpreted content)
  910.  
  911.         -----------------------------------------------------------------
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.                                      - 14 -
  919.  
  920.  
  921.  
  922.  
  923.  
  924.         Z80DIS -    Section 3: INSTRUCTIONS FOR EXECUTION    - 28 JULY 85
  925.  
  926.  
  927.         _      ( any other command not listed above )
  928.  
  929.              Purpose║ Iµ yo⌡ can'⌠ thinδ oµ an∙ commands¼ ente≥ anything.
  930.  
  931.              Response║á Thσ prograφ wil∞ responΣ witΦ thσ followinτ shor⌠ ì
  932.         criΓá note«á a≤ i⌠ says¼á t∩ seσ morσ helpfu∞ information¼á ente≥ ì
  933.         "H".
  934.  
  935.         _ is unacceptable, commands are: C,F,L,H,K,P,Q;
  936.                         Break Types are: I,A,B,W,T,S
  937.            To see complete definitions, enter H.
  938.         
  939.  
  940.         -----------------------------------------------------------------
  941.  
  942.  
  943.         Upoεá entr∙á oµ thσ Qui⌠ command¼á thσ actua∞á disassembl∙á wil∞ ì
  944.         begin.
  945.  
  946.                                        --
  947.  
  948.  
  949.  
  950.         SECTION  3.│ -- EXECUTIO╬ PAS╙ ONE║á Durinτ thi≤ pas≤ thσ codσ i≤ ì
  951.         áááááááááácrackeΣá accordinτá t∩á thσá breaδá table¼áá thσá cros≤ ì
  952.         ááááááááááreferencσ lis⌠ structurσ i≤ linkeΣ int∩ thσ PASCA╠ hea≡ ì
  953.         ááááááááááspacσ iε uppe≥ memory¼á thσ crackeΣ codσ i≤ copieΣ witΦ ì
  954.         áááááááááácontex⌠áá informatioεá ont∩á ßá scratcΦáá filσáá calleΣ ì
  955.         ááááááááááZ80DIS.$$$«á Durinτ pas≤ one¼á you≥ consolσ screeε wil∞ ì
  956.         áááááááááádispla∙ thσ following:
  957.         
  958.         |================================================================
  959.         | Beginning disassembly...
  960.         | THIS IS Pass 1
  961.         | working at 05F0 Asc
  962.         |================================================================
  963.         
  964.         Thσá "workinτá atóá linσ i≤ animateΣ anΣ wil∞á sho≈á thσá curren⌠ ì
  965.         addres≤ anΣ disassembl∙ mode« Iε thσ illustrateΣ casσ thσ prograφ ì
  966.         ha≤á jus⌠á finisheΣ processinτ thσ filσ D.CO═ anΣ thσ las⌠á breaδ ì
  967.         type was ascii.
  968.  
  969.         Durinτ an∙ executioε phase¼á yo⌡ ma∙ typσ ^├ t∩ abor⌠ tha⌠ phase« ì
  970.         Iµá yo⌡ abor⌠ durinτ pas≤ one¼á thσ prograφ wil∞ trea⌠ tha⌠ a≤á ß ì
  971.         prematurσá enΣ oµ filσ anΣ g∩ oε t∩ proces≤ wha⌠ i⌠á ha≤á througΦ ì
  972.         pass two.
  973.           
  974.                                        --
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.                                      - 15 -
  985.  
  986.  
  987.  
  988.  
  989.  
  990.         Z80DIS -    Section 3: INSTRUCTIONS FOR EXECUTION    - 28 JULY 85
  991.  
  992.  
  993.         SECTION  3.┤á -- EXECUTIO╬á PAS╙ TWO║á Durinτ thi≤ pas≤ al∞á use≥ ì
  994.         ááááááááááoutpu⌠ file≤ anΣ listing≤ arσ produceΣ anΣ thσá scratcΦ ì
  995.         ááááááááááfilσá i≤ erased«á Durinτ pas≤ two¼á you≥ consolσ screeε ì
  996.         ááááááááááwil∞ displa∙ thσ following:
  997.         
  998.         |================================================================
  999.         | THIS IS Pass 2
  1000.         | scratch file contains 396 records of 30 bytes each
  1001.         | Freσ memor∙ spacσ remaininτ afte≥ XRE╞ tablσ storagσ 
  1002.         |   assignment≤ i≤ 2914┤ byte≤ ou⌠ oµ thσ origina∞ 3130░ 
  1003.         |   byte≤ (o≥   6.╣ percen⌠ used.)
  1004.         |
  1005.         | LISTING cross references
  1006.         |
  1007.         | LISTING Subroutines
  1008.         |
  1009.         | PRODUCING disassembled output files
  1010.         |   Processing external label equates
  1011.         |   Working at 05F0 Asc
  1012.         |================================================================
  1013.         
  1014.         Thσá displa∙ wil∞ takσ yo⌡ ste≡ b∙ ste≡ througΦ pas≤ tw∩ anΣ sho≈ ì
  1015.         you what the program is doing at each step.
  1016.  
  1017.         Thσ informativσ message≤ abou⌠ filσ anΣ memor∙ spacσ wil∞ le⌠ yo⌡ ì
  1018.         see just how close to capacity the program is running.
  1019.  
  1020.         Thσá "workinτá atóá linσ i≤ animateΣ anΣ wil∞á sho≈á thσá curren⌠ ì
  1021.         addres≤ anΣ disassembl∙ mode« Iε thσ illustrateΣ casσ thσ prograφ ì
  1022.         ha≤á jus⌠á finisheΣ pass two processinτ of thσ filσ D.CO═.
  1023.  
  1024.         Durinτ an∙ executioε phase¼á yo⌡ ma∙ typσ ^├ t∩ abor⌠ tha⌠ phase« ì
  1025.         Iµá yo⌡ abor⌠ durinτ an∙ oµ thσ step≤ oµ pas≤á two¼á thσá prograφ ì
  1026.         wil∞á g∩ oε t∩á proces≤ the next step.
  1027.  
  1028.         Wheε thσ prograφ i≤ complete¼ Z80DI╙ wil∞ rinτ you≥ termina∞ bel∞ ì
  1029.         twice and display the sign-off message..
  1030.           
  1031.         |================================================================
  1032.         | END of Pass 2
  1033.         |================================================================
  1034.         
  1035.                                        --
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.                                      - 16 -
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.         Z80DIS -    Section 3: INSTRUCTIONS FOR EXECUTION    - 28 JULY 85
  1057.  
  1058.  
  1059.         SECTION  3.╡á -- LIMITATION╙á AN─á RUN-TIM┼á ERRORS║áá Therσá arσ ì
  1060.         áááááááááásevera∞á error≤ whicΦ TURB╧ PASCA╠ caε producσ owinτ t∩ ì
  1061.         áááááááááálimitation≤ oε memor∙ o≥ filσ size«á Thi≤ sectioεá wil∞ ì
  1062.         áááááááááádiscuss those errors and the implications.
  1063.  
  1064.         Thσ followinτ overflo≈ condition≤ caε causσ troublσ iε runninτá ß ì
  1065.         largσ disassembly║ 
  1066.  
  1067.              1) Yo⌡á ma∙ overflo≈ thσ prograφ memor∙ spacσ useΣá t∩á holΣ ì
  1068.         ááááááááááthσ addres≤ references.
  1069.  
  1070.              2) Yo⌡á ma∙á overflo≈ Z80DIS.$$ñ scratcΦ filσ spacσ iεá pas≤ ì
  1071.         ááááááááááone.
  1072.  
  1073.              3) Yo⌡á ma∙á overflo≈ eithe≥ **.PR╬ o≥ **.MA├ filσ spacσá iε ì
  1074.         áááááááááápas≤ two.
  1075.  
  1076.         Nonσá oµá thesσá error≤á i≤ currentl∙ trappeΣ anΣá handleΣá iεá ß ì
  1077.         friendl∙á manner«á EacΦá generate≤ ß TURB╧á PASCA╠á error«á TURB╧ ì
  1078.         distinguisheΣá betweeεá "Runtimeó error≤ an≤á "I/Oóá errors«á Thσ ì
  1079.         erro≥ code≤ whicΦ caε bσ expecteΣ arσ a≤ follows:
  1080.  
  1081.              RUN-TIME ERRORS
  1082.  
  1083.                   F0 - Overlay file not found
  1084.  
  1085.                             Thσ Z80DI╙ overla∙ file≤ Z80DIS.00▒ anΣá .00▓ ì
  1086.         áááááááááááááááááááámus⌠á bσá oε you≥ loggeΣ drive«á Kee≡ al∞á oµ ì
  1087.         ááááááááááááááááááááZ80DI╙ oε you≥ loggeΣ drivσ anΣ refe≥ t∩ you≥ ì
  1088.         áááááááááááááááááááádatßá file≤ witΦ drivσ prefixe≤ iµá necessar∙ ì
  1089.         áááááááááááááááááááá(e.g. B:D.COM)
  1090.  
  1091.                   FF - Heap/Stack collision
  1092.  
  1093.                             Yo⌡á havσá to∩ man∙ label≤ t∩á reference≤á t∩ ì
  1094.         áááááááááááááááááááálabel≤á fo≥ thσ memor∙á spacσá allowed«á EacΦ ì
  1095.         áááááááááááááááááááálabe∞á definitioε take≤ ╣ bytes¼á eacΦá labe∞ ì
  1096.         ááááááááááááááááááááreferencσá take≤á ╡ bytes¼á eacΦ breaδá tablσ ì
  1097.         ááááááááááááááááááááaddres≤á take≤ ╡ bytes«á Thσá allocatioεá fo≥ ì
  1098.         ááááááááááááááááááááthi≤á versioεá oµá Z80DI╙á i≤á roughl∙á 24000 ì
  1099.         áááááááááááááááááááábytes«á Tha⌠á i≤á abou⌠á 1125 label≤á a⌠á tw∩ ì
  1100.         ááááááááááááááááááááreferences per label.
  1101.  
  1102.              I/O ERRORS
  1103.  
  1104.                   F0 - Disk Write error
  1105.  
  1106.                             Yo⌡ disδ i≤ full« Iµ thi≤ occur≤ iε pas≤ one¼ ì
  1107.         ááááááááááááááááááááthσ disδ witΦ thσ scratcΦ filσ i≤á full«á Yo⌡ ì
  1108.         ááááááááááááááááááááshoulΣá movσ thσ scratcΦ filσ t∩ ß disδá witΦ ì
  1109.         áááááááááááááááááááámorσ space╗ thi≤ i≤ donσ durinτ initia∞ setu≡ ì
  1110.         ááááááááááááááááááááquestioεá anΣ answe≥ sessioε wheε thσ prograφ ì
  1111.         ááááááááááááááááááááask≤á fo≥ thσ residencσ disδ oµá thσá scratcΦ ì
  1112.         ááááááááááááááááááááfile.
  1113.  
  1114. è
  1115.  
  1116.                                      - 17 -
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.         Z80DIS -    Section 3: INSTRUCTIONS FOR EXECUTION    - 28 JULY 85
  1123.  
  1124.  
  1125.                             Iµ thi≤ occur≤ durinτ pas≤ two¼á theεá eithe≥ ì
  1126.         ááááááááááááááááááááthσá **.PR╬á filσá o≥á thσá **.MA├á filσá ha≤ ì
  1127.         ááááááááááááááááááááoverfloweΣá disδá spacσá (thσá .PR╬á filσá i≤ ì
  1128.         ááááááááááááááááááááconsiderabl∙ large≥ thaε thσ .MA├ file.⌐ Thi≤ ì
  1129.         ááááááááááááááááááááwil∞ normall∙ no⌠ happeε iε ß ruε fo≥á cross-ì
  1130.         ááááááááááááááááááááreferencσá onl∙á a≤á thσ .PR╬á filσá i≤á mucΦ ì
  1131.         áááááááááááááááááááásmalle≥á anΣá thσ .MA├ filσ i≤ no⌠á produced« ì
  1132.         ááááááááááááááááááááThσá onl∙á cure≤á fo≥á thi≤á probleφá arσá t∩ ì
  1133.         áááááááááááááááááááádisassemblσá b∙ part≤ o≥ t∩ movσ thesσá file≤ ì
  1134.         áááááááááááááááááááát∩ ß drivσ witΦ morσ spacσ (i.e«á usσ ß drivσ ì
  1135.         ááááááááááááááááááááprefi°á wheεá answerinτ thσ questioεá "OUTPU╘ ì
  1136.         ááááááááááááááááááááfile║ _____")
  1137.  
  1138.                   F1 - Directory full
  1139.  
  1140.                             Onσ oµ you≥ disδ directorie≤ i≤ full« Iµ thi≤ ì
  1141.         ááááááááááááááááááááoccur≤á durinτ pas≤ one¼á i⌠ i≤ thσ disδ witΦ ì
  1142.         ááááááááááááááááááááZ80DIS.$$$«á Iµ thi≤ occur≤ durinτ pas≤á two¼ ì
  1143.         áááááááááááááááááááátheεá eithe≥á thσ **.PR╬ filσ o≥á thσá **.MA├ ì
  1144.         ááááááááááááááááááááfilσ arσ involved« Yo⌡ mus⌠ erasσ ß couplσ oµ ì
  1145.         ááááááááááááááááááááfile≤á o≥ usσ ß disδ witΦ spacσ remaininτá iε ì
  1146.         ááááááááááááááááááááthσ directory.
  1147.  
  1148.  
  1149.         N∩ othe≥ TURB╧ error≤ arσ expected«á Mos⌠ al∞ typσ iε format≤ anΣ ì
  1150.         filσá existencσá problem≤ arσ caugh⌠ b∙ thσ prograφ anΣá yo⌡á arσ ì
  1151.         given appropriate helpful suggestions.
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.                                      - 18 -
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.         Z80DIS -   Section 4: ADAPTATION TO YOUR TERMINAL    - 28 JULY 85
  1189.  
  1190.  
  1191.                                   - SECTION 4 -
  1192.                       ADAPTATIO╬ O╞ Z80DIS T╧ YOU╥ TERMINAL
  1193.  
  1194.         CP/═á i≤á ß generiπ operatinτ system¼á bu⌠ mos⌠ oµ thσá terminal≤ ì
  1195.         useΣá witΦá CP/═ havσ feature≤ no⌠á anticipateΣá b∙á CP/M«á Thesσ ì
  1196.         feature≤á includσá CURSO╥á ADDRESSinτ anΣ BRIGHT/DI═á displa∙á oµ ì
  1197.         characters«á Thi≤á prograφ utilize≤ sucΦ feature≤ t∩ improvσá thσ ì
  1198.         operato≥ interaction«á  A≤ thσ prograφ itselµ i≤ writteε iε TURB╧ ì
  1199.         PASCAL¼á thσ TURB╧ installatioε suppor⌠ featurσ ha≤ beeε useΣá t∩ ì
  1200.         makσ thi≤ adaptatioε easy.
  1201.          
  1202.         Therefore¼á beforσ yo⌡ usσ thi≤ program¼á i⌠ mus⌠ bσ installeΣ t∩ ì
  1203.         you≥á particula≥á terminal¼á b∙á providinτá i⌠á witΦá informatioε ì
  1204.         regardinτ contro∞ character≤ requireΣ fo≥ certaiε functions« Thi≤ ì
  1205.         installatioε i≤ easil∙ performeΣ usinτ thσ prograφ ZDINSTA╠ whicΦ ì
  1206.         i≤ describeΣ iε thi≤ section.
  1207.  
  1208.         Thσ followinτ file≤ arσ par⌠ oµ thi≤ prograφ installatioε packagσ ì
  1209.         anΣá mus⌠á bσá presen⌠ durinτ termina∞á installatioεá (thσá threσ ì
  1210.         ZDINSTAL.¬á file≤á ma∙ theε bσ deleteΣ afte≥ installatioεá iµá n∩ ì
  1211.         othe≥ terminal≤ arσ t∩ bσ supported)..
  1212.  
  1213.              Z80DIS.COM
  1214.                            - thσ prograφ yo⌡ wil∞ bσ installing
  1215.              Z80DIS.000
  1216.                            - optiona∞ overla∙ file≤ fo≥ Z80DI╙  (ma∙ be
  1217.              Z80DIS.001
  1218.                                one¼ several¼ o≥ nonσ dependinτ oε version)
  1219.  
  1220.              ZDINSTAL.CO═  
  1221.                            - thσ installatioε program
  1222.              ZDINSTAL.MSG
  1223.                            - contain≤ tex⌠ oµ ZDINSTA╠ message≤ 
  1224.              ZDINSTAL.DTA
  1225.                            - contain≤ termina∞ characteristic≤ data
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.                          - TH┼ INSTALLATIO╬ PROCEDUR┼ -
  1234.  
  1235.         Star⌠á thσá installatioεá b∙ typinτ ZDINSTA╠á a⌠á you≥á terminal« ì
  1236.         Selec⌠ Screeε installatioε froφ thσ maiε menu.
  1237.  
  1238.         ┴á numbereΣá men⌡ listinτ ß numbe≥ oµ popula≥ terminal≤ wil∞á ap-ì
  1239.         pear¼ invitinτ yo⌡ t∩ choosσ onσ b∙ enterinτ it≤ number.
  1240.  
  1241.         Iµ you≥ termina∞ i≤ mentioned¼á jus⌠ ente≥ thσ correspondinτ num-ì
  1242.         ber¼á anΣá thσ installatioε i≤ complete«á Beforσ installatioεá i≤ ì
  1243.         actuall∙ performed¼ yo⌡ arσ askeΣ thσ question..
  1244.  
  1245.         D∩ yo⌡ wan⌠ t∩ modif∙ thσ definitioε beforσ installation┐ _
  1246.  
  1247.              Thi≤á allow≤á yo⌡ t∩ modif∙ onσ o≥ morσ oµ thσ value≤á beinτ ì
  1248.         installeΣá a≤ describeΣ iε thσ following«á Iµ yo⌡ d∩ no⌠ wan⌠á t∩ ì
  1249.         modif∙ thσ termina∞ definition¼ jus⌠ typσ N¼ anΣ thσ installatioε ì
  1250.         wil∞á completσ b∙ askinτ yo⌡ thσ operatinτ frequenc∙ oµ you≥á CP╒ ì
  1251.         t∩ establisΦ parameter≤ fo≥ timinτ loops.
  1252. è
  1253.  
  1254.                                      - 19 -
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.         Z80DIS -   Section 4: ADAPTATION TO YOUR TERMINAL    - 28 JULY 85
  1261.  
  1262.  
  1263.  
  1264.         Iµ you≥ termina∞ i≤ notä oε thσ menu¼ however¼ yo⌡ mus⌠ definσ thσ ì
  1265.         requireΣ value≤ yourself«á Thσ value≤ caε mos⌠ probabl∙ bσá founΣ ì
  1266.         iε thσ manua∞ supplieΣ witΦ you≥ terminal.
  1267.  
  1268.         Ente≥á thσá numbe≥ correspondinτ t∩ Nonσ oµ thσ aboveä anΣá answe≥ ì
  1269.         thσ question≤ onσ b∙ onσ a≤ the∙ appea≥ oε thσ screen.
  1270.  
  1271.         Iεá thσ following¼á eacΦ commanΣ yo⌡ ma∙ instal∞ i≤ describeΣá iε ì
  1272.         detail«á You≥ termina∞ ma∙ no⌠ suppor⌠ al∞ thσ command≤ tha⌠á caε ì
  1273.         bσ installed«á Iµ so¼á jus⌠ pas≤ thσ commanΣ no⌠ needeΣ b∙ typinτ ì
  1274.         RETUR╬ iε responsσ t∩ thσ prompt« Iµ Deletσ line¼ Inser⌠ line,ô o≥ ì
  1275.         Erasσá t∩ enΣ oµ lineô i≤ no⌠ installed¼á thesσ function≤ wil∞á bσ ì
  1276.         emulateΣ iε software¼ slowinτ screeε performancσ somewhat.
  1277.  
  1278.         Command≤ ma∙ bσ entereΣ eithe≥ simpl∙ b∙ pressinτ thσ appropriatσ ì
  1279.         key≤ o≥ b∙ enterinτ thσ decima∞ o≥ hexadecima∞ ASCI╔ valuσ oµ thσ ì
  1280.         command«á Iµá ß commanΣ require≤ thσ tw∩ character≤ 'ESCAPEºá anΣ ì
  1281.         '='¼ may...
  1282.                                      eitherô 
  1283.  
  1284.              Pres≤á firs⌠á thσ Escä key¼á theε thσ =«á Thσ entr∙á wil∞á bσ ì
  1285.         echoeΣ witΦ appropriatσ labels¼ i.e« <ESC╛ =.
  1286.  
  1287.                                        or
  1288.  
  1289.              Ente≥ thσ decima∞ o≥ hexadecima∞ value≤ separateΣ b∙ spaces« ì
  1290.         Hexadecima∞ value≤ mus⌠ bσ precedeΣ b∙ ß dollar-sign«á Ente≥ e.g« ì
  1291.         2╖ 6▒  o≥  $1┬ 6▒  o≥  $1┬ $3─  whicΦ arσ al∞ equivalent« 
  1292.  
  1293.         Thσá tw∩ method≤ canno⌠ bσ mixed¼á i.e«á oncσ yo⌡ havσ entereΣá ß ì
  1294.         non-numeriπá character¼á thσ res⌠ oµ tha⌠ commanΣ mus⌠ bσ defineΣ ì
  1295.         iε tha⌠ mode¼ anΣ visσ versa« 
  1296.  
  1297.         ┴ hypheε entereΣ a≤ thσ ver∙ firs⌠ characte≥ i≤ useΣ t∩ deletσá ß ì
  1298.         command¼ anΣ echoe≤ thσ tex⌠ Nothing.
  1299.  
  1300.         -----------------------------------------------------------------
  1301.         Termina∞ type║ _
  1302.  
  1303.              Ente≥á thσá namσ oµ thσ termina∞ yo⌡ arσ abou⌠á t∩á install« ì
  1304.         Wheεá yo⌡ completσ ZDINSTAL¼á thσ value≤ wil∞ bσ stored¼á anΣ thσ ì
  1305.         termina∞á namσ wil∞ appea≥ oε thσ initia∞ lis⌠ oµá terminals«á Iµ ì
  1306.         yo⌡ late≥ neeΣ t∩ re-instal∞ Z80DI╙ t∩ thi≤ terminal¼á yo⌡ caε d∩ ì
  1307.         tha⌠ b∙ choosinτ i⌠ froφ thσ list« 
  1308.  
  1309.         -----------------------------------------------------------------
  1310.         SenΣ aε initializatioε strinτ t∩ thσ terminal┐ _
  1311.  
  1312.              Iµá yo⌡ wan⌠ t∩ initializσ you≥ termina∞ wheε Z80DI╙á start≤ ì
  1313.         (e.g«á t∩ dowε loaΣ command≤ t∩ programmablσ functioε keys)¼á yo⌡ ì
  1314.         answe≥ Yä fo≥ ye≤ t∩ thi≤ question« Iµ not¼ jus⌠ hi⌠ RETURN.
  1315.  
  1316.              Iµ yo⌡ answe≥ Y¼ yo⌡ ma∙ choosσ betweeε enterinτ thσ commanΣ ì
  1317.         directl∙á o≥ defininτ ß filσ namσ containinτ thσ commanΣá string« ìè
  1318.  
  1319.                                      - 20 -
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.         Z80DIS -   Section 4: ADAPTATION TO YOUR TERMINAL    - 28 JULY 85
  1326.  
  1327.  
  1328.         Thσá latte≥ i≤ ß gooΣ ideß iµ thσ initializatioε strinτ i≤á long¼ ì
  1329.         a≤ e.g« ß strinτ t∩ prograφ ß numbe≥ oµ functioε key≤ woulΣ be« 
  1330.  
  1331.         -----------------------------------------------------------------
  1332.         SenΣ ß rese⌠ strinτ t∩ thσ terminal┐ _
  1333.  
  1334.              Here¼á yo⌡á ma∙á definσ ß strinτ t∩ bσ sen⌠ t∩ thσá termina∞ ì
  1335.         wheεá Z80DI╙ terminates«á Thσ descriptioε oµá thσá initializatioε ì
  1336.         commanΣ abovσ applie≤ here.
  1337.  
  1338.         -----------------------------------------------------------------
  1339.         CURSO╥ LEAD-I╬ command║ _
  1340.  
  1341.              Curso≥á Lead-iεá i≤ ß specia∞ sequencσ oµá character≤á whicΦ ì
  1342.         tell≤á you≥ termina∞ tha⌠ thσ followinτ character≤ arσ aε addres≤ ì
  1343.         oε thσ screeε oε whicΦ thσ curso≥ shoulΣ bσ placed« 
  1344.  
  1345.              Wheεá yo⌡ definσ thi≤ command¼á yo⌡ arσ askeΣ thσá followinτ ì
  1346.         supplementar∙ questions..
  1347.  
  1348.         -----------------------------------------------------------------
  1349.         CURSO╥ POSITIONIN╟ COMMAN─ t∩ senΣ betweeε linσ anΣ column║ _
  1350.  
  1351.              Somσ terminal≤ neeΣ ß commanΣ betweeε thσ tw∩ number≤á defi-ì
  1352.         ninτ thσ ro≈ anΣ columε curso≥ address.
  1353.  
  1354.         -----------------------------------------------------------------
  1355.         CURSO╥ POSITIONIN╟ COMMAN─ t∩ senΣ afte≥ linσ anΣ column║ _
  1356.  
  1357.              Somσ terminal≤ neeΣ ß commanΣ afte≥ thσ tw∩ number≤ defininτ ì
  1358.         thσ ro≈ anΣ columε curso≥ address.
  1359.  
  1360.         -----------------------------------------------------------------
  1361.         Columε first┐ _
  1362.  
  1363.              Mos⌠ terminal≤ requirσ thσ addres≤ oε thσ format║ firs⌠ ROW¼ ì
  1364.         theε COLUMN«á Iµ thi≤ i≤ thσ casσ oε you≥ terminal¼á answe≥ N« Iµ ì
  1365.         you≥ termina∞ want≤ COLUM╬ first¼ theε ROW¼ theε answe≥ Y.
  1366.          
  1367.         -----------------------------------------------------------------
  1368.         OFFSE╘ t∩ adΣ t∩ LINE _ 
  1369.  
  1370.              Ente≥ thσ numbe≥ t∩ adΣ t∩ thσ LIN┼ (ROW⌐ address.
  1371.  
  1372.         -----------------------------------------------------------------
  1373.         OFFSE╘ t∩ adΣ t∩ COLUMN _
  1374.  
  1375.              Ente≥ thσ numbe≥ t∩ adΣ t∩ thσ COLUM╬ address.
  1376.  
  1377.         -----------------------------------------------------------------
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.                                      - 21 -
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.         Z80DIS -   Section 4: ADAPTATION TO YOUR TERMINAL    - 28 JULY 85
  1392.  
  1393.  
  1394.         Binar∙ address┐ _
  1395.  
  1396.              Mos⌠á terminal≤ neeΣ thσ curso≥ addres≤ sen⌠ oε binar∙ form« ì
  1397.         Iµá tha⌠ i≤ truσ fo≥ you≥ terminal¼á ente≥ Y«á Iµá you≥á termina∞ ì
  1398.         expect≤ thσ curso≥ addres≤ a≤ ASCI╔ digits¼á ente≥ N«á Iµ so¼ yo⌡ ì
  1399.         arσ askeΣ thσ supplementar∙ question..
  1400.  
  1401.         -----------------------------------------------------------------
  1402.         ▓ o≥ │ ASCI╔ digits┐ _
  1403.  
  1404.              Ente≥ thσ numbe≥ oµ digit≤ iε thσ curso≥ addres≤ fo≥    you≥ ì
  1405.         terminal.
  1406.  
  1407.         -----------------------------------------------------------------
  1408.         CLEA╥ SCREE╬ command║ _
  1409.  
  1410.              Ente≥á thσá commanΣ tha⌠ wil∞ clea≥ thσ entirσá content≤á oµ ì
  1411.         you≥ screen¼ botΦ foregrounΣ anΣ background¼ iµ applicable.
  1412.  
  1413.         -----------------------------------------------------------------
  1414.         Doe≤ CLEA╥ SCREE╬ als∩ HOM┼ cursor┐ _
  1415.  
  1416.              Thi≤ i≤ normall∙ thσ case╗ iµ i⌠ i≤ no⌠ s∩ oε you≥ terminal¼ ì
  1417.         ente≥ N¼ anΣ definσ thσ curso≥ HOM┼ command.
  1418.  
  1419.         -----------------------------------------------------------------
  1420.         DELET┼ LIN┼ command║ _
  1421.  
  1422.              Ente≥ thσ commanΣ tha⌠ delete≤ thσ entirσ linσ a⌠ thσ curso≥ ì
  1423.         position.
  1424.  
  1425.         -----------------------------------------------------------------
  1426.         INSER╘ LIN┼ command║ _
  1427.  
  1428.              Ente≥á thσá commanΣ tha⌠ insert≤ ß linσ a⌠ thσ curso≥á posi-ì
  1429.         tion.
  1430.  
  1431.         -----------------------------------------------------------------
  1432.         ERAS┼ T╧ EN─ O╞ LIN┼ command║ _
  1433.  
  1434.              Ente≥á thσ commanΣ tha⌠ erase≤ thσ linσ a⌠ thσ curso≥á posi-ì
  1435.         tioε froφ thσ curso≥ positioε througΦ thσ righ⌠ enΣ oµ thσ line.
  1436.  
  1437.         -----------------------------------------------------------------
  1438.         STAR╘ O╞ 'LO╫ VIDEOº command║ _
  1439.  
  1440.              Iµ you≥ termina∞ support≤ differen⌠ vide∩ intensities¼á theε ì
  1441.         definσá thσ commanΣ tha⌠ initiate≤ thσ DIMä vide∩á here«á Iµá thi≤ ì
  1442.         commanΣ i≤ defined¼ thσ followinτ questioε i≤ asked . . .
  1443.  
  1444.         -----------------------------------------------------------------
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.                                      - 22 -
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.         Z80DIS -   Section 4: ADAPTATION TO YOUR TERMINAL    - 28 JULY 85
  1458.  
  1459.  
  1460.         STAR╘ O╞ 'NORMA╠ VIDEOº command║ _
  1461.  
  1462.              Definσá thσ commanΣ tha⌠ set≤ thσ screeε t∩ sho≈á character≤ ì
  1463.         iε 'normalº video.
  1464.              
  1465.         -----------------------------------------------------------------
  1466.         Numbe≥ oµ row≤ (lines⌐ oε you≥ screen║ _
  1467.  
  1468.              Ente≥ thσ numbe≥ oµ horizonta∞ line≤ oε you≥ screen.
  1469.  
  1470.         -----------------------------------------------------------------
  1471.         Numbe≥ oµ column≤ oε you≥ screen║ _
  1472.  
  1473.              Ente≥ thσ numbe≥ oµ columε position≤ oε you≥ screen.
  1474.  
  1475.         -----------------------------------------------------------------
  1476.         Dela∙ afte≥ CURSO╥ ADDRES╙ (0-25╡ ms)║ _
  1477.         Dela∙ afte≥ CLEAR¼ DELETE¼ anΣ INSER╘ (0-25╡ ms)║ _
  1478.         Dela∙ afte≥ ERAS┼ T╧ EN─ O╞ LIN┼ anΣ HIGHLIGH╘ On/Ofµ (0-25╡ ms)║ ì
  1479.         
  1480.  
  1481.              Ente≥ thσ dela∙ iε millisecond≤ requireΣ afte≥ thσ function≤ ì
  1482.         specified« RETUR╬ mean≤ ░ (n∩ delay).
  1483.  
  1484.         -----------------------------------------------------------------
  1485.         I≤ thi≤ definitioε correct┐ _     
  1486.  
  1487.              Iµ yo⌡ havσ madσ an∙ error≤ iε thσ definitions¼ ente≥ N« Yo⌡ ì
  1488.         wil∞ theε returε t∩ thσ termina∞ selectioε menu« Thσ installatioε ì
  1489.         datßá yo⌡ havσ jus⌠ entereΣ wil∞ bσ includeΣ iε thσá installatioε ì
  1490.         datß filσ anΣ appea≥ oε thσ termina∞ selectioε menu¼á bu⌠ instal-ì
  1491.         latioε wil∞ notä bσ performed« 
  1492.  
  1493.              Wheεá yo⌡á ente≥á Yä iε responsσ t∩ thi≤á question¼á yo⌡á arσ ì
  1494.         asked.« 
  1495.  
  1496.         -----------------------------------------------------------------
  1497.         Operatinτ frequenc∙ oµ you≥ microprocesso≥ iε MH· (fo≥ delays)║ _
  1498.  
  1499.              A≤á thσá delay≤á specifieΣá earlie≥á arσá dependinτá oεá thσ ì
  1500.         operatinτ frequenc∙ oµ you≥ CPU¼ yo⌡ mus⌠ definσ thi≤ value« 
  1501.  
  1502.         -----------------------------------------------------------------
  1503.  
  1504.  
  1505.         Thσá installatioε i≤ finished¼á installatioε datß i≤á writteεá t∩ ì
  1506.         Z80DIS¼á anΣ yo⌡ returε t∩ thσ oute≥ menu«á Ne≈ installatioε datß ì
  1507.         i≤á als∩ saveΣ iε thσ installatioε datß filσ anΣ thσ ne≈ termina∞ ì
  1508.         wil∞ appea≥ oε thσ termina∞ selectioε lis⌠ wheε yo⌡ ruεá ZDINSTA╠ ì
  1509.         iε the future.
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.                                      - 23 -
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.         Z80DIS -  Section 5: EXAMPLE OF FIRST ATTEMPT OUTPUT - 28 JULY 85
  1524.  
  1525.  
  1526.                                   - SECTION 5 -
  1527.                  EXAMPLE OF FIRST ATTEMPT AT DEFAULT DISASSEMBLY
  1528.  
  1529.         Thσá followinτá i≤ par⌠ oµ thσ listinτ produceΣá b∙á runninτá thσ ì
  1530.         disassemble≥á agains⌠á ß cop∙ oµ thσ publiπ domaiε prograφá D.CO═ ì
  1531.         withou⌠á ß breaδ table«á Thσ breaδ table¼á whicΦ specifie≤á whicΦ ì
  1532.         addresse≤á arσ t∩ bσ treateΣ a≤ instruction≤ anΣ whicΦ arσ t∩á bσ ì
  1533.         treateΣ a≤ variou≤ type≤ oµ data¼á i≤ defaulteΣ t∩ INS«á Thu≤ al∞ ì
  1534.         byte≤á arσ treateΣ a≤ instructions«á Thσ breaδ tablσ i≤ showεá oε ì
  1535.         thσ firs⌠ pagσ oµ thσ .PRNä file«á A≤ showε below¼á thσ tablσ con-ì
  1536.         sist≤ oµ "In≤ 0100-FFFE".
  1537.  
  1538.         Thσá CROS╙ REFERENCEä listing¼á oε thσ seconΣ page¼á i≤ thσá firs⌠ ì
  1539.         placσ t∩ look«á Al∞ referenced¼á anΣ somσ unreferenced¼ addresse≤ ì
  1540.         arσá showεá witΦ eacΦ referencinτ addres≤ anΣ typσ oµá reference« ì
  1541.         Datßáá reference≤áá arσá clearl∙áá separateΣáá froφáá instructioε ì
  1542.         references╗ thσ labelinτ code≤ anΣ thσ referencσ legenΣ tel∞ all« ì
  1543.         Oεá thi≤ particula≥ listinτ severa∞ block≤ tha⌠ arσ clearl∙á datß ì
  1544.         stanΣ out╗ other≤ ma∙ sho≈ u≡ a≤ thσ breaδ tablσ i≤ expanded.
  1545.  
  1546.         UnreferenceΣá labels¼á sucΦá a≤ thosσ a⌠ 043╡ througΦá 045C¼á arσ ì
  1547.         generateΣá onl∙á fo≥ INStructioε modσá disassembleΣá section≤á oµ ì
  1548.         code«á The∙á wil∞á bσá createΣá wheε therσ i≤á n∩á jum≡á o≥á cal∞ ì
  1549.         referencσá t∩á aεá instructioε followinτá aεá unconditiona∞á jum≡ ì
  1550.         instruction« UnreferenceΣ label≤ shoulΣ bσ vieweΣ witΦ suspicion╗ ì
  1551.         the∙ ma∙ properl∙ appea≥ iε ß correc⌠ disassembl∙ fo≥ onl∙ ß ver∙ ì
  1552.         fe≈á reasons║á 1⌐á Thσ programme≥ ha≤ includeΣ ß standarΣ se⌠á oµ ì
  1553.         subroutines¼á bu⌠ doe≤ no⌠ usσ al∞ oµ them« 2⌐ Yo⌡ havσ donσ onl∙ ì
  1554.         ßá partia∞ disassembly¼á anΣ somσ othe≥ codσ no⌠á processeΣá doe≤ ì
  1555.         referencσ thσ addresses.
  1556.  
  1557.         Datßá reference≤á ma∙ bσ considereΣ soliΣ iµ botΦ LOADä anΣá STOREä ì
  1558.         reference≤ sho≈ up«á Iε thi≤ listing¼ therσ i≤ clearl∙ ß onσ bytσ ì
  1559.         storagσá cel∞ a⌠ D.02E╢ a≤ wel∞ a≤ ß blocδ oµ botΦ worΣ anΣá bytσ ì
  1560.         storagσ cell≤ a⌠ D.047╡ througΦ D.0479« Apparentl∙ n∩ instructioε ì
  1561.         codσ exist≤ pas⌠ D.0C3D.
  1562.  
  1563.         Thσá REFERENCE─á SUBROUTINEä list¼á oε thσ page(s⌐á followinτá thσ ì
  1564.         cros≤á referencσá list¼á i≤ therσ t∩ providσ ß placσ fo≥á yo⌡á t∩ ì
  1565.         annotatσá thσ purposσ oµ eacΦ identifieΣ subroutine«á T∩ ge⌠ ont∩ ì
  1566.         thi≤á list¼á aε addres≤ mus⌠ bσ referenceΣ b∙ ß CALLäá o≥á RESTARTä ì
  1567.         instructioεá anΣá mus⌠ no⌠ bσ referenceΣ a≤ ß datß storagσá area« ì
  1568.         Thσ apparen⌠ reference≤ t∩ C.003╕ a≤ RESTARTä call≤ arσ suspiciou≤ ì
  1569.         a≤ thesσ arσ seldoφ useΣ iε CP/═ programs╗á thesσ reference≤ wil∞ ì
  1570.         turε ou⌠ t∩ bσ datß mis-interpreteΣ a≤ instructions.
  1571.  
  1572.         Thσá las⌠ placσ t∩ looδ i≤ thσ DISASSEMBLE─ CODEäá printout«á Herσ ì
  1573.         yo⌡á looδ fo≥ <╝ Illega∞ O≡ Codσ Bytσ >>«á Upoε examination¼á thσ ì
  1574.         illega∞ mi° oµ instruction≤ froφ 010│ througΦ 011╣ consist≤ oµá ß ì
  1575.         messagσá string«á Thσ ─ prograφ i≤ interestinτ fo≥ thσ usσ oµ thσ ì
  1576.         CAL╠ instructioε t∩ pusΦ in-linσ message≤ ont∩ thσ stack« Thσ mi° ì
  1577.         oµá instruction≤á froφ 013░ througΦ 013┴ i≤á anothe≥á examplσá oµ ì
  1578.         asciΘ datß interpreteΣ a≤ instructioε codes.
  1579.  
  1580.  
  1581.  
  1582.  
  1583.                                      - 24 -
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.        Z80DIS -  Section 5: EXAMPLE OF FIRST ATTEMPT OUTPUT - 28 JULY 85
  1590.  
  1591.  
  1592. ------------------ THE LISTING ------------------------------------------------
  1593.  
  1594. Demonstration without break table
  1595. the control parameter values used for this run of Z80DIS 1.5
  1596.  
  1597.    INPUT   file: D.COM
  1598.    OUTPUT  file: D.MAC
  1599.    LISTING file: D.PRN
  1600.  
  1601.           file LOAD  address 0100 hex
  1602.    disassembly START address 0100 hex
  1603.    disassembly STOP  address FFFF hex
  1604.  
  1605.    FULL DISASSEMBLY flag is set TRUE
  1606.         meaning.. Generate both XREF LIST and ASSEMBLY CODE output
  1607.  
  1608.    FULL Z80 flag is set to FALSE
  1609.         meaning.. Recognize only 8080 subset, but using Z80 mnemonics
  1610.  
  1611.    Control Breaks are set as follows:
  1612.  
  1613.   Ins 0100-FFFE
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.                                      - 25 -
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.        Z80DIS -  Section 5: EXAMPLE OF FIRST ATTEMPT OUTPUT - 28 JULY 85
  1656.  
  1657.  
  1658. Demonstration without break table
  1659. B:D.MAC - Source by Z80DIS 1.5, K.Gielow, Palo Alto, CA.
  1660.  
  1661.   Listing of all referenced addresses
  1662.  
  1663.   LABELING CODES: Where a CP/M address can be assumed, then name is used.
  1664.       otherwise, prefix J=JUMP (Jump references only), C=CALL (Call/Jump only),
  1665.          I=Immediate only, D=DATA (Load/Store/Immed.), X= any other combination
  1666.       if reference is singular, The second character will be # instead of .
  1667.  
  1668.   REFERENCE LEGEND: J=Jump, Jr=Jump relative, C=Call, Cr=Call by Restart,
  1669.       Lw=Load word, Lb=Load byte, Sw=Store word, Sb=Store byte, Iw=Immed. word
  1670.  
  1671. I#0000   0000 ----I 0120/Iw
  1672. BDOS     0005 -C--- 011D/C, 01D6/C, 01E8/C, 01F3/C, 02FE/C, 037C/C,
  1673.                     038A/C, 03A1/C, 03AF/C, 03CB/C, 041A/C, 042D/C
  1674. I.000B   000B ----I 013C/Iw, 014F/Iw, 016D/Iw, 01A7/Iw, 0280/Iw, 02EB/Iw,
  1675.                     0332/Iw, 036E/Iw
  1676. C.0038   0038 -C--- 051E/Cr, 0555/Cr
  1677. FCB1     005C ---LI 01CB/Lb, 01F0/Iw, 0276/Lb, 0379/Iw, 0387/Iw, 03AC/Iw,
  1678.                     03C8/Iw
  1679. FCB1.1   005D ---LI 012A/Iw, 015B/Iw, 0195/Iw, 01BD/Lb, 034E/Iw, 035C/Iw,
  1680.                     044E/Iw, 045C/Iw
  1681. FCB2     006D ----I 014C/Iw, 032F/Iw
  1682. DBUF     0080 ----I 03B9/Iw
  1683. DBUF.1   0081 ----I 0205/Iw
  1684. I#0100   0100 ----I 0399/Iw
  1685. C#011A   011A -C--- 0100/C
  1686. C#013B   013B -C--- 012D/C
  1687. J#015B   015B J---- 0142/J
  1688. C#016C   016C -C--- 015E/C
  1689. J#0195   0195 J---- 0173/J
  1690. C#01A6   01A6 -C--- 0198/C
  1691. J#01BD   01BD J---- 01AD/J
  1692. J#01CB   01CB J---- 01C5/J
  1693. J#01D9   01D9 J---- 01CF/J
  1694. J#01E0   01E0 J---- 0265/J
  1695. J.01E2   01E2 J---- 023C/J, 0258/J, 02F5/J
  1696. J#01E4   01E4 J---- 01DD/J
  1697. J#021C   021C J---- 0240/J
  1698. J#0229   0229 J---- 0231/J
  1699. J#023F   023F J---- 022B/J
  1700. J.0243   0243 J---- 0215/J, 0221/J
  1701. J#0246   0246 J---- 024C/J
  1702. J#0268   0268 J---- 01F7/J
  1703. J#0283   0283 J---- 02B1/J
  1704. J.0285   0285 J---- 02A4/J, 02B5/J
  1705. J#0293   0293 J---- 0299/J
  1706. J#02B4   02B4 J---- 0287/J
  1707. C#02B8   02B8 -C--- 028E/C
  1708. J#02C5   02C5 J---- 02CC/J
  1709. I#02D1   02D1 ----I 02C2/Iw
  1710. D.02E6   02E6 --SL- 02B8/Lb, 02BE/Sb
  1711. J#02E7   02E7 J---- 020E/J
  1712. C.02F8   02F8 -C--- 0247/C, 0254/C, 025D/C, 0262/C, 0294/C, 02A0/C,
  1713. è
  1714.  
  1715.                                      - 26 -
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.        Z80DIS -  Section 5: EXAMPLE OF FIRST ATTEMPT OUTPUT - 28 JULY 85
  1722.  
  1723.  
  1724.                     02A9/C, 02AE/C, 02C6/C
  1725. C.0305   0305 JC--- 0152/C, 02EE/C, 030C/J, 0371/C
  1726. C.0310   0310 JC--- 013F/C, 0170/C, 01AA/C, 0318/J, 0335/C, 0435/C
  1727. C.031C   031C -C--- 0148/C, 02E7/C, 0394/C
  1728. J#031F   031F J---- 0322/J
  1729. C.0327   0327 -C--- 0145/C, 0176/C
  1730. J.032A   032A J---- 033C/J, 043C/J
  1731. J.033F   033F J---- 0338/J, 0438/J
  1732. J.0344   0344 J---- 0349/J, 0449/J
  1733. C.034E   034E -C--- 01BA/C, 01C8/C
  1734. J.0355   0355 J---- 0358/J, 0458/J
  1735. J.035C   035C J---- 0158/J, 0179/J, 0427/J
  1736. C.036D   036D -C--- 035F/C, 045F/C
  1737. J#039C   039C J---- 03C0/J
  1738. J#03E1   03E1 J---- 03B6/J
  1739. J#03F4   03F4 J---- 03D2/J
  1740. J#0418   0418 J---- 01ED/J
  1741. J.0420   0420 J---- 026C/J, 0273/J, 027A/J, 028B/J
  1742. C.042A   042A -C--- 017C/C, 03D5/C, 03E1/C, 03F4/C
  1743. J.0430   0430 J---- 041D/J, 0424/J
  1744. ..0435   0435 ----- 
  1745. ..043F   043F ----- 
  1746. ..044E   044E ----- 
  1747. ..045C   045C ----- 
  1748. D.0475   0475 --SLI 0124/Sw, 0127/Iw, 0430/Lw
  1749. D.0477   0477 --SL- 01B2/Sb, 020A/Lb, 0268/Lb, 0391/Sb, 0420/Lb
  1750. D.0478   0478 --SL- 01C2/Sb, 0211/Lb, 026F/Lb
  1751. D.0479   0479 --S-I 01B7/Sb, 0219/Iw, 027D/Iw, 031C/Iw, 0327/Iw
  1752. J#051C   051C J---- 05C4/J
  1753. J#054A   054A J---- 056A/J
  1754. J#056D   056D J---- 0560/J
  1755. J#05C4   05C4 J---- 0576/J
  1756. ..05C7   05C7 ----- 
  1757. J#0618   0618 J---- 05EA/J
  1758. J#0621   0621 J---- 05DE/J
  1759. D#0A0D   0A0D ---L- 02E2/Lb
  1760. C#0A3F   0A3F -C--- 055B/C
  1761. C#0B05   0B05 -C--- 05DB/C
  1762. C.0B16   0B16 -C--- 0573/C, 05CD/C, 05D7/C, 05E7/C
  1763. D.0C3D   0C3D ---L- 057E/Lw, 058E/Lw, 0598/Lw, 05A9/Lw
  1764. D.0C47   0C47 --SLI 0570/Iw, 0579/Lw, 0593/Lw, 05B6/Lw, 05BA/Sw, 05D0/Iw,
  1765.                     05E4/Iw, 05FD/Lw
  1766. D.0C49   0C49 --SLI 0563/Lw, 0567/Sw, 056D/Iw, 0589/Lw, 05A4/Lw, 05BD/Lw,
  1767.                     05C1/Sw, 05CA/Iw
  1768. I#0C4B   0C4B ----I 05C7/Iw
  1769. I.0C4D   0C4D ----I 05D3/Iw, 05E1/Iw
  1770. D#0C4F   0C4F ---L- 0556/Lw
  1771. D.0C51   0C51 --SL- 0586/Sw, 05AE/Lw
  1772. D.0C53   0C53 --SL- 05ED/Lb, 05F1/Sb
  1773. I#0C54   0C54 ----I 05F7/Iw
  1774. I#2044   2044 ----I 04E6/Iw
  1775. I#2B21   2B21 ----I 0413/Iw
  1776. I#2F31   2F31 ----I 010F/Iw
  1777.                                             >╛ additiona∞ line≤ suppressed
  1778.  
  1779.  
  1780.  
  1781.                                      - 27 -
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.        Z80DIS -  Section 5: EXAMPLE OF FIRST ATTEMPT OUTPUT - 28 JULY 85
  1788.  
  1789.  
  1790. Demonstration without break table
  1791. B:D.MAC - Source by Z80DIS 1.5, K.Gielow, Palo Alto, CA.
  1792.  
  1793.   Listing of all referenced SUBROUTINE entry points
  1794.  
  1795.  
  1796. BDOS    Subroutine ____________________________________________
  1797.          0005 -C--- 011D/C, 01D6/C, 01E8/C, 01F3/C, 02FE/C, 037C/C,
  1798.                     038A/C, 03A1/C, 03AF/C, 03CB/C, 041A/C, 042D/C
  1799.  
  1800. C.0038  Subroutine ____________________________________________
  1801.          0038 -C--- 051E/Cr, 0555/Cr
  1802.  
  1803. C#011A  Subroutine ____________________________________________
  1804.          011A -C--- 0100/C
  1805.  
  1806. C#013B  Subroutine ____________________________________________
  1807.          013B -C--- 012D/C
  1808.  
  1809. C#016C  Subroutine ____________________________________________
  1810.          016C -C--- 015E/C
  1811.  
  1812. C#01A6  Subroutine ____________________________________________
  1813.          01A6 -C--- 0198/C
  1814.  
  1815. C#02B8  Subroutine ____________________________________________
  1816.          02B8 -C--- 028E/C
  1817.  
  1818. C.02F8  Subroutine ____________________________________________
  1819.          02F8 -C--- 0247/C, 0254/C, 025D/C, 0262/C, 0294/C, 02A0/C,
  1820.                     02A9/C, 02AE/C, 02C6/C
  1821.  
  1822. C.0305  Subroutine ____________________________________________
  1823.          0305 JC--- 0152/C, 02EE/C, 030C/J, 0371/C
  1824.  
  1825. C.0310  Subroutine ____________________________________________
  1826.          0310 JC--- 013F/C, 0170/C, 01AA/C, 0318/J, 0335/C, 0435/C
  1827.  
  1828. C.031C  Subroutine ____________________________________________
  1829.          031C -C--- 0148/C, 02E7/C, 0394/C
  1830.  
  1831. C.0327  Subroutine ____________________________________________
  1832.          0327 -C--- 0145/C, 0176/C
  1833.  
  1834. C.034E  Subroutine ____________________________________________
  1835.          034E -C--- 01BA/C, 01C8/C
  1836.  
  1837. C.036D  Subroutine ____________________________________________
  1838.          036D -C--- 035F/C, 045F/C
  1839.  
  1840. C.042A  Subroutine ____________________________________________
  1841.          042A -C--- 017C/C, 03D5/C, 03E1/C, 03F4/C
  1842.  
  1843.                                     >╛áadditiona∞ line≤ suppresseΣ ì
  1844.  
  1845.  
  1846.  
  1847.                                      - 28 -
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.        Z80DIS -  Section 5: EXAMPLE OF FIRST ATTEMPT OUTPUT - 28 JULY 85
  1854.  
  1855.  
  1856.                 ;  Demonstration without break table
  1857.                 ;  D.MAC - Source by Z80DIS 1.5, K.Gielow, Palo Alto, CA.
  1858.                 ;
  1859. 0100                    ORG     0100h
  1860.                 ;
  1861. 0000            I#0000: EQU     0000h   ----I
  1862. 0005            BDOS:   EQU     0005h   -C---
  1863. 000B            I.000B: EQU     000Bh   ----I
  1864. 0038            C.0038: EQU     0038h   -C---
  1865. 005C            FCB1:   EQU     005Ch   ---LI
  1866. 005D            FCB1.1: EQU     005Dh   ---LI
  1867. 006D            FCB2:   EQU     006Dh   ----I
  1868. 0080            DBUF:   EQU     0080h   ----I
  1869. 0081            DBUF.1: EQU     0081h   ----I
  1870.                 ;
  1871. 0100 CD1A01     I#0100:  CALL   C#011A
  1872.                 ;
  1873. 0103 44                 LD      B,H
  1874. 0104 2E43               LD      L,43h   ;  "C"
  1875. 0106 4F                 LD      C,A
  1876. 0107 4D                 LD      C,L
  1877. 0108 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1878.                 ;       -----------------
  1879.                 ;
  1880. 0109 41                 LD      B,C
  1881. 010A 53                 LD      D,E
  1882. 010B 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1883.                 ;       -----------------
  1884.                 ;
  1885. 010C 4F                 LD      C,A
  1886. 010D 46                 LD      B,(HL)
  1887. 010E 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1888.                 ;       -----------------
  1889.                 ;
  1890. 010F 31312F             LD      SP,I#2F31
  1891. 0112 32332F             LD      (D#2F33),A
  1892. 0115 37                 SCF     
  1893. 0116 38                 DEFB    38h             ; << Illegal Op Code Byte >>
  1894.                 ;       -----------------
  1895.                 ;
  1896. 0117 0D                 DEC     C
  1897. 0118 0A                 LD      A,(BC)
  1898. 0119 24                 INC     H
  1899.                 ;
  1900.                 ;         Subroutine ______________________________
  1901.                 ;            Inputs  ___________________________
  1902.                 ;            Outputs ___________________________
  1903.                 ;
  1904. 011A D1         C#011A: POP     DE
  1905. 011B 0E09               LD      C,09h   ;  9 
  1906. 011D CD0500              CALL   BDOS
  1907.                 ;
  1908. 0120 210000             LD      HL,I#0000
  1909. 0123 39                 ADD     HL,SP
  1910. 0124 227504             LD      (D.0475),HL
  1911. è
  1912.  
  1913.                                      - 29 -
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.        Z80DIS -  Section 5: EXAMPLE OF FIRST ATTEMPT OUTPUT - 28 JULY 85
  1920.  
  1921.  
  1922. 0127 317504             LD      SP,D.0475
  1923. 012A 215D00             LD      HL,FCB1.1
  1924. 012D CD3B01              CALL   C#013B
  1925.                 ;
  1926. 0130 41                 LD      B,C
  1927. 0131 44                 LD      B,H
  1928. 0132 44                 LD      B,H
  1929. 0133 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1930. 0134 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1931. 0135 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1932. 0136 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1933. 0137 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1934. 0138 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1935. 0139 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1936. 013A 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1937.                 ;       -----------------
  1938.                 ;
  1939.                 ;
  1940.                 ;         Subroutine ______________________________
  1941.                 ;            Inputs  ___________________________
  1942.                 ;            Outputs ___________________________
  1943.                 ;
  1944. 013B D1         C#013B: POP     DE
  1945. 013C 010B00             LD      BC,I.000B
  1946. 013F CD1003              CALL   C.0310
  1947.                 ;
  1948. 0142 C25B01             JP      NZ,J#015B
  1949.                 ;
  1950. 0145 CD2703              CALL   C.0327
  1951.                 ;
  1952. 0148 CD1C03              CALL   C.031C
  1953.                 ;
  1954. 014B EB                 EX      DE,HL
  1955. 014C 216D00             LD      HL,FCB2
  1956. 014F 010B00             LD      BC,I.000B
  1957. 0152 CD0503              CALL   C.0305
  1958.                 ;
  1959. 0155 3EFF               LD      A,0FFh
  1960. 0157 12                 LD      (DE),A
  1961. 0158 C35C03             JP      J.035C
  1962.                 ;
  1963.                 ;       -----------------
  1964. 015B 215D00     J#015B: LD      HL,FCB1.1
  1965. 015E CD6C01              CALL   C#016C
  1966.                 ;
  1967. 0161 44                 LD      B,H
  1968. 0162 45                 LD      B,L
  1969. 0163 4C                 LD      C,H
  1970. 0164 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1971. 0165 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1972. 0166 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1973. 0167 20                 DEFB    20h             ; << Illegal Op Code Byte >>
  1974.  
  1975.                                          >> additional lines suppressed
  1976.  
  1977.  
  1978.  
  1979.                                      - 30 -
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.         Z80DIS -  Section 6: EXAMPLE OF XXX.PRN FILE OUTPUT  - 28 JULY 85
  1986.  
  1987.  
  1988.                                   - SECTION 6 -
  1989.                          EXAMPLE OF XXX.PRN FILE OUTPUT
  1990.  
  1991.         Thσá followinτá i≤ par⌠ oµ thσ listinτ produceΣá b∙á runninτá thσ ì
  1992.         disassemble≥á agains⌠á ß cop∙ oµ thσ publiπ domaiε prograφá D.CO═ ì
  1993.         usinτ ß correcteΣ breaδ table« Herσ wσ havσ analyzeΣ thσ previou≤ ì
  1994.         listinτá anΣá brokeε thσ codσ region≤ dowε int∩ INStructioεá bytσ ì
  1995.         region≤á anΣá WoRD¼áá BYTe¼á anΣá ASCiΘá regions«
  1996.  
  1997.         Thσá resultinτá disassembl∙á look≤á mucΦ bette≥á thaεá thσá firs⌠ ì
  1998.         attemp⌠ abovσ iε SECTIO╬ 5«á Pleasσ refe≥ bacδ t∩ thosσá comment≤ ì
  1999.         anΣá listing≤á t∩á seσ thσ difference≤ tha⌠ thσá correcteΣá breaδ ì
  2000.         tablσá ha≤ made«á Thσ unreferenceΣ addresse≤ arσ cleaneΣ up╗á thσ ì
  2001.         reference≤ t∩ C.003╕ arσ resolved; the illegal op codes are gone.
  2002.  
  2003.         Thσá illega∞á mi° oµ instruction≤ froφ 010│ througΦ 011╣á no≈á i≤ ì
  2004.         resolveΣá a≤ ß messagσ string«á Thσ ─ prograφ i≤ interestinτá fo≥ ì
  2005.         thσ usσ oµ thσ CAL╠ instructioε t∩ pusΦ in-linσ message≤ ont∩ thσ ì
  2006.         stack«á Thσá CAL╠á instructioεá a⌠ 010░ followeΣ b∙á thσá PO╨á D┼ ì
  2007.         instructioεá a⌠á 013┬á i≤á simpl∙á equivalen⌠á t∩á L─á DE,MESSAG┼ ì
  2008.         followeΣ b∙ ß J╨ t∩ 013C« 
  2009.  
  2010.         Notσ tha⌠ thi≤ listinτ i≤ un-edited╗á al∞ comments¼ etc« arσ jus⌠ ì
  2011.         as produced by the Z80DIS program.
  2012.  
  2013.  
  2014.  
  2015.  
  2016. ----------------- THE LISTING ----------------------------------------------
  2017.  
  2018. Demonstration of disassembly of D.COM
  2019. the control parameter values used for this run of Z80DIS 1.5
  2020.  
  2021.    INPUT   file: D.COM
  2022.    OUTPUT  file: D.MAC
  2023.    LISTING file: D.PRN
  2024.  
  2025.           file LOAD  address 0100 hex
  2026.    disassembly START address 0100 hex
  2027.    disassembly STOP  address FFFF hex
  2028.    
  2029.    FULL DISASSEMBLY flag is set TRUE
  2030.         meaning.. Generate both XREF LIST and ASSEMBLY CODE output
  2031.  
  2032.    FULL Z80 flag is set to FALSE
  2033.         meaning.« Recognizσ onl∙ 808░ subset¼ bu⌠ usσ Z8░ mnemonics
  2034.  
  2035.    Control Breaks are set as follows:
  2036.  
  2037.   Ins 0100-0102  Asc 0103-0119  Ins 011A-012F  Asc 0130-013A  Ins 013B-0160
  2038.   Asc 0161-016B  Ins 016C-017E  Asc 017F-0194  Ins 0195-019A  Asc 019B-01A5
  2039.   Ins 01A6-02D0  Asc 02D1-02E6  Ins 02E7-0361  Asc 0362-036C  Ins 036D-03D7
  2040.   Asc 03D8-03E0  Ins 03E1-03E3  Asc 03E4-03F3  Ins 03F4-03F6  Asc 03F7-0417
  2041.   Ins 0418-0461  Asc 0462-0474  Wrd 0475-0476  Byt 0477-0478  Asc 0479-FFFE
  2042.  
  2043. è
  2044.  
  2045.                                      - 31 -
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.        Z80DIS -  Section 6: EXAMPLE OF XXX.PRN FILE OUTPUT  - 28 JULY 85
  2052.  
  2053.  
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.                                      - 32 -
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.        Z80DIS -  Section 6: EXAMPLE OF XXX.PRN FILE OUTPUT  - 28 JULY 85
  2118.  
  2119.  
  2120. Demonstration of disassembly of D.COM
  2121. B:D.MAC - Source by Z80DIS 1.5, K.Gielow, Palo Alto, CA.
  2122.  
  2123.   Listing of all referenced addresses
  2124.  
  2125.   LABELING CODES: Where a CP/M address can be assumed, then name is used.
  2126.       otherwise, prefix J=JUMP (Jump references only), C=CALL (Call/Jump only),
  2127.          I=Immediate only, D=DATA (Load/Store/Immed.), X= any other combination
  2128.       if reference is singular, The second character will be # instead of .
  2129.  
  2130.   REFERENCE LEGEND: J=Jump, Jr=Jump relative, C=Call, Cr=Call by Restart,
  2131.       Lw=Load word, Lb=Load byte, Sw=Store word, Sb=Store byte, Iw=Immed. word
  2132.  
  2133. I#0000   0000 ----I 0120/Iw
  2134. BDOS     0005 -C--- 011D/C, 01D6/C, 01E8/C, 01F3/C, 02FE/C, 037C/C,
  2135.                     038A/C, 03A1/C, 03AF/C, 03CB/C, 041A/C, 042D/C
  2136. I.000B   000B ----I 013C/Iw, 014F/Iw, 016D/Iw, 01A7/Iw, 0280/Iw, 02EB/Iw,
  2137.                     0332/Iw, 036E/Iw
  2138. FCB1     005C ---LI 01CB/Lb, 01F0/Iw, 0276/Lb, 0379/Iw, 0387/Iw, 03AC/Iw,
  2139.                     03C8/Iw
  2140. FCB1.1   005D ---LI 012A/Iw, 015B/Iw, 0195/Iw, 01BD/Lb, 034E/Iw, 035C/Iw,
  2141.                     044E/Iw, 045C/Iw
  2142. FCB2     006D ----I 014C/Iw, 032F/Iw
  2143. DBUF     0080 ----I 03B9/Iw
  2144. DBUF.1   0081 ----I 0205/Iw
  2145. I#0100   0100 ----I 0399/Iw
  2146. C#011A   011A -C--- 0100/C
  2147. C#013B   013B -C--- 012D/C
  2148. J#015B   015B J---- 0142/J
  2149. C#016C   016C -C--- 015E/C
  2150. J#0195   0195 J---- 0173/J
  2151. C#01A6   01A6 -C--- 0198/C
  2152. J#01BD   01BD J---- 01AD/J
  2153. J#01CB   01CB J---- 01C5/J
  2154. J#01D9   01D9 J---- 01CF/J
  2155. J#01E0   01E0 J---- 0265/J
  2156. J.01E2   01E2 J---- 023C/J, 0258/J, 02F5/J
  2157. J#01E4   01E4 J---- 01DD/J
  2158. J#021C   021C J---- 0240/J
  2159. J#0229   0229 J---- 0231/J
  2160. J#023F   023F J---- 022B/J
  2161. J.0243   0243 J---- 0215/J, 0221/J
  2162. J#0246   0246 J---- 024C/J
  2163. J#0268   0268 J---- 01F7/J
  2164. J#0283   0283 J---- 02B1/J
  2165. J.0285   0285 J---- 02A4/J, 02B5/J
  2166. J#0293   0293 J---- 0299/J
  2167. J#02B4   02B4 J---- 0287/J
  2168. C#02B8   02B8 -C--- 028E/C
  2169. J#02C5   02C5 J---- 02CC/J
  2170. I#02D1   02D1 ----I 02C2/Iw
  2171. D.02E6   02E6 --SL- 02B8/Lb, 02BE/Sb
  2172. J#02E7   02E7 J---- 020E/J
  2173.                                              >> additional lines suppressed
  2174.  
  2175.  
  2176.  
  2177.                                      - 33 -
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.        Z80DIS -  Section 6: EXAMPLE OF XXX.PRN FILE OUTPUT  - 28 JULY 85
  2184.  
  2185.  
  2186. Demonstration of disassembly of D.COM
  2187. B:D.MAC - Source by Z80DIS 1.5, K.Gielow, Palo Alto, CA.
  2188.  
  2189.   Listing of all referenced SUBROUTINE entry points
  2190.  
  2191.  
  2192. BDOS    Subroutine ____________________________________________
  2193.          0005 -C--- 011D/C, 01D6/C, 01E8/C, 01F3/C, 02FE/C, 037C/C,
  2194.                     038A/C, 03A1/C, 03AF/C, 03CB/C, 041A/C, 042D/C
  2195.  
  2196. C#011A  Subroutine ____________________________________________
  2197.          011A -C--- 0100/C
  2198.  
  2199. C#013B  Subroutine ____________________________________________
  2200.          013B -C--- 012D/C
  2201.  
  2202. C#016C  Subroutine ____________________________________________
  2203.          016C -C--- 015E/C
  2204.  
  2205. C#01A6  Subroutine ____________________________________________
  2206.          01A6 -C--- 0198/C
  2207.  
  2208. C#02B8  Subroutine ____________________________________________
  2209.          02B8 -C--- 028E/C
  2210.  
  2211. C.02F8  Subroutine ____________________________________________
  2212.          02F8 -C--- 0247/C, 0254/C, 025D/C, 0262/C, 0294/C, 02A0/C,
  2213.                     02A9/C, 02AE/C, 02C6/C
  2214.  
  2215. C.0305  Subroutine ____________________________________________
  2216.          0305 JC--- 0152/C, 02EE/C, 030C/J, 0371/C
  2217.  
  2218. C.0310  Subroutine ____________________________________________
  2219.          0310 JC--- 013F/C, 0170/C, 01AA/C, 0318/J, 0335/C, 0435/C
  2220.  
  2221. C.031C  Subroutine ____________________________________________
  2222.          031C -C--- 0148/C, 02E7/C, 0394/C
  2223.  
  2224. C.0327  Subroutine ____________________________________________
  2225.          0327 -C--- 0145/C, 0176/C
  2226.  
  2227. C.034E  Subroutine ____________________________________________
  2228.          034E -C--- 01BA/C, 01C8/C
  2229.  
  2230. C.036D  Subroutine ____________________________________________
  2231.          036D -C--- 035F/C, 045F/C
  2232.  
  2233. C.042A  Subroutine ____________________________________________
  2234.          042A -C--- 017C/C, 03D5/C, 03E1/C, 03F4/C
  2235.  
  2236.                                             >╛ additiona∞ line≤ suppressed
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.                                      - 34 -
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.        Z80DIS -  Section 6: EXAMPLE OF XXX.PRN FILE OUTPUT  - 28 JULY 85
  2250.  
  2251.  
  2252.                 ;  Demonstration of disassembly of D.COM
  2253.                 ;  D.MAC - Source by Z80DIS 1.5, K.Gielow, Palo Alto, CA.
  2254.                 ;
  2255. 0100                    ORG     0100h
  2256.                 ;
  2257. 0000            I#0000: EQU     0000h   ----I
  2258. 0005            BDOS:   EQU     0005h   -C---
  2259. 000B            I.000B: EQU     000Bh   ----I
  2260. 005C            FCB1:   EQU     005Ch   ---LI
  2261. 005D            FCB1.1: EQU     005Dh   ---LI
  2262. 006D            FCB2:   EQU     006Dh   ----I
  2263. 0080            DBUF:   EQU     0080h   ----I
  2264. 0081            DBUF.1: EQU     0081h   ----I
  2265.                 ;
  2266. 0100 CD1A01     I#0100:  CALL   C#011A
  2267.                 ;
  2268. 0103 442E434F           DEFM    'D.COM AS OF 11/23/78',0Dh
  2269. 0118 0A                 DEFB    0Ah
  2270. 0119 24                 DEFM    '$'
  2271.                 ;       -----------------
  2272.                 ;
  2273.                 ;
  2274.                 ;         Subroutine ______________________________
  2275.                 ;            Inputs  ___________________________
  2276.                 ;            Outputs ___________________________
  2277.                 ;
  2278. 011A D1         C#011A: POP     DE
  2279. 011B 0E09               LD      C,09h   ;  9 
  2280. 011D CD0500              CALL   BDOS
  2281.                 ;
  2282. 0120 210000             LD      HL,I#0000
  2283. 0123 39                 ADD     HL,SP
  2284. 0124 227504             LD      (D.0475),HL
  2285. 0127 317504             LD      SP,D.0475
  2286. 012A 215D00             LD      HL,FCB1.1
  2287. 012D CD3B01              CALL   C#013B
  2288.                 ;
  2289. 0130 41444420           DEFM    'ADD        '
  2290.                 ;       -----------------
  2291.                 ;
  2292.                 ;
  2293.                 ;         Subroutine ______________________________
  2294.                 ;            Inputs  ___________________________
  2295.                 ;            Outputs ___________________________
  2296.                 ;
  2297. 013B D1         C#013B: POP     DE
  2298. 013C 010B00             LD      BC,I.000B
  2299. 013F CD1003              CALL   C.0310
  2300.                 ;
  2301. 0142 C25B01             JP      NZ,J#015B
  2302.                 ;
  2303. 0145 CD2703              CALL   C.0327
  2304.                 ;
  2305. 0148 CD1C03              CALL   C.031C
  2306.                 ;
  2307. è
  2308.  
  2309.                                      - 35 -
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.        Z80DIS -  Section 6: EXAMPLE OF XXX.PRN FILE OUTPUT  - 28 JULY 85
  2316.  
  2317.  
  2318. 014B EB                 EX      DE,HL
  2319. 014C 216D00             LD      HL,FCB2
  2320. 014F 010B00             LD      BC,I.000B
  2321. 0152 CD0503              CALL   C.0305
  2322.                 ;
  2323. 0155 3EFF               LD      A,0FFh
  2324. 0157 12                 LD      (DE),A
  2325. 0158 C35C03             JP      J.035C
  2326.                 ;
  2327.                 ;       -----------------
  2328. 015B 215D00     J#015B: LD      HL,FCB1.1
  2329. 015E CD6C01              CALL   C#016C
  2330.                 ;
  2331. 0161 44454C20           DEFM    'DEL        '
  2332.                 ;       -----------------
  2333.                 ;
  2334.                 ;
  2335.                 ;         Subroutine ______________________________
  2336.                 ;            Inputs  ___________________________
  2337.                 ;            Outputs ___________________________
  2338.                 ;
  2339. 016C D1         C#016C: POP     DE
  2340. 016D 010B00             LD      BC,I.000B
  2341. 0170 CD1003              CALL   C.0310
  2342.                 ;
  2343. 0173 C29501             JP      NZ,J#0195
  2344.                 ;
  2345. 0176 CD2703              CALL   C.0327
  2346.                 ;
  2347. 0179 D25C03             JP      NC,J.035C
  2348.                 ;
  2349. 017C CD2A04              CALL   C.042A
  2350.                 ;
  2351. 017F 2B2B4E41           DEFM    '++NAME NOT IN TABLE++$'
  2352.                 ;       -----------------
  2353.                 ;
  2354. 0195 215D00     J#0195: LD      HL,FCB1.1
  2355. 0198 CDA601              CALL   C#01A6
  2356.                 ;
  2357. 019B 53455420           DEFM    'SET        '
  2358.                 ;       -----------------
  2359.                 ;
  2360.                 ;
  2361.                 ;         Subroutine ______________________________
  2362.                 ;            Inputs  ___________________________
  2363.                 ;            Outputs ___________________________
  2364.                 ;
  2365. 01A6 D1         C#01A6: POP     DE
  2366. 01A7 010B00             LD      BC,I.000B
  2367. 01AA CD1003              CALL   C.0310
  2368.                 ;
  2369.  
  2370.                                        >> additional lines suppressed
  2371.  
  2372.  
  2373.  
  2374.  
  2375.                                      - 36 -
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.         Z80DIS -   Section 7: EXAMPLE OF XXX.MAC FILE OUTPUT - 28 JULY 85
  2382.  
  2383.  
  2384.                                   - SECTION 7 -
  2385.                          EXAMPLE OF XXX.MAC FILE OUTPUT
  2386.  
  2387.              Thσá assembl∙á codσá filσ i≤ iε ß forma⌠ suitablσá fo≥á mos⌠ ì
  2388.         assemblers« Variou≤ mino≥ change≤ migh⌠ havσ t∩ bσ madσ beforσ i⌠ ì
  2389.         wil∞ ruε througΦ some¼á howeve≥ (e.g«á thσ colon≤ ":ó ma∙ havσ t∩ ì
  2390.         be removed from labels.)
  2391.  
  2392.              Fields¼á sucΦ a≤ labe∞ anΣ op-code¼á arσ separateΣ b∙á <tab>≤ ì
  2393.         rathe≥ thaε space≤ fo≥ filσ compaction.
  2394.  
  2395.  
  2396.  
  2397.         --------------- A LIST OF THE FILE CONTENTS ---------------------
  2398.         ;  Demonstration of disassembly of D.COM
  2399.         ;  D.MAC - Source by Z80DIS 1.5, K.Gielow, Palo Alto, CA.
  2400.         ;
  2401.                 ORG     0100h
  2402.         ;
  2403.         I#0000: EQU     0000h   ----I
  2404.         BDOS:   EQU     0005h   -C---
  2405.         I.000B: EQU     000Bh   ----I
  2406.         FCB1:   EQU     005Ch   ---LI
  2407.         FCB1.1: EQU     005Dh   ---LI
  2408.         FCB2:   EQU     006Dh   ----I
  2409.         DBUF:   EQU     0080h   ----I
  2410.         DBUF.1: EQU     0081h   ----I
  2411.         ;
  2412.         I#0100:  CALL   C#011A
  2413.         ;
  2414.                 DEFM    'D.COM AS OF 11/23/78',0Dh
  2415.                 DEFB    0Ah
  2416.                 DEFM    '$'
  2417.         ;       -----------------
  2418.         ;
  2419.         ;
  2420.         ;         Subroutine ______________________________
  2421.         ;            Inputs  ___________________________
  2422.         ;            Outputs ___________________________
  2423.         ;
  2424.         C#011A: POP     DE
  2425.                 LD      C,09h   ;  9 
  2426.                  CALL   BDOS
  2427.         ;
  2428.                 LD      HL,I#0000
  2429.                 ADD     HL,SP
  2430.                 LD      (D.0475),HL
  2431.                 LD      SP,D.0475
  2432.                 LD      HL,FCB1.1
  2433.                  CALL   C#013B
  2434.         ;
  2435.                 DEFM    'ADD        '
  2436.         ;       -----------------
  2437.         ;
  2438.         ;
  2439. è
  2440.  
  2441.                                      - 37 -
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.         Z80DIS -  Section 7: EXAMPLE OF XXX.MAC FILE OUTPUT  - 28 JULY 85
  2448.  
  2449.  
  2450.         ;         Subroutine ______________________________
  2451.         ;            Inputs  ___________________________
  2452.         ;            Outputs ___________________________
  2453.         ;
  2454.         C#013B: POP     DE
  2455.                 LD      BC,I.000B
  2456.                  CALL   C.0310
  2457.         ;
  2458.                 JP      NZ,J#015B
  2459.         ;
  2460.                  CALL   C.0327
  2461.         ;
  2462.                  CALL   C.031C
  2463.         ;
  2464.                 EX      DE,HL
  2465.                 LD      HL,FCB2
  2466.                 LD      BC,I.000B
  2467.                  CALL   C.0305
  2468.         ;
  2469.                 LD      A,0FFh
  2470.                 LD      (DE),A
  2471.                 JP      J.035C
  2472.         ;
  2473.         ;       -----------------
  2474.         J#015B: LD      HL,FCB1.1
  2475.                  CALL   C#016C
  2476.         ;
  2477.                 DEFM    'DEL        '
  2478.         ;       -----------------
  2479.         ;
  2480.         ;
  2481.         ;         Subroutine ______________________________
  2482.         ;            Inputs  ___________________________
  2483.         ;            Outputs ___________________________
  2484.         ;
  2485.         C#016C: POP     DE
  2486.                 LD      BC,I.000B
  2487.                  CALL   C.0310
  2488.         ;
  2489.                 JP      NZ,J#0195
  2490.         ;
  2491.                  CALL   C.0327
  2492.         ;
  2493.                 JP      NC,J.035C
  2494.         ;
  2495.                  CALL   C.042A
  2496.         ;
  2497.                 DEFM    '++NAME NOT IN TABLE++$'
  2498.         ;       -----------------
  2499.         ;
  2500.         J#0195: LD      HL,FCB1.1
  2501.                  CALL   C#01A6
  2502.         ;
  2503.                                           >> additional lines suppressed
  2504.  
  2505.  
  2506.  
  2507.                                      - 38 -
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.         Z80DIS -   Section 8: CONTENTS OF  **.BRK FILE       - 28 JULY 85
  2514.  
  2515.  
  2516.                                   - SECTION 8 -
  2517.                         CONTENTS AND FORMAT OF *.BRK FILE
  2518.  
  2519.         Thσá breaδá filσá i≤ ß transcription¼á t∩ ßá CP/═á file¼á oµá thσ ì
  2520.         content≤á oµá ßá breaδ table«á Whilσ thσ breaδá tablσá i≤á storeΣ ì
  2521.         internall∙ a≤ ß linkeΣ lis⌠ iε PASCA╠ hea≡ space¼á thσ breaδ filσ ì
  2522.         i≤ storeΣ a≤ ß simplσ CP/═ asciΘ file.
  2523.  
  2524.         EacΦ breaδ addres≤ i≤ ß separatσ record«á Record≤ arσá terminateΣ ì
  2525.         b∙á thσ usua∞ <CR╛ <LF╛ pair«á Onl∙ thσ firs⌠ fivσ character≤á oµ ì
  2526.         eacΦ recorΣ arσ actuall∙ processed╗ an∙ additiona∞ characters¼ iµ ì
  2527.         present, would be ignored. 
  2528.  
  2529.         Thσá usua∞á sourcσ oµ ß breaδ filσ i≤ thσ F╙ commanΣ froφá withiε ì
  2530.         thσá Z80DI╙á program¼á bu⌠ iε fac⌠ thσ filσ coulΣá bσá separatel∙ ì
  2531.         generated or edited and still be read by the Z80DIS FL command.
  2532.  
  2533.         EacΦ recorΣ consist≤ oµ tw∩ field≤ oµ characters║ Thσ firs⌠ fielΣ ì
  2534.         i≤ onσ uppe≥ o≥ lowe≥ casσ characte≥ froφ thσ se⌠   A¼ B¼ I¼ S¼ ╘ ì
  2535.         o≥ W«á Thσ seconΣ fielΣ i≤ fou≥ character≤ froφ thσ se⌠  0¼ 1¼ 2¼ ì
  2536.         3¼ 4¼ 5¼ 6¼ 7¼ 8¼ 9¼ A¼ B¼ C¼ D¼ ┼ o≥ F.
  2537.  
  2538.         The first field specifies the break type ( See SECTION 3. )
  2539.  
  2540.         Thσ seconΣ fielΣ specifie≤ thσ hexadecima∞ addres≤ oµ tha⌠ break« ì
  2541.         Thσá spaεá oµ influencσ oµ eacΦ breaδ typσ i≤ froφ thσá specifieΣ ì
  2542.         addres≤á througΦ thσ addres≤ onσ bytσ les≤ tha⌠ thσ nex⌠á highes⌠ ì
  2543.         breaδá address╗á tha⌠ i≤ no⌠ necessaril∙ thσ nex⌠á breaδá addres≤ ì
  2544.         reaΣ froφ thσ file« 
  2545.  
  2546.         Record≤á produceΣá b∙ thσ Z80DIS¼á F╙ commanΣ wil∞ alway≤á bσá iε ì
  2547.         ascendinτá addres≤ order¼á bu⌠ record≤ reaΣ b∙ thσ F╠ commanΣ ma∙ ì
  2548.         bσ iε an∙ order« 
  2549.  
  2550.         ----- LISTING OF THE BREAK FILE FOR D.COM AS SHOWN HERE ---------
  2551.         I0100
  2552.         A0103
  2553.         I011A
  2554.         A0130
  2555.         I013B
  2556.         A0161
  2557.         I016C
  2558.         A017F
  2559.         I0195
  2560.         A019B
  2561.         I01A6
  2562.         A02D1
  2563.         I02E7
  2564.         A0362
  2565.         I036D
  2566.         A03D8
  2567.         I03E1
  2568.         A03E4
  2569.                                         >> additional lines suppressed
  2570.  
  2571.  
  2572.  
  2573.                                      - 39 -
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.         Z80DIS -  Section 9: POSSIBLE EXTENSIONS             - 28 JULY 85
  2580.  
  2581.  
  2582.                                   - SECTION 9-
  2583.                           POSSIBLE EXTENSIONS TO Z80DIS
  2584.  
  2585.         Severa∞á extension≤á t∩ thσ existinτ prograφ appea≥ t∩ bσá eithe≥ ì
  2586.         desirablσ o≥ interesting«á Thσ inclusioε oµ item≤ oε thi≤ lis⌠ i≤ ì
  2587.         no⌠ t∩ bσ construeΣ a≤ indicatinτ tha⌠ the∙ wil∞ eve≥ bσ encorpo-ì
  2588.         rated¼ bu⌠ merel∙ a≤ aε indicatioε oµ interest.
  2589.  
  2590.         Thi≤á lis⌠ wil∞ grow¼á anΣ ╔ invitσ ß dialoguσ oε thσ subjec⌠á oµ ì
  2591.         thσ possibilitie≤ oµ expandinτ thσ utilit∙ oµ thσ program.
  2592.  
  2593.         Noticσá tha⌠ ß disassemble≥ tha⌠ caε sho≈ yo⌡ thσ flo≈ oµ ßá pro-ì
  2594.         graφá caε bσ ver∙ helpfu∞ iε understandinτ you≥ owε assembl∙ codσ ì
  2595.         a≤ wel∞ a≤ iε understandinτ thσ codσ oµ othe≥ programmers.
  2596.  
  2597.                                        --
  2598.  
  2599.         1) Aε extensioε tha⌠ ╔ havσ beeε experimentinτ witΦ i≤ thσá auto-ì
  2600.         ááámatiπá creation¼á o≥ augmentation¼á oµ thσ breaδ tablσ b∙á thσ ì
  2601.         áááprogram«á Thi≤á woulΣá optionall∙ replacσ thσ codσá generatinτ ì
  2602.         ááápas≤ tw∩ witΦ ß breaδ tablσ generatinτ pas≤ two«á Thσ start-u≡ ì
  2603.         áááoption≤ woulΣ become║á Ful∞ disassembly¼ Cros≤ referencσ only¼ ì
  2604.         áááBreaδ tablσ creation.
  2605.  
  2606.         áááThσá use≥ woulΣ eithe≥ ente≥ hi≤ owε bes⌠ gues≤ a⌠á thσá breaδ ì
  2607.         ááátablσ o≥ woulΣ g∩ witΦ thσ default«á Theε thσ Automatiπ gener-ì
  2608.         áááatioε woulΣ bσ invokeΣ anΣ pas≤ onσ woulΣ ruε t∩ determinσ thσ ì
  2609.         ááácros≤ references«á Thσ breaδ determinatioε pas≤ woulΣ theε ruε ì
  2610.         ááát∩á examinσá thσá interdependenc∙ anΣ referencσ type≤á oµá thσ ì
  2611.         ááátablσ jus⌠ a≤ yo⌡ would« Area≤ whicΦ arσ clearl∙ datß woulΣ bσ ì
  2612.         áááisolateΣá anΣá thσá typσ oµ datß woulΣ bσá determineΣá b∙á thσ ì
  2613.         áááreferencσá (byte¼á worΣ o≥ immediate⌐ anΣ examinatioεá oµá thσ ì
  2614.         ááácontent≤ t∩ recognizσ ascii« Thi≤ additiona∞ breaδ informatioε ì
  2615.         áááwoulΣá bσá addeΣ t∩ tha⌠ supplieΣ b∙ thσ use≥ anΣá thσá resul⌠ ì
  2616.         áááwoulΣ bσ outpu⌠ t∩ ß breaδ file.
  2617.  
  2618.         áááThi≤ woulΣ no⌠ worδ fo≥ somσ partia∞ disassemblie≤ o≥ fo≥ codσ ì
  2619.         ááátha⌠ i≤ relocateΣ beforσ execution« Spuriou≤ reference≤ causeΣ ì
  2620.         áááb∙ misinterpretinτ datß a≤ instruction≤ caε als∩ influencσ thσ ì
  2621.         ááárecognitioε oµ thσ truσ naturσ oµ othe≥ part≤ oµ thσ code.
  2622.  
  2623.         áááStill¼ thσ resultinτ tablσ woulΣ bσ oµ grea⌠ assistancσ t∩ thσ ì
  2624.         áááuse≥ a≤ ß basi≤ fo≥ thσ nex⌠ disassembl∙ trial«á Thσ automatiπ ì
  2625.         ááápas≤ coulΣ bσ repeateΣ witΦ thσ ne≈ table╗ thσ changinτ oµ thσ ì
  2626.         ááádisassembl∙ modσ oµ aε areß oµ memor∙ froφ instructioε t∩ datß ì
  2627.         áááwil∞ influencσ o≥ eliminatσ spuriou≤ referencσ generation.
  2628.  
  2629.         2) I⌠á coulΣá bσá usefu∞ t∩ allo≈ thσ use≥ t∩ specif∙á onσá oµá ß ì
  2630.         ááánumbe≥á oµá popula≥ assemble≥ inpu⌠ formats«á Thi≤á woulΣá in-ì
  2631.         áááfluencσá thσá generatioε oµ colon≤ followinτá labels¼á usσá oµ ì
  2632.         ááá<TAB>≤ t∩ separatσ fields¼ he° notation¼ anΣ others.
  2633.  
  2634.         áááA⌠á thσ presen⌠ timσ thi≤ doe≤ no⌠ appea≥ ver∙ usefu∞á a≤á thσ ì
  2635.         ááácodσá produceΣá caε bσ editeΣ witΦ globa∞ change≤á t∩á correc⌠ ì
  2636.         ááátabs¼á labels¼á etc«á Iεá myô usσ oµ ß disassembler¼á ╔ d∩á no⌠ ìè
  2637.  
  2638.                                      - 40 -
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.         Z80DIS -  Section 9: POSSIBLE EXTENSIONS             - 28 JULY 85
  2645.  
  2646.  
  2647.         áááusuall∙á intenΣá t∩ full∙ reassemblσ ßá largσá program«á ╔á aφ ì
  2648.         ááálookinτá fo≥á place≤á t∩ patcΦ o≥ modif∙ codσ o≥ t∩á changσá ß ì
  2649.         ááácommanΣá sequence«á Thi≤ i≤ wh∙ s∩ mucΦ emphasi≤ i≤ placeΣá oε ì
  2650.         áááshowinτá thσá blockinτ anΣ flo≈ oµ thσ codσá vißá thσá spacinτ ì
  2651.         ááácomment≤ anΣ labelinτ conventioε oε thσ **.PR╬ file«á Wheε yo⌡ ì
  2652.         áááarσá patchinτá codσ i⌠ i≤ imperativσ tha⌠ yo⌡á understanΣá thσ ì
  2653.         áááflo≈á oµá thσ codσ anΣ thσ usagσ oµ eacΦá variable«á Fo≥á tha⌠ ì
  2654.         ááápurpose¼á thσá actua∞á acceptabilit∙ oµ thσ **.MA├ filσ b∙á aε ì
  2655.         áááexistinτ assemble≥ i≤ moot.
  2656.  
  2657.         3) ┴á ver∙ higΦ leve∞ overvie≈ oµ thσ flo≈ oµ ß prograφ i≤á ofteε ì
  2658.         áááuseful«á Thσá cros≤á referencσ informatioε coulΣá bσá useΣá t∩ ì
  2659.         ááásinglσá out¼á a≤ majo≥ components¼á subroutine≤ witΦá multiplσ ì
  2660.         ááácallers¼ anΣ largσ block≤ oµ codinτ witΦ onl∙ self-referencinτ ì
  2661.         ááájumps«á Thesσá woulΣá bσá printeΣá a≤ ßá crudσá flowchar⌠á fo≥ ì
  2662.         áááanalysis.
  2663.  
  2664.  
  2665.                                        --
  2666.  
  2667.  
  2668.         ╔á intenΣ thi≤ lis⌠ a≤ ß catalys⌠ fo≥ dialogue«á You≥ input≤á arσ ì
  2669.         welcome«á Yo⌡ ma∙ offe≥ item≤ t∩ include¼á method≤ oµ attack¼á o≥ ì
  2670.         jus⌠ comment≤ oε thσ thoughts.
  2671.  
  2672.         Thσá list¼á thσ Z80DI╙ program¼á anΣ thi≤ manua∞ wil∞ bσá updateΣ ì
  2673.         froφá irregularl∙ a≤ timσ i≤ availablσ fo≥ thσá project«á Perhap≤ ì
  2674.         somσá oµá thσá extension≤ woulΣ bσ bette≥ handleΣá b∙á additiona∞ ì
  2675.         program≤ witΦ somσ commoε filσ structurσ fo≥ datß sharinτá withiε ì
  2676.         ß famil∙ oµ programs.
  2677.  
  2678.         You ma∙á writσ mσ b∙ U.S«á posta∞ mai∞ o≥ b∙ electroniπá mai∞á a≤ ì
  2679.         indicateΣ iε SECTIO╬ ▒ a⌠ thσ beginninτ oµ thi≤ use≥ manual« 
  2680.  
  2681.  
  2682.                                            Kenneth Gielow
  2683.  
  2684.  
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.                                      - 41 -
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.