flex_nav/plugins/fnviewer/fvhex.a80

725 lines
12 KiB
Plaintext
Raw Permalink 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.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; LAST UPDATE: 20.03.2025 savelij
;--------------------------------------------------------------
;<3B>à®æ¥¤ãà  ¯¥ç â¨ áâà ­¨æë ¤ ¬¯  á ⥪.ᬥé. ®â ­ ç «  ä ©« 
;<3B>  ¢å®¤:
; None
;<3B>  ¢ë室:
; None
PrnHEXpage LD HL,PrintVProc
PUSH HL
LD HL,(FileShift)
LD A,L
AND 0xF0
LD L,A
LD (FileShift),HL
LD (TempShift),HL ;‡ ¯®¬¨­ ¥¬ ⥪.ᬥ饭¨¥
LD HL,(FileShift+2)
LD (TempShift+2),HL
LD HL,LineBuffer
LD BC,0x5020
.L1 LD (HL),C
INC L
DJNZ .L1
LD B,0x1C ;ˆ§­ ç.¯®§¨æ¨ï ¯¥ç â¨
PrnHEXl PUSH BC
CALL PutHLine ;‚뢮¤¨¬ áâப㠢 ¡ãä¥à ¨ ­  íªà ­
POP BC
JR C,FillDwnHex ;CY-‡ ª®­ç¨«¨áì ¡ ©âë ¤«ï ¯¥ç â¨
LD HL,(TempShift)
LD DE,0x0010 ;€¤à¥á ¤ ¬¯ +16
ADD HL,DE
LD (TempShift),HL
LD HL,(TempShift+2)
LD E,D
ADC HL,DE
LD (TempShift+2),HL
LD A,B
ADD A,0x08
LD B,A
CP 0xE4
JR NZ,PrnHEXl
RET
;<3B>à®æ¥¤ãà  ®âç¨á⪨ ­¨¦­¥© ®¡« á⨠íªà ­ 
FillDwnHex LD A,B
CP 0xE4
RET Z ;Z-­¥â ®âç¨á⪨
LD (FPosHex),A
LD A,0xE4
SUB B
LD (FLenHex),A
MAKEWINDOW WINSUBOBJ.WOBIND
W_FILL 0,0,640,0,COLORI.PANEL
FPosHex EQU $ - 7
FLenHex EQU $ - 3
W_END
RET
;<3B>à®æ¥¤ãà  ¯¥ç â¨ ⥪.áâப¨ ¢ ¡ãä¥à ¨ ­  íªà ­
PutHLine LD IXL,0x00
LD IXH,B
LD HL,(FileLenght)
LD BC,(TempShift)
OR A
SBC HL,BC
EX DE,HL
LD HL,(FileLenght+2)
LD BC,(TempShift+2)
SBC HL,BC
RET C
LD B,0x10
JR NZ,PutHLn
LD A,D
OR A
JR NZ,PutHLn
OR E
SCF
RET Z
LD A,E
CP B
JR NC,PutHLn
LD B,E
PutHLn
GETPORT WINSP.CPU1
PUSH AF
CALL InitFPages
LD HL,LineBuffer+1 ;¡ãä¥à áâப¨
EXX
LD HL,LineBuffer+0x3F ;¬¥áâ® ¤«ï ASCII ª®¤®¢
EXX
LD A,(TempShift+3) ;Š« ¤¥¬ ᬥ饭¨¥
CALL PutHexNumb ;®â ­ ç «  ä ¨« 
LD A,(TempShift+2)
CALL PutHexNumb
LD A,(TempShift+1)
CALL PutHexNumb
LD A,(TempShift)
CALL PutHexNumb
LD (HL),":"
INC L
INC L
PutHLoop CALL TestFPages
LD A,(DE)
INC DE
EXX
LD (HL),A
INC L
EXX
CALL PutHexNumb ;<3B>à®æ¥¤ãà  ª®­¢¥àâ 
INC L
INC IXL ;“¢¥«¨ç.ª®«-¢® ¢¢¥¤¥­­ëå ¡ ©â®¢
LD A,IXL
CP 0x04
JR Z,.PtHNx1
CP 0x08
JR Z,.PtHNx1
CP 0x0C
JR NZ,.L1
.PtHNx1 INC L
.L1 DJNZ PutHLoop
POP AF
SETPORT WINSP.CPU1,,0
;<3B>à®æ¥¤ãà  ®ç¨á⪨ § ª®­ç¨¢è¨åáï ¡ ©â®¢
FillHex LD A,0x10 ;Œ ªá.¡ ©â®¢
SUB IXL ;’¥ª.ª®«-¢® ¡ ©â®¢
JR Z,.FillE2
LD B,A
LD C,0x20
.FillE1 LD (HL),C
INC L
LD (HL),C
INC L
INC L
EXX
LD (HL),0x20
INC L
EXX
INC IXL
LD A,IXL ; 業âॠ2 ¯à®¡¥« 
CP 0x04
JR Z,.FlHNx1
CP 0x08
JR Z,.FlHNx1
CP 0x0C
JR NZ,.L2
.FlHNx1 INC L
.L2 DJNZ .FillE1
.FillE2 LD HL,LineBuffer
LD DE,0x0000
LD B,0x50
LD C,IXH
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
OR A
RET ;CY-¡ë«  ¯®á«¥¤­ïï áâப 
;<3B>à®æ¥¤ãà  ¯à¥®¡à §®¢ ­¨ï 8¡¨â®¢ëå ç¨á¥« ¢ è¥áâ­ ¤æ. ⥪áâ
;<3B>  ¢å®¤:
; HL -  ¤à¥á ¡ãä¥à 
; € - ¡ ©â
;<3B>  ¢ë室:
; ¡ãä¥à á ⥪áâ.ç¨á«®¬
PutHexNumb PUSH AF
RRCA
RRCA
RRCA
RRCA
AND 0x0F
ADD A,0x90
DAA
ADC A,0x40
DAA
LD (HL),A
INC L
POP AF
AND 0x0F
ADD A,0x90
DAA
ADC A,0x40
DAA
LD (HL),A
INC L
RET
;--------------------------------------------------------------
;<3B>à®æ¥¤ãàë ®¡à ¡®âª¨ View
;<3B>  áâப㠢¢¥àå
HLineUpMs CALL FVHLineUp
RET C
LD B,0x0A
HUpMs1 PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 0,A
RET Z
HALT
DJNZ HUpMs1
HUpMs2 CALL FVHLineUp
RET C
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
RET Z
JR HUpMs2
FVHLineUp LD HL,(FileShift)
LD DE,(FileShift+2)
LD A,H ;<3B>஢¥à塞 ­  ­ ç «® ä ©« 
OR D
OR L
OR E
SCF
RET Z ;Z-­ ç «® ä ©« 
LD BC,0x0010
OR A
SBC HL,BC
LD (FileShift),HL ;FileShift-16¡ ©â(¯à¥¤¨¤.áâப )
LD (TempShift),HL ;‡ ¯®¬¨­ ¥¬ ⥪.ᬥ饭¨¥
LD C,B
EX DE,HL
SBC HL,BC
LD (FileShift+2),HL
LD (TempShift+2),HL
CALL ScrollSCRdown
LD B,0x1C
CALL PutHLine ;‘®§¤ ¥¬ ¨ ¯¥ç â ¥¬ áâபã
CALL PrintVProc
OR A
RET
;<3B>  áâப㠢­¨§
HLineDwnMs CALL HLineDwn
RET C
LD B,0x0A
HDnMs1 PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 0,A
RET Z
HALT
DJNZ HDnMs1
HDnMs2 CALL HLineDwn
RET C
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
RET Z
JR HDnMs2
HLineDwn LD HL,(FileShift)
LD BC,(FileShift+2)
LD DE,0x0190
ADD HL,DE
LD (TempShift),HL ;‡ ¯®¬¨­ ¥¬ ⥪.ᬥ饭¨¥
JR NC,.L1 ;<3B>ਡ ¢«ï¥¬ ª ᬥ饭¨î áâà ­¨æã
INC BC ;¡ ©â®¢ (480¡)
.L1 LD (TempShift+2),BC
EX DE,HL
LD HL,(FileLenght)
OR A
SBC HL,DE ;<3B>஢¥à塞 ­  ª®­¥æ ä ©« 
EX DE,HL
LD HL,(FileLenght+2)
SBC HL,BC
RET C
JR NZ,.L2
LD A,D
OR E
SCF
RET Z ;Z - ª®­¥æ
.L2 LD HL,(FileShift)
LD DE,(FileShift+2)
LD BC,0x0010
ADD HL,BC
JR NC,.L3
INC DE
.L3 LD (FileShift),HL
LD (FileShift+2),DE
CALL ScrollSCRup
LD B,0xDC
CALL PutHLine ;‘®§¤ ¥¬ ¨ ¯¥ç â ¥¬ áâபã
CALL PrintVProc
OR A
RET
;<3B>  áâà ­¨æã ¢¢¥àå
HPageUpMs CALL FVHPageUp
RET C
LD B,0x0A
HUpMs1p PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 0,A
RET Z
HALT
DJNZ HUpMs1p
HUpMs2p CALL FVHPageUp
RET C
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
RET Z
JR HUpMs2p
FVHPageUp LD HL,(FileShift)
LD BC,(FileShift+2)
LD A,H ;<3B>஢¥à塞 ­  ­ ç «® ä ©« 
OR B
OR L
OR C
SCF
RET Z
LD DE,0x0190 ;Žâ­¨¬ ¥¬ ®â ⥪.ᬥé. áâà ­¨æã ¡ ©â®¢
OR A
SBC HL,DE
JR NC,.HPgUp1
LD A,B
OR C
DEC BC ;<3B>஢¥à塞,çâ® ­¥ ¢ë¢ «¨«¨áì § 
JR NZ,.HPgUp1 ;­ ç «® ä ©«  Z - ¢ë¢ «¨«¨áì
INC BC
LD L,C ;’®£¤  ᬥ饭¨¥ = 0
LD H,B
.HPgUp1 LD (FileShift),HL
LD (FileShift+2),BC
CALL PrnHEXpage ;<3B>¥ç â ¥¬ áâà ­¨æã
OR A
RET
;<3B>  áâà ­¨æã ¢­¨§
HPageDwnMs CALL HPageDwn
RET C
LD B,0x0A
HDnMs1p PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 0,A
RET Z
HALT
DJNZ HDnMs1p
HDnMs2p CALL HPageDwn
RET C
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
RET Z
JR HDnMs2p
HPageDwn LD HL,(FileShift)
LD BC,(FileShift+2)
LD DE,0x0190 ;<3B>«îá㥬 ª ⥪.ᬥé.
ADD HL,DE ;áâà ­¨æã ¡ ©â®¢
PUSH HL
JR NC,.L1
INC BC
.L1 PUSH BC
EX DE,HL
LD HL,(FileLenght) ;<3B>஢¥à塞,çâ® áâà ­¨æ 
OR A ;¯®á«¥¤­ïï
SBC HL,DE
EX DE,HL
LD HL,(FileLenght+2)
SBC HL,BC
POP BC
POP HL
RET C ; - ­¥â
JR NZ,.L2
LD A,D
OR E
SCF
RET Z ;Z - ­¥â
.L2 LD (FileShift),HL
LD (FileShift+2),BC
CALL PrnHEXpage ;<3B>¥ç â ¥¬ áâà ­¨æã
OR A
RET
; ­ ç «® ä ©« 
HBegFile LD HL,JUMPS.ResFire
PUSH HL
LD HL,(FileShift)
LD BC,(FileShift+2)
LD A,H ;<3B>஢¥à塞 ­  ­ ç «® ä ©« 
OR B
OR L
OR C
RET Z ;Z - <20> ç «®
LD HL,0x0000 ;‘¬¥é¥­¨¥ = 0000
LD (FileShift),HL
LD (FileShift+2),HL
CALL PrnHEXpage ;<3B>¥ç â ¥¬ áâà ­¨æã
RET
; ª®­¥æ ä ©« 
HEndFile LD HL,JUMPS.ResFire
PUSH HL
LD HL,(FileShift)
LD BC,(FileShift+2)
LD DE,0x0190
ADD HL,DE
JR NC,.L1
INC BC
.L1 EX DE,HL
LD HL,(FileLenght) ;<3B>஢¥à塞,çâ® ¬ë ­  ¯®á«¥¤­¥©
PUSH HL ;áâà ­¨æ¥
OR A
SBC HL,DE
EX DE,HL
LD HL,(FileLenght+2)
PUSH HL
SBC HL,BC
POP BC
POP HL
RET C ; - ¢ ª®­æ¥
JR NZ,.L2
LD A,D
OR E
RET Z ;Z - ¢ ª®­æ¥
.L2 LD DE,0x0190
OR A
SBC HL,DE ;<3B>à®áç¨â뢠¥¬ ᬥ饭¨¥ ¯®á«¥¤­¥© áâà ­¨æë
JR NC,.L3
DEC BC
.L3 LD A,L ;‘¬¥é¥­¨¥ ªà â­® 16
AND 0x0F
JR Z,.HEnd1
LD A,L
AND 0xF0
LD L,A
LD DE,0x0010
ADD HL,DE
JR NC,.HEnd1
INC BC
.HEnd1 LD (FileShift),HL
LD (FileShift+2),BC
CALL PrnHEXpage ;<3B>¥ç â ¥¬ áâà ­¨æã
RET
;--------------------------------------------------------------
;<3B>à®æ¥¤ãà  ¢¢®¤  ­®¢®£® 㪠§ â¥«ï ᬥ饭¨ï ¢ ä ©«¥
HGoTo LD HL,(FileLenght)
LD DE,(FileLenght+2)
LD A,H ;<3B>஢¥à塞,çâ® ¤«¨­ 
OR D ;ä ©«  ¡®«ìè¥ 16 ¡ ©â
OR E
JR NZ,HGoToOk
LD A,L
CP 0x11
RET C ;¬¥­ìè¥ 16¡ ©â
HGoToOk LD HL,NewShift ;<3B>ãä¥à ¤«ï ¢¢®¤  ­®¢®£® 㪠§.
SUB A
LD (CursPos+1),A ;<3B>®§¨æ¨ï ¢¢®¤  ¢ ¡ãä¥à¥
INC A
LD (BuffFlg),A
LD A,(FileShift+3)
CALL PutHexNumb ;‡ ­®á¨¬ ¢ ¡ãä¥à ⥪ã饥 ᬥé.
LD A,(FileShift+2) ;¢ ⥪á⮢®¬ ¢¨¤¥
CALL PutHexNumb
LD A,(FileShift+1)
CALL PutHexNumb
LD A,(FileShift)
CALL PutHexNumb
;‚뢮¤¨¬ ­  íªà ­ ¡ãä¥à ¨
HGoToRet CALL PrintHGT ;¯¥ç â ¥¬ ªãàá®à
HGoToLp HALT ;ަ¨¤ ¥¬ ¯à¥à뢠­¨¥
CALL ChangeCurs ;¯à®¢¥àï¬ ­  ᬥ­ã ªãàá®à 
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
JP NZ,HGTescape
SPDSS DSSF.SCANKEY ;ަ¨¤ ¥¬ ­ ¦ â¨ï ª« ¢¨è¨
JR Z,HGoToLp ;Z - ­¥ ­ ¦ â 
LD A,B
AND 0x3F
JR NZ,HGoToLp
LD A,E
OR A
JR Z,HGoToSys ;A=0 á¨áâ.ª« ¢¨è 
CP 0x0D
JP Z,HGTenter ;­ ¦ â Enter
CP 0x08
JR Z,HGTdelete ;­ ¦ â BackSpace
CP 0x1B
JP Z,HGTescape ;­ ¦ â Esc
CP 0x20
JR C,HGoToLp ;ª®¤<0x20 ­ ¬ ­¥ ¯®¤å®¤¨â
LD C,A ;á®åà. ASCII ª®¤
LD A,0x00
BuffFlg EQU $-1
OR A
CALL NZ,ClearBuff
CursPos LD A,0x00 ;⥪.¯®§¨æ¨ï ¯¥ç â¨ ¢ ¡ãä¥à¥
LD B,A ;á®åà.⥪.¯®§.
LD HL,NewShift ;‘¬¥é.®â ­ ç «  ¡ãä¥à 
ADD A,L
LD L,A
JR NC,.L1
INC H
.L1 LD (HL),C ;‡ ­®á¨¬ ª®¤ ¢ ¡ãä¥à
LD A,B ;⥪.¯®§.
CP 0x07 ;<3B>®§¨æ¨ï ¢ ¡ãä¥à¥ (7-¯®á«¥¤­ïï)
JR Z,HGoToRet ;¯¥ç â ¥¬ áâப㠨 ªãàá®à
INC A ;á«¥¤.¯®§¨æ¨ï
LD (CursPos+1),A
JR HGoToRet ;¯¥ç â ¥¬ áâப㠨 ªãàá®à
ClearBuff LD HL,NewShift
LD B,0x08
LD A,0x20
.L1 LD (HL),A
INC HL
DJNZ .L1
SUB A
LD (BuffFlg),A
RET
;‡ ¡®©
HGTdelete SUB A
LD (BuffFlg),A
LD A,(CursPos+1) ;’¥ª.¯®§¨æ¨ï ¢ ¡ãä¥à¥
OR A
JR Z,HGoToLp ;0 - ¢ë室¨¬
DEC A
LD (CursPos+1),A ;¯à¥¤¨¤.¯®§¨æ¨ï
LD HL,NewShift
ADD A,L ;ᬥé.¢ ¡ãä¥à¥
LD L,A
JR NC,.L1
INC H
.L1 LD (HL)," " ;‡ ¡¨¢ ¥¬ ¯à®¡¥«®¬
JR HGoToRet
;á¨á⥬­ ï ª« ¢¨è 
HGoToSys LD A,D
CP 0x54 ;<-
JR Z,HGTleft
CP 0x56 ;->
JR Z,HGTright
JR HGoToLp
;Šãàá®à ¢«¥¢®
HGTleft SUB A
LD (BuffFlg),A
LD A,(CursPos+1) ;’¥ª.¯®§¨æ¨ï ¢ ¡ãä¥à¥
OR A
JP Z,HGoToLp ;0 - ¢ë室¨¬
DEC A
LD (CursPos+1),A ;“¬¥­ìè.¯®§.
JP HGoToRet
HGTright SUB A
LD (BuffFlg),A
LD A,(CursPos+1) ;’¥ª.¯®§¨æ¨ï ¢ ¡ãä¥à¥
CP 0x07
JP Z,HGoToLp ;7 - ¯®á«¥¤­ïï
INC A
LD (CursPos+1),A ;“¢¥«¨ç.¯®§.
JP HGoToRet
;<3B>à®æ¥¤ãà  ¢ë¢®¤  áâப¨ ¨ ªãàá®à 
PrintHGT LD HL,NewShift
LD DE,0x0008
LD BC,0x081C
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
LD A,(CursPos+1) ;<3B>®§¨æ¨ï ¢ë¢®¤  ªãàá®à 
INC A
LD L,A
LD H,0x00
ADD HL,HL
ADD HL,HL
ADD HL,HL
EX DE,HL
LD HL,TCursor
LD (HL),0xAB;"<"
LD BC,0x011C
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
LD A,0x01 ;<3B>®¬¥à ¢ë¢¥¤¥­­®£® ªãàá®à 
LD (CurCurs),A
LD A,0x06 ;ަ¨¤ ­¨¥ ¤«ï ᬥ­ë ªãàá®à 
LD (CurWait),A
RET
;<3B>à®æ¥¤ãà  á¬¥­ë ªãàá®à 
ChangeCurs LD A,0x00 ;‡ ¤¥à¦ª  ¬¥¦¤ã ᬥ­®© ªãàá®à 
CurWait EQU $-1
DEC A
LD (CurWait),A
RET NZ ;¥é¥ ­¥ ¢à¥¬ï
LD A,(CursPos+1)
INC A
LD L,A
LD H,0x00 ;’¥ª.§­ ª®¬¥áâ®
ADD HL,HL
ADD HL,HL
ADD HL,HL
EX DE,HL
LD HL,NewShift ;‘¬¥é.¢ ¡ãä¥à¥
LD A,(CursPos+1)
ADD A,L
LD L,A
JR NC,.L2
INC H
.L2 LD A,0x00 ;<3B>®¬¥à ⥪ã饣® ªãàá®à 
CurCurs EQU $-1
XOR 0x01 ;Œ¥­ï¥¬ ªãàá®à
LD (CurCurs),A
LD A,(HL)
JR Z,.L1 ;<3B>¥ç â ¥¬
LD A,0xAB;"<"
.L1 LD HL,TCursor
LD (HL),A
LD BC,0x011C
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
LD A,0x0C ;ަ¨¤ ­¨¥ ¤«ï ᬥ­ë ªãàá®à 
LD (CurWait),A
RET
TCursor DEFB " "
;Š« ¢¨è  ENTER
HGTenter SUB A ;<3B>ਠ®è¨¡ª¥ ¢¥à­¥¬áï á ªãàá®à®¬
LD (CursPos+1),A ;¢ ­ã«¥¢®© ¯®§¨æ¨¨
LD BC,NewShift ;<3B>ãä¥à áâப¨
CALL GetHexNum32 ;<3B>¥à¥¢®¤¨¬ ⥪áâ ¢ 32¡¨â ç¨á«®
JP C,HGoToRet ;CY - ᨭ⠪á.®è¨¡ª 
LD C,E
LD B,D
LD A,L ;€¤à¥á ªà â­ë© 16
AND 0xF0
LD L,A
EX DE,HL ;‘¬¥é.¢ BC+DE
LD HL,(FileLenght) ;<3B>஢¥à塞,ç⮠ᬥ饭¨¥ ¢
OR A ;¯à¥¤¥« å ä ©« 
SBC HL,DE
LD HL,(FileLenght+2)
SBC HL,BC
JR C,HGTent ;CY-§  ¯à¥¤¥« ¬¨
JR NZ,HGTent1 ;NZ-¢ ¯à¥¤¥« å
LD A,D
OR E
JR NZ,HGTent1 ;NZ-¢ ¯à¥¤¥« å
HGTent LD HL,(FileLenght)
LD BC,0x0010
OR A
SBC HL,BC ;ᬥé.=¯®á«¥¤­ïï áâப  ä ©«  16 ¡ ©â
EX DE,HL
LD HL,(FileLenght+2)
JR NC,.L1
DEC HL
.L1 LD C,L
LD B,H
HGTent1 LD (FileShift),DE
LD (FileShift+2),BC
CALL PrnHEXpage ;<3B>¥ç â ¥¬ áâà ­¨æã
RET
;<3B> ¦ â Escape
HGTescape LD HL,NewShift ;<3B>ãä¥à áâப¨
PUSH HL
LD A,(FileShift+3) ;‡ ­®á¨¬ ⥪.ᬥ饭¨¥
CALL PutHexNumb
LD A,(FileShift+2)
CALL PutHexNumb
LD A,(FileShift+1)
CALL PutHexNumb
LD A,(FileShift)
CALL PutHexNumb
POP HL
LD DE,0x0008
LD BC,0x081C
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
CALL JUMPS.ResFire
RET ;‚ë室¨¬
NewShift DEFB " ",0
;<3B>à®æ¥¤ãà  ª®­¢¥àâ¨à®¢ ­¨ï 32¡¨â®¢®£® è¥áâ­.⥪á⮢®£® ç¨á« 
;<3B>  ¢å®¤:
; BC - €¤à¥á ¡ãä¥à  á ⥪á⮬ (0-ª®­¥æ ¡ãä¥à )
;<3B>  ¢ë室:
; DE+HL - —¨á«® 32¡¨â
; CY - ᨭ⠪á¨ç¥áª ï ®è¨¡ª 
GetHexNum32 LD HL,0x0000
LD E,L
LD D,H
GetHNlp LD A,(BC)
INC BC
OR A
RET Z
CP " "
JR Z,GetHNlp
CP 0x61
JR C,.L1
SUB 0x20
.L1 CP 0x30
RET C
CP 0x47
CCF
RET C
SUB 0x30
CP 0x0A
JR C,GetHNum
SUB 0x07
CP 0x0A
RET C
GetHNum ADD HL,HL
EX DE,HL
ADC HL,HL
EX DE,HL
ADD HL,HL
EX DE,HL
ADC HL,HL
EX DE,HL
ADD HL,HL
EX DE,HL
ADC HL,HL
EX DE,HL
ADD HL,HL
EX DE,HL
ADC HL,HL
EX DE,HL
OR L
LD L,A
JR GetHNlp