замена HD_CMD на EXP_FNS в TRDOS. Мелкие фиксы

This commit is contained in:
Anatoliy Belyanskiy 2024-01-26 00:54:43 +10:00
parent ae88e6864e
commit 9d3482c7b0
7 changed files with 396 additions and 268 deletions

View File

@ -12,74 +12,87 @@
INCLUDE 'inc/rom_routines.inc' INCLUDE 'inc/rom_routines.inc'
INCLUDE 'Shared_Includes/constants/zx_char_codes.inc' INCLUDE 'Shared_Includes/constants/zx_char_codes.inc'
INCLUDE 'Shared_Includes/constants/BIOS_equ.inc' INCLUDE 'Shared_Includes/constants/BIOS_equ.inc'
;***************************************
;CNF_PORT EQU #74
AUTO_4000 EQU 04000H
AUTO_4010 EQU 04010H
AUTO_4011 EQU 04011H
AUTO_4020 EQU 04020H
AUTO_4080 EQU 04080H
AUTO_40E1 EQU 040E1H
AUTO_40E3 EQU 040E3H
AUTO_40E4 EQU 040E4H
AUTO_40E5 EQU 040E5H
AUTO_40F0 EQU 040F0H
AUTO_40F1 EQU 040F1H
AUTO_40FF EQU 040FFH
AUTO_4100 EQU 04100H
AUTO_4101 EQU 04101H
AUTO_4102 EQU 04102H
AUTO_4103 EQU 04103H
AUTO_4110 EQU 04110H
AUTO_4111 EQU 04111H
AUTO_4118 EQU 04118H
AUTO_4119 EQU 04119H
AUTO_411B EQU 0411BH
AUTO_411D EQU 0411DH
AUTO_411E EQU 0411EH
AUTO_4130 EQU 04130H
AUTO_4140 EQU 04140H
AUTO_41FF EQU 041FFH
AUTO_5220 EQU 05220H
AUTO_58E8 EQU 058E8H
AUTO_5E34 EQU 05E34H TRDOS_ROM_CMD:
AUTO_5F00 EQU 05F00H .READ_BPB EQU BIOS.HDD_READ_BPB and #BF
AUTO_5F10 EQU 05F10H .READ EQU BIOS.HDD_READ and #BF
AUTO_5F12 EQU 05F12H .WRITE EQU BIOS.HDD_WRITE and #BF
AUTO_6000 EQU 06000H ;***************************************
PORT_128 EQU 07FFDH
AUTO_A1DB EQU 0A1DBH
AUTO_B0ED EQU 0B0EDH ;CNF_PORT EQU #74
AUTO_B8ED EQU 0B8EDH AUTO_4000 EQU #4000
AUTO_C000 EQU 0C000H AUTO_4010 EQU #4010
AUTO_C130 EQU 0C130H AUTO_4011 EQU #4011
AUTO_C308 EQU 0C308H AUTO_4020 EQU #4020
AUTO_C916 EQU 0C916H AUTO_4080 EQU #4080
AUTO_FE15 EQU 0FE15H AUTO_40E1 EQU #40E1
AUTO_FF00 EQU 0FF00H AUTO_40E3 EQU #40E3
AUTO_FFFF EQU 0FFFFH AUTO_40E4 EQU #40E4
AUTO_40E5 EQU #40E5
AUTO_40F0 EQU #40F0
AUTO_40F1 EQU #40F1
AUTO_40FF EQU #40FF
AUTO_4100 EQU #4100
AUTO_4101 EQU #4101
AUTO_4102 EQU #4102
AUTO_4103 EQU #4103
AUTO_4110 EQU #4110
AUTO_4111 EQU #4111
AUTO_4118 EQU #4118
AUTO_4119 EQU #4119
AUTO_411B EQU #411B
AUTO_411D EQU #411D
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
AUTO_FFFF EQU #FFFF
;**************************************** ;****************************************
DISPLAY "Start." DISPLAY "Start."
START: START: DI
DI LD DE,#FFFF
LD DE,0FFFFh
LD A,7 LD A,7
JR CONT_1 JR CONT_1
RST08: RST08:
NOP NOP
CONT_1: CONT_1:
OUT (0FEH),A OUT (#FE),A
LD A,'?' LD A,'?'
JR CONT_2 JR CONT_2
NOP
////////////////////////////////////////////////////////////////////////
BLOCK #10-$,0
RST10: RST10:
JP PRINT_SYM JP PRINT_SYM
////////////////////////////////////////////////////////////////////////
CONT_2: CONT_2:
LD I,A LD I,A
JP CONT_3 JP CONT_3
////////////////////////////////////////////////////////////////////////
BLOCK #18-$,0
PRINT_LN: PRINT_LN:
JP PRINT_L JP PRINT_L
CONT_3: CONT_3:
@ -88,32 +101,39 @@ CONT_3:
NOP NOP
AUTO_001E: AUTO_001E:
JR CONT_4 JR CONT_4
////////////////////////////////////////////////////////////////////////
BLOCK #20-$,0
RST20: RST20:
JP RST20_EXE JP RST20_EXE
RET RET
////////////////////////////////////////////////////////////////////////
CONT_4: CONT_4:
LD H,D LD H,D
LD L,E LD L,E
JR CONT_5 JR CONT_5
////////////////////////////////////////////////////////////////////////
BLOCK #28-$,0
RST28: RST28:
JP RST28_EXE JP RST28_EXE
////////////////////////////////////////////////////////////////////////
CONT_5: CONT_5:
LD (HL),2 LD (HL),2
DEC HL DEC HL
CP H CP H
JR NZ,CONT_5 JR NZ,CONT_5
JR CONT_6 JR CONT_6
////////////////////////////////////////////////////////////////////////
REDIR_RST38: REDIR_RST38:
BLOCK #38-$,#FF
; JP RST38X ; JP RST38X
; EI ; EI
; RET ; RET
RST 38H R38: EI
RST 38H
RST 38H
RST 38H
RST 38H
R38:
EI
RET RET
CONT_6: CONT_6:
OR A OR A
@ -128,25 +148,33 @@ CONT_6:
CONT_7: CONT_7:
DEC HL DEC HL
LD (P_RAMTOP),HL LD (P_RAMTOP),HL
LD DE,3EAFh LD DE,#3EAF
LD BC,00A8h LD BC,#00A8
LD A,E LD A,E
EX DE,HL EX DE,HL
LD SP,6000h LD SP,#6000
LD (AUTO_5F00),HL LD (AUTO_5F00),HL
LD HL,RET_1 LD HL,RET_1
PUSH HL PUSH HL
LD HL,3D2Fh LD HL,#3D2F
PUSH HL PUSH HL
LD HL,0B8EDh LD HL,#B8ED
////////////////////////////////////////////////////////////////////////
BLOCK #64-$,0
AUTO_0064: AUTO_0064:
JR CONT_8 JR CONT_8
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
BLOCK #66-$,0
;********** MAGIC *********** ;********** MAGIC ***********
; JP MAGIC_1 ;AUTO_2A56 ; JP MAGIC_1 ;AUTO_2A56
RETN RETN
NOP NOP
;********************************* ////////////////////////////////////////////////////////////////////////
CONT_8: CONT_8:
LD (AUTO_5F10),HL LD (AUTO_5F10),HL
PUSH AF PUSH AF
@ -567,6 +595,7 @@ AUTO_03CD:
LD A,(MSG_FLAG) LD A,(MSG_FLAG)
OR A OR A
CALL Z,PRINT_L CALL Z,PRINT_L
;!FIXIT Žè¨¡ª !!! <20>¥à¥¤ ¯¥ç âìî ­ ¤® ®âªàëâì ¯®â®ª 0 ¨ ®ç¨áâ¨âì ­¨§ íªà ­ .
RET RET
AUTO_03D9: AUTO_03D9:
LD HL,AUTO_2A28 LD HL,AUTO_2A28
@ -597,9 +626,16 @@ RD_HEAD_DSK:
LD A,(CODE_10H) LD A,(CODE_10H)
CP 16 CP 16
JR Z,AUTO_0415 JR Z,AUTO_0415
;!TEST
; <20>¥¯à ¢¨«ì­® ®¡à ¡ â뢠« áì ®è¨¡ª . <20>ணࠬ¬  ­¥ ¯®«ãç «  ª®¤
; ®è¨¡ª¨,   ¢­¨§ã íªà ­  ᮢ¥à襭­® ­¥ ª ¬¥áâã ¯®ï¢«ï«áï DISK ERROR.
;LD HL,DISK_ERROR_MSG
;RST PRINT_LN
;JR AUTO_03C0
LD HL,DISK_ERROR_MSG LD HL,DISK_ERROR_MSG
RST PRINT_LN JP RD_HEAD_DSK.FIXED
JR AUTO_03C0 ;
AUTO_0415: AUTO_0415:
CALL get_disk_type CALL get_disk_type
RES 0,(HL) RES 0,(HL)
@ -659,7 +695,10 @@ AUTO_0479:
PUSH AF PUSH AF
CALL Z,AUTO_1D97 CALL Z,AUTO_1D97
POP AF POP AF
CP 17 ;!TEST
;CP 17
CP #10
;
JP NC,CMD_ERROR JP NC,CMD_ERROR
CALL AUTO_1D84 CALL AUTO_1D84
LD A,255 LD A,255
@ -846,8 +885,10 @@ AUTO_05BD:
AUTO_05CB: AUTO_05CB:
LD A,(FL_NAME) LD A,(FL_NAME)
CP '*' CP '*'
JP NZ,AUTO_03D9 ;JP NZ,AUTO_03D9
CALL BAS_2BF1 JR Z,.next
RET
.next: CALL BAS_2BF1
EX DE,HL EX DE,HL
CALL SET_DRIVE CALL SET_DRIVE
LD A,(HL) LD A,(HL)
@ -876,7 +917,7 @@ AUTO_05F4:
JR Z,AUTO_05F4 JR Z,AUTO_05F4
LD HL,FL_START LD HL,FL_START
LD DE,VAR_2 LD DE,VAR_2
LD BC,START+7 LD BC,7
LDIR LDIR
LD A,(DISK_2_FLG) LD A,(DISK_2_FLG)
CALL SET_DISK CALL SET_DISK
@ -897,7 +938,7 @@ AUTO_063C:
JP Z,AUTO_1C45 JP Z,AUTO_1C45
LD HL,VAR_2 LD HL,VAR_2
LD DE,FL_START LD DE,FL_START
LD BC,START+7 LD BC,7
LDIR LDIR
LD DE,(FL_SIZE) LD DE,(FL_SIZE)
LD D,0 LD D,0
@ -945,11 +986,15 @@ CMD_COPY:
CALL AUTO_1CB0 CALL AUTO_1CB0
LD A,(OPER_DISK) LD A,(OPER_DISK)
LD (DISK_1_FLG),A LD (DISK_1_FLG),A
JP NZ,AUTO_05CB ;!TEST Žè¨¡ª !!! COPY "*","*" ­ ¤® ¯à®¢¥àïâì ¢á¥£¤ , ¨­ ç¥ ¯à¨
; ­ «¨ç¨¨ ­  ¤¨áª¥ ä ©«  á ¨¬¥­¥¬ "*" ᪮¯¨àã¥âáï ⮫쪮 íâ®â ä ©«
;JP NZ,AUTO_05CB
CALL CMD_COPY.FIXED
;
CALL AUTO_165D CALL AUTO_165D
LD HL,FL_START LD HL,FL_START
LD DE,VAR_2 LD DE,VAR_2
LD BC,START+7 LD BC,7
LDIR LDIR
CALL AUTO_1CB0 CALL AUTO_1CB0
PUSH AF PUSH AF
@ -987,7 +1032,7 @@ AUTO_0716:
CALL AUTO_165D CALL AUTO_165D
LD HL,FL_START LD HL,FL_START
LD DE,VAR_2 LD DE,VAR_2
LD BC,START+7 LD BC,7
LDIR LDIR
LD A,(DISK_2_FLG) LD A,(DISK_2_FLG)
CALL SET_DISK CALL SET_DISK
@ -1378,7 +1423,7 @@ AUTO_11B0:
; ;
CMD_LIST: CMD_LIST:
CALL TEST_CR CALL TEST_CR
LD BC,START+2 LD BC,2
LD (MED_LEN),BC LD (MED_LEN),BC
JR Z,AUTO_1205 JR Z,AUTO_1205
CP '#' CP '#'
@ -1438,7 +1483,7 @@ AUTO_123E:
CALL PRINT_SYM CALL PRINT_SYM
CALL PRINT_CR CALL PRINT_CR
LD HL,(VAR_1) LD HL,(VAR_1)
LD BC,START+3 LD BC,3
ADD HL,BC ADD HL,BC
LD A,(HL) LD A,(HL)
LD HL,(VAR_1) LD HL,(VAR_1)
@ -1450,7 +1495,7 @@ AUTO_123E:
LD HL,AUTO_10AA LD HL,AUTO_10AA
RST PRINT_LN RST PRINT_LN
LD HL,(VAR_1) LD HL,(VAR_1)
LD BC,START+2 LD BC,2
ADD HL,BC ADD HL,BC
LD A,(HL) LD A,(HL)
LD HL,AUTO_10CE LD HL,AUTO_10CE
@ -1474,7 +1519,7 @@ AUTO_1292:
LD HL,AUTO_111E LD HL,AUTO_111E
RST PRINT_LN RST PRINT_LN
LD HL,(VAR_1) LD HL,(VAR_1)
LD BC,START+4 LD BC,4
ADD HL,BC ADD HL,BC
LD C,(HL) LD C,(HL)
INC HL INC HL
@ -1551,7 +1596,7 @@ AUTO_1303:
CALL PRINT_CR CALL PRINT_CR
JP AUTO_123E JP AUTO_123E
AUTO_131B: AUTO_131B:
LD BC,START+5 LD BC,5
ADD HL,BC ADD HL,BC
LD B,(HL) LD B,(HL)
INC HL INC HL
@ -1638,7 +1683,7 @@ AUTO_13B7:
CALL AUTO_165D CALL AUTO_165D
LD HL,FL_START LD HL,FL_START
LD DE,VAR_2 LD DE,VAR_2
LD BC,START+7 LD BC,7
LDIR LDIR
LD A,(VAR_2_0) LD A,(VAR_2_0)
LD (ERR_3D00),A LD (ERR_3D00),A
@ -1679,7 +1724,7 @@ AUTO_1403:
JP Z,AUTO_2723 JP Z,AUTO_2723
LD HL,VAR_2 LD HL,VAR_2
LD DE,FL_START LD DE,FL_START
LD BC,START+7 LD BC,7
LDIR LDIR
CALL AUTO_03FD CALL AUTO_03FD
LD A,(ERR_3D00) LD A,(ERR_3D00)
@ -1839,7 +1884,7 @@ AUTO_1575:
SBC HL,BC SBC HL,BC
LD (FL_TYPE),HL LD (FL_TYPE),HL
LD (FL_N_2),HL LD (FL_N_2),HL
LD HL,START LD HL,0
LD (FL_N_4),HL LD (FL_N_4),HL
LD (FL_N_6),HL LD (FL_N_6),HL
CALL AUTO_15B8 CALL AUTO_15B8
@ -1890,7 +1935,7 @@ AUTO_15DB:
POP BC POP BC
JP NC,AUTO_1644 JP NC,AUTO_1644
LD BC,(FL_TYPE) LD BC,(FL_TYPE)
LD HL,START LD HL,0
LD (FL_TYPE),HL LD (FL_TYPE),HL
AUTO_15F8: AUTO_15F8:
PUSH BC PUSH BC
@ -1976,6 +2021,7 @@ AUTO_168F:
LD B,A LD B,A
LD C,0 LD C,0
RET RET
;
LD (MED_START),HL LD (MED_START),HL
LD (MED_LEN),HL LD (MED_LEN),HL
LD DE,(FL_SIZE) LD DE,(FL_SIZE)
@ -2001,7 +2047,7 @@ CMD_MOVE:
SUB 9 SUB 9
LD (L_5D23),A LD (L_5D23),A
LD HL,(FL_N_4) LD HL,(FL_N_4)
LD DE,START LD DE,0
LD B,9 LD B,9
CALL READ_DISK CALL READ_DISK
LD HL,(FL_N_4) LD HL,(FL_N_4)
@ -2085,7 +2131,7 @@ CMD_MOVE:
ADD HL,DE ADD HL,DE
LD (HL),0 LD (HL),0
LD HL,(FL_N_4) LD HL,(FL_N_4)
LD DE,START LD DE,0
LD B,9 LD B,9
CALL WRITE_DISK CALL WRITE_DISK
LD A,(L_5D23) LD A,(L_5D23)
@ -2469,11 +2515,11 @@ AUTO_1A01:
LD DE,(FL_START) LD DE,(FL_START)
PUSH DE PUSH DE
PUSH HL PUSH HL
LD HL,START LD HL,0
LD A,(DISK_2_FLG) LD A,(DISK_2_FLG)
CP 255 CP 255
JR Z,AUTO_1A20 JR Z,AUTO_1A20
LD HL,START+5 LD HL,5
AUTO_1A20: AUTO_1A20:
ADD HL,DE ADD HL,DE
LD (MED_LEN),HL LD (MED_LEN),HL
@ -2586,7 +2632,7 @@ AUTO_1AC4:
; ;
CMD_SAVE: CMD_SAVE:
CALL AUTO_1852 CALL AUTO_1852
LD HL,START LD HL,0
LD (AUTO_5CD1),HL LD (AUTO_5CD1),HL
CALL INPUT_TXT CALL INPUT_TXT
CALL AUTO_1D8C CALL AUTO_1D8C
@ -2734,7 +2780,7 @@ AUTO_1BDE:
AUTO_1BFC: AUTO_1BFC:
CALL AUTO_1C1B CALL AUTO_1C1B
RET NC RET NC
LD HL,START LD HL,0
LD (DOS_CH_ADR),HL LD (DOS_CH_ADR),HL
LD A,(DISK_2_FLG) LD A,(DISK_2_FLG)
CP 255 CP 255
@ -3121,8 +3167,8 @@ AUTO_1E67:
LD (CONT_SEC),DE LD (CONT_SEC),DE
JP R_W_REDIR JP R_W_REDIR
LD (HL),30 ; <20>… ¨á¯. !!! ;LD (HL),30 ; <20>… ¨á¯. !!!
BLOCK #1E70-$,0
AUTO_1E70: AUTO_1E70:
POP HL POP HL
POP BC POP BC
@ -3182,7 +3228,7 @@ AUTO_1EBC:
; ;
; ;
CMD_FORMAT: CMD_FORMAT:
LD HL,START LD HL,0
LD (MED_START),HL LD (MED_START),HL
LD (DOS_CH_ADR),HL LD (DOS_CH_ADR),HL
LD (AUTO_5CD1),HL LD (AUTO_5CD1),HL
@ -3711,7 +3757,7 @@ AUTO_229A:
LD (DOS_CH_ADR),HL LD (DOS_CH_ADR),HL
CALL AUTO_1AC4 CALL AUTO_1AC4
CALL AUTO_1B59 CALL AUTO_1B59
LD HL,START LD HL,0
LD (FL_LEN),HL LD (FL_LEN),HL
CALL AUTO_166B CALL AUTO_166B
JP AUTO_1E43 JP AUTO_1E43
@ -4127,7 +4173,7 @@ AUTO_2504:
RST RST28 RST RST28
LD B,(HL) LD B,(HL)
XOR A XOR A
LD HL,START LD HL,0
LD (MED_LEN),HL LD (MED_LEN),HL
AUTO_2538: AUTO_2538:
ADD HL,DE ADD HL,DE
@ -4455,8 +4501,8 @@ AUTO_276B:
AUTO_2779: AUTO_2779:
DB "BACKUP DISK",141 DB "BACKUP DISK",141
AUTO_2785: AUTO_2785:
DB "Insert Destination disk",13,"then " DB "Insert Destination disk",13
DB "press Y",0 DB "then press Y",0
AUTO_27AA: AUTO_27AA:
DB "Insert Source disk then press Y",0 DB "Insert Source disk then press Y",0
AUTO_27CA: AUTO_27CA:
@ -4469,13 +4515,16 @@ AUTO_27ED:
DB "Directory full",141 DB "Directory full",141
AUTO_27FC: AUTO_27FC:
DB "No disk",141 DB "No disk",141
DISPLAY "10k" DISPLAY "10k"
AUTO_2804: AUTO_2804:
DB "Stream opened",141 DB "Stream opened",141
AUTO_2812: AUTO_2812:
DB "Not disk file",141 DB "Not disk file",141
AUTO_2820: AUTO_2820:
DB "File exists",13,"Over write?(Y/N",169 DB "File exists",13
DC "Over write?(Y/N)"
AUTO_283C: AUTO_283C:
PUSH AF PUSH AF
PUSH BC PUSH BC
@ -4489,7 +4538,7 @@ AUTO_283C:
POP AF POP AF
LD HL,AUTO_0201 LD HL,AUTO_0201
LD (ADR_RET),HL LD (ADR_RET),HL
LD HL,START LD HL,0
ADD HL,SP ADD HL,SP
LD (DOS_SP),HL LD (DOS_SP),HL
DEC HL DEC HL
@ -4711,34 +4760,20 @@ CMD_80: LD A,#80 ;
; ;
; ;
;€¤à¥á #29B2. ’¥ªáâë á®®¡é¥­¨© TR-DOS. ;€¤à¥á #29B2. ’¥ªáâë á®®¡é¥­¨© TR-DOS.
AUTO_29B2: AUTO_29B2: DB 13, "*ERROR*", 141
DB 13,"*ERROR*",141 AUTO_29BB: DB 13, "No space", 141
AUTO_29BB: AUTO_29C5: DB 13, "File exists", 141
DB 13,"No space",141 AUTO_29D2: DB " Free", 141
AUTO_29C5: READ_ONLY_MSG: DC 13, "Read Only"
DB 13,"File exists",141 DISK_ERROR_MSG: DC 13, "Disk Error"
AUTO_29D2: AUTO_29ED: DC 13, "Rec. O/F"
DB " Free",141 AUTO_29F7: DC "Title: "
READ_ONLY_MSG: AUTO_29FE: DZ 13, "Retry,Abort,Ignore?"
DB 13,"Read Onl",249 AUTO_2A13: DC 13, "Trk "
DISK_ERROR_MSG: AUTO_2A18: DC " sec "
DB 13,"Disc Erro",242 AUTO_2A1D: DB " Del. File", 141
AUTO_29ED: AUTO_2A28: DB 13, "No"
DB 13,"Rec. O/",198 AUTO_2A2B: DZ " File(s)", 141
AUTO_29F7:
DB "Title:",160
AUTO_29FE:
DB 13,"Retry,Abort,Ignore?",0
AUTO_2A13:
DB 13,"Trk",160
AUTO_2A18:
DB " sec",160
AUTO_2A1D:
DB " Del. File",141
AUTO_2A28:
DB 13,"No"
AUTO_2A2B:
DB " File(s)",141,0
AUTO_2A35: AUTO_2A35:
LD HL,AUTO_2A41 LD HL,AUTO_2A41
LD DE,AUTO_4080 LD DE,AUTO_4080
@ -4778,7 +4813,7 @@ AUTO_2A56:
PUSH AF PUSH AF
LD A,R LD A,R
PUSH AF PUSH AF
LD HL,START LD HL,0
ADD HL,SP ADD HL,SP
PUSH HL PUSH HL
LD A,3Ch LD A,3Ch
@ -4872,13 +4907,13 @@ AUTO_2B09:
INC HL INC HL
LD (HL),D LD (HL),D
LD HL,AUTO_4000 LD HL,AUTO_4000
LD DE,START LD DE,0
IN A,(WG_SEC) IN A,(WG_SEC)
DEC A DEC A
LD E,A LD E,A
LD B,1 LD B,1
CALL AUTO_2D73 CALL AUTO_2D73
LD HL,START LD HL,0
ADD HL,SP ADD HL,SP
LD (AUTO_4140),HL LD (AUTO_4140),HL
LD SP,AUTO_41FF LD SP,AUTO_41FF
@ -4955,7 +4990,7 @@ AUTO_2B95:
INC A INC A
LD (AUTO_40E4),A LD (AUTO_40E4),A
LD HL,(AUTO_40E5) LD HL,(AUTO_40E5)
LD DE,START+1 LD DE,1
SBC HL,DE SBC HL,DE
LD (AUTO_40E5),HL LD (AUTO_40E5),HL
RET C RET C
@ -6473,11 +6508,22 @@ EXP_FNS_PREPARE:
RET RET
EXP_FNS_PREPARE_EXIT: EXP_FNS_PREPARE_EXIT:
PUSH AF PUSH AF
XOR A XOR A ; SYS_PORT.BIOS
JP EXP_FNS_PREPARE_RET JP EXP_FNS_PREPARE_RET
;******************************* ;*******************************
RD_HEAD_DSK.FIXED:
LD A,7
JP AUTO_1C4A
CMD_COPY.FIXED:
PUSH AF
CALL AUTO_05CB
POP AF
RET Z
INC SP
INC SP
JP AUTO_03D9
;******************************* ;*******************************
BLOCK #3CC0 - $,255 BLOCK #3CC0 - $,255
MAGIC_1: MAGIC_1:
@ -6521,9 +6567,11 @@ REDIR_3D13:
JP NZ,EXP_FNS ;#3FF8 EXP JP NZ,EXP_FNS ;#3FF8 EXP
BIT 6,C BIT 6,C
JP Z,AUTO_283C JP Z,AUTO_283C
RES 6,C ;!TEST 06/01/2024 㡨ࠥ¬ «¨è­¨¥ ⥫®¤¢¨¦¥­¨ï
JP HD_CMD ;#3FF0 ROM. DI ;RES 6,C
;JP HD_CMD ;#3FF0 ROM. DI
JP EXP_FNS
;
;***************************** ;*****************************
BLOCK #3CFA - $,255 BLOCK #3CFA - $,255
AUTO_3CFA: AUTO_3CFA:
@ -6662,7 +6710,7 @@ AUTO_3DA5:
RESET_WG: RESET_WG:
LD A,8 LD A,8
CALL WG93_EXE CALL WG93_EXE
LD DE,START LD DE,0
IN A,(WG_COM) IN A,(WG_COM)
AND 2 AND 2
LD B,A LD B,A
@ -7031,25 +7079,25 @@ AUTO_3FEC:
;****************************************** ;******************************************
;!FIXIT Œ®¦­® ¯®¯à ¢¨âì ­®¬¥à  ä㭪権 ¯à¨ ¢ë§®¢ å API ¨ ¯à룠âì áà §ã ¢ BIOS ç¥à¥§ #3FF8 ;[x]] ¯®¯à ¢«¥­ë ­®¬¥à  ä㭪権 ¯à¨ ¢ë§®¢ å API ¨ ¯à룠¥â áà §ã ¢ BIOS ç¥à¥§ #3FF8
;-------[ From TR-DOS to API 4x ]------- ;-------[ From TR-DOS to API 4x ]-------
BLOCK #3FF0-$, #FF BLOCK #3FF0-$, #FF
HD_CMD: PUSH AF HD_CMD: PUSH AF
DI DI
LD A,D_ROM16ON ;LD A,SYS_PORT.EXTENSION
LD A,1
OUT (SYS_PORT_ON),A OUT (SYS_PORT_ON),A
POP AF POP AF
RET RET
;--------------------------------------- ;---------------------------------------
; ;
;----[ From API #80..#FF to TR-DOS ]----- ;----[ From TR-DOS to API #80..#FF]-----
BLOCK #3FF8-$, #FF BLOCK #3FF8-$, #FF
EXP_FNS: EXP_FNS:;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
;PUSH AF ;PUSH AF
;DI ;!TODO ¯®¤ã¬ âì, ª ª á®åà ­ïâì á®áâ®ï­¨¥ ¯à¥à뢠­¨© ¨ ­¨ç¥£® ­¥ á«®¬ âì ;DI ;!TODO ¯®¤ã¬ âì, ª ª á®åà ­ïâì á®áâ®ï­¨¥ ¯à¥à뢠­¨© ¨ ­¨ç¥£® ­¥ á«®¬ âì
;XOR A ; D_ROM16OFF ;XOR A ; SYS_PORT.BIOS
JP EXP_FNS_PREPARE JP EXP_FNS_PREPARE
EXP_FNS_PREPARE_RET: EXP_FNS_PREPARE_RET:
; ;

View File

@ -19260,12 +19260,11 @@ L3C8F: DEFB $13, $00 ; Bright, off
DEFB $31, $39 ; '1', '9' DEFB $31, $39 ; '1', '9'
DEFB $13, $01 ; Bright, on DEFB $13, $01 ; Bright, on
DEFB $38, $36 ; '8', '6' DEFB $38, $36 ; '8', '6'
L3C97:
; ------ ; ------
; UNUSED ; UNUSED
; ------ ; ------
L3C97:
BLOCK #3CF0-$,0 ;15600 BLOCK #3CF0-$,0 ;15600
;> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >; ;> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >;
; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»

@ -1 +1 @@
Subproject commit 24e062942e2c89a1bcd5817cc82316b52186f86c Subproject commit e7e58e7b816a25137a0a253321164e863bbe782e

View File

@ -100,12 +100,12 @@ MSDOS_CAT:
CALL AUTO_1D97 ; CLS CALL AUTO_1D97 ; CLS
CALL OPEN_CH2 CALL OPEN_CH2
LD A,13 LD A,13
RST 10H RST #10
POP DE ; <E28098>ŽŠ€ <20>Ž… CAT POP DE ; <E28098>ŽŠ€ <20>Ž… CAT
CAT_SPACES: CAT_SPACES:
LD A,(DE) LD A,(DE)
CP 20H CP #20
JR NZ,CAT_NO_SPACE JR NZ,CAT_NO_SPACE
INC DE INC DE
JR CAT_SPACES JR CAT_SPACES
@ -523,14 +523,13 @@ CALC_CL_LP:
POP BC POP BC
RET RET
HD_TX: DB ' ERR_HD',0A0H HD_TX: DC ' ERR_HD '
HD_TX2: DB 'HDD not found',0A0H HD_TX2: DC 'HDD not found '
MSG_3: DB 'ERROR...',0A0H MSG_3: DC 'ERROR... '
MSDOS_MSG: DB 'File not found...',0A0H MSDOS_MSG: DC 'File not found... '
NO_MEMORY: DB 'No RAM-Disk MEM',0A0H NO_MEMORY: DC 'No RAM-Disk MEM '
WORDS: WORDS: DB 5,'CLEAR' ; ®ç¨áâ¨âì RAM-Disk
DB 5,'CLEAR' ; ®ç¨áâ¨âì RAM-Disk
DW CLEAR_RAMD_X DW CLEAR_RAMD_X
DB 3,'CAT' ; ª â «®£ MS-DOS DB 3,'CAT' ; ª â «®£ MS-DOS
DW MSDOS_CAT DW MSDOS_CAT
@ -560,6 +559,10 @@ WORDS:
DW SPR_1 DW SPR_1
DB 2,"AY" DB 2,"AY"
DW AY8910 DW AY8910
;[ ] 07/01/2024
DB 6,'SETHDD' ; /SETHDD XYZ, £¤¥ X - chanel, Y - master/slave, Z - 0..3 - ­®¬¥à à §¤¥« 
DW CHOOSE_HDD
;
DB 0 DB 0
;SAVE_AUTOEXEC: ;SAVE_AUTOEXEC:
@ -577,18 +580,17 @@ AY8910:
AND A AND A
RET RET
SPR_1: SPR_1: LD A,(DE)
LD A,(DE)
INC DE INC DE
CP #20 CP " "
JR Z,SPR_1 JR Z,SPR_1
CP "1" CP "1"
LD C,#F0 ;!HARDCODE BIOS.RST_CONF.SP97_1 LD C,BIOS.RST_CONF.SP97_1
JR Z,SP_1 JR Z,SP_1
CP "2" CP "2"
SCF SCF
RET NZ RET NZ
LD C,#F1 ;!HARDCODE BIOS.RST_CONF.SP97_2 LD C,BIOS.RST_CONF.SP97_2
SP_1: LD A,(DE) SP_1: LD A,(DE)
CP #21 CP #21
CCF CCF

View File

@ -1,6 +1,6 @@
INIT_RMD: INIT_RMD:
LD C,#9F ;!HARDCODE BIOS.FullInit LD C,BIOS.FullInit
;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â® ;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
JP EXP_FNS JP EXP_FNS
;CALL EXP_FNS ;CALL EXP_FNS
@ -41,7 +41,6 @@ RAMD_F_L1:
LD A,C LD A,C
LD C,(HL) LD C,(HL)
OUT (PAGE3),A OUT (PAGE3),A
; RET_PAGE3
EI EI
PUSH HL PUSH HL
LD A,C LD A,C
@ -52,22 +51,28 @@ RAMD_F_L1:
CALL OPEN_CH0 CALL OPEN_CH0
JP AUTO_03E1 JP AUTO_03E1
;*************************************************************************** ;***************************************************************************
;[x] ¨á¯à ¢«¥­ ¡ £ á ­¥à ¡®â î騬¨ ª®¬ ­¤ ¬¨ TBON/TBOFF
TB_ONOFF: TB_ONOFF:
DEC DE DEC DE
DEC DE DEC DE
LD A,(DE) LD A,(DE)
CP 'F' OR %0010'0000
JR Z,TB_OFF_EXE
CP 'f' CP 'f'
JR Z,TB_OFF_EXE LD C,BIOS.FN_TURBO
TB_ON_EXE: LD A,BIOS.FN_TURBO.OFF
LD C,#8F ;!HARDCODE BIOS.FN_TURBO JR Z,.set
LD A,4 ;
JP EXP_FNS LD A,BIOS.FN_TURBO.ON
TB_OFF_EXE: .set: JP EXP_FNS
LD C,#8F ;!HARDCODE BIOS.FN_TURBO
LD A,3 ; TB_ON_EXE:
JP EXP_FNS ; LD C,BIOS.FN_TURBO
; LD A,4
; JP EXP_FNS
; TB_OFF_EXE:
; LD C,BIOS.FN_TURBO
; LD A,3
; JP EXP_FNS
; ;
;*************************************************************************** ;***************************************************************************
; ;
@ -82,19 +87,19 @@ TB_OFF_EXE:
MSDOS_WRITE_FILE: MSDOS_WRITE_FILE:
LD (CONT_BUF_ADR),HL ;  ¤à¥á § £à㧪¨ LD (CONT_BUF_ADR),HL ;  ¤à¥á § £à㧪¨
LD (MED_START),A ; áâà ­¨æ  § £à㧪¨ LD (MED_START),A ; áâà ­¨æ  § £à㧪¨
LD A,6 LD A,TRDOS_ROM_CMD.WRITE
JR MSDOS_R_W_FILE JR MSDOS_R_W_FILE
; ;
MSDOS_READ_FILE: MSDOS_READ_FILE:
LD (CONT_BUF_ADR),HL ;  ¤à¥á § £à㧪¨ LD (CONT_BUF_ADR),HL ;  ¤à¥á § £à㧪¨
LD (MED_START),A ; áâà ­¨æ  § £à㧪¨ LD (MED_START),A ; áâà ­¨æ  § £à㧪¨
LD A,5 LD A,TRDOS_ROM_CMD.READ
MSDOS_R_W_FILE: MSDOS_R_W_FILE:
LD (MED_LEN),A LD (MED_LEN),A
; beg=start_claster ; <20>®«ãç¨âì ­ ç «ì­ë© ª« áâ¥à ; beg=start_claster. <20>®«ãç¨âì ­ ç «ì­ë© ª« áâ¥à
LD IX,(START_CLASTER) ; áâ àâ®¢ë© ª« áâ¥à LD IX,(START_CLASTER) ; áâ àâ®¢ë© ª« áâ¥à
; next=beg ; next=beg
; max=file_len ; ¤«¨­  ¢ ª« áâ¥à å ; max=file_len. ¤«¨­  ¢ ª« áâ¥à å
CALL GET_FILE_CLASTERS_BC CALL GET_FILE_CLASTERS_BC
; LD A,B ; LD A,B
; CALL PRINT_HEX_A ; CALL PRINT_HEX_A
@ -215,10 +220,11 @@ READ_num_clasters_from_beg:
PUSH AF PUSH AF
LD A,(MED_LEN) LD A,(MED_LEN)
LD C,A LD C,A
SUB 5 SUB TRDOS_ROM_CMD.READ
JR Z,CONT_XX1 JR Z,CONT_XX1
DEC A DEC A
JR NZ,SKEEP_XX1 JR NZ,SKEEP_XX1
;TRDOS_ROM_CMD.WRITE
CONT_XX1: CONT_XX1:
POP AF POP AF
@ -497,8 +503,7 @@ READ_FAT_SEC:
LD HL,MS_FAT LD HL,MS_FAT
LD A,SYS_PAGE LD A,SYS_PAGE
LD B,2 LD BC,256*2 + TRDOS_ROM_CMD.READ
LD C,5
CALL MSD_R_W_UT CALL MSD_R_W_UT
POP HL POP HL
@ -550,8 +555,12 @@ GET_FL_L2:
;*************************************************************************** ;***************************************************************************
HDD_PROG: HDD_PROG:
LD C,BIOS.HDD_INIT and #BF ;!TEST 06/01/2024 㡨ࠥ¬ «¨è­¨¥ ⥫®¤¢¨¦¥­¨ï
CALL HD_CMD ;LD C,BIOS.HDD_INIT and #BF
;CALL HD_CMD
LD C,BIOS.HDD_INIT
CALL EXP_FNS
;
JP C,HDD_PROG_E JP C,HDD_PROG_E
LD HL,HD_IDF_ADR+54 LD HL,HD_IDF_ADR+54
LD B,32 LD B,32
@ -578,8 +587,12 @@ HDD_PROG_L:
RST 10H RST 10H
POP BC POP BC
DJNZ HDD_PROG_L DJNZ HDD_PROG_L
LD C,BIOS.HDD_RECAL and #BF ;!TEST 06/01/2024 㡨ࠥ¬ «¨è­¨¥ ⥫®¤¢¨¦¥­¨ï
CALL HD_CMD ;LD C,BIOS.HDD_RECAL and #BF
;CALL HD_CMD
LD C,BIOS.HDD_RECAL
CALL EXP_FNS
;
JP NC,AUTO_03E1 JP NC,AUTO_03E1
HDD_ERROR: HDD_ERROR:

View File

@ -5,7 +5,6 @@
;******************************************** ;********************************************
; MS-DOS utilites ; MS-DOS utilites
;******************************************** ;********************************************
MSD_R_W_UT: MSD_R_W_UT:
PUSH AF PUSH AF
CALL DISK_REDIR CALL DISK_REDIR
@ -20,7 +19,11 @@ MSD_R_W_UT:
;* 5. ‘âà ­¨æ  އ“ - A * ;* 5. ‘âà ­¨æ  އ“ - A *
;************************************************ ;************************************************
.HDD: POP AF .HDD: POP AF
CALL HD_CMD ;!TEST 06/01/2024 㡨ࠥ¬ «¨è­¨¥ ⥫®¤¢¨¦¥­¨ï
;CALL HD_CMD
SET 6,C
CALL EXP_FNS
;
RET NC RET NC
JP HDD_ERROR JP HDD_ERROR
;************************************************ ;************************************************
@ -166,7 +169,7 @@ MSD_R_W_LOOP:
LD C,A LD C,A
LD A,SYS_PAGE LD A,SYS_PAGE
OUT (PAGE2),A OUT (PAGE2),A
LD DE,(MS_BPB+SEC_SIZE-4000h) LD DE,(MS_BPB+SEC_SIZE-#4000)
LD A,C LD A,C
OUT (PAGE2),A OUT (PAGE2),A
EI EI
@ -181,14 +184,14 @@ MSD_R_W_LOOP:
LD A,SYS_PAGE LD A,SYS_PAGE
OUT (PAGE2),A OUT (PAGE2),A
LD A,(MED_START) LD A,(MED_START)
LD HL,RAMD_FAT-4000H LD HL,RAMD_FAT-#4000
LD L,A LD L,A
LD L,(HL) LD L,(HL)
LD A,C LD A,C
OUT (PAGE2),A OUT (PAGE2),A
EI EI
LD A,L LD A,L
LD HL,0C000H LD HL,#C000
LD (MED_START),A LD (MED_START),A
MSD_NO_PAGE: MSD_NO_PAGE:
LD (CONT_BUF_ADR),HL LD (CONT_BUF_ADR),HL
@ -199,10 +202,10 @@ MSD_NO_PAGE:
LD C,A LD C,A
LD A,SYS_PAGE LD A,SYS_PAGE
OUT (PAGE2),A OUT (PAGE2),A
LD A,(DS_1440-4000H) LD A,(DS_1440-#4000)
RES 0,A AND %1111'1110
LD (DS_1440-4000H),A LD (DS_1440-#4000),A
LD A,(MSD_SECS-4000h) LD A,(MSD_SECS-#4000)
LD L,A LD L,A
LD A,C LD A,C
OUT (PAGE2),A OUT (PAGE2),A
@ -434,16 +437,18 @@ READ_BPB:
LD DE,63 ;!HARDCODE LD DE,63 ;!HARDCODE
LD A,SYS_PAGE LD A,SYS_PAGE
LD HL,MS_BPB LD HL,MS_BPB
LD C,BIOS.HDD_READ and #BF ;
LD B,1 LD BC,256*1 + TRDOS_ROM_CMD.READ
CALL MSD_R_W_UT CALL MSD_R_W_UT
CALL READ_BPB.PARAMS CALL READ_BPB.PARAMS
RET NC RET NC
JP .ERROR_MSDOS JP .ERROR_MSDOS
.MAIN: LD A,SYS_PAGE .MAIN: LD A,SYS_PAGE
LD HL,MS_BPB LD HL,MS_BPB
LD C,BIOS.HDD_READ_BPB and #BF LD C,TRDOS_ROM_CMD.READ_BPB
CALL MSD_R_W_UT CALL MSD_R_W_UT
;CALL BPB_PARAMS ;CALL BPB_PARAMS
;RET ;RET
@ -644,8 +649,7 @@ READ_NEXT2:
EI EI
LD HL,MS_DIR LD HL,MS_DIR
LD A,SYS_PAGE LD A,SYS_PAGE
LD B,1 LD BC,256*1 + TRDOS_ROM_CMD.READ
LD C,5
CALL MSD_R_W_UT CALL MSD_R_W_UT
DI DI
IN A,(PAGE3) IN A,(PAGE3)

View File

@ -288,7 +288,7 @@ PAGE_CALC2:
LD B,A LD B,A
LD C,H LD C,H
POP HL POP HL
EI ;EI
RET NC RET NC
JP ERROR_DISK JP ERROR_DISK
@ -399,7 +399,7 @@ CLEAR_RMD_A:
PUSH HL PUSH HL
PUSH DE PUSH DE
PUSH BC PUSH BC
LD C,#93 ;!HARDCODE BIOS.FreeMemRMD LD C,BIOS.FreeMemRMD
CALL EXP_FNS ; ¢ë§¢ âì äã­ªæ¨î CALL EXP_FNS ; ¢ë§¢ âì äã­ªæ¨î
;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â® ;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
;EI ;EI
@ -410,9 +410,10 @@ CLEAR_RMD_A:
RET RET
;********************************************************* ;*********************************************************
; B - —ˆ‘‹Ž <><EFBFBD>“…Œ<20>ŽŠŽ, A - Š‹ž— RAM-Disk
GET_RMD_A: GET_RMD_A:
GET_RAM_BLK: ; B - —ˆ<E28098> <><EFBFBD>“…Œ<20><EFBFBD>Š<EFBFBD>, A - Š<C5A0>— RAM-Disk GET_RAM_BLK:
LD C,#92 ;!HARDCODE BIOS.GetMemRMD LD C,BIOS.GetMemRMD
CALL EXP_FNS ; A,L - Š‹ž— RAM-Disk - ­®¬¥à ¯¥à¢®£® ¡«®ª  CALL EXP_FNS ; A,L - Š‹ž— RAM-Disk - ­®¬¥à ¯¥à¢®£® ¡«®ª 
;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â® ;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
;EI ;EI
@ -438,15 +439,18 @@ FDD_SET:
;RET ;RET
; ;
HDD_SET: HDD_SET:;!TEST 06/01/2024 㡨ࠥ¬ «¨è­¨¥ ⥫®¤¢¨¦¥­¨ï
LD C,BIOS.HDD_INIT and #BF ;LD C,BIOS.HDD_INIT and #BF
CALL HD_CMD ;CALL HD_CMD
LD C,BIOS.HDD_INIT
CALL EXP_FNS
;
JP C,HDD_PROG_E JP C,HDD_PROG_E
LD A,(OPER_DISK) LD A,(OPER_DISK)
LD B,A LD B,A
LD A,0 XOR A
LD C,#CD ;!HARDCODE BIOS.HDD_TO_DRV LD C,BIOS.HDD_TO_DRV
;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â® ;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
JP EXP_FNS JP EXP_FNS
;CALL EXP_FNS ;CALL EXP_FNS
@ -498,3 +502,61 @@ RAMD_SYM_OK:
RET RET
;[ ] 07/01/2024
CHOOSE_HDD:
PUSH DE
LD A,(OPER_DISK)
LD C,BIOS.GET_DRV_ST
CALL EXP_FNS
POP DE
JR C,.error
AND #40 ;!HARDCODE HDD
JR Z,.error
;
.loop: LD A,(DE)
INC DE
CP ' '
JR Z,.loop
LD A,(DE)
CP #0D
JR Z,.error
; ­®¬¥à à §¤¥« 
INC DE
LD A,(DE)
CP "4"
JR NC,.error
CP "0"
JR C,.error
SUB "0"
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
DEC DE
LD A,(DE)
CP "2"
JR NC,.error
CP "0"
JR C,.error
SUB "0"
OR C
;
LD C,BIOS.HDD_PART
CALL EXP_FNS
RET NC
;
.error: LD HL,MSG_3
JP ERR_EXIT
;bit0: Primary/Secondary, bit1 - master/slave, bit2..3: ¨á¯®«ì§ãî騩áï à §¤¥« ¢ MBR