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

View File

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

View File

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

View File

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

View File

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

View File

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

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 MACRO Conf_loader altera_chip
.START: DI .START: DI

View File

@ -88,259 +88,11 @@ JPHL: JP (HL)
; ;
;----------------------------[ FOR ZX-MODE ]----------------------------; ;----------------------------[ FOR ZX-MODE ]----------------------------;
IF BIOS_ZXMODE
;!HARDCODE ­  íâ®â  ¤à¥á #0 ¯à룠¥â ¢ vROM Basic-48 ¯®  ¤à¥áã #3CF0 ;!HARDCODE ­  íâ®â  ¤à¥á #0 ¯à룠¥â ¢ vROM Basic-48 ¯®  ¤à¥áã #3CF0
; ¬®¦­® ¯®¯à®¡®¢ âì ¯¥à¥¤¥« âì íâ®â  ¤à¥á â ¬ ; ¬®¦­® ¯®¯à®¡®¢ âì ¯¥à¥¤¥« âì íâ®â  ¤à¥á â ¬
_mInfoBLOCK #C0-$,0 _mInfoBLOCK #C0-$,0
;BEGIN: INCLUDE 'ZX/ZX_FUNC.ASM'
; ‚室 ç¥à¥§ USR 15600 INCLUDE 'ZX/ZX_MENU.ASM'
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
;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------;
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ; ; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
; ;
@ -443,17 +195,6 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup
;************************* ;*************************
_mInfoBLOCK #3CF0-$,0 _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: ;JMP_48:
; LD HL,00h ; LD HL,00h
; JR JP_HL_48 ; JR JP_HL_48
@ -540,7 +281,7 @@ SW_ROM:
; ;
;*************************************** ;---------------------------------------
; _mInfoBLOCK #3FC6-$,#FF ; _mInfoBLOCK #3FC6-$,#FF
;!FIXIT ¯¥à¥¤¥« âì <20>‡“ âà¤®á  ¨ ᯥªâà㬮¢ ¯®¤ ¯à ¢¨«ì­ë© ¢ë§®¢ ä㭪権 ¡¨®á  (  ­¥ ¢¬¥áâ® ä㭪権 4x ä㭪樨 0x) ;!FIXIT ¯¥à¥¤¥« âì <20>‡“ âà¤®á  ¨ ᯥªâà㬮¢ ¯®¤ ¯à ¢¨«ì­ë© ¢ë§®¢ ä㭪権 ¡¨®á  (  ­¥ ¢¬¥áâ® ä㭪権 4x ä㭪樨 0x)
; ¨«¨ ¬®¦­® ¤®¡ ¢¨âì ä㭪樨 ; ¨«¨ ¬®¦­® ¤®¡ ¢¨âì ä㭪樨
@ -552,39 +293,38 @@ SW_ROM:
; SET 6,C ; SET 6,C
; RST_to_BIOS ; RST_to_BIOS
; JR RET_TO_TRDOS ; JR RET_TO_TRDOS
;*************************************** ;---------------------------------------
; ;
;---------------[SET BIOS]--------------- ;--------------[GOTO BIOS]--------------
_mInfoBLOCK ToBIOS_FromEXT-$,#FF ; #3FD0
; call BIOS from EXTENSION ; call BIOS from EXTENSION
;RST18h: _mInfoBLOCK #3FD0-$,#FF ; ToBIOS_FromEXT
PUSH AF PUSH AF
LD A,ROM.BIOS ; set exp-rom to slot0 LD A,ROM.BIOS ; set BIOS to slot0
OUT (SYS_PORT.ROM),A OUT (SYS_PORT.ROM),A
POP AF POP AF
RET RET
;--------------------------------------- ;---------------------------------------
;!FIXIT ¯¥à¥¤¥« âì <20>‡“ âà¤®á  ¨ ᯥªâà㬮¢ ¯®¤ ¯à ¢¨«ì­ë© ¢ë§®¢ ä㭪権 ¡¨®á  (  ­¥ ¢¬¥áâ® ä㭪権 4x ä㭪樨 0x)
;--------[ From TR-DOS to HDD part2]-------- ;--------[ From TR-DOS to HDD part2]--------
_mInfoBLOCK #3FD8-$,#FF _mInfoBLOCK #3FD8-$,#FF
TRDOS_HD_CMD: TRDOS_HD_CMD:
POP AF POP AF
SET 6,C ;!FIXIT ¯¥à¥¤¥« âì <20>‡“ âà¤®á  ¨ ᯥªâà㬮¢ ¯®¤ ¯à ¢¨«ì­ë© ¢ë§®¢ ä㭪権 ¡¨®á  (  ­¥ ¢¬¥áâ® ä㭪権 4x ä㭪樨 0x) SET 6,C
RST_to_BIOS RST_to_BIOS
JR RET_TO_TRDOS JR RET_TO_TRDOS
;--------------------------------------- ;---------------------------------------
;!FIXIT ®áâ âª¨ ®â ᯥªâà㬠 ;!FIXIT ®áâ âª¨ ®â â¥á⮢ ˆ¢ ­  á® §¢ãª®¢®© ª à⮩
;-------------[SND_TEST_RET]------------- ;-------------[SND_TEST_RET]-------------
_mInfoBLOCK #3FE0-$,#FF _mInfoBLOCK #3FE0-$,#FF
SND_TEST_RET: ; SND_TEST_RET:
LD A,ROM.BIOS ; LD A,ROM.BIOS
OUT (SYS_PORT.RAM),A ; OUT (SYS_PORT.RAM),A
; JP SOUND_TEST ; ;JP SOUND_TEST
JP #0000 ; JP #0000
;--------------------------------------- ;---------------------------------------
@ -599,8 +339,8 @@ SND_TEST_RET:
;--------------------------------------- ;---------------------------------------
;!FIXIT íâ  â®çª  ¢å®¤  ®ç¥­ì áâà ­­ ï ¨§ áâà ­¨æë ¢ áâà ­¨æã ¯à룠¥â ;!FIXIT Œ®¦­® ¯®¯à ¢¨âì ­®¬¥à  ä㭪権 ¯à¨ ¢ë§®¢ å ¨§ TR-DOS ¨ ¯à룠âì áà §ã ¢ BIOS
;---------[ From TR-DOS to HDD ]-------- ;-------[ From TR-DOS to API 4x ]-------
_mInfoBLOCK #3FF0-$,255 _mInfoBLOCK #3FF0-$,255
RET_TO_TRDOS: RET_TO_TRDOS:
PUSH AF PUSH AF
@ -614,12 +354,10 @@ RET_TO_TRDOS:
;-----[???????????????????????????]----- ;-----[???????????????????????????]-----
_mInfoBLOCK #3FF8-$,255 _mInfoBLOCK #3FF8-$,255
A3FF8: PUSH AF ; PUSH AF
LD A,ROM.BIOS ; LD A,ROM.BIOS
OUT (SYS_PORT.RAM),A ; OUT (SYS_PORT.RAM),A
; !FIXIT ¬®¦¥â ã¡à âì § £«ãèªã ¨ ᤥ« âì, ç⮡ ¯¥à¥ª«îç «®áì ­  BIOS ¨ ¤ «ìè¥ ª ª ¢ EXP_FNS_RET ? ; JP #0000
; ¨«¨ ᢮¥£® 祣®-­¨¡ã¤ì ¤®¡ ¢¨âì.
JP #0000
;--------------------------------------- ;---------------------------------------
_mInfoBLOCK #4000-$,255 _mInfoBLOCK #4000-$,255
;======================================= ;=======================================

