mirror of
https://github.com/Tolik-Trek/ZX-SP-ROMs.git
synced 2026-06-15 09:21:45 +03:00
in progress: current dir for TR-DOS HDD
This commit is contained in:
parent
03cdbeca7d
commit
685e382582
61
SP_TRDOS.ASM
61
SP_TRDOS.ASM
@ -49,24 +49,16 @@ AUTO_411E EQU #411E
|
||||
AUTO_4130 EQU #4130
|
||||
AUTO_4140 EQU #4140
|
||||
AUTO_41FF EQU #41FF
|
||||
AUTO_5220 EQU #5220
|
||||
AUTO_58E8 EQU #58E8
|
||||
|
||||
AUTO_5E34 EQU #5E34
|
||||
AUTO_5F00 EQU #5F00
|
||||
AUTO_5F10 EQU #5F10
|
||||
AUTO_5F12 EQU #5F12
|
||||
AUTO_6000 EQU #6000
|
||||
PORT_128 EQU #7FFD
|
||||
AUTO_A1DB EQU #A1DB
|
||||
AUTO_B0ED EQU #B0ED
|
||||
AUTO_B8ED EQU #B8ED
|
||||
AUTO_C000 EQU #C000
|
||||
AUTO_C130 EQU #C130
|
||||
AUTO_C308 EQU #C308
|
||||
AUTO_C916 EQU #C916
|
||||
AUTO_FE15 EQU #FE15
|
||||
AUTO_FF00 EQU #FF00
|
||||
|
||||
;****************************************
|
||||
START: DI
|
||||
@ -526,7 +518,7 @@ AUTO_031A:
|
||||
AUTO_0320:
|
||||
INC C
|
||||
LD D,A
|
||||
LD A,22 ; 21 !!! Add new comand !!
|
||||
LD A,TRDOS_CMD.LIST.Size
|
||||
CP C
|
||||
JP C,AUTO_01D3 ; …‘‹ˆ <20>… <20>€‰„…<E2809E>Ž-‚›‰’ˆ
|
||||
LD A,D
|
||||
@ -561,10 +553,15 @@ AUTO_0359:
|
||||
SET 7,(HL)
|
||||
POP HL
|
||||
JP (HL)
|
||||
NAME_TRD:
|
||||
DB 127," 1986 Technology Research. "
|
||||
DB "version 5.05 by Makarchenco Ivan. "
|
||||
DB " <PeterS>",0,0
|
||||
|
||||
;-----------------------------------------------------------------------
|
||||
_mInfoBLOCK #03AC-$,#FF
|
||||
; NAME_TRD:
|
||||
; DB 127," 1986 Technology Research. "
|
||||
; DB "version 5.05 by Makarchenco Ivan. "
|
||||
; DB " <PeterS>",0,0
|
||||
;-----------------------------------------------------------------------
|
||||
|
||||
AUTO_03AC:
|
||||
CALL AUTO_03FD
|
||||
CALL PRINT_CR
|
||||
@ -1153,9 +1150,9 @@ WG93_EXE_:
|
||||
INCLUDE 'trdos/tr_msd_3.asz'
|
||||
|
||||
|
||||
_mInfoBLOCK #0B00-$,255
|
||||
; _mInfoBLOCK #0B00-$,255
|
||||
;!TODO russian charset
|
||||
ZG_RUS: DB 3 ; ¨¤¥â¨ä¨ª â®à ¢¥àᨨ TR-DOS ???
|
||||
;ZG_RUS: DB 3 ; ¨¤¥â¨ä¨ª â®à ¢¥àᨨ TR-DOS ???
|
||||
;**************************************
|
||||
INCLUDE 'trdos/tr_msd_2.asz'
|
||||
|
||||
@ -1265,11 +1262,11 @@ AUTO_1059:
|
||||
POP DE
|
||||
POP BC
|
||||
POP HL
|
||||
AND 223
|
||||
AND %1101'1111
|
||||
EI
|
||||
RET
|
||||
AUTO_106E:
|
||||
LD HL,AUTO_58E8
|
||||
LD HL,#58E8 ; ¤à¥á «¨¨¨ âਡã⮢
|
||||
LD B,10
|
||||
AUTO_1073:
|
||||
LD (HL),7
|
||||
@ -1277,15 +1274,13 @@ AUTO_1073:
|
||||
DJNZ AUTO_1073
|
||||
LD (HL),2
|
||||
INC HL
|
||||
LD (HL),22
|
||||
LD (HL),#16
|
||||
INC HL
|
||||
DB 54
|
||||
AUTO_107F:
|
||||
INC (HL)
|
||||
LD (HL),#34
|
||||
INC HL
|
||||
LD (HL),'%'
|
||||
LD (HL),#25
|
||||
INC HL
|
||||
LD (HL),'('
|
||||
LD (HL),#28
|
||||
INC HL
|
||||
LD (HL),7
|
||||
LD HL,AUTO_40F1
|
||||
@ -1448,12 +1443,12 @@ AUTO_1205:
|
||||
PUSH AF
|
||||
CALL Z,AUTO_1D97
|
||||
POP AF
|
||||
CP 17
|
||||
CP 16 + 1
|
||||
JP NC,CMD_ERROR
|
||||
CALL AUTO_1D84
|
||||
LD A,255
|
||||
LD A,#FF
|
||||
LD (ZX_VARS.DISK_1_FLG),A
|
||||
CALL AUTO_1151
|
||||
CALL AUTO_1151 ; !FIXIT ¢ë¤¥«ï¥â ¯ ¬ïâì, ® ¥ ®á¢®¡®¦¤ ¥â
|
||||
LD HL,ZX_VARS.CLEAR_SEC
|
||||
LD DE,(ZX_VARS.VAR_1)
|
||||
LD BC,RST20
|
||||
@ -4276,7 +4271,7 @@ AUTO_25EF:
|
||||
INC HL
|
||||
LD D,(HL)
|
||||
OR A
|
||||
LD HL,AUTO_107F
|
||||
LD HL,ROUTINE.ed_error ;48 basic routine
|
||||
SBC HL,DE
|
||||
JR NZ,AUTO_2626
|
||||
LD SP,(ZX_VARS.ERR_SP)
|
||||
@ -5588,8 +5583,7 @@ AUTO_2FDE:
|
||||
RET
|
||||
|
||||
////////////////////////////////////////////
|
||||
TRDOS_CMD:
|
||||
; ’ ¡«¨æ ª®¬ ¤ TR-DOS.
|
||||
TRDOS_CMD: ; ’ ¡«¨æ ª®¬ ¤ TR-DOS.
|
||||
.LIST: DB ZX_Token.cat
|
||||
DB '*'
|
||||
DB ZX_Token.format
|
||||
@ -5617,9 +5611,8 @@ TRDOS_CMD:
|
||||
;
|
||||
DB ZX_Token.verify
|
||||
DB '/'
|
||||
;;
|
||||
;;
|
||||
.Size EQU $ - TRDOS_CMD.LIST
|
||||
;
|
||||
.LIST.Size EQU $ - TRDOS_CMD.LIST
|
||||
; ’ ¡«¨æ ¤à¥á®¢ ¯®¤¯à®£à ¬¬, ¢ë¯®«ïîé¨å ª®¬ ¤ë TR-DOS.
|
||||
.TABLE: DW CMD_CAT
|
||||
DW CMD_STAR
|
||||
@ -6434,8 +6427,8 @@ READR_X:
|
||||
;*****************************
|
||||
|
||||
NEW_NAME:
|
||||
DB 22,1,3, "* Sprinter TR-DOS v.7.02 *"
|
||||
DB 22,3,6, "(c) 2023 Sprinter Team"
|
||||
DB 22,1,3, "* Sprinter TR-DOS v.7.03 *"
|
||||
DB 22,3,6, "(c) 2024 Sprinter Team"
|
||||
DB 22,5,14, "*R.F.*"
|
||||
DB 22,7,9, "BETA 4Mb",0
|
||||
|
||||
|
||||
@ -20358,6 +20358,4 @@ L3D00: DEFB %00000000
|
||||
DEFB %01000010
|
||||
DEFB %00111100
|
||||
|
||||
END
|
||||
|
||||
|
||||
; END
|
||||
@ -1 +1 @@
|
||||
Subproject commit 4f546cb1d2cd8eeb1aec0de2c3e9902d1bb52fee
|
||||
Subproject commit 77a51684d4d63ad2fdccf416793951df00276b17
|
||||
@ -1,16 +1,110 @@
|
||||
File_Start DEFL $
|
||||
DISPLAY "===================================================="
|
||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||||
|
||||
HDD_PROG:
|
||||
;!TEST 06/01/2024 ã¡¨à ¥¬ «¨è¨¥ ⥫®¤¢¨¦¥¨ï
|
||||
;LD C,BIOS.HDD_INIT and #BF
|
||||
;CALL HD_CMD
|
||||
LD C,BIOS.HDD_INIT
|
||||
CALL EXP_FNS
|
||||
;
|
||||
JP C,HDD_PROG_E
|
||||
LD HL,SYS_PAGE.HD_IDF_ADR.ModelNum
|
||||
LD B,32
|
||||
HDD_PROG_L:
|
||||
DI
|
||||
IN A,(SLOT3)
|
||||
LD D,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD A,L
|
||||
XOR 1
|
||||
LD L,A
|
||||
LD C,(HL)
|
||||
LD A,L
|
||||
XOR 1
|
||||
LD L,A
|
||||
INC HL
|
||||
LD A,D
|
||||
OUT (SLOT3),A
|
||||
; RET_PAGE3
|
||||
EI
|
||||
LD A,C
|
||||
PUSH BC
|
||||
RST #10
|
||||
POP BC
|
||||
DJNZ HDD_PROG_L
|
||||
;!TEST 06/01/2024 ã¡¨à ¥¬ «¨è¨¥ ⥫®¤¢¨¦¥¨ï
|
||||
;LD C,BIOS.HDD_RECAL and #BF
|
||||
;CALL HD_CMD
|
||||
LD C,BIOS.HDD_RECAL
|
||||
CALL EXP_FNS
|
||||
;
|
||||
JP NC,AUTO_03E1
|
||||
|
||||
HDD_ERROR:
|
||||
CALL PRINT_HEX_A
|
||||
LD HL,HD_TX
|
||||
JP AUTO_03E4
|
||||
|
||||
; JP AUTO_03E1
|
||||
|
||||
HDD_PROG_E:
|
||||
LD HL,HD_TX2
|
||||
JP AUTO_03E4
|
||||
|
||||
;
|
||||
HDD_SET:;!TEST
|
||||
.loop: LD A,(DE)
|
||||
INC DE
|
||||
CP " "
|
||||
JR Z,.loop
|
||||
CP "\r"
|
||||
JR Z,.init
|
||||
;
|
||||
DEC DE
|
||||
DEC DE
|
||||
JP CHOOSE_HDD
|
||||
;CALL CHOOSE_HDD
|
||||
;CALL READ_BPB
|
||||
;RET
|
||||
;
|
||||
; [x] new tr-hdd
|
||||
.init: ;CALL CORRECT_CUR_DIR
|
||||
DI
|
||||
IN A,(SLOT3)
|
||||
LD C,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
;
|
||||
LD A,(SYS_PAGE.CURRENT_DIR_HDD)
|
||||
CP #FF
|
||||
JR Z,.skip
|
||||
LD (SYS_PAGE.CURRENT_HDD),A
|
||||
;
|
||||
.skip: ;LD A,(SYS_PAGE.CURRENT_HDD)
|
||||
OR #40
|
||||
PUSH AF
|
||||
LD A,C
|
||||
OUT (SLOT3),A
|
||||
;
|
||||
LD C,BIOS.HDD_INIT
|
||||
CALL EXP_FNS
|
||||
POP AF
|
||||
JP C,HDD_PROG_E
|
||||
;
|
||||
; LD BC,(ZX_VARS.OPER_DISK - 1)
|
||||
; LD A,(ZX_VARS.OPER_DISK)
|
||||
; LD B,A
|
||||
; XOR A
|
||||
LD E,A
|
||||
LD C,BIOS.SET_DISK_REDIR
|
||||
JP EXP_FNS
|
||||
|
||||
;[x] 29/01/2024
|
||||
;¢ë室: A: bit1 - Primary/Secondary, bit0 - master/slave, bit2..3: ¨á¯®«ì§ãî騩áï à §¤¥« ¢ MBR
|
||||
CHOOSE_HDD:
|
||||
PUSH DE
|
||||
LD A,(ZX_VARS.OPER_DISK)
|
||||
LD C,BIOS.GET_DRV_ST
|
||||
CALL EXP_FNS
|
||||
POP DE
|
||||
JR C,.error
|
||||
AND #40 ;!HARDCODE HDD
|
||||
CALL Z,.setUp_HDD
|
||||
;
|
||||
.loop: LD A,(DE)
|
||||
INC DE
|
||||
CP " "
|
||||
@ -18,8 +112,7 @@ CHOOSE_HDD:
|
||||
LD A,(DE)
|
||||
CP "\r"
|
||||
JR Z,.error
|
||||
.cont: ; ®¬¥à à §¤¥«
|
||||
;INC DE
|
||||
; ®¬¥à à §¤¥«
|
||||
LD A,(DE)
|
||||
CP "4"
|
||||
JR NC,.error
|
||||
@ -29,17 +122,6 @@ CHOOSE_HDD:
|
||||
RLA
|
||||
RLA
|
||||
LD C,A
|
||||
; ; master/slave
|
||||
; DEC DE
|
||||
; LD A,(DE)
|
||||
; CP "2"
|
||||
; JR NC,.error
|
||||
; CP "0"
|
||||
; JR C,.error
|
||||
; SUB "0"
|
||||
; RLA
|
||||
; OR C
|
||||
; LD C,A
|
||||
; Primary/Secondary, master/slave
|
||||
DEC DE
|
||||
LD A,(DE)
|
||||
@ -50,20 +132,129 @@ CHOOSE_HDD:
|
||||
SUB "0"
|
||||
OR C
|
||||
;
|
||||
PUSH AF
|
||||
LD C,BIOS.HDD_PART
|
||||
CALL EXP_FNS
|
||||
RET NC
|
||||
POP BC
|
||||
JR C,.error
|
||||
;
|
||||
.error: LD HL,MSG_3
|
||||
JP ERR_EXIT
|
||||
SCF
|
||||
;CALL CORRECT_CUR_DIR
|
||||
CALL RESTORE_CURRENT_DIR
|
||||
;
|
||||
.setUp_HDD:
|
||||
LD A,(ZX_VARS.OPER_DISK)
|
||||
LD B,A
|
||||
XOR A
|
||||
LD C,A ; ®¡ã«¨âì C
|
||||
LD A,B
|
||||
;OR #40
|
||||
LD B,A
|
||||
;
|
||||
; PUSH AF
|
||||
; LD A,(ZX_VARS.OPER_DISK)
|
||||
; LD C,BIOS.GET_DRV_ST
|
||||
; CALL EXP_FNS
|
||||
; POP BC
|
||||
; JR C,.error
|
||||
; ;
|
||||
; AND #40 ;!HARDCODE HDD
|
||||
; LD C,A ; ®¡ã«¨âì C
|
||||
; LD A,B
|
||||
; RET NZ
|
||||
;
|
||||
PUSH BC
|
||||
LD BC,(ZX_VARS.OPER_DISK - 1)
|
||||
; LD B,A
|
||||
; XOR A
|
||||
LD C,BIOS.HDD_TO_DRV
|
||||
PUSH DE
|
||||
CALL EXP_FNS
|
||||
POP DE
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
.error: ;AND %1101'1111
|
||||
;CP "*"
|
||||
;JR Z,.set_from_sys_page
|
||||
LD HL,MSG_3
|
||||
JP ERR_EXIT
|
||||
;
|
||||
; .setUp_HDD:
|
||||
; PUSH BC
|
||||
; LD A,(ZX_VARS.OPER_DISK)
|
||||
; LD B,A
|
||||
; XOR A
|
||||
; LD C,BIOS.HDD_TO_DRV
|
||||
; CALL EXP_FNS
|
||||
; POP BC
|
||||
; RET
|
||||
;
|
||||
;.set_from_sys_page:
|
||||
; !!!
|
||||
|
||||
|
||||
; CF=1: skip resest CURRENT_HDD
|
||||
; CF=0: resest CURRENT_HDD
|
||||
|
||||
|
||||
; [x] new tr-hdd
|
||||
RESTORE_CURRENT_DIR:
|
||||
PUSH AF
|
||||
;
|
||||
LD C,BIOS.GET_DISK_REDIR
|
||||
CALL EXP_FNS
|
||||
CP #40
|
||||
JR C,.exit_Res_Dir
|
||||
AND #0F
|
||||
LD H,A
|
||||
;
|
||||
IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
;
|
||||
LD A,(SYS_PAGE.CURRENT_DIR_HDD)
|
||||
CP H
|
||||
JR NZ,.exit_Res_Dir
|
||||
|
||||
LD HL,(SYS_PAGE.CURRENT_DIR_SEC_L)
|
||||
LD DE,(SYS_PAGE.CURRENT_DIR_SEC_H)
|
||||
LD A,H
|
||||
OR L
|
||||
OR D
|
||||
OR E
|
||||
JR Z,.exit_Res_Dir
|
||||
;
|
||||
LD (SYS_PAGE.MSD_CAT_SEC),HL
|
||||
LD (SYS_PAGE.MSD_CAT_SEC2),DE
|
||||
.exit_Res_Dir:
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
|
||||
|
||||
; [x] new tr-hdd
|
||||
; TO INIT by SPECTRUM.EXE:
|
||||
; .CURRENT_DIR_SEC_L EQU #C196 ; word
|
||||
; .CURRENT_DIR_SEC_H EQU #C198 ; word
|
||||
; .CURRENT_DIR_HDD EQU #C19A
|
||||
; .CURRENT_HDD EQU #C12D
|
||||
|
||||
; CORRECT_CUR_DIR:
|
||||
; DI
|
||||
; IN A,(SLOT3)
|
||||
; LD C,A
|
||||
; LD A,SYS_PAGE
|
||||
; OUT (SLOT3),A
|
||||
; LD A,#FF
|
||||
; JR C,.skip
|
||||
; LD (SYS_PAGE.CURRENT_HDD),A
|
||||
; .skip: INC A
|
||||
; LD H,A
|
||||
; LD L,A
|
||||
; LD (SYS_PAGE.CURRENT_DIR_SEC_L),HL
|
||||
; LD (SYS_PAGE.CURRENT_DIR_SEC_H),HL
|
||||
; LD A,C
|
||||
; OUT (SLOT3),A
|
||||
; RET
|
||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||||
DISPLAY "TR_HDD_4.ASZ size: ",/A,$-File_Start
|
||||
DISPLAY "===================================================="
|
||||
@ -1,7 +1,9 @@
|
||||
;
|
||||
; for INCLUDE
|
||||
File_Start DEFL $
|
||||
DISPLAY "===================================================="
|
||||
;詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗<E8A997>
|
||||
|
||||
;**********************************
|
||||
; MS-DOS system
|
||||
;
|
||||
;**********************************
|
||||
|
||||
MSDOS_FIND_FILE:
|
||||
@ -19,10 +21,28 @@ MSDOS_FIND_NEXT:
|
||||
|
||||
;***********************************************
|
||||
;
|
||||
; CHECK_BPB:
|
||||
; IN A,(SLOT3)
|
||||
; LD E,A
|
||||
; LD A,SYS_PAGE
|
||||
; DI
|
||||
; OUT (SLOT3),A
|
||||
; ;
|
||||
; LD A,(SYS_PAGE.BPB_PARSED)
|
||||
; ADD A,1
|
||||
; ;
|
||||
; LD A,E
|
||||
; OUT (SLOT3),A
|
||||
; EI
|
||||
; RET
|
||||
;***********************************************
|
||||
MSDOS_1ST_FL:
|
||||
PUSH DE
|
||||
; 15/07/2024
|
||||
;CALL CHECK_BPB
|
||||
CALL READ_BPB
|
||||
;CALL C,READ_BPB
|
||||
;
|
||||
CALL READ_1ST_DIR
|
||||
POP DE
|
||||
MSDOS_TEST_FL:
|
||||
@ -341,7 +361,7 @@ LOAD_RMD_XX:
|
||||
POP AF
|
||||
CALL GET_RMD_A ; ãáâ ®¢¨âì RAM-Disk A à §¬¥à®¬ B
|
||||
|
||||
LD HL,0C000H
|
||||
LD HL,#C000
|
||||
CALL MSDOS_READ_FILE
|
||||
JP AUTO_03E1
|
||||
|
||||
@ -570,7 +590,7 @@ WORDS: DB 5,'CLEAR' ;
|
||||
DW TB_ONOFF
|
||||
DB 5,'TBOFF' ; ¢ëª«îç¨âì âãà¡®
|
||||
DW TB_ONOFF
|
||||
DB 4,'INIT' ; ¨¨§¨ «¨§ æ¨ï
|
||||
DB 4,'INIT' ; 鄍身豆<EFBFBD>咧<EFBFBD>璅<EFBFBD>
|
||||
DW INIT_RMD
|
||||
DB 8,"SPRINTER"
|
||||
DW SPR_1
|
||||
@ -625,3 +645,6 @@ SP_1: LD A,(DE)
|
||||
; 1 - <20>…‚…<E2809A><E280A6>›‰ ”Ž<E2809D>Œ€’ ˆŒ…<C592>ˆ
|
||||
; 2 - ŠŽ<C5A0>…– Š€’€‹Žƒ€
|
||||
;
|
||||
;詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗詗<E8A997>
|
||||
DISPLAY "TR_MSD_2.ASZ size: ",/A,$-File_Start
|
||||
DISPLAY "===================================================="
|
||||
@ -1,4 +1,6 @@
|
||||
|
||||
File_Start DEFL $
|
||||
DISPLAY "===================================================="
|
||||
;ŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰ
|
||||
INIT_RMD:
|
||||
LD C,BIOS.FullInit
|
||||
;!TEST 06/01/2024 á®åà 塞 á®áâ®ï¨¥ ¯à¥àë¢ ¨© § 祬-â®
|
||||
@ -559,90 +561,7 @@ GET_FL_L2:
|
||||
RET Z
|
||||
INC BC
|
||||
RET
|
||||
;***************************************************************************
|
||||
|
||||
HDD_PROG:
|
||||
;!TEST 06/01/2024 ã¡¨à ¥¬ «¨è¨¥ ⥫®¤¢¨¦¥¨ï
|
||||
;LD C,BIOS.HDD_INIT and #BF
|
||||
;CALL HD_CMD
|
||||
LD C,BIOS.HDD_INIT
|
||||
CALL EXP_FNS
|
||||
;
|
||||
JP C,HDD_PROG_E
|
||||
LD HL,SYS_PAGE.HD_IDF_ADR+54
|
||||
LD B,32
|
||||
HDD_PROG_L:
|
||||
DI
|
||||
IN A,(SLOT3)
|
||||
LD D,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD A,L
|
||||
XOR 1
|
||||
LD L,A
|
||||
LD C,(HL)
|
||||
LD A,L
|
||||
XOR 1
|
||||
LD L,A
|
||||
INC HL
|
||||
LD A,D
|
||||
OUT (SLOT3),A
|
||||
; RET_PAGE3
|
||||
EI
|
||||
LD A,C
|
||||
PUSH BC
|
||||
RST 10H
|
||||
POP BC
|
||||
DJNZ HDD_PROG_L
|
||||
;!TEST 06/01/2024 ã¡¨à ¥¬ «¨è¨¥ ⥫®¤¢¨¦¥¨ï
|
||||
;LD C,BIOS.HDD_RECAL and #BF
|
||||
;CALL HD_CMD
|
||||
LD C,BIOS.HDD_RECAL
|
||||
CALL EXP_FNS
|
||||
;
|
||||
JP NC,AUTO_03E1
|
||||
|
||||
HDD_ERROR:
|
||||
CALL PRINT_HEX_A
|
||||
LD HL,HD_TX
|
||||
JP AUTO_03E4
|
||||
|
||||
; JP AUTO_03E1
|
||||
|
||||
HDD_PROG_E:
|
||||
LD HL,HD_TX2
|
||||
JP AUTO_03E4
|
||||
|
||||
;
|
||||
HDD_SET:;!TEST
|
||||
.loop: LD A,(DE)
|
||||
INC DE
|
||||
CP ' '
|
||||
JR Z,.loop
|
||||
CP "\r"
|
||||
JR Z,.init
|
||||
;
|
||||
DEC DE
|
||||
DEC DE
|
||||
JP CHOOSE_HDD
|
||||
;
|
||||
|
||||
.init: ;!TEST 06/01/2024 ã¡¨à ¥¬ «¨è¨¥ ⥫®¤¢¨¦¥¨ï
|
||||
;LD C,BIOS.HDD_INIT and #BF
|
||||
;CALL HD_CMD
|
||||
LD C,BIOS.HDD_INIT
|
||||
CALL EXP_FNS
|
||||
;
|
||||
JP C,HDD_PROG_E
|
||||
|
||||
LD A,(ZX_VARS.OPER_DISK)
|
||||
LD B,A
|
||||
XOR A
|
||||
LD C,BIOS.HDD_TO_DRV
|
||||
;!TEST 06/01/2024 á®åà 塞 á®áâ®ï¨¥ ¯à¥àë¢ ¨© § 祬-â®
|
||||
JP EXP_FNS
|
||||
;CALL EXP_FNS
|
||||
;EI
|
||||
;RET
|
||||
;
|
||||
;***************************************************************************
|
||||
;***********************************************************************
|
||||
;ŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰ
|
||||
DISPLAY "TR_MSD_3.ASZ size: ",/A,$-File_Start
|
||||
DISPLAY "===================================================="
|
||||
@ -1,7 +1,9 @@
|
||||
;
|
||||
; for INCLUDE
|
||||
File_Start DEFL $
|
||||
DISPLAY "===================================================="
|
||||
;ŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰ
|
||||
|
||||
;********************************************
|
||||
; MS-DOS system
|
||||
;
|
||||
;********************************************
|
||||
; MS-DOS utilites
|
||||
;********************************************
|
||||
@ -427,20 +429,23 @@ SET_1440:
|
||||
|
||||
READ_BPB:
|
||||
CALL DISK_REDIR
|
||||
; LD C,BIOS.GET_DISK_REDIR
|
||||
; CALL EXP_FNS
|
||||
CP #40
|
||||
JR NC,.HDD_REDIR2
|
||||
JR NC,.HDD
|
||||
CP 4
|
||||
JP NC,.ERROR_MSDOS
|
||||
|
||||
;
|
||||
CALL SET_DISK
|
||||
|
||||
;
|
||||
CALL .MAIN
|
||||
RET NC
|
||||
JP .ERROR_MSDOS
|
||||
.HDD_REDIR2:
|
||||
CALL .MAIN
|
||||
;
|
||||
.HDD: CALL .MAIN
|
||||
CALL NC,RESTORE_CURRENT_DIR ; [x] new tr-hdd
|
||||
RET NC
|
||||
.SPACIAL:
|
||||
; old hdd
|
||||
LD IX,0
|
||||
LD DE,63 ;!HARDCODE
|
||||
LD A,SYS_PAGE
|
||||
@ -450,17 +455,18 @@ READ_BPB:
|
||||
CALL MSD_R_W_UT
|
||||
;
|
||||
CALL .PARAMS
|
||||
CALL NC,RESTORE_CURRENT_DIR ; [x] new tr-hdd
|
||||
RET NC
|
||||
JP .ERROR_MSDOS
|
||||
;
|
||||
.MAIN: LD A,SYS_PAGE
|
||||
LD HL,SYS_PAGE.MS_BPB
|
||||
LD C,TRDOS_ROM_CMD.READ_BPB
|
||||
CALL MSD_R_W_UT
|
||||
|
||||
|
||||
;CALL BPB_PARAMS
|
||||
;RET
|
||||
|
||||
;
|
||||
; LD C,18H
|
||||
; LD A,(ZX_VARS.OPER_DISK)
|
||||
; CALL HD_CMD
|
||||
@ -493,8 +499,8 @@ READ_BPB:
|
||||
CP #F0
|
||||
JP C,.ERROR_BPB
|
||||
|
||||
LD HL,SYS_PAGE.MS_BPB+FAT_ID
|
||||
LD DE,.FAT1_MSG
|
||||
LD DE,SYS_PAGE.MS_BPB+FAT_ID
|
||||
LD HL,.FAT1_MSG
|
||||
LD B,4
|
||||
.L1: LD A,(DE)
|
||||
CP ' '
|
||||
@ -507,7 +513,7 @@ READ_BPB:
|
||||
INC HL
|
||||
INC DE
|
||||
DJNZ .L1
|
||||
LD A,(HL)
|
||||
LD A,(DE)
|
||||
CP '6'
|
||||
LD HL,#81FF ; FAT16 ä« £
|
||||
JR Z,.FAT
|
||||
@ -521,15 +527,16 @@ READ_BPB:
|
||||
LD A,(SYS_PAGE.MS_BPB+S_P_T) ; Š®«¨ç¥á⢮ ᥪâ®à®¢ â४
|
||||
LD (SYS_PAGE.MSD_SECS),A
|
||||
|
||||
BIT 7,H
|
||||
; BIT 7,H
|
||||
|
||||
LD IX,0
|
||||
LD HL,0 ; ¢ëç¨á«¨âì ç «ìë© á¥ªâ®à FAT
|
||||
; LD IX,0
|
||||
; LD HL,0 ; ˘ëç¨áŤ¨âě ç ŤěëŠ áĽŞâŽŕ FAT
|
||||
; JR Z,.NO_LD_SPECIAL
|
||||
|
||||
JR Z,.NO_LD_SPECIAL
|
||||
LD IX,(SYS_PAGE.MS_BPB+SPECIAL_SECS)
|
||||
LD HL,(SYS_PAGE.MS_BPB+SPECIAL_SECS+2)
|
||||
.NO_LD_SPECIAL:
|
||||
|
||||
;.NO_LD_SPECIAL:
|
||||
LD BC,0
|
||||
LD DE,(SYS_PAGE.MS_BPB+RESERV_SECS)
|
||||
|
||||
@ -540,7 +547,7 @@ READ_BPB:
|
||||
LD (SYS_PAGE.MSD_FAT_SEC2),HL ; ç «ìë© á¥ªâ®à FAT
|
||||
|
||||
LD DE,(SYS_PAGE.MS_BPB+S_P_F) ; ç¨á«® ᥪâ®à®¢ ¢ FAT
|
||||
LD BC,0
|
||||
;LD BC,0
|
||||
|
||||
LD A,(SYS_PAGE.MS_BPB+FATS_NUM) ; ª®«¨ç¥á⢮ FATs
|
||||
.NEXT_ADD:
|
||||
@ -552,16 +559,18 @@ READ_BPB:
|
||||
LD (SYS_PAGE.MSD_CAT_SEC),IX ; ç «ìë© á¥ªâ®à DIR
|
||||
LD (SYS_PAGE.MSD_CAT_SEC2),HL ; ç «ìë© á¥ªâ®à DIR
|
||||
|
||||
; A=0
|
||||
|
||||
LD BC,(SYS_PAGE.MS_BPB+SEC_SIZE) ; <20> §¬¥à ᥪâ®à
|
||||
LD A,B
|
||||
RL C
|
||||
RL B
|
||||
RLA
|
||||
RL C
|
||||
RL B
|
||||
RLA
|
||||
RL C
|
||||
RL B
|
||||
LD C,B
|
||||
RLA
|
||||
LD C,A
|
||||
LD B,0 ; BC - ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
|
||||
LD A,C
|
||||
LD (SYS_PAGE.FilesPerSector),A
|
||||
|
||||
LD DE,(SYS_PAGE.MS_BPB+FLS_NUM) ; —¨á«® ä ©«®¢ëå § ¯¨á¥©
|
||||
@ -577,8 +586,8 @@ READ_BPB:
|
||||
EX DE,HL
|
||||
|
||||
LD E,A ; A - ç¨á«® ᥪâ®à®¢ ¢ DIR
|
||||
LD D,0
|
||||
LD BC,0
|
||||
LD D,B
|
||||
LD (SYS_PAGE.SectorsPerCluster),A
|
||||
|
||||
ADD IX,DE ; <20> ç «® DATA area
|
||||
@ -588,10 +597,12 @@ READ_BPB:
|
||||
LD (SYS_PAGE.MSD_DAT_SEC2),HL
|
||||
|
||||
LD BC,(SYS_PAGE.MS_BPB+SEC_SIZE) ; <20> §¬¥à ᥪâ®à
|
||||
LD HL,0
|
||||
; D = 0
|
||||
LD H,D
|
||||
LD L,D
|
||||
LD A,(SYS_PAGE.MS_BPB+CLAST_SIZE)
|
||||
LD D,A
|
||||
LD A,L
|
||||
XOR A
|
||||
.NEXT_ADD3:
|
||||
ADD HL,BC ; ‚ëç¨á«¥¨¥ ¤«¨ë ª« áâ¥à
|
||||
ADC A,0
|
||||
@ -599,11 +610,14 @@ READ_BPB:
|
||||
JR NZ,.NEXT_ADD3
|
||||
|
||||
LD (SYS_PAGE.CLASTER_LEN),HL
|
||||
LD B,0
|
||||
; D = 0
|
||||
LD B,D
|
||||
LD C,A
|
||||
LD (SYS_PAGE.CLASTER_LEN2),BC
|
||||
|
||||
LD HL,0
|
||||
; D = 0
|
||||
LD H,D
|
||||
LD L,D
|
||||
LD BC,(SYS_PAGE.MS_BPB+S_P_T)
|
||||
LD A,(SYS_PAGE.MS_BPB+H_P_S)
|
||||
.BPB_L1:; ‚›—ˆ‘‹ˆ’œ ŠŽ‹ˆ—…‘’‚Ž ‘…Š’Ž<E28099>Ž‚ <20>€ –ˆ‹ˆ<E280B9>„<EFBFBD>
|
||||
@ -627,6 +641,7 @@ READ_BPB:
|
||||
.ERROR_MSDOS:
|
||||
LD HL,MSG_3
|
||||
JP AUTO_03E4
|
||||
;
|
||||
.FAT1_MSG:
|
||||
DB 'FAT1'
|
||||
;********************************************
|
||||
@ -759,7 +774,8 @@ NO_ADD:
|
||||
POP DE
|
||||
POP HL
|
||||
RET
|
||||
|
||||
;*******************************************
|
||||
|
||||
;ŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰŰ
|
||||
DISPLAY "TR_MSD_S.ASZ size: ",/A,$-File_Start
|
||||
DISPLAY "===================================================="
|
||||
|
||||
|
||||
@ -1,19 +1,16 @@
|
||||
;
|
||||
File_Start DEFL $
|
||||
DISPLAY "===================================================="
|
||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||||
|
||||
DEFINE NEW_RAMDRV_READ 1
|
||||
|
||||
|
||||
DISK_REDIR:
|
||||
PUSH HL
|
||||
;PUSH HL
|
||||
PUSH BC
|
||||
LD A,(ZX_VARS.OPER_DISK)
|
||||
AND 3
|
||||
LD C,BIOS.GET_DRV_ST
|
||||
LD C,BIOS.GET_DISK_REDIR
|
||||
CALL EXP_FNS
|
||||
;!TEST 06/01/2024 á®åà 塞 á®áâ®ï¨¥ ¯à¥àë¢ ¨© § 祬-â®
|
||||
;EI
|
||||
;
|
||||
POP BC
|
||||
POP HL
|
||||
;POP HL
|
||||
RET
|
||||
|
||||
R_W_REDIR:
|
||||
@ -550,41 +547,6 @@ READ_WRITE_RAMD:
|
||||
; A = RAM Block ID
|
||||
EX AF,AF'
|
||||
;
|
||||
;POP DE
|
||||
; POP BC
|
||||
; PUSH BC
|
||||
; ; !TEST ªàã稢 ¥¬ áçñâ稪 r/w ᥪâ®à®¢
|
||||
; LD HL,(ZX_VARS.CONT_SEC)
|
||||
; LD D,H
|
||||
; LD E,L
|
||||
; ;!TODO ¯¥à¥¤¥« âì íâã â㯮áâì ¬ ⥬ ⨪ã
|
||||
; LD A,16
|
||||
; .loop: INC L
|
||||
; CP L
|
||||
; JR NZ,.skip
|
||||
; INC H
|
||||
; LD L,0
|
||||
; .skip: DJNZ .loop
|
||||
; ; á®åà 塞 ªàãç¥ë© áçñâ稪
|
||||
; LD (ZX_VARS.CONT_SEC),HL
|
||||
; ; ”ˆ‡ˆ—…‘Šˆ‰ ‘…Š’Ž<E28099> -> ‹Žƒˆ—…‘Šˆ‰
|
||||
; LD A,D
|
||||
; RRCA
|
||||
; RRCA
|
||||
; RRCA
|
||||
; RRCA
|
||||
; LD D,A
|
||||
; AND #F0
|
||||
; OR E
|
||||
; LD E,A
|
||||
; LD A,D
|
||||
; AND #0F
|
||||
; LD D,A
|
||||
; ;
|
||||
; POP BC
|
||||
; PUSH BC
|
||||
|
||||
|
||||
POP HL
|
||||
; Get command r/w
|
||||
LD A,(ZX_VARS.RD_WR_COM)
|
||||
@ -630,3 +592,6 @@ READ_WRITE_RAMD:
|
||||
|
||||
ENDIF
|
||||
;***********************************************************************
|
||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||||
DISPLAY "TR_RMD_S.ASZ size: ",/A,$-File_Start
|
||||
DISPLAY "===================================================="
|
||||
618
TRDOS/boot_trd.asm
Normal file
618
TRDOS/boot_trd.asm
Normal file
@ -0,0 +1,618 @@
|
||||
/*
|
||||
BOOTER
|
||||
;¢ë¯®«ï«ª ª®¬."8"
|
||||
;¢¬¥áâ® #29AE
|
||||
LD BC,#F4FF
|
||||
RST #20
|
||||
DW #1EAF ;CLEAR_RUN
|
||||
;
|
||||
LD A,1
|
||||
RST #20
|
||||
DW #229B ;border ¨ 23624
|
||||
;
|
||||
DI
|
||||
LD HL,bootkus1 ;#E00
|
||||
LD DE,#F500
|
||||
LD BC,bootln1 ;#1F5
|
||||
PUSH DE
|
||||
LDIR
|
||||
LD HL,bootkus2 ;#344D
|
||||
LD BC,bootln2+1 ;#334
|
||||
LDIR
|
||||
SET 3,(IY+#01)
|
||||
RET
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
org 0
|
||||
INCLUDE 'Shared_Includes/constants/ZX_VARS.inc'
|
||||
INCLUDE 'Shared_Includes/constants/sp2000.inc'
|
||||
INCLUDE 'inc/rom_routines.inc'
|
||||
|
||||
|
||||
bootkus1: DISP #F500
|
||||
DI ;¥£® ¨ #344D ª®¯¨àã¥â #3AE7
|
||||
PUSH AF
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
EXX
|
||||
PUSH HL
|
||||
LD HL,(ZX_VARS.ERR_SP)
|
||||
LD (.ERR_SP),HL
|
||||
LD A,(ZX_VARS.CONT_DISK)
|
||||
LD (ZX_VARS.OPER_DISK),A
|
||||
ADD A,#3C
|
||||
LD (ZX_VARS.PDOS_COPY),A
|
||||
LD HL,#3C00
|
||||
LD DE,#8000
|
||||
PUSH DE
|
||||
LD (ZX_VARS.ZG),DE
|
||||
LD BC,#0400
|
||||
LDIR
|
||||
LD (IY+#47),#00
|
||||
POP HL
|
||||
LD BC,#0080
|
||||
.big_loop: PUSH BC
|
||||
INC HL
|
||||
INC HL
|
||||
INC HL
|
||||
LD B,#03
|
||||
.loop1: LD D,(HL)
|
||||
LD A,D
|
||||
RLA
|
||||
OR D
|
||||
LD (HL),A
|
||||
INC HL
|
||||
DJNZ .loop1
|
||||
POP BC
|
||||
DEC BC
|
||||
INC HL
|
||||
INC HL
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,.big_loop
|
||||
XOR A
|
||||
OUT (BorderColor),A
|
||||
LD A,#44
|
||||
LD (ZX_VARS.BORDER),A
|
||||
DEC A
|
||||
DEC A
|
||||
LD (ZX_VARS.ATTR_P),A
|
||||
CALL ROUTINE.cls
|
||||
.loop2: DI
|
||||
XOR A
|
||||
LD (VAR_1),A
|
||||
.var_3+1: LD HL,LL3761
|
||||
PUSH HL
|
||||
LD (ZX_VARS.ERR_SP),SP
|
||||
LD (IY+#00),#FF
|
||||
LD A,(ZX_VARS.CONT_DISK)
|
||||
LD C,#01
|
||||
CALL #3D13
|
||||
LD HL,#9000
|
||||
LD DE,#0000
|
||||
LD BC,#0805
|
||||
CALL #3D13
|
||||
LD A,(IY+#00)
|
||||
CP #FF
|
||||
JR NZ,.loop2
|
||||
LD HL,.loop2
|
||||
LD (.var_3),HL
|
||||
EXX
|
||||
LD DE,#A000
|
||||
EXX
|
||||
LD HL,#9000
|
||||
LD DE,#0008
|
||||
LD A,(HL)
|
||||
OR A
|
||||
JP Z,LF887
|
||||
.loop3: LD DE,#0008
|
||||
ADD HL,DE
|
||||
LD A,(HL)
|
||||
CP #42
|
||||
CALL Z,LF836
|
||||
ADD HL,DE
|
||||
LD A,(HL)
|
||||
OR A
|
||||
JR NZ,.loop3
|
||||
LD A,(VAR_1)
|
||||
OR A
|
||||
JP Z,LF887
|
||||
LD B,#3F
|
||||
SBC A,B
|
||||
JP NC,LF8A6
|
||||
LD A,(VAR_1)
|
||||
DEC A
|
||||
LD (#F86F),A
|
||||
CALL #F9BB
|
||||
LD (#F653),A
|
||||
CALL #0D6B
|
||||
DI
|
||||
CALL #F870
|
||||
LD A,#02
|
||||
CALL #F8CB
|
||||
LD A,#02
|
||||
CALL #1601
|
||||
LD (IY+#47),#00
|
||||
LD DE,#A000
|
||||
LD HL,#0008
|
||||
.loop4: LD A,#20
|
||||
RST #10
|
||||
LD A,#20
|
||||
RST #10
|
||||
LD BC,#0008
|
||||
PUSH DE
|
||||
CALL #203C
|
||||
POP DE
|
||||
EXD
|
||||
ADC HL,DE
|
||||
EXD
|
||||
LD A,(VAR_1)
|
||||
DEC A
|
||||
LD (VAR_1),A
|
||||
JR Z,LL0f35
|
||||
LD A,#20
|
||||
RST #10
|
||||
LD A,#20
|
||||
RST #10
|
||||
LD BC,#0008
|
||||
PUSH DE
|
||||
CALL #203C
|
||||
POP DE
|
||||
EXD
|
||||
ADC HL,DE
|
||||
EXD
|
||||
LD A,(VAR_1)
|
||||
DEC A
|
||||
LD (VAR_1),A
|
||||
JR Z,LL0f35
|
||||
LD A,#20
|
||||
RST #10
|
||||
LD A,#20
|
||||
RST #10
|
||||
LD BC,#0008
|
||||
PUSH DE
|
||||
CALL #203C
|
||||
POP DE
|
||||
EXD
|
||||
ADC HL,DE
|
||||
EXD
|
||||
LD A,(VAR_1)
|
||||
DEC A
|
||||
LD (VAR_1),A
|
||||
JR Z,LL0f35
|
||||
LD A,#06
|
||||
RST #10
|
||||
JR .loop4
|
||||
;
|
||||
.ERR_SP: WORD 0
|
||||
NOP
|
||||
LL0f35 LD HL,#5802
|
||||
CALL #F816
|
||||
LD DE,#000A
|
||||
LD IX,#F634
|
||||
LD (IX+#00),#00
|
||||
LL0f46 EI
|
||||
RES 5,(IY+#01)
|
||||
HALT
|
||||
PUSH HL
|
||||
PUSH IX
|
||||
CALL #F9BB
|
||||
CP #40
|
||||
JP NZ,#F792
|
||||
CALL #F989
|
||||
POP IX
|
||||
POP HL
|
||||
BIT 5,(IY+#01)
|
||||
JR Z,LL0f46
|
||||
LD A,(#5C08)
|
||||
CP 8
|
||||
JP Z,#F6ED
|
||||
CP "o"
|
||||
JR Z,LL0fed
|
||||
CP "6"
|
||||
JR Z,LL0fed
|
||||
CP 9
|
||||
JP Z,#F70C
|
||||
CP "p"
|
||||
JP Z,#F70C
|
||||
CP "7"
|
||||
JP Z,#F70C
|
||||
CP 11
|
||||
JP Z,#F72E
|
||||
CP "q"
|
||||
JP Z,#F72E
|
||||
CP "9"
|
||||
JP Z,#F72E
|
||||
CP 10
|
||||
JP Z,#F764
|
||||
CP "a"
|
||||
JP Z,#F764
|
||||
CP "8"
|
||||
JP Z,#F764
|
||||
CP "d"
|
||||
JP Z,#FA1B
|
||||
CP "1"
|
||||
JR Z,LL0fd0
|
||||
CP "2"
|
||||
JR Z,LL0fd0
|
||||
CP "3"
|
||||
JR Z,LL0fd0
|
||||
CP "4"
|
||||
JR Z,LL0fd0
|
||||
PUSH AF
|
||||
LD A,#FE
|
||||
IN A,(#FE)
|
||||
RRA
|
||||
JR NC,LL0f46
|
||||
POP AF
|
||||
CP 13
|
||||
JP Z,#F79D
|
||||
CP "0"
|
||||
JP Z,#F79D
|
||||
CP 32
|
||||
JP Z,#F79D
|
||||
JP #F646
|
||||
LL0fd0 PUSH AF
|
||||
CALL #0D6B
|
||||
LD A,#03
|
||||
CALL #F8CB
|
||||
POP AF
|
||||
SUB #31
|
||||
LD C,#01
|
||||
LD (#5CF8),A
|
||||
LD (#5CF9),A
|
||||
LD (ZX_VARS.CONT_DISK),A
|
||||
CALL #3D13
|
||||
JP #F556
|
||||
LL0fed CALL #F870
|
||||
CALL #F826
|
||||
DEC (IX)
|
||||
|
||||
bootst2
|
||||
bootln1 = $-bootkus1
|
||||
|
||||
LD A,(IX+#00)
|
||||
CP #FF
|
||||
JR NZ,LL345b
|
||||
LD A,(#F86F)
|
||||
LD (IX+#00),A
|
||||
LL345b CALL #F7FA
|
||||
CALL #F816
|
||||
JP #F646
|
||||
CALL #F870
|
||||
CALL #F826
|
||||
INC (IX+#00)
|
||||
LD A,(#F86F)
|
||||
INC A
|
||||
CP (IX+#00)
|
||||
LD A,(IX+#00)
|
||||
JR NZ,LL347d
|
||||
XOR A
|
||||
LD (IX+#00),A
|
||||
LL347d CALL #F7FA
|
||||
CALL #F816
|
||||
JP #F646
|
||||
CALL #F870
|
||||
CALL #F826
|
||||
DEC (IX+#00)
|
||||
DEC (IX+#00)
|
||||
DEC (IX+#00)
|
||||
BIT 7,(IX+#00)
|
||||
LD A,(IX+#00)
|
||||
JR Z,LL34b3
|
||||
LL349e LD B,#03
|
||||
ADD A,B
|
||||
LD B,A
|
||||
PUSH BC
|
||||
LD A,(#F86F)
|
||||
SUB B
|
||||
JR C,LL34ac
|
||||
POP AF
|
||||
JR LL349e
|
||||
LL34ac POP AF
|
||||
DEC A
|
||||
DEC A
|
||||
DEC A
|
||||
LD (IX+#00),A
|
||||
LL34b3 CALL #F7FA
|
||||
CALL #F816
|
||||
JP #F646
|
||||
CALL #F870
|
||||
CALL #F826
|
||||
INC (IX+#00)
|
||||
INC (IX+#00)
|
||||
INC (IX+#00)
|
||||
LD A,(#F86F)
|
||||
SBC A,(IX+#00)
|
||||
LD A,(IX+#00)
|
||||
JR NC,LL34e1
|
||||
LD B,#03
|
||||
LL34d8 SUB B
|
||||
JR NC,LL34d8
|
||||
INC A
|
||||
INC A
|
||||
INC A
|
||||
LD (IX+#00),A
|
||||
LL34e1 CALL #F7FA
|
||||
CALL #F816
|
||||
JP #F646
|
||||
CALL #0D6B
|
||||
LD A,#03
|
||||
CALL #F8CB
|
||||
JP #F556
|
||||
LD BC,#FFFD
|
||||
LD A,#07
|
||||
OUT (C),A
|
||||
LD B,#BF
|
||||
LD A,#FF
|
||||
OUT (C),A ;£«ãè¨â AY
|
||||
CALL #F870
|
||||
LD A,#07
|
||||
LD (#5C48),A
|
||||
LD (#5C8D),A
|
||||
CPL
|
||||
LD (#5D3B),A
|
||||
LD HL,#3C00
|
||||
LD (#5C36),HL
|
||||
LD L,(IX+#00)
|
||||
LD H,#00
|
||||
ADD HL,HL
|
||||
ADD HL,HL
|
||||
ADD HL,HL
|
||||
LD DE,#A000
|
||||
ADD HL,DE
|
||||
LD DE,#F7F0
|
||||
LD BC,#0008
|
||||
LDIR
|
||||
LD HL,(#F632)
|
||||
LD (ZX_VARS.ERR_SP),HL
|
||||
LD HL,#F7EC
|
||||
LD (#5C5D),HL
|
||||
CALL #0D6B
|
||||
DI
|
||||
POP HL
|
||||
EXX
|
||||
POP BC
|
||||
POP DE
|
||||
POP HL
|
||||
POP AF
|
||||
CALL #3D03
|
||||
JP PE,#F73A
|
||||
LD (#6F62),HL
|
||||
LD L,A
|
||||
LD (HL),H
|
||||
JR NZ,LL356e
|
||||
JR NZ,LL3570
|
||||
LD (#D50D),HL
|
||||
INC A
|
||||
LD HL,#5802
|
||||
LD DE,#000A
|
||||
LL355a DEC A
|
||||
JR Z,LL356c
|
||||
ADD HL,DE
|
||||
DEC A
|
||||
JR Z,LL356c
|
||||
ADD HL,DE
|
||||
DEC A
|
||||
JR Z,LL356c
|
||||
INC DE
|
||||
INC DE
|
||||
ADD HL,DE
|
||||
DEC DE
|
||||
DEC DE
|
||||
JR LL355a
|
||||
LL356c POP DE
|
||||
RET
|
||||
LL356e PUSH HL
|
||||
EXX
|
||||
LL3570 POP HL
|
||||
LD A,#70
|
||||
PUSH HL
|
||||
POP DE
|
||||
INC DE
|
||||
LD BC,#0007
|
||||
LD (HL),A
|
||||
LDIR
|
||||
EXX
|
||||
RET
|
||||
PUSH HL
|
||||
EXX
|
||||
POP HL
|
||||
LD A,#42
|
||||
PUSH HL
|
||||
POP DE
|
||||
INC DE
|
||||
LD BC,#0007
|
||||
LD (HL),A
|
||||
LDIR
|
||||
EXX
|
||||
RET
|
||||
;
|
||||
LF836: PUSH HL
|
||||
PUSH DE
|
||||
SBC HL,DE
|
||||
LD A,(HL)
|
||||
LD B,#20
|
||||
SBC A,B
|
||||
JR C,LL35c3
|
||||
LD IX,#F981
|
||||
PUSH HL
|
||||
LD BC,#0800
|
||||
LL35a0 LD A,(HL)
|
||||
CP (IX+#00)
|
||||
JR NZ,LL35a7
|
||||
INC C
|
||||
LL35a7 INC HL
|
||||
INC IX
|
||||
DJNZ LL35a0
|
||||
LD A,C
|
||||
CP #08
|
||||
JR NZ,LL35b4
|
||||
POP HL
|
||||
JR LL35c3
|
||||
LL35b4 EXX
|
||||
POP HL
|
||||
LD BC,#0008
|
||||
LDIR
|
||||
EXX
|
||||
LD A,(VAR_1)
|
||||
INC A
|
||||
LD (VAR_1),A
|
||||
LL35c3 POP DE
|
||||
POP HL
|
||||
RET
|
||||
|
||||
|
||||
VAR_1: DB 0
|
||||
VAR_2: DB 0
|
||||
|
||||
|
||||
PUSH AF
|
||||
PUSH BC
|
||||
LD B,#D2
|
||||
LL35cc PUSH BC
|
||||
XOR A
|
||||
OUT (#FE),A
|
||||
RR B
|
||||
LL35d2 DJNZ LL35d2
|
||||
SET 4,A
|
||||
OUT (#FE),A
|
||||
POP BC
|
||||
DEC B
|
||||
DJNZ LL35cc
|
||||
POP BC
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
LF887: XOR A
|
||||
CP (IY+#47)
|
||||
JP NZ,#F556
|
||||
CALL #0D6E
|
||||
LD A,#02
|
||||
CALL #1601
|
||||
XOR A
|
||||
CALL #F8CB
|
||||
LD A,#01
|
||||
CALL #1601
|
||||
LD (IY+#47),#FE
|
||||
JP #F795
|
||||
;
|
||||
LF8A6: XOR A
|
||||
CP (IY+#47)
|
||||
JP NZ,#F556
|
||||
CALL #0D6E
|
||||
LD A,#02
|
||||
CALL #1601
|
||||
LD A,#01
|
||||
CALL #F8CB
|
||||
LD A,#3F
|
||||
LD (VAR_1),A
|
||||
LD BC,#FFFF
|
||||
LL361a NOP
|
||||
DJNZ LL361a
|
||||
DEC C
|
||||
JR NZ,LL361a
|
||||
JP #F5B4
|
||||
LD DE,#F8D1
|
||||
JP #0C0A
|
||||
|
||||
DB #80
|
||||
DB #16,#0A,#05
|
||||
DB "!!! NO PROGRAMS !!!"
|
||||
DB (" "+#80)
|
||||
|
||||
DB #16,#0A,#03,#10,#04
|
||||
DB "MORE THAN 63 BASIC FILES" ;than!!!
|
||||
|
||||
DB (" "+#80)
|
||||
|
||||
DB #11,#00,#10,#04,#13,#01
|
||||
DB " -=New ROM boot v1.06=-"
|
||||
DB #06
|
||||
DB "Remix by CompoWellcome 05.02.99"
|
||||
DB ("."+#80)
|
||||
|
||||
DB #10,#02,#13,#01
|
||||
DB " INSERT NEW DISK"
|
||||
DB #06
|
||||
DB " FOR READING CATALOGUE." ;catalogue!
|
||||
|
||||
DB (" "+#80)
|
||||
|
||||
DB "boot "
|
||||
|
||||
LD HL,#5AE1
|
||||
PUSH HL
|
||||
POP DE
|
||||
DEC DE
|
||||
LD BC,#001F
|
||||
LDIR
|
||||
LD HL,#5AFF
|
||||
LD A,(#F9BA)
|
||||
OR A
|
||||
JR Z,LL3703
|
||||
LD A,(HL)
|
||||
AND #07
|
||||
INC A
|
||||
CP #08
|
||||
JR NZ,LL3710
|
||||
XOR A
|
||||
LD (#F9BA),A
|
||||
LD A,#07
|
||||
LL3703 LD A,(HL)
|
||||
AND #07
|
||||
DEC A
|
||||
OR A
|
||||
JR NZ,LL3710
|
||||
CPL
|
||||
LD (#F9BA),A
|
||||
LD A,#01
|
||||
LL3710 LD (HL),A
|
||||
RET
|
||||
LL3712 NOP
|
||||
LD A,#C3
|
||||
LD (#5CC2),A
|
||||
LD HL,#F9E6
|
||||
LD (#5CC3),HL
|
||||
LD IX,#2FC1
|
||||
CALL #FA20
|
||||
LD A,#08
|
||||
LD C,#1F
|
||||
LD IX,#2A53
|
||||
CALL #FA20
|
||||
LD (#F9E7),SP
|
||||
LD DE,#0000
|
||||
LD IX,#2740
|
||||
CALL #FA20
|
||||
LD SP,#0000
|
||||
LD IX,#1FF3
|
||||
CALL #FA20
|
||||
LD IX,#1FEB
|
||||
CALL #FA20
|
||||
LD IX,#2FC1
|
||||
CALL #FA20
|
||||
LD A,#C9
|
||||
LD (#5CC2),A
|
||||
LD A,(#5CCD)
|
||||
AND #40
|
||||
RET
|
||||
LL3761 LD A,#30
|
||||
INC A
|
||||
CP #33
|
||||
LD (#FA0A),A
|
||||
JP NZ,#F6D0
|
||||
LD A,#30
|
||||
LD (#FA0A),A
|
||||
JR LL3761
|
||||
DI
|
||||
LD IX,#0000
|
||||
PUSH IX
|
||||
JP #3D2F
|
||||
|
||||
BLOCK 3,#FF
|
||||
|
||||
ENT
|
||||
Loading…
Reference in New Issue
Block a user