ࡱ> ceb5@ )bjbj22 "RXX!nnnnnnn''''T>(L:2((((((((4:6:6:6:6:6:6:;R>t6:nd*((d*d*6:nn((K:333d*n(n(4:3d*4:3.33:,9,nn9(( bUK~'2-X9 4:a:0:b9R>2>9nnnn>n9(Z)@3F)4z)(((6:6:d3REZ.COM Quick Reference R Read file. Entered as Rxxx.COM, Rxxx.SYM or Rxxx.CTL. This must be done after starting REZ.com itself. Dont make command-line specifications. Start up REZ First and then tailor your session. S Save file. Entered as Sxxx.ASM, Rxxx.SYM or Rxxx.CTL. The response to entering the Save command for the CTL or SYM file will occur immediately, but the saving of the ASM file is actually a generating process. When you enter Sxxx.ASM, you will open up the ASM file, but you must then execute the List command, in the form of Ls,e to actually put the generated assembler code to the file. When the List command completes, enter Z at the command prompt to close the ASM file. X (Y/N)Purge SYM & CTL tables ? This command is useful in CTL data building sessions where its important to get rid of bunch of symbols, but you want to keep the Ctl formatting. Save CTL, Purge all, Read CTL and then re-Build SYM T Toggle TRIM On/Off (On = Labels appear on instruction, as opposed to being on their own line. O Set Offset to where code will actually be loaded, and subsequently how much space youve allocated to the CTL table. Better a bit too much offset than to overwrite the front end of your code. The default offset is 4000H, which is good, but for most code disassemblies, I find o6000h to be a better bet. ? Dump stats B Build code (Also entered as Bs,e where s = starting addr and e = End addr, in hex digit (0,1,2,3,A,B,C,D,E,F). L List code (Also entered as Ls,e where s = starting addr and e = end addr, in hex digit (0,1,2,3,A,B,C,D,E,F). Also used after entering the Save command for the .ASM file to cause rez to build data to the file. A Assemble code. Similar to the List command. (Also entered as As,e where s = starting addr and e = end addr, in hex digit (0,1,2,3,A,B,C,D,E,F). D Dump storage to console (Also entered as ds,e where s = starting addr and e = end addr, in hex digit (0,1,2,3,A,B,C,D,E,F). C CTL table list or entry. Using just the C char on the command line will cause the CTL table stats to be displayed. You can toggle the definition of an area my entering your own CTL entry by entering Ca,f where a=addr in code and f=function. Functions supported are I Start instruction string B start of DB, single byte format W start of word format data. S Begining at addr, make data DS (existing data ignored) E make end at addr K kill CTL entry for addr SAMPLE SESSION A0>rez (========================Use this to start REZ RESOURCE by Ward Christensen Z-80 Zilog Version 4.1 Restart 103h!! 19.03.85 Memory open to ECFF <*>o6000 (======================== dont use default of 4000, set to 6000 <*>? (========================== ask for status display SYMTBL=2800 2800 PC =0100 OFFSET=6000 MEMTOP=ECFF CTLTBL=2100 2100 <*>rrez.com (====================== now load code, 7F80 1F80 (======================= code actually at 6000-7F80, <*>D0100 (======================= show me dump, start at 0100H 0100: C3 06 01 C3 B6 01 AF 32 FB 1F 32 FD 1F CD 6F 01 .......2..2...o. 0110: 52 45 53 4F 55 52 43 45 20 62 79 20 57 61 72 64 RESOURCE by Ward 0120: 20 43 68 72 69 73 74 65 6E 73 65 6E 0D 0A 5A 2D Christensen..Z- 0130: 38 30 20 2D 20 5A 69 6C 6F 67 20 56 65 72 73 69 80 - Zilog Versi 0140: 6F 6E 20 34 2E 31 20 0D 0A 52 65 73 74 61 72 74 on 4.1 ..Restart 0150: 20 31 30 33 68 21 21 20 0D 0A 31 39 2E 30 33 2E 103h!! ..19.03. 0160: 38 35 24 FD E5 DD E5 CD 05 00 DD E1 FD E1 C9 D1 85$............. 0170: 0E 09 CD 63 01 21 00 00 39 22 FE 20 31 FE 20 CD ...c.!..9". 1. . 0180: A3 1E 0D 0A 4D 65 6D 6F 72 79 20 6F 70 65 6E 20 ....Memory open 0190: 74 6F 20 00 2A 06 00 2E 00 2B 22 75 1F CD C4 1C to .*....+"u.... 01A0: CD 04 1E CD 04 1E 21 00 00 22 79 1F CD B7 1E AF ......!.."y..... 01B0: 32 66 1F 32 68 1F 31 FE 20 CD 5F 1E 11 7D 1F 1A 2f.2h.1. ._..}.. 01C0: FE 0D 20 0F 3A 38 1F CD F2 01 20 E3 F5 3E 0D 32 .. .:8.... ..>.2 01D0: 7E 1F F1 21 FE 01 01 13 00 ED B1 20 5A F5 CD F2 ~..!....... Z... 01E0: 01 28 02 3E 2A 32 38 1F F1 09 09 09 4E 23 46 EB .(.>*28.....N#F. 01F0: C5 C9 FE 4C C8 FE 44 C8 FE 42 C8 FE 41 C9 3B 41 ...L..D..B..A.;A L100,112 (==========list code, instr format starting at 0100h 0100 JP 0106H 0103 JP 01B6H 0106 XOR A 0107 LD (1FFBH),A 010A LD (1FFDH),A 010D CALL 016FH 0110 LD D,D (====from dump, start of constant-in-storage 0111 LD B,L C100,I (=============== we do this to be unambiguous <*>c110,b (=============== flip over to DB generation <*>L100 (=============== now lets see what we got 0100 JP 0106H 0103 JP 01B6H 0106 XOR A 0107 LD (1FFBH),A 010A LD (1FFDH),A 010D CALL 016FH (===== looks like addr where code resumes 0110 DB RESOURCE by Ward Christensen 012C db 0DH,0DH 012E DB Z-80 Zilog Version 4.1 0147 db ODH,OAH 0149 DB Restart 103h!! 0158 db ODH,OAH 015A DB 19.03.85$ 0163 db 0FDH,0E5H,0DDH,0E5H,0CDH,0DDH 016B db 0E1H,0FDH,0E1H,0C9H 016F db 0D1H,0EH,9,0CDH <*>C016F,I (=====set a flip back to instruction-stream mode <*>L100 (=======lets look again and see what we got 0100 JP 0106H 0103 JP 01B6H 0106 XOR A 0107 LD (1FFBH),A 010A LD (1FFDH),A 010D CALL 016FH 0110 DB RESOURCE by Ward Christensen 012C db 0DH,0DH 012E DB Z-80 Zilog Version 4.1 0147 db ODH,OAH 0149 DB Restart 103h!! 0158 db ODH,OAH 015A DB 19.03.85$ 0163 db 0FDH,0E5H,0DDH,0E5H,0CDH,0DDH 016B db 0E1H,0FDH,0E1H,0C9H 016F POP DE (========this looks good, but 0170 LD C,9 0172 CALL 0163H (=====looks like code starts at 0163H 0175 LD HL,0 0178 ADD HL,SP c163,I (===================Say that the code starts earlier than 016F <*>L100 (=======show product 0100 JP 0106H 0103 JP 01B6H 0106 XOR A 0107 LD (1FFBH),A 010A LD (1FFDH),A 010D CALL 016FH 0110 DB RESOURCE by Ward Christensen 012C db 0DH,0DH 012E DB Z-80 Zilog Version 4.1 0147 db ODH,OAH 0149 DB Restart 103h!! 0158 db ODH,OAH 015A DB 19.03.85$ 0163 PUSH IY 0165 PUSH IX 0167 CALL 5 016A POP IX 016C POP IY 016E RET 016F POP DE : : <*>B100,2100 (= code and constants mapped, now B to build symbols table but extend upper address, here beyond where the program code ended at 1F80H. This allows REZ to account for areas beyond the actual end of the code where lousy programming practices allow for this type of mischief. : a flurry of screen activity ensues : <*>L100 (=======lets look again and see what we got 0100 t0100: ;0100 (== this and many other symbolics gend JP 0106H 0103 JP 01B6H 0106 j0106: ;0106 XOR A 0107 LD (1FFBH),A 010A LD (1FFDH),A 010D CALL 016FH 0110 DB RESOURCE by Ward Christensen 012C db 0DH,0DH 012E DB Z-80 Zilog Version 4.1 0147 db ODH,OAH 0149 DB Restart 103h!! 0158 db ODH,OAH 015A DB 19.03.85$ 0163 c0163: ;0163 PUSH IY 0165 PUSH IX 0167 CALL c0005 ;5 016A POP IX 016C POP IY <*>T (===================toggle trim ON Trim On (===this means put symbolics in same line as assembly code <*>L100 0100 t0100: JP 0106H (===== Name-on-instr-line, from TRIM 0103 JP 01B6H 0106 j0106: XOR A (==== same here 0107 LD (1FFBH),A 010A LD (1FFDH),A 010D CALL 016FH 0110 DB RESOURCE by Ward Christensen 012C db 0DH,0DH 012E DB Z-80 Zilog Version 4.1 0147 db ODH,OAH 0149 DB Restart 103h!! 0158 db ODH,OAH 015A DB 19.03.85$ 0163 c0163: PUSH IY 0165 PUSH IX 0167 CALL c0005 ;5 016A POP IX 016C POP IY 016F c016F: POP DE ? (==================just to see how the stats changed SYMTBL=2800 3428 PC =0170 OFFSET=6000 MEMTOP=ECFF CTLTBL=2100 2220 <*>srez.ctl (===== save our CTL table. Its worth the effort. <*>srez.asm (===== we sure want to do this ! ++WRITING .ASM ENABLED USE Z COMMAND OR E CONTROL TO CLOSE FILE++ <*>L100,2100 : another flurry of screen activity as the code is listed to the .ASM file. : <*>Z END ++ ASM FILE CLOSED++ <*>^C (==========bail out here A0>REN REZ.MAC=REZ.ASM (====rename output so Macro-80 can digest : : ; modify code to add .z80 header to enable z80 compiles ; and an org statement, starting at 0100h to make the comp[iled ; output match up in comparison to the symbolic names ; A0>M80 (===start up m80 first, otherwise we might see invalid machine opcode abend under MyZ80. I suspect its a parity setting discrepancy between the 8080 code and the z80 engine. This seems to bypass the issue. *=REZ/M/L (====this will generate listing to .PRN file *^C (=== bail out of Macro-80 A0> Enjoy ! Mark E Sharafinski  HYPERLINK "mailto:MarkSrph@aol.com" MarkSrph@aol.com O C   & < > ? @ L 0*˾˴젖쌂xhx}OJQJ^Jh-OJQJ^JhV_SOJQJ^JhzOJQJ^JhZhOJQJ^Jh>OJQJ^Jh^OJQJ^Jhf:h*OJQJ^Jhf:OJQJ^Jhf:hf:OJQJ^Jh*OJQJ^Jh9OJQJ^Jh=OJQJ^J- = > K L 0)* h^h`gdZh h^h`gd-)Uj 45gdzgdh^hgdx}h^hgdVJp h^h`gd-";SYi=@A7ADEz,-ʹuughHCJOJQJ^JaJ& jhKhKCJOJQJ^JaJhKCJOJQJ^JaJ& jh) h) CJOJQJ^JaJh) CJOJQJ^JaJ hS^xhHCJOJQJ^JaJhHOJQJ^Jhh=5OJQJ^Jh-OJQJ^Jhx}OJQJ^JhVJpOJQJ^J&8{K g<X-o~ gdz-8:;nst !#$PTZ\]$%MRSz{¦¦¦¦¦¦¦¦¦h>5CJOJQJ^JaJhCJOJQJ^JaJhICJOJQJ^JaJ& jhKhKCJOJQJ^JaJhKCJOJQJ^JaJhS^xCJOJQJ^JaJ?QNv$AZ .Vggdz()AGdfg!"23Z[klqŷũũń hS^xh) CJOJQJ^JaJ& jhKhKCJOJQJ^JaJhKCJOJQJ^JaJhCJOJQJ^JaJh) CJOJQJ^JaJhICJOJQJ^JaJh>5CJOJQJ^JaJ hS^xh>5CJOJQJ^JaJ4g!N[(7CViz)7Egdz %&-/0MRS_`knoűűţshIvCJOJQJ^JaJhEoCJOJQJ^JaJ& jhhCJOJQJ^JaJhCJOJQJ^JaJ& jhKhKCJOJQJ^JaJhKCJOJQJ^JaJ hS^xh) CJOJQJ^JaJhICJOJQJ^JaJh) CJOJQJ^JaJ( ,-;<GHZ[mn~&-.;<IJVWcdpqz{! !&!'!ޱޱޱޝ& jhIvhIvCJOJQJ^JaJ hS^xhIvCJOJQJ^JaJhEoCJOJQJ^JaJhICJOJQJ^JaJhIvCJOJQJ^JaJ& jhKhIvCJOJQJ^JaJ>ER_lv f !!S!!!!!!!!")":"_"p"gdz'!W!g!h!!!!!!!!!!!!""-".">"?"D"\"c"d"t"u"z""""""""""""""""""""#####6#7#>#?#@#y##䱝& jhEohEoCJOJQJ^JaJhEoCJOJQJ^JaJ hS^xhIvCJOJQJ^JaJ& jhIhICJOJQJ^JaJhICJOJQJ^JaJhIvCJOJQJ^JaJ:p""""""""##7#z#####$$)$Q$b$$$$$$$$%%gdz############l$$$$$$$(%/%1%>%E%F%z%%%%%%%% & &(&*&&&&&& '!'''( (((򒠒~~~& jhD0hD0CJOJQJ^JaJhD0CJOJQJ^JaJhEoCJOJQJ^JaJ hS^xhZCJOJQJ^JaJ hS^xhICJOJQJ^JaJ& jhZhZCJOJQJ^JaJhICJOJQJ^JaJhZCJOJQJ^JaJ1%)%?%z%%%%%%%+&B&m&z&&&&&&'J'L'N''''(I( & F^`gdzgdzI(((((/)0)O)U)V)W)s))))))))h`hgd=gdz(((((((((())).)/)0)5)6)U)W)s)t)))))))))֮֠vcUhZCJOJQJ^JaJ$hh=0JCJOJQJ^JaJ/jhh=CJOJQJU^JaJ#jh=CJOJQJU^JaJh^CJOJQJ^JaJ& jhEohEoCJOJQJ^JaJ& jh=h=CJOJQJ^JaJhEoCJOJQJ^JaJh=CJOJQJ^JaJhD0CJOJQJ^JaJ))) hS^xhZ hS^xhZCJOJQJ^JaJ 1h/ =!"#$%DyK MarkSrph@aol.comyK 0mailto:MarkSrph@aol.com@@@ NormalCJ_HaJmH sH tH DA@D Default Paragraph FontVi@V  Table Normal :V 44 la (k@(No List 6U@6 = Hyperlink >*B*ph!R  =>KL0)* U j   4 5  8 {  K g <X-o~ QNv$AZ .Vg!N[(7CViz)7ER_lv fS):_p7z)Qb)?z+BmzJLN I /!0!O!U!V!W!s!!!!!!!!00p00p000p000p00p000000p00@00 @000p00 00p0 00 00p0000000 000 000p00 00p0000000p000000000000 000 0 0 0000 0 080(0 080000 0(0 0 0@0 0000000000000000000000000000000 0000 0(00 00 0 0 0080 0 080 0(0 0000 0@0 0 0 0 0000p00p0000000000000000000000000p0@00@0@0@0@0@0@0@0@0@0@00@0@0@00 0 00 0@0 @00 0 00 0 0 0 00 00000p0p0p0p00p0000000000000p0p000p00X N$Z .!Viz)S_p))!!O900$M900M900d 9U p #O900$O900O900O900O900Oy00$Oy00Oy00O90 08-O90 0O90 0O90 0O900Oy00Oy00O900Oy00$Oy00Oy00Oy0 0-Oy0 0Oy0 0Oy0 0Oy00Oy00O900Oy00Oy00$Oy00Oy00Oy0 0-Oy0 0Oy0 0Oy0 0Oy00Oy00Oy00$Oy00Oy00Oy0 0-Oy0 0Oy0 0Oy0 0Oy00O9000@~O9000Oy00$Oy00Oy00Oy0 0-Oy0 0Oy0 0Oy0 0Oy00O90:0XM90:0My000Oy00O90>0M90>0M90>0O900M900-'!#()) "$'(gEp"%I()!#%&)s!!!!XFd$''+66:!*--9<<!9*urn:schemas-microsoft-com:office:smarttagsState8*urn:schemas-microsoft-com:office:smarttagsCity9*urn:schemas-microsoft-com:office:smarttagsplace ;CGO (,fijn vyUYmqvw~tx % ) - e i 8 : prPU6:x}KPR[sx V \ ^ c !*,7@vZ] Y ] n r   ~   S [ rvDIJM (*,48!XZ   #1@NYbd bf +/XZSUfh26x} &S^59ko]a )4$*tyz{   V \ !2!5!W!^!!333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333>LU j  4 osu?Ez O!T!W!`!!!Mark E Sharafinskimj \[{)V 4^`OJPJQJ^Jo(^`OJQJ^Jo(hHopp^p`OJQJo(hH@ @ ^@ `OJQJo(hH^`OJQJ^Jo(hHo^`OJQJo(hH^`OJQJo(hH^`OJQJ^Jo(hHoPP^P`OJQJo(hH4pp^p`o( ^`hH. pLp^p`LhH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH.{)Vmj \R        ݔ        ) D0Eozf:7FV_SmW^ZhVJpIvS^xx}IZK=>H-*B>59@!@@UnknownGz Times New Roman5Symbol3& z Arial?5 z Courier New;Wingdings"qh*t"ht==!24d!!3QH)?f:RMark E SharafinskiMark E Sharafinski  Oh+'0   < H T`hpxRssMark E Sharafinskiarkark Normal.dotaMark E Sharafinski8rkMicrosoft Word 10.0@3@E+@I~՜.+,D՜.+,0 hp  (home)=!A R Title 8@ _PID_HLINKSAh4mailto:MarkSrph@aol.com  !"#$%&'()+,-./013456789:;<=>?@ABCDEFGHIJKLMNOPQSTUVWXY[\]^_`adRoot Entry F{K~fData *1Table2>WordDocument"RSummaryInformation(RDocumentSummaryInformation8ZCompObjj  FMicrosoft Word Document MSWordDocWord.Document.89q