home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-10-25 | 93.3 KB | 2,692 lines |
-
-
-
- =================================================================
-
- Z 8 0 D I S
-
- USER
-
- MANUAL
-
- __
-
-
- A new Z80 disassembler
-
- by
-
- KENNETH GIELOW
-
- 28 JULY 85
-
- =================================================================
-
-
-
- - SECTION 1 -
- INTRODUCTORY REMARKS
-
- Z80DI╙á i≤á aε entirel∙ ne≈ disassemble≥ fo≥ Z8░ baseΣ CP/═á sys-ì
- tems«á Z80DI╙á i≤ writteε iε TURB╧ PASCAL«á Z80DI╙ generate≤ Z8░ ì
- mnemonic≤á anΣá prepare≤á aε assembl∙á languagσá filσá witΦá man∙ ì
- specia∞á feature≤á fo≥á easσ oµ understandinτ thσ inten⌠á oµá thσ ì
- code«á Thσá prograφá anΣá documantatioε arσá Copyrigh⌠á 1985¼á b∙ ì
- Kenneth Gielow, Palo Alto, CA. All rights are reserved.
-
-
- This user manual is written in 9 sections:
-
- SECTION 1: These introductory remarks
- SECTION 2: Features of Z80DIS
- SECTION 3: How to use the program & Error messages
- SECTION 4: Adaptation to your terminal
- SECTION 5: Example of first attempt at default disassembly
- SECTION 6: Example of print output for finished disassembly
- SECTION 7: Example of finished code output file
- SECTION 8: Contents and format of xxx.BRK (Break) file
- SECTIO╬ 9║ ┴ collectioε oµ possiblσ extension≤ t∩ Z80DIS
-
-
- Thi≤á prograφ ma∙ bσ useΣ freel∙ fo≥ non-commercia∞á purposes«á ┴ ì
- licensσ i≤ extendeΣ t∩ user≤ t∩ cop∙ anΣ exchangσ thσ prograφ anΣ ì
- documentatioε witΦ thσ solσ restriction≤ tha⌠ authorshi≡á notice≤ ì
- arσá no⌠ t∩ bσ removeΣ o≥ circumventeΣ anΣ tha⌠ sucΦ distributioε ì
- mus⌠á bσá non-commercia∞á iε naturσ (thi≤ i≤ no⌠á t∩á impl∙á tha⌠ ì
- charge≤á fo≥á sucΦá thing≤ a≤ diskette≤ anΣá modes⌠á copyinτá anΣ ì
- mailinτá fee≤ arσ oµ themselve≤ commercia∞ iε nature.⌐ Al∞á othe≥ ì
- right≤ arσ reserveΣ t∩ thσ author¼ KennetΦ Gielow.
- è
-
- - 1 -
-
-
-
-
-
- Z80DIS - a Z80 native code disassembler for CP/M - 28 JULY 85
-
-
-
- A⌠á thi≤ time¼á iε orde≥ t∩ retaiε creativσ contro∞ oµ thσ growtΦ ì
- oµ thσ program¼á ╔ d∩ no⌠ intenΣ an∙ genera∞ releasσ oµ thσ 3000-ì
- plu≤ line≤ oµ sourcσ codσ fo≥ thσ disassembler«
-
- Thσá followinτá file≤ wil∞ bσ founΣ oε thi≤ prograφá distributioε ì
- library packagσ:ì
-
- Z80DIS.COM - thσ prograφ yo⌡ wil∞ bσ installing
- Z80DIS.000 - optiona∞ overla∙ file≤ fo≥ Z80DI╙ (ma∙ be
- Z80DIS.00▒ - one¼ several¼ o≥ nonσ dependinτ oε version)
-
- ZDINSTAL.CO═ - thσ installatioε program
- ZDINSTAL.MSG - contain≤ tex⌠ oµ ZDINSTA╠ message≤
- ZDINSTAL.DTA - contain≤ termina∞ characteristic≤ data
-
- Z80DIS.DOC - the user manual in ready to print format
-
- Thσá Z80DI╙ binar∙ i≤ iε threσ file≤ (seσ SECTIO╬ │ fo≥ use.⌐ Thσ ì
- ZDINSTA╠á file≤á wil∞á tailo≥ thσ interactivσá display≤á t∩á you≥ ì
- termina∞á (seσá SECTIO╬ ┤ fo≥ use.⌐ Thσ DO├ filσ i≤ thσ tex⌠á fo≥ ì
- thi≤ use≥ manual.
-
- Thσ distributeΣ versioε i≤ compileΣ fo≥ ß standarΣ somewha⌠ smal∞ ì
- CP/═á systeφ fo≥ maximuφ compatibilit∙ witΦ thσ large≥á CP/═á 3.░ ì
- anΣá fo≥á user≤á oµá thσá ZCPR│ extension≤á t∩á CP/M«á I⌠á i≤á aε ì
- unfortunatσá quirδá oµ TURB╧ PASCA╠ tha⌠ compilation≤ arσá fo≥á ß ì
- specifiπ sizeΣ machine╗ TP┴ memor∙ sizσ ha≤ beeε se⌠ fo≥ 50K╗ thσ ì
- to≡ addres≤ i≤ C7F╞ hex«á Thi≤ allow≤ enougΦ hea≡ spacσ fo≥ abou⌠ ì
- 112╡á labe∞ references«á Seσ SECTIO╬ ┤ fo≥ aε expositioεá oµá thσ ì
- file≤áá includeΣá iεá thi≤á distributioεá anΣá oεáá interactivel∙ ì
- customizinτáá thσá Z80DIS.CO═á binar∙á filσá fo≥á you≥áá termina∞ ì
- configuration.
-
- Please address comments and suggestions to
- 79 Tulip Lane
- Palo Alto, CA 94303
-
- Leavσ message≤ fo≥ 'KennetΦ Gielo≈' oε thσ followinτ boards:
-
- POTPOURRI RCP/M (408) 378-7474
- METAL MESSAGE SYSTEM #1 (415) 965-4090
-
-
-
-
-
- _________________________________________________________________
-
- CP/M is a trademark of Digital Research Inc.,
- Pacific Grove, CA.
- TURB╧ PASCA╠ i≤ ß trademarδ oµ BorlanΣ International,
- Scott≤ Valley¼ CA
-
-
-
-
- - 2 -
-
-
-
-
-
- Z80DIS - Section 2: Features of Z80DIS - 28 JULY 85
-
-
- - SECTION 2 -
- FEATURES OF Z80DIS
-
- ┴á majo≥á featurσá oµ thi≤ prograφ i≤á aεá extensivσá memor∙á ma≡ ì
- listing« Thi≤ take≤ oε tw∩ forms:
-
- Thσá firs⌠ i≤ aε addres≤ listinτ whicΦ distinguishe≤á type≤ ì
- oµ labe∞ references¼á mark≤ subroutine≤ anΣ jump≤ anΣ produce≤ aε ì
- annotateΣ cross-referencσ oµ al∞ label≤ referenced«á Thσ typσá oµ ì
- eacΦ referencσ i≤ showε b∙ ß onσ o≥ tw∩ lette≥ code:
-
- J = Jump Jr = Jum≡ relative
- C = Call Cr = Cal∞ b∙ Restart
- Lw = LoaΣ word Lb = LoaΣ byte
- Sw = Storσ word Sb = Storσ byte
- Iw = Immediate word
-
- Thσá othe≥á forφ oµ addres≤ mappinτ i≤ aεá addres≤á labelinτ ì
- conventioεá whicΦá assist≤ greatl∙ iε understandinτ thσá assembl∙ ì
- codσá generated«á EacΦá labe∞ generateΣ oε thσá assembl∙á listinτ ì
- indicates¼ b∙ format¼ botΦ thσ generiπ typσ oµ an∙ reference≤ anΣ ì
- thσ singularit∙ oµ thσ reference║
-
- Wherσ ß CP/═ addres≤ caε bσ assumed¼ theε tha⌠ namσ i≤ used:
-
- 0005h=>BDOS, 005Ch=>FCB1, 006Dh=>FCB2, 0080h=>DBUF, etc.
-
- Otherwise¼á thσ labe∞ take≤ thσ forφ L.hhhh anΣ consist≤ oµ threσ ì
- parts║
-
- Thσ firs⌠ characte≥ i≤ usuall∙ ß "J"¼ "C"¼ "D"¼ "Ió o≥ "X"« ì
- J = JUMP (JP, JR references only)
- C = CALL (CALL, RST, JP, JR only)
- D = DATA (8- or 16-bit Load, Store or Immediate only)
- I = Immediate 16-bit only
- X = any other combination (a suspicious mixture)
-
- Iµ thσ firs⌠ characte≥ i≤ ß ".ó (period)¼á thσá addres≤ ì
- áááááááááái≤á no⌠ referenced¼á bu⌠ i≤ includeΣ becausσ i⌠ i≤á thσ ì
- áááááááááábeginninτ oµ aε inaccessiblσ instructioε codσ segment.
-
- Thσ seconΣ characte≥ indicates the singularity of the label.
- . = multiple references
- # = singular reference
-
- Thσ thirΣ througΦ sixtΦ character≤ arσ thσ he° address.
-
- Foráexample¼á J#02E3ôá woulΣ bσ useΣ a⌠ addres≤ 02E│á iµá onσ ì
- ááááááááááreferencσá wa≤ madσ t∩ tha⌠ addres≤ anΣ tha⌠á referencσ ì
- ááááááááááwa≤ ß JUMP.
-
- Anothe≥ featurσ oµ thi≤ disassemble≥ i≤ thσ stylσ oµ presentatioε ì
- oµá thσá assembl∙ code«á Thi≤ codσ i≤ outpu⌠ iεá tw∩á forms║á Thσ ì
- **.PRNä filσ anΣ thσ **.MACä file:
-
- è
-
- - 3 -
-
-
-
-
-
- Z80DIS - Section 2: Features of Z80DIS - 28 JULY 85
-
-
- Thσ **.MACä filσ i≤ you≥ norma∞ assembl∙ languagσ outpu⌠ filσ ì
- read∙ t∩ bσ modifieΣ anΣ re-assembled«
-
- Thσ **.PRNä filσ i≤ aε aiΣ t∩ understandinτ thσ inten⌠ oµ thσ ì
- code«á Thσá filσ look≤ likσ thσ outpu⌠ oµ aε assemble≥ witΦá botΦ ì
- thσ instruction≤ anΣ assembleΣ byte≤ shown«á Thσ juxtapositioε oµ ì
- thσá he°á byte≤á anΣ thσ assembl∙ mnemonic≤ allow≤á thσá use≥á t∩ ì
- recognizσ error≤ causeΣ b∙ aε incorrectl∙ defineΣ breaδ table«
-
- ┴á blanδá commen⌠á linσá i≤ inserteΣá afte≥á ever∙á CAL╠á o≥ ì
- CONDITIONA╠ JUMP«á ┴ ba≥-oµ-dashe≤ commen⌠ linσ i≤ inserteΣ afte≥ ì
- ever∙ UNCONDITIONA╠ JUMP«á Al∞ CAL╠ instruction≤ arσ indenteΣ onσ ì
- spacσ t∩ highligh⌠ them« Al∞ subroutine≤ arσ markeΣ witΦ ß 5-linσ ì
- heade≥á commen⌠á whicΦá separate≤ theφ froφ thσá othe≥á codσá anΣ ì
- allows you to annotate the purpose of the subroutine.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 4 -
-
-
-
-
-
- Z80DIS - Section 3: INSTRUCTIONS FOR EXECUTION - 28 JULY 85
-
-
- - SECTION 3 -
- INSTRUCTIONS FOR EXECUTION
-
- Z80DI╙á i≤ ß batcΦ prograφ witΦ use≥ interactivσ set-u≡ oµ al∞ oµ ì
- thσ contro∞ parameters«á Yo⌡ star⌠ Z80DI╙ b∙ typinτ "Z80DISó witΦ ì
- n∩á parameters«á Thσ prograφ wil∞ promp⌠ yo⌡ fo≥ inputs«á Iε mos⌠ ì
- cases¼á defaul⌠á entrie≤á arσá showεá iεá DI═á intensit∙á alread∙ ì
- occupyinτ thσ datß field«á Iµ yo⌡ typσ onl∙ thσ RETUR╬á key¼á thσ ì
- defaul⌠ wil∞ bσ used.
-
- Z80DIS.CO═á ma∙ bσ oε thσ drivσ oµ you≥ choicσ anΣ executeΣ viß ß ì
- drivσ prefi° (e.i«á B:Z80DIS)¼á bu⌠ thσ overla∙ files¼ Z80DIS.00▒ ì
- anΣ Z80DIS.002¼ mus⌠ bσ oε your loggeΣ drive«
-
- Therσá arσá fou≥á phase≤ oµ execution«á Thσ firs⌠á tw∩á arσá use≥ ì
- interactive║á Basiπá paramete≥ set-u≡ anΣ definitioε oµ thσ breaδ ì
- table«á Thσá seconΣá tw∩ arσ automatic║á Disassembl∙ pas≤ ▒á anΣ ì
- disassembl∙á pas≤á 2«á Thesσ wil∞ bσ deal⌠ witΦ iεá section 3.▒ ì
- througΦ 3.┤ whicΦ follow«á Sectioε 3.╡ wil∞ dea∞ witΦ limitation≤ ì
- anΣ run-timσ errors.
-
- --
-
- SECTION 3.▒ -- BASI├ PARAMETE╥ DEFINITION║á Afte≥ ß brieµ sign-ì
- ááááááááááoε message¼á yo⌡ wil∞ bσ askeΣ t∩ suppl∙ thσá followinτ ì
- ááááááááááinformation:
-
- |================================================================
- | Please enter INPUT file name: ______________
- | OUTPUT file name: ______________
- | LISTING file name: ______________
- | Descriptive TITLE: __________________________________________
- |
- | file LOAD address: ____ HEX
- | disassembly START address: ____ HEX
- | disassembly STOP address: ____ HEX
- |
- | Do you wish to run a FULL output (as opposed to XREF only)?
- | On which disk do you wish the scratch file to reside? (A-G)
- |
- | Do You wish to process all Z80 codes (as opposed 8080 subset)?
- |
- | Are all inputs OK so far?
- |================================================================
-
-
- EacΦ questioε i≤ presenteΣ one-at-a-timσ froφ thσ top«á Thσ para-ì
- graph≤ belo≈ discus≤ thσ purpose¼á defaults¼á editinτá capabilit∙ ì
- anΣ erro≥ checkinτ fo≥ eacΦ answer.
-
-
-
-
-
-
-
-
- - 5 -
-
-
-
-
-
- Z80DIS - Section 3: INSTRUCTIONS FOR EXECUTION - 28 JULY 85
-
-
- -----------------------------------------------------------------
- INPUT file name: ______________
-
- Z80DI╙á want≤ thσ namσ oµ thσ filσ yo⌡ wisΦ t∩á disassemble« ì
- Thi≤á filσá mus⌠ bσ iε thσ absolutσ binar∙ forma⌠ commoε t∩á CP/═ ì
- ".COMó files«á Thσ filσ neeΣ no⌠ bσ ß .CO═ filσ anΣ neeΣ no⌠ loaΣ ì
- int∩á memor∙ a⌠ addres≤ 010░ hex«á Z80DI╙ wil∞ asδ fo≥á thσá loaΣ ì
- address at a later step.
-
- Thσá prograφá want≤ ß CP/═ stylσ filσ namσ iεá thσá standarΣ ì
- forφá D:FILENAME.EXT«á Iµ ß disδ i≤ no⌠á specified¼á thσá curren⌠ ì
- drivσ i≤ used«á Iµ aε extensioε i≤ no⌠ specified¼ ".COMó i≤ used« ì
- Thσá prograφá wil∞ tes⌠ fo≥ existencσ oµ thσ filσ anΣá wil∞á wai⌠ ì
- unti∞á yo⌡á ente≥ ß valiΣ namσ beforσ proceeding«á Iµ yo⌡ wisΦá ß ì
- nul∞á extension¼á ente≥á thσá filσ namσ witΦ ßá fina∞á perioΣá a≤ ì
- "XXXX.".
-
- Unti∞á thσá <CR╛á terminatinτ thσ namσá i≤á typed¼á yo⌡á ma∙ ì
- correc⌠ thσ entr∙ a≤ requireΣ b∙ backspacing«á Yo⌡ ma∙á terminatσ ì
- Z80DI╙ b∙ thσ usua∞ ^C.
-
- -----------------------------------------------------------------
- OUTPUT file name: ______________
-
- Z80DI╙á want≤á thσá namσá oµ thσ filσ t∩á bσá useΣá fo≥á thσ ì
- disassembled output.
-
- Thσá prograφ provide≤ ß defaul⌠ filσ namσ whicΦ i≤ thσá samσ ì
- a≤ thσ filσ namσ giveε fo≥ INPU╘ abovσ witΦ thσ extensioε changeΣ ì
- t∩ ".MAC"« Iµ yo⌡ ente≥ ß <CR╛ yo⌡ wil∞ ge⌠ tha⌠ defaul⌠ name« Iµ ì
- yo⌡ ente≥ ß filσ namσ withou⌠ aε extension¼ thσ defaul⌠ extensioε ì
- ".MACó wil∞ bσ appended«á Iµ yo⌡ wisΦ ß nul∞ extension¼ ente≥ thσ ì
- filσ namσ witΦ ß fina∞ perioΣ a≤ "XXXX.".
-
- Unti∞á thσá <CR╛á terminatinτ thσ namσá i≤á typed¼á yo⌡á ma∙ ì
- correc⌠á thσ entr∙ a≤ requireΣ b∙ backspacing«á Yo⌡ ma∙ terminatσ ì
- Z80DI╙ b∙ thσ usua∞ ^C.
-
- Thσá prograφá wil∞ wai⌠ unti∞ yo⌡ ente≥ ß valiΣ namσá beforσ ì
- proceeding«á Thσ prograφ check≤ t∩ seσ tha⌠ thσ OUTPU╘ filσá namσ ì
- i≤á no⌠á thσ samσ a≤ thσ INPU╘ filσ name«á Iµ therσ i≤ alread∙á ß ì
- filσ b∙ thσ samσ name¼ tha⌠ filσ i≤ overwritteε withou⌠ comment.
-
- -----------------------------------------------------------------
- LISTING file name: ______________
-
- Z80DI╙ want≤ thσ namσ oµ thσ filσ t∩ bσ useΣ fo≥ thσ listinτ ì
- of the cross-reference and the disassembly.ì
-
- Thσá prograφ provide≤ ß defaul⌠ filσ namσ whicΦ i≤ thσá samσ ì
- a≤á thσá filσá namσ giveε fo≥ OUTPU╘á abovσá witΦá thσá extensioε ì
- changeΣ t∩ ".PRN"«á Iµ yo⌡ ente≥ ß <CR╛ yo⌡ wil∞ ge⌠ tha⌠ defaul⌠ ì
- name«á Iµ yo⌡ ente≥ ß filσ namσ withou⌠ aε extension¼ thσ defaul⌠ ì
- extensioε ".PRNó wil∞ bσ appended«á Iµ yo⌡ wisΦ ß nul∞ extension¼ ì
- ente≥ thσ filσ namσ witΦ ß fina∞ perioΣ a≤ "XXXX.".
- è
-
- - 6 -
-
-
-
-
-
- Z80DIS - Section 3: INSTRUCTIONS FOR EXECUTION - 28 JULY 85
-
-
-
- Unti∞á thσá <CR╛á terminatinτ thσ namσá i≤á typed¼á yo⌡á ma∙ ì
- correc⌠ thσ entr∙ a≤ requireΣ b∙ backspacing.á Yo⌡ ma∙ ì
- terminate Z80DIS by the usual ^C.
-
- Thσá prograφá wil∞ wai⌠ unti∞ yo⌡ ente≥ ß valiΣ namσá beforσ ì
- proceeding«á Thσ prograφ check≤ t∩ seσ tha⌠ thσ LISTIN╟ filσ namσ ì
- i≤ no⌠ thσ samσ a≤ eithe≥ oµ thσ previou≤ filσ names« Iµ therσ i≤ ì
- alread∙ ß filσ b∙ thσ samσ name¼ tha⌠ filσ i≤ overwritteε withou⌠ ì
- comment.
-
- -----------------------------------------------------------------
- Descriptive TITLE: __________________________________________
-
- Yo⌡ ma∙ ente≥ ß free-form¼ 42-characte≥ titlσ t∩ bσ includeΣ ì
- a≤ identificatioε oε you≥ listing≤ anΣ outpu⌠ code«á Somσ forφ oµ ì
- date¼ time¼ crackinτ attemp⌠ numbe≥ arσ useful.
-
- Unti∞á thσá <CR╛á terminatinτ thσ namσá i≤á typed¼á yo⌡á ma∙ ì
- correc⌠ thσ entr∙ a≤ requireΣ b∙ backspacing«á Yo⌡ ma∙á terminatσ ì
- Z80DI╙ b∙ thσ usua∞ ^C.
-
- -----------------------------------------------------------------
- file LOAD address: ____ HEX
-
- Z80DI╙ want≤ thσ he° memor∙ addres≤ a⌠ whicΦ thσ firs⌠á worΣ ì
- oµ thσ filσ reside≤ wheε loadeΣ anΣ read∙ t∩ run« Thi≤ i≤ usuall∙ ì
- 010░ he° fo≥ norma∞ .CO═ files«á Iµ yo⌡ ente≥ onl∙ <CR>¼ yo⌡ wil∞ ì
- ge⌠ thσ 010░ default«
-
- Iµá yo⌡ havσ createΣ thσ filσ iε somσ othe≥ manne≥ sucΦ a≤ ß ì
- dum≡á oµ RO═ content≤ t∩ ß file¼á theε yo⌡ wil∞ neeΣ t∩ givσá thσ ì
- RO═ startinτ address«á Somσ program≤ relocatσ par⌠ oµ thσá binar∙ ì
- imagσ afte≥ loadinτ bu⌠ beforσ tha⌠ par⌠ i≤ executed╗á thi≤ relo-ì
- catioε i≤ usuall∙ t∩ highe≥ memory« T∩ compensatσ fo≥ relocation¼ ì
- yo⌡ wil∞ havσ t∩ givσ aε adjusteΣ loaΣ addres≤ fo≥ thσ firs⌠ worΣ ì
- oµ thσ filσ (highe≥ thaε 010░ b∙ thσ relocatioε amount.)
-
- Unti∞á thσá <CR╛á terminatinτ thσ namσá i≤á typed¼á yo⌡á ma∙ ì
- correc⌠á thσ entr∙ a≤ requireΣ b∙ backspacing«á Yo⌡ ma∙ terminatσ ì
- Z80DI╙ b∙ thσ usua∞ ^C.
-
- -----------------------------------------------------------------
- disassembly START address: ____ HEX
-
- Z80DI╙á want≤á thσ he° memor∙ addres≤ a⌠ whicΦ t∩ star⌠á thσ ì
- disassembly« Thi≤ i≤ usuall∙ thσ samσ a≤ thσ LOA─ address« Iµ yo⌡ ì
- ente≥á onl∙á <CR>¼á yo⌡ wil∞ ge⌠ thσ valuσ yo⌡á entereΣá a≤á LOA─ ì
- addres≤á a≤ default«á Thσ STAR╘ addres≤ mus⌠ bσ a⌠ o≥ highe≥ thaε ì
- thσ LOA─ address«
-
- Iµá yo⌡ wisΦ onl∙ ß partia∞ disassembly¼á yo⌡ ma∙ specif∙ ßá morσ ì
- limiteΣ rangσ oµ STAR╘ anΣ STO╨ addresses.
-
- Editing is the same as for the LOAD address above.
- è
-
- - 7 -
-
-
-
-
-
- Z80DIS - Section 3: INSTRUCTIONS FOR EXECUTION - 28 JULY 85
-
-
-
- -----------------------------------------------------------------
- disassembly STOP address: ____ HEX
-
- Z80DI╙á want≤á thσ he° memor∙ addres≤ a⌠ whicΦ t∩á sto≡á thσ ì
- disassembly«á Iµ yo⌡ ente≥ onl∙ <CR>¼ yo⌡ wil∞ ge⌠ thσ valuσ FFF╞ ì
- he° whicΦ mean≤ thσ enΣ oµ thσ INPU╘ file«á Thσ STO╨ addres≤ mus⌠ ì
- bσ highe≥ thaε thσ STAR╘ address«
-
- Iµá yo⌡ wisΦ onl∙ ß partia∞ disassembly¼á yo⌡ ma∙ specif∙ ßá morσ ì
- limiteΣ rangσ oµ STAR╘ anΣ STO╨ addresses.
-
- Unti∞á thσá <CR╛á terminatinτ thσ namσá i≤á typed¼á yo⌡á ma∙ ì
- correc⌠á thσ entr∙ a≤ requireΣ b∙ backspacing«á Yo⌡ ma∙ terminatσ ì
- Z80DI╙ b∙ thσ usua∞ ^C.
-
- -----------------------------------------------------------------
- Do you wisΦ t∩ ruε ß FUL╠ outpu⌠
- (a≤ opposeΣ t∩ XRE╞ only⌐ ┐ (Y/N⌐ _
-
- Iµ yo⌡ answe≥ Y¼á yo⌡ wil∞ ge⌠ ß ful∞ disassembl∙á includinτ ì
- botΦá thσ cross-referencσ par⌠ anΣ thσ instructioε codσ part«á Iµ ì
- yo⌡ answe≥ N¼ yo⌡ wil∞ onl∙ ge⌠ ß cross-reference«
-
- Thσ "Nó answe≥ processe≤ faste≥ anΣ i≤ ß gooΣ placσ t∩ star⌠ ì
- t∩ ge⌠ ß fee∞ fo≥ thσ memor∙ layou⌠ anΣ t∩ develo≡ ß breaδ table«
-
- Thσá "Yóá answe≥ require≤ usσ oµ ß scratcΦ filσ t∩ holΣá thσ ì
- disassembleΣá codσ anΣ othe≥ informatioε prio≥ t∩ thσá completioε ì
- oµá thσá addres≤ referencσ collection«á Thi≤ filσ caεá bσá rathe≥ ì
- largσá (3░á byte≤ pe≥ instruction⌐ anΣ shoulΣ residσ oεá ßá drivσ ì
- witΦ plent∙ oµ space« Iµ yo⌡ havσ answereΣ "Y"¼ yo⌡ wil∞ bσ askeΣ ì
- the following question:
-
- -----------------------------------------------------------------
- On which disk do you wish the scratch file to reside? (A-G) _
-
- Thi≤á allow≤á yo⌡á t∩ placσ thσ scratcΦ filσ oεá ßá specifiπ ì
- drive« Iµ yo⌡ answe≥ <CR>¼ theε thσ loggeΣ drivσ i≤ used.
-
- -----------------------------------------------------------------
- Do you wish to process all Z80 codes
- (as opposed 8080 subset only) ? (Y/N) _
-
- Man∙á oµ thσ publiπ domain¼á anΣ other¼á program≤ whicΦá ruε ì
- unde≥á CP/═á arσá writteεá iεá purσ 808░á codσá withou⌠á thσá Z8░ ì
- extension≤á t∩á thσá instructioε set«á SucΦá program≤á shoulΣá bσ ì
- disassembleΣá witΦ ß "Nó answe≥ t∩ thi≤ question«á Thσ N╧á answe≥ ì
- wil∞ stil∞ generatσ Z8░ mnemonics¼á bu⌠ wil∞ marδ a≤ invaliΣá al∞ ì
- instructioεá byte≤ correspondinτ t∩ thσ unexpecteΣ Z8░ extension≤ ì
- t∩ thσ 808░ codσ set.
-
- Yo⌡á shoulΣá usσá thσ "Yó answe≥ onl∙ iµ yo⌡ kno≈á tha⌠á thσ ì
- program will run only on a Z80 based CP/M system.
-
- è
-
- - 8 -
-
-
-
-
-
- Z80DIS - Section 3: INSTRUCTIONS FOR EXECUTION - 28 JULY 85
-
-
- -----------------------------------------------------------------
- Are all inputs OK so far? (Y/N) _
-
- Thi≤ questioε give≤ yo⌡ ß chancσ t∩ re-examinσ you≥á answer≤ ì
- t∩ thσ othe≥ question≤ beforσ continuing«á Iµ yo⌡ answe≥ "N"¼ thσ ì
- prograφá wil∞á returε t∩ thσ INPU╘ filσ question«á Iµ yo⌡á answe≥ ì
- "Y", you will continue on to setting up your break table.
-
- -----------------------------------------------------------------
-
- Tha⌠ complete≤ thσ set-u≡ phasσ oµ thσ disassembl∙á process«á Thσ ì
- nex⌠á ste≡á i≤ t∩ definσ thσ typσ oµ disassembl∙ t∩ bσá useΣá fo≥ ì
- each part of the program memory.
-
-
- --
-
-
- SECTION 3.▓á -- DEFINITIO╬á O╞ TH┼ BREA╦ TABLE║á Afte≥ yo⌡á havσ ì
- ááááááááááanswereΣ YE╙ t∩ thσ "Input≤ O╦" question¼ You≥ termina∞ ì
- ááááááááááwill now display the following:
-
- |================================================================
- | >>> Z80DIS version 1.5
- | Yo⌡ ma∙ no≈ ente≥ CONTRO╠ BREA╦ addresse≤ t∩ definσ thσ type
- | oµ disassembl∙ fo≥ eacΦ sectioε oµ thσ code╗ eacΦ control
- | breaδ define≤ thσ firs⌠ addres≤ oµ ß sectioε whicΦ end≤ a⌠ the
- | beginninτ oµ thσ nex⌠ section-▒ byte.
- |
- | TO SEE DETAILS OF YOUR COMMAND CHOICES, type H
- |
- | ?: _
- |================================================================
-
- Iµá thi≤ i≤ you≥ firs⌠ attemp⌠ t∩ disassemblσ ß ne≈á prograφ ì
- anΣá yo⌡á havσ n∩ ideß wherσ anythinτ i≤ stored¼á jus⌠ ski≡á thi≤ ì
- phasσ b∙ enterinτ "Q"«á Thσ "Qó commanΣ wil∞ QUI╘ thσ breaδ tablσ ì
- definitioεá proces≤á anΣá trea⌠á thσá wholσá prograφá memor∙áá a≤ ì
- instructions«áá Thσá memor∙á ma≡á showεá b∙á thσá cross-referencσ ì
- printou⌠á wil∞á givσá yo⌡á ß gooΣ estimatσá oµá thσá breaδá tablσ ì
- content≤ fo≥ you≥ seconΣ attemp⌠ t∩ cracδ thσ code.
-
- ┴á "breakóá i≤ defineΣ t∩ bσ aε addres≤ iε thσ memor∙á wherσá yo⌡ ì
- wisΦ t∩ eithe≥ forcσ ß break¼ o≥ yo⌡ wisΦ t∩ changσ froφ onσ typσ ì
- oµá disassembl∙á t∩ another«á Thσ breaδ tablσ i≤ defineΣ t∩ bσá ß ì
- lis⌠á oµ thσ breaδ addresse≤ fo≥ ß giveε binar∙ file«á Thσá breaδ ì
- tablσ ma∙ bσ writteε t∩ ß break filσ (Seσ SECTIO╬ 8.)
-
-
-
-
-
-
-
-
-
-
- - 9 -
-
-
-
-
-
- Z80DIS - Section 3: INSTRUCTIONS FOR EXECUTION - 28 JULY 85
-
-
- This disassembler can operate in six modes:
-
- I = Instructions
- A = Ascii text using DEFM with quoted strings
- B = Byte storage using DEFB with hex byte values
- W = Word storage using DEFW with hex word values
- T = Table of addresses using DEFW with address labels
- S = Space using DEFS and the length
-
- EacΦá breaδá addres≤ define≤ thσ star⌠ oµá tha⌠á mode«á Thσá modσ ì
- remain≤ iε effec⌠ unti∞ onσ bytσ beforσ thσ nex⌠ breaδ addres≤ o≥ ì
- the end of the program memory.
-
- Iεá additioε t∩ thσ si° breaδ settinτ commands¼á therσ arσá eigh⌠ ì
- othe≥ command≤ tha⌠ ma∙ bσ entered:
-
- C = Clear all of break table
- FL = Load (append) a break file to the break table
- FS = Store break table as a break file
- L = List break table for review
- H = display Help for break table editing commands
- K = Kill existing break at an address
- P = Print break table on "LST:" CP/M device
- Q = Quit break entry process (start the disassembly)
-
-
-
-
- THE COMMANDS
-
- Command≤á ma∙á bσá giveε iε an∙ orde≥ witΦ thσ exceptioεá oµá "Qó ì
- whicΦ terminate≤ commanΣ entry«á EacΦ commanΣ i≤ presenteΣá belo≈ ì
- t∩ discus≤ thσ purpose¼ editinτ capability¼ anΣ erro≥ detection.
-
-
- -----------------------------------------------------------------
- C
-
- Purpose║á Clear≤ entirσ breaδ tablσ t∩ empty« Aε empt∙ breaδ ì
- tablσ define≤ thσ entirσ codσ segmen⌠ t∩ bσ instructions« A≤ thi≤ ì
- i≤ ß fairl∙ drastiπ thinτ t∩ do¼á yo⌡ wil∞ bσ askeΣ t∩ responΣ t∩ ì
- thσ following question ..
-
- Do you really want to clear all control breaks? (Y/N) _
-
- Iµ yo⌡ answe≥ N¼á thσ commanΣ i≤ canceled«á Iµ yo⌡ answe≥ Y¼ ì
- the table is cleared. All other entries but N and Y are ignored.
-
- -----------------------------------------------------------------
-
-
-
-
-
-
-
-
- - 10 -
-
-
-
-
-
- Z80DIS - Section 3: INSTRUCTIONS FOR EXECUTION - 28 JULY 85
-
-
- FS
-
- Purpose: Store break table as a break file (see SECTION 8.)
-
- Response║á Thσá prograφ respond≤ b∙ fillinτ ou⌠ thσá commanΣ ì
- line as shown below:
-
- FS - Save Control Breaks.. SAVE file name: ___________
-
- Yo⌡á mus⌠ givσ ß lega∞ CP/═ filσ namσ followeΣá b∙á carriagσ ì
- returεá <CR>«á Iµá yo⌡á jus⌠ givσ ß <CR>¼á thσá defaul⌠á namσá oµ ì
- "SAVE.BRKó wil∞ bσ used«á Iµ yo⌡ ente≥ onl∙ thσ namσ par⌠ anΣ no⌠ ì
- aε extension¼ thσ extensioε ".BRKó wil∞ bσ used.
-
- Upon entry of the <CR> the file is written.
-
- -----------------------------------------------------------------
- FL
-
- Purpose: Load break table from a break file (see SECTION 8.)
-
- Response║á Thσá prograφ respond≤ b∙ fillinτ ou⌠ thσá commanΣ ì
- line as shown below:
-
- FL - Load Control Breaks.. SAVE file name: ___________
-
- Yo⌡á mus⌠ givσ ß lega∞ CP/═ filσ namσ followeΣá b∙á carriagσ ì
- returεá <CR>«á Iµá yo⌡á jus⌠ givσ ß <CR>¼á thσá defaul⌠á namσá oµ ì
- "SAVE.BRKó wil∞ bσ used«á Iµ yo⌡ ente≥ onl∙ thσ namσ par⌠ anΣ no⌠ ì
- aε extension¼ thσ extensioε ".BRKó wil∞ bσ used.
-
- Upoεá entr∙ oµ thσ <CR╛ thσ filσ i≤ reaΣ anΣ mergeΣ witΦ thσ ì
- current break table. The following error messages may be given:
-
- < ERROR > that file does not exist
-
- Thσá filσá yo⌡ havσ requesteΣ i≤ no⌠ present╗á thσ F╠ commanΣá i≤ ì
- canceled.
-
- < ERROR > type "X" is invalid from SAVE file.. IGNORED
-
- Thσ breaδ typσ showε a≤ ╪ wa≤ founΣ oε you≥ breaδ file╗á ╪ i≤ no⌠ ì
- ß lega∞ breaδ type« (Lega∞ type≤ arσ I,A,B,W,T,S⌐ Tha⌠ particula≥ ì
- breaδ poin⌠ i≤ ignoreΣ bu⌠ filσ processinτ continues.
-
- < ERROR > Invalid Hex Address "XXXX" from SAVE file
-
- Thσá breaδá addres≤ showε a≤ XXX╪ wa≤ founΣ oε you≥á breaδá file╗ ì
- XXX╪á i≤ no⌠ ß valiΣ hexadecima∞ address«á Tha⌠ particula≥á breaδ ì
- poin⌠ i≤ ignoreΣ bu⌠ filσ processinτ continues.
-
- -----------------------------------------------------------------
-
-
-
-
-
- - 11 -
-
-
-
-
-
- Z80DIS - Section 3: INSTRUCTIONS FOR EXECUTION - 28 JULY 85
-
-
- L
-
- Purpose║á Lis⌠á thσá breaδá tablσ t∩á you≥á consolσá displa∙ ì
- device.
-
- Response║á Thσá prograφ respond≤ b∙ fillinτ ou⌠ thσá commanΣ ì
- line followed by a listing of the break table as shown below:
-
- List Control Breaks
-
- Typ 0000-0000 Typ 0000-0000 Typ 0000-0000 Typ 0000-0000 ....
-
- -----------------------------------------------------------------
- H
-
- Purpose║á Reques⌠ displa∙ oµ shor⌠ criΓ note≤ oε breaδ tablσ ì
- commands.
-
- Response: the following screen of information is displayed:
-
- |================================================================
- |
- | command long name break code meaning
- |---------/------------/------------/----------------------------
- | C Clear - clear all of break table
- | FL File Load - Load (append) file to table
- | FS File Store - Store table as file
- | L List - List break table for review
- | H Help - Re-list these instructions
- | K Kill - Kill break at address
- | P Print - Print break table on LST:
- | Q Quit - Quit break entry process
- |
- | I Instructions Ins set Instruction break
- | A Ascii Asc set Ascii break
- | B Bytes Byt set Byte break
- | W Words Wrd set Word break
- | T Table of addr Adt set address Table break
- | S Space Spc set Space break
- |
- |================================================================
-
- -----------------------------------------------------------------
- K
-
- Purpose: Remove a break point from the table.
-
- Response║ Thσ prograφ wil∞ completσ thσ commanΣ anΣ positioε ì
- thσ curso≥ fo≥ entr∙ oµ ß Hexadecima∞ number:
-
- Kill break at .... hex
-
- Yo⌡ ente≥ thσ addres≤ followeΣ b∙ <CR>« An∙ numbe≥ tha⌠ yo⌡ ente≥ ì
- wil∞ bσ righ⌠ justifieΣ iε thσ fou≥ digit≤ wheε yo⌡ pusΦ <CR>« Iµ ì
- thσá addres≤á i≤ no⌠ tha⌠ oµ aε existinτ breaδá point¼á n∩á erro≥ ìè
-
- - 12 -
-
-
-
-
-
- Z80DIS - Section 3: INSTRUCTIONS FOR EXECUTION - 28 JULY 85
-
-
- messagσ i≤ giveε anΣ n∩ actioε i≤ taken« Iµ thσ addres≤ i≤ ou⌠ oµ ì
- rangσ oµ thσ prograφ addresses¼ thσ followinτ informativσ messagσ ì
- is given:
- < ERROR: address out of range, ignored >
-
- -----------------------------------------------------------------
- P
-
- Purpose║ Lis⌠ thσ breaδ tablσ t∩ you≥ CP/═ LST║ device.
-
- Response║á Thσá prograφ respond≤ b∙ fillinτ ou⌠ thσá commanΣ ì
- linσá oε thσ displa∙ followeΣ b∙ ß listinτ oµ thσ breaδ tablσá oε ì
- the printer as shown below:
-
- < to the display >
-
- Print Control Breaks
-
- < to the printer >
-
- Typ 0000-0000 Typ 0000-0000 Typ 0000-0000 Typ 0000-0000 ....
-
- -----------------------------------------------------------------
- Q
-
- Purpose║á Qui⌠á breaδá tablσá processinτá anΣá proceeΣá witΦ ì
- disassembly.
-
- Response║á Thσ prograφ wil∞ completσ thσ commanΣ linσ iε onσ ì
- oµá tw∩ ways«á Iµ yo⌡ havσ saveΣ you≥ definition≤ ont∩ ß filσ fo≥ ì
- futurσá use¼á o≥ havσ no⌠ madσ an∙ change≤ t∩ definition≤á loadeΣ ì
- froφá ß file¼á yo⌡ wil∞ ge⌠ thσ norma∞ messagσ anΣá contro∞á wil∞ ì
- pass to the disassembler pass one:
-
-
- Quit Control Break definition -
-
-
-
- Alternatσ Response║á Iµ yo⌡ havσ no⌠ saveΣ you≥ breaδ table¼á yo⌡ ì
- wil∞ ge⌠ thσ followinτ warninτ message:
-
-
- Quit < Informative ERROR >
- attempt to QUIT without saving Break Addresses
- either SAVE to a file (using FS command),
- or QUIT without save (using Q command)
-
-
-
- If you do not wish to save the table, just type "Q" again.
-
- -----------------------------------------------------------------
-
-
-
-
- - 13 -
-
-
-
-
-
- Z80DIS - Section 3: INSTRUCTIONS FOR EXECUTION - 28 JULY 85
-
-
- I
- A
- B
- W
- T
- S
-
- Purpose║á Thesσá si°á command≤ se⌠ breaδ tablσ addresse≤á t∩ ì
- define transition points in the disassembly mode.
-
- Response║á Thσá prograφ wil∞ completσ thσ commanΣá linσá anΣ ì
- positioε thσ curso≥ fo≥ entr∙ oµ ß Hexadecima∞ number:
-
- I at .... hex
-
- Yo⌡ ente≥ thσ addres≤ followeΣ b∙ <CR>« An∙ numbe≥ tha⌠ yo⌡ ente≥ ì
- wil∞ bσ righ⌠ justifieΣ iε thσ fou≥ digit≤ wheε yo⌡ pusΦ <CR>« Iµ ì
- thσ addres≤ i≤ ou⌠ oµ rangσ oµ thσ prograφ addresses¼á onσ oµ thσ ì
- followinτ informativσ messagσ i≤ given:
-
- < ERROR: address below start, set to start >
- < ERROR: address above stop, ignored >
-
- EacΦáá breaδá addres≤á define≤á thσá star⌠á oµá tha⌠á mode«áá Thσ ì
- disassembl∙ modσ defineΣ b∙ tha⌠ breaδ addres≤ remain≤ iεá effec⌠ ì
- unti∞á onσá bytσ beforσ thσ nex⌠ breaδ addres≤ o≥ thσ enΣ oµá thσ ì
- prograφá memory«á Iµ yo⌡ ente≥ ß breaδ a⌠ thσ samσ addres≤ a≤á aε ì
- existinτá breaδá address¼á thσ forme≥ definitioεá i≤á overwritteε ì
- without comment.
-
- This disassembler can operate in six modes:
-
- I = Instructions
- (Either Z80 full set or 8080 sub set)
-
- A = Ascii text using DEFM with quoted strings
- (an Ascii region is output as strings of characters)
-
- B = Byte storage using DEFB with hex byte values
- (blocks of single bytes interpreted as numbers)
-
- W = Word storage using DEFW with hex word values
- (blocks of double byte words interpreted as numbers)
-
- T = Table of addresses using DEFW with address labels
- (blocks of byte pairs interpreted as addresses)
-
- S = Space using DEFS and the length
- (blocks of empty space of uninterpreted content)
-
- -----------------------------------------------------------------
-
-
-
-
-
-
- - 14 -
-
-
-
-
-
- Z80DIS - Section 3: INSTRUCTIONS FOR EXECUTION - 28 JULY 85
-
-
- _ ( any other command not listed above )
-
- Purpose║ Iµ yo⌡ can'⌠ thinδ oµ an∙ commands¼ ente≥ anything.
-
- Response║á Thσ prograφ wil∞ responΣ witΦ thσ followinτ shor⌠ ì
- criΓá note«á a≤ i⌠ says¼á t∩ seσ morσ helpfu∞ information¼á ente≥ ì
- "H".
-
- _ is unacceptable, commands are: C,F,L,H,K,P,Q;
- Break Types are: I,A,B,W,T,S
- To see complete definitions, enter H.
-
-
- -----------------------------------------------------------------
-
-
- Upoεá entr∙á oµ thσ Qui⌠ command¼á thσ actua∞á disassembl∙á wil∞ ì
- begin.
-
- --
-
-
-
- SECTION 3.│ -- EXECUTIO╬ PAS╙ ONE║á Durinτ thi≤ pas≤ thσ codσ i≤ ì
- áááááááááácrackeΣá accordinτá t∩á thσá breaδá table¼áá thσá cros≤ ì
- ááááááááááreferencσ lis⌠ structurσ i≤ linkeΣ int∩ thσ PASCA╠ hea≡ ì
- ááááááááááspacσ iε uppe≥ memory¼á thσ crackeΣ codσ i≤ copieΣ witΦ ì
- áááááááááácontex⌠áá informatioεá ont∩á ßá scratcΦáá filσáá calleΣ ì
- ááááááááááZ80DIS.$$$«á Durinτ pas≤ one¼á you≥ consolσ screeε wil∞ ì
- áááááááááádispla∙ thσ following:
-
- |================================================================
- | Beginning disassembly...
- | THIS IS Pass 1
- | working at 05F0 Asc
- |================================================================
-
- Thσá "workinτá atóá linσ i≤ animateΣ anΣ wil∞á sho≈á thσá curren⌠ ì
- addres≤ anΣ disassembl∙ mode« Iε thσ illustrateΣ casσ thσ prograφ ì
- ha≤á jus⌠á finisheΣ processinτ thσ filσ D.CO═ anΣ thσ las⌠á breaδ ì
- type was ascii.
-
- Durinτ an∙ executioε phase¼á yo⌡ ma∙ typσ ^├ t∩ abor⌠ tha⌠ phase« ì
- Iµá yo⌡ abor⌠ durinτ pas≤ one¼á thσ prograφ wil∞ trea⌠ tha⌠ a≤á ß ì
- prematurσá enΣ oµ filσ anΣ g∩ oε t∩ proces≤ wha⌠ i⌠á ha≤á througΦ ì
- pass two.
-
- --
-
-
-
-
-
-
-
-
-
- - 15 -
-
-
-
-
-
- Z80DIS - Section 3: INSTRUCTIONS FOR EXECUTION - 28 JULY 85
-
-
- SECTION 3.┤á -- EXECUTIO╬á PAS╙ TWO║á Durinτ thi≤ pas≤ al∞á use≥ ì
- ááááááááááoutpu⌠ file≤ anΣ listing≤ arσ produceΣ anΣ thσá scratcΦ ì
- ááááááááááfilσá i≤ erased«á Durinτ pas≤ two¼á you≥ consolσ screeε ì
- ááááááááááwil∞ displa∙ thσ following:
-
- |================================================================
- | THIS IS Pass 2
- | scratch file contains 396 records of 30 bytes each
- | Freσ memor∙ spacσ remaininτ afte≥ XRE╞ tablσ storagσ
- | assignment≤ i≤ 2914┤ byte≤ ou⌠ oµ thσ origina∞ 3130░
- | byte≤ (o≥ 6.╣ percen⌠ used.)
- |
- | LISTING cross references
- |
- | LISTING Subroutines
- |
- | PRODUCING disassembled output files
- | Processing external label equates
- | Working at 05F0 Asc
- |================================================================
-
- Thσá displa∙ wil∞ takσ yo⌡ ste≡ b∙ ste≡ througΦ pas≤ tw∩ anΣ sho≈ ì
- you what the program is doing at each step.
-
- Thσ informativσ message≤ abou⌠ filσ anΣ memor∙ spacσ wil∞ le⌠ yo⌡ ì
- see just how close to capacity the program is running.
-
- Thσá "workinτá atóá linσ i≤ animateΣ anΣ wil∞á sho≈á thσá curren⌠ ì
- addres≤ anΣ disassembl∙ mode« Iε thσ illustrateΣ casσ thσ prograφ ì
- ha≤á jus⌠á finisheΣ pass two processinτ of thσ filσ D.CO═.
-
- Durinτ an∙ executioε phase¼á yo⌡ ma∙ typσ ^├ t∩ abor⌠ tha⌠ phase« ì
- Iµá yo⌡ abor⌠ durinτ an∙ oµ thσ step≤ oµ pas≤á two¼á thσá prograφ ì
- wil∞á g∩ oε t∩á proces≤ the next step.
-
- Wheε thσ prograφ i≤ complete¼ Z80DI╙ wil∞ rinτ you≥ termina∞ bel∞ ì
- twice and display the sign-off message..
-
- |================================================================
- | END of Pass 2
- |================================================================
-
- --
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 16 -
-
-
-
-
-
- Z80DIS - Section 3: INSTRUCTIONS FOR EXECUTION - 28 JULY 85
-
-
- SECTION 3.╡á -- LIMITATION╙á AN─á RUN-TIM┼á ERRORS║áá Therσá arσ ì
- áááááááááásevera∞á error≤ whicΦ TURB╧ PASCA╠ caε producσ owinτ t∩ ì
- áááááááááálimitation≤ oε memor∙ o≥ filσ size«á Thi≤ sectioεá wil∞ ì
- áááááááááádiscuss those errors and the implications.
-
- Thσ followinτ overflo≈ condition≤ caε causσ troublσ iε runninτá ß ì
- largσ disassembly║
-
- 1) Yo⌡á ma∙ overflo≈ thσ prograφ memor∙ spacσ useΣá t∩á holΣ ì
- ááááááááááthσ addres≤ references.
-
- 2) Yo⌡á ma∙á overflo≈ Z80DIS.$$ñ scratcΦ filσ spacσ iεá pas≤ ì
- ááááááááááone.
-
- 3) Yo⌡á ma∙á overflo≈ eithe≥ **.PR╬ o≥ **.MA├ filσ spacσá iε ì
- áááááááááápas≤ two.
-
- Nonσá oµá thesσá error≤á i≤ currentl∙ trappeΣ anΣá handleΣá iεá ß ì
- friendl∙á manner«á EacΦá generate≤ ß TURB╧á PASCA╠á error«á TURB╧ ì
- distinguisheΣá betweeεá "Runtimeó error≤ an≤á "I/Oóá errors«á Thσ ì
- erro≥ code≤ whicΦ caε bσ expecteΣ arσ a≤ follows:
-
- RUN-TIME ERRORS
-
- F0 - Overlay file not found
-
- Thσ Z80DI╙ overla∙ file≤ Z80DIS.00▒ anΣá .00▓ ì
- áááááááááááááááááááámus⌠á bσá oε you≥ loggeΣ drive«á Kee≡ al∞á oµ ì
- ááááááááááááááááááááZ80DI╙ oε you≥ loggeΣ drivσ anΣ refe≥ t∩ you≥ ì
- áááááááááááááááááááádatßá file≤ witΦ drivσ prefixe≤ iµá necessar∙ ì
- áááááááááááááááááááá(e.g. B:D.COM)
-
- FF - Heap/Stack collision
-
- Yo⌡á havσá to∩ man∙ label≤ t∩á reference≤á t∩ ì
- áááááááááááááááááááálabel≤á fo≥ thσ memor∙á spacσá allowed«á EacΦ ì
- áááááááááááááááááááálabe∞á definitioε take≤ ╣ bytes¼á eacΦá labe∞ ì
- ááááááááááááááááááááreferencσá take≤á ╡ bytes¼á eacΦ breaδá tablσ ì
- ááááááááááááááááááááaddres≤á take≤ ╡ bytes«á Thσá allocatioεá fo≥ ì
- ááááááááááááááááááááthi≤á versioεá oµá Z80DI╙á i≤á roughl∙á 24000 ì
- áááááááááááááááááááábytes«á Tha⌠á i≤á abou⌠á 1125 label≤á a⌠á tw∩ ì
- ááááááááááááááááááááreferences per label.
-
- I/O ERRORS
-
- F0 - Disk Write error
-
- Yo⌡ disδ i≤ full« Iµ thi≤ occur≤ iε pas≤ one¼ ì
- ááááááááááááááááááááthσ disδ witΦ thσ scratcΦ filσ i≤á full«á Yo⌡ ì
- ááááááááááááááááááááshoulΣá movσ thσ scratcΦ filσ t∩ ß disδá witΦ ì
- áááááááááááááááááááámorσ space╗ thi≤ i≤ donσ durinτ initia∞ setu≡ ì
- ááááááááááááááááááááquestioεá anΣ answe≥ sessioε wheε thσ prograφ ì
- ááááááááááááááááááááask≤á fo≥ thσ residencσ disδ oµá thσá scratcΦ ì
- ááááááááááááááááááááfile.
-
- è
-
- - 17 -
-
-
-
-
-
- Z80DIS - Section 3: INSTRUCTIONS FOR EXECUTION - 28 JULY 85
-
-
- Iµ thi≤ occur≤ durinτ pas≤ two¼á theεá eithe≥ ì
- ááááááááááááááááááááthσá **.PR╬á filσá o≥á thσá **.MA├á filσá ha≤ ì
- ááááááááááááááááááááoverfloweΣá disδá spacσá (thσá .PR╬á filσá i≤ ì
- ááááááááááááááááááááconsiderabl∙ large≥ thaε thσ .MA├ file.⌐ Thi≤ ì
- ááááááááááááááááááááwil∞ normall∙ no⌠ happeε iε ß ruε fo≥á cross-ì
- ááááááááááááááááááááreferencσá onl∙á a≤á thσ .PR╬á filσá i≤á mucΦ ì
- áááááááááááááááááááásmalle≥á anΣá thσ .MA├ filσ i≤ no⌠á produced« ì
- ááááááááááááááááááááThσá onl∙á cure≤á fo≥á thi≤á probleφá arσá t∩ ì
- áááááááááááááááááááádisassemblσá b∙ part≤ o≥ t∩ movσ thesσá file≤ ì
- áááááááááááááááááááát∩ ß drivσ witΦ morσ spacσ (i.e«á usσ ß drivσ ì
- ááááááááááááááááááááprefi°á wheεá answerinτ thσ questioεá "OUTPU╘ ì
- ááááááááááááááááááááfile║ _____")
-
- F1 - Directory full
-
- Onσ oµ you≥ disδ directorie≤ i≤ full« Iµ thi≤ ì
- ááááááááááááááááááááoccur≤á durinτ pas≤ one¼á i⌠ i≤ thσ disδ witΦ ì
- ááááááááááááááááááááZ80DIS.$$$«á Iµ thi≤ occur≤ durinτ pas≤á two¼ ì
- áááááááááááááááááááátheεá eithe≥á thσ **.PR╬ filσ o≥á thσá **.MA├ ì
- ááááááááááááááááááááfilσ arσ involved« Yo⌡ mus⌠ erasσ ß couplσ oµ ì
- ááááááááááááááááááááfile≤á o≥ usσ ß disδ witΦ spacσ remaininτá iε ì
- ááááááááááááááááááááthσ directory.
-
-
- N∩ othe≥ TURB╧ error≤ arσ expected«á Mos⌠ al∞ typσ iε format≤ anΣ ì
- filσá existencσá problem≤ arσ caugh⌠ b∙ thσ prograφ anΣá yo⌡á arσ ì
- given appropriate helpful suggestions.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 18 -
-
-
-
-
-
- Z80DIS - Section 4: ADAPTATION TO YOUR TERMINAL - 28 JULY 85
-
-
- - SECTION 4 -
- ADAPTATIO╬ O╞ Z80DIS T╧ YOU╥ TERMINAL
-
- CP/═á i≤á ß generiπ operatinτ system¼á bu⌠ mos⌠ oµ thσá terminal≤ ì
- useΣá witΦá CP/═ havσ feature≤ no⌠á anticipateΣá b∙á CP/M«á Thesσ ì
- feature≤á includσá CURSO╥á ADDRESSinτ anΣ BRIGHT/DI═á displa∙á oµ ì
- characters«á Thi≤á prograφ utilize≤ sucΦ feature≤ t∩ improvσá thσ ì
- operato≥ interaction«á A≤ thσ prograφ itselµ i≤ writteε iε TURB╧ ì
- PASCAL¼á thσ TURB╧ installatioε suppor⌠ featurσ ha≤ beeε useΣá t∩ ì
- makσ thi≤ adaptatioε easy.
-
- Therefore¼á beforσ yo⌡ usσ thi≤ program¼á i⌠ mus⌠ bσ installeΣ t∩ ì
- you≥á particula≥á terminal¼á b∙á providinτá i⌠á witΦá informatioε ì
- regardinτ contro∞ character≤ requireΣ fo≥ certaiε functions« Thi≤ ì
- installatioε i≤ easil∙ performeΣ usinτ thσ prograφ ZDINSTA╠ whicΦ ì
- i≤ describeΣ iε thi≤ section.
-
- Thσ followinτ file≤ arσ par⌠ oµ thi≤ prograφ installatioε packagσ ì
- anΣá mus⌠á bσá presen⌠ durinτ termina∞á installatioεá (thσá threσ ì
- ZDINSTAL.¬á file≤á ma∙ theε bσ deleteΣ afte≥ installatioεá iµá n∩ ì
- othe≥ terminal≤ arσ t∩ bσ supported)..
-
- Z80DIS.COM
- - thσ prograφ yo⌡ wil∞ bσ installing
- Z80DIS.000
- - optiona∞ overla∙ file≤ fo≥ Z80DI╙ (ma∙ be
- Z80DIS.001
- one¼ several¼ o≥ nonσ dependinτ oε version)
-
- ZDINSTAL.CO═
- - thσ installatioε program
- ZDINSTAL.MSG
- - contain≤ tex⌠ oµ ZDINSTA╠ message≤
- ZDINSTAL.DTA
- - contain≤ termina∞ characteristic≤ data
-
-
-
-
-
-
-
- - TH┼ INSTALLATIO╬ PROCEDUR┼ -
-
- Star⌠á thσá installatioεá b∙ typinτ ZDINSTA╠á a⌠á you≥á terminal« ì
- Selec⌠ Screeε installatioε froφ thσ maiε menu.
-
- ┴á numbereΣá men⌡ listinτ ß numbe≥ oµ popula≥ terminal≤ wil∞á ap-ì
- pear¼ invitinτ yo⌡ t∩ choosσ onσ b∙ enterinτ it≤ number.
-
- Iµ you≥ termina∞ i≤ mentioned¼á jus⌠ ente≥ thσ correspondinτ num-ì
- ber¼á anΣá thσ installatioε i≤ complete«á Beforσ installatioεá i≤ ì
- actuall∙ performed¼ yo⌡ arσ askeΣ thσ question..
-
- D∩ yo⌡ wan⌠ t∩ modif∙ thσ definitioε beforσ installation┐ _
-
- Thi≤á allow≤á yo⌡ t∩ modif∙ onσ o≥ morσ oµ thσ value≤á beinτ ì
- installeΣá a≤ describeΣ iε thσ following«á Iµ yo⌡ d∩ no⌠ wan⌠á t∩ ì
- modif∙ thσ termina∞ definition¼ jus⌠ typσ N¼ anΣ thσ installatioε ì
- wil∞á completσ b∙ askinτ yo⌡ thσ operatinτ frequenc∙ oµ you≥á CP╒ ì
- t∩ establisΦ parameter≤ fo≥ timinτ loops.
- è
-
- - 19 -
-
-
-
-
-
- Z80DIS - Section 4: ADAPTATION TO YOUR TERMINAL - 28 JULY 85
-
-
-
- Iµ you≥ termina∞ i≤ notä oε thσ menu¼ however¼ yo⌡ mus⌠ definσ thσ ì
- requireΣ value≤ yourself«á Thσ value≤ caε mos⌠ probabl∙ bσá founΣ ì
- iε thσ manua∞ supplieΣ witΦ you≥ terminal.
-
- Ente≥á thσá numbe≥ correspondinτ t∩ Nonσ oµ thσ aboveä anΣá answe≥ ì
- thσ question≤ onσ b∙ onσ a≤ the∙ appea≥ oε thσ screen.
-
- Iεá thσ following¼á eacΦ commanΣ yo⌡ ma∙ instal∞ i≤ describeΣá iε ì
- detail«á You≥ termina∞ ma∙ no⌠ suppor⌠ al∞ thσ command≤ tha⌠á caε ì
- bσ installed«á Iµ so¼á jus⌠ pas≤ thσ commanΣ no⌠ needeΣ b∙ typinτ ì
- RETUR╬ iε responsσ t∩ thσ prompt« Iµ Deletσ line¼ Inser⌠ line,ô o≥ ì
- Erasσá t∩ enΣ oµ lineô i≤ no⌠ installed¼á thesσ function≤ wil∞á bσ ì
- emulateΣ iε software¼ slowinτ screeε performancσ somewhat.
-
- Command≤ ma∙ bσ entereΣ eithe≥ simpl∙ b∙ pressinτ thσ appropriatσ ì
- key≤ o≥ b∙ enterinτ thσ decima∞ o≥ hexadecima∞ ASCI╔ valuσ oµ thσ ì
- command«á Iµá ß commanΣ require≤ thσ tw∩ character≤ 'ESCAPEºá anΣ ì
- '='¼ may...
- eitherô
-
- Pres≤á firs⌠á thσ Escä key¼á theε thσ =«á Thσ entr∙á wil∞á bσ ì
- echoeΣ witΦ appropriatσ labels¼ i.e« <ESC╛ =.
-
- or
-
- Ente≥ thσ decima∞ o≥ hexadecima∞ value≤ separateΣ b∙ spaces« ì
- Hexadecima∞ value≤ mus⌠ bσ precedeΣ b∙ ß dollar-sign«á Ente≥ e.g« ì
- 2╖ 6▒ o≥ $1┬ 6▒ o≥ $1┬ $3─ whicΦ arσ al∞ equivalent«
-
- Thσá tw∩ method≤ canno⌠ bσ mixed¼á i.e«á oncσ yo⌡ havσ entereΣá ß ì
- non-numeriπá character¼á thσ res⌠ oµ tha⌠ commanΣ mus⌠ bσ defineΣ ì
- iε tha⌠ mode¼ anΣ visσ versa«
-
- ┴ hypheε entereΣ a≤ thσ ver∙ firs⌠ characte≥ i≤ useΣ t∩ deletσá ß ì
- command¼ anΣ echoe≤ thσ tex⌠ Nothing.
-
- -----------------------------------------------------------------
- Termina∞ type║ _
-
- Ente≥á thσá namσ oµ thσ termina∞ yo⌡ arσ abou⌠á t∩á install« ì
- Wheεá yo⌡ completσ ZDINSTAL¼á thσ value≤ wil∞ bσ stored¼á anΣ thσ ì
- termina∞á namσ wil∞ appea≥ oε thσ initia∞ lis⌠ oµá terminals«á Iµ ì
- yo⌡ late≥ neeΣ t∩ re-instal∞ Z80DI╙ t∩ thi≤ terminal¼á yo⌡ caε d∩ ì
- tha⌠ b∙ choosinτ i⌠ froφ thσ list«
-
- -----------------------------------------------------------------
- SenΣ aε initializatioε strinτ t∩ thσ terminal┐ _
-
- Iµá yo⌡ wan⌠ t∩ initializσ you≥ termina∞ wheε Z80DI╙á start≤ ì
- (e.g«á t∩ dowε loaΣ command≤ t∩ programmablσ functioε keys)¼á yo⌡ ì
- answe≥ Yä fo≥ ye≤ t∩ thi≤ question« Iµ not¼ jus⌠ hi⌠ RETURN.
-
- Iµ yo⌡ answe≥ Y¼ yo⌡ ma∙ choosσ betweeε enterinτ thσ commanΣ ì
- directl∙á o≥ defininτ ß filσ namσ containinτ thσ commanΣá string« ìè
-
- - 20 -
-
-
-
-
-
- Z80DIS - Section 4: ADAPTATION TO YOUR TERMINAL - 28 JULY 85
-
-
- Thσá latte≥ i≤ ß gooΣ ideß iµ thσ initializatioε strinτ i≤á long¼ ì
- a≤ e.g« ß strinτ t∩ prograφ ß numbe≥ oµ functioε key≤ woulΣ be«
-
- -----------------------------------------------------------------
- SenΣ ß rese⌠ strinτ t∩ thσ terminal┐ _
-
- Here¼á yo⌡á ma∙á definσ ß strinτ t∩ bσ sen⌠ t∩ thσá termina∞ ì
- wheεá Z80DI╙ terminates«á Thσ descriptioε oµá thσá initializatioε ì
- commanΣ abovσ applie≤ here.
-
- -----------------------------------------------------------------
- CURSO╥ LEAD-I╬ command║ _
-
- Curso≥á Lead-iεá i≤ ß specia∞ sequencσ oµá character≤á whicΦ ì
- tell≤á you≥ termina∞ tha⌠ thσ followinτ character≤ arσ aε addres≤ ì
- oε thσ screeε oε whicΦ thσ curso≥ shoulΣ bσ placed«
-
- Wheεá yo⌡ definσ thi≤ command¼á yo⌡ arσ askeΣ thσá followinτ ì
- supplementar∙ questions..
-
- -----------------------------------------------------------------
- CURSO╥ POSITIONIN╟ COMMAN─ t∩ senΣ betweeε linσ anΣ column║ _
-
- Somσ terminal≤ neeΣ ß commanΣ betweeε thσ tw∩ number≤á defi-ì
- ninτ thσ ro≈ anΣ columε curso≥ address.
-
- -----------------------------------------------------------------
- CURSO╥ POSITIONIN╟ COMMAN─ t∩ senΣ afte≥ linσ anΣ column║ _
-
- Somσ terminal≤ neeΣ ß commanΣ afte≥ thσ tw∩ number≤ defininτ ì
- thσ ro≈ anΣ columε curso≥ address.
-
- -----------------------------------------------------------------
- Columε first┐ _
-
- Mos⌠ terminal≤ requirσ thσ addres≤ oε thσ format║ firs⌠ ROW¼ ì
- theε COLUMN«á Iµ thi≤ i≤ thσ casσ oε you≥ terminal¼á answe≥ N« Iµ ì
- you≥ termina∞ want≤ COLUM╬ first¼ theε ROW¼ theε answe≥ Y.
-
- -----------------------------------------------------------------
- OFFSE╘ t∩ adΣ t∩ LINE _
-
- Ente≥ thσ numbe≥ t∩ adΣ t∩ thσ LIN┼ (ROW⌐ address.
-
- -----------------------------------------------------------------
- OFFSE╘ t∩ adΣ t∩ COLUMN _
-
- Ente≥ thσ numbe≥ t∩ adΣ t∩ thσ COLUM╬ address.
-
- -----------------------------------------------------------------
-
-
-
-
-
-
-
- - 21 -
-
-
-
-
-
- Z80DIS - Section 4: ADAPTATION TO YOUR TERMINAL - 28 JULY 85
-
-
- Binar∙ address┐ _
-
- Mos⌠á terminal≤ neeΣ thσ curso≥ addres≤ sen⌠ oε binar∙ form« ì
- Iµá tha⌠ i≤ truσ fo≥ you≥ terminal¼á ente≥ Y«á Iµá you≥á termina∞ ì
- expect≤ thσ curso≥ addres≤ a≤ ASCI╔ digits¼á ente≥ N«á Iµ so¼ yo⌡ ì
- arσ askeΣ thσ supplementar∙ question..
-
- -----------------------------------------------------------------
- ▓ o≥ │ ASCI╔ digits┐ _
-
- Ente≥ thσ numbe≥ oµ digit≤ iε thσ curso≥ addres≤ fo≥ you≥ ì
- terminal.
-
- -----------------------------------------------------------------
- CLEA╥ SCREE╬ command║ _
-
- Ente≥á thσá commanΣ tha⌠ wil∞ clea≥ thσ entirσá content≤á oµ ì
- you≥ screen¼ botΦ foregrounΣ anΣ background¼ iµ applicable.
-
- -----------------------------------------------------------------
- Doe≤ CLEA╥ SCREE╬ als∩ HOM┼ cursor┐ _
-
- Thi≤ i≤ normall∙ thσ case╗ iµ i⌠ i≤ no⌠ s∩ oε you≥ terminal¼ ì
- ente≥ N¼ anΣ definσ thσ curso≥ HOM┼ command.
-
- -----------------------------------------------------------------
- DELET┼ LIN┼ command║ _
-
- Ente≥ thσ commanΣ tha⌠ delete≤ thσ entirσ linσ a⌠ thσ curso≥ ì
- position.
-
- -----------------------------------------------------------------
- INSER╘ LIN┼ command║ _
-
- Ente≥á thσá commanΣ tha⌠ insert≤ ß linσ a⌠ thσ curso≥á posi-ì
- tion.
-
- -----------------------------------------------------------------
- ERAS┼ T╧ EN─ O╞ LIN┼ command║ _
-
- Ente≥á thσ commanΣ tha⌠ erase≤ thσ linσ a⌠ thσ curso≥á posi-ì
- tioε froφ thσ curso≥ positioε througΦ thσ righ⌠ enΣ oµ thσ line.
-
- -----------------------------------------------------------------
- STAR╘ O╞ 'LO╫ VIDEOº command║ _
-
- Iµ you≥ termina∞ support≤ differen⌠ vide∩ intensities¼á theε ì
- definσá thσ commanΣ tha⌠ initiate≤ thσ DIMä vide∩á here«á Iµá thi≤ ì
- commanΣ i≤ defined¼ thσ followinτ questioε i≤ asked . . .
-
- -----------------------------------------------------------------
-
-
-
-
-
-
- - 22 -
-
-
-
-
-
- Z80DIS - Section 4: ADAPTATION TO YOUR TERMINAL - 28 JULY 85
-
-
- STAR╘ O╞ 'NORMA╠ VIDEOº command║ _
-
- Definσá thσ commanΣ tha⌠ set≤ thσ screeε t∩ sho≈á character≤ ì
- iε 'normalº video.
-
- -----------------------------------------------------------------
- Numbe≥ oµ row≤ (lines⌐ oε you≥ screen║ _
-
- Ente≥ thσ numbe≥ oµ horizonta∞ line≤ oε you≥ screen.
-
- -----------------------------------------------------------------
- Numbe≥ oµ column≤ oε you≥ screen║ _
-
- Ente≥ thσ numbe≥ oµ columε position≤ oε you≥ screen.
-
- -----------------------------------------------------------------
- Dela∙ afte≥ CURSO╥ ADDRES╙ (0-25╡ ms)║ _
- Dela∙ afte≥ CLEAR¼ DELETE¼ anΣ INSER╘ (0-25╡ ms)║ _
- Dela∙ afte≥ ERAS┼ T╧ EN─ O╞ LIN┼ anΣ HIGHLIGH╘ On/Ofµ (0-25╡ ms)║ ì
-
-
- Ente≥ thσ dela∙ iε millisecond≤ requireΣ afte≥ thσ function≤ ì
- specified« RETUR╬ mean≤ ░ (n∩ delay).
-
- -----------------------------------------------------------------
- I≤ thi≤ definitioε correct┐ _
-
- Iµ yo⌡ havσ madσ an∙ error≤ iε thσ definitions¼ ente≥ N« Yo⌡ ì
- wil∞ theε returε t∩ thσ termina∞ selectioε menu« Thσ installatioε ì
- datßá yo⌡ havσ jus⌠ entereΣ wil∞ bσ includeΣ iε thσá installatioε ì
- datß filσ anΣ appea≥ oε thσ termina∞ selectioε menu¼á bu⌠ instal-ì
- latioε wil∞ notä bσ performed«
-
- Wheεá yo⌡á ente≥á Yä iε responsσ t∩ thi≤á question¼á yo⌡á arσ ì
- asked.«
-
- -----------------------------------------------------------------
- Operatinτ frequenc∙ oµ you≥ microprocesso≥ iε MH· (fo≥ delays)║ _
-
- A≤á thσá delay≤á specifieΣá earlie≥á arσá dependinτá oεá thσ ì
- operatinτ frequenc∙ oµ you≥ CPU¼ yo⌡ mus⌠ definσ thi≤ value«
-
- -----------------------------------------------------------------
-
-
- Thσá installatioε i≤ finished¼á installatioε datß i≤á writteεá t∩ ì
- Z80DIS¼á anΣ yo⌡ returε t∩ thσ oute≥ menu«á Ne≈ installatioε datß ì
- i≤á als∩ saveΣ iε thσ installatioε datß filσ anΣ thσ ne≈ termina∞ ì
- wil∞ appea≥ oε thσ termina∞ selectioε lis⌠ wheε yo⌡ ruεá ZDINSTA╠ ì
- iε the future.
-
-
-
-
-
-
-
- - 23 -
-
-
-
-
-
- Z80DIS - Section 5: EXAMPLE OF FIRST ATTEMPT OUTPUT - 28 JULY 85
-
-
- - SECTION 5 -
- EXAMPLE OF FIRST ATTEMPT AT DEFAULT DISASSEMBLY
-
- Thσá followinτá i≤ par⌠ oµ thσ listinτ produceΣá b∙á runninτá thσ ì
- disassemble≥á agains⌠á ß cop∙ oµ thσ publiπ domaiε prograφá D.CO═ ì
- withou⌠á ß breaδ table«á Thσ breaδ table¼á whicΦ specifie≤á whicΦ ì
- addresse≤á arσ t∩ bσ treateΣ a≤ instruction≤ anΣ whicΦ arσ t∩á bσ ì
- treateΣ a≤ variou≤ type≤ oµ data¼á i≤ defaulteΣ t∩ INS«á Thu≤ al∞ ì
- byte≤á arσ treateΣ a≤ instructions«á Thσ breaδ tablσ i≤ showεá oε ì
- thσ firs⌠ pagσ oµ thσ .PRNä file«á A≤ showε below¼á thσ tablσ con-ì
- sist≤ oµ "In≤ 0100-FFFE".
-
- Thσá CROS╙ REFERENCEä listing¼á oε thσ seconΣ page¼á i≤ thσá firs⌠ ì
- placσ t∩ look«á Al∞ referenced¼á anΣ somσ unreferenced¼ addresse≤ ì
- arσá showεá witΦ eacΦ referencinτ addres≤ anΣ typσ oµá reference« ì
- Datßáá reference≤áá arσá clearl∙áá separateΣáá froφáá instructioε ì
- references╗ thσ labelinτ code≤ anΣ thσ referencσ legenΣ tel∞ all« ì
- Oεá thi≤ particula≥ listinτ severa∞ block≤ tha⌠ arσ clearl∙á datß ì
- stanΣ out╗ other≤ ma∙ sho≈ u≡ a≤ thσ breaδ tablσ i≤ expanded.
-
- UnreferenceΣá labels¼á sucΦá a≤ thosσ a⌠ 043╡ througΦá 045C¼á arσ ì
- generateΣá onl∙á fo≥ INStructioε modσá disassembleΣá section≤á oµ ì
- code«á The∙á wil∞á bσá createΣá wheε therσ i≤á n∩á jum≡á o≥á cal∞ ì
- referencσá t∩á aεá instructioε followinτá aεá unconditiona∞á jum≡ ì
- instruction« UnreferenceΣ label≤ shoulΣ bσ vieweΣ witΦ suspicion╗ ì
- the∙ ma∙ properl∙ appea≥ iε ß correc⌠ disassembl∙ fo≥ onl∙ ß ver∙ ì
- fe≈á reasons║á 1⌐á Thσ programme≥ ha≤ includeΣ ß standarΣ se⌠á oµ ì
- subroutines¼á bu⌠ doe≤ no⌠ usσ al∞ oµ them« 2⌐ Yo⌡ havσ donσ onl∙ ì
- ßá partia∞ disassembly¼á anΣ somσ othe≥ codσ no⌠á processeΣá doe≤ ì
- referencσ thσ addresses.
-
- Datßá reference≤á ma∙ bσ considereΣ soliΣ iµ botΦ LOADä anΣá STOREä ì
- reference≤ sho≈ up«á Iε thi≤ listing¼ therσ i≤ clearl∙ ß onσ bytσ ì
- storagσá cel∞ a⌠ D.02E╢ a≤ wel∞ a≤ ß blocδ oµ botΦ worΣ anΣá bytσ ì
- storagσ cell≤ a⌠ D.047╡ througΦ D.0479« Apparentl∙ n∩ instructioε ì
- codσ exist≤ pas⌠ D.0C3D.
-
- Thσá REFERENCE─á SUBROUTINEä list¼á oε thσ page(s⌐á followinτá thσ ì
- cros≤á referencσá list¼á i≤ therσ t∩ providσ ß placσ fo≥á yo⌡á t∩ ì
- annotatσá thσ purposσ oµ eacΦ identifieΣ subroutine«á T∩ ge⌠ ont∩ ì
- thi≤á list¼á aε addres≤ mus⌠ bσ referenceΣ b∙ ß CALLäá o≥á RESTARTä ì
- instructioεá anΣá mus⌠ no⌠ bσ referenceΣ a≤ ß datß storagσá area« ì
- Thσ apparen⌠ reference≤ t∩ C.003╕ a≤ RESTARTä call≤ arσ suspiciou≤ ì
- a≤ thesσ arσ seldoφ useΣ iε CP/═ programs╗á thesσ reference≤ wil∞ ì
- turε ou⌠ t∩ bσ datß mis-interpreteΣ a≤ instructions.
-
- Thσá las⌠ placσ t∩ looδ i≤ thσ DISASSEMBLE─ CODEäá printout«á Herσ ì
- yo⌡á looδ fo≥ <╝ Illega∞ O≡ Codσ Bytσ >>«á Upoε examination¼á thσ ì
- illega∞ mi° oµ instruction≤ froφ 010│ througΦ 011╣ consist≤ oµá ß ì
- messagσá string«á Thσ ─ prograφ i≤ interestinτ fo≥ thσ usσ oµ thσ ì
- CAL╠ instructioε t∩ pusΦ in-linσ message≤ ont∩ thσ stack« Thσ mi° ì
- oµá instruction≤á froφ 013░ througΦ 013┴ i≤á anothe≥á examplσá oµ ì
- asciΘ datß interpreteΣ a≤ instructioε codes.
-
-
-
-
- - 24 -
-
-
-
-
-
- Z80DIS - Section 5: EXAMPLE OF FIRST ATTEMPT OUTPUT - 28 JULY 85
-
-
- ------------------ THE LISTING ------------------------------------------------
-
- Demonstration without break table
- the control parameter values used for this run of Z80DIS 1.5
-
- INPUT file: D.COM
- OUTPUT file: D.MAC
- LISTING file: D.PRN
-
- file LOAD address 0100 hex
- disassembly START address 0100 hex
- disassembly STOP address FFFF hex
-
- FULL DISASSEMBLY flag is set TRUE
- meaning.. Generate both XREF LIST and ASSEMBLY CODE output
-
- FULL Z80 flag is set to FALSE
- meaning.. Recognize only 8080 subset, but using Z80 mnemonics
-
- Control Breaks are set as follows:
-
- Ins 0100-FFFE
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 25 -
-
-
-
-
-
- Z80DIS - Section 5: EXAMPLE OF FIRST ATTEMPT OUTPUT - 28 JULY 85
-
-
- Demonstration without break table
- B:D.MAC - Source by Z80DIS 1.5, K.Gielow, Palo Alto, CA.
-
- Listing of all referenced addresses
-
- LABELING CODES: Where a CP/M address can be assumed, then name is used.
- otherwise, prefix J=JUMP (Jump references only), C=CALL (Call/Jump only),
- I=Immediate only, D=DATA (Load/Store/Immed.), X= any other combination
- if reference is singular, The second character will be # instead of .
-
- REFERENCE LEGEND: J=Jump, Jr=Jump relative, C=Call, Cr=Call by Restart,
- Lw=Load word, Lb=Load byte, Sw=Store word, Sb=Store byte, Iw=Immed. word
-
- I#0000 0000 ----I 0120/Iw
- BDOS 0005 -C--- 011D/C, 01D6/C, 01E8/C, 01F3/C, 02FE/C, 037C/C,
- 038A/C, 03A1/C, 03AF/C, 03CB/C, 041A/C, 042D/C
- I.000B 000B ----I 013C/Iw, 014F/Iw, 016D/Iw, 01A7/Iw, 0280/Iw, 02EB/Iw,
- 0332/Iw, 036E/Iw
- C.0038 0038 -C--- 051E/Cr, 0555/Cr
- FCB1 005C ---LI 01CB/Lb, 01F0/Iw, 0276/Lb, 0379/Iw, 0387/Iw, 03AC/Iw,
- 03C8/Iw
- FCB1.1 005D ---LI 012A/Iw, 015B/Iw, 0195/Iw, 01BD/Lb, 034E/Iw, 035C/Iw,
- 044E/Iw, 045C/Iw
- FCB2 006D ----I 014C/Iw, 032F/Iw
- DBUF 0080 ----I 03B9/Iw
- DBUF.1 0081 ----I 0205/Iw
- I#0100 0100 ----I 0399/Iw
- C#011A 011A -C--- 0100/C
- C#013B 013B -C--- 012D/C
- J#015B 015B J---- 0142/J
- C#016C 016C -C--- 015E/C
- J#0195 0195 J---- 0173/J
- C#01A6 01A6 -C--- 0198/C
- J#01BD 01BD J---- 01AD/J
- J#01CB 01CB J---- 01C5/J
- J#01D9 01D9 J---- 01CF/J
- J#01E0 01E0 J---- 0265/J
- J.01E2 01E2 J---- 023C/J, 0258/J, 02F5/J
- J#01E4 01E4 J---- 01DD/J
- J#021C 021C J---- 0240/J
- J#0229 0229 J---- 0231/J
- J#023F 023F J---- 022B/J
- J.0243 0243 J---- 0215/J, 0221/J
- J#0246 0246 J---- 024C/J
- J#0268 0268 J---- 01F7/J
- J#0283 0283 J---- 02B1/J
- J.0285 0285 J---- 02A4/J, 02B5/J
- J#0293 0293 J---- 0299/J
- J#02B4 02B4 J---- 0287/J
- C#02B8 02B8 -C--- 028E/C
- J#02C5 02C5 J---- 02CC/J
- I#02D1 02D1 ----I 02C2/Iw
- D.02E6 02E6 --SL- 02B8/Lb, 02BE/Sb
- J#02E7 02E7 J---- 020E/J
- C.02F8 02F8 -C--- 0247/C, 0254/C, 025D/C, 0262/C, 0294/C, 02A0/C,
- è
-
- - 26 -
-
-
-
-
-
- Z80DIS - Section 5: EXAMPLE OF FIRST ATTEMPT OUTPUT - 28 JULY 85
-
-
- 02A9/C, 02AE/C, 02C6/C
- C.0305 0305 JC--- 0152/C, 02EE/C, 030C/J, 0371/C
- C.0310 0310 JC--- 013F/C, 0170/C, 01AA/C, 0318/J, 0335/C, 0435/C
- C.031C 031C -C--- 0148/C, 02E7/C, 0394/C
- J#031F 031F J---- 0322/J
- C.0327 0327 -C--- 0145/C, 0176/C
- J.032A 032A J---- 033C/J, 043C/J
- J.033F 033F J---- 0338/J, 0438/J
- J.0344 0344 J---- 0349/J, 0449/J
- C.034E 034E -C--- 01BA/C, 01C8/C
- J.0355 0355 J---- 0358/J, 0458/J
- J.035C 035C J---- 0158/J, 0179/J, 0427/J
- C.036D 036D -C--- 035F/C, 045F/C
- J#039C 039C J---- 03C0/J
- J#03E1 03E1 J---- 03B6/J
- J#03F4 03F4 J---- 03D2/J
- J#0418 0418 J---- 01ED/J
- J.0420 0420 J---- 026C/J, 0273/J, 027A/J, 028B/J
- C.042A 042A -C--- 017C/C, 03D5/C, 03E1/C, 03F4/C
- J.0430 0430 J---- 041D/J, 0424/J
- ..0435 0435 -----
- ..043F 043F -----
- ..044E 044E -----
- ..045C 045C -----
- D.0475 0475 --SLI 0124/Sw, 0127/Iw, 0430/Lw
- D.0477 0477 --SL- 01B2/Sb, 020A/Lb, 0268/Lb, 0391/Sb, 0420/Lb
- D.0478 0478 --SL- 01C2/Sb, 0211/Lb, 026F/Lb
- D.0479 0479 --S-I 01B7/Sb, 0219/Iw, 027D/Iw, 031C/Iw, 0327/Iw
- J#051C 051C J---- 05C4/J
- J#054A 054A J---- 056A/J
- J#056D 056D J---- 0560/J
- J#05C4 05C4 J---- 0576/J
- ..05C7 05C7 -----
- J#0618 0618 J---- 05EA/J
- J#0621 0621 J---- 05DE/J
- D#0A0D 0A0D ---L- 02E2/Lb
- C#0A3F 0A3F -C--- 055B/C
- C#0B05 0B05 -C--- 05DB/C
- C.0B16 0B16 -C--- 0573/C, 05CD/C, 05D7/C, 05E7/C
- D.0C3D 0C3D ---L- 057E/Lw, 058E/Lw, 0598/Lw, 05A9/Lw
- D.0C47 0C47 --SLI 0570/Iw, 0579/Lw, 0593/Lw, 05B6/Lw, 05BA/Sw, 05D0/Iw,
- 05E4/Iw, 05FD/Lw
- D.0C49 0C49 --SLI 0563/Lw, 0567/Sw, 056D/Iw, 0589/Lw, 05A4/Lw, 05BD/Lw,
- 05C1/Sw, 05CA/Iw
- I#0C4B 0C4B ----I 05C7/Iw
- I.0C4D 0C4D ----I 05D3/Iw, 05E1/Iw
- D#0C4F 0C4F ---L- 0556/Lw
- D.0C51 0C51 --SL- 0586/Sw, 05AE/Lw
- D.0C53 0C53 --SL- 05ED/Lb, 05F1/Sb
- I#0C54 0C54 ----I 05F7/Iw
- I#2044 2044 ----I 04E6/Iw
- I#2B21 2B21 ----I 0413/Iw
- I#2F31 2F31 ----I 010F/Iw
- >╛ additiona∞ line≤ suppressed
-
-
-
- - 27 -
-
-
-
-
-
- Z80DIS - Section 5: EXAMPLE OF FIRST ATTEMPT OUTPUT - 28 JULY 85
-
-
- Demonstration without break table
- B:D.MAC - Source by Z80DIS 1.5, K.Gielow, Palo Alto, CA.
-
- Listing of all referenced SUBROUTINE entry points
-
-
- BDOS Subroutine ____________________________________________
- 0005 -C--- 011D/C, 01D6/C, 01E8/C, 01F3/C, 02FE/C, 037C/C,
- 038A/C, 03A1/C, 03AF/C, 03CB/C, 041A/C, 042D/C
-
- C.0038 Subroutine ____________________________________________
- 0038 -C--- 051E/Cr, 0555/Cr
-
- C#011A Subroutine ____________________________________________
- 011A -C--- 0100/C
-
- C#013B Subroutine ____________________________________________
- 013B -C--- 012D/C
-
- C#016C Subroutine ____________________________________________
- 016C -C--- 015E/C
-
- C#01A6 Subroutine ____________________________________________
- 01A6 -C--- 0198/C
-
- C#02B8 Subroutine ____________________________________________
- 02B8 -C--- 028E/C
-
- C.02F8 Subroutine ____________________________________________
- 02F8 -C--- 0247/C, 0254/C, 025D/C, 0262/C, 0294/C, 02A0/C,
- 02A9/C, 02AE/C, 02C6/C
-
- C.0305 Subroutine ____________________________________________
- 0305 JC--- 0152/C, 02EE/C, 030C/J, 0371/C
-
- C.0310 Subroutine ____________________________________________
- 0310 JC--- 013F/C, 0170/C, 01AA/C, 0318/J, 0335/C, 0435/C
-
- C.031C Subroutine ____________________________________________
- 031C -C--- 0148/C, 02E7/C, 0394/C
-
- C.0327 Subroutine ____________________________________________
- 0327 -C--- 0145/C, 0176/C
-
- C.034E Subroutine ____________________________________________
- 034E -C--- 01BA/C, 01C8/C
-
- C.036D Subroutine ____________________________________________
- 036D -C--- 035F/C, 045F/C
-
- C.042A Subroutine ____________________________________________
- 042A -C--- 017C/C, 03D5/C, 03E1/C, 03F4/C
-
- >╛áadditiona∞ line≤ suppresseΣ ì
-
-
-
- - 28 -
-
-
-
-
-
- Z80DIS - Section 5: EXAMPLE OF FIRST ATTEMPT OUTPUT - 28 JULY 85
-
-
- ; Demonstration without break table
- ; D.MAC - Source by Z80DIS 1.5, K.Gielow, Palo Alto, CA.
- ;
- 0100 ORG 0100h
- ;
- 0000 I#0000: EQU 0000h ----I
- 0005 BDOS: EQU 0005h -C---
- 000B I.000B: EQU 000Bh ----I
- 0038 C.0038: EQU 0038h -C---
- 005C FCB1: EQU 005Ch ---LI
- 005D FCB1.1: EQU 005Dh ---LI
- 006D FCB2: EQU 006Dh ----I
- 0080 DBUF: EQU 0080h ----I
- 0081 DBUF.1: EQU 0081h ----I
- ;
- 0100 CD1A01 I#0100: CALL C#011A
- ;
- 0103 44 LD B,H
- 0104 2E43 LD L,43h ; "C"
- 0106 4F LD C,A
- 0107 4D LD C,L
- 0108 20 DEFB 20h ; << Illegal Op Code Byte >>
- ; -----------------
- ;
- 0109 41 LD B,C
- 010A 53 LD D,E
- 010B 20 DEFB 20h ; << Illegal Op Code Byte >>
- ; -----------------
- ;
- 010C 4F LD C,A
- 010D 46 LD B,(HL)
- 010E 20 DEFB 20h ; << Illegal Op Code Byte >>
- ; -----------------
- ;
- 010F 31312F LD SP,I#2F31
- 0112 32332F LD (D#2F33),A
- 0115 37 SCF
- 0116 38 DEFB 38h ; << Illegal Op Code Byte >>
- ; -----------------
- ;
- 0117 0D DEC C
- 0118 0A LD A,(BC)
- 0119 24 INC H
- ;
- ; Subroutine ______________________________
- ; Inputs ___________________________
- ; Outputs ___________________________
- ;
- 011A D1 C#011A: POP DE
- 011B 0E09 LD C,09h ; 9
- 011D CD0500 CALL BDOS
- ;
- 0120 210000 LD HL,I#0000
- 0123 39 ADD HL,SP
- 0124 227504 LD (D.0475),HL
- è
-
- - 29 -
-
-
-
-
-
- Z80DIS - Section 5: EXAMPLE OF FIRST ATTEMPT OUTPUT - 28 JULY 85
-
-
- 0127 317504 LD SP,D.0475
- 012A 215D00 LD HL,FCB1.1
- 012D CD3B01 CALL C#013B
- ;
- 0130 41 LD B,C
- 0131 44 LD B,H
- 0132 44 LD B,H
- 0133 20 DEFB 20h ; << Illegal Op Code Byte >>
- 0134 20 DEFB 20h ; << Illegal Op Code Byte >>
- 0135 20 DEFB 20h ; << Illegal Op Code Byte >>
- 0136 20 DEFB 20h ; << Illegal Op Code Byte >>
- 0137 20 DEFB 20h ; << Illegal Op Code Byte >>
- 0138 20 DEFB 20h ; << Illegal Op Code Byte >>
- 0139 20 DEFB 20h ; << Illegal Op Code Byte >>
- 013A 20 DEFB 20h ; << Illegal Op Code Byte >>
- ; -----------------
- ;
- ;
- ; Subroutine ______________________________
- ; Inputs ___________________________
- ; Outputs ___________________________
- ;
- 013B D1 C#013B: POP DE
- 013C 010B00 LD BC,I.000B
- 013F CD1003 CALL C.0310
- ;
- 0142 C25B01 JP NZ,J#015B
- ;
- 0145 CD2703 CALL C.0327
- ;
- 0148 CD1C03 CALL C.031C
- ;
- 014B EB EX DE,HL
- 014C 216D00 LD HL,FCB2
- 014F 010B00 LD BC,I.000B
- 0152 CD0503 CALL C.0305
- ;
- 0155 3EFF LD A,0FFh
- 0157 12 LD (DE),A
- 0158 C35C03 JP J.035C
- ;
- ; -----------------
- 015B 215D00 J#015B: LD HL,FCB1.1
- 015E CD6C01 CALL C#016C
- ;
- 0161 44 LD B,H
- 0162 45 LD B,L
- 0163 4C LD C,H
- 0164 20 DEFB 20h ; << Illegal Op Code Byte >>
- 0165 20 DEFB 20h ; << Illegal Op Code Byte >>
- 0166 20 DEFB 20h ; << Illegal Op Code Byte >>
- 0167 20 DEFB 20h ; << Illegal Op Code Byte >>
-
- >> additional lines suppressed
-
-
-
- - 30 -
-
-
-
-
-
- Z80DIS - Section 6: EXAMPLE OF XXX.PRN FILE OUTPUT - 28 JULY 85
-
-
- - SECTION 6 -
- EXAMPLE OF XXX.PRN FILE OUTPUT
-
- Thσá followinτá i≤ par⌠ oµ thσ listinτ produceΣá b∙á runninτá thσ ì
- disassemble≥á agains⌠á ß cop∙ oµ thσ publiπ domaiε prograφá D.CO═ ì
- usinτ ß correcteΣ breaδ table« Herσ wσ havσ analyzeΣ thσ previou≤ ì
- listinτá anΣá brokeε thσ codσ region≤ dowε int∩ INStructioεá bytσ ì
- region≤á anΣá WoRD¼áá BYTe¼á anΣá ASCiΘá regions«
-
- Thσá resultinτá disassembl∙á look≤á mucΦ bette≥á thaεá thσá firs⌠ ì
- attemp⌠ abovσ iε SECTIO╬ 5«á Pleasσ refe≥ bacδ t∩ thosσá comment≤ ì
- anΣá listing≤á t∩á seσ thσ difference≤ tha⌠ thσá correcteΣá breaδ ì
- tablσá ha≤ made«á Thσ unreferenceΣ addresse≤ arσ cleaneΣ up╗á thσ ì
- reference≤ t∩ C.003╕ arσ resolved; the illegal op codes are gone.
-
- Thσá illega∞á mi° oµ instruction≤ froφ 010│ througΦ 011╣á no≈á i≤ ì
- resolveΣá a≤ ß messagσ string«á Thσ ─ prograφ i≤ interestinτá fo≥ ì
- thσ usσ oµ thσ CAL╠ instructioε t∩ pusΦ in-linσ message≤ ont∩ thσ ì
- stack«á Thσá CAL╠á instructioεá a⌠ 010░ followeΣ b∙á thσá PO╨á D┼ ì
- instructioεá a⌠á 013┬á i≤á simpl∙á equivalen⌠á t∩á L─á DE,MESSAG┼ ì
- followeΣ b∙ ß J╨ t∩ 013C«
-
- Notσ tha⌠ thi≤ listinτ i≤ un-edited╗á al∞ comments¼ etc« arσ jus⌠ ì
- as produced by the Z80DIS program.
-
-
-
-
- ----------------- THE LISTING ----------------------------------------------
-
- Demonstration of disassembly of D.COM
- the control parameter values used for this run of Z80DIS 1.5
-
- INPUT file: D.COM
- OUTPUT file: D.MAC
- LISTING file: D.PRN
-
- file LOAD address 0100 hex
- disassembly START address 0100 hex
- disassembly STOP address FFFF hex
-
- FULL DISASSEMBLY flag is set TRUE
- meaning.. Generate both XREF LIST and ASSEMBLY CODE output
-
- FULL Z80 flag is set to FALSE
- meaning.« Recognizσ onl∙ 808░ subset¼ bu⌠ usσ Z8░ mnemonics
-
- Control Breaks are set as follows:
-
- Ins 0100-0102 Asc 0103-0119 Ins 011A-012F Asc 0130-013A Ins 013B-0160
- Asc 0161-016B Ins 016C-017E Asc 017F-0194 Ins 0195-019A Asc 019B-01A5
- Ins 01A6-02D0 Asc 02D1-02E6 Ins 02E7-0361 Asc 0362-036C Ins 036D-03D7
- Asc 03D8-03E0 Ins 03E1-03E3 Asc 03E4-03F3 Ins 03F4-03F6 Asc 03F7-0417
- Ins 0418-0461 Asc 0462-0474 Wrd 0475-0476 Byt 0477-0478 Asc 0479-FFFE
-
- è
-
- - 31 -
-
-
-
-
-
- Z80DIS - Section 6: EXAMPLE OF XXX.PRN FILE OUTPUT - 28 JULY 85
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 32 -
-
-
-
-
-
- Z80DIS - Section 6: EXAMPLE OF XXX.PRN FILE OUTPUT - 28 JULY 85
-
-
- Demonstration of disassembly of D.COM
- B:D.MAC - Source by Z80DIS 1.5, K.Gielow, Palo Alto, CA.
-
- Listing of all referenced addresses
-
- LABELING CODES: Where a CP/M address can be assumed, then name is used.
- otherwise, prefix J=JUMP (Jump references only), C=CALL (Call/Jump only),
- I=Immediate only, D=DATA (Load/Store/Immed.), X= any other combination
- if reference is singular, The second character will be # instead of .
-
- REFERENCE LEGEND: J=Jump, Jr=Jump relative, C=Call, Cr=Call by Restart,
- Lw=Load word, Lb=Load byte, Sw=Store word, Sb=Store byte, Iw=Immed. word
-
- I#0000 0000 ----I 0120/Iw
- BDOS 0005 -C--- 011D/C, 01D6/C, 01E8/C, 01F3/C, 02FE/C, 037C/C,
- 038A/C, 03A1/C, 03AF/C, 03CB/C, 041A/C, 042D/C
- I.000B 000B ----I 013C/Iw, 014F/Iw, 016D/Iw, 01A7/Iw, 0280/Iw, 02EB/Iw,
- 0332/Iw, 036E/Iw
- FCB1 005C ---LI 01CB/Lb, 01F0/Iw, 0276/Lb, 0379/Iw, 0387/Iw, 03AC/Iw,
- 03C8/Iw
- FCB1.1 005D ---LI 012A/Iw, 015B/Iw, 0195/Iw, 01BD/Lb, 034E/Iw, 035C/Iw,
- 044E/Iw, 045C/Iw
- FCB2 006D ----I 014C/Iw, 032F/Iw
- DBUF 0080 ----I 03B9/Iw
- DBUF.1 0081 ----I 0205/Iw
- I#0100 0100 ----I 0399/Iw
- C#011A 011A -C--- 0100/C
- C#013B 013B -C--- 012D/C
- J#015B 015B J---- 0142/J
- C#016C 016C -C--- 015E/C
- J#0195 0195 J---- 0173/J
- C#01A6 01A6 -C--- 0198/C
- J#01BD 01BD J---- 01AD/J
- J#01CB 01CB J---- 01C5/J
- J#01D9 01D9 J---- 01CF/J
- J#01E0 01E0 J---- 0265/J
- J.01E2 01E2 J---- 023C/J, 0258/J, 02F5/J
- J#01E4 01E4 J---- 01DD/J
- J#021C 021C J---- 0240/J
- J#0229 0229 J---- 0231/J
- J#023F 023F J---- 022B/J
- J.0243 0243 J---- 0215/J, 0221/J
- J#0246 0246 J---- 024C/J
- J#0268 0268 J---- 01F7/J
- J#0283 0283 J---- 02B1/J
- J.0285 0285 J---- 02A4/J, 02B5/J
- J#0293 0293 J---- 0299/J
- J#02B4 02B4 J---- 0287/J
- C#02B8 02B8 -C--- 028E/C
- J#02C5 02C5 J---- 02CC/J
- I#02D1 02D1 ----I 02C2/Iw
- D.02E6 02E6 --SL- 02B8/Lb, 02BE/Sb
- J#02E7 02E7 J---- 020E/J
- >> additional lines suppressed
-
-
-
- - 33 -
-
-
-
-
-
- Z80DIS - Section 6: EXAMPLE OF XXX.PRN FILE OUTPUT - 28 JULY 85
-
-
- Demonstration of disassembly of D.COM
- B:D.MAC - Source by Z80DIS 1.5, K.Gielow, Palo Alto, CA.
-
- Listing of all referenced SUBROUTINE entry points
-
-
- BDOS Subroutine ____________________________________________
- 0005 -C--- 011D/C, 01D6/C, 01E8/C, 01F3/C, 02FE/C, 037C/C,
- 038A/C, 03A1/C, 03AF/C, 03CB/C, 041A/C, 042D/C
-
- C#011A Subroutine ____________________________________________
- 011A -C--- 0100/C
-
- C#013B Subroutine ____________________________________________
- 013B -C--- 012D/C
-
- C#016C Subroutine ____________________________________________
- 016C -C--- 015E/C
-
- C#01A6 Subroutine ____________________________________________
- 01A6 -C--- 0198/C
-
- C#02B8 Subroutine ____________________________________________
- 02B8 -C--- 028E/C
-
- C.02F8 Subroutine ____________________________________________
- 02F8 -C--- 0247/C, 0254/C, 025D/C, 0262/C, 0294/C, 02A0/C,
- 02A9/C, 02AE/C, 02C6/C
-
- C.0305 Subroutine ____________________________________________
- 0305 JC--- 0152/C, 02EE/C, 030C/J, 0371/C
-
- C.0310 Subroutine ____________________________________________
- 0310 JC--- 013F/C, 0170/C, 01AA/C, 0318/J, 0335/C, 0435/C
-
- C.031C Subroutine ____________________________________________
- 031C -C--- 0148/C, 02E7/C, 0394/C
-
- C.0327 Subroutine ____________________________________________
- 0327 -C--- 0145/C, 0176/C
-
- C.034E Subroutine ____________________________________________
- 034E -C--- 01BA/C, 01C8/C
-
- C.036D Subroutine ____________________________________________
- 036D -C--- 035F/C, 045F/C
-
- C.042A Subroutine ____________________________________________
- 042A -C--- 017C/C, 03D5/C, 03E1/C, 03F4/C
-
- >╛ additiona∞ line≤ suppressed
-
-
-
-
-
-
- - 34 -
-
-
-
-
-
- Z80DIS - Section 6: EXAMPLE OF XXX.PRN FILE OUTPUT - 28 JULY 85
-
-
- ; Demonstration of disassembly of D.COM
- ; D.MAC - Source by Z80DIS 1.5, K.Gielow, Palo Alto, CA.
- ;
- 0100 ORG 0100h
- ;
- 0000 I#0000: EQU 0000h ----I
- 0005 BDOS: EQU 0005h -C---
- 000B I.000B: EQU 000Bh ----I
- 005C FCB1: EQU 005Ch ---LI
- 005D FCB1.1: EQU 005Dh ---LI
- 006D FCB2: EQU 006Dh ----I
- 0080 DBUF: EQU 0080h ----I
- 0081 DBUF.1: EQU 0081h ----I
- ;
- 0100 CD1A01 I#0100: CALL C#011A
- ;
- 0103 442E434F DEFM 'D.COM AS OF 11/23/78',0Dh
- 0118 0A DEFB 0Ah
- 0119 24 DEFM '$'
- ; -----------------
- ;
- ;
- ; Subroutine ______________________________
- ; Inputs ___________________________
- ; Outputs ___________________________
- ;
- 011A D1 C#011A: POP DE
- 011B 0E09 LD C,09h ; 9
- 011D CD0500 CALL BDOS
- ;
- 0120 210000 LD HL,I#0000
- 0123 39 ADD HL,SP
- 0124 227504 LD (D.0475),HL
- 0127 317504 LD SP,D.0475
- 012A 215D00 LD HL,FCB1.1
- 012D CD3B01 CALL C#013B
- ;
- 0130 41444420 DEFM 'ADD '
- ; -----------------
- ;
- ;
- ; Subroutine ______________________________
- ; Inputs ___________________________
- ; Outputs ___________________________
- ;
- 013B D1 C#013B: POP DE
- 013C 010B00 LD BC,I.000B
- 013F CD1003 CALL C.0310
- ;
- 0142 C25B01 JP NZ,J#015B
- ;
- 0145 CD2703 CALL C.0327
- ;
- 0148 CD1C03 CALL C.031C
- ;
- è
-
- - 35 -
-
-
-
-
-
- Z80DIS - Section 6: EXAMPLE OF XXX.PRN FILE OUTPUT - 28 JULY 85
-
-
- 014B EB EX DE,HL
- 014C 216D00 LD HL,FCB2
- 014F 010B00 LD BC,I.000B
- 0152 CD0503 CALL C.0305
- ;
- 0155 3EFF LD A,0FFh
- 0157 12 LD (DE),A
- 0158 C35C03 JP J.035C
- ;
- ; -----------------
- 015B 215D00 J#015B: LD HL,FCB1.1
- 015E CD6C01 CALL C#016C
- ;
- 0161 44454C20 DEFM 'DEL '
- ; -----------------
- ;
- ;
- ; Subroutine ______________________________
- ; Inputs ___________________________
- ; Outputs ___________________________
- ;
- 016C D1 C#016C: POP DE
- 016D 010B00 LD BC,I.000B
- 0170 CD1003 CALL C.0310
- ;
- 0173 C29501 JP NZ,J#0195
- ;
- 0176 CD2703 CALL C.0327
- ;
- 0179 D25C03 JP NC,J.035C
- ;
- 017C CD2A04 CALL C.042A
- ;
- 017F 2B2B4E41 DEFM '++NAME NOT IN TABLE++$'
- ; -----------------
- ;
- 0195 215D00 J#0195: LD HL,FCB1.1
- 0198 CDA601 CALL C#01A6
- ;
- 019B 53455420 DEFM 'SET '
- ; -----------------
- ;
- ;
- ; Subroutine ______________________________
- ; Inputs ___________________________
- ; Outputs ___________________________
- ;
- 01A6 D1 C#01A6: POP DE
- 01A7 010B00 LD BC,I.000B
- 01AA CD1003 CALL C.0310
- ;
-
- >> additional lines suppressed
-
-
-
-
- - 36 -
-
-
-
-
-
- Z80DIS - Section 7: EXAMPLE OF XXX.MAC FILE OUTPUT - 28 JULY 85
-
-
- - SECTION 7 -
- EXAMPLE OF XXX.MAC FILE OUTPUT
-
- Thσá assembl∙á codσá filσ i≤ iε ß forma⌠ suitablσá fo≥á mos⌠ ì
- assemblers« Variou≤ mino≥ change≤ migh⌠ havσ t∩ bσ madσ beforσ i⌠ ì
- wil∞ ruε througΦ some¼á howeve≥ (e.g«á thσ colon≤ ":ó ma∙ havσ t∩ ì
- be removed from labels.)
-
- Fields¼á sucΦ a≤ labe∞ anΣ op-code¼á arσ separateΣ b∙á <tab>≤ ì
- rathe≥ thaε space≤ fo≥ filσ compaction.
-
-
-
- --------------- A LIST OF THE FILE CONTENTS ---------------------
- ; Demonstration of disassembly of D.COM
- ; D.MAC - Source by Z80DIS 1.5, K.Gielow, Palo Alto, CA.
- ;
- ORG 0100h
- ;
- I#0000: EQU 0000h ----I
- BDOS: EQU 0005h -C---
- I.000B: EQU 000Bh ----I
- FCB1: EQU 005Ch ---LI
- FCB1.1: EQU 005Dh ---LI
- FCB2: EQU 006Dh ----I
- DBUF: EQU 0080h ----I
- DBUF.1: EQU 0081h ----I
- ;
- I#0100: CALL C#011A
- ;
- DEFM 'D.COM AS OF 11/23/78',0Dh
- DEFB 0Ah
- DEFM '$'
- ; -----------------
- ;
- ;
- ; Subroutine ______________________________
- ; Inputs ___________________________
- ; Outputs ___________________________
- ;
- C#011A: POP DE
- LD C,09h ; 9
- CALL BDOS
- ;
- LD HL,I#0000
- ADD HL,SP
- LD (D.0475),HL
- LD SP,D.0475
- LD HL,FCB1.1
- CALL C#013B
- ;
- DEFM 'ADD '
- ; -----------------
- ;
- ;
- è
-
- - 37 -
-
-
-
-
-
- Z80DIS - Section 7: EXAMPLE OF XXX.MAC FILE OUTPUT - 28 JULY 85
-
-
- ; Subroutine ______________________________
- ; Inputs ___________________________
- ; Outputs ___________________________
- ;
- C#013B: POP DE
- LD BC,I.000B
- CALL C.0310
- ;
- JP NZ,J#015B
- ;
- CALL C.0327
- ;
- CALL C.031C
- ;
- EX DE,HL
- LD HL,FCB2
- LD BC,I.000B
- CALL C.0305
- ;
- LD A,0FFh
- LD (DE),A
- JP J.035C
- ;
- ; -----------------
- J#015B: LD HL,FCB1.1
- CALL C#016C
- ;
- DEFM 'DEL '
- ; -----------------
- ;
- ;
- ; Subroutine ______________________________
- ; Inputs ___________________________
- ; Outputs ___________________________
- ;
- C#016C: POP DE
- LD BC,I.000B
- CALL C.0310
- ;
- JP NZ,J#0195
- ;
- CALL C.0327
- ;
- JP NC,J.035C
- ;
- CALL C.042A
- ;
- DEFM '++NAME NOT IN TABLE++$'
- ; -----------------
- ;
- J#0195: LD HL,FCB1.1
- CALL C#01A6
- ;
- >> additional lines suppressed
-
-
-
- - 38 -
-
-
-
-
-
- Z80DIS - Section 8: CONTENTS OF **.BRK FILE - 28 JULY 85
-
-
- - SECTION 8 -
- CONTENTS AND FORMAT OF *.BRK FILE
-
- Thσá breaδá filσá i≤ ß transcription¼á t∩ ßá CP/═á file¼á oµá thσ ì
- content≤á oµá ßá breaδ table«á Whilσ thσ breaδá tablσá i≤á storeΣ ì
- internall∙ a≤ ß linkeΣ lis⌠ iε PASCA╠ hea≡ space¼á thσ breaδ filσ ì
- i≤ storeΣ a≤ ß simplσ CP/═ asciΘ file.
-
- EacΦ breaδ addres≤ i≤ ß separatσ record«á Record≤ arσá terminateΣ ì
- b∙á thσ usua∞ <CR╛ <LF╛ pair«á Onl∙ thσ firs⌠ fivσ character≤á oµ ì
- eacΦ recorΣ arσ actuall∙ processed╗ an∙ additiona∞ characters¼ iµ ì
- present, would be ignored.
-
- Thσá usua∞á sourcσ oµ ß breaδ filσ i≤ thσ F╙ commanΣ froφá withiε ì
- thσá Z80DI╙á program¼á bu⌠ iε fac⌠ thσ filσ coulΣá bσá separatel∙ ì
- generated or edited and still be read by the Z80DIS FL command.
-
- EacΦ recorΣ consist≤ oµ tw∩ field≤ oµ characters║ Thσ firs⌠ fielΣ ì
- i≤ onσ uppe≥ o≥ lowe≥ casσ characte≥ froφ thσ se⌠ A¼ B¼ I¼ S¼ ╘ ì
- o≥ W«á Thσ seconΣ fielΣ i≤ fou≥ character≤ froφ thσ se⌠ 0¼ 1¼ 2¼ ì
- 3¼ 4¼ 5¼ 6¼ 7¼ 8¼ 9¼ A¼ B¼ C¼ D¼ ┼ o≥ F.
-
- The first field specifies the break type ( See SECTION 3. )
-
- Thσ seconΣ fielΣ specifie≤ thσ hexadecima∞ addres≤ oµ tha⌠ break« ì
- Thσá spaεá oµ influencσ oµ eacΦ breaδ typσ i≤ froφ thσá specifieΣ ì
- addres≤á througΦ thσ addres≤ onσ bytσ les≤ tha⌠ thσ nex⌠á highes⌠ ì
- breaδá address╗á tha⌠ i≤ no⌠ necessaril∙ thσ nex⌠á breaδá addres≤ ì
- reaΣ froφ thσ file«
-
- Record≤á produceΣá b∙ thσ Z80DIS¼á F╙ commanΣ wil∞ alway≤á bσá iε ì
- ascendinτá addres≤ order¼á bu⌠ record≤ reaΣ b∙ thσ F╠ commanΣ ma∙ ì
- bσ iε an∙ order«
-
- ----- LISTING OF THE BREAK FILE FOR D.COM AS SHOWN HERE ---------
- I0100
- A0103
- I011A
- A0130
- I013B
- A0161
- I016C
- A017F
- I0195
- A019B
- I01A6
- A02D1
- I02E7
- A0362
- I036D
- A03D8
- I03E1
- A03E4
- >> additional lines suppressed
-
-
-
- - 39 -
-
-
-
-
-
- Z80DIS - Section 9: POSSIBLE EXTENSIONS - 28 JULY 85
-
-
- - SECTION 9-
- POSSIBLE EXTENSIONS TO Z80DIS
-
- Severa∞á extension≤á t∩ thσ existinτ prograφ appea≥ t∩ bσá eithe≥ ì
- desirablσ o≥ interesting«á Thσ inclusioε oµ item≤ oε thi≤ lis⌠ i≤ ì
- no⌠ t∩ bσ construeΣ a≤ indicatinτ tha⌠ the∙ wil∞ eve≥ bσ encorpo-ì
- rated¼ bu⌠ merel∙ a≤ aε indicatioε oµ interest.
-
- Thi≤á lis⌠ wil∞ grow¼á anΣ ╔ invitσ ß dialoguσ oε thσ subjec⌠á oµ ì
- thσ possibilitie≤ oµ expandinτ thσ utilit∙ oµ thσ program.
-
- Noticσá tha⌠ ß disassemble≥ tha⌠ caε sho≈ yo⌡ thσ flo≈ oµ ßá pro-ì
- graφá caε bσ ver∙ helpfu∞ iε understandinτ you≥ owε assembl∙ codσ ì
- a≤ wel∞ a≤ iε understandinτ thσ codσ oµ othe≥ programmers.
-
- --
-
- 1) Aε extensioε tha⌠ ╔ havσ beeε experimentinτ witΦ i≤ thσá auto-ì
- ááámatiπá creation¼á o≥ augmentation¼á oµ thσ breaδ tablσ b∙á thσ ì
- áááprogram«á Thi≤á woulΣá optionall∙ replacσ thσ codσá generatinτ ì
- ááápas≤ tw∩ witΦ ß breaδ tablσ generatinτ pas≤ two«á Thσ start-u≡ ì
- áááoption≤ woulΣ become║á Ful∞ disassembly¼ Cros≤ referencσ only¼ ì
- áááBreaδ tablσ creation.
-
- áááThσá use≥ woulΣ eithe≥ ente≥ hi≤ owε bes⌠ gues≤ a⌠á thσá breaδ ì
- ááátablσ o≥ woulΣ g∩ witΦ thσ default«á Theε thσ Automatiπ gener-ì
- áááatioε woulΣ bσ invokeΣ anΣ pas≤ onσ woulΣ ruε t∩ determinσ thσ ì
- ááácros≤ references«á Thσ breaδ determinatioε pas≤ woulΣ theε ruε ì
- ááát∩á examinσá thσá interdependenc∙ anΣ referencσ type≤á oµá thσ ì
- ááátablσ jus⌠ a≤ yo⌡ would« Area≤ whicΦ arσ clearl∙ datß woulΣ bσ ì
- áááisolateΣá anΣá thσá typσ oµ datß woulΣ bσá determineΣá b∙á thσ ì
- áááreferencσá (byte¼á worΣ o≥ immediate⌐ anΣ examinatioεá oµá thσ ì
- ááácontent≤ t∩ recognizσ ascii« Thi≤ additiona∞ breaδ informatioε ì
- áááwoulΣá bσá addeΣ t∩ tha⌠ supplieΣ b∙ thσ use≥ anΣá thσá resul⌠ ì
- áááwoulΣ bσ outpu⌠ t∩ ß breaδ file.
-
- áááThi≤ woulΣ no⌠ worδ fo≥ somσ partia∞ disassemblie≤ o≥ fo≥ codσ ì
- ááátha⌠ i≤ relocateΣ beforσ execution« Spuriou≤ reference≤ causeΣ ì
- áááb∙ misinterpretinτ datß a≤ instruction≤ caε als∩ influencσ thσ ì
- ááárecognitioε oµ thσ truσ naturσ oµ othe≥ part≤ oµ thσ code.
-
- áááStill¼ thσ resultinτ tablσ woulΣ bσ oµ grea⌠ assistancσ t∩ thσ ì
- áááuse≥ a≤ ß basi≤ fo≥ thσ nex⌠ disassembl∙ trial«á Thσ automatiπ ì
- ááápas≤ coulΣ bσ repeateΣ witΦ thσ ne≈ table╗ thσ changinτ oµ thσ ì
- ááádisassembl∙ modσ oµ aε areß oµ memor∙ froφ instructioε t∩ datß ì
- áááwil∞ influencσ o≥ eliminatσ spuriou≤ referencσ generation.
-
- 2) I⌠á coulΣá bσá usefu∞ t∩ allo≈ thσ use≥ t∩ specif∙á onσá oµá ß ì
- ááánumbe≥á oµá popula≥ assemble≥ inpu⌠ formats«á Thi≤á woulΣá in-ì
- áááfluencσá thσá generatioε oµ colon≤ followinτá labels¼á usσá oµ ì
- ááá<TAB>≤ t∩ separatσ fields¼ he° notation¼ anΣ others.
-
- áááA⌠á thσ presen⌠ timσ thi≤ doe≤ no⌠ appea≥ ver∙ usefu∞á a≤á thσ ì
- ááácodσá produceΣá caε bσ editeΣ witΦ globa∞ change≤á t∩á correc⌠ ì
- ááátabs¼á labels¼á etc«á Iεá myô usσ oµ ß disassembler¼á ╔ d∩á no⌠ ìè
-
- - 40 -
-
-
-
-
-
- Z80DIS - Section 9: POSSIBLE EXTENSIONS - 28 JULY 85
-
-
- áááusuall∙á intenΣá t∩ full∙ reassemblσ ßá largσá program«á ╔á aφ ì
- ááálookinτá fo≥á place≤á t∩ patcΦ o≥ modif∙ codσ o≥ t∩á changσá ß ì
- ááácommanΣá sequence«á Thi≤ i≤ wh∙ s∩ mucΦ emphasi≤ i≤ placeΣá oε ì
- áááshowinτá thσá blockinτ anΣ flo≈ oµ thσ codσá vißá thσá spacinτ ì
- ááácomment≤ anΣ labelinτ conventioε oε thσ **.PR╬ file«á Wheε yo⌡ ì
- áááarσá patchinτá codσ i⌠ i≤ imperativσ tha⌠ yo⌡á understanΣá thσ ì
- áááflo≈á oµá thσ codσ anΣ thσ usagσ oµ eacΦá variable«á Fo≥á tha⌠ ì
- ááápurpose¼á thσá actua∞á acceptabilit∙ oµ thσ **.MA├ filσ b∙á aε ì
- áááexistinτ assemble≥ i≤ moot.
-
- 3) ┴á ver∙ higΦ leve∞ overvie≈ oµ thσ flo≈ oµ ß prograφ i≤á ofteε ì
- áááuseful«á Thσá cros≤á referencσ informatioε coulΣá bσá useΣá t∩ ì
- ááásinglσá out¼á a≤ majo≥ components¼á subroutine≤ witΦá multiplσ ì
- ááácallers¼ anΣ largσ block≤ oµ codinτ witΦ onl∙ self-referencinτ ì
- ááájumps«á Thesσá woulΣá bσá printeΣá a≤ ßá crudσá flowchar⌠á fo≥ ì
- áááanalysis.
-
-
- --
-
-
- ╔á intenΣ thi≤ lis⌠ a≤ ß catalys⌠ fo≥ dialogue«á You≥ input≤á arσ ì
- welcome«á Yo⌡ ma∙ offe≥ item≤ t∩ include¼á method≤ oµ attack¼á o≥ ì
- jus⌠ comment≤ oε thσ thoughts.
-
- Thσá list¼á thσ Z80DI╙ program¼á anΣ thi≤ manua∞ wil∞ bσá updateΣ ì
- froφá irregularl∙ a≤ timσ i≤ availablσ fo≥ thσá project«á Perhap≤ ì
- somσá oµá thσá extension≤ woulΣ bσ bette≥ handleΣá b∙á additiona∞ ì
- program≤ witΦ somσ commoε filσ structurσ fo≥ datß sharinτá withiε ì
- ß famil∙ oµ programs.
-
- You ma∙á writσ mσ b∙ U.S«á posta∞ mai∞ o≥ b∙ electroniπá mai∞á a≤ ì
- indicateΣ iε SECTIO╬ ▒ a⌠ thσ beginninτ oµ thi≤ use≥ manual«
-
-
- Kenneth Gielow
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 41 -
-
-
-
-
-