mirror of
https://github.com/Tolik-Trek/FORMAT.git
synced 2026-06-15 09:21:40 +03:00
...
This commit is contained in:
parent
5bf7bd2b68
commit
fa0375aad3
2
data.z80
2
data.z80
@ -50,7 +50,7 @@ FAT_TYPES: FAT_TYPES_LINE #0800, 32768, CONSTANTS.FAT32 ; > 32768
|
|||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
VARIABLES EQU $
|
VARIABLES EQU $
|
||||||
.FAT_TYPE BYTE CONSTANTS.FAT12 ; [x]
|
.FAT_TYPE BYTE CONSTANTS.FAT12 ; [x]
|
||||||
.CurrentDrive DB 0 ; [x]
|
.CurrentDrive DB #FF ; [x]
|
||||||
.VOLUME_SIZE_BYTES BLOCK 5,0 ; [ ]
|
.VOLUME_SIZE_BYTES BLOCK 5,0 ; [ ]
|
||||||
;.FatFDD_ReservedSectors WORD 1
|
;.FatFDD_ReservedSectors WORD 1
|
||||||
;.FatHDD_ReservedSectors WORD 8
|
;.FatHDD_ReservedSectors WORD 8
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
9
|
31
|
||||||
446
format.asm
446
format.asm
@ -83,7 +83,7 @@ reserved_sectors = ( ((.HIDDEN + min_last_sector) & #0F)>0 ) * #10) - .HIDDEN
|
|||||||
INCLUDE 'shared_includes/constants/bios_equ.inc'
|
INCLUDE 'shared_includes/constants/bios_equ.inc'
|
||||||
INCLUDE 'shared_includes/constants/dss_equ.inc'
|
INCLUDE 'shared_includes/constants/dss_equ.inc'
|
||||||
INCLUDE 'shared_includes/structures/FileSystem.inc'
|
INCLUDE 'shared_includes/structures/FileSystem.inc'
|
||||||
INCLUDE 'version.ini'
|
INCLUDE 'version.inc'
|
||||||
|
|
||||||
; Standart EQU section
|
; Standart EQU section
|
||||||
;---------------------------------------------------------------------[]
|
;---------------------------------------------------------------------[]
|
||||||
@ -909,65 +909,56 @@ MAKE_LABEL_IN_DIR:
|
|||||||
|
|
||||||
|
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
|
/*
|
||||||
|
|
||||||
PARSE_CMD: LD A,(HL)
|
PARSE_CMD: LD A,(HL)
|
||||||
|
INC HL
|
||||||
INC HL
|
INC HL
|
||||||
AND A
|
AND A
|
||||||
JP Z,SHOW_VERSION
|
JP Z,SHOW_VERSION
|
||||||
;
|
;
|
||||||
CALL .MAIN
|
CALL .MAIN
|
||||||
JP C,STOP_ERROR
|
RET NC
|
||||||
RET
|
JP STOP_ERROR
|
||||||
;
|
;
|
||||||
.MAIN: PUSH HL
|
.MAIN: PUSH HL
|
||||||
LD BC,Dss.EX_Path.GET_ALL
|
LD BC,Dss.EX_Path.GET_ALL
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
RET C
|
JP C,STOP_ERROR
|
||||||
; ¬ 㦠áâப ¢ ª®â®à®© ¥áâì ¤à ©¢, ® ¥â ¯ãâ¨
|
; ¬ 㦠áâப ¢ ª®â®à®© ¥áâì ¤à ©¢, ® ¥â ¯ãâ¨
|
||||||
AND %0000'1100
|
AND %0000'1100
|
||||||
XOR %0000'1000
|
XOR %0000'1000
|
||||||
RET NZ
|
|
||||||
; ¤®áâ ñ¬ ¨¬ï ¤à ©¢ (®® ¡¥§ ª«îç "/")
|
|
||||||
POP HL
|
|
||||||
PUSH HL
|
|
||||||
LD DE,SECTOR_BUFFER
|
|
||||||
LD BC,Dss.EX_Path.GET_DRIVE
|
|
||||||
RST ToDSS
|
|
||||||
RET C
|
|
||||||
;
|
|
||||||
LD (VARIABLES.CurrentDrive),A
|
|
||||||
; ⮫쪮 ¤«ï ⮣®, ç⮡ ®¡®¢¨âì ¯ à ¬¥âàë ¤à ©¢ (¢¤à㣠¤¨áª¥âã ᬥ¨«¨?)
|
|
||||||
LD C,Dss.ChDisk
|
|
||||||
RST ToDSS
|
|
||||||
JR NC,.no_err_drv
|
|
||||||
;
|
|
||||||
CP DSS_Error.sys.MEDIA_CHANGED
|
|
||||||
JP NZ,STOP_ERROR
|
JP NZ,STOP_ERROR
|
||||||
|
|
||||||
; ¯¥à¥¡¨à ¥¬ ª«îç¨ "/"
|
; ¯¥à¥¡¨à ¥¬ ª«îç¨ "/"
|
||||||
.no_err_drv: POP HL
|
.loop: POP HL
|
||||||
.loop: LD A,(HL)
|
LD DE,SECTOR_BUFFER
|
||||||
INC HL
|
LD C,Dss.GSwitch
|
||||||
AND A
|
RST ToDSS
|
||||||
RET Z
|
PUSH HL
|
||||||
;
|
;
|
||||||
|
LD A,(SECTOR_BUFFER)
|
||||||
CP '/' ;
|
CP '/' ;
|
||||||
JR Z,.SET_KEY
|
JR Z,.SET_KEY
|
||||||
;
|
;
|
||||||
CP ' '
|
AND A
|
||||||
JR Z,.loop
|
EX DE,HL
|
||||||
|
LD HL,(SECTOR_BUFFER + 1)
|
||||||
|
LD BC,-':'
|
||||||
|
ADC HL,BC
|
||||||
|
EX DE,HL
|
||||||
|
JR Z,.get_drv
|
||||||
JP STOP_ERROR
|
JP STOP_ERROR
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
.SET_KEY: LD A,(HL)
|
.SET_KEY: LD HL,SECTOR_BUFFER+1
|
||||||
|
LD A,(HL)
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
INC HL
|
INC HL
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
AND A
|
AND A
|
||||||
JR Z,.cont_set
|
JP NZ,STOP_ERROR ; ¥¯à ¢¨«ìë© ª«îç
|
||||||
;
|
|
||||||
CP ' '
|
|
||||||
JR Z,.cont_set
|
|
||||||
JP STOP_ERROR ; ¥¯à ¢¨«ìë© ª«îç
|
|
||||||
;
|
;
|
||||||
.cont_set: EX AF,AF'
|
.cont_set: EX AF,AF'
|
||||||
LD IX,KEYS_PARAMETERS.TABLE
|
LD IX,KEYS_PARAMETERS.TABLE
|
||||||
@ -994,6 +985,146 @@ PARSE_CMD: LD A,(HL)
|
|||||||
.next: ADD IX,DE
|
.next: ADD IX,DE
|
||||||
DJNZ .loop_key
|
DJNZ .loop_key
|
||||||
JP STOP_ERROR ; ¥¯à ¢¨«ìë© ª«îç
|
JP STOP_ERROR ; ¥¯à ¢¨«ìë© ª«îç
|
||||||
|
;
|
||||||
|
.get_drv: ; ¤®áâ ñ¬ ¨¬ï ¤à ©¢ (®® ¡¥§ ª«îç "/")
|
||||||
|
LD A,(VARIABLES.CurrentDrive)
|
||||||
|
INC A
|
||||||
|
JP NZ,STOP_ERROR ; ¥¯à ¢¨«ìë© ª«îç
|
||||||
|
;
|
||||||
|
;PUSH HL
|
||||||
|
LD HL,SECTOR_BUFFER
|
||||||
|
LD DE,SECTOR_BUFFER + 3
|
||||||
|
LD BC,Dss.EX_Path.GET_DRIVE
|
||||||
|
RST ToDSS
|
||||||
|
JP C,STOP_ERROR ; ¥¯à ¢¨«ìë© ¤à ©¢
|
||||||
|
;
|
||||||
|
LD (VARIABLES.CurrentDrive),A
|
||||||
|
; ⮫쪮 ¤«ï ⮣®, ç⮡ ®¡®¢¨âì ¯ à ¬¥âàë ¤à ©¢ (¢¤à㣠¤¨áª¥âã ᬥ¨«¨?)
|
||||||
|
LD C,Dss.ChDisk
|
||||||
|
RST ToDSS
|
||||||
|
JR NC,.loop
|
||||||
|
;
|
||||||
|
CP DSS_Error.drv.UNKNOWN_FORMAT
|
||||||
|
JR Z,.loop
|
||||||
|
JP STOP_ERROR ; ¥¯à ¢¨«ìë© ¤à ©¢
|
||||||
|
; .no_err_drv: POP HL
|
||||||
|
; RET
|
||||||
|
*/
|
||||||
|
PARSE_CMD: LD A,(HL)
|
||||||
|
AND A
|
||||||
|
JP Z,SHOW_VERSION ; ¤«¨ CMD áâப¨ ã«¥¢ ï
|
||||||
|
;
|
||||||
|
INC HL
|
||||||
|
INC HL
|
||||||
|
CALL .MAIN
|
||||||
|
RET NC
|
||||||
|
JP STOP_ERROR
|
||||||
|
;
|
||||||
|
.MAIN: PUSH HL
|
||||||
|
LD BC,Dss.EX_Path.GET_ALL
|
||||||
|
RST ToDSS
|
||||||
|
JP C,STOP_ERROR
|
||||||
|
; ¬ 㦠áâப ¢ ª®â®à®© ¥áâì ¤à ©¢, ® ¥â ¯ãâ¨
|
||||||
|
AND %0000'1100
|
||||||
|
XOR %0000'1000
|
||||||
|
JP NZ,STOP_ERROR
|
||||||
|
;
|
||||||
|
POP HL
|
||||||
|
LD A,(HL)
|
||||||
|
AND #1101'1111
|
||||||
|
SUB 'A'
|
||||||
|
JP C,STOP_ERROR
|
||||||
|
CALL .get_drv
|
||||||
|
;
|
||||||
|
|
||||||
|
; ¯¥à¥¡¨à ¥¬ ª«îç¨ "/"
|
||||||
|
.loop: CALL .skip_space
|
||||||
|
RET Z
|
||||||
|
;
|
||||||
|
CP '/' ;
|
||||||
|
JP NZ,STOP_ERROR
|
||||||
|
;
|
||||||
|
; AND A
|
||||||
|
; EX DE,HL
|
||||||
|
; LD HL,(SECTOR_BUFFER + 1)
|
||||||
|
; LD BC,-':'
|
||||||
|
; ADC HL,BC
|
||||||
|
; EX DE,HL
|
||||||
|
; JR Z,.get_drv
|
||||||
|
; JP STOP_ERROR
|
||||||
|
;
|
||||||
|
;
|
||||||
|
.SET_KEY: INC HL
|
||||||
|
LD A,(HL)
|
||||||
|
EX AF,AF'
|
||||||
|
INC HL
|
||||||
|
LD A,(HL)
|
||||||
|
AND A
|
||||||
|
JR Z,.cont_set
|
||||||
|
CP ' '
|
||||||
|
JP NZ,STOP_ERROR
|
||||||
|
;
|
||||||
|
.cont_set: EX AF,AF'
|
||||||
|
LD IX,KEYS_PARAMETERS.TABLE
|
||||||
|
LD B,KEYS_PARAMETERS.TABLE.Elements
|
||||||
|
LD DE,KEYS_PARAMETERS.KEYS_STR
|
||||||
|
;
|
||||||
|
.loop_key: CP (IX + KEYS_PARAMETERS.KEYS_STR.Key)
|
||||||
|
JR NZ,.next
|
||||||
|
;
|
||||||
|
;EX DE,HL
|
||||||
|
LD E,(IX + KEYS_PARAMETERS.KEYS_STR.Procedure)
|
||||||
|
LD D,(IX + KEYS_PARAMETERS.KEYS_STR.Procedure + 1)
|
||||||
|
LD A,E
|
||||||
|
OR D
|
||||||
|
CALL NZ,JP_HL
|
||||||
|
;EX DE,HL
|
||||||
|
LD A,KEYS_PARAMETERS.Status.On
|
||||||
|
JR NC,.set_stat
|
||||||
|
;
|
||||||
|
LD A,KEYS_PARAMETERS.Status.Ignored
|
||||||
|
.set_stat: LD (IX + KEYS_PARAMETERS.KEYS_STR.Status),A
|
||||||
|
JR .loop
|
||||||
|
;
|
||||||
|
.next: ADD IX,DE
|
||||||
|
DJNZ .loop_key
|
||||||
|
JP STOP_ERROR ; ¥¯à ¢¨«ìë© ª«îç
|
||||||
|
;
|
||||||
|
.get_drv: ; ¤®áâ ñ¬ ¨¬ï ¤à ©¢ (®® ¡¥§ ª«îç "/")
|
||||||
|
;LD A,(VARIABLES.CurrentDrive)
|
||||||
|
;INC A
|
||||||
|
;JP NZ,STOP_ERROR ; ¥¯à ¢¨«ìë© ª«îç
|
||||||
|
;
|
||||||
|
;PUSH HL
|
||||||
|
;LD HL,SECTOR_BUFFER
|
||||||
|
;LD DE,SECTOR_BUFFER + 3
|
||||||
|
;LD BC,Dss.EX_Path.GET_DRIVE
|
||||||
|
;RST ToDSS
|
||||||
|
;JP C,STOP_ERROR ; ¥¯à ¢¨«ìë© ¤à ©¢
|
||||||
|
;
|
||||||
|
PUSH HL
|
||||||
|
LD (VARIABLES.CurrentDrive),A
|
||||||
|
;!TODO § ¯®¬¨ âì ⥪ã騩 ¯ãâì ¨ ¢®ááâ ¢«¨¢ âì ¯®á«¥ ¢ë室
|
||||||
|
;
|
||||||
|
; ⮫쪮 ¤«ï ⮣®, ç⮡ ®¡®¢¨âì ¯ à ¬¥âàë ¤à ©¢ (¢¤à㣠¤¨áª¥âã ᬥ¨«¨?)
|
||||||
|
LD C,Dss.ChDisk
|
||||||
|
RST ToDSS
|
||||||
|
POP HL
|
||||||
|
INC HL
|
||||||
|
INC HL
|
||||||
|
RET NC
|
||||||
|
;
|
||||||
|
CP DSS_Error.drv.UNKNOWN_FORMAT
|
||||||
|
RET Z
|
||||||
|
JP STOP_ERROR ; ¥¯à ¢¨«ìë© ¤à ©¢
|
||||||
|
;
|
||||||
|
.skip_space: LD A,(HL)
|
||||||
|
AND A
|
||||||
|
RET Z
|
||||||
|
INC HL
|
||||||
|
CP ' '
|
||||||
|
RET NZ
|
||||||
|
JR .skip_space
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
@ -1009,7 +1140,7 @@ SHOW_VERSION: LD SP,(STOP_ERROR.Save_SP)
|
|||||||
LD C,Dss.PChars
|
LD C,Dss.PChars
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;
|
;
|
||||||
LD BC, 256*DSS_Error.sys.INVALID_DRIVE + Dss.Exit
|
LD BC,Dss.Exit ; + 256*DSS_Error.sys.INVALID_DRIVE
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
|
|
||||||
@ -1031,8 +1162,207 @@ GET_KEY_FAT: DI
|
|||||||
|
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
;!FIXIT
|
;!FIXIT
|
||||||
SET_LABEL: DI
|
/*
|
||||||
HALT
|
SET_LABEL: POP HL
|
||||||
|
EX (SP),HL
|
||||||
|
; LD DE,SECTOR_BUFFER
|
||||||
|
; LD C,Dss.GSwitch
|
||||||
|
; RST ToDSS
|
||||||
|
; EX (SP),HL
|
||||||
|
; PUSH HL
|
||||||
|
;
|
||||||
|
;LD HL,SECTOR_BUFFER
|
||||||
|
; LD A,(HL)
|
||||||
|
; INC HL
|
||||||
|
; OR A
|
||||||
|
; SCF
|
||||||
|
; RET C ; ª«îç ¡¥§ ¬¥âª¨
|
||||||
|
;
|
||||||
|
LD A,(HL)
|
||||||
|
INC HL
|
||||||
|
CP '"'
|
||||||
|
SCF
|
||||||
|
RET NZ ; ¬¥âª ç¨ ¥âáï ¥ á ª ¢ë窨
|
||||||
|
;
|
||||||
|
LD DE,SECTOR_BUFFER ; á®§¤ ñ¬ ¬¥âªã âãâ, ¥á«¨ ᨬ¢®«ë ¢ ¯®à浪¥
|
||||||
|
LD C,FAT_PARAMETERS.LABEL.Size
|
||||||
|
LD B,C
|
||||||
|
LD A,(HL)
|
||||||
|
CP ' '+1
|
||||||
|
RET C ; no_name
|
||||||
|
;
|
||||||
|
CALL .loop1
|
||||||
|
CALL C,.skip_label
|
||||||
|
EX (SP),HL
|
||||||
|
JP (HL)
|
||||||
|
|
||||||
|
;
|
||||||
|
.loop1: LD A,(HL)
|
||||||
|
AND A
|
||||||
|
SCF
|
||||||
|
RET Z
|
||||||
|
;
|
||||||
|
;
|
||||||
|
CP #80
|
||||||
|
JR NC,.sym_ok
|
||||||
|
;
|
||||||
|
CP #22
|
||||||
|
JR Z,.end_label
|
||||||
|
CP #7C
|
||||||
|
SCF
|
||||||
|
RET Z ; no_name
|
||||||
|
CP #2A
|
||||||
|
JR C,.check_3A
|
||||||
|
CP #30
|
||||||
|
JR NC,.check_3A
|
||||||
|
CP #2D
|
||||||
|
JR Z,.sym_ok
|
||||||
|
SCF
|
||||||
|
RET ; no_name
|
||||||
|
;
|
||||||
|
.check_3A: CP #3A
|
||||||
|
JR C,.check_5B
|
||||||
|
CP #40
|
||||||
|
JR NC,.check_5B
|
||||||
|
RET ; no_name
|
||||||
|
|
||||||
|
.check_5B: CP #5B
|
||||||
|
JR C,.sym_ok
|
||||||
|
CP #5E
|
||||||
|
RET C ; no_name
|
||||||
|
.sym_ok: LD (DE),A
|
||||||
|
INC HL
|
||||||
|
INC DE
|
||||||
|
DJNZ .loop1
|
||||||
|
LD A,(HL)
|
||||||
|
CP '"'
|
||||||
|
SCF
|
||||||
|
RET NZ
|
||||||
|
;
|
||||||
|
.end_label: LD A,B
|
||||||
|
CP C
|
||||||
|
SCF
|
||||||
|
RET Z ; áâ ¤ àâ ï ¬¥âª
|
||||||
|
;
|
||||||
|
INC B ; ç⮡ ¥ âà â¨âì ¡ ©âë ¯à®¢¥àªã ®«ì
|
||||||
|
EX DE,HL
|
||||||
|
.loop2: LD (HL)," "
|
||||||
|
INC HL
|
||||||
|
DJNZ .loop2
|
||||||
|
INC DE
|
||||||
|
PUSH DE
|
||||||
|
; B=0, C=FAT_PARAMETERS.LABEL.Size
|
||||||
|
LD HL,SECTOR_BUFFER
|
||||||
|
LD DE,FAT_PARAMETERS.LABEL
|
||||||
|
LDIR
|
||||||
|
POP HL
|
||||||
|
AND A
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.skip_label: LD A,(HL)
|
||||||
|
AND A
|
||||||
|
SCF
|
||||||
|
RET Z
|
||||||
|
;
|
||||||
|
CP '/'
|
||||||
|
SCF
|
||||||
|
RET Z
|
||||||
|
INC HL
|
||||||
|
JR .skip_label
|
||||||
|
*/
|
||||||
|
SET_LABEL: LD HL,SECTOR_BUFFER
|
||||||
|
EX DE,HL
|
||||||
|
;
|
||||||
|
LD A,(HL)
|
||||||
|
INC HL
|
||||||
|
CP ' '
|
||||||
|
JR NZ,.skip_label ; ¥â ¯à®¡¥« ¬¥¦¤ã ª«î箬 ¨ ¬¥âª®©
|
||||||
|
;
|
||||||
|
LD A,(HL)
|
||||||
|
INC HL
|
||||||
|
CP '"'
|
||||||
|
JR NZ,.skip_label ; ¬¥âª ç¨ ¥âáï ¥ á ª ¢ë窨
|
||||||
|
;
|
||||||
|
LD DE,SECTOR_BUFFER ; á®§¤ ñ¬ ¬¥âªã âãâ, ¥á«¨ ᨬ¢®«ë ¢ ¯®à浪¥
|
||||||
|
LD C,FAT_PARAMETERS.LABEL.Size
|
||||||
|
LD B,C
|
||||||
|
LD A,(HL)
|
||||||
|
CP ' '
|
||||||
|
JR Z,.skip_label ; no_name
|
||||||
|
;
|
||||||
|
CALL .loop1
|
||||||
|
RET NC
|
||||||
|
JR .skip_label
|
||||||
|
;
|
||||||
|
.loop1: LD A,(HL)
|
||||||
|
AND A
|
||||||
|
JR Z,.skip_label ; no_name
|
||||||
|
;
|
||||||
|
CP #80
|
||||||
|
JR NC,.sym_ok
|
||||||
|
;
|
||||||
|
CP #22
|
||||||
|
JR Z,.end_label
|
||||||
|
CP #7C
|
||||||
|
JR Z,.skip_label ; no_name
|
||||||
|
;
|
||||||
|
CP #2A
|
||||||
|
JR C,.check_3A
|
||||||
|
CP #30
|
||||||
|
JR NC,.check_3A
|
||||||
|
CP #2D
|
||||||
|
JR Z,.sym_ok
|
||||||
|
JR .skip_label ; no_name
|
||||||
|
;
|
||||||
|
.check_3A: CP #3A
|
||||||
|
JR C,.check_5B
|
||||||
|
CP #40
|
||||||
|
JR C,.skip_label ; no_name
|
||||||
|
;
|
||||||
|
.check_5B: CP #5B
|
||||||
|
JR C,.sym_ok
|
||||||
|
CP #5E
|
||||||
|
JR C,.skip_label ; no_name
|
||||||
|
;
|
||||||
|
.sym_ok: LD (DE),A
|
||||||
|
INC HL
|
||||||
|
INC DE
|
||||||
|
DJNZ .loop1
|
||||||
|
LD A,(HL)
|
||||||
|
CP '"'
|
||||||
|
SCF
|
||||||
|
RET NZ
|
||||||
|
;
|
||||||
|
.end_label: LD A,B
|
||||||
|
CP C
|
||||||
|
SCF
|
||||||
|
RET Z ; áâ ¤ àâ ï ¬¥âª
|
||||||
|
;
|
||||||
|
INC B ; ç⮡ ¥ âà â¨âì ¡ ©âë ¯à®¢¥àªã ®«ì
|
||||||
|
EX DE,HL
|
||||||
|
.loop2: LD (HL)," "
|
||||||
|
INC HL
|
||||||
|
DJNZ .loop2
|
||||||
|
INC DE
|
||||||
|
PUSH DE
|
||||||
|
; B=0, C=FAT_PARAMETERS.LABEL.Size
|
||||||
|
LD HL,SECTOR_BUFFER
|
||||||
|
LD DE,FAT_PARAMETERS.LABEL
|
||||||
|
LDIR
|
||||||
|
POP HL
|
||||||
|
AND A
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.skip_label: LD A,(HL)
|
||||||
|
AND A
|
||||||
|
SCF
|
||||||
|
RET Z
|
||||||
|
;
|
||||||
|
INC HL
|
||||||
|
CP '"'
|
||||||
|
SCF
|
||||||
|
RET Z
|
||||||
|
JR .skip_label
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
@ -1059,7 +1389,6 @@ STRING_TO_WORD: CALL STR_TO_WORD
|
|||||||
; DE - addr next after string decimal
|
; DE - addr next after string decimal
|
||||||
;!FIXIT ¯à®¢¥àª ¯ãáâãî áâபã
|
;!FIXIT ¯à®¢¥àª ¯ãáâãî áâபã
|
||||||
STR_TO_WORD: LD HL,0
|
STR_TO_WORD: LD HL,0
|
||||||
|
|
||||||
.loop: LD B,H
|
.loop: LD B,H
|
||||||
LD C,L
|
LD C,L
|
||||||
;
|
;
|
||||||
@ -1103,28 +1432,27 @@ STR_TO_WORD: LD HL,0
|
|||||||
;<3B> ¢ë室:
|
;<3B> ¢ë室:
|
||||||
; ¡ãä¥à á ⥪áâ.ç¨á«®¬
|
; ¡ãä¥à á ⥪áâ.ç¨á«®¬
|
||||||
IFUSED PutHexNumb
|
IFUSED PutHexNumb
|
||||||
PutHexNumb
|
PutHexNumb: PUSH AF
|
||||||
PUSH AF
|
RRCA
|
||||||
RRCA
|
RRCA
|
||||||
RRCA
|
RRCA
|
||||||
RRCA
|
RRCA
|
||||||
RRCA
|
AND #0F
|
||||||
AND #0F
|
ADD A,#90
|
||||||
ADD A,#90
|
DAA
|
||||||
DAA
|
ADC A,#40
|
||||||
ADC A,#40
|
DAA
|
||||||
DAA
|
LD (HL),A
|
||||||
LD (HL),A
|
INC L
|
||||||
INC L
|
POP AF
|
||||||
POP AF
|
AND #0F
|
||||||
AND #0F
|
ADD A,#90
|
||||||
ADD A,#90
|
DAA
|
||||||
DAA
|
ADC A,#40
|
||||||
ADC A,#40
|
DAA
|
||||||
DAA
|
LD (HL),A
|
||||||
LD (HL),A
|
INC L
|
||||||
INC L
|
RET
|
||||||
RET
|
|
||||||
ENDIF
|
ENDIF
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user