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

View File

@ -2079,7 +2079,8 @@ x1403 XOR A ;
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) ;¢á¥ ᪮¯¨à®¢ «¨?
OR A

View File

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

View File

@ -446,7 +446,7 @@ FAT_ALL:
;INCLUDE 'trdos/tr_msd_4.asz'
;-----------------------------------------------------------------------
BLOCK #09FF-$, #FF
_mInfoBLOCK #09FF-$, #FF
;牀え<E78980><E38188>瓷┤ ▲<><E296B2> <20>ム襤<E383A0><EFBFBD>
DW #FFFF
;-----------------------------------------------------------------------
@ -613,6 +613,35 @@ HDD_PROG_E:
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:
PUSH HL
PUSH BC
@ -43,7 +46,7 @@ RECALL_MSD:
TEST_RAMD:
PUSH HL
LD C,#CE ;!HARDCODE BIOS.GET_RAMD_ST
LD C,BIOS.GET_RAMD_ST
CALL EXP_FNS
;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
;EI
@ -51,250 +54,7 @@ TEST_RAMD:
POP HL
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: ; ¯à®¢¥àª  ¤¨áª 
LD (ZX_VARS.OPER_DISK),A
CALL DISK_REDIR
@ -326,7 +86,7 @@ RAMD_X14: ; FORMATING
DISK_FORM:
LD A,(ZX_VARS.MED_START+1)
CP 14H
CP #14
JR Z,QVICK_FORMAT
POP HL
POP BC
@ -349,7 +109,7 @@ RAMD_FORMAT:
POP HL
POP BC
POP AF
LD B,28H ; à §¬¥à 640K
LD B,#28 ; à §¬¥à 640K
CALL DISK_REDIR
SUB 4
@ -358,7 +118,7 @@ RAMD_FORMAT:
Q_FORM_1:
LD HL,ZX_VARS.BUFFER ; CLEAR DISK ZX_VARS.BUFFER
LD DE,ZX_VARS.BUFFER+1
LD BC,0FFh
LD BC,#FF
LD (HL),0
LDIR
@ -481,4 +241,353 @@ RAMD_SYM:
RAMD_SYM_OK:
POP AF
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
;***********************************************************************