some tests with 5x

This commit is contained in:
Anatoliy Belyanskiy 2023-06-25 04:55:29 +10:00
parent 0b627948aa
commit dc8f5f37ac
21 changed files with 1683 additions and 1054 deletions

@ -1 +1 @@
Subproject commit 95c15f46dcd79b9ea7f60eca0011152305fbc366
Subproject commit 81f727ca6ecd8fcaaac4f4e573fe1fd6578c1efa

View File

@ -0,0 +1,3 @@
{
"search.useIgnoreFiles": false
}

View File

@ -32,20 +32,9 @@
ENDM
;[--------------------------------------------------------------------------]
IF BIOS_ZXMODE
DEFINE SP_128_BIN INCBIN 'src/ZX_ROMS/NEW/SP_128.BIN'
DEFINE SP__48_BIN INCBIN 'src/ZX_ROMS/NEW/SP__48.BIN'
DEFINE SP_TRDOS_BIN INCBIN 'src/ZX_ROMS/NEW/SP_TRDOS.BIN'
DEFINE SP_EXP_BIN ;INCBIN 'src/ZX_ROMS/SP_EXP.BIN'
ELSE
DEFINE SP_128_BIN INCBIN 'src/ZX_ROMS/SP_128.BIN'
DEFINE SP__48_BIN INCBIN 'src/ZX_ROMS/SP__48.BIN'
DEFINE SP_TRDOS_BIN INCBIN 'src/ZX_ROMS/SP_TRD.BIN'
DEFINE SP_EXP_BIN INCBIN 'src/ZX_ROMS/SP_EXP.BIN'
ENDIF
;[--------------------------------------------------------------------------]
MACRO ROM_BUILD bitstream
@ -73,25 +62,9 @@
SP_TRDOS_BIN
Set_Block 'SP_TRD free space: ', #14000
;
;PAGE 5 ZX Page - #45
SP_EXP_BIN
Set_Block 'SP_EXP free space: ', #18000
IF SetFullZXromLoader
;
;PAGE 6 ZX Page - #46
INCBIN 'src/ZX_ROMS/SP_EXP.BIN'
Set_Block 'SP_EXP (duble) free space: ', #1C000
;
;PAGE 7 ZX Page - #47
INCBIN 'src/ZX_ROMS/SP_EXP2.BIN'
Set_Block 'SP_EXP2 free space: ', #20000
ELSE
INCBIN IMG_RECOVERY,0,#8000
DISPLAY "ROM Disk recovery part1, pages 6..7: #20000..#28000"
;Set_Block 'Empty space: ', #1C000 ; 6
;Set_Block 'Empty space: ', #20000 ; 7
ENDIF
;PAGE 5 Recovery image part 1
INCBIN IMG_RECOVERY,0,#C000
DISPLAY "ROM Disk recovery part1, pages 5..7: #20000..#2C000"
;
@ -100,12 +73,11 @@
INCBIN 'Build/Bin/EXP.BIN'
Set_Block 'EXP free space: ', #24000
;
;PAGE 9-11 (#09, #0A, #0B)
INCBIN IMG_RECOVERY,#8000,#C000
DISPLAY "ROM Disk recovery part2, pages 9..11: #24000..#30000"
; Set_Block 'Empty space: ', #28000
; Set_Block 'Empty space: ', #2C000
; Set_Block 'Empty space: ', #30000
;PAGE 9-11 (#09, #0A, #0B) Recovery image part 2
INCBIN IMG_RECOVERY,#C000,#8000
DISPLAY "ROM Disk recovery part2, pages 9..10: #24000..#2C000"
Set_Block 'Empty space: ', #30000
;
;PAGE 12-15 (#0C, #0D, #0E, #0F)
INCBIN bitstream

View File

@ -25,426 +25,426 @@
;
;-----------------------------------------------------------------------;
DW %00000000000111
DW %00010001101111
DW %00'000'0'0000'0111
DW %00'010'0'0110'1111
DB ACEX.VG93_1F
DW %11010000000111
DW %11010001101111
DW %11'010'0'0000'0111
DW %11'010'0'0110'1111
DB ACEX.VG93_1F
DW %00000000100111
DW %00010001101111
DW %00'000'0'0010'0111
DW %00'010'0'0110'1111
DB ACEX.VG93_3F
DW %11010000100111
DW %11010001101111
DW %11'010'0'0010'0111
DW %11'010'0'0110'1111
DB ACEX.VG93_3F
DW %00000001000111
DW %00010001101111
DW %00'000'0'0100'0111
DW %00'010'0'0110'1111
DB ACEX.VG93_5F
DW %11010001000111
DW %11010001101111
DW %11'010'0'0100'0111
DW %11'010'0'0110'1111
DB ACEX.VG93_5F
DW %00000001100111
DW %00010001101111
DW %00'000'0'0110'0111
DW %00'010'0'0110'1111
DB ACEX.VG93_7F
DW %11010001100111
DW %11010001101111
DW %11'010'0'0110'0111
DW %11'010'0'0110'1111
DB ACEX.VG93_7F
DW %00000001101111
DW %00011001101111
DW %00'000'0'0110'1111
DW %00'011'0'0110'1111
DB ACEX.VG93_State
DW %11010001101111
DW %11011001101111
DW %11'010'0'0110'1111
DW %11'011'0'0110'1111
DB ACEX.VG93_State
; For joystick
DW %00011000000111
DW %10011001101111
DW %00'011'0'0000'0111
DW %10'011'0'0110'1111
DB ACEX.JOY_VG93
DW %10011000000111
DW %11011001101111
DW %10'011'0'0000'0111
DW %11'011'0'0110'1111
DB ACEX.JOY_VG93
; For VG93 with dos on
DW %00001001101111
DW %00011001101111
DW %00'001'0'0110'1111
DW %00'011'0'0110'1111
DB ACEX.JOY_VG93
; For VG93 with dos off
DW %11011001101111
DW %11011001101111
DW %11'011'0'0110'1111
DW %11'011'0'0110'1111
DB ACEX.JOY_VG93
DW %00000000101101
DW %11011111111111
DW %00'000'0'0010'1101
DW %11'011'1'1111'1111
DB ACEX.FDD720
DW %11000000101101
DW %11001111111111
DW %11'000'0'0010'1101
DW %11'001'1'1111'1111
DB ACEX.FDD720
DW %00000000111101
DW %11011111111111
DW %00'000'0'0011'1101
DW %11'011'1'1111'1111
DB ACEX.FDD144
DW %11000000111101
DW %11001111111111
DW %11'000'0'0011'1101
DW %11'001'1'1111'1111
DB ACEX.FDD144
;!FIXIT UNKNOWN PORTS--------------------------------------------------; dos on, ⎍쪎 çĽŕĽ§ BC, ç⼭¨Ľ/§ Ż¨áě
DW %10000100101101
DW %11010111111111
DW %10'000'1'0010'1101
DW %11'010'1'1111'1111
DB #18
DW %10000100111101
DW %11010111111111
DW %10'000'1'0011'1101
DW %11'010'1'1111'1111
DB #19
DW %10000110101101
DW %11010111111111
DW %10'000'1'1010'1101
DW %11'010'1'1111'1111
DB #1A
;----------------------------------------------------------------------;
DW %00000100101101
DW %11001111111111
DW %00'000'1'0010'1101
DW %11'001'1'1111'1111
DB ACEX.ISA_CTRL
DW %10000110111101
DW %11010111111111
DW %10'000'1'1011'1101
DW %11'010'1'1111'1111
DB ACEX.ISA_CTRL
DW %11000100101101
DW %11001111111111
DW %11'000'1'0010'1101
DW %11'001'1'1111'1111
DB ACEX.ISA_CTRL
DW %00001100111101
DW %11001101111111
DW %00'001'1'0011'1101
DW %11'001'1'0111'1111
DB ACEX.CMOS_DATA.READ
DW %11001100111101
DW %11001101111111
DW %11'001'1'0011'1101
DW %11'001'1'0111'1111
DB ACEX.CMOS_DATA.READ
DW %00000110101101
DW %11001111111111
DW %00'000'1'1010'1101
DW %11'001'1'1111'1111
DB ACEX.CMOS_ADDR.WRITE
DW %11000110101101
DW %11001111111111
DW %11'000'1'1010'1101
DW %11'001'1'1111'1111
DB ACEX.CMOS_ADDR.WRITE
DW %00000100111101
DW %11001101111111
DW %00'000'1'0011'1101
DW %11'001'1'0111'1111
DB ACEX.CMOS_DATA.WRITE
DW %11000100111101
DW %11001101111111
DW %11'000'1'0011'1101
DW %11'001'1'0111'1111
DB ACEX.CMOS_DATA.WRITE
;
;---------HDD[v]
DW %00000001000000
DW %11000001101111
DW %00'000'0'0100'0000
DW %11'000'0'0110'1111
DB #20
DW %01000001000000
DW %11010001101111
DW %01'000'0'0100'0000
DW %11'010'0'0110'1111
DB #20
DW %10000001000000
DW %11010001101111
DW %10'000'0'0100'0000
DW %11'010'0'0110'1111
DB #20
DW %11000001000000
DW %11000001101111
DW %11'000'0'0100'0000
DW %11'000'0'0110'1111
DB #20
DW %00000001000001
DW %00010111101111
DW %00'000'0'0100'0001
DW %00'010'1'1110'1111
DB #21
DW %00010001000001
DW %11010111101111
DW %00'010'0'0100'0001
DW %11'010'1'1110'1111
DB #21
DW %11010001000001
DW %11010111101111
DW %11'010'0'0100'0001
DW %11'010'1'1110'1111
DB #21
DW %00000001000010
DW %00010111101111
DW %00'000'0'0100'0010
DW %00'010'1'1110'1111
DB #22
DW %00010001000010
DW %11010111101111
DW %00'010'0'0100'0010
DW %11'010'1'1110'1111
DB #22
DW %11010001000010
DW %11010111101111
DW %11'010'0'0100'0010
DW %11'010'1'1110'1111
DB #22
DW %00000001000011
DW %00010111101111
DW %00'000'0'0100'0011
DW %00'010'1'1110'1111
DB #23
DW %00010001000011
DW %11010111101111
DW %00'010'0'0100'0011
DW %11'010'1'1110'1111
DB #23
DW %11010001000011
DW %11010111101111
DW %11'010'0'0100'0011
DW %11'010'1'1110'1111
DB #23
DW %00000001000100
DW %00010111101111
DW %00'000'0'0100'0100
DW %00'010'1'1110'1111
DB #24
DW %00010001000100
DW %11010111101111
DW %00'010'0'0100'0100
DW %11'010'1'1110'1111
DB #24
DW %11010001000100
DW %11010111101111
DW %11'010'0'0100'0100
DW %11'010'1'1110'1111
DB #24
DW %00000001000101
DW %00010111101111
DW %00'000'0'0100'0101
DW %00'010'1'1110'1111
DB #25
DW %00010001000101
DW %11010111101111
DW %00'010'0'0100'0101
DW %11'010'1'1110'1111
DB #25
DW %11010001000101
DW %11010111101111
DW %11'010'0'0100'0101
DW %11'010'1'1110'1111
DB #25
DW %00000011000010
DW %00010111101111
DW %00'000'0'1100'0010
DW %00'010'1'1110'1111
DB #26
DW %00010011000010
DW %11010111101111
DW %00'010'0'1100'0010
DW %11'010'1'1110'1111
DB #26
DW %11010011000010
DW %11010111101111
DW %11'010'0'1100'0010
DW %11'010'1'1110'1111
DB #26
DW %00000011000011
DW %00010111101111
DW %00'000'0'1100'0011
DW %00'010'1'1110'1111
DB #27
DW %00010011000011
DW %11010111101111
DW %00'010'0'1100'0011
DW %11'010'1'1110'1111
DB #27
DW %11010011000011
DW %11010111101111
DW %11'010'0'1100'0011
DW %11'010'1'1110'1111
DB #27
;---------HDD[^]
;
DW %00000011000100
DW %00010111101111
DW %00'000'0'1100'0100
DW %00'010'1'1110'1111
DB ACEX.IDE_CONTROL_3F6
DW %00010011000100
DW %11010111101111
DW %00'010'0'1100'0100
DW %11'010'1'1110'1111
DB ACEX.IDE_CONTROL_3F6
DW %11010011000100
DW %11010111101111
DW %11'010'0'1100'0100
DW %11'010'1'1110'1111
DB ACEX.IDE_CONTROL_3F6
DW %00000011000101
DW %00010111101111
DW %00'000'0'1100'0101
DW %00'010'1'1110'1111
DB ACEX.IDE_STATUS_3F7
DW %00010011000101
DW %11010111101111
DW %00'010'0'1100'0101
DW %11'010'1'1110'1111
DB ACEX.IDE_STATUS_3F7
DW %11010011000101
DW %11010111101111
DW %11'010'0'1100'0101
DW %11'010'1'1110'1111
DB ACEX.IDE_STATUS_3F7
DW %00000000101100
DW %11001111111111
DW %00'000'0'0010'1100
DW %11'001'1'1111'1111
DB ACEX.IDE_CHANEL_1
DW %11000000101100
DW %11001111111111
DW %11'000'0'0010'1100
DW %11'001'1'1111'1111
DB ACEX.IDE_CHANEL_1
DW %00000000111100
DW %11001111111111
DW %00'000'0'0011'1100
DW %11'001'1'1111'1111
DB ACEX.IDE_CHANEL_2
DW %11000000111100
DW %11001111111111
DW %11'000'0'0011'1100
DW %11'001'1'1111'1111
DB ACEX.IDE_CHANEL_2
DW %00000010101101
DW %11001111111111
DW %00'000'0'1010'1101
DW %11'001'1'1111'1111
DB ACEX.VSYNC320
DW %11000010101101
DW %11001111111111
DW %11'000'0'1010'1101
DW %11'001'1'1111'1111
DB ACEX.VSYNC320
DW %00000010111101
DW %11001111111111
DW %00'000'0'1011'1101
DW %11'001'1'1111'1111
DB ACEX.VSYNC312
DW %11000010111101
DW %11001111111111
DW %11'000'0'1011'1101
DW %11'001'1'1111'1111
DB ACEX.VSYNC312
DW %00000010101100
DW %11001111111111
DW %00'000'0'1010'1100
DW %11'001'1'1111'1111
DB ACEX.RESET
DW %11000010101100
DW %11001111111111
DW %11'000'0'1010'1100
DW %11'001'1'1111'1111
DB ACEX.RESET
DW %00000010111100
DW %11001111111111
DW %00'000'0'1011'1100
DW %11'001'1'1111'1111
DB ACEX.UNKNOWN ;!FIXIT ŹŽŚ­Ž ŻŽŞ  ăĄŕ âě
DW %11000010111100
DW %11001111111111
DW %11'000'0'1011'1100
DW %11'001'1'1111'1111
DB ACEX.UNKNOWN ;!FIXIT ŹŽŚ­Ž ŻŽŞ  ăĄŕ âě
DW %00010000101011
DW %11010001101011
DW %00'010'0'0010'1011
DW %11'010'0'0110'1011
DB ACEX.ISA_Control ;!FIXIT ŹŽŚ­Ž ŻŽŞ  ăĄŕ âě ???
DW %00011001101110
DW %10011001101111
DW %00'011'0'0110'1110
DW %10'011'0'0110'1111
DB ACEX.ZX_Keyboard
DW %10011001101110
DW %11011001101111
DW %10'011'0'0110'1110
DW %11'011'0'0110'1111
DB ACEX.ZX_Keyboard
DW %00001111111101
DW %00001111111111
DW %00'001'1'1111'1101
DW %00'001'1'1111'1111
DB ACEX.AY_FFFD_READ
DW %00001111011111
DW %11001111111111
DW %00'001'1'1101'1111
DW %11'001'1'1111'1111
DB ACEX.Kempston_Mouse
DW %11001111011111
DW %11001111111111
DW %11'001'1'1101'1111
DW %11'001'1'1111'1111
DB ACEX.Kempston_Mouse
DW %00011001100011
DW %11011001101111
DW %00'011'0'0110'0011
DW %11'011'0'0110'1111
DB ACEX.CBL_OUT
DW %01010001100011
DW %11010001101111
DW %01'010'0'0110'0011
DW %11'010'0'0110'1111
DB ACEX.CBL_OUT
DW %10010001100011
DW %11010001101111
DW %10'010'0'0110'0011
DW %11'010'0'0110'1111
DB ACEX.CBL_OUT
DW %00010000000111
DW %11011000001111
DW %00'010'0'0000'0111
DW %11'011'0'0000'1111
DB ACEX.CBL_OUT
DW %00011000001000
DW %11011001101111
DW %00'011'0'0000'1000
DW %11'011'0'0110'1111
DB ACEX.CBL_OUT
DW %00010001101011
DW %10010001101111
DW %00'010'0'0110'1011
DW %10'010'0'0110'1111
DB ACEX.CBL_OUT
DW %10010001101011
DW %11010001101111
DW %10'010'0'0110'1011
DW %11'010'0'0110'1111
DB ACEX.CBL_OUT
DW %00000001000110
DW %11001111111111
DW %00'000'0'0100'0110
DW %11'001'1'1111'1111
DB ACEX.CBL_SYS_PORT
DW %11000001000110
DW %11001111111111
DW %11'000'0'0100'0110
DW %11'001'1'1111'1111
DB ACEX.CBL_SYS_PORT
DW %00000111111101
DW %00001111111111
DW %00'000'1'1111'1101
DW %00'001'1'1111'1111
DB ACEX.AY_FFFD_WRITE
DW %00000101111101
DW %00001111111111
DW %00'000'1'0111'1101
DW %00'001'1'1111'1111
DB ACEX.AY_BFFD
DW %00000001101101
DW %10000111111111
DW %00'000'0'0110'1101
DW %10'000'1'1111'1111
DB ACEX.Scorp_1FFD
DW %11000001101101
DW %11000111111111
DW %11'000'0'0110'1101
DW %11'000'1'1111'1111
DB ACEX.Scorp_1FFD
DW %00000011101101
DW %00100111101111
DW %00'000'0'1110'1101
DW %00'100'1'1110'1111
DB ACEX.Pent_7FFD
DW %00100011101101
DW %11110111101111
DW %00'100'0'1110'1101
DW %11'110'1'1110'1111
DB ACEX.Pent_7FFD
DW %11100011101101
DW %11100111101111
DW %11'100'0'1110'1101
DW %11'100'1'1110'1111
DB ACEX.Pent_7FFD
DW %10000001101101
DW %11100111101111
DW %10'000'0'0110'1101
DW %11'100'1'1110'1111
DB ACEX.Pent_7FFD
DW %00000001101110
DW %00001001101111
DW %00'000'0'0110'1110
DW %00'001'0'0110'1111
DB ACEX.Border_FE
DW %00000001010110
DW %11001111111111
DW %00'000'0'0101'0110
DW %11'001'1'1111'1111
DB ACEX.ALL_MODE
DW %11000001010110
DW %11001111111111
DW %11'000'0'0101'0110
DW %11'001'1'1111'1111
DB ACEX.ALL_MODE
DW %00000000001001
DW %00010001101111
DW %00'000'0'0000'1001
DW %00'010'0'0110'1111
DB ACEX.PORT_Y
DW %00010000001001
DW %11010001101111
DW %00'010'0'0000'1001
DW %11'010'0'0110'1111
DB ACEX.PORT_Y
DW %11010000001001
DW %11010001101111
DW %11'010'0'0000'1001
DW %11'010'0'0110'1111
DB ACEX.PORT_Y
DW %00000001001001
DW %00010001101111
DW %00'000'0'0100'1001
DW %00'010'0'0110'1111
DB ACEX.RGMOD
DW %00010001001001
DW %11010001101111
DW %00'010'0'0100'1001
DW %11'010'0'0110'1111
DB ACEX.RGMOD
DW %11010001001001
DW %11010001101111
DW %11'010'0'0100'1001
DW %11'010'0'0110'1111
DB ACEX.RGMOD
DW %00000000100100
DW %00000000101111
DW %00'000'0'0010'0100
DW %00'000'0'0010'1111
DB ACEX.CNF_PORT
;!FIXIT ŹŽŚ­Ž ăĄŕ âě
DW %00000001101100
DW %11001001101111
DW %00'000'0'0110'1100
DW %11'001'0'0110'1111
DB ACEX.SCALE
DW %11000001101100
DW %11001001101111
DW %11'000'0'0110'1100
DW %11'001'0'0110'1111
DB ACEX.SCALE
DW %00000000001010
DW %00010001101111
DW %00'000'0'0000'1010
DW %00'010'0'0110'1111
DB ACEX.SLOT0
DW %00010000001010
DW %11010001101111
DW %00'010'0'0000'1010
DW %11'010'0'0110'1111
DB ACEX.SLOT0
DW %11010000001010
DW %11010001101111
DW %11'010'0'0000'1010
DW %11'010'0'0110'1111
DB ACEX.SLOT0
DW %00000000101010
DW %00010001101111
DW %00'000'0'0010'1010
DW %00'010'0'0110'1111
DB ACEX.SLOT1
DW %00010000101010
DW %11010001101111
DW %00'010'0'0010'1010
DW %11'010'0'0110'1111
DB ACEX.SLOT1
DW %11010000101010
DW %11010001101111
DW %11'010'0'0010'1010
DW %11'010'0'0110'1111
DB ACEX.SLOT1
DW %00000001001010
DW %00010001101111
DW %00'000'0'0100'1010
DW %00'010'0'0110'1111
DB ACEX.SLOT2
DW %00010001001010
DW %11010001101111
DW %00'010'0'0100'1010
DW %11'010'0'0110'1111
DB ACEX.SLOT2
DW %11010001001010
DW %11010001101111
DW %11'010'0'0100'1010
DW %11'010'0'0110'1111
DB ACEX.SLOT2
DW %00000001101010
DW %00010001101111
DW %00'000'0'0110'1010
DW %00'010'0'0110'1111
DB ACEX.SLOT3
DW %00010001101010
DW %11010001101111
DW %00'010'0'0110'1010
DW %11'010'0'0110'1111
DB ACEX.SLOT3
DW %11010001101010
DW %11010001101111
DW %11'010'0'0110'1010
DW %11'010'0'0110'1111
DB ACEX.SLOT3
; DCP END MARKER
DW 0,0,0

View File

@ -305,7 +305,7 @@ POST_1_RAM_BUS:
; ¢ëᢥâ¨âì ­®¬¥à ®è¨¡®ç­®£® ¡¨â 
LD A,(HL)
AND %11011111 ; á § ¯ïâ묨
AND %1101'1111 ; á § ¯ïâ묨
OUT (Z84.PIO.Port_A.Data),A
; ¯ ã§ 
@ -515,10 +515,10 @@ POST_5_DATA_BUS:
LD C,A
.erb1:
LD IX,.erbr1
LD B,%11011111
LD B,%1101'1111
JP OUT_C_BYTE
.erbr1:
LD A,%11011111
LD A,%1101'1111
OUT (Z84.PIO.Port_A.Data),A
LD DE,0
@ -886,8 +886,8 @@ PORTS_INIT:
OUT (SYS_PORT.ROM),A
; set HDD1/not-HDD2
LD A,#21 ;!HARDCODE ᤥ« âì ç¥à¥§ ¬¥âªã
OUT (IDE.Chanel.Choose),A
LD A,IDE.Chanel.Primary ;!HARDCODE ᤥ« âì ç¥à¥§ ¬¥âªã
OUT (IDE.Chanel.Set),A
LD BC,#7FFD
LD A,#10
@ -962,20 +962,15 @@ init_zx_roms:
OUT (SYS_PORT.ROM),A
;LD A,2
INC A ;!HARDCODE
LD B,3 ; zx-rom number of pages
IF SetFullZXromLoader
LD B,6 ; zx-rom number of pages
ELSE
//LD B,4
LD B,3
ENDIF
;!FIXIT ¯¥à¥¤¥« âì ­  äã­ªæ¨î ¡¨®á  ¤«ï ç⥭¨ï ROM-DISK ¨ ¯¥à¥­¥á⨠¢ ­¥£® <20>‡“ ᯥªâà㬠
;!FIXIT ¯¥à¥¤¥« âì ­  äã­ªæ¨î ¡¨®á  ¤«ï ç⥭¨ï ROM-DISK ¨ ¯¥à¥­¥á⨠¢ ­¥£® <20>‡“ ᯥªâà㬠
.loop: push bc
out (ROM.SLOT0),a
or %01000000
or %0100'0000
out (SLOT3),a
and %10111111
and %1011'1111
LD HL,0
LD DE,#C000
@ -1005,25 +1000,19 @@ init_zx_roms:
LD B,#44 ; page
CALL .SET_ROM
LD A,#E0 ;!HARDCODE ROM-ID - BIOS
LD B,#45 ; page
CALL .SET_ROM
; LD A,#E0 ;!HARDCODE ROM-ID - BIOS
; LD B,#45 ; page
; CALL .SET_ROM
LD A,#EB ;!HARDCODE ROM-ID - BIOS-1
IF SetFullZXromLoader
LD B,#46 ; page
ELSE
LD B,#45 ; page
ENDIF
CALL .SET_ROM
; LD A,#EB ;!HARDCODE ROM-ID - BIOS-1
; LD B,#45 ; page
; CALL .SET_ROM
; LD A,#EF ;!HARDCODE ROM-ID - BIOS-2
; LD B,#47 ; page
; CALL .SET_ROM
IF SetFullZXromLoader
LD A,#EF ;!HARDCODE ROM-ID - BIOS-2
LD B,#47 ; page
CALL .SET_ROM
ENDIF
RET
.SET_ROM:
@ -1538,34 +1527,32 @@ ROM_DISK.Pages.Number:
; ã áâà ­¨æ ¢ëáâ ¢«¥­ bit4 ¤«ï ª®à४⭮© ¯®¤áâ ­®¢ª¨
;(¯®¤à®¡­¥¥ ¢ sp2000.inc - <20>®àâ ã¯à ¢«¥­¨ï áâà ­¨æ ¬¨ <20>‡“)
ROM_DISK.Pages: ; áâà ­¨æë ROM-Disk
IFN SetFullZXromLoader
ABYTE #10 #06,#07,#09,#0A,#0B ; 81920 bytes
ELSE
ABYTE #10 #09,#0A,#0B ; 49152 bytes
ENDIF
ABYTE #10 #05,#06,#07,#09,#0A,#0B ; 98304 bytes
.Size EQU $-ROM_DISK.Pages
;-----------------------------------------------------------------------;
;#######################################################################;
;
_mInfoBLOCK ToBIOS_FromEXT-$,#FF
;------------[Return to ROM]------------
;---------[Return to EXTENSION]---------
_mInfoBLOCK #3FD0-$,#FF ; ToBIOS_FromEXT
; #3FD0
; „«ï ¢ë§®¢  ä㭪権 ¡¨®á  ¨§ áâà ­¨æë 0 <20>‡“ (ROM Extension)
FN1_RET:
; „«ï ¢ë§®¢  ä㭪権 ¡¨®á  ¨§ áâà ­¨æë 0 <20>‡“ (Extension)
RET_to_EXTENSION:
PUSH AF
LD A,ROM.EXTENSION
OUT (SYS_PORT.ROM),A
POP AF
RST #18
JR FN1_RET
RST ToBIOS_18
JP RET_to_EXTENSION
; !TODO Free 7 bytes
; !TODO Free 6 bytes
;---------------------------------------
;
;---------------[ Free ]----------------
;
_mInfoBLOCK #3FE0-$,#FF
;---------------[ Free ]----------------
; !TODO Free 8 bytes and entry point
;SOUND_TEST:
; LD A,ROM.EXPANSION
@ -1589,16 +1576,16 @@ EXP_HDD:
;
_mInfoBLOCK #3FF0-$,#FF
;---------------[ Free ]----------------
_mInfoBLOCK #3FF0-$,#FF
; !TODO Free 8 bytes and entry point
;---------------------------------------
;
;
;----[ From TR-DOS to API #80..#FF ]-----
_mInfoBLOCK #3FF8-$,#FF
;-----[ From TR-DOS to API #80..#FF]-----
; ’®çª  ¢å®¤ /¢ë室  ¤«ï TR-DOS
EXP_FNS_RET:
PUSH AF

View File

@ -90,16 +90,16 @@ SELECTH:
DEC A
LD IY,IDE.INIT_TBL_IDE1
JR Z,SELHH
DEC A ;R02
LD IY,IDE.INIT_TBL_IDE2 ;R02
JR Z,SELHH ;R02
DEC A ;R02
LD IY,IDE.INIT_TBL_IDE3 ;R02
;R02
JR Z,SELHH
DEC A
LD IY,IDE.INIT_TBL_IDE2
JR Z,SELHH
DEC A
LD IY,IDE.INIT_TBL_IDE3
;R02
JR NZ,NODRIVE
SELHH:
EXX
SELHH: EXX
LD C,SLOT3
IN B,(C)
LD A,SYS_PAGE
@ -107,14 +107,14 @@ SELHH:
LD A,(IY+IDE.HDD_INIT_TABLE.Chanel)
AND #01
LD A,#01 ;SECONDARY
LD A,IDE.Chanel.Secondary
JR NZ,SELCHAN
LD A,#21 ;PRIMARY
LD A,IDE.Chanel.Primary
SELCHAN:
OUT (#BC),A ;R02 ; !HARDCODE ; !HARDCODE
OUT (IDE.Chanel.Set),A ;R02
LD A,(IY+IDE.HDD_INIT_TABLE.DriveType)
CP IDE.Device.HDD
CP IDE.Device.HDD ;!FIXIT ¢®§¬®¦­®, ­ å७ ­¥ ­ã¦­®, ¯®â®¬ã-çâ® ¥á«¨ CD, â® ¯à¨«¥â¨â ¢ ¤à ©¢¥à CD
LD A,(IY+IDE.HDD_INIT_TABLE.Chanel)
OUT (C),B
LD BC,IDE.Write.DriveCtrl
@ -123,7 +123,7 @@ SELCHAN:
EXX
RET Z
NODRIVE:
LD A,2
LD A,2 ;!HARDCODE
SCF
RET
@ -273,8 +273,7 @@ RST8RDR:
RET
;READ SECTOR(S)
RDS000:
CALL SELECTH
RDS000: CALL SELECTH
RET C
EXX
LD DE,#C140 ;WAIT BUSY=0 & READY=1 & ERR=0
@ -293,6 +292,7 @@ RDS000:
LD BC,IDE.Write.Command
LD A,#020 ;READ WITH RETRY
OUT (C),A
;?????
;SAVE HL!
RDS002: EXX
LD DE,#8908 ;WAIT BUSY=0 & DRQ=1 & ERR=0
@ -300,22 +300,31 @@ RDS002: EXX
CALL WAITPRT
EXX
RET C
NOP ;R01 REMOVED "DI" ; !FIXIT
;NOP ;R01 REMOVED "DI" ; !FIXIT
IN A,(SLOT3)
EX AF,AF'
LD A,XH
OUT (SLOT3),A
LD BC,IDE.Read.Data
LD D,#20
RDS003:
DUP 16
INI
EDUP
DEC D
JR NZ,RDS003
; LD D,#20
;!TEST v
RDS003: DUP 16
INI
EDUP
JP NZ,RDS003
RDS004: DUP 16
INI
EDUP
JP NZ,RDS004
; DEC D
; JR NZ,RDS003
;!TEST ^
EX AF,AF'
OUT (SLOT3),A
EI
;EI
;
LD A,H
OR L
@ -341,7 +350,7 @@ RDS003:
LD BC,IDE.Read.Status
IN A,(C)
BIT IDE.ControlBit.DataRequest,A
JR NZ,RDS002
JP NZ,RDS002
XOR A
RET
@ -658,9 +667,14 @@ WAITPRT:
.P0: IN A,(C)
AND D
CP E
JR NZ,.P2
AND A
RET
;!TEST
RET Z
;JR NZ,.P2
;AND A
;RET
;
.P2: DEC HL
LD A,L
OR H

View File

@ -666,11 +666,11 @@ HD_CALC_LOOP2:
FN_HDD_PART:
BIT 0,A
LD A,#21 ; !HARDCODE
LD A,IDE.Chanel.Primary
JR Z,.SET_CH
LD A,#01 ; !HARDCODE
LD A,IDE.Chanel.Secondary
.SET_CH:
OUT (IDE.Chanel.Choose),A
OUT (IDE.Chanel.Set),A
RET
; ENDMODULE

View File

@ -81,12 +81,9 @@ EMM.InitMem:
RESERVED_PAGES:
;; Block #1 - ¬®¦­® ®á¢®¡®¤¨âì ¯® ID 1
DB 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 ; for Spectrum
DB #42,#43,#44,#45 ; For BASIC128/BASIC48/TRDOS/EXPANSION
;!FIXIT ¢ëïá­¨«®áì, çâ® í¬ã«ïâ®à <20>‡“ 㬥¥â ¡®«ìè¥ áâà ­¨æ. ‚ᥣ® 10.
IF SetFullZXromLoader
DB #46,#47
ENDIF
DB #FF ; End of the block
; í¬ã«ïâ®à <20>‡“
DB #42,#43,#44,#45,#46,47,#48,#49,#4A,#4B ; For (BASIC128, BASIC48, TRDOS, SCORP_ROM)*2, vBIOS, vEXTENSION
DB #FF ; End of the block
;; Block #2 - ­¥«ì§ï ®á¢®¡®¦¤ âì
DB 0 ; for Spectrum

View File

@ -1,10 +1,7 @@
;
;**********************************;
; FLEX Loading program ;
; ACEX Loading program ;
;**********************************;
; ORG 0
; INCLUDE 'src/bios/shared/SPRINT00.asm'
MACRO Conf_loader altera_chip
.START: DI

View File

@ -88,259 +88,11 @@ JPHL: JP (HL)
;
;----------------------------[ FOR ZX-MODE ]----------------------------;
IF BIOS_ZXMODE
;!HARDCODE ­  íâ®â  ¤à¥á #0 ¯à룠¥â ¢ vROM Basic-48 ¯®  ¤à¥áã #3CF0
; ¬®¦­® ¯®¯à®¡®¢ âì ¯¥à¥¤¥« âì íâ®â  ¤à¥á â ¬
_mInfoBLOCK #C0-$,0
;BEGIN:
; ‚室 ç¥à¥§ USR 15600
RET_FROM_BIOS_TO_BASIC48:
CALL CH_2
CALL COMAND_LINE ; <E2809A>Ž<C5BD><EFBFBD>ˆ… ŠŽŒ€<C592>, …‘‹ˆ …‘’œ
; ‚室 ¡¥§ ª®¬ ­¤ë
JP SW_ROM_1 ; އ<E280A1> << MAIN MENU >>
;-----------------------------------------------------------------------;
;
;
;----------------------------[ ??????????? ]----------------------------;
; TURBO_OFF:
; LD A,D_TBOFF
; OUT (SYS_PORT.ON),A
; RET
;
; TURBO_ON:
; LD A,D_TBON
; OUT (SYS_PORT.ON),A
; RET
;
; JP_HL: JP (HL)
;
;PRINT_LINE:
; LD A,(HL)
; INC HL
; CP 0FFh
; RET Z
; RST 10H
; JR PRINT_LINE
;
; JP RESET_128
;-----------------------------------------------------------------------;
;
;-----------------------------------------------------------------------;
; ******* SERVICE *******
;-----------------------------------------------------------------------;
;------[ „…˜ˆ<CB86>ˆŸ ŠŽŒ€<C592><EFBFBD>މ <E28098>ŽŠˆ,<2C><EFBFBD>…„€<E2809E><E282AC>މ „‹Ÿ "EXPANSION" ]-------;
COMAND_LINE:
LD HL,(#5C5D) ;!HARDCODE CH_ADR
COMAND_LOOP:
LD A,(HL)
INC HL
CP ":"
JR Z,COMAND_L1
CP #0D
JR NZ,COMAND_LOOP
RET
COMAND_L1:
LD A,(HL)
CP #EA ;!HARDCODE
RET NZ
INC HL
COMAND_OK: ; Ž<><C5BD><EFBFBD>“†…<E280A0>€ ŠŽŒ€<C592>„€ „‹Ÿ 'expansion'
LD A,(HL)
INC HL
CP ':'
JP Z,MENU_S1
CP #0D
JP Z,MENU_S1
CP 'I'
JR Z,COMAND_ISD
CP 'i'
JR Z,COMAND_ISD
CP 'T'
JR Z,TASK_SWITCH
CP 't'
JR Z,TASK_SWITCH
DEC HL
POP BC
JP BASIC_MENU
MENU_S1:
POP BC
CALL SERVICE
JP SW_ROM_1
COMAND_ISD:
LD A,(HL)
INC HL
CP 'S'
JP Z,COMAND_ISD2
CP 's'
JP Z,COMAND_ISD2
RET
COMAND_ISD2:
POP BC
CALL ISDOS
JP SW_ROM_1
TASK_SWITCH:
; *** ‘®åà ­¨âì § ¤ çã ***
PUSH IY
PUSH IX
PUSH AF
PUSH BC
PUSH DE
PUSH HL
EXX
EX AF,AF'
PUSH AF
PUSH BC
PUSH DE
PUSH HL
LD A,R
PUSH AF
LD A,I
PUSH AF
LD A,(HL)
RLCA
RLCA
RLCA
RLCA
AND 30H ; ­®¢ ï § ¤ ç  0..3
LD C,A
IN A,(SLOT3)
LD B,A ; 3-ï áâà ­¨æ  ⥪ã饩 § ¤ ç¨
LD A,SYS_PAGE
OUT (SLOT3),A
LD IX,SYS_PAGE.TASK_DATA ; ¤ ­­ë¥ § ¤ ç
LD E,(IX) ; áâ à ï § ¤ ç 
LD D,0
ADD IX,DE ; ¤ ­­ë¥ ⥪ã饩 § ¤ ç¨
LD E,16
ADD IX,DE ; ᬥ饭¨¥ ¤ ­­ëå ¢ â ¡«¨æ¥ § ¤ ç
LD (IX+1),B ; á®åà ­¨âì áâà ­¨æã 3
LD HL,0
ADD HL,SP
LD (IX+2),L ; á®åà ­¨âì á⥪ § ¤ ç¨
LD (IX+3),H
SET 0,(IX) ; ãáâ ­®¢¨âì ä« £ á®åà ­¥­­®á⨠⥪ã饩 § ¤ ç¨
RES 1,(IX) ; ãáâ ­®¢¨âì ä« £, çâ® § ¤ ç  ¯®ª¨­ãâ 
LD IX,SYS_PAGE.TASK_DATA
LD E,C
LD D,0
ADD IX,DE ; ­®¢ ï § ¤ ç 
LD E,16
ADD IX,DE ; ᬥ饭¨¥ ¤ ­­ëå ¢ â ¡«¨æ¥ § ¤ ç
BIT 1,(IX)
; JR NZ,TASK_IN_WORK ; § ¤ ç  ¢ à ¡®â¥ ??? ­¥¢¥à­®¥ § ¢¥à襭¨¥
; á¡à á뢠âì ¨«¨ ¯à®áâ® ¢®§¢à é âìáï
BIT 0,(IX) ; ¡ë«  á®åà ­¥­ /­¥â
JR NZ,TASK_SET ; § ¤ ç  áãé¥áâ¢ã¥â
; § ¤ ç¨ ­¥ ¡ë«®!
LD IX,SYS_PAGE.TASK_DATA
LD A,C ; § ¤ ç 
LD (IX),A ; ãáâ ­®¢¨âì ­®¢ãî § ¤ çã ⥪ã饩
JP SPECTRUM_TASK ; § ¯ãáâ¨âì ­®¢ãî § ¤ çã!
; ¨ ¯®ª  ¯®ä¨£ à á¯à¥¤¥«¥­¨¥ ¯ ¬ïâ¨!
TASK_SET:
LD IX,TASK_RESTORE
LD A,C
EXX
JP INIT_PAGES ; ¯¥à¥ª«îç¨âì ¢á¥ áâà ­¨æë!
TASK_RESTORE:
EXX
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,C
LD IX,SYS_PAGE.TASK_DATA
LD (IX),A ; ãáâ ­®¢¨âì ­®¢ãî § ¤ çã ⥪ã饩
LD E,A
LD D,0
ADD IX,DE ; ­®¢ ï § ¤ ç 
LD E,16
ADD IX,DE
LD L,(IX+2) ; ¢á¯®¬­¨âì á⥪
LD H,(IX+3)
LD SP,HL
LD A,(IX+1) ; ¢á¯®¬­¨âì âà¥âìî áâà ­¨æã
OUT (SLOT3),A
POP AF ; ¢®ááâ ­®¢¨âì
LD I,A
POP AF
LD R,A
POP HL
POP DE
POP BC
POP AF
EX AF,AF'
EXX
POP HL
POP DE
POP BC
POP AF
POP IX
POP IY
; ¢¥à­ãâìáï ¢ § ¤ çã
NO_TASK:
POP BC
JP SW_ROM_1
; 259F - ADRESS BASIC128 - MAIN_MENU
;-----------------------------------------------------------------------;
;-----------------------------------------------------------------------;
; *** UTILITES ***
;-----------------------------------------------------------------------;
; C_0030: ; ¯®«ãç¨âì à ¡ ®¡«
; CALL_48X 0030h
; RET
C_19E8: ; ®ç¨áâ¨âì à ¡ ®¡«
CALL_48X #19E8 ;!HARDCODE
RET
C_1655: ; ¯®«ãç¨âì ¯à®áâà ­á⢮
CALL_48X #1655 ;!HARDCODE
RET
CLS:
C_0D6B: CALL_48 #0D6B ;!HARDCODE
RET
CH_2: LD A,2
C_1601: ; OPEN CHANEL
CALL_48 #1601 ;!HARDCODE
RET
INCLUDE '../exp/ZX_MENU.ASM'
INCLUDE '../exp/ZX_MODE.ASM'
ENDIF
INCLUDE 'ZX/ZX_FUNC.ASM'
INCLUDE 'ZX/ZX_MENU.ASM'
;-----------------------------------------------------------------------;
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
;
@ -353,48 +105,48 @@ C_1601: ; OPEN CHANEL
BLOCK_Setup EQU $
;
IF PACKED_MAIN
BLOCK ROM_MAP.SETUP-$,#FF
IF PACKED_MAIN
BLOCK ROM_MAP.SETUP-$,#FF
DISP COMPILE_ADDR.SETUP
DISP COMPILE_ADDR.SETUP
; Depacker version
SETUP_MAIN:
LD HL,DEPACKER.UnpackedEXECaddr; â®çª  ¢å®¤  ¢ à á¯ ª®¢ ­­®¬ ª®¤¥
PUSH HL
LD DE,DEPACKER.WorkAddr ;  ¤à¥á ¯à®æ¥¤ãàë ¤¥¯ ª¥à 
PUSH DE
LD HL,DEPACKER.UnpackedEXECaddr; â®çª  ¢å®¤  ¢ à á¯ ª®¢ ­­®¬ ª®¤¥
PUSH HL
LD DE,DEPACKER.WorkAddr ;  ¤à¥á ¯à®æ¥¤ãàë ¤¥¯ ª¥à 
PUSH DE
LD HL,DEPACKER.Addr
LD BC,DEPACKER.Length
LDIR
LD HL,DEPACKER.Addr
LD BC,DEPACKER.Length
LDIR
LD HL,DEPACKER.PackedMAIN ; £¤¥  à娢
LD DE,DEPACKER.UnpackAddr ; ªã¤  à á¯ ª®¢ë¢ âì
RET
LD HL,DEPACKER.PackedMAIN ; £¤¥  à娢
LD DE,DEPACKER.UnpackAddr ; ªã¤  à á¯ ª®¢ë¢ âì
RET
.Depacker EQU $
ENT
.Depacker EQU $
ENT
;-----------------[v]
DEPACK_DATA:
DISP DEPACKER.WorkAddr
MODULE UnPacker
INCLUDE 'src/bios/ROM/SETUP/DEHRUST.asm' ; !TODO ᤥ« âì ­  LUA  ¢â®¢ë¡®à ¤¥ª®¬¯à¥áá®à  ¨ ª®¬¯à¥áá®à 
PackedMAIN: INCBIN 'Build/Bin/temp/MAIN.PAK'
ENDMODULE
ENT
DISP DEPACKER.WorkAddr
MODULE UnPacker
INCLUDE 'src/bios/ROM/SETUP/DEHRUST.asm' ; !TODO ᤥ« âì ­  LUA  ¢â®¢ë¡®à ¤¥ª®¬¯à¥áá®à  ¨ ª®¬¯à¥áá®à 
PackedMAIN: INCBIN 'Build/Bin/temp/MAIN.PAK'
ENDMODULE
ENT
DEPACK_DATA.length EQU $-DEPACK_DATA
;-----------------[^]
ELSE
DISP COMPILE_ADDR.SETUP
ShowInfo 'Setup block DISP start', 1 ; !!!!! test
SETUP_MAIN: INCLUDE 'src/bios/ROM/SETUP/Main.asm'
ShowInfo 'Setup block DISP end', 1 ; !!!!! test
ENT
ENDIF
ELSE
DISP COMPILE_ADDR.SETUP
ShowInfo 'Setup block DISP start', 1 ; !!!!! test
SETUP_MAIN: INCLUDE 'src/bios/ROM/SETUP/Main.asm'
ShowInfo 'Setup block DISP end', 1 ; !!!!! test
ENT
ENDIF
ShowInfo 'Setup block of ROM end', 0 ; !!!!! test
@ -443,17 +195,6 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup
;*************************
_mInfoBLOCK #3CF0-$,0
IF BIOS_ZXMODE
/*
;BEGIN:
; ‚室 ç¥à¥§ USR 15600
RET_FROM_BIOS_TO_BASIC48:
CALL CH_2
CALL COMAND_LINE ; <E2809A>Ž<C5BD><EFBFBD>ˆ… ŠŽŒ€<C592>, …‘‹ˆ …‘’œ
; ‚室 ¡¥§ ª®¬ ­¤ë
JR SW_ROM_1 ; އ<E280A1> << MAIN MENU >>
*/
ENDIF
;JMP_48:
; LD HL,00h
; JR JP_HL_48
@ -540,7 +281,7 @@ SW_ROM:
;
;***************************************
;---------------------------------------
; _mInfoBLOCK #3FC6-$,#FF
;!FIXIT ¯¥à¥¤¥« âì <20>‡“ âà¤®á  ¨ ᯥªâà㬮¢ ¯®¤ ¯à ¢¨«ì­ë© ¢ë§®¢ ä㭪権 ¡¨®á  (  ­¥ ¢¬¥áâ® ä㭪権 4x ä㭪樨 0x)
; ¨«¨ ¬®¦­® ¤®¡ ¢¨âì ä㭪樨
@ -552,39 +293,38 @@ SW_ROM:
; SET 6,C
; RST_to_BIOS
; JR RET_TO_TRDOS
;***************************************
;---------------------------------------
;
;---------------[SET BIOS]---------------
_mInfoBLOCK ToBIOS_FromEXT-$,#FF ; #3FD0
;--------------[GOTO BIOS]--------------
; call BIOS from EXTENSION
;RST18h:
_mInfoBLOCK #3FD0-$,#FF ; ToBIOS_FromEXT
PUSH AF
LD A,ROM.BIOS ; set exp-rom to slot0
LD A,ROM.BIOS ; set BIOS to slot0
OUT (SYS_PORT.ROM),A
POP AF
RET
;---------------------------------------
;!FIXIT ¯¥à¥¤¥« âì <20>‡“ âà¤®á  ¨ ᯥªâà㬮¢ ¯®¤ ¯à ¢¨«ì­ë© ¢ë§®¢ ä㭪権 ¡¨®á  (  ­¥ ¢¬¥áâ® ä㭪権 4x ä㭪樨 0x)
;--------[ From TR-DOS to HDD part2]--------
_mInfoBLOCK #3FD8-$,#FF
TRDOS_HD_CMD:
POP AF
SET 6,C ;!FIXIT ¯¥à¥¤¥« âì <20>‡“ âà¤®á  ¨ ᯥªâà㬮¢ ¯®¤ ¯à ¢¨«ì­ë© ¢ë§®¢ ä㭪権 ¡¨®á  (  ­¥ ¢¬¥áâ® ä㭪権 4x ä㭪樨 0x)
SET 6,C
RST_to_BIOS
JR RET_TO_TRDOS
;---------------------------------------
;!FIXIT ®áâ âª¨ ®â ᯥªâà㬠
;!FIXIT ®áâ âª¨ ®â â¥á⮢ ˆ¢ ­  á® §¢ãª®¢®© ª à⮩
;-------------[SND_TEST_RET]-------------
_mInfoBLOCK #3FE0-$,#FF
SND_TEST_RET:
LD A,ROM.BIOS
OUT (SYS_PORT.RAM),A
; JP SOUND_TEST
JP #0000
; SND_TEST_RET:
; LD A,ROM.BIOS
; OUT (SYS_PORT.RAM),A
; ;JP SOUND_TEST
; JP #0000
;---------------------------------------
@ -599,8 +339,8 @@ SND_TEST_RET:
;---------------------------------------
;!FIXIT íâ  â®çª  ¢å®¤  ®ç¥­ì áâà ­­ ï ¨§ áâà ­¨æë ¢ áâà ­¨æã ¯à룠¥â
;---------[ From TR-DOS to HDD ]--------
;!FIXIT Œ®¦­® ¯®¯à ¢¨âì ­®¬¥à  ä㭪権 ¯à¨ ¢ë§®¢ å ¨§ TR-DOS ¨ ¯à룠âì áà §ã ¢ BIOS
;-------[ From TR-DOS to API 4x ]-------
_mInfoBLOCK #3FF0-$,255
RET_TO_TRDOS:
PUSH AF
@ -614,12 +354,10 @@ RET_TO_TRDOS:
;-----[???????????????????????????]-----
_mInfoBLOCK #3FF8-$,255
A3FF8: PUSH AF
LD A,ROM.BIOS
OUT (SYS_PORT.RAM),A
; !FIXIT ¬®¦¥â ã¡à âì § £«ãèªã ¨ ᤥ« âì, ç⮡ ¯¥à¥ª«îç «®áì ­  BIOS ¨ ¤ «ìè¥ ª ª ¢ EXP_FNS_RET ?
; ¨«¨ ᢮¥£® 祣®-­¨¡ã¤ì ¤®¡ ¢¨âì.
JP #0000
; PUSH AF
; LD A,ROM.BIOS
; OUT (SYS_PORT.RAM),A
; JP #0000
;---------------------------------------
_mInfoBLOCK #4000-$,255
;=======================================

View File

@ -95,7 +95,7 @@ CDAUTO:
JP CDMASTR
SELECT_IDE:
AND A ;%00000011
AND A ;%0000'0011
LD D,#A0
JR Z,IAUTO0
DEC A
@ -107,14 +107,14 @@ SELECT_IDE:
DEC A ;R00
LD D,#B0 ;R00
IAUTO1:
LD A,#01 ;R00 ;SELECT SECONDARY
OUT (#BC),A ;R00
LD A,IDE.Chanel.Secondary ;R00 ;SELECT SECONDARY
OUT (IDE.Chanel.Set),A ;R00
LD A,1
JR IAUTO ;R00
IAUTO0:
LD A,#21 ;R00 ;SELECT PRIMARY
OUT (#BC),A ;R00
LD A,IDE.Chanel.Primary ;R00 ;SELECT PRIMARY
OUT (IDE.Chanel.Set),A ;R00
LD A,0
IAUTO:
LD (ICHANEL),A

View File

@ -108,7 +108,7 @@ MAIN_START:
POP HL
LD SP,STACK
PUSH HL
ld (RET_TO_EXP_ADDR),hl
LD (RET_TO_EXP_ADDR),hl
JP START
; DB "(C) 2002 PETERS PLUS LTD "
RET_TO_EXP_ADDR: WORD 0000 ; place for save ret address to exp
@ -120,8 +120,6 @@ RET_TO_EXP_ADDR: WORD 0000 ; p
GETTIME:
PUSH HL
LD D,4 ;HOURS
;LD C,BIOS.CMOS_RD
;RST_to_BIOS
CALL CMOS_RD
CP #24 ;24
jp nc,.error
@ -129,8 +127,6 @@ GETTIME:
INC HL
LD D,2 ;MINUTES
;LD C,BIOS.CMOS_RD
;RST_to_BIOS
CALL CMOS_RD
CP #5A ; 60
jp nc,.error
@ -138,8 +134,6 @@ GETTIME:
INC HL
LD D,0 ;SECONDS
;LD C,BIOS.CMOS_RD
;RST_to_BIOS
CALL CMOS_RD
CP #5A ; 60
jp nc,.error
@ -147,8 +141,6 @@ GETTIME:
INC HL
LD D,7 ;DAY
;LD C,BIOS.CMOS_RD
;RST_to_BIOS
CALL CMOS_RD
CP #32 ;32
jp nc,.error
@ -156,8 +148,6 @@ GETTIME:
INC HL
LD D,8 ;MONTH
;LD C,BIOS.CMOS_RD
;RST_to_BIOS
CALL CMOS_RD
CP #13 ;13
jp nc,.error
@ -165,8 +155,6 @@ GETTIME:
INC HL
LD D,#32 ;CENTURY
;LD C,BIOS.CMOS_RD
;RST_to_BIOS
CALL CMOS_RD
CP #1A ;20
jp c,.error
@ -176,8 +164,6 @@ GETTIME:
INC HL
LD D,9 ;YEAR
;LD C,BIOS.CMOS_RD
;RST_to_BIOS
CALL CMOS_RD
CP #9A ;100
jp nc,.error
@ -245,35 +231,25 @@ GETTIME:
; ¥á«¨ ¡ â à¥©ª  ᥫ , â® ¯à¨ 祪¥ ª¬®á  ¢ë¤ ¢ âì ᮮ⢥âáâ¢ãîéãî ®è¨¡ªã ¨, ¢®§¬®¦­®, à ¡®â âì ª ª ¡¥§ ª¬®á .
CMOSINIT:
LD D,CMOS.Register.CTRLregA ; !FIXIT FREQ
;LD C,BIOS.CMOS_RD
;RST_to_BIOS
CALL CMOS_RD
CP #26 ; !FIXIT
JR NZ,CMSERR
LD D,CMOS.Register.CTRLregC
;LD C,BIOS.CMOS_RD
;RST_to_BIOS
CALL CMOS_RD
CP #50
RET Z
CMSERR:
LD D,CMOS.Register.CTRLregB
LD A,#82 ;TIME FORMAT ; !FIXIT CMOS
;LD C,BIOS.CMOS_WR
;RST_to_BIOS
CALL CMOS_WR
LD D,CMOS.Register.CTRLregA
LD A,#26 ; !FIXIT CMOS FREQ
;LD C,BIOS.CMOS_WR
;RST_to_BIOS
CALL CMOS_WR
LD D,CMOS.Register.CTRLregC
LD A,#0 ; !FIXIT CMOS
;LD C,BIOS.CMOS_WR
;RST_to_BIOS
CALL CMOS_WR
LD HL,GETTIME.default_date
@ -281,8 +257,6 @@ CMSERR:
LD D,CMOS.Register.CTRLregB
LD A,#02 ;TIME FORMAT ; !FIXIT CMOS
;LD C,BIOS.CMOS_WR
;RST_to_BIOS
CALL CMOS_WR
; LD D,13
@ -316,8 +290,6 @@ MEMLOOP:
LD L,A
CALL NZ,RCHAIN
DJNZ MEMLOOP
;LD C,BIOS.InitMem
;RST_to_BIOS
CALL EMM.InitMem
LD BC,#400E ;!HARDCODE
CALL G_VALUE
@ -423,21 +395,15 @@ INSTALL:
LD IX,win_descriptor.tab80x32
LD HL,#0000
LD E,1
;LD C,BIOS.WIN_OPEN
;RST_to_BIOS
CALL WIN_OPEN
LD DE,0
LD HL,#2050
;LD BC,7*256 + BIOS.LP_CLS_WIN
;RST_to_BIOS
LD B,7
CALL LP_CLS_WIN
LD DE,0
LD HL,#0820
;LD BC,0*256 + BIOS.LP_CLS_WIN
;RST_to_BIOS
LD B,0
CALL LP_CLS_WIN
@ -445,7 +411,6 @@ INSTALL:
CALL GET_ID
LD DE,#0028 ; !HARDCODE
;CALL ScreenPOS.LOCAT
CALL LP_SET_PLACE
LD HL,memBUFFER.ID
LD A,COLORS.INC.LCYAN
@ -455,14 +420,12 @@ INSTALL:
CALL CPRINTZ
LD DE,#0128 ; !HARDCODE
;CALL ScreenPOS.LOCAT
CALL LP_SET_PLACE
LD A,msgStrings.copyRightPeters
LD E,COLORS.INC.LGREEN
CALL POSTMSC
LD DE,#0228 ; !HARDCODE
;CALL ScreenPOS.LOCAT
CALL LP_SET_PLACE
LD A,msgStrings.copyRightSPTeam
LD E,COLORS.INC.GREEN
@ -470,7 +433,6 @@ INSTALL:
IF DEBUG
LD DE,#0328
;CALL ScreenPOS.LOCAT
CALL LP_SET_PLACE
LD A,msgStrings.testBIOSmsg
LD E,COLORS.FLASH + COLORS.INC.RED ; !HARDCODE
@ -656,8 +618,6 @@ CHEKOK: ;CALL ScreenPOS.GET_CUR
LD A,msgStrings.spMemory
CALL POSTMSG
;LD C,BIOS.GetMemSize
;RST_to_BIOS
CALL EMM.GetMemSize
PUSH BC
CALL PMEMORY
@ -785,50 +745,36 @@ COMPARE:
writeDateTimeToCmos: ;!FIXIT
LD A,(HL)
LD D,CMOS.Register.hours
;LD C,BIOS.CMOS_WR
;RST_to_BIOS
CALL CMOS_WR
INC HL
LD A,(HL)
LD D,CMOS.Register.minutes
;LD C,BIOS.CMOS_WR
;RST_to_BIOS
CALL CMOS_WR
INC HL
LD A,(HL)
LD D,CMOS.Register.seconds
;LD C,BIOS.CMOS_WR
;RST_to_BIOS
CALL CMOS_WR
INC HL
LD A,(HL)
LD D,CMOS.Register.date
;LD C,BIOS.CMOS_WR
;RST_to_BIOS
CALL CMOS_WR
INC HL
LD A,(HL)
LD D,CMOS.Register.month
;LD C,BIOS.CMOS_WR
;RST_to_BIOS
CALL CMOS_WR
INC HL
LD A,(HL)
LD D,CMOS.Register.century
;LD C,BIOS.CMOS_WR
;RST_to_BIOS
CALL CMOS_WR
INC HL
LD A,(HL)
LD D,CMOS.Register.year
;LD C,BIOS.CMOS_WR
;RST_to_BIOS
CALL CMOS_WR
RET
@ -910,24 +856,18 @@ RECOVERYstart:
; ¯à¨¡¨¢ ¥¬ ¯®á«¥¤­¨© à ¬¤¨áª, ¥á«¨ § ­ïâ
.killRAMdisk: LD A,SYS_PAGE.RAMD_KEYS.NUM-1
LD (.RDkey),A
;LD C,BIOS.FreeMemRMD
;RST_to_BIOS
CALL EMM.FreeMemRMD
JR NC,.setRAMdisk
JR Z,.setRAMdisk
RET ; ­¥¯®­ïâ­ ï ®è¨¡ª  - ¢ë室¨¬
.setRAMdisk: LD A,(.RDkey)
;LD BC,ROM_DISK.Pages.Size * 256 + BIOS.GetMemRMD
;RST_to_BIOS
LD B,ROM_DISK.Pages.Size
CALL EMM.GetMemRMD
JR NC,.IMGread ; ᢮¡®¤­ë© à ¬¤¨áª ­ ©¤¥­
DEC A
JR Z,.FreeMem ; ®è¨¡ª  - ­¥¤®áâ â®ç­® ¯ ¬ïâ¨, ¢ë§ë¢ ¥¬ ®ç¨áâªã ¯ ¬ïâ¨
RET ; ­¥¯®­ïâ­ ï ®è¨¡ª  - ¢ë室¨¬
.FreeMem: ;LD C,BIOS.FullInit
;RST_to_BIOS
CALL EMM.FullInit
.FreeMem: CALL EMM.FullInit
JR .killRAMdisk
;
@ -985,8 +925,6 @@ FDSTART:
LD A,msgStrings.bootFdd
CALL POSTMSG
POP AF
;LD C,BIOS.DRV_RESET
;RST_to_BIOS
CALL FDD_5x.RESET
POP BC
RET C
@ -1378,8 +1316,6 @@ PIDNUM: LD HL,memBUFFER.ID
RET
PIDBOARD:
;LD BC,1*256 + BIOS.FN_CRIPT
;RST_to_BIOS
LD B,1
CALL FN_CRIPT
@ -1576,10 +1512,10 @@ NOCOPYC:
TRQUICK:
;REGISTER #1E
; %00000011 - TR DOS A: Default / FDD / HDD / RMD
; %00001100 - TR DOS B: Default / FDD / HDD / RMD
; %00110000 - TR DOS C: Default / FDD / HDD / RMD
; %11000000 - TR DOS D: Default / FDD / HDD / RMD
; %0000'0011 - TR DOS A: Default / FDD / HDD / RMD
; %0000'1100 - TR DOS B: Default / FDD / HDD / RMD
; %0011'0000 - TR DOS C: Default / FDD / HDD / RMD
; %1100'0000 - TR DOS D: Default / FDD / HDD / RMD
LD BC,#031E
LD A,0
CALL TRDOSX

View File

@ -9,8 +9,6 @@ SETTINGS:
LD HL,#2050
LD A,(NORCLR)
LD B,A
;LD C,BIOS.LP_CLS_WIN
;RST_to_BIOS
CALL LP_CLS_WIN
@ -371,14 +369,10 @@ FSCREEN:
HALT
FSC1:
PUSH DE
;LD C,BIOS.LP_SET_PLACE
;RST_to_BIOS
CALL LP_SET_PLACE
LD A,(NORCLR)
LD E,A
;LD BC,#50*256+BIOS.LP_PRINT_ATR ;#5083
;RST_to_BIOS
LD B,#50
CALL LP_PRINT_ATR
@ -747,123 +741,88 @@ SETDEF: ;!TODO
RET
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[v]
IF NEW_FEATURE
; New procedure with IY reg
IF NEW_FEATURE
Get_Item_Address:
LD A,(ITEM)
LD L,A
LD H,0
LD DE,SettingsItemsTabsAddrs
ADD HL,HL
ADD HL,DE
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
PUSH HL
POP IY
RET
ELSE
LD A,(ITEM)
LD L,A
LD H,0
LD DE,SettingsItemsTabsAddrs
ADD HL,HL
ADD HL,DE
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
PUSH HL
POP IY
RET
ELSE
Get_Item_Address:
LD A,(ITEM)
LD L,A
LD H,0
LD DE,SettingsItemsTabsAddrs
ADD HL,HL
ADD HL,DE
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
INC HL
INC HL
RET
ENDIF
LD A,(ITEM)
LD L,A
LD H,0
LD DE,SettingsItemsTabsAddrs
ADD HL,HL
ADD HL,DE
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
INC HL
INC HL
RET
ENDIF
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[^]
;
MODULE OnChangeAction
nothing:
ret
IF NEW_FEATURE
; !TODO New Feature
; !TODO § ¬ãâ¨âì çâ®-⮠⨯  API ¤«ï à¨á®¢ ­¨ï ¢á¯«ë¢ îé¨å ®ª®­
IF NEW_FEATURE
SetTime:
; !TODO New Feature
; !TODO § ¬ãâ¨âì çâ®-⮠⨯  API ¤«ï à¨á®¢ ­¨ï ¢á¯«ë¢ îé¨å ®ª®­
xor a
ld hl,#050E
ld de,#0C20
ld ix,memBUFFER.Shared
;ld c,BIOS.WIN_COPY
;RST_to_BIOS_18
CALL WIN_COPY
xor a
ld hl,#050E
ld de,#0C20
ld ix,memBUFFER.Shared
CALL WIN_COPY
LD DE,#0C20 ; !HARDCODE
ld b,5
DI
LD DE,#0C20 ; !HARDCODE
ld b,5
DI
.loop: push bc
push de
;CALL ScreenPOS.LOCAT
CALL LP_SET_PLACE
; ¯¥ç âì  âਡã⮢
LD E,COLORS.INC.RED
;LD BC,#0E * 256 + BIOS.LP_PRINT_ATR
;RST_to_BIOS_18
LD B,#0E
CALL LP_PRINT_ATR
.loop: push bc
push de
CALL LP_SET_PLACE
; ¯¥ç âì  âਡã⮢
LD E,COLORS.INC.RED
LD B,#0E
CALL LP_PRINT_ATR
pop de
inc d
pop bc
DJNZ .loop
pop de
inc d
pop bc
DJNZ .loop
CALL setFRAME.single
LD DE,#0C20 ;yx. y=0..1F, x=0..4F ª®®à¤¨­ âë «¥¢®£® ¢¥àå­¥£® 㣫 
LD BC,#050E ;yx. ¤«¨­  ¨ ¢ëá®â  «¨­¨¨
CALL PBORDER
CALL setFRAME.single
LD DE,#0C20 ;yx. y=0..1F, x=0..4F ª®®à¤¨­ âë «¥¢®£® ¢¥àå­¥£® 㣫 
LD BC,#050E ;yx. ¤«¨­  ¨ ¢ëá®â  «¨­¨¨
CALL PBORDER
;------------------[v]
; ‚Ž’ ’“’ ŠŽ„
; DISPLAY '---------------------Delete me!!!---------------------'
; DISPLAY /A, $
; DISPLAY '------------------------------------------------------'
; for tests
; ld hl,#c000
; ld de,319
; ld b,2
; ld a,1
; ex af,af'
; ld a,#46
; ex af,af'
; ld c,BIOS.BLK_RD_WR
; RST_to_BIOS_18
;------------------[^]
CALL KEY
xor a
ld hl,#050E
ld de,#0C20
ld ix,memBUFFER.Shared
JP WIN_RESTORE
ENDIF
CALL KEY
xor a
ld hl,#050E
ld de,#0C20
ld ix,memBUFFER.Shared
;ld c,BIOS.WIN_RESTORE
;JP_to_BIOS
;RET
JP WIN_RESTORE
ENDIF
setXYpos:
JP RESCREEN
; setVsinc:
; ld a,@CMOS.Cell.ScreenSET
; call READCMS
; and @CMOS.Cell.ScreenSET.Mask.Sinc
; SCF
; jr z,.skip ;320
; SLA A
; .skip: ld a,128+7 ;312
; jr nc,.set
; dec a ;320
; .set:
; ld c,BIOS.FN_SYNC
; JP_to_BIOS
setVsinc:
ld a,@CMOS.Cell.ScreenSET
call READCMS
@ -894,15 +853,11 @@ setInt: ld a,@CMOS.Cell.ScreenSET
SRA A
SRA A
SRA A ; byte %00xx0000 --> %000000xx
.set: ;ld c,BIOS.FN_SYNC
;RST_to_BIOS_18
CALL FN_SYNC
.set: CALL FN_SYNC
LD IX,win_descriptor.tab80x32
LD HL,#0000
LD E,1
;LD C,BIOS.WIN_OPEN
;RST_to_BIOS
CALL WIN_OPEN
ld a,(ITEM)
@ -1077,84 +1032,84 @@ DEFVAL: DB SAVERAM+EXTBIOS+SDELAY1 ;X0E - OPTIONS
_mInfoALIGN 256,0 ; ¢ëà ¢­¨¢ ­¨¥ ­   ¤à¥á #XX00
CMOSARE:
DS 14 ;!FIXIT à á¯¨á âì âãâ ï祩ª¨ ª¬®á  ¨ í⮠ᬥ饭¨¥ ¬¥âª®© ¯à¨¢ï§ âì ¢¬¥áâ® #0E ¢ SETDEF
DS 14 ;!FIXIT à á¯¨á âì âãâ ï祩ª¨ ª¬®á  ¨ í⮠ᬥ饭¨¥ ¬¥âª®© ¯à¨¢ï§ âì ¢¬¥áâ® #0E ¢ SETDEF
DB SAVERAM+EXTBIOS ;X0E - OPTIONS
DB TDL250+TRATE30 ;X0F - KEYBOARD
DB SDIDE1+ASDFDD2 ;X10 - SYSTEM DISKS
DB FD1720+FD2720+HD1AUTO+HD2AUTO ;X11 - FDD & HDD
DB 0 ;X12 - CYLINDERS LOW MASTER
DB 0 ;X13 - CYLINDERS HIGH MASTER
DB 0 ;X14 - HEADS MASTER
DB 0 ;X15 - SECTORS MASTER
DB 0 ;X16 - CYLINDERS LOW SLAVE
DB 0 ;X17 - CYLINDERS HIGH SLAVE
DB 0 ;X18 - HEADS SLAVE
DB 0 ;X19 - SECTORS SLAVE
DB 0 ;X1A - Int conf, Screen sync, COLOR STYLE
DB TURBON+SPRIN ;X1B - HARDARE CONF
DB SAVERAM+EXTBIOS ;X0E - OPTIONS
DB TDL250+TRATE30 ;X0F - KEYBOARD
DB SDIDE1+ASDFDD2 ;X10 - SYSTEM DISKS
DB FD1720+FD2720+HD1AUTO+HD2AUTO ;X11 - FDD & HDD
DB 0 ;X12 - CYLINDERS LOW MASTER
DB 0 ;X13 - CYLINDERS HIGH MASTER
DB 0 ;X14 - HEADS MASTER
DB 0 ;X15 - SECTORS MASTER
DB 0 ;X16 - CYLINDERS LOW SLAVE
DB 0 ;X17 - CYLINDERS HIGH SLAVE
DB 0 ;X18 - HEADS SLAVE
DB 0 ;X19 - SECTORS SLAVE
DB 0 ;X1A - Int conf, Screen sync, COLOR STYLE
DB TURBON+SPRIN ;X1B - HARDARE CONF
DB BAS128 ;X1C - RESET MODE
DB REBOOTM ;X1D - REBOOT MSG, HDD W/P
DB %00000000 ;X1E - TRDOS
DB %01110111 ;X1F - SCREEN POSITION
DB HD1AUTO+HD2AUTO ;X20 - Secondary HDD's
DB %00000000 ;X21
DB %00000000 ;X22
DB %00000000 ;X23
DB %00000000 ;X24
DB %00000000 ;X25
DB %00000000 ;X26
DB %00000000 ;X27
DB %00000000 ;X28
DB %00000000 ;X29
DB %00000000 ;X2A
DB %00000000 ;X2B
DB %00000000 ;X2C
DB %00000000 ;X2D
DB %00000000 ;X2E
DB %00000000 ;X2F
DB %00000000 ;X30
DB %00000000 ;X31
DB %0000'0000 ;X1E - TRDOS
DB %0111'0111 ;X1F - SCREEN POSITION
DB HD1AUTO+HD2AUTO ;X20 - Secondary HDD's
DB %0000'0000 ;X21
DB %0000'0000 ;X22
DB %0000'0000 ;X23
DB %0000'0000 ;X24
DB %0000'0000 ;X25
DB %0000'0000 ;X26
DB %0000'0000 ;X27
DB %0000'0000 ;X28
DB %0000'0000 ;X29
DB %0000'0000 ;X2A
DB %0000'0000 ;X2B
DB %0000'0000 ;X2C
DB %0000'0000 ;X2D
DB %0000'0000 ;X2E
DB %0000'0000 ;X2F
DB %0000'0000 ;X30
DB %0000'0000 ;X31
DB #20 ;X32 - CENTURY
DB %00000000 ;X33
DB %00000000 ;X34
DB %00000000 ;X35
DB %00000000 ;X36
DB %00000000 ;X37
DB %00000000 ;X38
DB %00000000 ;X39
DB %00000000 ;X3A
DB %00000000 ;X3B
DB %00000000 ;X3C
DB %00000000 ;X3D
DB %00000000 ;X3E
DB %00000000 ;X3F - CHECKSUM
DB %0000'0000 ;X33
DB %0000'0000 ;X34
DB %0000'0000 ;X35
DB %0000'0000 ;X36
DB %0000'0000 ;X37
DB %0000'0000 ;X38
DB %0000'0000 ;X39
DB %0000'0000 ;X3A
DB %0000'0000 ;X3B
DB %0000'0000 ;X3C
DB %0000'0000 ;X3D
DB %0000'0000 ;X3E
DB %0000'0000 ;X3F - CHECKSUM
BLOCK #100 - low $ ; ¤®¡¨¢ª  CMOSARE ¤® à §¬¥à  ¢ 256 ¡ ©â®¢
;DONT MOVE !!! ADDRESS
; !TODO ¢áñ ¯à ¢¨«ì­®?
;REGISTER #0E
; %10000000 - MEMORY TEST
; %01000000 - SAVE RAM DISKS
; %00100000 - UPDATE BIOS
; %00011000 - START DELAY
; %00000100 - LANGUAGE
; %00000010 - NOT USED
; %00000001 - QUICK START
; %1000'0000 - MEMORY TEST
; %0100'0000 - SAVE RAM DISKS
; %0010'0000 - UPDATE BIOS
; %0001'1000 - START DELAY
; %0000'0100 - LANGUAGE
; %0000'0010 - NOT USED
; %0000'0001 - QUICK START
;REGISTER #0F
; %10000000 - TYPEMATIC ON/OFF
; %01100000 - TYPEMATIC DELAY 00-250, 01-500, 10-750, 11-1000
; %00011111 - TYPEMATIC RATE
; %1000'0000 - TYPEMATIC ON/OFF
; %0110'0000 - TYPEMATIC DELAY 00-250, 01-500, 10-750, 11-1000
; %0001'1111 - TYPEMATIC RATE
; 0-6, 1-8, 2-10, 3-12, 4-15, 5-20, 6-24, 7-30
;REGISTER #10
; %00000111 - SYSTEM DISK
; %01110000 - ALT SYSTEM DISK
; %0000'0111 - SYSTEM DISK
; %0111'0000 - ALT SYSTEM DISK
;REGISTER #11
; %00000011 - FDD FIRST 720 / 1.44 / NONE
; %00001100 - FDD SECOND
; %00110000 - IDE Primary MASTER AUTO / SETUP / DISABLED
; %11000000 - IDE Primary SLAVE -----//------
; %0000'0011 - FDD FIRST 720 / 1.44 / NONE
; %0000'1100 - FDD SECOND
; %0011'0000 - IDE Primary MASTER AUTO / SETUP / DISABLED
; %1100'0000 - IDE Primary SLAVE -----//------
;REGISTER #12 - CYLINDERS (MASTER)
;REGISTER #14 - HEADS (MASTER)
;REGISTER #15 - SECTORS (MASTER)
@ -1162,19 +1117,19 @@ CMOSARE:
;REGISTER #18 - HEADS (SLAVE)
;REGISTER #19 - SECTORS (SLAVE)
;REGISTER #1A
; %00001111 - COLOR STYLE
; %00110000 - Frame Int (Default/Pentagon/Scorpion/Original)
; %11000000 - Screen V-Sinc (Default/312 lines 50 HZ/320 Lines 49 Hz)
; %0000'1111 - COLOR STYLE
; %0011'0000 - Frame Int (Default/Pentagon/Scorpion/Original)
; %1100'0000 - Screen V-Sinc (Default/312 lines 50 HZ/320 Lines 49 Hz)
;REGISTER #1B - HARDWARE CONFIGURATION
; %00000001 - TURBO MODE (D0..D3 - 6 OR 7)
; %00000010 - TURBO EXCHANGE ON/OFF - 1
; %00000100 - PORT EXCHANGE ON/OFF - 1
; %00011000 - COMPUTER
; %0000'0001 - TURBO MODE (D0..D3 - 6 OR 7)
; %0000'0010 - TURBO EXCHANGE ON/OFF - 1
; %0000'0100 - PORT EXCHANGE ON/OFF - 1
; %0001'1000 - COMPUTER
; 0-SPRINTER
; 1-SPECTRUM 256
; 2-PENTAGON 128
; 3-OTHER
; %11100000 - RESERVED
; %1110'0000 - RESERVED
;REGISTER #1C - RESET MODE
; 0-RESET 128 Basic
; 1-RESET 48 Basic & 128 mem
@ -1183,19 +1138,19 @@ CMOSARE:
; 4-RESET TR-DOS & 48 mem
; 5-RESET 48 Basic
;REGISTER #1D
; %00000010 - Reboot message
; %00000001 - HDD Write protect
; %0000'0010 - Reboot message
; %0000'0001 - HDD Write protect
;REGISTER #1E
; %00000011 - TR DOS A: Default / FDD / HDD / RMD
; %00001100 - TR DOS B: Default / FDD / HDD / RMD
; %00110000 - TR DOS C: Default / FDD / HDD / RMD
; %11000000 - TR DOS D: Default / FDD / HDD / RMD
; %0000'0011 - TR DOS A: Default / FDD / HDD / RMD
; %0000'1100 - TR DOS B: Default / FDD / HDD / RMD
; %0011'0000 - TR DOS C: Default / FDD / HDD / RMD
; %1100'0000 - TR DOS D: Default / FDD / HDD / RMD
;REGISTER #1F ;R06
; %11110000 - X-Screen position
; %00001111 - Y-Screen position
; %1111'0000 - X-Screen position
; %0000'1111 - Y-Screen position
;REGISTER #20
; %00110000 - IDE Secondary MASTER AUTO / SETUP / DISABLED
; %11000000 - IDE Secondary SLAVE -----//------
; %0011'0000 - IDE Secondary MASTER AUTO / SETUP / DISABLED
; %1100'0000 - IDE Secondary SLAVE -----//------
; .
; .
;REGISTER #37 - CYLINDERS (MASTER)

View File

@ -288,17 +288,13 @@ NOWLOGO:
LD HL,#0000
LD E,1
;LD C,BIOS.WIN_OPEN
EI
HALT
DI
;RST_to_BIOS
CALL WIN_OPEN
LD DE,0
LD HL,#0920 ;LOGOTYPE SIZE
;LD BC,7*256 + BIOS.LP_CLS_WIN
;JP_to_BIOS
LD B,7
JP LP_CLS_WIN
@ -313,8 +309,6 @@ EASYDLY:
LOGOX: LD IX,win_descriptor.tab320x256
LD HL,#0000
LD E,1
;LD C,BIOS.WIN_OPEN
;RST_to_BIOS
CALL WIN_OPEN
SAFE_PORTY
@ -338,8 +332,6 @@ LOGOX: LD IX,win_descriptor.tab320x256
; A = 0
LD D,A ; SET DESKTOP PALETTE & CURSOR COLORS
LD E,A
;LD BC,PIC_SET_PAL_FF
;RST_to_BIOS
LD B,def_pal_mask
CALL PIC_SET_PAL
@ -351,7 +343,7 @@ LOGOX: LD IX,win_descriptor.tab320x256
;LD A,1
OUT (ROM.SLOT0),A
LD HL,MAIN_LOGO.Raster ; ­ ç «® ª à⨭ª¨ ¢ ¡ ­ª¥ <20>‡“
LD HL,MAIN_LOGO.Raster ; ­ ç «® ª à⨭ª¨ ¢ ¡ ­ª¥ <20>‡“
; CALL DECODE
CALL LOGO_TO_SCREEN
;
@ -374,19 +366,19 @@ win_descriptor:
DB 32
DB 0
DB 0
DB %00011011
DB %0001'1011
DB 0
DB 0
DB 0
.tab320x256:
DB 16 ; £®à¨§®­â «ì­ë© à §¬¥à ®ª­  ¢ §­ ª®¬¥áâ å
DB 9 ; ¢¥à⨪ «ì­ë© à §¬¥à ¢ §­ ª®¬¥áâ å
DB 0 ; ¯®«®¦¥­¨¥ ®ª­  ¯® £®à¨§®­â «¨ ­  íªà ­¥
DB 0 ; ¯®«®¦¥­¨¥ ®ª­  ¯® ¢¥à⨪ «¨ ­  íªà ­¥
DB %00100000 ; ०¨¬ §­ ª®¬¥áâ 
DB 0 ; ¤®¯®«­¨â¥«ì­ë© ०¨¬ §­ ª®¬¥áâ 
DB 8 ; ¯®«®¦¥­¨¥ ¯® X ¢ ¯®«¥ £à ä¨ª¨ (¯® §­ ª®¬¥áâ ¬)
DB 0 ; ¯®«®¦¥­¨¥ ¯® Y ¢ ¯®«¥ £à ä¨ª¨ (¯® §­ ª®¬¥áâ ¬)
DB 16 ; £®à¨§®­â «ì­ë© à §¬¥à ®ª­  ¢ §­ ª®¬¥áâ å
DB 9 ; ¢¥à⨪ «ì­ë© à §¬¥à ¢ §­ ª®¬¥áâ å
DB 0 ; ¯®«®¦¥­¨¥ ®ª­  ¯® £®à¨§®­â «¨ ­  íªà ­¥
DB 0 ; ¯®«®¦¥­¨¥ ®ª­  ¯® ¢¥à⨪ «¨ ­  íªà ­¥
DB %0010'0000 ; ०¨¬ §­ ª®¬¥áâ 
DB 0 ; ¤®¯®«­¨â¥«ì­ë© ०¨¬ §­ ª®¬¥áâ 
DB 8 ; ¯®«®¦¥­¨¥ ¯® X ¢ ¯®«¥ £à ä¨ª¨ (¯® §­ ª®¬¥áâ ¬)
DB 0 ; ¯®«®¦¥­¨¥ ¯® Y ¢ ¯®«¥ £à ä¨ª¨ (¯® §­ ª®¬¥áâ ¬)
MACRO _mFADE
@ -408,12 +400,10 @@ FADE: XOR A
_mFADE
; A = 0
LD HL,memBUFFER.Shared
;LD DE,#0000 ; !HARDCODE & CURSOR COLORS
;XOR A
LD D,A
LD E,A
;LD BC,PIC_SET_PAL_FF ; !HARDCODE #EE,#EF
;RST_to_BIOS
; !HARDCODE & CURSOR COLORS. LD DE,#0000
LD D,A
LD E,A
;
LD B,def_pal_mask
CALL PIC_SET_PAL
@ -434,8 +424,6 @@ go_setup: ; !FIXIT
LD IX,win_descriptor.tab80x32
LD HL,#0000
LD E,1
;LD C,BIOS.WIN_OPEN
;RST_to_BIOS
CALL WIN_OPEN
JP CSETUP
@ -531,24 +519,18 @@ SET_CGA:
LD A,4 ; page_pal
LD HL,memBUFFER.Shared
LD DE,#0000 ; D - ELEMENTS,E - COLOR
;LD BC,PIC_SET_PAL_FF ; #FFA4
;RST_to_BIOS
LD B,def_pal_mask
CALL PIC_SET_PAL
LD A,6 ; page_pal
LD HL,memBUFFER.Shared
LD DE,#0000 ;D - ELEMENTS,E - COLOR
;LD BC,PIC_SET_PAL_FF ; #FFA4
;RST_to_BIOS
LD B,def_pal_mask
CALL PIC_SET_PAL
LD A,7 ; page_pal
LD HL,#80*4+memBUFFER.Shared
LD DE,#8080 ;D - ELEMENTS,E - COLOR
;LD BC,PIC_SET_PAL_FF ; #FFA4
;RST_to_BIOS
LD B,def_pal_mask
CALL PIC_SET_PAL
;
@ -557,16 +539,12 @@ SET_CGA:
LD A,5 ; page_pal
LD HL,memBUFFER.Shared
LD DE,#0000 ;D - ELEMENTS,E - COLOR
;LD BC,PIC_SET_PAL_FF ; #FFA4
;RST_to_BIOS
LD B,def_pal_mask
CALL PIC_SET_PAL
LD A,7 ; page_pal
LD HL,memBUFFER.Shared
LD DE,#8000 ;D - ELEMENTS,E - COLOR
;LD BC,PIC_SET_PAL_FF ; #FFA4
;RST_to_BIOS
LD B,def_pal_mask
CALL PIC_SET_PAL
;

View File

@ -144,7 +144,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF ; ⨯ ¯ à ¬¥âà  (áâப  á® §­ ç¥­¨¥¬ ¨«¨ ª â «®£)
DB columnNum,lineNum ; á⮫¡¥æ, áâப 
DB paramName ; <20> §¢ ­¨¥ ¯ à ¬¥âà 
DB #0E,%00000100,%00000100 ; CMOS, MASK
DB #0E,%0000'0100,%0000'0100 ; CMOS, MASK
DB msgStrings.valLangEng ; 1-© ¢ à¨ ­â ¯ à ¬¥âà 
DB msgStrings.valLangRus ; 2-© ¢ à¨ ­â ¯ à ¬¥âà 
@ -153,7 +153,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #0E,%10000000,%10000000
DB #0E,%1000'0000,%1000'0000
DB msgStrings.valDisabled
DB msgStrings.valEnabled
@ -162,7 +162,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #0E,%01000000,%01000000
DB #0E,%0100'0000,%0100'0000
DB msgStrings.valDisabled
DB msgStrings.valEnabled
@ -171,7 +171,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #0E,%00100000,%00100000
DB #0E,%0010'0000,%0010'0000
DB msgStrings.valDisabled
DB msgStrings.valEnabled
@ -180,7 +180,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #0E,%00011000,%00010000
DB #0E,%0001'1000,%0001'0000
DB msgStrings.valDisabled
DB msgStrings.valNormal
DB msgStrings.valEnabled
@ -190,7 +190,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #0F,%00000111,%00000111
DB #0F,%0000'0111,%0000'0111
DB msgStrings.val_6
DB msgStrings.val_8
DB msgStrings.val_10
@ -205,7 +205,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #0F,%01100000,%01100000
DB #0F,%0110'0000,%0110'0000
DB msgStrings.val_250
DB msgStrings.val_500
DB msgStrings.val_750
@ -216,7 +216,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #1D,%00000010,%00000010
DB #1D,%0000'0010,%0000'0010
DB msgStrings.valDisabled
DB msgStrings.valEnabled
@ -225,7 +225,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #10,%00000111,%00000111 ; !!!!!
DB #10,%0000'0111,%0000'0111 ; !!!!!
DB msgStrings.val1stFDD
DB msgStrings.val2ndFDD
DB msgStrings.val1stIDE
@ -240,7 +240,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #10,%01110000,%01110000
DB #10,%0111'0000,%0111'0000
DB msgStrings.val1stFDD
DB msgStrings.val2ndFDD
DB msgStrings.val1stIDE
@ -255,7 +255,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #11,%00000011,%00000000
DB #11,%0000'0011,%0000'0000
DB msgStrings.valAuto
; DB msgStrings.val720
; DB msgStrings.val1440
@ -266,7 +266,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #11,%00001100,%00000000
DB #11,%0000'1100,%0000'0000
DB msgStrings.valAuto
; DB msgStrings.val720
; DB msgStrings.val1440
@ -277,7 +277,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #11,%00110000,%00110000
DB #11,%0011'0000,%0011'0000
DB msgStrings.valAuto
DB msgStrings.valSetup
DB msgStrings.valCdRom
@ -288,7 +288,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #11,%11000000,%11000000
DB #11,%1100'0000,%1100'0000
DB msgStrings.valAuto
DB msgStrings.valSetup
DB msgStrings.valCdRom
@ -299,7 +299,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #20,%00110000,%00110000
DB #20,%0011'0000,%0011'0000
DB msgStrings.valAuto
DB msgStrings.valSetup
DB msgStrings.valCdRom
@ -310,7 +310,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #20,%11000000,%11000000
DB #20,%1100'0000,%1100'0000
DB msgStrings.valAuto
DB msgStrings.valSetup
DB msgStrings.valCdRom
@ -321,7 +321,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #1D,%00000001,%00000001
DB #1D,%0000'0001,%0000'0001
DB msgStrings.valDisabled
DB msgStrings.valEnabled
@ -330,7 +330,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #1F,%11110000,%11100000
DB #1F,%1111'0000,%1110'0000
DB msgStrings.valMinus7
DB msgStrings.valMinus6
DB msgStrings.valMinus5
@ -352,7 +352,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #1F,%00001111,%00001110
DB #1F,%0000'1111,%0000'1110
DB msgStrings.valPlus7
DB msgStrings.valPlus6
DB msgStrings.valPlus5
@ -374,7 +374,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #1A,%00110000,%00110000
DB #1A,%0011'0000,%0011'0000
DB msgStrings.valDash8
DB msgStrings.valScorpion
DB msgStrings.valPentagon
@ -385,7 +385,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #1A,%11000000,%10000000
DB #1A,%1100'0000,%1000'0000
DB msgStrings.valDash8
DB msgStrings.val312_50
DB msgStrings.val320_49
@ -395,7 +395,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #0E,%00000001,%00000001
DB #0E,%0000'0001,%0000'0001
DB msgStrings.valDisabled
DB msgStrings.valEnabled
@ -404,7 +404,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #1E,%00000011,%00000010
DB #1E,%0000'0011,%0000'0010
DB msgStrings.valDefault
DB msgStrings.valFDD
DB msgStrings.valHDD
@ -414,7 +414,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #1E,%00001100,%00001000
DB #1E,%0000'1100,%0000'1000
DB msgStrings.valDefault
DB msgStrings.valFDD
DB msgStrings.valHDD
@ -424,7 +424,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #1E,%00110000,%00100000
DB #1E,%0011'0000,%0010'0000
DB msgStrings.valDefault
DB msgStrings.valFDD
DB msgStrings.valHDD
@ -434,7 +434,7 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DB #1E,%11000000,%10000000
DB #1E,%1100'0000,%1000'0000
DB msgStrings.valDefault
DB msgStrings.valFDD
DB msgStrings.valHDD
@ -445,7 +445,7 @@ SettingsItemsTabs:
DB folderLine
DB columnNum,lineNum
DB paramName
DB #00,%00000000,%00000000
DB #00,%0000'0000,%0000'0000
DB msgStrings.valFolder
ENDIF
;--------------------[Items Addresses table]--------------------[]

245
src/bios/rom/ZX/ZX_FUNC.ASM Normal file
View File

@ -0,0 +1,245 @@
; ‚室 ç¥à¥§ USR 15600
ASSERT $ = #C0, "Error with RET_FROM_BIOS_TO_BASIC48 address!!!"
RET_FROM_BIOS_TO_BASIC48:
CALL CH_2
CALL COMAND_LINE ; <E2809A>Ž<C5BD><EFBFBD>ˆ… ŠŽŒ€<C592>, …‘‹ˆ …‘’œ
; ‚室 ¡¥§ ª®¬ ­¤ë
JP SW_ROM_1 ; އ<E280A1> << MAIN MENU >>
;-----------------------------------------------------------------------;
;
;
;----------------------------[ ??????????? ]----------------------------;
; TURBO_OFF:
; LD A,D_TBOFF
; OUT (SYS_PORT.ON),A
; RET
;
; TURBO_ON:
; LD A,D_TBON
; OUT (SYS_PORT.ON),A
; RET
;
; JP_HL: JP (HL)
;
;PRINT_LINE:
; LD A,(HL)
; INC HL
; CP 0FFh
; RET Z
; RST 10H
; JR PRINT_LINE
;
; JP RESET_128
;-----------------------------------------------------------------------;
;
;-----------------------------------------------------------------------;
; ******* SERVICE *******
;-----------------------------------------------------------------------;
;------[ „…˜ˆ<CB86>ˆŸ ŠŽŒ€<C592><EFBFBD>މ <E28098>ŽŠˆ,<2C><EFBFBD>…„€<E2809E><E282AC>މ „‹Ÿ "EXPANSION" ]-------;
COMAND_LINE:
LD HL,(#5C5D) ;!HARDCODE CH_ADR
COMAND_LOOP:
LD A,(HL)
INC HL
CP ":"
JR Z,COMAND_L1
CP #0D
JR NZ,COMAND_LOOP
RET
COMAND_L1:
LD A,(HL)
CP #EA ;!HARDCODE
RET NZ
INC HL
COMAND_OK: ; Ž<><C5BD><EFBFBD>“†…<E280A0>€ ŠŽŒ€<C592>„€ „‹Ÿ 'expansion'
LD A,(HL)
INC HL
CP ':'
JP Z,MENU_S1
CP #0D
JP Z,MENU_S1
CP 'I'
JR Z,COMAND_ISD
CP 'i'
JR Z,COMAND_ISD
CP 'T'
JR Z,TASK_SWITCH
CP 't'
JR Z,TASK_SWITCH
DEC HL
POP BC
JP BASIC_MENU
MENU_S1:
POP BC
CALL SERVICE
JP SW_ROM_1
COMAND_ISD:
LD A,(HL)
INC HL
CP 'S'
JP Z,COMAND_ISD2
CP 's'
JP Z,COMAND_ISD2
RET
COMAND_ISD2:
POP BC
CALL ISDOS
JP SW_ROM_1
TASK_SWITCH:
; *** ‘®åà ­¨âì § ¤ çã ***
PUSH IY
PUSH IX
PUSH AF
PUSH BC
PUSH DE
PUSH HL
EXX
EX AF,AF'
PUSH AF
PUSH BC
PUSH DE
PUSH HL
LD A,R
PUSH AF
LD A,I
PUSH AF
LD A,(HL)
RLCA
RLCA
RLCA
RLCA
AND 30H ; ­®¢ ï § ¤ ç  0..3
LD C,A
IN A,(SLOT3)
LD B,A ; 3-ï áâà ­¨æ  ⥪ã饩 § ¤ ç¨
LD A,SYS_PAGE
OUT (SLOT3),A
LD IX,SYS_PAGE.TASK_DATA ; ¤ ­­ë¥ § ¤ ç
LD E,(IX) ; áâ à ï § ¤ ç 
LD D,0
ADD IX,DE ; ¤ ­­ë¥ ⥪ã饩 § ¤ ç¨
LD E,16
ADD IX,DE ; ᬥ饭¨¥ ¤ ­­ëå ¢ â ¡«¨æ¥ § ¤ ç
LD (IX+1),B ; á®åà ­¨âì áâà ­¨æã 3
LD HL,0
ADD HL,SP
LD (IX+2),L ; á®åà ­¨âì á⥪ § ¤ ç¨
LD (IX+3),H
SET 0,(IX) ; ãáâ ­®¢¨âì ä« £ á®åà ­¥­­®á⨠⥪ã饩 § ¤ ç¨
RES 1,(IX) ; ãáâ ­®¢¨âì ä« £, çâ® § ¤ ç  ¯®ª¨­ãâ 
LD IX,SYS_PAGE.TASK_DATA
LD E,C
LD D,0
ADD IX,DE ; ­®¢ ï § ¤ ç 
LD E,16
ADD IX,DE ; ᬥ饭¨¥ ¤ ­­ëå ¢ â ¡«¨æ¥ § ¤ ç
BIT 1,(IX)
; JR NZ,TASK_IN_WORK ; § ¤ ç  ¢ à ¡®â¥ ??? ­¥¢¥à­®¥ § ¢¥à襭¨¥
; á¡à á뢠âì ¨«¨ ¯à®áâ® ¢®§¢à é âìáï
BIT 0,(IX) ; ¡ë«  á®åà ­¥­ /­¥â
JR NZ,TASK_SET ; § ¤ ç  áãé¥áâ¢ã¥â
; § ¤ ç¨ ­¥ ¡ë«®!
LD IX,SYS_PAGE.TASK_DATA
LD A,C ; § ¤ ç 
LD (IX),A ; ãáâ ­®¢¨âì ­®¢ãî § ¤ çã ⥪ã饩
JP SPECTRUM_TASK ; § ¯ãáâ¨âì ­®¢ãî § ¤ çã!
; ¨ ¯®ª  ¯®ä¨£ à á¯à¥¤¥«¥­¨¥ ¯ ¬ïâ¨!
TASK_SET:
LD IX,TASK_RESTORE
LD A,C
EXX
JP INIT_PAGES ; ¯¥à¥ª«îç¨âì ¢á¥ áâà ­¨æë!
TASK_RESTORE:
EXX
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,C
LD IX,SYS_PAGE.TASK_DATA
LD (IX),A ; ãáâ ­®¢¨âì ­®¢ãî § ¤ çã ⥪ã饩
LD E,A
LD D,0
ADD IX,DE ; ­®¢ ï § ¤ ç 
LD E,16
ADD IX,DE
LD L,(IX+2) ; ¢á¯®¬­¨âì á⥪
LD H,(IX+3)
LD SP,HL
LD A,(IX+1) ; ¢á¯®¬­¨âì âà¥âìî áâà ­¨æã
OUT (SLOT3),A
POP AF ; ¢®ááâ ­®¢¨âì
LD I,A
POP AF
LD R,A
POP HL
POP DE
POP BC
POP AF
EX AF,AF'
EXX
POP HL
POP DE
POP BC
POP AF
POP IX
POP IY
; ¢¥à­ãâìáï ¢ § ¤ çã
NO_TASK:
POP BC
JP SW_ROM_1
; 259F - ADRESS BASIC128 - MAIN_MENU
;-----------------------------------------------------------------------;
;-----------------------------------------------------------------------;
; *** UTILITES ***
;-----------------------------------------------------------------------;
; C_0030: ; ¯®«ãç¨âì à ¡ ®¡«
; CALL_48X 0030h
; RET
C_19E8: ; ®ç¨áâ¨âì à ¡ ®¡«
CALL_48X #19E8 ;!HARDCODE
RET
C_1655: ; ¯®«ãç¨âì ¯à®áâà ­á⢮
CALL_48X #1655 ;!HARDCODE
RET
CLS:
C_0D6B: CALL_48 #0D6B ;!HARDCODE
RET
CH_2: LD A,2
C_1601: ; OPEN CHANEL
CALL_48 #1601 ;!HARDCODE
RET
;

View File

@ -352,4 +352,401 @@ CALL_DOS:
POP HL
JP DOS_PROG.Exec
;
;
;=======================================================================;
;=======================================================================;
;=======================================================================;
SERVICE:
//LD HL,SR_TAB
LD DE,SR_MENU
LD BC,SR_MENU.Size
//PUSH HL
CALL RUN_MENU ;09f3
LD HL,SR_TAB
//POP HL
CALL EXEC_PNT
JR SERVICE
SR_TAB: DW UTILIT
DW GOTO_TRDOS.m128
DW GOTO_TRDOS.m48
DW TURBO_OFF
DW TURBO_ON
DW CLEAR_RAM
DW RET_FROM_M
; DC - every last character of a string will have bit 7 set
SR_MENU:
BYTE 8 ; ª®«¨ç¥á⢮ ¯ã­ªâ®¢
BYTE 'Options ',#FF ; § £®«®¢®ª ¬¥­î
DC 'RUN disk.trd'
DC '128 TR-DOS'
DC '48 TR-DOS'
DC 'TURBO OFF '
DC 'TURBO ON '
DC 'Clear RAM'
DC 'RETURN'
DC " " ; ¬ àª¥à ª®­æ 
.Size EQU $-SR_MENU
;*****************************
;SR_48R:
GOTO_TRDOS:
.m128: LD A,#10
JR .RUN
;SR_48:
.m48: LD A,#30 ; ‘⮯®à ­  PORT_128 !!!
;SR_48A:
.RUN: LD BC,#7FFD
OUT (C),A
LD BC,0 ; <20>€ 0 !!
PUSH BC
LD BC,#3D2F ; DOS !
PUSH BC
JP SW_ROM
;*******************************
TURBO_OFF:
LD A,BIOS.FN_TURBO.OFF
LD C,BIOS.FN_TURBO
JP_to_BIOS
TURBO_ON:
LD A,BIOS.FN_TURBO.ON
LD C,BIOS.FN_TURBO
JP_to_BIOS
;*******************************
CLEAR_RAM:
DI
LD C,BIOS.FullInit
RST_to_BIOS
; ¯à¨ ®ç¨á⪥ ¯ ¬ï⨠¨§ ¬¥­î ᯥªâà㬠 ¢®§¢à â ¢ DSS ¯® CAD
; ¡ã¤¥â ®¯ á­ë¬ (RAM Blocks ®á¢®¡®¤¨«¨áì),
; ¯®í⮬㠮⪫îç ¥¬ ¯¥à¥å¢ â à¥á¥â .
;!TODO ¯à¨¤ã¬ âì ª ª ®âª«îç âì ¯¥à¥å¢ â ⮫쪮 ­  ¢®§¢à â ¢ DSS
LD A,ACEX.RET_PORT
LD BC,BIOS.SET_PORTS
CALL ToBIOS_3D13
EI
RET
;SR_CL_MEM:
; DI
; LD A,10H
;SR_CL_R2:
; LD BC,1FFDH
; OUT (C),A
; EX AF,AF'
; XOR A
;SR_CL_R1:
; LD BC,7FFDH
; OUT (C),A
; LD HL,0C000H
; LD DE,0C001H
; LD BC,03FFFH
; LD (HL),L
; LDIR
; INC A
; CP 48H
; JR NZ,SR_CL_R1
; EX AF,AF'
; CP 0
; JP Z,BASIC_128 ; ¢ë室 ­  á¡à®á BASIC 128
; LD A,0
; JR SR_CL_R2
;*****************************
; *** MENU IS-DOS ***
;*****************************
ISDOS:
LD HL,IS_TAB
LD DE,IS_MENU
LD BC,IS_MENU.Size
PUSH HL
CALL RUN_MENU
POP HL
CALL EXEC_PNT
JR ISDOS
IS_TAB:
; DW TR_DOS
; DW SP_DOS
DW SPRINTER_1X
DW AY8910_X
DW PENTAGON
DW SCORPION
DW PENTAGON512
DW SPRINTER_reset ;SPRINTER_2X
DW RET_FROM_M
; DC - every last character of a string will have bit 7 set
IS_MENU:
BYTE 8 ; ª®«¨ç¥á⢮ ¯ã­ªâ®¢
BYTE 'Hardware',#FF ; § £®«®¢®ª ¬¥­î
DC 'Sprinter ZX '
DC 'ZX Spectrum'
DC 'Pentagon 128'
DC 'Scorpion 256'
DC 'Pentagon 512'
DC 'Restart '
DC 'RETURN'
DC " " ; ¬ àª¥à ª®­æ 
.Size EQU $-IS_MENU
;******************************
;SP_DOS:
; LD B,0E2H
; LD A,0E1H
; JR TR_DOS1
;TR_DOS:
; LD B,0EAH
; LD A,0E1H
;TR_DOS1:
; CALL DOS_ON
; CALL SET_ROM_PAGES
; CALL DOS_OFF
; RET
;******************************
;**************************************************
;Sprinter ZX
SPRINTER_1X:
CALL _SET_CNF
LD C,BIOS.RST_CONF.SP97_1
RST_to_BIOS
CALL CNF_PN_320
LD L,2 ;FN_SYNC.INT_PENT
JR 1F ;!FIXIT ¬¥âªã ¯à¨¤ã¬ âì
;
;ZX Spectrum
AY8910_X:
CALL _SET_CNF
LD C,BIOS.RST_CONF.AY8910
RST_to_BIOS
LD A,#FA ; no ACC, Original waits
LD (Port_All_Mode),A
CALL CNF_SC_312
LD L,3 ;FN_SYNC.INT_ORIG
1: LD DE,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
CALL CONFIG_SET
CALL CLS ;!FIXIT ­ã¦­® «¨?
RET
;
SCORPION:
CALL _SET_CNF
CALL CNF_SC_312
LD L,1 ;FN_SYNC.INT_SCORP
LD DE,CNF_PORT.CNF_1 + CNF_PORT.TURBO.ON
JR CONFIG_SET
PENTAGON:
CALL _SET_CNF
CALL CNF_PN_320
LD L,2 ;FN_SYNC.INT_PENT
LD DE,CNF_PORT.CNF_2 + CNF_PORT.TURBO.ON
JR CONFIG_SET
PENTAGON512:
CALL _SET_CNF
CALL CNF_PN_320
LD L,2 ;FN_SYNC.INT_PENT
LD DE,CNF_PORT.CNF_2 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_512
; JR CONFIG_SET
CONFIG_SET:
PUSH DE
EI
HALT
DI
IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD (SYS_PAGE.CONFIG_DE),DE
;!FIXIT ¥áâì «¨ á¬ëá« ¤¥« âì ¤® FN_SYNC?
LD A,(ZX_VARS.BORDER)
RRCA
RRCA
RRCA
AND 7
OUT (BorderColor),A
;
EX AF,AF'
OUT (SLOT3),A
LD A,L
LD C,BIOS.FN_SYNC
RST_to_BIOS
LD HL,#4104 ;!HARDCODE
LD E,0
LD BC,256*4 + BIOS.LP_OPEN_S ;!HARDCODE
RST_to_BIOS
LD HL,#5104 ;!HARDCODE
LD E,0
LD BC,256*4 + BIOS.LP_OPEN_S
RST_to_BIOS
POP DE
LD A,E
OUT (SYS_PORT.ROM),A
IM 1
EI
RET
SPRINTER_reset:
CALL _SET_CNF
LD BC,256*BIOS.REINIT.SOFT_RESET + BIOS.REINIT
JP_to_BIOS
_SET_CNF:
DI
LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
OUT (SYS_PORT.ROM),A
RET
CNF_SC_312:
LD A,Port_VSYNC.SET_312L
OUT (Port_VSYNC),A
RET
CNF_PN_320:
LD A,Port_VSYNC.SET_320L
OUT (Port_VSYNC),A
RET
; LD A,CNF_0
; OUT (SYS_PORT.ROM),A
; CALL DOS_OFF
; JP 0
;*****************************
; *** MENU UTILITES ***
;*****************************
;!FIXIT íâ® § ¯ã᪠c:\disk.trd - ­¥ ¤ã¬ î, çâ® íâ® ­ã¦­®, ¬®¦­® § ¬¥­¨âì
UTILIT:
LD HL,C_DISK_C
CALL CALL_DOS1
;!TEST
;CALL DOS_ON
;LD A,0 ; DETECT_HDD
;CALL EXP_HDD
LD C,BIOS.HDD_INIT
RST_to_BIOS
;CALL DOS_OFF
;
JR C,DISK_UTILIT
LD HL,C_DISK_C3
CALL CALL_DOS1
UTIL_DISK:
XOR A
;!TEST
LD C,BIOS.FreeMemRMD
RST_to_BIOS
;CALL EMM_FN3 ;!!!!! ç¥à¥§ RST_to_BIOS EMM.FreeMemRMD
;
LD HL,C_DEMO6
CALL CALL_DOS1
XOR A
;!TEST
LD C,BIOS.GET_RAMD_ST
RST_to_BIOS
;CALL GET_RAMD_ST
;
JR C,UTIL_DISK_L1
JR Z,UTIL_DISK_L1
LD HL,C_DISK_C1
CALL CALL_DOS1
LD HL,C_DISK_C2
CALL CALL_DOS1
RET
UTIL_DISK_L1:
LD A,(ZX_VARS.OPER_DISK)
INC A
CP 2
JR Z,DISK_UTIL_RET
LD HL,C_DISK_C5
CALL CALL_DOS1
JR UTIL_DISK
DISK_UTIL_RET:
LD HL,C_DISK_C6
CALL CALL_DOS1
RET
DISK_UTILIT:
LD HL,C_DISK_C4
CALL CALL_DOS1
JR UTIL_DISK
C_DEMO6: DB .Size, ZX_Token.rem, ':/disk.trd', 13,80
.Size EQU $-C_DEMO6-1
;***************************************
;VERSION: DEFB 22,21,0
; DEFB 16,2,"Expansion 3.02  1997 ELSY Co.",16,1,0FFh
;**********************************************
DOS_RUN:
LD HL,C_DISK_C1
CALL CALL_DOS1
LD HL,C_DISK_C2
CALL CALL_DOS1
RET
START_TRD:
LD HL,C_DISK_C
CALL CALL_DOS1
LD HL,C_DISK_C0
CALL CALL_DOS1
LD HL,C_DISK_C3
CALL CALL_DOS1
RET
C_DISK_C: DB .Size, ZX_Token.rem, ':', 13,80
.Size EQU $-C_DISK_C-1
C_DISK_C0: DB .Size, ZX_Token.rem, ':/CLEAR E', 13,80
.Size EQU $-C_DISK_C0-1
C_DISK_C1: DB .Size, ZX_Token.rem, ':/RMD E', 13,80
.Size EQU $-C_DISK_C1-1
C_DISK_C2: DB .Size, ZX_Token.rem, ':RUN', 13,80
.Size EQU $-C_DISK_C2-1
C_DISK_C3: DB .Size, ZX_Token.rem, ':/HDD', 13,80
.Size EQU $-C_DISK_C3-1
C_DISK_C4: DB .Size, ZX_Token.rem, ':/FDD', 13,80
.Size EQU $-C_DISK_C4-1
C_DISK_C5: DB .Size, ZX_Token.rem, ':/B:', 13,80
.Size EQU $-C_DISK_C5-1
C_DISK_C6: DB .Size, ZX_Token.rem, ':/A:', 13,80
.Size EQU $-C_DISK_C6-1
;

395
src/bios/rom/ZX_MODE.ASM Normal file
View File

@ -0,0 +1,395 @@
;.PRINTX "Service."
SERVICE:
//LD HL,SR_TAB
LD DE,SR_MENU
LD BC,SR_MENU.Size
//PUSH HL
CALL RUN_MENU ;09f3
LD HL,SR_TAB
//POP HL
CALL EXEC_PNT
JR SERVICE
SR_TAB: DW UTILIT
DW GOTO_TRDOS.m128
DW GOTO_TRDOS.m48
DW TURBO_OFF
DW TURBO_ON
DW CLEAR_RAM
DW RET_FROM_M
; DC - every last character of a string will have bit 7 set
SR_MENU:
BYTE 8 ; ª®«¨ç¥á⢮ ¯ã­ªâ®¢
BYTE 'Options ',#FF ; § £®«®¢®ª ¬¥­î
DC 'RUN disk.trd'
DC '128 TR-DOS'
DC '48 TR-DOS'
DC 'TURBO OFF '
DC 'TURBO ON '
DC 'Clear RAM'
DC 'RETURN'
DC " " ; ¬ àª¥à ª®­æ 
.Size EQU $-SR_MENU
;*****************************
;SR_48R:
GOTO_TRDOS:
.m128: LD A,#10
JR .RUN
;SR_48:
.m48: LD A,#30 ; ‘⮯®à ­  PORT_128 !!!
;SR_48A:
.RUN: LD BC,#7FFD
OUT (C),A
LD BC,0 ; <20>€ 0 !!
PUSH BC
LD BC,#3D2F ; DOS !
PUSH BC
JP SW_ROM
;*******************************
TURBO_OFF:
LD A,BIOS.FN_TURBO.OFF
LD C,BIOS.FN_TURBO
JP_to_BIOS
TURBO_ON:
LD A,BIOS.FN_TURBO.ON
LD C,BIOS.FN_TURBO
JP_to_BIOS
;*******************************
CLEAR_RAM:
DI
LD C,BIOS.FullInit
RST_to_BIOS
; ¯à¨ ®ç¨á⪥ ¯ ¬ï⨠¨§ ¬¥­î ᯥªâà㬠 ¢®§¢à â ¢ DSS ¯® CAD
; ¡ã¤¥â ®¯ á­ë¬ (RAM Blocks ®á¢®¡®¤¨«¨áì),
; ¯®í⮬㠮⪫îç ¥¬ ¯¥à¥å¢ â à¥á¥â .
;!TODO ¯à¨¤ã¬ âì ª ª ®âª«îç âì ¯¥à¥å¢ â ⮫쪮 ­  ¢®§¢à â ¢ DSS
LD A,ACEX.RET_PORT
LD BC,BIOS.SET_PORTS
CALL ToBIOS_3D13
EI
RET
;SR_CL_MEM:
; DI
; LD A,10H
;SR_CL_R2:
; LD BC,1FFDH
; OUT (C),A
; EX AF,AF'
; XOR A
;SR_CL_R1:
; LD BC,7FFDH
; OUT (C),A
; LD HL,0C000H
; LD DE,0C001H
; LD BC,03FFFH
; LD (HL),L
; LDIR
; INC A
; CP 48H
; JR NZ,SR_CL_R1
; EX AF,AF'
; CP 0
; JP Z,BASIC_128 ; ¢ë室 ­  á¡à®á BASIC 128
; LD A,0
; JR SR_CL_R2
;*****************************
; *** MENU IS-DOS ***
;*****************************
ISDOS:
LD HL,IS_TAB
LD DE,IS_MENU
LD BC,IS_MENU.Size
PUSH HL
CALL RUN_MENU
POP HL
CALL EXEC_PNT
JR ISDOS
IS_TAB:
; DW TR_DOS
; DW SP_DOS
DW SPRINTER_1X
DW AY8910_X
DW PENTAGON
DW SCORPION
DW PENTAGON512
DW SPRINTER_reset ;SPRINTER_2X
DW RET_FROM_M
; DC - every last character of a string will have bit 7 set
IS_MENU:
BYTE 8 ; ª®«¨ç¥á⢮ ¯ã­ªâ®¢
BYTE 'Hardware',#FF ; § £®«®¢®ª ¬¥­î
DC 'Sprinter ZX '
DC 'ZX Spectrum'
DC 'Pentagon 128'
DC 'Scorpion 256'
DC 'Pentagon 512'
DC 'Restart '
DC 'RETURN'
DC " " ; ¬ àª¥à ª®­æ 
.Size EQU $-IS_MENU
;******************************
;SP_DOS:
; LD B,0E2H
; LD A,0E1H
; JR TR_DOS1
;TR_DOS:
; LD B,0EAH
; LD A,0E1H
;TR_DOS1:
; CALL DOS_ON
; CALL SET_ROM_PAGES
; CALL DOS_OFF
; RET
;******************************
;**************************************************
;Sprinter ZX
SPRINTER_1X:
CALL _SET_CNF
LD C,BIOS.RST_CONF.SP97_1
RST_to_BIOS
CALL CNF_PN_320
LD L,2 ;FN_SYNC.INT_PENT
JR 1F ;!FIXIT ¬¥âªã ¯à¨¤ã¬ âì
;
;ZX Spectrum
AY8910_X:
CALL _SET_CNF
LD C,BIOS.RST_CONF.AY8910
RST_to_BIOS
LD A,#FA ; no ACC, Original waits
LD (Port_All_Mode),A
CALL CNF_SC_312
LD L,3 ;FN_SYNC.INT_ORIG
1: LD DE,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
CALL CONFIG_SET
CALL CLS ;!FIXIT ­ã¦­® «¨?
RET
;
SCORPION:
CALL _SET_CNF
CALL CNF_SC_312
LD L,1 ;FN_SYNC.INT_SCORP
LD DE,CNF_PORT.CNF_1 + CNF_PORT.TURBO.ON
JR CONFIG_SET
PENTAGON:
CALL _SET_CNF
CALL CNF_PN_320
LD L,2 ;FN_SYNC.INT_PENT
LD DE,CNF_PORT.CNF_2 + CNF_PORT.TURBO.ON
JR CONFIG_SET
PENTAGON512:
CALL _SET_CNF
CALL CNF_PN_320
LD L,2 ;FN_SYNC.INT_PENT
LD DE,CNF_PORT.CNF_2 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_512
; JR CONFIG_SET
CONFIG_SET:
PUSH DE
EI
HALT
DI
IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD (SYS_PAGE.CONFIG_DE),DE
;!FIXIT ¥áâì «¨ á¬ëá« ¤¥« âì ¤® FN_SYNC?
LD A,(ZX_VARS.BORDER)
RRCA
RRCA
RRCA
AND 7
OUT (BorderColor),A
;
EX AF,AF'
OUT (SLOT3),A
LD A,L
LD C,BIOS.FN_SYNC
RST_to_BIOS
LD HL,#4104 ;!HARDCODE
LD E,0
LD BC,256*4 + BIOS.LP_OPEN_S ;!HARDCODE
RST_to_BIOS
LD HL,#5104 ;!HARDCODE
LD E,0
LD BC,256*4 + BIOS.LP_OPEN_S
RST_to_BIOS
POP DE
LD A,E
OUT (SYS_PORT.ROM),A
IM 1
EI
RET
SPRINTER_reset:
CALL _SET_CNF
LD BC,256*BIOS.REINIT.SOFT_RESET + BIOS.REINIT
JP_to_BIOS
_SET_CNF:
DI
LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
OUT (SYS_PORT.ROM),A
RET
CNF_SC_312:
LD A,Port_VSYNC.SET_312L
OUT (Port_VSYNC),A
RET
CNF_PN_320:
LD A,Port_VSYNC.SET_320L
OUT (Port_VSYNC),A
RET
; LD A,CNF_0
; OUT (SYS_PORT.ROM),A
; CALL DOS_OFF
; JP 0
;*****************************
; *** MENU UTILITES ***
;*****************************
;!FIXIT íâ® § ¯ã᪠c:\disk.trd - ­¥ ¤ã¬ î, çâ® íâ® ­ã¦­®, ¬®¦­® § ¬¥­¨âì
UTILIT:
LD HL,C_DISK_C
CALL CALL_DOS1
;!TEST
;CALL DOS_ON
;LD A,0 ; DETECT_HDD
;CALL EXP_HDD
LD C,BIOS.HDD_INIT
RST_to_BIOS
;CALL DOS_OFF
;
JR C,DISK_UTILIT
LD HL,C_DISK_C3
CALL CALL_DOS1
UTIL_DISK:
XOR A
;!TEST
LD C,BIOS.FreeMemRMD
RST_to_BIOS
;CALL EMM_FN3 ;!!!!! ç¥à¥§ RST_to_BIOS EMM.FreeMemRMD
;
LD HL,C_DEMO6
CALL CALL_DOS1
XOR A
;!TEST
LD C,BIOS.GET_RAMD_ST
RST_to_BIOS
;CALL GET_RAMD_ST
;
JR C,UTIL_DISK_L1
JR Z,UTIL_DISK_L1
LD HL,C_DISK_C1
CALL CALL_DOS1
LD HL,C_DISK_C2
CALL CALL_DOS1
RET
UTIL_DISK_L1:
LD A,(ZX_VARS.OPER_DISK)
INC A
CP 2
JR Z,DISK_UTIL_RET
LD HL,C_DISK_C5
CALL CALL_DOS1
JR UTIL_DISK
DISK_UTIL_RET:
LD HL,C_DISK_C6
CALL CALL_DOS1
RET
DISK_UTILIT:
LD HL,C_DISK_C4
CALL CALL_DOS1
JR UTIL_DISK
C_DEMO6: DB .Size, ZX_Token.rem, ':/disk.trd', 13,80
.Size EQU $-C_DEMO6-1
;***************************************
;VERSION: DEFB 22,21,0
; DEFB 16,2,"Expansion 3.02  1997 ELSY Co.",16,1,0FFh
;**********************************************
DOS_RUN:
LD HL,C_DISK_C1
CALL CALL_DOS1
LD HL,C_DISK_C2
CALL CALL_DOS1
RET
START_TRD:
LD HL,C_DISK_C
CALL CALL_DOS1
LD HL,C_DISK_C0
CALL CALL_DOS1
LD HL,C_DISK_C3
CALL CALL_DOS1
RET
C_DISK_C: DB .Size, ZX_Token.rem, ':', 13,80
.Size EQU $-C_DISK_C-1
C_DISK_C0: DB .Size, ZX_Token.rem, ':/CLEAR E', 13,80
.Size EQU $-C_DISK_C0-1
C_DISK_C1: DB .Size, ZX_Token.rem, ':/RMD E', 13,80
.Size EQU $-C_DISK_C1-1
C_DISK_C2: DB .Size, ZX_Token.rem, ':RUN', 13,80
.Size EQU $-C_DISK_C2-1
C_DISK_C3: DB .Size, ZX_Token.rem, ':/HDD', 13,80
.Size EQU $-C_DISK_C3-1
C_DISK_C4: DB .Size, ZX_Token.rem, ':/FDD', 13,80
.Size EQU $-C_DISK_C4-1
C_DISK_C5: DB .Size, ZX_Token.rem, ':/B:', 13,80
.Size EQU $-C_DISK_C5-1
C_DISK_C6: DB .Size, ZX_Token.rem, ':/A:', 13,80
.Size EQU $-C_DISK_C6-1
;

View File

@ -62,8 +62,6 @@
DEC A
LD (RECOVERYstart.RDkey),A
PUSH BC
;LD BC,ROM_DISK.Pages.Size * 256 + BIOS.GetMemRMD
;RST_to_BIOS
LD B,ROM_DISK.Pages.Size
CALL EMM.GetMemRMD
POP BC
@ -82,9 +80,7 @@
IF vers = 1 ; <20>®«¥¥ ¡ëáâàë©, ­® § å à¤ª®¦¥­­ë© ¢ à¨ ­â
LD HL,TEMP
;LD C,BIOS.GetMemBlkPages
;RST_to_BIOS ; ª¨¤ ¥¬ ¢ ¡ãä¥à ­®¬¥à  áâà ­¨æ RAM disk
CALL EMM.GetMemBlkPages
CALL EMM.GetMemBlkPages ; ª¨¤ ¥¬ ¢ ¡ãä¥à ­®¬¥à  áâà ­¨æ RAM disk
IN A,(SLOT3)
LD (.slot3save),A
@ -142,9 +138,7 @@
LD A,#46 ;ç⥭¨¥ ¨§ ROM-Disk
EX AF,AF'
LD HL,TEMP ; ¤à¥á ¡ãä¥à  ¤ ­­ëå
;LD BC,2*256 + BIOS.BLK_RD_WR ;ç¨á«® ᥪâ®à®¢ ¨ ­®¬¥à ä㭪樨
;RST_to_BIOS
LD B,2
LD B,2 ;ç¨á«® ᥪâ®à®¢
CALL BLK_RD_WR
;write to ram disk
@ -157,8 +151,6 @@
LD A,#FF ;§ ¯¨áì ¢ RAM-Disk
EX AF,AF'
LD HL,TEMP ; ¤à¥á ¡ãä¥à  ¤ ­­ëå
;LD BC,2*256 + BIOS.BLK_RD_WR ;ç¨á«® ᥪâ®à®¢ ¨ ­®¬¥à ä㭪樨
;RST_to_BIOS
LD B,2 ;ç¨á«® ᥪâ®à®¢
CALL BLK_RD_WR
@ -193,3 +185,9 @@
ENDIF
ENDM
;
;
; MACRO
; ENDM
;

View File

@ -4,7 +4,7 @@
DEFINE NEW_FEATURE 0;| /\ ; !TODO ¯ã­ªâë ¢ á¥â ¯
DEFINE SET_NEWdcp 1;| \/ \/ ; !FIXIT â¥áâ ­®¢®£® dcp_init, ¯®ª  ­¥ £®â®¢  â ¡«¨æ  ¯®à⮢
DEFINE PACKED_MAIN 0;| | ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
DEFINE SetFullZXromLoader 0;| ; ¤®¡ ¢«ïâì ¢ ¯à®è¨¢ªã ¨ £à㧨âì ¢á¥ ROM ᯥªâà㬠 ¨«¨ ç áâì?
DEFINE SP2000_ConfID #FEFF;| ;
DEFINE IDE_Optimization 1;| ; á«¥£ª  ®¯â¨¬¨§¨àã¥â ­¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD
DEFINE NeedSafePort_Y 1;| ============== ; !!!!! ¥á«¨ 0, â® ¢ ०¨¬¥ sp-ᯥªâà㬠 ­¥ª®â®àë¥ ¯à®æ¥¤ãàë ¬®£ãâ § áà âì íªà ­
DEFINE Pashalki 0; \__________________/\
@ -13,10 +13,6 @@
DEFINE RECOVERYrdChooseTYPE 1 ; 1 - RECOVERY ¢á¥£¤  £à㧨âáï ¢ ¤¨áª 15, 2 - ¨é¥âáï ᢮¡®¤­ë© à ¬¤¨áª ¨ ¥á«¨ â ª®£® ­¥â, â® § ­¨¬ ¥âáï 15ë©
DEFINE RECOVERYmountTYPE 1 ; 1 - ¡ëáâàë© ­¥¬­®£® § å à¤ª®¦¥­ë© ¢ à¨ ­â. 2 - ¡®«¥¥ "¯à ¢¨«ì­ë©"
DEFINE SP2000_ConfID #FEFF
DEFINE BIOS_ZXMODE 1
; ‡ ¤¥à¦ª  ¢ ª ¤à å ¯®á«¥ ®âà¨á®¢ª¨ «®£®â¨¯  (0 = 256)
DEFINE LOGO_DELAY_MIN 25
DEFINE LOGO_DELAY_NORM 100

View File

@ -1,41 +1,51 @@
!TODO
- / ‘¤¥« âì EXP ­®¢®£® ¡¨®á  ᮢ¬¥áâ¨¬ë¬ á ०¨¬®¬ ᯥªâà㬠, ⮣¤  ®á¢®¡®¤¨âáï 1 áâà ­¨æ  ¢ <20>‡“
- -| €¤ ¯â¨à®¢ âì ¯®¤ ­®¢ë© ᮢ¬¥áâ¨¬ë© EXP ᯥªâà㬮¢áª¨¥ <20>‡“, ⮣¤  £à㧨âì ­  1 áâà ­¨æã ¬¥­ìè¥
- \ ¯®«ãç¨âáï, çâ® EXP ª®â®à®¥ ᥩç á ­  ¬¥á⥠à áè¨à¥­­®£® ‚¨àâã «ì­®£® <20>‡“ ¡ã¤¥â ¢ <20>‡“?????
- ‘¦ âì åàãá⮬ <20>‡“ ᯥªâà㬠 ¨ ‹®£®â¨¯, ¥éñ 1-2 áâà ­¨æë ®á¢®¡®¤ïâáï
TODO:
- ¯ã­ªâ ¢ á¥â ¯¥ "á®åà ­ïâì áâà ­¨æë ᯥªâà㬠 ¯à¨ ¯¥à¥§ £à㧪¥"
- ¯¥à¥¤ ¨­¨æ¨ «¨§ æ¨¥© áâà ­¨æ ᯥªâà㬠 ¨ áâà ­¨æë 41 ¯à®¢¥àïâì, ­¥ § ­ïâë «¨ ®­¨ à ¬¤¨áª®¬
- ‘¦ âì åàãá⮬ <20>‡“ ᯥªâà㬠 ¨ ‹®£®â¨¯, ¥éñ 1 áâà ­¨æ  ¬®¦¥â ®á¢®¡®¤¨âìáï
- ¢ á¥â ¯ ¤«ï á®åà ­¥­¨ï àãç­ëå ­ áâ஥ª HDD ­¥ ⥠ï祩ª¨ CMOS
- ¡ £ ¢ ०¨¬¥ ᯥªâà㬠 ¯à¨ ¢ë¡®à¥ Clear RAM ¢ ¬¥­î ¨ ¯®á«¥¤ãî騬 ¢ë室®¬ ¢ „Ž‘ ¯® CAD - § ¢¨á ¥â, ¯®â®¬ã çâ® ¢ë§ë¢ ¥âáï ¯à®æ¥¤ãà  FullInit ¤«ï ®ç¨á⪨
- ç¨áâ¨âì ¡ãä¥à ª« ¢ë ­¥ ¢âã¯ãî,   ª ª¨¬¨-­¨¡ã¤ì ª®¬ ­¤ ¬¨ ¤«ï íâ¨å ¢á直å SIO/PIO, ¥á«¨ ¥áâì
-+ ! ¢ Setup ¤®¡ ¢«¥­ ¯ã­ªâ ­ áâனª¨ ¢à¥¬¥­¨ ¨ ¤ âë
-+ ! ¢ Setup ¤®¡ ¢¨âì ¯ã­ªâ ­ áâனª¨ ¢à¥¬¥­¨ ¨ ¤ âë
-+ ­¥¬­®£® ¤®à ¡®â ­  á¨á⥬  ¯¥à¥å¢ â  à¥á¥â  ¤«ï ãáâà ­¥­¨ï ­¥ª®â®àëå £«îª®¢ ¨ ­  ¡ã¤ã饥
+ ¨á¯à ¢«¥­ ¡ £ á® á⥪®¬ ¢ BLK_TO_RAMD ¨ ¥éñ ­¥áª®«ìª® ¡ £®¢ ¢ ¯à®æ¥¤ãà å ç⥭¨ï á <20>€Œ-„ˆ‘Š€
+ ⥯¥àì § à¥§¥à¢¨à®¢ ­­ë¥ ¯®¤ ०¨¬ ᯥªâà㬠 áâà ­¨æë ¬®¦­® «¥£ª® ®á¢®¡®¤¨âì, ­®¬¥à ¡«®ª  - 1
+  ªâ¨¢¨à®¢ ­ ¢â®à®© ª ­ « IDE
+ ­ã¬¥à æ¨ï ãáâனá⢠IDE ¯¥à¥¤¥« ­  á ¯®á«¥¤®¢ â¥«ì­®© ­  䨧¨ç¥áªãî
+ ¢ë¡®à § £à㧮筮£® IDE ¨§¬¥­ñ­ á ¯®á«¥¤®¢ â¥«ì­®£® ­  䨧¨ç¥áª¨©
+ ¤®¡ ¢«¥­  ¢®§¬®¦­®áâì ãáâ ­®¢ª¨ IDE á® ¢â®à®£® ª ­ «  ¢ ª ç¥á⢥ ®á­®¢­®£® ¨  «ìâ¥à­ â¨¢­®£® § £à㧮筮£® ¤¨áª 
+ ᤥ« ­ ã­¨¢¥àá «ì­ë© § £àã§ç¨ª ¡¨âáâਬ  ¤«ï 1k30 ¨ 1k50
+ ­¥¬­®£® ¤®à ¡®â ­  á¨á⥬  ¯¥à¥å¢ â  à¥á¥â  ¤«ï ãáâà ­¥­¨ï ­¥ª®â®àëå £«îª®¢ ¨ ­  ¡ã¤ã饥
+ ã¡à ­® § «¨¯ ­¨¥ ª« ¢¨è ¯à¨ à¥á¥â¥ ¯® Ctrl+Alt+Del
+ ¯à¨ ­¥ª®à४â­ëå §­ ç¥­¨ïå ¤ âë ¨ ¢à¥¬¥­¨ ¢ CMOS ¤ ­­ë¥ § ¬¥­ïîâáï ­  ¤¥ä®«â­ë¥ §­ ç¥­¨ï, ¢ë¢®¤¨âáï á®®¡é¥­¨¥ ®¡ ®è¨¡ª¥
+ ¢ Setup ¤®¡ ¢«¥­ ¢ë¡®à ०¨¬  à §¢ñà⪨ (--------/Scorpion/Pentagon/Spectrum)
+ ¢ Setup ¤®¡ ¢«¥­ ¢ë¡®à ¢¥à⨪ «ì­®© ᨭåà®­¨§ æ¨¨ (--------/312 50ƒæ/320 49ƒæ)
+ ¤®¡ ¢«¥­  § £à㧪  RECOVERY á ROM-Disk ¢ <20>‡“
+ ¤®¡ ¢«¥­  § £à㧪  á¨á⥬ë á RAM Disk
+ ¯à¨ 宫®¤­®¬ áâ à⥠ãáâ ­ ¢«¨¢ ¥âáï ¨­â ¯¥­â £®­  (  ­¥ ᪮௨®­ ), ¥á«¨ ¢ CMOS ­¥ § ¤ ­® ¨­®¥
Done:
+ ‘¤¥« ­ ã­¨¢¥àá «ì­ë© § £àã§ç¨ª ¡¨âáâਬ  ¤«ï 1k30 ¨ 1k50
+ €ªâ¨¢¨à®¢ ­ ¢â®à®© ª ­ « IDE
+ <20>ã¬¥à æ¨ï ãáâனá⢠IDE ¯¥à¥¤¥« ­  á ¯®á«¥¤®¢ â¥«ì­®© ­  䨧¨ç¥áªãî
+ ‚ë¡®à § £à㧮筮£® IDE ¨§¬¥­ñ­ á ¯®á«¥¤®¢ â¥«ì­®£® ­  䨧¨ç¥áª¨©
+ „®¡ ¢«¥­  ¢®§¬®¦­®áâì ãáâ ­®¢ª¨ IDE á® ¢â®à®£® ª ­ «  ¢ ª ç¥á⢥ ®á­®¢­®£® ¨  «ìâ¥à­ â¨¢­®£® § £à㧮筮£® ¤¨áª 
+ “¡à ­® § «¨¯ ­¨¥ ª« ¢¨è ¯à¨ à¥á¥â¥ ¯® Ctrl+Alt+Del
+ <20>ਠ­¥ª®à४â­ëå §­ ç¥­¨ïå ¤ âë ¨ ¢à¥¬¥­¨ ¢ CMOS ¤ ­­ë¥ § ¬¥­ïîâáï ­  ¤¥ä®«â­ë¥ §­ ç¥­¨ï, ¢ë¢®¤¨âáï á®®¡é¥­¨¥ ®¡ ®è¨¡ª¥
+ Setup ¤®¡ ¢«¥­ ¢ë¡®à ०¨¬  à §¢ñà⪨ (--------/Scorpion/Pentagon/Spectrum)
+ Setup ¤®¡ ¢«¥­ ¢ë¡®à ¢¥à⨪ «ì­®© ᨭåà®­¨§ æ¨¨ (--------/312 50ƒæ/320 49ƒæ)
+ „®¡ ¢«¥­  § £à㧪  á¨á⥬ë á RAM Disk
+ ˆá¯à ¢«¥­ ¡ £ á® á⥪®¬ ¢ BLK_TO_RAMD ¨ ¥éñ ­¥áª®«ìª® ¡ £®¢ ¢ ¯à®æ¥¤ãà å ç⥭¨ï á <20>€Œ-„ˆ‘Š€
+ „®¡ ¢«¥­  § £à㧪  RECOVERY á ROM-Disk ¢ <20>‡“
+ <20>ਠ宫®¤­®¬ áâ à⥠ãáâ ­ ¢«¨¢ ¥âáï ¨­â ¯¥­â £®­  (  ­¥ ᪮௨®­ ), ¥á«¨ ¢ CMOS ­¥ § ¤ ­® ¨­®¥
+ ”ã­ªæ¨ï <20>ˆŽ FN_SINC (#F2) ¯à¨ 㤠筮¬ § ¢¥à襭¨¨ ­¥ á¡à á뢠«  ä« £ CF ­  ¢ë室¥ - ¨á¯à ¢«¥­®
+ ­®¢ ï äã­ªæ¨ï GET_RAMD_NUM
+ ¤®¡ ¢«¥­ë¥ ¤®¯®«­¨â¥«ì­ë¥ ®¯æ¨¨ ¢ äã­ªæ¨î <20>ˆŽ FN_SINC (#F2), bit7 ॣ¨áâà  A ⥯¥àì ®â¢¥ç ¥â §  ¯¥à¥ª«î祭¨¥ áâ à®£®/­®¢®£® ¢ à¨ ­â  à ¡®âë ä㭪樨 (¤«ï á®åà ­¥­¨ï ᮢ¬¥á⨬®á⨠ᮠáâ à묨 ¯à®£à ¬¬ ¬¨)
+ ¤®¡ ¢«¥­ë ®¡à §ë <20>‡“ ZX-Sprinter ¤«ï § ¯ã᪠ ०¨¬  ᯥªâà㬠 ¡¥§ § £à㧪¨ DSS
+ ­®¢®¥ «®£® ¯à¨ áâ àâ¥, à §à¥è¥­¨¥ ¨§¬¥­¥­® á 256å64 16 梥⮢ ­  128å72 256 梥⮢
+ ¨§¬¥­¥­  ¯à®æ¥¤ãà  ¢ë¢®¤  «®£®â¨¯ , «®£®â¨¯ ¯¥à¥­¥áñ­ ¢ ¤àã£ãî áâà ­¨æã <20>‡“
+ ᬥ­  ï§ëª , à §¢ñà⪨ ¨ ¨­â  ¯à®¨á室¨â ¢ Setup áà §ã
+ ¯®¯à ¢«¥­ ¬ «®¢¥à®ïâ­ë©, ­® ¢®§¬®¦­ë© £«îª á ¯¥à¥¯®«­¥­¨¥¬ á⥪  ¯à¨ ¢å®¤¥-¢ë室¥ ¨§ SETUP
+ ¯®¯à ¢«¥­ë ¡ãä¥àë, ®¯â¨¬¨§¨à®¢ ­ë ­¥ª®â®àë¥ ¯à®æ¥¤ãàë, ®á¢®¡®¦¤¥­® ¡¡®«ìè¥ 1,5 ª¡ އ“ ¤«ï à ¡®âë BIOS ¢® ¢à¥¬ï áâ àâ 
+ ¨§¬¥­¥­ë ­¥ª®â®àë¥ ­ ¤¯¨á¨ ¨ ¯®¯à ¢«¥­  áâàãªâãà  SETUP
+ ­ ©¤¥­® ­¥áª®«ìª® ¤à¥¢­¨å ¬¥«ª¨å ®£à¥å®¢ copy/paste, ¯à¨ à ¡®â¥ ¡ë«® ­¥§ ¬¥â­®, ­® ¯à¨ïâ­®, çâ® ­ è«¨áì
+ ¤®¤¥« ­  äã­ªæ¨ï FN_RESET
+ ¯®á⥯¥­­ë© à¥ä ªâ®à¨­£ ª®¤ )))
+ <20>®¢ ï äã­ªæ¨ï GET_RAMD_NUM
+ „®¡ ¢«¥­ë¥ ¤®¯®«­¨â¥«ì­ë¥ ®¯æ¨¨ ¢ äã­ªæ¨î <20>ˆŽ FN_SINC (#F2), bit7 ॣ¨áâà  A ⥯¥àì ®â¢¥ç ¥â §  ¯¥à¥ª«î祭¨¥ áâ à®£®/­®¢®£®
¢ à¨ ­â  à ¡®âë ä㭪樨 (¤«ï á®åà ­¥­¨ï ᮢ¬¥á⨬®á⨠ᮠáâ à묨 ¯à®£à ¬¬ ¬¨)
+ <20>®¢®¥ «®£® ¯à¨ áâ àâ¥, à §à¥è¥­¨¥ ¨§¬¥­¥­® á 256å64 16 梥⮢ ­  128å72 256 梥⮢
+ ˆ§¬¥­¥­  ¯à®æ¥¤ãà  ¢ë¢®¤  «®£®â¨¯ , «®£®â¨¯ ¯¥à¥­¥áñ­ ¢ ¤àã£ãî áâà ­¨æã <20>‡“
+ ‘¬¥­  ï§ëª , à §¢ñà⪨ ¨ ¨­â  ¯à®¨á室¨â ¢ Setup áà §ã
+ ˆ§¬¥­¥­ë ­¥ª®â®àë¥ ­ ¤¯¨á¨ ¨ ¯®¯à ¢«¥­  áâàãªâãà  SETUP
+ „®¤¥« ­  äã­ªæ¨ï FN_RESET
+ „®¤¥« ­  äã­ªæ¨ï DCP_CONFIG - äã­ªæ¨ï ã¯à ¢«¥­¨ï ¤¥è¨äà â®à®¬ ¯®à⮢
+ “¡à ­® § ¤¢®¥­¨¥ ä㭪権 4å
+ ”㭪樨 5å ¯¥à¥­¥á¥­ë ¨§ 0 ¢ 8 áâà ­¨æã <20>‡“
+ ˆ§¬¥­¥­  äã­ªæ¨ï ¨­¨æ¨ «¨§ æ¨¨ DCP, ®á¢®¡®¤¨«®áì ®ª®«® 4,5 ª¡
+ ’¥¯¥àì § à¥§¥à¢¨à®¢ ­­ë¥ ¯®¤ ०¨¬ ᯥªâà㬠 áâà ­¨æë ¬®¦­® «¥£ª® ®á¢®¡®¤¨âì, ­®¬¥à ¡«®ª  - 1
+ „®¡ ¢«¥­ë ®¡à §ë <20>‡“ ZX-Sprinter ¤«ï § ¯ã᪠ ०¨¬  ᯥªâà㬠 ¡¥§ § £à㧪¨ DSS
+ ‘âà ­¨æ  BIOS ᮢ¬¥á⨬  á  ¤ ¯â¨à®¢ ­­ë¬¨ ®¡à § ¬¨ <20>‡“ ᯥªâà㬠. ’¥¯¥àì ®â¤¥«ì­ë¥ áâà ­¨æë ®à¨£¨­ «ì­ëå SP_EXP ¨ SP_EXP2
­¥ âॡãîâáï.
+ ˆá¯à ¢«¥­ ¡ £ ¢ ०¨¬¥ ᯥªâà㬠. <20>ਠ¢ë¡®à¥ Clear RAM ¢ ¬¥­î ¨ ¯®á«¥¤ãî騬 ¢ë室®¬ ¢ „Ž‘ ¯® CAD § ¢¨á «®,
¯®â®¬ã çâ® ¢ë§ë¢ « áì ¯à®æ¥¤ãà  FullInit ¤«ï ®ç¨á⪨ ¯ ¬ïâ¨. ’¥¯¥àì ¢¬¥áâ¥ á ®ç¨á⪮© ¯ ¬ï⨠á¡à á뢠¥âáï ¯¥à¥å¢ â à¥á¥â 
+ <20>®¯à ¢«¥­ë ¡ãä¥àë, ®¯â¨¬¨§¨à®¢ ­ë ­¥ª®â®àë¥ ¯à®æ¥¤ãàë, ®á¢®¡®¦¤¥­® ¡¡®«ìè¥ 1,5 ª¡ އ“ ¤«ï à ¡®âë BIOS ¢® ¢à¥¬ï áâ àâ 
+ <20> ©¤¥­® ­¥áª®«ìª® ¤à¥¢­¨å ¬¥«ª¨å ®£à¥å®¢ copy/paste, ¯à¨ à ¡®â¥ ¡ë«® ­¥§ ¬¥â­®, ­® ¯à¨ïâ­®, çâ® ­ è«¨áì
+ <20>®¯à ¢«¥­ ¬ «®¢¥à®ïâ­ë©, ­® ¢®§¬®¦­ë© £«îª á ¯¥à¥¯®«­¥­¨¥¬ á⥪  ¯à¨ ¢å®¤¥-¢ë室¥ ¨§ SETUP
+ <20>®á⥯¥­­ë© à¥ä ªâ®à¨­£ ª®¤ )))
+ ‚ᥣ® ¨ ­¥ ¢á¯®¬­¨âì 㦥...
====================================================================================================================================================================================================================
<EFBFBD>®¢®¥ ®¯¨á ­¨¥ ä㭪樨 <20>ˆŽ FN_SINC (#F2)
LD A,sync_mode ; ०¨¬ ᨭåà®­¨§ æ¨¨
@ -106,6 +116,7 @@ FN_RESET: ;
; áâ à ï ¢¥àá¨ï BIOS
;
<EFBFBD>®¢®¥ ®¯¨á ­¨¥ ä㭪樨 GET_RAMD_NUM (#9B)
GET_RAMD_NUM: ; ¯®«ãç¨âì ­®¬¥à RAM-Disk-  (0..15) ¯® ¥£® block id
LD A,id_blk ; ¨¤¥­â¨ä¨ª â®à ¡«®ª 
@ -114,6 +125,7 @@ GET_RAMD_NUM: ;
; CF -> ®è¨¡ª  ¢ ¨¤¥­â¨ä¨ª â®à¥ ¡«®ª  ¨«¨ ¡¨®á ­¨¦¥ 2.55
;
<EFBFBD>®¢®¥ ®¯¨á ­¨¥ ä㭪樨 <20>ˆŽ BLK_RD_WR (#C8)
BLK_RD_WR: ; ç⥭¨¥/§ ¯¨áì ¨§/¢ ¡«®ª( ) ¯ ¬ï⨠ᥪâ®à ¬¨
; ¯® 256 ¡ ©â
@ -133,3 +145,12 @@ s_lines312 equ 7
s_wait_orig equ #18
s_wait_def equ #10
DCP_CONFIG: ; [x] äã­ªæ¨ï ã¯à ¢«¥­¨ï ¤¥è¨äà â®à®¬ ¯®à⮢.
;A - ¥á«¨ ­®«ì, â® ¢ë§®¢ ä㭪樨 ¯¥à¥¨­¨æ¨ «¨§ æ¨¨ ¯®à⮢ PORTS_INIT
;HL -  ¤à¥á
;DE - ¬ áª  - 0 ¨§¬¥­ï¥¬ë¥ ¡¨âë, 1 ­¥¨§¬¥­ï¥¬ë¥
;B - ¯®àâ
;C - #F4 ­®¬¥à ä㭪樨
; !FIXIT ”ã­ªæ¨ï ¯®§¢®«ï¥â ®âªà뢠âì/§ ªà뢠âì ¤®¯®«­¨â¥«ì­ë¥ ¯®àâë ª®¬¯ìîâ¥à .
;