diff --git a/Shared_Includes b/Shared_Includes index 95c15f4..81f727c 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 95c15f46dcd79b9ea7f60eca0011152305fbc366 +Subproject commit 81f727ca6ecd8fcaaac4f4e573fe1fd6578c1efa diff --git a/src/altera/acex/k30/.vscode/settings.json b/src/altera/acex/k30/.vscode/settings.json new file mode 100644 index 0000000..3975b47 --- /dev/null +++ b/src/altera/acex/k30/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "search.useIgnoreFiles": false +} \ No newline at end of file diff --git a/src/bios/BUILD.a80 b/src/bios/BUILD.a80 index ca12ebb..cb60f33 100644 --- a/src/bios/BUILD.a80 +++ b/src/bios/BUILD.a80 @@ -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 diff --git a/src/bios/exp/DCP.ASM b/src/bios/exp/DCP.ASM index 5ab4b24..e0c636b 100644 --- a/src/bios/exp/DCP.ASM +++ b/src/bios/exp/DCP.ASM @@ -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 diff --git a/src/bios/exp/EXP.asm b/src/bios/exp/EXP.asm index 7911f63..5c6665e 100644 --- a/src/bios/exp/EXP.asm +++ b/src/bios/exp/EXP.asm @@ -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 ७ ᯥ㬠 + ;!FIXIT । 㭪 ⥭ ROM-DISK ७ ᯥ㬠 .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 - ࠢ ࠭栬 ) 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 (ROM Extension) -FN1_RET: +; 맮 㭪権 ࠭ 0 (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 diff --git a/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm b/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm index ac36ae1..51db532 100644 --- a/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm +++ b/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm @@ -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 diff --git a/src/bios/exp/FUNC_4x.ASM b/src/bios/exp/FUNC_4x.ASM index 5d4c999..87b740a 100644 --- a/src/bios/exp/FUNC_4x.ASM +++ b/src/bios/exp/FUNC_4x.ASM @@ -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 diff --git a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM index fbeaaf5..7edc90c 100644 --- a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM +++ b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM @@ -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 ᭨, 㬥 ࠭. ᥣ 10. - IF SetFullZXromLoader - DB #46,#47 - ENDIF - DB #FF ; End of the block + ; + 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 diff --git a/src/bios/loader/loader.asm b/src/bios/loader/loader.asm index b7fd045..36fd1f5 100644 --- a/src/bios/loader/loader.asm +++ b/src/bios/loader/loader.asm @@ -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 diff --git a/src/bios/rom/ROM.asm b/src/bios/rom/ROM.asm index ba5a3a2..906bbdf 100644 --- a/src/bios/rom/ROM.asm +++ b/src/bios/rom/ROM.asm @@ -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 ; , - ; 室 - JP SW_ROM_1 ; << 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 ******* -;-----------------------------------------------------------------------; - -;------[ , "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: ; '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 ; , - ; 室 - JR SW_ROM_1 ; << MAIN MENU >> -*/ - ENDIF ;JMP_48: ; LD HL,00h ; JR JP_HL_48 @@ -540,7 +281,7 @@ SW_ROM: ; -;*************************************** +;--------------------------------------- ; _mInfoBLOCK #3FC6-$,#FF ;!FIXIT । म ᯥ㬮 ࠢ 맮 㭪権 ( 㭪権 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 । म ᯥ㬮 ࠢ 맮 㭪権 ( 㭪権 4x 㭪樨 0x) ;--------[ From TR-DOS to HDD part2]-------- _mInfoBLOCK #3FD8-$,#FF TRDOS_HD_CMD: POP AF - SET 6,C ;!FIXIT । म ᯥ㬮 ࠢ 맮 㭪権 ( 㭪権 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 ;======================================= diff --git a/src/bios/rom/SETUP/AUTOIDE.asm b/src/bios/rom/SETUP/AUTOIDE.asm index 0fc571d..8dcc596 100644 --- a/src/bios/rom/SETUP/AUTOIDE.asm +++ b/src/bios/rom/SETUP/AUTOIDE.asm @@ -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 diff --git a/src/bios/rom/SETUP/MAIN.asm b/src/bios/rom/SETUP/MAIN.asm index 1589a63..5411559 100644 --- a/src/bios/rom/SETUP/MAIN.asm +++ b/src/bios/rom/SETUP/MAIN.asm @@ -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 diff --git a/src/bios/rom/SETUP/SETTINGS.asm b/src/bios/rom/SETUP/SETTINGS.asm index 5b91ca0..a687f54 100644 --- a/src/bios/rom/SETUP/SETTINGS.asm +++ b/src/bios/rom/SETUP/SETTINGS.asm @@ -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) diff --git a/src/bios/rom/SETUP/VIDEO_IO.asm b/src/bios/rom/SETUP/VIDEO_IO.asm index ee00b48..d1ead64 100644 --- a/src/bios/rom/SETUP/VIDEO_IO.asm +++ b/src/bios/rom/SETUP/VIDEO_IO.asm @@ -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 ; 砫 ⨭ + LD HL,MAIN_LOGO.Raster ; 砫 ⨭ ; 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 ; diff --git a/src/bios/rom/SETUP/messages.z80 b/src/bios/rom/SETUP/messages.z80 index 337daa4..bdbf085 100644 --- a/src/bios/rom/SETUP/messages.z80 +++ b/src/bios/rom/SETUP/messages.z80 @@ -144,7 +144,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF ; ⨯ ࠬ (ப 祭 ⠫) DB columnNum,lineNum ; ⮫, ப DB paramName ; ࠬ - 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]--------------------[] diff --git a/src/bios/rom/ZX/ZX_FUNC.ASM b/src/bios/rom/ZX/ZX_FUNC.ASM new file mode 100644 index 0000000..45917e5 --- /dev/null +++ b/src/bios/rom/ZX/ZX_FUNC.ASM @@ -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 ; , + ; 室 + JP SW_ROM_1 ; << 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 ******* +;-----------------------------------------------------------------------; + +;------[ , "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: ; '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 +; \ No newline at end of file diff --git a/src/bios/rom/ZX/ZX_MENU.ASM b/src/bios/rom/ZX/ZX_MENU.ASM index 79f5a03..28da5d5 100644 --- a/src/bios/rom/ZX/ZX_MENU.ASM +++ b/src/bios/rom/ZX/ZX_MENU.ASM @@ -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 ; 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 ; \ No newline at end of file diff --git a/src/bios/rom/ZX_MODE.ASM b/src/bios/rom/ZX_MODE.ASM new file mode 100644 index 0000000..f4748f5 --- /dev/null +++ b/src/bios/rom/ZX_MODE.ASM @@ -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 ; 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 +; \ No newline at end of file diff --git a/src/bios/shared/CompMacro.asm b/src/bios/shared/CompMacro.asm index dffa857..de1d242 100644 --- a/src/bios/shared/CompMacro.asm +++ b/src/bios/shared/CompMacro.asm @@ -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 ; , प ਠ 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 +; \ No newline at end of file diff --git a/src/bios/shared/DEFINES.INC b/src/bios/shared/DEFINES.INC index 4e048b8..fe0aa65 100644 --- a/src/bios/shared/DEFINES.INC +++ b/src/bios/shared/DEFINES.INC @@ -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 diff --git a/src/doc/changes.txt b/src/doc/changes.txt index 20e4e05..f9c325b 100644 --- a/src/doc/changes.txt +++ b/src/doc/changes.txt @@ -1,41 +1,51 @@ -!TODO -- / EXP ᮢ⨬ ० ᯥ㬠, ⮣ ᢮ 1 ࠭ -- -| ஢ ᮢ⨬ EXP ᯥ㬮᪨ , ⮣ 㧨 1 ࠭ -- \ , EXP ஥ ᥩ ७ 㠫쭮 㤥 ????? -- ⮬ ᯥ㬠 ⨯, 1-2 ࠭ ᢮ +TODO: +- 㭪 ⠯ "࠭ ࠭ ᯥ㬠 १㧪" +- । 樠樥 ࠭ ᯥ㬠 ࠭ 41 ஢, ࠬ᪮ +- ⮬ ᯥ㬠 ⨯, 1 ࠭ ᢮ - ⠯ ࠭ ஥ HDD 祩 CMOS -- ० ᯥ㬠 롮 Clear RAM ᫥騬 室 CAD - ᠥ, ⮬ 뢠 楤 FullInit ⪨ - , - 直 SIO/PIO, ᫨ --+ ! Setup 㭪 ன ६ +-+ ! Setup 㭪 ன ६ +-+ ࠡ⠭ ⥬ 墠 ࠭  饥 -+ ࠢ ⥪ BLK_TO_RAMD ᪮쪮 楤 ⥭ - -+ ⥯ १ࢨ஢ ० ᯥ㬠 ࠭ ᢮, - 1 -+ ⨢஢ ன IDE -+ 㬥 ன IDE । ᫥⥫쭮 䨧 -+ 롮 㧮筮 IDE ᫥⥫쭮 䨧᪨ -+ ⠭ IDE ண ⢥ ᭮ ୠ⨢ 㧮筮 ᪠ -+ ᤥ 㭨ᠫ 稪 ਬ 1k30 1k50 -+ ࠡ⠭ ⥬ 墠 ࠭  饥 -+ ࠭ Ctrl+Alt+Del -+ ४ 祭 ६ CMOS 䮫 祭, 뢮 ᮮ饭 訡 -+ Setup 롮 ० ࠧ⪨ (--------/Scorpion/Pentagon/Spectrum) -+ Setup 롮 ⨪쭮 ᨭ஭樨 (--------/312 50/320 49) -+ 㧪 RECOVERY ROM-Disk -+ 㧪 ⥬ RAM Disk -+ 宫 ⠭ ⠣ ( ᪮௨), ᫨ CMOS +Done: ++ 㭨ᠫ 稪 ਬ 1k30 1k50 ++ ⨢஢ ன IDE ++ 㬥 ன IDE । ᫥⥫쭮 䨧 ++ 롮 㧮筮 IDE ᫥⥫쭮 䨧᪨ ++ ⠭ IDE ண ⢥ ᭮ ୠ⨢ 㧮筮 ᪠ ++ ࠭ Ctrl+Alt+Del ++ ४ 祭 ६ CMOS 䮫 祭, 뢮 ᮮ饭 訡 ++ Setup 롮 ० ࠧ⪨ (--------/Scorpion/Pentagon/Spectrum) ++ Setup 롮 ⨪쭮 ᨭ஭樨 (--------/312 50/320 49) ++ 㧪 ⥬ RAM Disk ++ ࠢ ⥪ BLK_TO_RAMD ᪮쪮 楤 ⥭ - ++ 㧪 RECOVERY ROM-Disk ++ 宫 ⠭ ⠣ ( ᪮௨), ᫨ CMOS + 㭪 FN_SINC (#F2) 㤠筮 襭 뢠 䫠 CF 室 - ࠢ -+ 㭪 GET_RAMD_NUM -+ ⥫ 樨 㭪 FN_SINC (#F2), bit7 ॣ A ⥯ ⢥砥 ४祭 ண/ ਠ ࠡ 㭪樨 ( ࠭ ᮢ⨬ 묨 ணࠬ) -+ ࠧ ZX-Sprinter ᪠ ० ᯥ㬠 㧪 DSS -+ , ࠧ襭 25664 16 梥⮢ 12872 256 梥⮢ -+ 楤 뢮 ⨯, ⨯ ७ ࠭ -+ ᬥ 몠, ࠧ⪨ ந室 Setup ࠧ -+ ࠢ , ९ ⥪ 室-室 SETUP -+ ࠢ , ⨬஢ 楤, ᢮ 1,5 ࠡ BIOS ६ -+ ࠢ SETUP -+ ᪮쪮 ॢ 客 copy/paste, ࠡ 뫮 ⭮, ⭮, 諨 -+ 㭪 FN_RESET -+ ⥯ 䠪ਭ ))) ++ 㭪 GET_RAMD_NUM ++ ⥫ 樨 㭪 FN_SINC (#F2), bit7 ॣ A ⥯ ⢥砥 ४祭 ண/ + ਠ ࠡ 㭪樨 ( ࠭ ᮢ⨬ 묨 ணࠬ) ++ , ࠧ襭 25664 16 梥⮢ 12872 256 梥⮢ ++ 楤 뢮 ⨯, ⨯ ७ ࠭ ++ 몠, ࠧ⪨ ந室 Setup ࠧ ++ ࠢ SETUP ++ 㭪 FN_RESET ++ 㭪 DCP_CONFIG - 㭪 ࠢ ஬ ⮢ ++ ࠭ 㭪権 4 ++ 㭪樨 5 ७ᥭ 0 8 ࠭ ++ 㭪 樠樨 DCP, ᢮ 4,5 ++ १ࢨ஢ ० ᯥ㬠 ࠭ ᢮, - 1 ++ ࠧ ZX-Sprinter ᪠ ० ᯥ㬠 㧪 DSS ++ ࠭ BIOS ᮢ⨬ ஢묨 ࠧ ᯥ㬠. ⤥ ࠭ ਣ SP_EXP SP_EXP2 + ॡ. ++ ࠢ ० ᯥ㬠. 롮 Clear RAM ᫥騬 室 CAD ᠫ, + ⮬ 뢠 楤 FullInit ⪨ . ⪮ 뢠 墠 ++ ࠢ , ⨬஢ 楤, ᢮ 1,5 ࠡ BIOS ६ ++ ᪮쪮 ॢ 客 copy/paste, ࠡ 뫮 ⭮, ⭮, 諨 ++ ࠢ , ९ ⥪ 室-室 SETUP ++ ⥯ 䠪ਭ ))) ++ ᥣ ᯮ 㦥... +==================================================================================================================================================================================================================== ᠭ 㭪樨 FN_SINC (#F2) LD A,sync_mode ; ० ᨭ஭樨 @@ -106,6 +116,7 @@ FN_RESET: ; ; BIOS ; + ᠭ 㭪樨 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 ; + ᠭ 㭪樨 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 㭪 뢠/뢠 ⥫ . +; \ No newline at end of file