DemoN/DISASM.ASM
2020-12-26 23:59:23 +03:00

787 lines
28 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;[]=========================================================================[]
;[] „¨§ áᥬ¡«¥à ¬®­¨â®à -®â« ¤ç¨ª  DemoN []
;[] v0.01 - ¯®á«¥¤­¨¥ ¨§¬¥­¥­¨ï 10.10.2004 []
;[] v0.02 - ¯®á«¥¤­¨¥ ¨§¬¥­¥­¨ï 20.03.2005 []
;[] v0.03 - ¯®á«¥¤­¨¥ ¨§¬¥­¥­¨ï 16.02.2006 []
;[] v0.10 - ¯®á«¥¤­¨¥ ¨§¬¥­¥­¨ï 10.09.2006 []
;[] []
;[] DisAsm - ¢ë¢®¤ «¨á⨭£  []
;[] AttrList - ¢ë¢®¤  âਡã⮢ áâப¨ «¨á⨭£  []
;[] UpAdres - à áç¥â ¯à¥¤ë¤ã饣®  ¤à¥á  áâப¨ «¨á⨭£  []
;[] List - ä®à¬¨à®¢ ­¨¥ áâப¨ «¨á⨭£  []
;[]=========================================================================[]
;[]=========================================================================[]
;[] ‚뢮¤ «¨á⨭£  []
;[]=========================================================================[]
DisAsm:
ld hl,(ListAdr) ; ¤à¥á ¯¥à¢®© áâப¨ «¨á⨭£ 
ld de,0x011A ;ª®®à¤¨­ âë ¯¥ç â¨
.L1 push de
push hl
push de
ld a,d
dec a
add a,a
ld c,a
ld b,0
ex de,hl
ld hl,ListAdr
add hl,bc
ld (hl),e ; ¤à¥á áâப¨ «¨á⨭£ 
inc hl
ld (hl),d
ex de,hl
pop de
call AttrList ;®ªà á¨âì áâபã
.L2 call PrintReg
pop hl
call List
pop de
; push af ;¤«¨­  ª®¤  ¢à¥¬¥­­®
ld a,(ListFormat) ;ä®à¬ â­ë© ¢ë¢®¤
or a
call nz,LFormat
push de
push hl
di
ld a,21
add a,e
ld e,a ;­®¢ ï ª®®à¤¨­ â  X
ld c,Bios.Lp_Set_Place ;ãáâ ­®¢ª  ¯®§¨æ¨¨ ¯¥ç â¨
rst BiosRst
; ld c,Dss.Locate
; rst DssRst
ld hl,List.String
ld bc,32*256+Bios.Lp_Print_Ln2 ;¢ ॣ.B ¤«¨­  áâப¨
rst BiosRst
ei
; ld c,Dss.PChars
; rst DssRst
pop hl
pop de
;¯¥ç âì ¤«¨­ë ª®¤  ¢ ¯®«¥ ¬¥âª¨ (¢à¥¬¥­­®)
; pop af
; push de
; push hl
; ld e,0x24
; push de
; ld h,0
; ld l,a
; ld de,.Buf
; call NumToStr8
; pop de
; ld c,Dss.Locate
; rst DssRst
; ld hl,.Buf
; ld c,Dss.PChars
; rst DssRst
; pop hl
; pop de
; jr $+5
;.Buf db "123",0
;end (¢à¥¬¥­­®)
inc d ;á«¥¤ãîé ï áâப 
ld a,(KList.Descript) ;ª®«-¢® áâப «¨á⨭£ 
cp d
jr nc,.L1
ret
;[]=========================================================================[]
;[] ‚뢮¤  âਡã⮢ áâப¨ «¨á⨭£  []
;[] ‚室: DE - ª®®à¤¨­ âë ¯®¤á¢¥âª¨ []
;[] HL - ⥪ã騩  ¤à¥á «¨á⨭£  []
;[]=========================================================================[]
AttrList:
di
push hl ;⥪ã騩  ¤à¥á «¨á⨭£ 
push de ;⥪ã騥 ª®®à¤¨­ âë
push hl
ld bc,(Reg._PC) ; ¤à¥á ¯à®£à ¬¬­®£® áç¥â稪 
or a ;á¡à®á ä« £  C
sbc hl,bc
pop hl
jr nz,.L2
ld a,(Color._PC) ;梥⠯ணࠬ¬­®£® ªãàá®à 
jr .L0
.L2 push hl
push de
push hl
ld bc,Rezident.End-Rezident;¤«¨­  १¨¤¥­â 
ld hl,(RezAdr) ;­ ç «® १¨¤¥­â 
push hl
add hl,bc ;ª®­¥ç­ë©  ¤à¥á १¨¤¥­â 
pop de
dec de
dec de
dec de
dec de
pop bc
call AdrArea
pop de
pop hl
jr c,.L3
ld a,(Color.RezArea) ;梥⠮¡« á⨠ࠧ¬¥é¥­¨ï १¨¤¥­â 
jr .L0
.L3 ld a,(Color.Screen) ;®á­®¢­®© 梥â
.L0 ld (.L1+1),a
dec e
ld c,Bios.Lp_Set_Place ;ãáâ ­®¢ª  ¯®§¨æ¨¨ ¯¥ç â¨
rst BiosRst
.L1 ld e,0 ;梥⠯®¤á¢¥âª¨
ld bc,54*256+Bios.Lp_Print_Atr ;¢ ॣ.B ¤«¨­  áâப¨
rst BiosRst
pop de
pop hl
ei
ret
;[]=========================================================================[]
;[] <20> áç¥â ¯à¥¤ë¤ã饣®  ¤à¥á  áâப¨ «¨á⨭£  []
;[] ‚室: HL -  ¤à¥á ⥪ã饩 áâப¨ []
;[] ‚ë室: HL -  ¤à¥á ¯à¥¤ë¤ã饩 áâப¨ []
;[]=========================================================================[]
UpAdres:
ld de,-4
add hl,de ;4-å ¡ ©â­ ï ª®¬ ­¤ ?
call Ld_a_hl
; ld a,(hl)
cp 0xDD ;¯à¥ä¨ªá 0xDD
jr z,$+8
or 00110000b ;¬ áª  ¤«ï ¯à¥ä¨ªá®¢ 0xED,0xFD
cp 0xFD
jr nz,.L1
push hl
call List
pop hl
cp 4
ret z
.L1 inc hl
push hl ;3-å ¡ ©â­ ï ª®¬ ­¤ ?
call List
pop hl
cp 3
ret z
inc hl
push hl ;2-å ¡ ©â­ ï ª®¬ ­¤ ?
call List
pop hl
cp 2
ret z
inc hl
ret ;1-® ¡ ©â­ ï ª®¬ ­¤ !
;[]=========================================================================[]
;[] ”®à¬ â¨à®¢ ­¨¥ áâப¨ «¨á⨭£  []
;[]=========================================================================[]
LFormat:
push hl
ld hl,List.String+11 ;­ ç «® áâப¨
ld bc,2 ;¬ ªá ª®«-¢® ¢áâ ¢«ï¥¬ëå ¯à®¡¥«®¢
.L2 ld a,(hl)
or a
jr z,.Exit
cp 0x20 ;¯à®¡¥«
jr z,.L1
inc hl
dec c
jr nz,.L2
.Exit pop hl
ret
.L1 push de
push bc
push hl
ld hl,List.String+30 ;ª®­¥æ áâப¨
ld d,h
ld e,l
or a
sbc hl,bc
pop bc
push bc
push hl
sbc hl,bc ;ª®«-¢® ¡ ©â
ld b,h
ld c,l
pop hl
lddr
pop hl
pop bc ;ª®«-¢® ¯à®¡¥«®¢
ld b,c
.L3 inc hl ; ¤à¥á ¢áâ ¢ª¨
ld a,0x20
ld (hl),a
djnz .L3
pop de
pop hl
ret
;[]=========================================================================[]
;[] ”®à¬¨à®¢ ­¨¥ áâப¨ «¨á⨭£  []
;[] ‚室: HL -  ¤à¥á ¯ ¬ï⨠¤¨§ áᥬ¡«¨à®¢ ­¨ï []
;[] ‚ë室: HL - á«¥¤ãî騩 §  ¤¨§ áᥬ¡«¨à®¢ ­­®© ª®¬ ­¤®©  ¤à¥á ¯ ¬ï⨠[]
;[] A - ¤«¨­  ª®¤  ª®¬ ­¤ë []
;[]=========================================================================[]
List:
xor a ;¤«¨­  ª®¤  ª®¬ ­¤ë
ld (.Byte),a
push hl
ld d,h
ld e,l
ld hl,.String ;®ç¨á⪠ ¡ãä¥à  áâப¨
; di ;á ¨á¯®«ì§®¢ ­¨¥¬  ªá¥«ï
; ld d,d ;¢ª«îç¨âì  ªá¥«ì
; ld a,32 ;¤«¨­  ¡ãä¥à  ¨ ¡ ©â § ¯®«­¨â¥«ì
; ld c,c ;ª®¬ ­¤  § ¯®«­¥­¨ï
; ld (hl),a ;§ ¯®«­¨âì
; ld b,b ;¢ëª«îç¨âì  ªá¥«ì
; ei
ld a,32 ;¤«¨­  ¡ãä¥à  ¨ ¡ ©â § ¯®«­¨â¥«ì
ld b,a
ld (hl),a
inc hl
djnz $-2
ld ix,.String+2 ; ¤à¥á ¢ áâப¥ ¤«ï á«¥¤.ª®¤ 
ex de,hl
; ld a,(hl) ;¡ ©â ¨§ ¯ ¬ïâ¨
call Ld_a_hl
;===============================
cp 0xDD ;¯à¥ä¨ªá #DD
jr z,.L43
cp 0xFD ;¯à¥ä¨ªá #FD
jp nz,.L30
ld de,"DF"
ld a,"Y"
jr .L42
.L43 ld de,"DD"
ld a,"X"
.L42 ld (.String),de ;¯à¥ä¨ªá ¢ áâபã
ld (.IRS1+1),a ;ª®à४â¨à®¢ª  ॣ.¯ àë
ld (.L9+1),a
ld (.L13+6),a
ld a,1
ld (.Byte),a ;¤«¨­  ª®¤  ª®¬ ­¤ë
pop hl
inc hl
; ld a,(hl) ;á«¥¤ãî騩 ¡ ©â ª®¬ ­¤ë
call Ld_a_hl
push hl
cp 0xCB
jr z,.L40 ;ª®¬ ­¤ë #DD(#FD)#CB
ld hl,CodeDDFD ;â ¡«¨æ  ª®¤®¢
ld bc,85 ;à §¬¥à â ¡«¨æë
cpir ;¯®¨áª ª®¤ 
jr z,.L45
pop hl
ld bc,ED00
ld de,.String+9 ;ª®¯¨à®¢ ­¨¥ ¬­¥¬®­¨ª¨ NOP *
ld a,(bc)
or a
ret z
ld (de),a
inc de
inc bc
jr $-6
.L45 ld hl,84 ;à §¬¥à â ¡«¨æë
or a
sbc hl,bc
ld de,TablDDFD
jp .L_12+3
.L40 ld ix,.String+4 ; ¤à¥á ¢ áâப¥ ¤«ï á«¥¤.ª®¤ 
ld de,"BC" ;¯à¥ä¨ªá ¢ áâபã
ld (.String+2),de
ld a,4 ;¤«¨­  ª®¤ 
ld (.Byte),a
pop hl
inc hl
call Ld_a_hl
ld b,a
; ld b,(hl) ;¡ ©â-ᬥ饭¨¥
inc hl
call Ld_a_hl
; ld a,(hl) ;á«¥¤ãî騩 ¡ ©â ª®¬ ­¤ë
inc hl
push hl
ld c,a
ld h,0
cp 0x40 ;®â 0 ¤® 0x3F (ᤢ¨£¨)
jr c,.L44
call .ComCBBit ;¬­¥¬®­¨ª  BIT,SET,RES
ld a,c
cp 0x80 ;ª®¬ ­¤  BIT
jr nc,.L41
call .NomBit ;­®¬¥à ¡¨â 
call .IndexRegSh ;¨­¤¥ªá­ ï ¯ à  ᮠᬥ饭¨¥¬
jr .L46
.L41 call .NomBit ;­®¬¥à ¡¨â 
jr .L44+3
.L44 call .ComCBSh ;¬­¥¬®­¨ª 
call .RegName ;ॣ¨áâà
jr nz,$+6
ld a,"," ;à §¤¥«¨â¥«ì
ld (de),a
inc de
call .IndexRegSh ;¨­¤¥ªá­ ï ¯ à  ᮠᬥ饭¨¥¬
.L46 ld a,c
call ConvHexStr
ld (ix+2),l
ld (ix+3),h
pop hl
ret
;===============================
.L30 cp 0xCB ;¯à¥ä¨ªá #CB
jp nz,.L20
ld de,"BC" ;¯à¥ä¨ªá ¢ áâபã
ld (.String),de
pop hl
inc hl
call Ld_a_hl
; ld a,(hl) ;á«¥¤ãî騩 ¡ ©â ª®¬ ­¤ë
inc hl
push hl
ld c,a
ld h,0
cp 0x40 ;®â 0 ¤® 0x3F (ᤢ¨£¨)
jr nc,.L31
call .ComCBSh ;¬­¥¬®­¨ª 
jr .L31+6
.L31 call .ComCBBit ;¬­¥¬®­¨ª 
call .NomBit ;­®¬¥à ¡¨â 
call .RegName ;ॣ¨áâà
call nz,.HLReg
ld a,c
call ConvHexStr
ld (ix+0),l
ld (ix+1),h
pop hl
ld a,2 ;¤«¨­  ª®¤  ª®¬ ­¤ë
ret
;===============================
.L20 cp 0xED ;¯à¥ä¨ªá #ED
jr nz,.L10
ld a,1
ld (.Byte),a ;¤«¨­  ª®¤ 
ld de,"DE" ;¯à¥ä¨ªá ¢ áâபã
ld (.String),de
pop hl
inc hl
push hl
call Ld_a_hl
; ld a,(hl) ;á«¥¤ãî騩 ¡ ©â ª®¬ ­¤ë
cp 0x40 ;®â 0 ¤® 0x3F
jr c,.L21
ld de,TablED-0x40*2
cp 0x7F ;®â 0x40 ¤® 0x7E ¨§ â ¡«¨æë
jr c,.L_12
cp 0xA0 ;®â 0x7F ¤® 0x9F
jr c,.L21
ld de,TablED-0xA0*2+0x40*2-2
cp 0xBC ;®â 0xBC ¤® 0xFF
jr c,.L_12
.L21 ld hl,ED00 ;ª®¬ ­¤  "NOP *"
jr .L_2-3
;===============================
.L10 ld ix,.String
ld de,Tabl00_3F ;â ¡«¨æ  ᬥ饭¨©
cp 0x40 ;ª®¬ ­¤ë 0x00...0x3F
jr c,.L_12
ld de,TablC0_FF ;â ¡«¨æ  ᬥ饭¨©
ld c,a
sub 0xC0 ;ª®¬ ­¤ë 0xC0...0xFF
jr nc,.L_12
ld a,c
cp 0x80
jr nc,.L8
ld hl,MHALT
cp 0x76 ;ª®¤ ª®¬ ­¤ë HALT
jr z,.L_2-3
ld hl,.String+9
ld (hl),"L" ;¬­¥¬®­¨ª  LD
inc hl
ld (hl),"D"
inc hl
ld (hl)," "
inc hl
rrca
rrca
rrca
ex de,hl
call .RegName+1 ;¯¥ç âì ॣ¨áâà 
call nz,.HLReg
ld a,"," ;à §¤¥«¨â¥«ì
ld (de),a
inc de
call .RegName ;¯¥ç âì ॣ¨áâà 
call nz,.HLReg
xor a
jr .L1
.L8 and 00111000b ;ADD,ADC,SUB,SBC,AND,XOR,OR,CP
rrca
rrca
ld l,a
ld h,0
ld de,TablM
add hl,de ;ᬥ饭¨¥ ¢ â ¡«¨æ¥
ld a,(hl)
inc hl
ld h,(hl)
ld l,a
ld de,.String+9 ;ª®¯¨à®¢ ­¨¥ ¢ áâபã-¡ãä¥à
ld a,(hl)
ld (de),a
inc de
inc hl
or a
jr nz,$-5
dec de
call .RegName ;¯¥ç âì ॣ¨áâà 
call nz,.HLReg
xor a
jr .L1
.L_12 ld l,a ;à áç¥â  ¤à¥á  ¢ â ¡«¨æ¥
ld h,0
add hl,hl ;*2
add hl,de
ld a,(hl)
inc hl
ld h,(hl)
ld l,a ; ¤à¥á áâப¨-¬­¥¬®­¨ª¨
ld de,.String+9 ;ª®¯¨à®¢ ­¨¥ ¢ áâபã-¡ãä¥à
.L_2 ld a,(hl)
cp 0x20
jr c,.L1
cp "x" ;¨­¤¥ªá­ë© ॣ¨áâà
jr nz,$+4
.L9 ld a,"X"
ld (de),a
cp ")"
jr nz,$+9
ld (.TablAdr),hl
ld (.StrAdr),de
inc hl
inc de
jr .L_2
.L1 exa
pop hl ;¯¥ç âì ¡ ©â 
call Ld_a_hl
; ld a,(hl)
inc hl
push hl
call ConvHexStr
ld (ix+0),l
ld (ix+1),h
exa
jp z,.LE
dec a ;2-å ¡ ©â­ ï ª®¬ ­¤  (1)
jr nz,.L3
call .TwoByteCom
pop hl
ld a,(.Byte)
inc a
inc a ;¤«¨­  ª®¤ 
ret
.L3 dec a ;3-å ¡ ©â­ ï ª®¬ ­¤  (2)
jr nz,.L4
call .ThreeByteCom
pop hl
ld a,(.Byte)
add a,3 ;¤«¨­  ª®¤ 
ret
.L4 dec a ;ª®¬ ­¤ë ®â­®á¨â¥«ì­®£® ¯¥à¥å®¤  (3)
jr nz,.L7
pop hl
call Ld_a_hl
; ld a,(hl) ;2-© ¡ ©â ª®¬ ­¤ë
inc hl
push hl
ld c,a
call ConvHexStr
ld (ix+2),l
ld (ix+3),h
ld a,c
ld b,0
pop hl
push hl ;⥪ã騩  ¤à¥á
bit 7,a ;§­ ª ç¨á« 
jr z,$+10
neg
or a ;á¡à®á ä« £  C
ld c,a
sbc hl,bc ;®âà¨æ â¥«ì­®¥ ᬥ饭¨¥
jr $+3
add hl,bc ;¯®«®¦¨â¥«ì­®¥ ᬥ饭¨¥
call NumToStr16
pop hl
ld a,2 ;¤«¨­  ª®¤ 
ret
.L7 dec a ;ª®¬ ­¤ë à ¡®âë á ¯®àâ ¬¨ (4)
jr nz,.L5
inc a
ld (.Byte),a ;¤«¨­  ª®¤ 
ld de,(.StrAdr) ; ¤à¥á ¢áâ ¢ª¨
call .TwoByteCom
jr .L6
.L5 dec a ;3-å ¡ ©â­ë¥ ª®á¢¥­­®©  ¤à¥á æ¨¨ (5)
jr nz,.L11
ld a,(.Byte)
inc a
inc a
ld (.Byte),a ;¤«¨­  ª®¤ 
ld de,(.StrAdr) ; ¤à¥á ¢áâ ¢ª¨
call .ThreeByteCom
jr .L6
.L11 dec a ;¨­¤¥ªá­ë¥ ॣ¨áâàë ᮠᬥ饭¨¥¬ (6)
jr nz,.LE
ld a,2
ld (.Byte),a ;¤«¨­  ª®¤ 
ld de,(.StrAdr) ; ¤à¥á ¢áâ ¢ª¨
pop hl
call Ld_a_hl
ld b,a
; ld b,(hl)
inc hl
push hl
ld ix,.String+4
call .IndexRegSh
.L6 ld hl,(.TablAdr) ; ¤à¥á ¢ â ¡«¨æ¥ ¬­¥¬®­¨ª
ld a,(hl)
cp 0x20
jr nc,.L13
ld a,b
cp "," ;¬­¥¬®­¨ª  ®ª ­ç. ­  ","
jr nz,.LE
call .TwoByteCom
pop hl
ld a,4 ;¤«¨­  ª®¤ 
ret
.L13 ld b,a
cp "x" ;¨­¤¥ªá­ë© ॣ¨áâà
jr nz,$+4
ld a,"X"
ld (de),a
inc hl
inc de
jr .L6+3
.LE pop hl
ld a,(.Byte) ;¤«¨­  ª®¤ 
inc a
ret
;======== ¯¥ç âì ¢â®à®£® ª®¤  ¤¢ãå¡ ©â­®© ª®¬ ­¤ë ========
.TwoByteCom:
pop bc ; ¤à¥á ¢®§¢à â 
pop hl
call Ld_a_hl
; ld a,(hl) ;2-© ¡ ©â ª®¬ ­¤ë
inc hl
push hl
push bc
ld c,a
call ConvHexStr
ld (ix+2),l
ld (ix+3),h
ld l,c
ld h,0
jp NumToStr8
;======== ¯¥ç âì ¢â®à®£® ¨ âà¥â쥣® ª®¤  âà¥å¡ ©â­®© ª®¬ ­¤ë ========
.ThreeByteCom:
pop bc ; ¤à¥á ¢®§¢à â 
pop hl
call Ld_a_hl
; ld a,(hl) ;2-© ¡ ©â ª®¬ ­¤ë
inc hl
exa
call Ld_a_hl
; ld a,(hl) ;3-© ¡ ©â ª®¬ ­¤ë
inc hl
push hl
push bc
ld b,a
call ConvHexStr
ld (ix+4),l
ld (ix+5),h
exa
ld c,a
call ConvHexStr
ld (ix+2),l
ld (ix+3),h
ld h,b ;¢ HL - ç¨á«®
ld l,c
jp NumToStr16
;======== ¯¥ç âì ¬­¥¬®­¨ª ª®¬ ­¤ á ¯à¥ä¨ªá®¬ 0xCB (ᤢ¨£¨, ¡¨â®¢ë¥) ========
;A - ¡ ©â ª®¬ ­¤ë
;DE -  ¤à¥á ¢ áâப¥
.ComCBBit:
and 11000000b
rlca
rlca
rlca
rlca
ld l,a
ld de,CB40-4
add hl,de
jr .ComCBSh1
.ComCBSh:
and 00111000b ;ᬥ饭¨¥ ¢ â ¡«¨æ¥
rrca
rrca
ld l,a
ld de,TablCB
add hl,de
ld a,(hl)
inc hl
ld h,(hl)
ld l,a
.ComCBSh1 ld de,.String+9 ;ª®¯¨à®¢ ­¨¥ ¢ áâபã-¡ãä¥à
ld a,(hl)
ld (de),a
inc de
inc hl
cp " " ;¯®á«¥¤­¨© ᨬ¢®« ¬­¥¬®­¨ª¨
jr nz,$-6
ret
;======== ¢ëç¨á«¥­¨¥ ­®¬¥à  ¡¨â  ¢ ¡¨â®¢ëå ª®¬ ­¤ å BIT, SET, RES ========
;C - ¡ ©â ª®¬ ­¤ë
;DE -  ¤à¥á ¢ áâப¥
.NomBit:
ld a,c
and 00111000b ;­®¬¥à ¡¨â 
rrca
rrca
rrca
add a,"0"
ld (de),a
ld a,","
inc de
ld (de),a
inc de
ret
;======== ¯¥ç âì ¨¬¥­¨ ॣ¨áâà  ========
;C - ª®¬ ­¤ 
;DE -  ¤à¥á ¢ áâப¥
.RegName:
ld a,c
and 00000111b ;ॣ¨áâà
add a,"B"
cp "F" ;B,C,D,E
jr c,.RN1
inc a
inc a
cp "H"
jr z,.RN1
add a,3
cp "L"
jr z,.RN1
sub 13
cp "A"
ret nz ;®â­®á¨â¥«ì­ ï  ¤à¥á æ¨ï
.RN1 ld (de),a
inc de
xor a
ret
;======== ¯¥ç âì (HL) ========
;DE -  ¤à¥á ¢ áâப¥
.HLReg:
ex de,hl
ld (hl),"("
inc hl
ld (hl),"H"
inc hl
ld (hl),"L"
inc hl
ld (hl),")"
inc hl
ex de,hl
ret
;======== ¯¥ç âì ¨­¤¥ªá­®© ॣ¨áâ஢®© ¯ àë ᮠᬥ饭¨¥¬ ========
;B - ᬥ饭¨¥
;DE -  ¤à¥á ¢ áâப¥
.IndexRegSh:
ld a,b
call ConvHexStr
ld (ix+0),l
ld (ix+1),h
ex de,hl
ld (hl),"("
inc hl
ld (hl),"I"
inc hl
.IRS1 ld (hl),"X"
inc hl
ld a,"+" ;¯®«®¦¨â¥«ì­®¥ ᬥ饭¨¥
ld (hl),a
ld a,b ;ᬥ饭¨¥
bit 7,b
jr z,$+8
ld a,"-" ;®âà¨æ â¥«ì­®¥ ᬥ饭¨¥
ld (hl),a
ld a,b ;ᬥ饭¨¥
neg
inc hl
ex de,hl
ld l,a
ld h,0
call NumToStr8
ld a,")"
ld (de),a
ret
.String db "00112233 01234567890123456789012"
.Byte db 0
.TablAdr dw 0
.StrAdr dw 0