View File

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

View File

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

View File

@ -9,8 +9,6 @@ SETTINGS:
LD HL,#2050 LD HL,#2050
LD A,(NORCLR) LD A,(NORCLR)
LD B,A LD B,A
;LD C,BIOS.LP_CLS_WIN
;RST_to_BIOS
CALL LP_CLS_WIN CALL LP_CLS_WIN
@ -371,14 +369,10 @@ FSCREEN:
HALT HALT
FSC1: FSC1:
PUSH DE PUSH DE
;LD C,BIOS.LP_SET_PLACE
;RST_to_BIOS
CALL LP_SET_PLACE CALL LP_SET_PLACE
LD A,(NORCLR) LD A,(NORCLR)
LD E,A LD E,A
;LD BC,#50*256+BIOS.LP_PRINT_ATR ;#5083
;RST_to_BIOS
LD B,#50 LD B,#50
CALL LP_PRINT_ATR CALL LP_PRINT_ATR
@ -747,8 +741,8 @@ SETDEF: ;!TODO
RET RET
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[v] ;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[v]
IF NEW_FEATURE
; New procedure with IY reg ; New procedure with IY reg
IF NEW_FEATURE
Get_Item_Address: Get_Item_Address:
LD A,(ITEM) LD A,(ITEM)
LD L,A LD L,A
@ -763,6 +757,7 @@ Get_Item_Address:
PUSH HL PUSH HL
POP IY POP IY
RET RET
ELSE ELSE
Get_Item_Address: Get_Item_Address:
LD A,(ITEM) LD A,(ITEM)
@ -784,16 +779,15 @@ Get_Item_Address:
MODULE OnChangeAction MODULE OnChangeAction
nothing: nothing:
ret ret
; !TODO New Feature
; !TODO § ¬ãâ¨âì çâ®-⮠⨯  API ¤«ï à¨á®¢ ­¨ï ¢á¯«ë¢ îé¨å ®ª®­
IF NEW_FEATURE IF NEW_FEATURE
SetTime: SetTime:
; !TODO New Feature
; !TODO § ¬ãâ¨âì çâ®-⮠⨯  API ¤«ï à¨á®¢ ­¨ï ¢á¯«ë¢ îé¨å ®ª®­
xor a xor a
ld hl,#050E ld hl,#050E
ld de,#0C20 ld de,#0C20
ld ix,memBUFFER.Shared ld ix,memBUFFER.Shared
;ld c,BIOS.WIN_COPY
;RST_to_BIOS_18
CALL WIN_COPY CALL WIN_COPY
LD DE,#0C20 ; !HARDCODE LD DE,#0C20 ; !HARDCODE
@ -802,12 +796,9 @@ SetTime:
.loop: push bc .loop: push bc
push de push de
;CALL ScreenPOS.LOCAT
CALL LP_SET_PLACE CALL LP_SET_PLACE
; ¯¥ç âì  âਡã⮢ ; ¯¥ç âì  âਡã⮢
LD E,COLORS.INC.RED LD E,COLORS.INC.RED
;LD BC,#0E * 256 + BIOS.LP_PRINT_ATR
;RST_to_BIOS_18
LD B,#0E LD B,#0E
CALL LP_PRINT_ATR CALL LP_PRINT_ATR
@ -821,49 +812,17 @@ SetTime:
LD BC,#050E ;yx. ¤«¨­  ¨ ¢ëá®â  «¨­¨¨ LD BC,#050E ;yx. ¤«¨­  ¨ ¢ëá®â  «¨­¨¨
CALL PBORDER 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 CALL KEY
xor a xor a
ld hl,#050E ld hl,#050E
ld de,#0C20 ld de,#0C20
ld ix,memBUFFER.Shared ld ix,memBUFFER.Shared
;ld c,BIOS.WIN_RESTORE
;JP_to_BIOS
;RET
JP WIN_RESTORE JP WIN_RESTORE
ENDIF ENDIF
setXYpos: setXYpos:
JP RESCREEN 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: setVsinc:
ld a,@CMOS.Cell.ScreenSET ld a,@CMOS.Cell.ScreenSET
call READCMS call READCMS
@ -894,15 +853,11 @@ setInt: ld a,@CMOS.Cell.ScreenSET
SRA A SRA A
SRA A SRA A
SRA A ; byte %00xx0000 --> %000000xx SRA A ; byte %00xx0000 --> %000000xx
.set: ;ld c,BIOS.FN_SYNC .set: CALL FN_SYNC
;RST_to_BIOS_18
CALL FN_SYNC
LD IX,win_descriptor.tab80x32 LD IX,win_descriptor.tab80x32
LD HL,#0000 LD HL,#0000
LD E,1 LD E,1
;LD C,BIOS.WIN_OPEN
;RST_to_BIOS
CALL WIN_OPEN CALL WIN_OPEN
ld a,(ITEM) ld a,(ITEM)
@ -1095,66 +1050,66 @@ CMOSARE:
DB TURBON+SPRIN ;X1B - HARDARE CONF DB TURBON+SPRIN ;X1B - HARDARE CONF
DB BAS128 ;X1C - RESET MODE DB BAS128 ;X1C - RESET MODE
DB REBOOTM ;X1D - REBOOT MSG, HDD W/P DB REBOOTM ;X1D - REBOOT MSG, HDD W/P
DB %00000000 ;X1E - TRDOS DB %0000'0000 ;X1E - TRDOS
DB %01110111 ;X1F - SCREEN POSITION DB %0111'0111 ;X1F - SCREEN POSITION
DB HD1AUTO+HD2AUTO ;X20 - Secondary HDD's DB HD1AUTO+HD2AUTO ;X20 - Secondary HDD's
DB %00000000 ;X21 DB %0000'0000 ;X21
DB %00000000 ;X22 DB %0000'0000 ;X22
DB %00000000 ;X23 DB %0000'0000 ;X23
DB %00000000 ;X24 DB %0000'0000 ;X24
DB %00000000 ;X25 DB %0000'0000 ;X25
DB %00000000 ;X26 DB %0000'0000 ;X26
DB %00000000 ;X27 DB %0000'0000 ;X27
DB %00000000 ;X28 DB %0000'0000 ;X28
DB %00000000 ;X29 DB %0000'0000 ;X29
DB %00000000 ;X2A DB %0000'0000 ;X2A
DB %00000000 ;X2B DB %0000'0000 ;X2B
DB %00000000 ;X2C DB %0000'0000 ;X2C
DB %00000000 ;X2D DB %0000'0000 ;X2D
DB %00000000 ;X2E DB %0000'0000 ;X2E
DB %00000000 ;X2F DB %0000'0000 ;X2F
DB %00000000 ;X30 DB %0000'0000 ;X30
DB %00000000 ;X31 DB %0000'0000 ;X31
DB #20 ;X32 - CENTURY DB #20 ;X32 - CENTURY
DB %00000000 ;X33 DB %0000'0000 ;X33
DB %00000000 ;X34 DB %0000'0000 ;X34
DB %00000000 ;X35 DB %0000'0000 ;X35
DB %00000000 ;X36 DB %0000'0000 ;X36
DB %00000000 ;X37 DB %0000'0000 ;X37
DB %00000000 ;X38 DB %0000'0000 ;X38
DB %00000000 ;X39 DB %0000'0000 ;X39
DB %00000000 ;X3A DB %0000'0000 ;X3A
DB %00000000 ;X3B DB %0000'0000 ;X3B
DB %00000000 ;X3C DB %0000'0000 ;X3C
DB %00000000 ;X3D DB %0000'0000 ;X3D
DB %00000000 ;X3E DB %0000'0000 ;X3E
DB %00000000 ;X3F - CHECKSUM DB %0000'0000 ;X3F - CHECKSUM
BLOCK #100 - low $ ; ¤®¡¨¢ª  CMOSARE ¤® à §¬¥à  ¢ 256 ¡ ©â®¢ BLOCK #100 - low $ ; ¤®¡¨¢ª  CMOSARE ¤® à §¬¥à  ¢ 256 ¡ ©â®¢
;DONT MOVE !!! ADDRESS ;DONT MOVE !!! ADDRESS
; !TODO ¢áñ ¯à ¢¨«ì­®? ; !TODO ¢áñ ¯à ¢¨«ì­®?
;REGISTER #0E ;REGISTER #0E
; %10000000 - MEMORY TEST ; %1000'0000 - MEMORY TEST
; %01000000 - SAVE RAM DISKS ; %0100'0000 - SAVE RAM DISKS
; %00100000 - UPDATE BIOS ; %0010'0000 - UPDATE BIOS
; %00011000 - START DELAY ; %0001'1000 - START DELAY
; %00000100 - LANGUAGE ; %0000'0100 - LANGUAGE
; %00000010 - NOT USED ; %0000'0010 - NOT USED
; %00000001 - QUICK START ; %0000'0001 - QUICK START
;REGISTER #0F ;REGISTER #0F
; %10000000 - TYPEMATIC ON/OFF ; %1000'0000 - TYPEMATIC ON/OFF
; %01100000 - TYPEMATIC DELAY 00-250, 01-500, 10-750, 11-1000 ; %0110'0000 - TYPEMATIC DELAY 00-250, 01-500, 10-750, 11-1000
; %00011111 - TYPEMATIC RATE ; %0001'1111 - TYPEMATIC RATE
; 0-6, 1-8, 2-10, 3-12, 4-15, 5-20, 6-24, 7-30 ; 0-6, 1-8, 2-10, 3-12, 4-15, 5-20, 6-24, 7-30
;REGISTER #10 ;REGISTER #10
; %00000111 - SYSTEM DISK ; %0000'0111 - SYSTEM DISK
; %01110000 - ALT SYSTEM DISK ; %0111'0000 - ALT SYSTEM DISK
;REGISTER #11 ;REGISTER #11
; %00000011 - FDD FIRST 720 / 1.44 / NONE ; %0000'0011 - FDD FIRST 720 / 1.44 / NONE
; %00001100 - FDD SECOND ; %0000'1100 - FDD SECOND
; %00110000 - IDE Primary MASTER AUTO / SETUP / DISABLED ; %0011'0000 - IDE Primary MASTER AUTO / SETUP / DISABLED
; %11000000 - IDE Primary SLAVE -----//------ ; %1100'0000 - IDE Primary SLAVE -----//------
;REGISTER #12 - CYLINDERS (MASTER) ;REGISTER #12 - CYLINDERS (MASTER)
;REGISTER #14 - HEADS (MASTER) ;REGISTER #14 - HEADS (MASTER)
;REGISTER #15 - SECTORS (MASTER) ;REGISTER #15 - SECTORS (MASTER)
@ -1162,19 +1117,19 @@ CMOSARE:
;REGISTER #18 - HEADS (SLAVE) ;REGISTER #18 - HEADS (SLAVE)
;REGISTER #19 - SECTORS (SLAVE) ;REGISTER #19 - SECTORS (SLAVE)
;REGISTER #1A ;REGISTER #1A
; %00001111 - COLOR STYLE ; %0000'1111 - COLOR STYLE
; %00110000 - Frame Int (Default/Pentagon/Scorpion/Original) ; %0011'0000 - Frame Int (Default/Pentagon/Scorpion/Original)
; %11000000 - Screen V-Sinc (Default/312 lines 50 HZ/320 Lines 49 Hz) ; %1100'0000 - Screen V-Sinc (Default/312 lines 50 HZ/320 Lines 49 Hz)
;REGISTER #1B - HARDWARE CONFIGURATION ;REGISTER #1B - HARDWARE CONFIGURATION
; %00000001 - TURBO MODE (D0..D3 - 6 OR 7) ; %0000'0001 - TURBO MODE (D0..D3 - 6 OR 7)
; %00000010 - TURBO EXCHANGE ON/OFF - 1 ; %0000'0010 - TURBO EXCHANGE ON/OFF - 1
; %00000100 - PORT EXCHANGE ON/OFF - 1 ; %0000'0100 - PORT EXCHANGE ON/OFF - 1
; %00011000 - COMPUTER ; %0001'1000 - COMPUTER
; 0-SPRINTER ; 0-SPRINTER
; 1-SPECTRUM 256 ; 1-SPECTRUM 256
; 2-PENTAGON 128 ; 2-PENTAGON 128
; 3-OTHER ; 3-OTHER
; %11100000 - RESERVED ; %1110'0000 - RESERVED
;REGISTER #1C - RESET MODE ;REGISTER #1C - RESET MODE
; 0-RESET 128 Basic ; 0-RESET 128 Basic
; 1-RESET 48 Basic & 128 mem ; 1-RESET 48 Basic & 128 mem
@ -1183,19 +1138,19 @@ CMOSARE:
; 4-RESET TR-DOS & 48 mem ; 4-RESET TR-DOS & 48 mem
; 5-RESET 48 Basic ; 5-RESET 48 Basic
;REGISTER #1D ;REGISTER #1D
; %00000010 - Reboot message ; %0000'0010 - Reboot message
; %00000001 - HDD Write protect ; %0000'0001 - HDD Write protect
;REGISTER #1E ;REGISTER #1E
; %00000011 - TR DOS A: Default / FDD / HDD / RMD ; %0000'0011 - TR DOS A: Default / FDD / HDD / RMD
; %00001100 - TR DOS B: Default / FDD / HDD / RMD ; %0000'1100 - TR DOS B: Default / FDD / HDD / RMD
; %00110000 - TR DOS C: Default / FDD / HDD / RMD ; %0011'0000 - TR DOS C: Default / FDD / HDD / RMD
; %11000000 - TR DOS D: Default / FDD / HDD / RMD ; %1100'0000 - TR DOS D: Default / FDD / HDD / RMD
;REGISTER #1F ;R06 ;REGISTER #1F ;R06
; %11110000 - X-Screen position ; %1111'0000 - X-Screen position
; %00001111 - Y-Screen position ; %0000'1111 - Y-Screen position
;REGISTER #20 ;REGISTER #20
; %00110000 - IDE Secondary MASTER AUTO / SETUP / DISABLED ; %0011'0000 - IDE Secondary MASTER AUTO / SETUP / DISABLED
; %11000000 - IDE Secondary SLAVE -----//------ ; %1100'0000 - IDE Secondary SLAVE -----//------
; . ; .
; . ; .
;REGISTER #37 - CYLINDERS (MASTER) ;REGISTER #37 - CYLINDERS (MASTER)

View File

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

View File

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

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

View File

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

View File

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