This commit is contained in:
Anatoliy Belyanskiy 2024-01-31 23:11:19 +10:00
parent 31c19d6b26
commit 8930150cf8
7 changed files with 548 additions and 447 deletions

View File

@ -2079,7 +2079,8 @@ x1403 XOR A ;
RET ;¢®§¢p â RET ;¢®§¢p â
;€¤à¥á #1451. Š®¯¨à®¢ ­¨¥ ä ©«  ­  ®¤­®¬ ¤¨áª®¢®¤¥. <20>®¬¥áâ¨â¥ ®¯¨á â¥«ì ä ©«  ¢ #5CDD ¨ ¥£® ç áâì ¢ #5CED ¨ ãáâ ­®¢¨â¥ #5CF1, #5D21, #5D23 ¨ #5CCF. <20>®¤¯à®£à ¬¬  ãáâ ­ ¢«¨¢ ¥â #5CBB, #5CD9, #5CDA ¨ #5C92. ;€¤à¥á #1451. Š®¯¨à®¢ ­¨¥ ä ©«  ­  ®¤­®¬ ¤¨áª®¢®¤¥. <20>®¬¥áâ¨â¥ ®¯¨á â¥«ì ä ©«  ¢ #5CDD ¨ ¥£® ç áâì ¢ #5CED ¨ ãáâ ­®¢¨â¥ #5CF1,
; #5D21, #5D23 ¨ #5CCF. <20>®¤¯à®£à ¬¬  ãáâ ­ ¢«¨¢ ¥â #5CBB, #5CD9, #5CDA ¨ #5C92.
x1451 LD A,(#5CF1) ;¢á¥ ᪮¯¨à®¢ «¨? x1451 LD A,(#5CF1) ;¢á¥ ᪮¯¨à®¢ «¨?
OR A OR A

View File

@ -12,6 +12,8 @@
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'
INCLUDE 'Shared_Includes/constants/ZX_VARS.inc'
INCLUDE 'Shared_Includes/macroses/macros.z80'
TRDOS_ROM_CMD: TRDOS_ROM_CMD:
.READ_BPB EQU BIOS.HDD_READ_BPB and #BF .READ_BPB EQU BIOS.HDD_READ_BPB and #BF
@ -68,8 +70,6 @@ AUTO_FF00 EQU #FF00
AUTO_FFFF EQU #FFFF AUTO_FFFF EQU #FFFF
;**************************************** ;****************************************
DISPLAY "Start."
START: DI START: DI
LD DE,#FFFF LD DE,#FFFF
LD A,7 LD A,7
@ -82,7 +82,7 @@ CONT_1:
JR CONT_2 JR CONT_2
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
BLOCK #10-$,0 _mInfoBLOCK #10-$,0
RST10: RST10:
JP PRINT_SYM JP PRINT_SYM
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
@ -92,7 +92,7 @@ CONT_2:
JP CONT_3 JP CONT_3
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
BLOCK #18-$,0 _mInfoBLOCK #18-$,0
PRINT_LN: PRINT_LN:
JP PRINT_L JP PRINT_L
CONT_3: CONT_3:
@ -103,7 +103,7 @@ AUTO_001E:
JR CONT_4 JR CONT_4
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
BLOCK #20-$,0 _mInfoBLOCK #20-$,0
RST20: RST20:
JP RST20_EXE JP RST20_EXE
RET RET
@ -115,7 +115,7 @@ CONT_4:
JR CONT_5 JR CONT_5
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
BLOCK #28-$,0 _mInfoBLOCK #28-$,0
RST28: RST28:
JP RST28_EXE JP RST28_EXE
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
@ -129,7 +129,7 @@ CONT_5:
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
REDIR_RST38: REDIR_RST38:
BLOCK #38-$,#FF _mInfoBLOCK #38-$,#FF
; JP RST38X ; JP RST38X
; EI ; EI
; RET ; RET
@ -161,14 +161,14 @@ CONT_7:
LD HL,#B8ED LD HL,#B8ED
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
BLOCK #64-$,0 _mInfoBLOCK #64-$,0
AUTO_0064: AUTO_0064:
JR CONT_8 JR CONT_8
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
BLOCK #66-$,0 _mInfoBLOCK #66-$,0
;********** MAGIC *********** ;********** MAGIC ***********
; JP MAGIC_1 ;AUTO_2A56 ; JP MAGIC_1 ;AUTO_2A56
RETN RETN
@ -191,7 +191,7 @@ RET_1:
LD BC,AUTO_0540 LD BC,AUTO_0540
LD (ZX_VARS.ERR_BEEP),BC LD (ZX_VARS.ERR_BEEP),BC
LD (ZX_VARS.TOP_CLEAR),HL LD (ZX_VARS.TOP_CLEAR),HL
LD HL,03C00h LD HL,#3C00
LD (ZX_VARS.ZG),HL LD (ZX_VARS.ZG),HL
LD HL,(ZX_VARS.TOP_CLEAR) LD HL,(ZX_VARS.TOP_CLEAR)
LD (HL),'>' LD (HL),'>'
@ -246,7 +246,7 @@ AUTO_00C8:
AUTO_0100: AUTO_0100:
LD (HL),201 LD (HL),201
RST_ROM ROUTINE.clear_prb RST_ROM ROUTINE.clear_prb
LD HL,ZX_VARS.L_SCR_SIZE LD HL,ZX_VARS.SCR_SIZE
LD (HL),2 LD (HL),2
LD HL,AUTO_128B LD HL,AUTO_128B
PUSH HL PUSH HL
@ -935,7 +935,7 @@ AUTO_063C:
CALL AUTO_03FD CALL AUTO_03FD
LD A,(ZX_VARS.N_FILES) LD A,(ZX_VARS.N_FILES)
CP 128 CP 128
JP Z,AUTO_1C45 JP Z,AUTO_2723
LD HL,ZX_VARS.VAR_2 LD HL,ZX_VARS.VAR_2
LD DE,ZX_VARS.FL_START LD DE,ZX_VARS.FL_START
LD BC,7 LD BC,7
@ -1043,7 +1043,7 @@ AUTO_072F:
OR A OR A
RET Z RET Z
PUSH HL PUSH HL
LD HL,ZX_VARS.L_5D23 LD HL,ZX_VARS.WORK_SPACE.Size
SUB (HL) SUB (HL)
POP HL POP HL
JR NC,AUTO_0775 JR NC,AUTO_0775
@ -1075,7 +1075,7 @@ AUTO_0744:
AUTO_0775: AUTO_0775:
LD (ZX_VARS.VAR_2_0),A LD (ZX_VARS.VAR_2_0),A
PUSH HL PUSH HL
LD HL,ZX_VARS.L_5D23 LD HL,ZX_VARS.WORK_SPACE.Size
LD B,(HL) LD B,(HL)
POP HL POP HL
XOR A XOR A
@ -1140,7 +1140,7 @@ AUTO_07D2:
; ;
AUTO_07E7: AUTO_07E7:
BLOCK #07E7-$,255 _mInfoBLOCK #07E7-$,255
CALL AUTO_03FD CALL AUTO_03FD
LD HL,(ZX_VARS.FL_PLACE) LD HL,(ZX_VARS.FL_PLACE)
LD (ZX_VARS.CLEAR_SEC),HL LD (ZX_VARS.CLEAR_SEC),HL
@ -1154,74 +1154,71 @@ WG93_EXE_:
AND 252 AND 252
JP WG93_EXE JP WG93_EXE
;************************************** ;**************************************
DISPLAY "2k" ;INCLUDE 'trdos/tr_HDD_4.asz'
;INCLUDE 'trdos/tr_msd_4.asz' _mInfoBLOCK #0840-$,255
BLOCK #0840-$,255
INCLUDE 'trdos/tr_msd_3.asz' INCLUDE 'trdos/tr_msd_3.asz'
BLOCK #0B00-$,255 _mInfoBLOCK #0B00-$,255
ZG_RUS: ;!TODO russian charset
DB 3 ; ¨¤¥­â¨ä¨ª â®à ¢¥àᨨ TR-DOS ??? ZG_RUS: DB 3 ; ¨¤¥­â¨ä¨ª â®à ¢¥àᨨ TR-DOS ???
;************************************** ;**************************************
INCLUDE 'trdos/tr_msd_2.asz' INCLUDE 'trdos/tr_msd_2.asz'
; DSS 0E00h,255 ; DSS 0E00h,255
;************************************** ;**************************************
; ;!TODO russian charset
; <20>ãá᪨© §­ ª®£¥­¥à â®à - 40h..7Fh ᨬ¢®«ë. ; <20>ãá᪨© §­ ª®£¥­¥à â®à - 40h..7Fh ᨬ¢®«ë.
; ;
; DSS 0E00h,255 ; DSS 0E00h,255
; DB 0,0,76,82,114,82,76,0,0,0,56,4,60,68 ; DB 0,0,76,82,114,82,76,0,0,0,56,4,60,68
; DB 60,0,0,0,120,64,120,68,120,0,0,0,72 ; DB 60,0,0,0,120,64,120,68,120,0,0,0,72
; DB 72,72,72,124,4,0,0,24,40,40,40,124,68 ; DB 72,72,72,124,4,0,0,24,40,40,40,124,68
; DB 0,0,56,68,120,64,60,0,0,16,56,84,84 ; DB 0,0,56,68,120,64,60,0,0,16,56,84,84
; DB 56,16,0,0,0,124,64,64,64,64,0,0,0,68 ; DB 56,16,0,0,0,124,64,64,64,64,0,0,0,68
; DB 40,16,40,68,0,0,0,68,76,84,100,68,0 ; DB 40,16,40,68,0,0,0,68,76,84,100,68,0
; DB 0,16,68,76,84,100,68,0,0,0,72,80,112 ; DB 0,16,68,76,84,100,68,0,0,0,72,80,112
; DB 72,68,0,0,0,28,36,36,36,68,0,0,0,68 ; DB 72,68,0,0,0,28,36,36,36,68,0,0,0,68
; DB 108,84,84,68,0,0,0,68,68,124,68,68,0 ; DB 108,84,84,68,0,0,0,68,68,124,68,68,0
; DB 0,0,56,68,68,68,56,0,0,0,124,68,68,68 ; DB 0,0,56,68,68,68,56,0,0,0,124,68,68,68
; DB 68,0,0,0,60,68,60,36,68,0,0,0,120,68 ; DB 68,0,0,0,60,68,60,36,68,0,0,0,120,68
; DB 68,120,64,64,0,0,56,64,64,64,56,0,0 ; DB 68,120,64,64,0,0,56,64,64,64,56,0,0
; DB 0,124,16,16,16,16,0,0,0,68,68,60,4,56 ; DB 0,124,16,16,16,16,0,0,0,68,68,60,4,56
; DB 0,0,0,84,84,56,84,84,0,0,0,120,68,120 ; DB 0,0,0,84,84,56,84,84,0,0,0,120,68,120
; DB 68,120,0,0,0,64,64,120,68,120,0,0,0 ; DB 68,120,0,0,0,64,64,120,68,120,0,0,0
; DB 68,68,116,76,116,0,0,0,56,68,24,68,56 ; DB 68,68,116,76,116,0,0,0,56,68,24,68,56
; DB 0,0,0,84,84,84,84,124,0,0,0,56,4,28 ; DB 0,0,0,84,84,84,84,124,0,0,0,56,4,28
; DB 4,56,0,0,0,84,84,84,84,126,2,0,0,68 ; DB 4,56,0,0,0,84,84,84,84,126,2,0,0,68
; DB 68,60,4,4,0,0,0,96,32,56,36,56,0,0,76 ; DB 68,60,4,4,0,0,0,96,32,56,36,56,0,0,76
; DB 82,114,82,82,76,0,0,60,66,66,126,66 ; DB 82,114,82,82,76,0,0,60,66,66,126,66
; DB 66,0,0,124,64,124,66,66,124,0,0,68,68 ; DB 66,0,0,124,64,124,66,66,124,0,0,68,68
; DB 68,68,68,126,2,0,24,36,36,36,36,126 ; DB 68,68,68,126,2,0,24,36,36,36,36,126
; DB 66,0,126,64,124,64,64,126,0,0,56,84 ; DB 66,0,126,64,124,64,64,126,0,0,56,84
; DB 84,56,16,16,0,0,126,64,64,64,64,64,0 ; DB 84,56,16,16,0,0,126,64,64,64,64,64,0
; DB 0,66,36,24,24,36,66,0,0,66,70,74,82 ; DB 0,66,36,24,24,36,66,0,0,66,70,74,82
; DB 98,66,0,0,90,70,74,82,98,66,0,0,68,72 ; DB 98,66,0,0,90,70,74,82,98,66,0,0,68,72
; DB 112,72,68,66,0,0,30,34,34,34,34,66,0 ; DB 112,72,68,66,0,0,30,34,34,34,34,66,0
; DB 0,66,102,90,66,66,66,0,0,66,66,126,66 ; DB 0,66,102,90,66,66,66,0,0,66,66,126,66
; DB 66,66,0,0,60,66,66,66,66,60,0,0,126 ; DB 66,66,0,0,60,66,66,66,66,60,0,0,126
; DB 66,66,66,66,66,0,0,62,66,66,62,34,66 ; DB 66,66,66,66,66,0,0,62,66,66,62,34,66
; DB 0,0,124,66,66,124,64,64,0,0,60,66,64 ; DB 0,0,124,66,66,124,64,64,0,0,60,66,64
; DB 64,66,60,0,0,254,16,16,16,16,16,0,0 ; DB 64,66,60,0,0,254,16,16,16,16,16,0,0
; DB 66,66,62,2,66,60,0,0,84,84,56,84,84 ; DB 66,66,62,2,66,60,0,0,84,84,56,84,84
; DB 84,0,0,124,66,124,66,66,124,0,0,64,64 ; DB 84,0,0,124,66,124,66,66,124,0,0,64,64
; DB 124,66,66,124,0,0,66,66,114,74,74,114 ; DB 124,66,66,124,0,0,66,66,114,74,74,114
; DB 0,0,60,66,12,2,66,60,0,0,84,84,84,84 ; DB 0,0,60,66,12,2,66,60,0,0,84,84,84,84
; DB 84,124,0,0,60,66,14,2,66,60,0,0,84,84 ; DB 84,124,0,0,60,66,14,2,66,60,0,0,84,84
; DB 84,84,84,126,2,0,66,66,66,126,2,2,0 ; DB 84,84,84,126,2,0,66,66,66,126,2,2,0
; DB 60,66,153,161,161,153,66,60 ; DB 60,66,153,161,161,153,66,60
; ;
;************************************** ;**************************************
;************************************** ;**************************************
INCLUDE 'trdos/tr_msd_4.asz' INCLUDE 'trdos/tr_HDD_4.asz'
BLOCK #1000 - $,255 _mInfoBLOCK #1000 - $,255
;************************************** ;**************************************
DISPLAY "4k"
AUTO_1000: AUTO_1000:
DB 22,9,5,"Interface one fitted",0 DB 22,9,5,"Interface one fitted",0
; ;
@ -1762,7 +1759,7 @@ AUTO_146F:
OR A OR A
RET Z RET Z
PUSH HL PUSH HL
LD HL,ZX_VARS.L_5D23 LD HL,ZX_VARS.WORK_SPACE.Size
SUB (HL) SUB (HL)
POP HL POP HL
JR NC,AUTO_14CB JR NC,AUTO_14CB
@ -1802,7 +1799,7 @@ AUTO_14A5:
AUTO_14CB: AUTO_14CB:
LD (ZX_VARS.VAR_2_0),A LD (ZX_VARS.VAR_2_0),A
PUSH HL PUSH HL
LD HL,ZX_VARS.L_5D23 LD HL,ZX_VARS.WORK_SPACE.Size
LD B,(HL) LD B,(HL)
POP HL POP HL
XOR A XOR A
@ -1929,7 +1926,7 @@ AUTO_15DB:
RET Z RET Z
PUSH BC PUSH BC
PUSH HL PUSH HL
LD HL,ZX_VARS.L_5D23 LD HL,ZX_VARS.WORK_SPACE.Size
LD C,(HL) LD C,(HL)
LD B,0 LD B,0
POP HL POP HL
@ -1975,7 +1972,7 @@ AUTO_162A:
AUTO_1644: AUTO_1644:
LD (ZX_VARS.FL_TYPE),HL LD (ZX_VARS.FL_TYPE),HL
PUSH HL PUSH HL
LD HL,ZX_VARS.L_5D23 LD HL,ZX_VARS.WORK_SPACE.Size
LD C,(HL) LD C,(HL)
LD B,0 LD B,0
POP HL POP HL
@ -2019,7 +2016,7 @@ AUTO_1680:
LD A,17 LD A,17
AUTO_168F: AUTO_168F:
DEC A DEC A
LD (ZX_VARS.L_5D23),A LD (ZX_VARS.WORK_SPACE.Size),A
LD B,A LD B,A
LD C,0 LD C,0
RET RET
@ -2045,9 +2042,9 @@ CMD_MOVE:
LD DE,0900h LD DE,0900h
ADD HL,DE ADD HL,DE
LD (ZX_VARS.VAR_1),HL LD (ZX_VARS.VAR_1),HL
LD A,(ZX_VARS.L_5D23) LD A,(ZX_VARS.WORK_SPACE.Size)
SUB 9 SUB 9
LD (ZX_VARS.L_5D23),A LD (ZX_VARS.WORK_SPACE.Size),A
LD HL,(ZX_VARS.FL_N_4) LD HL,(ZX_VARS.FL_N_4)
LD DE,0 LD DE,0
LD B,9 LD B,9
@ -2136,7 +2133,7 @@ CMD_MOVE:
LD DE,0 LD DE,0
LD B,9 LD B,9
CALL WRITE_DISK CALL WRITE_DISK
LD A,(ZX_VARS.L_5D23) LD A,(ZX_VARS.WORK_SPACE.Size)
ADD A,9 ADD A,9
LD B,A LD B,A
LD C,0 LD C,0
@ -2178,7 +2175,7 @@ AUTO_17A5:
OR A OR A
RET Z RET Z
PUSH HL PUSH HL
LD HL,ZX_VARS.L_5D23 LD HL,ZX_VARS.WORK_SPACE.Size
SUB (HL) SUB (HL)
POP HL POP HL
JR NC,AUTO_17DD JR NC,AUTO_17DD
@ -2204,7 +2201,7 @@ AUTO_17BA:
AUTO_17DD: AUTO_17DD:
LD (ZX_VARS.AUTO_5CD3),A LD (ZX_VARS.AUTO_5CD3),A
PUSH HL PUSH HL
LD HL,ZX_VARS.L_5D23 LD HL,ZX_VARS.WORK_SPACE.Size
LD B,(HL) LD B,(HL)
POP HL POP HL
XOR A XOR A
@ -2235,7 +2232,6 @@ AUTO_17F7:
AUTO_180D: AUTO_180D:
LDIR LDIR
RET RET
DISPLAY "6k"
; ;
; ;
; ;
@ -3170,7 +3166,7 @@ AUTO_1E67:
JP R_W_REDIR JP R_W_REDIR
;LD (HL),30 ; <20>… ¨á¯. !!! ;LD (HL),30 ; <20>… ¨á¯. !!!
BLOCK #1E70-$,0 _mInfoBLOCK #1E70-$,0
AUTO_1E70: AUTO_1E70:
POP HL POP HL
POP BC POP BC
@ -3342,21 +3338,24 @@ 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,16,1 ;€¤à¥á #1FB9. ’ ¡«¨æ  ᥪâ®à®¢ ¤«ï ä®à¬ â¨à®¢ ­¨ï ®¡ëç­®£® ¤¨áª . ˆá¯®«ì§ã¥âáï â ª¦¥ á  ¤à¥á  #1FBA ¤«ï ¯à®¢¥àª¨ ¤®à®¦ª¨.
DB 1
DB 9,2,#A,3,#B,4,#C,5,#D,6,#E,7,#F,8,#10,1
test_d_traks: test_d_traks:
CALL get_disk_time CALL get_disk_time
OR 17 OR 17
LD B,A LD B,A
LD A,'2' LD A,#32
CALL Goto_trk CALL Goto_trk
LD A,2 LD A,2
CALL Goto_trk CALL Goto_trk
CALL pause_50ms CALL pause_50ms
IN A,(FDC_93.Command) IN A,(FDC_93.Command)
AND 4 AND 4
LD A,'P' LD A,#50
JR Z,AUTO_1FE7 JR Z,AUTO_1FE7
LD A,'(' LD A,#28
AUTO_1FE7: AUTO_1FE7:
LD (ZX_VARS.MED_START),A LD (ZX_VARS.MED_START),A
RET RET
@ -3519,7 +3518,7 @@ AUTO_20E5:
xchg_intf1: xchg_intf1:
PUSH AF PUSH AF
LD A,(ZX_VARS.BEG_ADRESS) LD A,(ZX_VARS.BEG_ADRESS)
CP 244 CP #F4
JR Z,AUTO_211C JR Z,AUTO_211C
XOR A XOR A
LD HL,ZX_VARS.INT_1_VAR LD HL,ZX_VARS.INT_1_VAR
@ -3533,7 +3532,7 @@ xchg_intf1:
JR NZ,AUTO_2111 JR NZ,AUTO_2111
LD DE,AUTO_5E34 LD DE,AUTO_5E34
AUTO_2111: AUTO_2111:
LD B,'-' LD B,#2D
AUTO_2113: AUTO_2113:
LD C,(HL) LD C,(HL)
LD A,(DE) LD A,(DE)
@ -4517,9 +4516,6 @@ AUTO_27ED:
DB "Directory full",141 DB "Directory full",141
AUTO_27FC: AUTO_27FC:
DB "No disk",141 DB "No disk",141
DISPLAY "10k"
AUTO_2804: AUTO_2804:
DB "Stream opened",141 DB "Stream opened",141
AUTO_2812: AUTO_2812:
@ -5426,19 +5422,20 @@ AUTO_2ECC:
RRCA RRCA
RRCA RRCA
RRCA RRCA
OUT (0FEH),A OUT (BorderColor),A
LD A,(ZX_VARS.AUTO_5B08) LD A,(ZX_VARS.SWAP_ROM_PRESENCE) ;¡¥à¥¬ ¡ ©â ¨§ #5B08
CP 238 CP #EE ;â ¬ #EE? ®¯ª®¤ XOR ¢ ¯à®æ¥¤ãॠ¯¥à¥ª«î祭¨ï ¡ ­®ª ROM Basic 48<->128
JR NZ,AUTO_2EF7 ;Žè¨¡ª !!! —¨á«® #EE ¯®  ¤à¥áã #5B08 ¥é¥ ­¨ ® 祬 ­¥ £®¢®p¨â.
JR NZ,AUTO_2EF7 ;¥á«¨ ­¥â, â® á¨á⥬­ëå ¯¥à¥¬¥­­ëå 128Š ­¥â
PUSH BC PUSH BC
LD BC,PORT_128 LD BC,PORT_128
LD A,(ZX_VARS.AUTO_5B5C) LD A,(ZX_VARS.COPY_P128)
OUT (C),A OUT (C),A
POP BC POP BC
AUTO_2EF7: AUTO_2EF7:
LD A,(ZX_VARS.K_STATE) LD A,(ZX_VARS.K_STATE) ;¡¥à¥¬ ä« £ ¯à¥à뢠­¨©
OR A OR A
LD A,201 LD A,#C9 ;ãáâ ­®¢ª  ¯¥à¥ª«îç â¥«ï <20>‡“ ­  ¡¥©á¨ª
LD (ZX_VARS.K_STATE),A LD (ZX_VARS.K_STATE),A
JR NZ,AUTO_2F03 JR NZ,AUTO_2F03
EI EI
@ -5447,7 +5444,7 @@ AUTO_2F03:
JP ZX_VARS.K_STATE JP ZX_VARS.K_STATE
AUTO_2F07: AUTO_2F07:
LD A,(AUTO_4011) LD A,(AUTO_4011)
OR 3Ch OR #3C
AUTO_2F0C: AUTO_2F0C:
OUT (FDC_93.DrvCTRL),A OUT (FDC_93.DrvCTRL),A
RET RET
@ -5862,7 +5859,7 @@ AUTO_31C8:
; ;
; ;
; ;
BLOCK #31F3 - $,255 _mInfoBLOCK #31F3 - $,255
AUTO_31F3: AUTO_31F3:
LD HL,(ZX_VARS.CHANS) LD HL,(ZX_VARS.CHANS)
OR A OR A
@ -5871,7 +5868,7 @@ AUTO_31F3:
RET RET
BLOCK #3200-$,#FF _mInfoBLOCK #3200-$,#FF
INIT_2X80: INIT_2X80:
JP AUTO_106E JP AUTO_106E
INIT_2X80_1: INIT_2X80_1:
@ -6339,7 +6336,7 @@ EDIT_X00:
LD (HL),128 LD (HL),128
EDIT_X01: EDIT_X01:
RST RST20 ; ¢¢®¤ ª« ¢¨è¨ RST RST20 ; ¢¢®¤ ª« ¢¨è¨
DW 015D4H DW #15D4
EDIT_X02: EDIT_X02:
CALL BEEP_1 CALL BEEP_1
CP 24 CP 24
@ -6349,11 +6346,11 @@ EDIT_X02:
CP 16 ; ®â 7 ¤® 16 - ।. áâப¨ CP 16 ; ®â 7 ¤® 16 - ।. áâப¨
JR C,EDIT_X04 JR C,EDIT_X04
RST RST20 ; ¢¢®¤ ᯥæ ᨬ¢®«®¢ RST RST20 ; ¢¢®¤ ᯥæ ᨬ¢®«®¢
DW 00F58H DW #0F58
JR EDIT_X01 JR EDIT_X01
EDIT_X03: EDIT_X03:
RST RST20 ; áâ ­¤. ¢¢®¤ ¢ ¡ãä¥à । ªâ¨à®¢ ­¨ï RST RST20 ; áâ ­¤. ¢¢®¤ ¢ ¡ãä¥à । ªâ¨à®¢ ­¨ï
DW 00F81H DW #0F81
JR EDIT_X01 JR EDIT_X01
EDIT_X04: EDIT_X04:
CP 7 ; ­  7 - ­¥â ®¯¥à æ¨¨ CP 7 ; ­  7 - ­¥â ®¯¥à æ¨¨
@ -6365,7 +6362,7 @@ EDIT_X04:
CP 11 CP 11
JR Z,EDIT_X01 JR Z,EDIT_X01
RST RST20 ; ¢ë¯®«­¨âì ®¯¥à æ¨î । ªâ¨à®¢ ­¨ï RST RST20 ; ¢ë¯®«­¨âì ®¯¥à æ¨î । ªâ¨à®¢ ­¨ï
DW 00F92H DW #0F92
JR EDIT_X01 JR EDIT_X01
@ -6375,32 +6372,29 @@ EDIT_X05:
;****************************************** ;******************************************
RUS_PRINT: ;!TODO russian charset
AND '?' ; RUS_PRINT:
LD L,A ; AND #3F
LD H,0 ; LD L,A
ADD HL,HL ; LD H,0
ADD HL,HL ; ADD HL,HL
ADD HL,HL ; ADD HL,HL
LD BC,ZG_RUS ; ADD HL,HL
ADD HL,BC ; LD BC,ZG_RUS
DB 17 ; ADD HL,BC
SUB D ; LD DE,#5C92
LD E,H ; LD BC,8
LD BC,RST08 ; LDIR
LDIR ; LD A,#C9
LD A,201 ; LD (ZX_VARS.AUTO_5C9A),A
LD (ZX_VARS.AUTO_5C9A),A ; JP ZX_VARS.AUTO_5C9A
JP ZX_VARS.AUTO_5C9A
;************************************** ;**************************************
; DSS 3900H,'#' ; DSS 3900H,'#'
;********************************** ;**********************************
DISPLAY "14k" _mInfoBLOCK #3C00 - $,255
BLOCK #3C00 - $,255
AUTO_3C00: AUTO_3C00:
RST R38 RST R38
JR AUTO_3C06 JR AUTO_3C06
@ -6408,18 +6402,18 @@ AUTO_3C00:
JR AUTO_3C09 JR AUTO_3C09
; ;
; ;
BLOCK #3C06 - $,255 _mInfoBLOCK #3C06 - $,255
AUTO_3C06: AUTO_3C06:
JP AUTO_3D00 JP AUTO_3D00
; ;
; ;
BLOCK #3C09 - $,255 _mInfoBLOCK #3C09 - $,255
AUTO_3C09: AUTO_3C09:
JP AUTO_3D03 JP AUTO_3D03
;************************************ ;************************************
;!FIXIT not used ;!FIXIT not used
BLOCK #3C10 - $,255 _mInfoBLOCK #3C10 - $,255
;KBD_EXP: ;KBD_EXP:
LD A,CNF_PORT.ZX_BIOS LD A,CNF_PORT.ZX_BIOS
OUT (CNF_PORT.ON),A OUT (CNF_PORT.ON),A
@ -6427,7 +6421,7 @@ AUTO_3C09:
; ;
;************************************ ;************************************
;!FIXIT not used ;!FIXIT not used
BLOCK #3C18 - $,255 _mInfoBLOCK #3C18 - $,255
;KBD_OFF: ;KBD_OFF:
LD A,CNF_PORT.ZX_BIOS LD A,CNF_PORT.ZX_BIOS
OUT (CNF_PORT.ON),A OUT (CNF_PORT.ON),A
@ -6435,14 +6429,14 @@ AUTO_3C09:
;************************************ ;************************************
;!FIXIT not used ;!FIXIT not used
BLOCK #3C20 - $,255 _mInfoBLOCK #3C20 - $,255
READR_X: READR_X:
CALL get_disk_time CALL get_disk_time
LD B,A LD B,A
JP set_side_0 JP set_side_0
;************************************ ;************************************
;!FIXIT not used ;!FIXIT not used
BLOCK #3C30 - $,255 _mInfoBLOCK #3C30 - $,255
IN A,(FDC_93.Command) IN A,(FDC_93.Command)
RET RET
@ -6525,7 +6519,7 @@ CMD_COPY.FIXED:
INC SP INC SP
JP AUTO_03D9 JP AUTO_03D9
;******************************* ;*******************************
BLOCK #3CC0 - $,255 _mInfoBLOCK #3CC0 - $,255
MAGIC_1: MAGIC_1:
PUSH AF PUSH AF
LD A,CNF_PORT.ZX_BIOS LD A,CNF_PORT.ZX_BIOS
@ -6533,7 +6527,7 @@ MAGIC_1:
POP AF POP AF
JP MAGIC_2 JP MAGIC_2
;******************************* ;*******************************
BLOCK #3CC9 - $,255 _mInfoBLOCK #3CC9 - $,255
MAGIC_3: MAGIC_3:
PUSH AF PUSH AF
LD A,CNF_PORT.ZX_BIOS LD A,CNF_PORT.ZX_BIOS
@ -6573,17 +6567,17 @@ REDIR_3D13:
JP EXP_FNS JP EXP_FNS
; ;
;***************************** ;*****************************
BLOCK #3CFA - $,255 _mInfoBLOCK #3CFA - $,255
AUTO_3CFA: AUTO_3CFA:
JP xchg_intf1 JP xchg_intf1
;****** 3D13 redirection ****** ;****** 3D13 redirection ******
BLOCK #3CFD - $,255 _mInfoBLOCK #3CFD - $,255
AUTO_3CFD: AUTO_3CFD:
JP REDIR_3D13 JP REDIR_3D13
; JP AUTO_283C ; JP AUTO_283C
;***********************************************************************; ;***********************************************************************;
BLOCK #3D00-$,#FF _mInfoBLOCK #3D00-$,#FF
AUTO_3D00: AUTO_3D00:
NOP NOP
@ -6602,7 +6596,7 @@ AUTO_3D0E:
NOP NOP
JR AUTO_3CFA JR AUTO_3CFA
;****** 3D13 point !!! **** ;****** 3D13 point !!! ****
BLOCK #3D13-$,#FF _mInfoBLOCK #3D13-$,#FF
NOP NOP
JR AUTO_3CFD JR AUTO_3CFD
AUTO_3D16: AUTO_3D16:
@ -6647,7 +6641,7 @@ AUTO_3D44:
AUTO_3D4C: AUTO_3D4C:
XOR A XOR A
OUT (FDC_93.DrvCTRL),A OUT (FDC_93.DrvCTRL),A
IN A,(#F6) IN A,(#F6) ; ­¨ç¥£® ­¥ ¤ ñâ
LD HL,AUTO_3D38 LD HL,AUTO_3D38
LD DE,ZX_VARS.MEM_BOT LD DE,ZX_VARS.MEM_BOT
LD BC,AUTO_3D38.Size + AUTO_3D44.Size LD BC,AUTO_3D38.Size + AUTO_3D44.Size
@ -6663,31 +6657,34 @@ AUTO_3D67: ;
PUSH HL PUSH HL
LD HL,AUTO_3D2F LD HL,AUTO_3D2F
PUSH HL PUSH HL
LD HL,1655h ;!HARDCODE LD HL,ZX_VARS.PROG.MAKE_ROOM
PUSH HL PUSH HL
LD HL,ZX_VARS.AUTO_5BFF LD HL,ZX_VARS.TSTACK
PUSH HL PUSH HL
LD (HL),#C9 ; RET code LD (HL),#C9 ; RET code
LD HL,ZX_VARS.P_RAMTOP+1 LD HL,ZX_VARS.P_RAMTOP+1
LD BC,CONT_8+7 LD BC,CONT_8+7
RET RET
PRINT_CR: PRINT_CR:
LD A,13 LD A,#0D ; enter
PRINT_SYM: PRINT_SYM:
JP PRINT_RED JP PRINT_RED
RST R38
RST R38 _mInfoBLOCK #3D8F-$,#FF ; •…<E280A2>
NOP DW 0000 ; ‡<>€…
NOP _mInfoBLOCK 3,#FF ; ‡€—…Œ
JP RUS_PRINT
RST R38 ;=======================================================================
RST R38 ;!TODO russian charset
RST R38 ; PRINT_CR:
NOP ; LD A,#0D ; enter
NOP ; PRINT_SYM:
RST R38 ; CP #80
RST R38 ; JP C,PRINT_RED
RST R38 ; JP RUS_PRINT
;=======================================================================
AUTO_3D94: AUTO_3D94:
RST_ROM ROUTINE.print_a RST_ROM ROUTINE.print_a
RET RET
@ -6731,22 +6728,22 @@ SET_DISK:
AUTO_3DCE: AUTO_3DCE:
LD HL,ZX_VARS.PDOS_COPY LD HL,ZX_VARS.PDOS_COPY
LD C,A LD C,A
LD A,3Ch LD A,#3C
OR C OR C
OUT (FDC_93.DrvCTRL),A OUT (FDC_93.DrvCTRL),A
LD (HL),A LD (HL),A
CALL get_disk_time CALL get_disk_time
AND 128 AND #80
JR Z,AUTO_3DFA JR Z,AUTO_3DFA
CALL RESET_WG CALL RESET_WG
CALL test_disk CALL test_disk
CALL get_disk_type CALL get_disk_type
CP 255 CP #FF
JR NZ,AUTO_3DFA JR NZ,AUTO_3DFA
PUSH HL PUSH HL
CALL test_d_traks CALL test_d_traks
POP HL POP HL
CP 'P' CP #50
LD A,0 LD A,0
JR NZ,AUTO_3DF9 JR NZ,AUTO_3DF9
LD A,128 LD A,128
@ -6755,7 +6752,7 @@ AUTO_3DF9:
AUTO_3DFA: AUTO_3DFA:
CALL READ_TRK_NUM CALL READ_TRK_NUM
pause_50ms: pause_50ms:
LD A,12 ;'P' LD A,12 ; #50
pause_1ms: pause_1ms:
LD C,255 LD C,255
AUTO_3E01: AUTO_3E01:
@ -7081,7 +7078,7 @@ AUTO_3FEC:
;[x]] ¯®¯à ¢«¥­ë ­®¬¥à  ä㭪権 ¯à¨ ¢ë§®¢ å API ¨ ¯à룠¥â áà §ã ¢ BIOS ç¥à¥§ #3FF8 ;[x]] ¯®¯à ¢«¥­ë ­®¬¥à  ä㭪権 ¯à¨ ¢ë§®¢ å API ¨ ¯à룠¥â áà §ã ¢ BIOS ç¥à¥§ #3FF8
;-------[ From TR-DOS to API 4x ]------- ;-------[ From TR-DOS to API 4x ]-------
BLOCK #3FF0-$, #FF _mInfoBLOCK #3FF0-$, #FF
HD_CMD: PUSH AF HD_CMD: PUSH AF
DI DI
;LD A,SYS_PORT.EXTENSION ;LD A,SYS_PORT.EXTENSION
@ -7093,7 +7090,7 @@ HD_CMD: PUSH AF
; ;
;----[ From TR-DOS to API #80..#FF]----- ;----[ From TR-DOS to API #80..#FF]-----
BLOCK #3FF8-$, #FF _mInfoBLOCK #3FF8-$, #FF
EXP_FNS:;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â® EXP_FNS:;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
;PUSH AF ;PUSH AF
;DI ;!TODO ¯®¤ã¬ âì, ª ª á®åà ­ïâì á®áâ®ï­¨¥ ¯à¥à뢠­¨© ¨ ­¨ç¥£® ­¥ á«®¬ âì ;DI ;!TODO ¯®¤ã¬ âì, ª ª á®åà ­ïâì á®áâ®ï­¨¥ ¯à¥à뢠­¨© ¨ ­¨ç¥£® ­¥ á«®¬ âì
@ -7108,7 +7105,7 @@ EXP_FNS_PREPARE_RET:
; ;
; ;
BLOCK #4000-$, #FF _mInfoBLOCK #4000-$, #FF
DISPLAY "16k..ALL!" ;
DISPLAY "\n\rNEW RAMDRV READ = ",/D,NEW_RAMDRV_READ
; ;

View File

@ -19096,11 +19096,8 @@ L3BC9: SCF ; Return as if no trailing space
JP $0B03 ; PO-FETCH - Return via Position Fetch routine JP $0B03 ; PO-FETCH - Return via Position Fetch routine
L3BD2: DEFM "SPECTRU" ; SPECTRUM token L3BD2: DC "SPECTRUM" ; SPECTRUM token
DEFB 'M'+$80 L3BDA: DC "PLAY" ; PLAY token
L3BDA: DEFM "PLA" ; PLAY token
DEFB 'Y'+$80
;; KP_SCAN2 ;; KP_SCAN2
L3BDE: JP L3C01 ; This is not called from either ROM. It can be used to scan the keypad. L3BDE: JP L3C01 ; This is not called from either ROM. It can be used to scan the keypad.

@ -1 +1 @@
Subproject commit 713bcf1538ff822231da15aed4d8fb7611ebe205 Subproject commit 4d14c951c21a9e98b8c301bece3f16bd5d5e5cfc

View File

@ -1,36 +1,4 @@
HDD_SET:;!TEST
.loop: LD A,(DE)
INC DE
CP ' '
JR Z,.loop
CP #0D
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
;
;[x] 29/01/2024 ;[x] 29/01/2024
;¢ë室: A: bit1 - Primary/Secondary, bit0 - master/slave, bit2..3: ¨á¯®«ì§ãî騩áï à §¤¥« ¢ MBR ;¢ë室: A: bit1 - Primary/Secondary, bit0 - master/slave, bit2..3: ¨á¯®«ì§ãî騩áï à §¤¥« ¢ MBR
CHOOSE_HDD: CHOOSE_HDD:

View File

@ -446,7 +446,7 @@ FAT_ALL:
;INCLUDE 'trdos/tr_msd_4.asz' ;INCLUDE 'trdos/tr_msd_4.asz'
;----------------------------------------------------------------------- ;-----------------------------------------------------------------------
BLOCK #09FF-$, #FF _mInfoBLOCK #09FF-$, #FF
;牀え<E78980><E38188>瓷┤ ▲<><E296B2> <20>ム襤<E383A0><EFBFBD> ;牀え<E78980><E38188>瓷┤ ▲<><E296B2> <20>ム襤<E383A0><EFBFBD>
DW #FFFF DW #FFFF
;----------------------------------------------------------------------- ;-----------------------------------------------------------------------
@ -613,6 +613,35 @@ HDD_PROG_E:
JP AUTO_03E4 JP AUTO_03E4
; ;
HDD_SET:;!TEST
.loop: LD A,(DE)
INC DE
CP ' '
JR Z,.loop
CP #0D
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
;
;*************************************************************************** ;***************************************************************************

View File

@ -1,4 +1,7 @@
; ;
DEFINE NEW_RAMDRV_READ 0
DISK_REDIR: DISK_REDIR:
PUSH HL PUSH HL
PUSH BC PUSH BC
@ -43,7 +46,7 @@ RECALL_MSD:
TEST_RAMD: TEST_RAMD:
PUSH HL PUSH HL
LD C,#CE ;!HARDCODE BIOS.GET_RAMD_ST LD C,BIOS.GET_RAMD_ST
CALL EXP_FNS CALL EXP_FNS
;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â® ;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
;EI ;EI
@ -51,250 +54,7 @@ TEST_RAMD:
POP HL POP HL
RET RET
; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
; º RD/WR SECTOR HL - ZX_VARS.BUFFER º\
; º ZX_VARS.CONT_SEC - SEC/TRK FOR READ/WRITE º\
; º COM_RD_WR - ª®¬ ­¤  ç⥭¨¥/§ ¯¨áì º\
; º 0 - ç⥭¨¥, 255 - § ¯¨áì º\
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\
; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
READ_WRITE_RAMD:
;
; CALL DISK_REDIR
; SUB 4
; RET C
; CP 16
; CCF
; RET C
;
; PUSH HL
; LD HL,RAMD_KEYS
; ADD A,L
; LD L,A
; IN A,(SLOT3)
; LD C,A
; LD A,SYS_PAGE
; DI
; OUT (SLOT3),A
; LD L,(HL)
; LD A,C
; OUT (SLOT3),A
; EI
; LD A,L ; 1-st block
; POP HL
;
; AND A
; SCF
; RET Z
; EX AF,AF'
;
; IN A,(RGADR)
; PUSH AF
;
; PUSH HL
; PUSH DE
; PUSH BC
;
; LD DE,(ZX_VARS.CONT_SEC)
; LD A,D ; ”ˆ‡ˆ—…‘Šˆ… -> ‹Žƒˆ—…‘Šˆ… !!!
; RRCA
; RRCA
; RRCA
; RRCA
; LD D,A
; AND 0F0H
; OR E
; LD E,A
; LD A,D
; AND 0FH
; LD D,A
;
; LD A,(ZX_VARS.RD_WR_COM)
; AND A
; JR Z,RAMD_READ
; PUSH AF
; LD A,0C0H
; OUT (RGADR),A
; POP AF
;RAMD_READ:
;
; POP BC
; PUSH BC
; LD C,0C8H
; DI
; EX AF,AF'
; CALL EXP_FNS ; ç⥭¨¥/§ ¯¨áì RAM-Disk
; EI
; POP BC
; POP DE
; POP HL
; POP AF
; OUT (RGADR),A
; LD DE,(ZX_VARS.CONT_SEC)
;
; LD A,B
;
;RAMD_TRK_CONT:
; SUB 16
; JR C,RAMD_NO_TRK
; INC D
; JR RAMD_TRK_CONT
;
;RAMD_NO_TRK:
; ADD A,16
; ADD A,E
; CP 16
; JR C,RAMD_NO_TRK1
; SUB 16
; INC D
;RAMD_NO_TRK1:
; LD E,A
;
; LD A,H
; ADD A,B
; LD H,A
;
; LD B,0
;
; LD (ZX_VARS.CONT_SEC),DE
; AND A
; RET
;
;
INC B
WD_WR_RAMD_LOOP:
DEC B
RET Z
PUSH BC
PUSH HL
CALL RD_WR_1SEC
POP HL
CALL RAMD_NEXT_SEC
POP BC
JR WD_WR_RAMD_LOOP
RAMD_NEXT_SEC:
PUSH HL
LD HL,ZX_VARS.CONT_SEC
LD A,16
INC (HL)
CP (HL)
JR NZ,RAMD_NEXT_1
LD (HL),0
INC HL
INC (HL)
RAMD_NEXT_1:
POP HL
LD BC,0100h
ADD HL,BC
RET
RD_WR_1SEC:
LD DE,(ZX_VARS.CONT_SEC)
CALL PAGE_CALC2
DI
LD A,(ZX_VARS.RD_WR_COM)
AND 0C0H
OUT (RGADR),A
LD A,H
CP 0A0H
LD A,(ZX_VARS.RD_WR_COM)
LD E,0
LD D,C
SET 6,D
JR C,RD_WR_C000
RD_WR_4000:
RES 7,D ; DE -  ¤à¥á ¤ ­­ëå RAMD
LD C,SLOT1
EX AF,AF'
IN A,(C)
EX AF,AF'
OUT (C),B
;****** <20><EFBFBD>…Œ…™…<E284A2>ˆ… „€<E2809E><E282AC>• *****
LD BC,100H
AND A
JR NZ,MOVE_NOT_EX3
EX DE,HL
MOVE_NOT_EX3:
LDIR ; à ¡®â âì §¤¥áì ¦¥, ¢ TR-DOS !!!
AND A
JR NZ,MOVE_NOT_EX4
EX DE,HL
MOVE_NOT_EX4:
;*******************************
EX AF,AF'
OUT (SLOT1),A
EX AF,AF'
; RET_PAGE1
MOVE_RET:
LD A,0
OUT (RGADR),A
EI
RET
RD_WR_C000:
SET 7,D
LD C,SLOT3
EX AF,AF'
IN A,(C)
EX AF,AF'
OUT (C),B
;****** <20><EFBFBD>…Œ…™…<E284A2>ˆ… „€<E2809E><E282AC>• *****
LD BC,100H
AND A
JR NZ,MOVE_NOT_EX1
EX DE,HL
MOVE_NOT_EX1:
LDIR ; à ¡®â âì §¤¥áì ¦¥, ¢ TR-DOS !!!
AND A
JR NZ,MOVE_NOT_EX2
EX DE,HL
MOVE_NOT_EX2:
;*******************************
EX AF,AF'
OUT (SLOT3),A
EX AF,AF'
; RET_PAGE3
JR MOVE_RET
;**********************************************
PAGE_CALC2:
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
PUSH HL
LD C,BIOS.RAMD_CALC_PAGE
CALL DISK_REDIR
SUB 4
CALL EXP_FNS ; ¢ëç¨á«¥­¨¥  ¤à¥á  ¨ áâà ­¨æë RAM-Disk
;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
;EI
;
LD B,A
LD C,H
POP HL
;EI
RET NC
JP ERROR_DISK
;*********************************************
RAMD_X12: ; ¯à®¢¥àª  ¤¨áª  RAMD_X12: ; ¯à®¢¥àª  ¤¨áª 
LD (ZX_VARS.OPER_DISK),A LD (ZX_VARS.OPER_DISK),A
CALL DISK_REDIR CALL DISK_REDIR
@ -326,7 +86,7 @@ RAMD_X14: ; FORMATING
DISK_FORM: DISK_FORM:
LD A,(ZX_VARS.MED_START+1) LD A,(ZX_VARS.MED_START+1)
CP 14H CP #14
JR Z,QVICK_FORMAT JR Z,QVICK_FORMAT
POP HL POP HL
POP BC POP BC
@ -349,7 +109,7 @@ RAMD_FORMAT:
POP HL POP HL
POP BC POP BC
POP AF POP AF
LD B,28H ; à §¬¥à 640K LD B,#28 ; à §¬¥à 640K
CALL DISK_REDIR CALL DISK_REDIR
SUB 4 SUB 4
@ -358,7 +118,7 @@ RAMD_FORMAT:
Q_FORM_1: Q_FORM_1:
LD HL,ZX_VARS.BUFFER ; CLEAR DISK ZX_VARS.BUFFER LD HL,ZX_VARS.BUFFER ; CLEAR DISK ZX_VARS.BUFFER
LD DE,ZX_VARS.BUFFER+1 LD DE,ZX_VARS.BUFFER+1
LD BC,0FFh LD BC,#FF
LD (HL),0 LD (HL),0
LDIR LDIR
@ -481,4 +241,353 @@ RAMD_SYM:
RAMD_SYM_OK: RAMD_SYM_OK:
POP AF POP AF
RET RET
; ;
;======================================================================-
; READ_WRITE_RAMD:
;
; CALL DISK_REDIR
; SUB 4
; RET C
; CP 16
; CCF
; RET C
;
; PUSH HL
; LD HL,RAMD_KEYS
; ADD A,L
; LD L,A
; IN A,(SLOT3)
; LD C,A
; LD A,SYS_PAGE
; DI
; OUT (SLOT3),A
; LD L,(HL)
; LD A,C
; OUT (SLOT3),A
; EI
; LD A,L ; 1-st block
; POP HL
;
; AND A
; SCF
; RET Z
; EX AF,AF'
;
; IN A,(RGADR)
; PUSH AF
;
; PUSH HL
; PUSH DE
; PUSH BC
;
; LD DE,(ZX_VARS.CONT_SEC)
; LD A,D ; ”ˆ‡ˆ—…‘Šˆ… -> ‹Žƒˆ—…‘Šˆ… !!!
; RRCA
; RRCA
; RRCA
; RRCA
; LD D,A
; AND 0F0H
; OR E
; LD E,A
; LD A,D
; AND 0FH
; LD D,A
;
; LD A,(ZX_VARS.RD_WR_COM)
; AND A
; JR Z,RAMD_READ
; PUSH AF
; LD A,0C0H
; OUT (RGADR),A
; POP AF
;RAMD_READ:
;
; POP BC
; PUSH BC
; LD C,0C8H
; DI
; EX AF,AF'
; CALL EXP_FNS ; ç⥭¨¥/§ ¯¨áì RAM-Disk
; EI
; POP BC
; POP DE
; POP HL
; POP AF
; OUT (RGADR),A
; LD DE,(ZX_VARS.CONT_SEC)
;
; LD A,B
;
;RAMD_TRK_CONT:
; SUB 16
; JR C,RAMD_NO_TRK
; INC D
; JR RAMD_TRK_CONT
;
;RAMD_NO_TRK:
; ADD A,16
; ADD A,E
; CP 16
; JR C,RAMD_NO_TRK1
; SUB 16
; INC D
;RAMD_NO_TRK1:
; LD E,A
;
; LD A,H
; ADD A,B
; LD H,A
;
; LD B,0
;
; LD (ZX_VARS.CONT_SEC),DE
; AND A
; RET
;======================================================================-
;***********************************************************************
READ_WRITE_RAMD:
IFN NEW_RAMDRV_READ
; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
; º RD/WR SECTOR º\
; º HL - BUFFER º\
; º CONT_SEC - SEC/TRK FOR READ/WRITE º\
; º RD_WR_COM - ª®¬ ­¤  ç⥭¨¥/§ ¯¨áì º\
; º 0 - ç⥭¨¥, 255 - § ¯¨áì º\
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\
; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
INC B
WD_WR_RAMD_LOOP:
DEC B
RET Z
PUSH BC
PUSH HL
CALL RD_WR_1SEC
POP HL
CALL RAMD_NEXT_SEC
POP BC
JR WD_WR_RAMD_LOOP
RAMD_NEXT_SEC:
PUSH HL
LD HL,ZX_VARS.CONT_SEC
LD A,16
INC (HL)
CP (HL)
JR NZ,.RAMD_NEXT_1
LD (HL),0
INC HL
INC (HL)
.RAMD_NEXT_1:
POP HL
LD BC,#100
ADD HL,BC
RET
RD_WR_1SEC:
LD DE,(ZX_VARS.CONT_SEC)
CALL PAGE_CALC2
DI
LD A,(ZX_VARS.RD_WR_COM)
AND #C0
OUT (RGADR),A
LD A,H
CP #A0
LD A,(ZX_VARS.RD_WR_COM)
LD E,0
LD D,C
SET 6,D
JR C,.RD_WR_C000
;RD_WR_4000:
RES 7,D ; DE -  ¤à¥á ¤ ­­ëå RAMD
LD C,SLOT1
EX AF,AF'
IN A,(C)
EX AF,AF'
OUT (C),B
; <20><EFBFBD>…Œ…™…<E284A2>ˆ… „€<E2809E><E282AC>
LD BC,#100
AND A
JR NZ,.MOVE_NOT_EX3
EX DE,HL
.MOVE_NOT_EX3:
LDIR ; à ¡®â âì §¤¥áì ¦¥, ¢ TR-DOS !!!
AND A
JR NZ,.MOVE_NOT_EX4
EX DE,HL
.MOVE_NOT_EX4:
;*******************
EX AF,AF'
OUT (SLOT1),A
EX AF,AF'
; RET_PAGE1
.MOVE_RET:
LD A,0
OUT (RGADR),A
EI
RET
.RD_WR_C000:
SET 7,D
LD C,SLOT3
EX AF,AF'
IN A,(C)
EX AF,AF'
OUT (C),B
; <20><EFBFBD>…Œ…™…<E284A2>ˆ… „€<E2809E><E282AC>
LD BC,#100
AND A
JR NZ,.MOVE_NOT_EX1
EX DE,HL
.MOVE_NOT_EX1:
LDIR ; à ¡®â âì §¤¥áì ¦¥, ¢ TR-DOS !!!
AND A
JR NZ,.MOVE_NOT_EX2
EX DE,HL
;********************
.MOVE_NOT_EX2:
EX AF,AF'
OUT (SLOT3),A
EX AF,AF'
; RET_PAGE3
JR .MOVE_RET
;**********************************************
PAGE_CALC2:
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
PUSH HL
LD C,BIOS.RAMD_CALC_PAGE
CALL DISK_REDIR
SUB 4
CALL EXP_FNS ; ¢ëç¨á«¥­¨¥  ¤à¥á  ¨ áâà ­¨æë RAM-Disk
;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
;EI
;
LD B,A
LD C,H
POP HL
;EI
RET NC
JP ERROR_DISK
;********************************************
ELSE
;********************************************
; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
; º RD/WR SECTOR º\
; º HL - BUFFER º\
; º B - Number of sectors º\
; º CONT_SEC - SEC/TRK FOR READ/WRITE º\
; º RD_WR_COM - ª®¬ ­¤  ç⥭¨¥/§ ¯¨áì º\
; º 0 - ç⥭¨¥, 255 - § ¯¨áì º\
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\
; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
PUSH HL
PUSH BC
;Get RAM Block ID
LD A,(ZX_VARS.OPER_DISK)
AND 3
LD C,BIOS.GET_DRV_ST
CALL EXP_FNS
JP C,.ERROR
SUB 4
LD C,BIOS.GET_RAMD_ST
CALL EXP_FNS
JP C,.ERROR
; A = RAM Block ID
EX AF,AF'
;
POP BC
LD C,B
; !TEST ­ ªàã稢 ¥¬ áçñâ稪 r/w ᥪâ®à®¢
LD HL,(ZX_VARS.CONT_SEC)
LD A,16
INC C
.loop: DEC C
JR Z,.next
INC L
CP L
JR NZ,.loop
INC H
LD L,0
JR .loop
.next: ;
; ”ˆ‡ˆ—…‘Šˆ‰ …ŠŽ<E28099> -> ‹Žƒˆ—…‘Šˆ‰
LD DE,(ZX_VARS.CONT_SEC)
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
;
EX (SP),HL
; Get command r/w
LD A,(ZX_VARS.RD_WR_COM)
EX AF,AF'
LD C,BIOS.BLK_RD_WR
CALL EXP_FNS
POP HL
JP C,AUTO_3EE7
; á®å࠭塞 ­ ªàã祭­ë© áçñâ稪
LD (ZX_VARS.CONT_SEC),HL
RET
.ERROR: POP BC
POP HL
JP AUTO_3EE7 ;Disk error
; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
; º RD/WR SECTOR º\
; º HL - BUFER º\
; º DE - ABS sector ¢ 256b ¡«®ª å º\
; º B - ç¨á«® ¤ ­­ëå ¢ 256b ¡«®ª å º\
; º A - block RAM º\
; º A' - ª®¬ ­¤  ç⥭¨¥/§ ¯¨áì/ç⥭¨¥ ROM Disk º\
; º 0 - read, 255 - write, 70 - read ROM DISK º\
; º ** NOT USED TR-DOS VARS ** º\
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\
; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
; RAMD_NEXT_SEC:
; PUSH HL
; LD HL,ZX_VARS.CONT_SEC
; LD A,16
; INC (HL)
; CP (HL)
; JR NZ,.RAMD_NEXT_1
; LD (HL),0
; INC HL
; INC (HL)
; .RAMD_NEXT_1:
; POP HL
; LD BC,#100
; ADD HL,BC
; RET
ENDIF
;***********************************************************************