mirror of
https://github.com/Tolik-Trek/ZX-SP-ROMs.git
synced 2026-06-15 09:21:45 +03:00
...
This commit is contained in:
parent
96cc4816a1
commit
125f9faa01
242
SP_TRDOS.ASM
242
SP_TRDOS.ASM
@ -9,6 +9,8 @@
|
|||||||
|
|
||||||
;***************************************
|
;***************************************
|
||||||
INCLUDE 'INC/SPRINT00.INC'
|
INCLUDE 'INC/SPRINT00.INC'
|
||||||
|
INCLUDE 'inc/rom_routines.inc'
|
||||||
|
INCLUDE 'Shared_Includes/constants/zx_char_codes.inc'
|
||||||
;***************************************
|
;***************************************
|
||||||
;CNF_PORT EQU #74
|
;CNF_PORT EQU #74
|
||||||
AUTO_4000 EQU 04000H
|
AUTO_4000 EQU 04000H
|
||||||
@ -214,8 +216,7 @@ AUTO_00C8:
|
|||||||
LD HL,RET_INS
|
LD HL,RET_INS
|
||||||
AUTO_0100:
|
AUTO_0100:
|
||||||
LD (HL),201
|
LD (HL),201
|
||||||
RST RST20
|
RST_ROM ROUTINE.clear_prb
|
||||||
DW 00EDFH
|
|
||||||
LD HL,L_SCR_SIZE
|
LD HL,L_SCR_SIZE
|
||||||
LD (HL),2
|
LD (HL),2
|
||||||
LD HL,AUTO_128B
|
LD HL,AUTO_128B
|
||||||
@ -254,8 +255,7 @@ AUTO_0140:
|
|||||||
LD (NEW_PPC),HL
|
LD (NEW_PPC),HL
|
||||||
XOR A
|
XOR A
|
||||||
LD (NEW_S_PPC),A
|
LD (NEW_S_PPC),A
|
||||||
RST RST20
|
RST_ROM ROUTINE.set_min
|
||||||
DW 016B0H
|
|
||||||
LD HL,(BAS_PROG)
|
LD HL,(BAS_PROG)
|
||||||
DEC HL
|
DEC HL
|
||||||
LD (DATA_ADR),HL
|
LD (DATA_ADR),HL
|
||||||
@ -264,8 +264,7 @@ AUTO_0140:
|
|||||||
OR A
|
OR A
|
||||||
LD HL,AUTO_1B76
|
LD HL,AUTO_1B76
|
||||||
JR Z,AUTO_0166
|
JR Z,AUTO_0166
|
||||||
RST RST20
|
RST_ROM ROUTINE.report_0
|
||||||
DW 01BB0H
|
|
||||||
AUTO_0166:
|
AUTO_0166:
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD HL,RET_INS
|
LD HL,RET_INS
|
||||||
@ -498,7 +497,7 @@ AUTO_030A:
|
|||||||
CALL AUTO_3DC8 ; SET CONT_DISK
|
CALL AUTO_3DC8 ; SET CONT_DISK
|
||||||
POP AF
|
POP AF
|
||||||
AUTO_031A:
|
AUTO_031A:
|
||||||
LD HL,AUTO_2FF3 ; ‘<>ˆ‘ŽŠ ŠŽŒ€<C592>„
|
LD HL,TRDOS_CMD.LIST ; ‘<>ˆ‘ŽŠ ŠŽŒ€<C592>„
|
||||||
DEC HL
|
DEC HL
|
||||||
LD C,0
|
LD C,0
|
||||||
AUTO_0320:
|
AUTO_0320:
|
||||||
@ -522,7 +521,7 @@ AUTO_0320:
|
|||||||
LD HL,FLAGS
|
LD HL,FLAGS
|
||||||
RES 7,(HL)
|
RES 7,(HL)
|
||||||
LD B,0
|
LD B,0
|
||||||
LD HL,AUTO_3008
|
LD HL,TRDOS_CMD.TABLE
|
||||||
DEC C
|
DEC C
|
||||||
SLA C
|
SLA C
|
||||||
ADD HL,BC
|
ADD HL,BC
|
||||||
@ -1215,18 +1214,15 @@ AUTO_1052:
|
|||||||
PUSH BC
|
PUSH BC
|
||||||
PUSH DE
|
PUSH DE
|
||||||
AUTO_1056:
|
AUTO_1056:
|
||||||
RST RST20
|
RST_ROM ROUTINE.key_scan
|
||||||
DW 0028EH
|
|
||||||
AUTO_1059:
|
AUTO_1059:
|
||||||
LD C,0
|
LD C,0
|
||||||
JR NZ,AUTO_1056
|
JR NZ,AUTO_1056
|
||||||
RST RST20
|
RST_ROM ROUTINE.key_test
|
||||||
DW 0031EH
|
|
||||||
JR NC,AUTO_1056
|
JR NC,AUTO_1056
|
||||||
DEC D
|
DEC D
|
||||||
LD E,A
|
LD E,A
|
||||||
RST RST20
|
RST_ROM ROUTINE.key_decode
|
||||||
DW 00333H
|
|
||||||
POP DE
|
POP DE
|
||||||
POP BC
|
POP BC
|
||||||
POP HL
|
POP HL
|
||||||
@ -1966,9 +1962,8 @@ AUTO_166F:
|
|||||||
LD (VAR_1),HL
|
LD (VAR_1),HL
|
||||||
JP AUTO_1E23
|
JP AUTO_1E23
|
||||||
AUTO_1680:
|
AUTO_1680:
|
||||||
RST RST20
|
RST_ROM ROUTINE.free_mem
|
||||||
DW 01F1AH
|
LD HL,#FFFF
|
||||||
LD HL,0FFFFh
|
|
||||||
SBC HL,BC
|
SBC HL,BC
|
||||||
LD A,H
|
LD A,H
|
||||||
CP 16
|
CP 16
|
||||||
@ -2435,8 +2430,7 @@ CMD_MERGE:
|
|||||||
LD (MED_LEN),BC
|
LD (MED_LEN),BC
|
||||||
PUSH BC
|
PUSH BC
|
||||||
INC BC
|
INC BC
|
||||||
RST RST20
|
RST_ROM ROUTINE.bc_spaces
|
||||||
DW 00030H
|
|
||||||
AUTO_19D1:
|
AUTO_19D1:
|
||||||
LD (HL),128
|
LD (HL),128
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
@ -2450,8 +2444,7 @@ AUTO_19D1:
|
|||||||
CALL AUTO_1921
|
CALL AUTO_1921
|
||||||
POP HL
|
POP HL
|
||||||
LD DE,(BAS_PROG)
|
LD DE,(BAS_PROG)
|
||||||
RST RST20
|
RST_ROM ROUTINE.me_new_lp
|
||||||
DW 008D2H
|
|
||||||
JP AUTO_03E1
|
JP AUTO_03E1
|
||||||
AUTO_19F2:
|
AUTO_19F2:
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
@ -2463,8 +2456,7 @@ AUTO_19F2:
|
|||||||
LD B,H
|
LD B,H
|
||||||
LD C,L
|
LD C,L
|
||||||
AUTO_19FD:
|
AUTO_19FD:
|
||||||
RST RST20
|
RST_ROM ROUTINE.test_room
|
||||||
DW 01F05H
|
|
||||||
RET
|
RET
|
||||||
AUTO_1A01:
|
AUTO_1A01:
|
||||||
LD DE,(BAS_PROG)
|
LD DE,(BAS_PROG)
|
||||||
@ -2498,8 +2490,7 @@ AUTO_1A31:
|
|||||||
POP DE
|
POP DE
|
||||||
POP HL
|
POP HL
|
||||||
PUSH BC
|
PUSH BC
|
||||||
RST RST20
|
RST_ROM ROUTINE.reclaim_1
|
||||||
DW 019E5H
|
|
||||||
POP BC
|
POP BC
|
||||||
CALL AUTO_1E32
|
CALL AUTO_1E32
|
||||||
INC HL
|
INC HL
|
||||||
@ -2963,14 +2954,13 @@ CMD_RUN:
|
|||||||
AUTO_1D63:
|
AUTO_1D63:
|
||||||
LD HL,BAS_DOS_FLG
|
LD HL,BAS_DOS_FLG
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
DB 254
|
CP #FF
|
||||||
AUTO_1D68:
|
|
||||||
RST R38
|
|
||||||
LD (HL),0
|
LD (HL),0
|
||||||
RET NZ
|
RET NZ
|
||||||
RST RST20
|
RST_ROM ROUTINE.set_work
|
||||||
DW 016BFH
|
|
||||||
RET
|
RET
|
||||||
|
; <20>஢¥àª , ¨¤¥â «¨ ¯à®¢¥àª áâப¨ á¨â ªá¨á ¨«¨ ¢ë¯®«¥¨¥ ª®¬ ¤ë.
|
||||||
|
; …᫨ ¨¤¥â ¢ë¯®«¥¨¥, â® ä« £ Z ¡ã¤¥â á¡à®è¥, ¨ ç¥ ãáâ ®¢«¥.
|
||||||
AUTO_1D70:
|
AUTO_1D70:
|
||||||
BIT 7,(IY+1)
|
BIT 7,(IY+1)
|
||||||
RET
|
RET
|
||||||
@ -2986,32 +2976,26 @@ AUTO_1D7B:
|
|||||||
OPEN_CH0:
|
OPEN_CH0:
|
||||||
XOR A
|
XOR A
|
||||||
AUTO_1D84:
|
AUTO_1D84:
|
||||||
RST RST20
|
RST_ROM ROUTINE.chan_open
|
||||||
DW 01601H
|
|
||||||
RET
|
RET
|
||||||
OPEN_CH2:
|
OPEN_CH2:
|
||||||
LD A,2
|
LD A,2
|
||||||
JR AUTO_1D84
|
JR AUTO_1D84
|
||||||
AUTO_1D8C:
|
AUTO_1D8C:
|
||||||
RST RST20
|
RST_ROM ROUTINE.get_char
|
||||||
DW 00018H
|
|
||||||
AUTO_1D8F:
|
AUTO_1D8F:
|
||||||
RET
|
RET
|
||||||
CALL OPEN_CH0
|
CALL OPEN_CH0
|
||||||
RST RST20
|
RST_ROM ROUTINE.editor
|
||||||
DW 00F2CH
|
|
||||||
RET
|
RET
|
||||||
AUTO_1D97:
|
AUTO_1D97:
|
||||||
RST RST20
|
RST_ROM ROUTINE.cls
|
||||||
DW 00D6BH
|
|
||||||
RET
|
RET
|
||||||
AUTO_1D9B:
|
AUTO_1D9B:
|
||||||
RST RST20
|
RST_ROM ROUTINE.look_vars
|
||||||
DW 028B2H
|
|
||||||
RET
|
RET
|
||||||
AUTO_1D9F:
|
AUTO_1D9F:
|
||||||
RST RST20
|
RST_ROM ROUTINE.cls_lower
|
||||||
DW 00D6EH
|
|
||||||
RET
|
RET
|
||||||
AUTO_1DA3:
|
AUTO_1DA3:
|
||||||
LD C,A
|
LD C,A
|
||||||
@ -3022,25 +3006,20 @@ AUTO_1DA9:
|
|||||||
PUSH BC
|
PUSH BC
|
||||||
CALL xchg_intf1
|
CALL xchg_intf1
|
||||||
POP BC
|
POP BC
|
||||||
RST RST20
|
RST_ROM ROUTINE.out_num_1
|
||||||
DW 01A1BH
|
|
||||||
CALL xchg_intf1
|
CALL xchg_intf1
|
||||||
RET
|
RET
|
||||||
BAS_2BF1:
|
BAS_2BF1:
|
||||||
RST RST20
|
RST_ROM ROUTINE.stack_fetch
|
||||||
DW 02BF1H
|
|
||||||
RET
|
RET
|
||||||
AUTO_1DB9:
|
AUTO_1DB9:
|
||||||
RST RST20
|
RST_ROM ROUTINE.find_int2
|
||||||
DW 01E99H
|
|
||||||
RET
|
RET
|
||||||
AUTO_1DBD:
|
AUTO_1DBD:
|
||||||
RST RST20
|
RST_ROM ROUTINE.expt_exp
|
||||||
DW 01C8CH
|
|
||||||
RET
|
RET
|
||||||
AUTO_1DC1:
|
AUTO_1DC1:
|
||||||
RST RST20
|
RST_ROM ROUTINE.expt_1num
|
||||||
DW 01C82H
|
|
||||||
RET
|
RET
|
||||||
AUTO_1DC5:
|
AUTO_1DC5:
|
||||||
LD HL,(ADR_DOS_COM)
|
LD HL,(ADR_DOS_COM)
|
||||||
@ -3088,27 +3067,22 @@ AUTO_1E0B:
|
|||||||
RET
|
RET
|
||||||
AUTO_1E1C:
|
AUTO_1E1C:
|
||||||
LD HL,(ADR_DOS_COM)
|
LD HL,(ADR_DOS_COM)
|
||||||
RST RST20
|
RST_ROM ROUTINE.remove_fp
|
||||||
DW 011A7H
|
|
||||||
RET
|
RET
|
||||||
AUTO_1E23:
|
AUTO_1E23:
|
||||||
LD HL,(WORK_SP)
|
LD HL,(WORK_SP)
|
||||||
RST RST20
|
RST_ROM ROUTINE.bc_spaces
|
||||||
DW 00030H
|
|
||||||
AUTO_1E29:
|
AUTO_1E29:
|
||||||
RET
|
RET
|
||||||
BASIC_RST20:
|
BASIC_RST20:
|
||||||
RST RST20
|
RST_ROM ROUTINE.next_char
|
||||||
DW 00020H
|
|
||||||
AUTO_1E2D:
|
AUTO_1E2D:
|
||||||
RET
|
RET
|
||||||
AUTO_1E2E:
|
AUTO_1E2E:
|
||||||
RST RST20
|
RST_ROM ROUTINE.reclaim_2
|
||||||
DW 019E8H
|
|
||||||
RET
|
RET
|
||||||
AUTO_1E32:
|
AUTO_1E32:
|
||||||
RST RST20
|
RST_ROM ROUTINE.make_room
|
||||||
DW 01655H
|
|
||||||
RET
|
RET
|
||||||
READ_TRK_NUM:
|
READ_TRK_NUM:
|
||||||
CALL READ_ADR_LABL
|
CALL READ_ADR_LABL
|
||||||
@ -3319,8 +3293,7 @@ AUTO_1F55:
|
|||||||
CALL AUTO_1DA9
|
CALL AUTO_1DA9
|
||||||
JP AUTO_01D3
|
JP AUTO_01D3
|
||||||
AUTO_1FB9:
|
AUTO_1FB9:
|
||||||
DB 1,9,2,10,3,11,4,12,5,13,6,14,7,15,8
|
DB 1,9,2,10,3,11,4,12,5,13,6,14,7,15,8,16,1
|
||||||
DB 16,1
|
|
||||||
test_d_traks:
|
test_d_traks:
|
||||||
CALL get_disk_time
|
CALL get_disk_time
|
||||||
OR 17
|
OR 17
|
||||||
@ -3650,8 +3623,7 @@ AUTO_2206:
|
|||||||
JP AUTO_03D9
|
JP AUTO_03D9
|
||||||
AUTO_220F:
|
AUTO_220F:
|
||||||
LD A,(MED_LEN)
|
LD A,(MED_LEN)
|
||||||
RST RST20
|
RST_ROM ROUTINE.str_data1
|
||||||
DW 01727H
|
|
||||||
LD A,B
|
LD A,B
|
||||||
OR C
|
OR C
|
||||||
JP NZ,AUTO_221B
|
JP NZ,AUTO_221B
|
||||||
@ -4052,8 +4024,7 @@ AUTO_2492:
|
|||||||
AUTO_2494:
|
AUTO_2494:
|
||||||
LD (ERR_NR),A
|
LD (ERR_NR),A
|
||||||
CALL AUTO_20E5
|
CALL AUTO_20E5
|
||||||
RST RST20
|
RST_ROM ROUTINE.error_4
|
||||||
DW 00058H
|
|
||||||
RET
|
RET
|
||||||
AUTO_249E:
|
AUTO_249E:
|
||||||
LD A,23
|
LD A,23
|
||||||
@ -4285,8 +4256,7 @@ AUTO_2614:
|
|||||||
AUTO_261D:
|
AUTO_261D:
|
||||||
CP 13
|
CP 13
|
||||||
JR Z,AUTO_2614
|
JR Z,AUTO_2614
|
||||||
RST RST20
|
RST_ROM ROUTINE.add_char_keeping_current_mode
|
||||||
DW 00F85H
|
|
||||||
JR AUTO_260F
|
JR AUTO_260F
|
||||||
AUTO_2626:
|
AUTO_2626:
|
||||||
CALL AUTO_262B
|
CALL AUTO_262B
|
||||||
@ -4327,8 +4297,7 @@ CMD_CLOSE:
|
|||||||
CALL AUTO_1E0B
|
CALL AUTO_1E0B
|
||||||
CALL SINTAX_RET
|
CALL SINTAX_RET
|
||||||
LD A,(MED_LEN)
|
LD A,(MED_LEN)
|
||||||
RST RST20
|
RST_ROM ROUTINE.str_data1
|
||||||
DW 01727H
|
|
||||||
LD A,B
|
LD A,B
|
||||||
OR C
|
OR C
|
||||||
JP Z,AUTO_01D3
|
JP Z,AUTO_01D3
|
||||||
@ -4718,27 +4687,29 @@ AUTO_2992:
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
;
|
; ‚믮«¥¨¥ ª®¬ ¤ë "40". “áâ ®¢¨â¥ #5D11 ¨ #5C3B. ˆá¯®«ì§ã¥âáï â ª¦¥ á ¤à¥á :
|
||||||
CMD_40:
|
;#2998 (¢ë¯®«¥¨¥ ª®¬ ¤ë ãáâ ®¢ª¨ ⨯ ¤¨áª®¢®¤ ; ãáâ ®¢¨â¥ ¢á¥ ¤«ï #2997 ¯«îá ¢ A ⨯ ¤¨áª®¢®¤ ).
|
||||||
XOR A
|
CMD_40: XOR A ;¤¨áª®¢®¤ 40-¤®à®¦¥çë© ®¤®áâ®à®¨©
|
||||||
|
;Žè¨¡ª !!! ‚®-¯¥à¢ëå, ¯®ç¥¬ã ¤¨áª®¢®¤ ®¤®áâ®à®¨©?
|
||||||
|
; ¢®-¢â®àëå, ¤® ¯à®¢¥àïâì ¢®§¬®¦®áâì ¨á¯®«ì§®¢ ¨ï ¤¨áª®¢®¤ ¢ âॡ㥬®¬ ०¨¬¥.
|
||||||
AUTO_2998:
|
AUTO_2998:
|
||||||
BLOCK #2998 - $,255
|
LD (MED_START),A ;á®åà ¥¨¥ ⨯ ¤¨áª®¢®¤
|
||||||
LD (MED_START),A
|
CALL SINTAX_RET ;¥á«¨ ¨¤¥â ¯à®¢¥àª á¨â ªá¨
|
||||||
CALL SINTAX_RET
|
CALL TEST_CR ;¯à®¢¥àª ¢â®à®£® ᨬ¢®« áâப
|
||||||
CALL TEST_CR
|
JP Z,CMD_ERROR ;¥á«¨ íâ® ENTER, â® *ERROR*
|
||||||
JP Z,CMD_ERROR
|
CALL get_disk_type ;¡¥à¥¬ ¤à¥á ï祩ª¨ á ⨯®¬ ¤¨á
|
||||||
CALL get_disk_type
|
LD A,(MED_START) ;ãáâ ®¢ª ⨯ ¤¨áª®¢®¤
|
||||||
LD A,(MED_START)
|
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
JP AUTO_03E1
|
JP AUTO_03E1 ;á®®¡é¥¨¥ O.K.
|
||||||
;
|
; ‚믮«¥¨¥ ª®¬ ¤ë "80". “áâ ®¢¨â¥ #5D11 ¨ #5C3B.
|
||||||
;
|
CMD_80: LD A,#80 ;¤¨áª®¢®¤ 80-¤®à®¦¥çë© ®¤®áâ®à®¨©
|
||||||
;
|
;Žè¨¡ª !!! ‚®-¯¥à¢ëå, ¯®ç¥¬ã ¤¨áª®¢®¤ ®¤®áâ®à®¨©?
|
||||||
CMD_80:
|
; ¢®-¢â®àëå, ¤® ¯à®¢¥àïâì ¢®§¬®¦®áâì ¨á¯®«ì§®¢ ¨ï ¤¨áª®¢®¤ ¢ âॡ㥬®¬ ०¨¬¥.
|
||||||
LD A,128
|
|
||||||
JR AUTO_2998
|
JR AUTO_2998
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;€¤à¥á #29B2. ’¥ªáâë á®®¡é¥¨© TR-DOS.
|
||||||
AUTO_29B2:
|
AUTO_29B2:
|
||||||
DB 13,"*ERROR*",141
|
DB 13,"*ERROR*",141
|
||||||
AUTO_29BB:
|
AUTO_29BB:
|
||||||
@ -5589,44 +5560,69 @@ AUTO_2FDE:
|
|||||||
LD HL,BUFER
|
LD HL,BUFER
|
||||||
LDIR
|
LDIR
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
////////////////////////////////////////////
|
||||||
|
TRDOS_CMD:
|
||||||
|
; ’ ¡«¨æ ª®¬ ¤ TR-DOS.
|
||||||
|
.LIST: DB ZX_Token.cat
|
||||||
|
DB '*'
|
||||||
|
DB ZX_Token.format
|
||||||
|
DB ZX_Token.move
|
||||||
;
|
;
|
||||||
; COMANDS
|
DB ZX_Token.new
|
||||||
|
DB ZX_Token.erase
|
||||||
|
DB ZX_Token.load
|
||||||
|
DB ZX_Token.save
|
||||||
;
|
;
|
||||||
AUTO_2FF3:
|
DB ZX_Token.return
|
||||||
DB 207,42,208,209
|
DB ZX_Token.peek
|
||||||
DB 230,210,239,248
|
DB ZX_Token.poke
|
||||||
DB 254,190,244,213
|
DB ZX_Token.merge
|
||||||
DB 247,211,212,255
|
;
|
||||||
DB 52,236,56,240
|
DB ZX_Token.run
|
||||||
DB 214,'/'
|
DB ZX_Token.open_channel
|
||||||
AUTO_3008:
|
DB ZX_Token.close_channel
|
||||||
DW CMD_CAT
|
DB ZX_Token.copy
|
||||||
|
;
|
||||||
|
DB '4'
|
||||||
|
DB ZX_Token.go_to
|
||||||
|
DB '8'
|
||||||
|
DB ZX_Token.list
|
||||||
|
;
|
||||||
|
DB ZX_Token.verify
|
||||||
|
DB '/'
|
||||||
|
;;
|
||||||
|
;;
|
||||||
|
.Size EQU $ - TRDOS_CMD.LIST
|
||||||
|
; ’ ¡«¨æ ¤à¥á®¢ ¯®¤¯à®£à ¬¬, ¢ë¯®«ïîé¨å ª®¬ ¤ë TR-DOS.
|
||||||
|
.TABLE: DW CMD_CAT
|
||||||
DW CMD_STAR
|
DW CMD_STAR
|
||||||
DW CMD_FORMAT
|
DW CMD_FORMAT
|
||||||
DW CMD_MOVE
|
DW CMD_MOVE
|
||||||
|
;
|
||||||
DW CMD_NEW
|
DW CMD_NEW
|
||||||
DW CMD_ERASE
|
DW CMD_ERASE
|
||||||
DW CMD_LOAD
|
DW CMD_LOAD
|
||||||
DW CMD_SAVE
|
DW CMD_SAVE
|
||||||
|
;
|
||||||
DW CMD_RETURN
|
DW CMD_RETURN
|
||||||
DW CMD_PEEK
|
DW CMD_PEEK
|
||||||
DW CMD_POKE
|
DW CMD_POKE
|
||||||
DW CMD_MERGE
|
DW CMD_MERGE
|
||||||
|
;
|
||||||
DW CMD_RUN
|
DW CMD_RUN
|
||||||
DW CMD_OPEN
|
DW CMD_OPEN
|
||||||
DW CMD_CLOSE
|
DW CMD_CLOSE
|
||||||
DW CMD_COPY
|
DW CMD_COPY
|
||||||
|
;
|
||||||
DW CMD_40
|
DW CMD_40
|
||||||
DW CMD_GOTO
|
DW CMD_GOTO
|
||||||
DW CMD_80
|
DW CMD_80
|
||||||
DW CMD_LIST
|
DW CMD_LIST
|
||||||
|
;
|
||||||
DW CMD_VERIFY
|
DW CMD_VERIFY
|
||||||
DW CMD_MSDOS
|
DW CMD_MSDOS
|
||||||
|
////////////////////////////////////////////
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
@ -5665,11 +5661,9 @@ AUTO_3057: ;
|
|||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
INC HL
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
RST RST20
|
RST_ROM ROUTINE.differ
|
||||||
DW 019DDH
|
|
||||||
PUSH BC
|
PUSH BC
|
||||||
RST RST20
|
RST_ROM ROUTINE.reclaim_2
|
||||||
DW 019E8H
|
|
||||||
POP BC
|
POP BC
|
||||||
LD A,(DOS_ERROR)
|
LD A,(DOS_ERROR)
|
||||||
OR A
|
OR A
|
||||||
@ -5760,8 +5754,7 @@ AUTO_30E1:
|
|||||||
LD (DOS_ERROR),A
|
LD (DOS_ERROR),A
|
||||||
DEC HL
|
DEC HL
|
||||||
DEC HL
|
DEC HL
|
||||||
RST RST20
|
RST_ROM ROUTINE.line_addr
|
||||||
DW 0196EH
|
|
||||||
RET
|
RET
|
||||||
AUTO_30F4:
|
AUTO_30F4:
|
||||||
LD A,255
|
LD A,255
|
||||||
@ -5947,14 +5940,14 @@ FORM_STATE:
|
|||||||
INC HL
|
INC HL
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
FORM_NO_NEXT:
|
FORM_NO_NEXT:
|
||||||
CP 0Dh
|
CP #0D
|
||||||
RET Z
|
RET Z
|
||||||
CP 80H
|
CP #80
|
||||||
RET Z
|
RET Z
|
||||||
JP NC,CMD_ERROR
|
JP NC,CMD_ERROR
|
||||||
CP ' '
|
CP ' '
|
||||||
JP C,CMD_ERROR
|
JP C,CMD_ERROR
|
||||||
AND 0DFh
|
AND #DF
|
||||||
LD (MED_START+1),A
|
LD (MED_START+1),A
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
@ -6048,8 +6041,7 @@ FORM_X03:
|
|||||||
CALL AUTO_1C57
|
CALL AUTO_1C57
|
||||||
CALL AUTO_1D97
|
CALL AUTO_1D97
|
||||||
LD A,2
|
LD A,2
|
||||||
RST RST20
|
RST_ROM ROUTINE.chan_open
|
||||||
DW 01601H
|
|
||||||
LD HL,NEW_NAME
|
LD HL,NEW_NAME
|
||||||
RST PRINT_LN
|
RST PRINT_LN
|
||||||
|
|
||||||
@ -6102,8 +6094,7 @@ F_FAST: ; Turbo/FAST FORMAT
|
|||||||
JR FORM_X08
|
JR FORM_X08
|
||||||
|
|
||||||
F_TURBO_DT:
|
F_TURBO_DT:
|
||||||
DB 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
|
DB 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1
|
||||||
DB 16,1
|
|
||||||
|
|
||||||
|
|
||||||
SUB_HL_14:
|
SUB_HL_14:
|
||||||
@ -6115,8 +6106,7 @@ SUB_HL_14:
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
LOW_CLS_AT00:
|
LOW_CLS_AT00:
|
||||||
RST RST20
|
RST_ROM ROUTINE.cls_lower
|
||||||
DW 00D6EH
|
|
||||||
LD HL,MSG_AT00
|
LD HL,MSG_AT00
|
||||||
JP PRINT_LINE
|
JP PRINT_LINE
|
||||||
|
|
||||||
@ -6480,8 +6470,7 @@ BEEP_1:
|
|||||||
LD HL,200 ; BEEP
|
LD HL,200 ; BEEP
|
||||||
LD D,H
|
LD D,H
|
||||||
LD E,(IY-1)
|
LD E,(IY-1)
|
||||||
RST RST20
|
RST_ROM ROUTINE.beeper
|
||||||
DW 03B5h
|
|
||||||
|
|
||||||
POP AF
|
POP AF
|
||||||
RET
|
RET
|
||||||
@ -6621,8 +6610,7 @@ PRINT_SYM:
|
|||||||
RST R38
|
RST R38
|
||||||
RST R38
|
RST R38
|
||||||
AUTO_3D94:
|
AUTO_3D94:
|
||||||
RST RST20
|
RST_ROM ROUTINE.print_a
|
||||||
DW #0010 ;!HARDCODE
|
|
||||||
RET
|
RET
|
||||||
AUTO_3D98:
|
AUTO_3D98:
|
||||||
LD A,8
|
LD A,8
|
||||||
@ -6630,12 +6618,10 @@ WG93_EXE:
|
|||||||
OUT (WG_COM),A
|
OUT (WG_COM),A
|
||||||
AUTO_3D9C:
|
AUTO_3D9C:
|
||||||
PUSH HL
|
PUSH HL
|
||||||
RST RST20
|
RST_ROM ROUTINE.break_key
|
||||||
DW #1F54 ;!HARDCODE
|
|
||||||
;RET_1F54:
|
;RET_1F54:
|
||||||
JR C,AUTO_3DA5
|
JR C,AUTO_3DA5
|
||||||
RST RST20
|
RST_ROM ROUTINE.report_l
|
||||||
DW #1B7B ;!HARDCODE
|
|
||||||
AUTO_3DA5:
|
AUTO_3DA5:
|
||||||
POP HL
|
POP HL
|
||||||
IN A,(P_DOS_FF)
|
IN A,(P_DOS_FF)
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Subproject commit 866c86ed7b05965f52b41997aab711a32c669cbc
|
Subproject commit 4c835d305fd5d1bc296039706d5e163c1f2224ca
|
||||||
@ -453,9 +453,9 @@ RAMD_SET1:
|
|||||||
RAMD_SYM:
|
RAMD_SYM:
|
||||||
LD A,(DE)
|
LD A,(DE)
|
||||||
INC DE
|
INC DE
|
||||||
CP 20H
|
CP ' '
|
||||||
JR Z,RAMD_SYM
|
JR Z,RAMD_SYM
|
||||||
AND 223
|
AND %1101'1111
|
||||||
CP 'E'
|
CP 'E'
|
||||||
RET C
|
RET C
|
||||||
SUB 'E'
|
SUB 'E'
|
||||||
@ -468,7 +468,7 @@ RAMD_SYM:
|
|||||||
INC DE
|
INC DE
|
||||||
JR Z,RAMD_SYM_OK
|
JR Z,RAMD_SYM_OK
|
||||||
DEC DE
|
DEC DE
|
||||||
CP 21H
|
CP ' '+1
|
||||||
JR C,RAMD_SYM_OK
|
JR C,RAMD_SYM_OK
|
||||||
POP AF
|
POP AF
|
||||||
SCF
|
SCF
|
||||||
|
|||||||
@ -1584,7 +1584,7 @@ HDD_MSG_LEN EQU $-HDD_MSG
|
|||||||
;HDD_MSG_NO: DB "Boot record not found"
|
;HDD_MSG_NO: DB "Boot record not found"
|
||||||
;HDD_NO_LEN EQU $-HDD_MSG_NO
|
;HDD_NO_LEN EQU $-HDD_MSG_NO
|
||||||
SAVE_AUTOSTART:
|
SAVE_AUTOSTART:
|
||||||
LD HL,8000H
|
LD HL,#8000
|
||||||
LD DE,HDD_MSG
|
LD DE,HDD_MSG
|
||||||
LD B,HDD_MSG_LEN
|
LD B,HDD_MSG_LEN
|
||||||
SAVE_AUTO_L1:
|
SAVE_AUTO_L1:
|
||||||
@ -1599,7 +1599,7 @@ SAVE_AUTO_L1:
|
|||||||
CALL EXP_HDD
|
CALL EXP_HDD
|
||||||
RET C
|
RET C
|
||||||
|
|
||||||
LD HL,8000H
|
LD HL,#8000
|
||||||
LD A,0
|
LD A,0
|
||||||
LD DE,1
|
LD DE,1
|
||||||
LD IX,0
|
LD IX,0
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
MACRO WAIT_HDD
|
MACRO WAIT_HDD
|
||||||
.LL1:
|
.LL1:
|
||||||
LD BC,P_HDST
|
LD BC,IDE.Read.Status
|
||||||
IN A,(C)
|
IN A,(C)
|
||||||
BIT 7,A
|
BIT 7,A
|
||||||
JR NZ,.LL1
|
JR NZ,.LL1
|
||||||
@ -49,14 +49,14 @@ HD_CMD_X: ; C - COMAND ( 5 - RD, 6 - WR )
|
|||||||
HD_BPB_PREP:
|
HD_BPB_PREP:
|
||||||
|
|
||||||
LD D,A
|
LD D,A
|
||||||
IN A,(PAGE3)
|
IN A,(SLOT3)
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (PAGE3),A
|
OUT (SLOT3),A
|
||||||
LD A,(HD_IDF_ADR+12)
|
LD A,(SYS_PAGE.HD_IDF_ADR.sectors)
|
||||||
LD E,A
|
LD E,A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
OUT (PAGE3),A
|
OUT (SLOT3),A
|
||||||
LD A,D
|
LD A,D
|
||||||
LD D,0
|
LD D,0
|
||||||
LD IX,0
|
LD IX,0
|
||||||
@ -76,16 +76,16 @@ HD_PREPARE:
|
|||||||
HD_PREP_L1:
|
HD_PREP_L1:
|
||||||
|
|
||||||
LD A,B
|
LD A,B
|
||||||
LD BC,P_S_CNT ; “áâ ®¢¨âì ç¨á«® ᥪâ®à®¢ ¤«ï ç⥨ï
|
LD BC,IDE.Write.Counter ; “áâ ®¢¨âì ç¨á«® ᥪâ®à®¢ ¤«ï ç⥨ï
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
LD BC,P_S_NUM
|
LD BC,IDE.Write.Sector
|
||||||
OUT (C),L ; ‘…Š’Ž<E28099>
|
OUT (C),L ; ‘…Š’Ž<E28099>
|
||||||
LD BC,P_C_LOW
|
LD BC,IDE.Write.CylinderLow
|
||||||
OUT (C),E ; ¤®à®¦ª low
|
OUT (C),E ; ¤®à®¦ª low
|
||||||
LD BC,P_C_HIG
|
LD BC,IDE.Write.CylinderHigh
|
||||||
OUT (C),D ; ¤®à®¦ª high
|
OUT (C),D ; ¤®à®¦ª high
|
||||||
|
|
||||||
LD BC,P_HD_CS
|
LD BC,IDE.Write.DeviceHead
|
||||||
DEC B
|
DEC B
|
||||||
IN A,(C)
|
IN A,(C)
|
||||||
AND 0F0H
|
AND 0F0H
|
||||||
@ -112,19 +112,18 @@ HD_CMD_3: ;
|
|||||||
RET C
|
RET C
|
||||||
|
|
||||||
EXX
|
EXX
|
||||||
LD C,PAGE3
|
LD C,SLOT3
|
||||||
IN B,(C)
|
IN B,(C)
|
||||||
EXX
|
EXX
|
||||||
OUT (PAGE3),A
|
OUT (SLOT3),A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
|
|
||||||
LD A,0C0H
|
LD A,0C0H
|
||||||
OUT (RGADR),A
|
OUT (RGADR),A
|
||||||
|
|
||||||
LD BC,P_CMD
|
LD BC,IDE.Write.Command
|
||||||
LD A,20H
|
LD A,#20
|
||||||
; OUT (C),A
|
; OUT (C),A
|
||||||
|
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -159,16 +158,16 @@ HD_RD_CMD:
|
|||||||
HD_RD_L1:
|
HD_RD_L1:
|
||||||
|
|
||||||
EXX
|
EXX
|
||||||
LD C,PAGE3
|
LD C,SLOT3
|
||||||
IN B,(C)
|
IN B,(C)
|
||||||
EXX
|
EXX
|
||||||
OUT (PAGE3),A
|
OUT (SLOT3),A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
|
|
||||||
LD A,0C0H
|
LD A,0C0H
|
||||||
OUT (RGADR),A
|
OUT (RGADR),A
|
||||||
|
|
||||||
LD BC,P_CMD
|
LD BC,IDE.Write.Command
|
||||||
LD A,20H
|
LD A,20H
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
|
|
||||||
@ -184,7 +183,7 @@ HD_RET:
|
|||||||
EXX
|
EXX
|
||||||
OUT (C),B
|
OUT (C),B
|
||||||
EXX
|
EXX
|
||||||
LD BC,P_ERR
|
LD BC,IDE.Read.Error
|
||||||
IN A,(C)
|
IN A,(C)
|
||||||
AND A
|
AND A
|
||||||
SCF
|
SCF
|
||||||
@ -195,7 +194,7 @@ HD_RET:
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
HD_READ_CONT:
|
HD_READ_CONT:
|
||||||
LD BC,P_DATS
|
LD BC,IDE.Read.Data
|
||||||
|
|
||||||
HD_RD_CONT1:
|
HD_RD_CONT1:
|
||||||
DUP 16
|
DUP 16
|
||||||
@ -216,12 +215,12 @@ HD_RD_CONT2:
|
|||||||
JR NZ,HD_RD_L2
|
JR NZ,HD_RD_L2
|
||||||
|
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (PAGE3),A
|
OUT (SLOT3),A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD HL,RAMD_FAT
|
LD HL,SYS_PAGE.RAMD_FAT
|
||||||
LD L,A
|
LD L,A
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
OUT (PAGE3),A
|
OUT (SLOT3),A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD HL,0C000H
|
LD HL,0C000H
|
||||||
JR HD_RD_L2
|
JR HD_RD_L2
|
||||||
@ -243,13 +242,13 @@ HD_WR_CMD:
|
|||||||
RET C
|
RET C
|
||||||
|
|
||||||
EXX
|
EXX
|
||||||
LD C,PAGE3
|
LD C,SLOT3
|
||||||
IN B,(C)
|
IN B,(C)
|
||||||
EXX
|
EXX
|
||||||
OUT (PAGE3),A
|
OUT (SLOT3),A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
|
|
||||||
LD BC,P_CMD
|
LD BC,IDE.Write.Command
|
||||||
LD A,30H
|
LD A,30H
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
|
|
||||||
@ -262,7 +261,7 @@ HD_WR_L2:
|
|||||||
;#######################################
|
;#######################################
|
||||||
IF HDD_TYPE
|
IF HDD_TYPE
|
||||||
|
|
||||||
LD BC,P_DATS+100H
|
LD BC,IDE.Read.Data+100H
|
||||||
LD D,32
|
LD D,32
|
||||||
HD_WR_CONT1:
|
HD_WR_CONT1:
|
||||||
DUP 16
|
DUP 16
|
||||||
@ -274,7 +273,7 @@ HD_WR_CONT1:
|
|||||||
;#######################################
|
;#######################################
|
||||||
ELSE
|
ELSE
|
||||||
LD D,64
|
LD D,64
|
||||||
LD BC,P_DATS+100H
|
LD BC,IDE.Read.Data+100H
|
||||||
|
|
||||||
HD_WR_LOOP:
|
HD_WR_LOOP:
|
||||||
|
|
||||||
@ -316,12 +315,12 @@ HD_WR_LOOP:
|
|||||||
JR NZ,HD_WR_L2
|
JR NZ,HD_WR_L2
|
||||||
|
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (PAGE3),A
|
OUT (SLOT3),A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD HL,RAMD_FAT
|
LD HL,SYS_PAGE.RAMD_FAT
|
||||||
LD L,A
|
LD L,A
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
OUT (PAGE3),A
|
OUT (SLOT3),A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
|
|
||||||
LD HL,0C000H
|
LD HL,0C000H
|
||||||
@ -333,14 +332,14 @@ HD_CMD_1:
|
|||||||
POP AF
|
POP AF
|
||||||
HD_CMD1_EX:
|
HD_CMD1_EX:
|
||||||
ld a,0A0h
|
ld a,0A0h
|
||||||
LD BC,P_HD_CS
|
LD BC,IDE.Write.DeviceHead
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
LD A,90h ; DIAGNOSTICS
|
LD A,90h ; DIAGNOSTICS
|
||||||
CALL HD_CMD_EXE
|
CALL HD_CMD_EXE
|
||||||
AND A
|
AND A
|
||||||
BIT 0,A
|
BIT 0,A
|
||||||
RET Z
|
RET Z
|
||||||
LD BC,P_ERR
|
LD BC,IDE.Read.Error
|
||||||
IN A,(C)
|
IN A,(C)
|
||||||
CP 1
|
CP 1
|
||||||
RET Z
|
RET Z
|
||||||
@ -354,7 +353,7 @@ HD_CMD_2:
|
|||||||
|
|
||||||
LD E,0
|
LD E,0
|
||||||
|
|
||||||
LD BC,P_HD_CS
|
LD BC,IDE.Write.DeviceHead
|
||||||
LD A,0A0H
|
LD A,0A0H
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
|
|
||||||
@ -364,7 +363,7 @@ HD_CMD_2:
|
|||||||
SET 0,E
|
SET 0,E
|
||||||
NO_HDD1:
|
NO_HDD1:
|
||||||
|
|
||||||
LD BC,P_HD_CS
|
LD BC,IDE.Write.DeviceHead
|
||||||
LD A,0B0H
|
LD A,0B0H
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
|
|
||||||
@ -383,15 +382,15 @@ NO_HDD2:
|
|||||||
|
|
||||||
TEST_HDD_DRV:
|
TEST_HDD_DRV:
|
||||||
LD HL,01FEH
|
LD HL,01FEH
|
||||||
LD BC,P_S_CNT
|
LD BC,IDE.Write.Counter
|
||||||
OUT (C),L
|
OUT (C),L
|
||||||
LD BC,P_S_NUM
|
LD BC,IDE.Write.Sector
|
||||||
OUT (C),H
|
OUT (C),H
|
||||||
LD BC,P_S_CNT+256
|
LD BC,IDE.Write.Counter+256
|
||||||
IN A,(C)
|
IN A,(C)
|
||||||
CP L
|
CP L
|
||||||
RET NZ
|
RET NZ
|
||||||
LD BC,P_S_NUM+256
|
LD BC,IDE.Write.Sector+256
|
||||||
IN A,(C)
|
IN A,(C)
|
||||||
CP H
|
CP H
|
||||||
RET
|
RET
|
||||||
@ -400,7 +399,7 @@ HD_CMD_0:
|
|||||||
|
|
||||||
POP AF
|
POP AF
|
||||||
|
|
||||||
LD BC,P_HD_CS
|
LD BC,IDE.Write.DeviceHead
|
||||||
LD A,0A0H
|
LD A,0A0H
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
|
|
||||||
@ -412,14 +411,14 @@ HD_C0_L3:
|
|||||||
|
|
||||||
WAIT_HDD
|
WAIT_HDD
|
||||||
|
|
||||||
LD BC,P_CMD
|
LD BC,IDE.Write.Command
|
||||||
LD A,0ECH
|
LD A,0ECH
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
|
|
||||||
WAIT_HDD
|
WAIT_HDD
|
||||||
;HD_C0_L1:
|
;HD_C0_L1:
|
||||||
;
|
;
|
||||||
; LD BC,P_HDST
|
; LD BC,IDE.Read.Status
|
||||||
; IN A,(C)
|
; IN A,(C)
|
||||||
; BIT 7,A
|
; BIT 7,A
|
||||||
; JR NZ,HD_C0_L1
|
; JR NZ,HD_C0_L1
|
||||||
@ -431,7 +430,7 @@ HD_C0_L3:
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
HD_ABSENT:
|
HD_ABSENT:
|
||||||
LD BC,P_HD_CS
|
LD BC,IDE.Write.DeviceHead
|
||||||
LD A,0B0H
|
LD A,0B0H
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
|
|
||||||
@ -442,40 +441,40 @@ HD_ABSENT:
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
HD_C0_L2:
|
HD_C0_L2:
|
||||||
LD BC,P_DATS
|
LD BC,IDE.Read.Data
|
||||||
LD HL,HD_IDF_ADR
|
LD HL,SYS_PAGE.HD_IDF_ADR
|
||||||
IN A,(PAGE3)
|
IN A,(SLOT3)
|
||||||
LD D,A
|
LD D,A
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (PAGE3),A
|
OUT (SLOT3),A
|
||||||
INIR
|
INIR
|
||||||
INIR
|
INIR
|
||||||
|
|
||||||
;HD_C0_L4:
|
;HD_C0_L4:
|
||||||
; LD BC,P_HDST
|
; LD BC,IDE.Read.Status
|
||||||
; IN A,(C)
|
; IN A,(C)
|
||||||
; BIT 7,A
|
; BIT 7,A
|
||||||
; JR NZ,HD_C0_L4
|
; JR NZ,HD_C0_L4
|
||||||
|
|
||||||
LD A,(HD_IDF_ADR+12) ; ç¨á«® ᥪâ®à®¢
|
LD A,(SYS_PAGE.HD_IDF_ADR.sectors) ; ç¨á«® ᥪâ®à®¢
|
||||||
LD C,A
|
LD C,A
|
||||||
LD B,0
|
LD B,0
|
||||||
LD HL,0
|
LD HL,0
|
||||||
LD A,(HD_IDF_ADR+6) ; ç¨á«® £®«®¢®ª
|
LD A,(SYS_PAGE.HD_IDF_ADR.heads) ; ç¨á«® £®«®¢®ª
|
||||||
LOOP_XX:
|
LOOP_XX:
|
||||||
ADD HL,BC
|
ADD HL,BC
|
||||||
DEC A
|
DEC A
|
||||||
JR NZ,LOOP_XX
|
JR NZ,LOOP_XX
|
||||||
LD (HD_IDF_ADR+4),HL
|
LD (SYS_PAGE.HD_IDF_ADR.sec_cyl),HL
|
||||||
|
|
||||||
WAIT_HDD
|
WAIT_HDD
|
||||||
|
|
||||||
LD BC,P_HD_CS
|
LD BC,IDE.Write.DeviceHead
|
||||||
DEC B
|
DEC B
|
||||||
IN A,(C)
|
IN A,(C)
|
||||||
AND 010H
|
AND 010H
|
||||||
LD B,A
|
LD B,A
|
||||||
LD A,(HD_IDF_ADR+6) ; ç¨á«® £®«®¢®ª
|
LD A,(SYS_PAGE.HD_IDF_ADR.heads) ; ç¨á«® £®«®¢®ª
|
||||||
|
|
||||||
DEC A
|
DEC A
|
||||||
AND 0FH
|
AND 0FH
|
||||||
@ -483,22 +482,22 @@ LOOP_XX:
|
|||||||
OR B
|
OR B
|
||||||
|
|
||||||
LD H,A
|
LD H,A
|
||||||
LD A,(HD_IDF_ADR+99)
|
LD A,(SYS_PAGE.HD_IDF_ADR+99) ;!HARDCODE
|
||||||
BIT 1,A
|
BIT 1,A
|
||||||
JR Z,HD_C0_NO_LBA
|
JR Z,HD_C0_NO_LBA
|
||||||
|
|
||||||
SET 6,H
|
SET 6,H
|
||||||
|
|
||||||
HD_C0_NO_LBA:
|
HD_C0_NO_LBA:
|
||||||
LD BC,P_HD_CS
|
LD BC,IDE.Write.DeviceHead
|
||||||
OUT (C),H
|
OUT (C),H
|
||||||
|
|
||||||
LD A,(HD_IDF_ADR+12) ; ç¨á«® ᥪâ®à®¢
|
LD A,(SYS_PAGE.HD_IDF_ADR.sectors) ; ç¨á«® ᥪâ®à®¢
|
||||||
|
|
||||||
LD BC,P_S_CNT
|
LD BC,IDE.Write.Counter
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
LD A,D
|
LD A,D
|
||||||
OUT (PAGE3),A
|
OUT (SLOT3),A
|
||||||
|
|
||||||
LD A,91H ; SET HDD PARAMETERS
|
LD A,91H ; SET HDD PARAMETERS
|
||||||
CALL HD_CMD_EXE
|
CALL HD_CMD_EXE
|
||||||
@ -512,7 +511,7 @@ HD_C0_NO_LBA:
|
|||||||
HD_CMD_EXE:
|
HD_CMD_EXE:
|
||||||
CALL HD_WAIT
|
CALL HD_WAIT
|
||||||
RET C
|
RET C
|
||||||
LD BC,P_CMD
|
LD BC,IDE.Write.Command
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
HD_WAIT:
|
HD_WAIT:
|
||||||
PUSH DE
|
PUSH DE
|
||||||
@ -522,7 +521,7 @@ HD_WAIT:
|
|||||||
LD DE,0
|
LD DE,0
|
||||||
|
|
||||||
HD_WAIT1:
|
HD_WAIT1:
|
||||||
LD BC,P_HDST
|
LD BC,IDE.Read.Status
|
||||||
IN A,(C)
|
IN A,(C)
|
||||||
BIT 7,A
|
BIT 7,A
|
||||||
JR Z,HD_W_EXIT
|
JR Z,HD_W_EXIT
|
||||||
@ -565,7 +564,7 @@ HD_CALC_SECS:
|
|||||||
RET NZ ; ®è¨¡ª , ᫨誮¬ ¡®«ì让 HDD..
|
RET NZ ; ®è¨¡ª , ᫨誮¬ ¡®«ì让 HDD..
|
||||||
|
|
||||||
PUSH BC
|
PUSH BC
|
||||||
LD BC,P_HD_CS
|
LD BC,IDE.Write.DeviceHead
|
||||||
DEC B
|
DEC B
|
||||||
IN A,(C)
|
IN A,(C)
|
||||||
BIT 6,A
|
BIT 6,A
|
||||||
@ -577,14 +576,14 @@ HD_CALC_SECS:
|
|||||||
PUSH IX
|
PUSH IX
|
||||||
POP HL
|
POP HL
|
||||||
|
|
||||||
IN A,(PAGE3)
|
IN A,(SLOT3)
|
||||||
LD C,A
|
LD C,A
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (PAGE3),A
|
OUT (SLOT3),A
|
||||||
LD A,C
|
LD A,C
|
||||||
LD (COPY_PAGE3),A
|
LD (SYS_PAGE.COPY_SLOT3),A
|
||||||
|
|
||||||
LD BC,(HD_IDF_ADR+4) ; ç¨á«® ᥪâ®à®¢ 樫¨¤à¥
|
LD BC,(SYS_PAGE.HD_IDF_ADR.sec_cyl) ; ç¨á«® ᥪâ®à®¢ 樫¨¤à¥
|
||||||
|
|
||||||
; HL,DE - ®¬¥à ᥪâ®à
|
; HL,DE - ®¬¥à ᥪâ®à
|
||||||
; BC - ç¨á«® ᥪâ®à®¢ 樫¨¤à¥
|
; BC - ç¨á«® ᥪâ®à®¢ 樫¨¤à¥
|
||||||
@ -609,7 +608,7 @@ NO_ADD: INC DE
|
|||||||
DIV_END: ; DE - १ã«ìâ â, HL - ®áâ ⮪
|
DIV_END: ; DE - १ã«ìâ â, HL - ®áâ ⮪
|
||||||
|
|
||||||
; DE - 樫¨¤à
|
; DE - 樫¨¤à
|
||||||
LD A,(HD_IDF_ADR+12) ; A - ç¨á«® ᥪâ®à®¢ ¤®à®¦ª¥
|
LD A,(SYS_PAGE.HD_IDF_ADR.sectors) ; A - ç¨á«® ᥪâ®à®¢ ¤®à®¦ª¥
|
||||||
; HL - ®¬¥à ᥪâ®à ¢ 樫¨¤à¥
|
; HL - ®¬¥à ᥪâ®à ¢ 樫¨¤à¥
|
||||||
LD B,0
|
LD B,0
|
||||||
LD C,A
|
LD C,A
|
||||||
@ -626,8 +625,8 @@ HD_CALC_LOOP2:
|
|||||||
INC L
|
INC L
|
||||||
LD H,A ; HL - HEAD,SEC
|
LD H,A ; HL - HEAD,SEC
|
||||||
|
|
||||||
LD A,(COPY_PAGE3)
|
LD A,(SYS_PAGE.COPY_SLOT3)
|
||||||
OUT (PAGE3),A
|
OUT (SLOT3),A
|
||||||
|
|
||||||
POP BC
|
POP BC
|
||||||
AND A
|
AND A
|
||||||
|
|||||||
13
ZX_EXP2.ASM
13
ZX_EXP2.ASM
@ -3,7 +3,8 @@
|
|||||||
DEVICE ZXSPECTRUM128
|
DEVICE ZXSPECTRUM128
|
||||||
ORG 0
|
ORG 0
|
||||||
|
|
||||||
INCLUDE 'INC/SPRINT00.INC' ; ª®áâ âë, ¬ ªà®áë..
|
;INCLUDE 'INC/SPRINT00.INC' ; ª®áâ âë, ¬ ªà®áë..
|
||||||
|
INCLUDE 'shared_includes/constants/sp2000.INC' ; ª®áâ âë, ¬ ªà®áë..
|
||||||
; ***************************
|
; ***************************
|
||||||
; ***** BEGIN EXPANSION *****
|
; ***** BEGIN EXPANSION *****
|
||||||
; ***************************
|
; ***************************
|
||||||
@ -64,7 +65,7 @@ HD_CMD_XR:
|
|||||||
BLOCK #3FE8-$,255
|
BLOCK #3FE8-$,255
|
||||||
HD_EXP_RET:
|
HD_EXP_RET:
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD A,D_ROM16OFF
|
LD A,CNF_PORT.ZX_BIOS
|
||||||
;!TEST
|
;!TEST
|
||||||
;OUT (SYS_PORT_ON),A
|
;OUT (SYS_PORT_ON),A
|
||||||
OUT (CNF_PORT),A
|
OUT (CNF_PORT),A
|
||||||
@ -76,16 +77,16 @@ HD_EXP_RET:
|
|||||||
HD_DOS_RET:
|
HD_DOS_RET:
|
||||||
PUSH AF
|
PUSH AF
|
||||||
DI
|
DI
|
||||||
LD A,D_ROM16OFF
|
LD A,CNF_PORT.ZX_BIOS
|
||||||
OUT (SYS_PORT_OFF),A
|
OUT (SYS_PORT.OFF),A
|
||||||
JR HD_CMD_XR
|
JR HD_CMD_XR
|
||||||
|
|
||||||
;***********************************************************************;
|
;***********************************************************************;
|
||||||
BLOCK #3FF8-$,255
|
BLOCK #3FF8-$,255
|
||||||
EXP_FNS_RET:
|
EXP_FNS_RET:
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD A,D_ROM16OFF
|
LD A,CNF_PORT.ZX_BIOS
|
||||||
OUT (SYS_PORT_OFF),A
|
OUT (SYS_PORT.OFF),A
|
||||||
//JP HD_CMD_XR_RET
|
//JP HD_CMD_XR_RET
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|||||||
2258
inc/rom_routines.inc
2258
inc/rom_routines.inc
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user