diff --git a/BIN/CB_IMAGE.IMG b/BIN/CB_IMAGE.IMG new file mode 100644 index 0000000..e76c780 Binary files /dev/null and b/BIN/CB_IMAGE.IMG differ diff --git a/BUILD_IMAGE.A80 b/BUILD_IMAGE.A80 new file mode 100644 index 0000000..c683a1c --- /dev/null +++ b/BUILD_IMAGE.A80 @@ -0,0 +1,34 @@ + INCLUDE 'shared/defines.inc' +;INCLUDE 'Crazy BIOS/shared/CompMacro.asm' +; +;[--------------------------------------------------------------------------] + MACRO Set_Block text, blk_addr +.tmp equ $ + BLOCK blk_addr-.tmp,#FF + DISPLAY text, /H, $-.tmp + ENDM +;[--------------------------------------------------------------------------] + ORG 0 + DISPLAY '[ Building CRAZY BLASTER IMAGE ]' + OUTPUT 'Build/CRAZY_BLASTER_IMAGE.IMG' +;[--------------------------------------------------------------------------] + INCBIN CRAZY_BLASTER_IMG,0,#106000 +BIOS_PART_START: + INCBIN BIOS_PART_RAW +BIOS_PART_SIZE EQU $ - BIOS_PART_START + INCBIN CRAZY_BLASTER_IMG,#106000 + BIOS_PART_SIZE + +; DISPLAY "vROM Disk with Crazy Blaster DSS: 1x4000..2x0000" +; Set_Block 'Empty space: ', #10000 + +; ;PAGE #4B LOGO +; INCBIN 'Build/Bin/LOGO.BIN' +; Set_Block 'LOGO free space: ', #14000 +; ;DEBUG +; IF DEBUG +; INCLUDE './crazy/debug.asm' +; Set_Block 'LOGO free space: ', #14200 +; ENDIF +;[--------------------------------------------------------------------------] + OUTEND +;[--------------------------------------------------------------------------] \ No newline at end of file diff --git a/Crazy BIOS/BUILD.a80 b/Crazy BIOS/BUILD.a80 index 0875bcb..64fefcc 100644 --- a/Crazy BIOS/BUILD.a80 +++ b/Crazy BIOS/BUILD.a80 @@ -12,7 +12,7 @@ ;[--------------------------------------------------------------------------] ORG 0 DISPLAY '[ Building CB_IMG file ]' - OUTPUT 'Build/CB_BIOS.IMG' + OUTPUT BIOS_PART_RAW ;[--------------------------------------------------------------------------] ; Zero Sector SET_IMG_LABEL diff --git a/Crazy BIOS/exp/DCP.ASM b/Crazy BIOS/exp/DCP.ASM index 84675cb..27fd820 100644 --- a/Crazy BIOS/exp/DCP.ASM +++ b/Crazy BIOS/exp/DCP.ASM @@ -617,9 +617,9 @@ SET_PORTS: LD C,SLOT2 OUT (C),A LD A,L - LD (#8000),A ; вернуть порт + LD (#8400),A ; вернуть порт LD A,H - LD (#8200),A ; вернуть порт + LD (#8600),A ; вернуть порт ; LD A,SYS_PAGE OUT (C),A @@ -627,7 +627,7 @@ SET_PORTS: OUT (C),D ; вернуть страницу OUT (CNF_PORT.vBIOS),A ; - CALL DOS_OFF + ;CALL DOS_OFF ; ;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23 BIT 2,E @@ -645,7 +645,7 @@ SET_PORTS: PUSH AF POP DE DI - CALL DOS_ON + ; CALL DOS_ON ; LD A,CNF_PORT.CNF_0 + ROM.BIOS OUT (CNF_PORT.vBIOS),A @@ -656,14 +656,14 @@ SET_PORTS: LD A,DCP_PAGE ; установить новую OUT (C),A ; - LD A,(#8000) ; сохранить то что было + LD A,(#8400) ; сохранить то что было LD L,A - LD A,(#8200) + LD A,(#8600) LD H,A EX AF,AF' ; страница ; - LD (#8000),A ; установить внутренний порт - LD (#8200),A + LD (#8400),A ; установить внутренний порт + LD (#8600),A OUT (C),D ; вернуть страницу RET ;-----------------------------------------------------------------------; diff --git a/Crazy BIOS/shared/CB_SYS.IMG b/Crazy BIOS/shared/CB_SYS.IMG deleted file mode 100755 index fde1ead..0000000 Binary files a/Crazy BIOS/shared/CB_SYS.IMG and /dev/null differ diff --git a/Crazy BIOS/shared/DEFINES.INC b/Crazy BIOS/shared/DEFINES.INC index 042582d..25babf4 100644 --- a/Crazy BIOS/shared/DEFINES.INC +++ b/Crazy BIOS/shared/DEFINES.INC @@ -1,3 +1,5 @@ +;========================[ Files Used ]=========================; + INCLUDE ;=======================[All shared EQUs]=======================; BETA_BUILD EQU 6 ; добавляет строку и сообщение о тестовой сборке на стартовом экране ;======================[All shared defines]=====================; diff --git a/Crazy BIOS/shared/cb_boot.IMG b/Crazy BIOS/shared/cb_boot.IMG index e1abbc1..f55cc8c 100755 Binary files a/Crazy BIOS/shared/cb_boot.IMG and b/Crazy BIOS/shared/cb_boot.IMG differ diff --git a/Crazy Estex DSS/BOOT/boot.asm b/Crazy Estex DSS/BOOT/boot.asm index 12a388e..302d01a 100644 --- a/Crazy Estex DSS/BOOT/boot.asm +++ b/Crazy Estex DSS/BOOT/boot.asm @@ -634,9 +634,10 @@ messages: db 0 db "\r\nBoot and System files Installer v" ;0 db major_version + '0','.' db (minor_version / 10) + '0',(minor_version % 10) + '0','.' - db "\r\nBuild date ",SYS_BUILD_DATE + db "\r\nBuild date ",SYS_BUILD_DATE db "\r\nCopyright (c) 2006 Vasil Ivanov." db "\r\nCopyright (c) 2023-2024 Sprinter Team." + db "\r\n\nWarning! This version installing Crazy Blaster boot!" db "\r\n\n",0 ; db "System successfully installed on disk " ;1 diff --git a/Crazy Estex DSS/DSS/DRV-MAIN.ASM b/Crazy Estex DSS/DSS/DRV-MAIN.ASM index ecf6463..c6211b6 100644 --- a/Crazy Estex DSS/DSS/DRV-MAIN.ASM +++ b/Crazy Estex DSS/DSS/DRV-MAIN.ASM @@ -154,7 +154,7 @@ RST_30: JP MOUSE_DRV.API RST_38_DRV: JP .Portal BLOCK RST_38_IM1.Portal - $,0 .Portal: PUSH AF - LD A,(DRV_PAGE.MAIN_PAGE_NUMBER) + LD A,(DRV_PAGE.MAIN_PAGE_NUMBER); rdlow-ok OUT (SLOT0),A POP AF EI @@ -228,7 +228,7 @@ DISPATCH: LD (PORTAL.out_DRV.ADCALL),HL INITDVC_RET_DRIVE: CALL INITDVC - LD A,(DRV_PAGE.LDRIVE) + LD A,(DRV_PAGE.LDRIVE); rdlow-ok AND A RET diff --git a/Crazy Estex DSS/DSS/DSS-MAIN.ASM b/Crazy Estex DSS/DSS/DSS-MAIN.ASM index c28b3ba..cf98142 100644 --- a/Crazy Estex DSS/DSS/DSS-MAIN.ASM +++ b/Crazy Estex DSS/DSS/DSS-MAIN.ASM @@ -146,11 +146,11 @@ RST_38_IM1: JP .Handler RETI ; .Portal: PUSH AF - LD A,(RST_0x30.drv_page) + LD A,(RST_0x30.drv_page); rdlow-ok OUT (SLOT0),A ;POP AF PUSH HL - LD HL,(RST_38_IM1+1) + LD HL,(RST_38_IM1+1); rdlow-ok XOR A CP H JR NZ,.error diff --git a/Crazy Estex DSS/DSS/KEYINTER.ASM b/Crazy Estex DSS/DSS/KEYINTER.ASM index 18535e4..bfcc165 100644 --- a/Crazy Estex DSS/DSS/KEYINTER.ASM +++ b/Crazy Estex DSS/DSS/KEYINTER.ASM @@ -950,7 +950,7 @@ K_SETUP.ERROR: LD A,DSS_Error.sys.INVALID_ACCESS ; K_SND_R: DJNZ K_SND_W ; subfunc 1 - LD A,(SOUND_K) + LD A,(SOUND_K); rdlow-ok AND A RET ; subfunc 2 diff --git a/Crazy Estex DSS/DSS/drivers/media/ReScanDRV.ASM b/Crazy Estex DSS/DSS/drivers/media/ReScanDRV.ASM index b2eea94..81b4b4d 100644 --- a/Crazy Estex DSS/DSS/drivers/media/ReScanDRV.ASM +++ b/Crazy Estex DSS/DSS/drivers/media/ReScanDRV.ASM @@ -128,7 +128,7 @@ ReScanDRV: ;7. выход ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; - LD A,(DRV_PAGE.LDRIVE) + LD A,(DRV_PAGE.LDRIVE) ; rdlow-ok AND A RET ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; @@ -435,7 +435,7 @@ KILL_FM:; LD C,A ; втыкаем страницу ядра с таблицей файловых манипуляторов PUSH BC - LD A,(PORTAL.out_DRV.RETBANK) + LD A,(PORTAL.out_DRV.RETBANK) ; rdlow-ok LD B,A LD C,SLOT3 IN A,(SLOT3) diff --git a/Crazy Estex DSS/RUN/Image.sh b/Crazy Estex DSS/RUN/Image.sh deleted file mode 100755 index 5f16115..0000000 --- a/Crazy Estex DSS/RUN/Image.sh +++ /dev/null @@ -1,24 +0,0 @@ -#! /bin/zsh -sp_disk="$(hdiutil attach -imagekey diskimage-class=CRawDiskImage /Users/tolik/Documents/MAME/IMG/test_2g.img | grep -m 1 -o ^'/dev/disk[[:digit:]]\+')" -((ERROR_LEVEL +=$?)) -cp BUILD/DSS/* /VOLUMES/TMP_MAME/DSS/ -((ERROR_LEVEL +=$?)) -rm -r /Volumes/TMP_MAME/.* -rm -r /Volumes/TMP_MAME/DSS/.* -sp_disk="$(hdiutil detach "${sp_disk}")" -let "ERROR_LEVEL +=$?" -if [[ "$ERROR_LEVEL" == "0" ]]; then -echo "\nALL DONE!" >&2 -#exec "/Applications/CrossOver.app/Contents/SharedSupport/CrossOver/bin/wine" --bottle "ZXMAK2" --wait-children --check --start "C:/users/crossover/AppData/Roaming/Microsoft/Windows/Start Menu/ZXMAK2.lnk" -exit -else -echo "\nError!!!" >&2 -fi -#sp_disk="$(hdiutil attach -imagekey diskimage-class=CRawDiskImage /Users/tolik/Library/Application\ Support/CrossOver/Bottles/ZXMAK2/drive_c/ZXMAK2/HDD/sp_disk1.vhd | grep -m 1 -o ^'/dev/disk[[:digit:]]\+')" -#sp_disk="$(hdiutil attach -imagekey diskimage-class=CRawDiskImage /Users/tolik/Library/Application\ Support/CrossOver/Bottles/ZXMAK2/drive_c/sp_disk2.img | grep -m 1 -o ^'/dev/disk[[:digit:]]\+')" -#floptool identify dss_1_62_100.hfe -#qemu-img convert -f raw -O vpc test.img test.vhd -#/Users/tolik/Library/Application\ Support/CrossOver/Bottles/ZXMAK2/drive_c/test_2g.img -#sp_disk="$(hdiutil attach -imagekey diskimage-class=CRawDiskImage /Users/tolik/Library/Application\ Support/CrossOver/Bottles/ZXMAK2/drive_c/ZXMAK2/HDD/HDD256.vhd | grep -m 1 -o ^'/dev/disk[[:digit:]]\+')" -# ls -A -F -G -# rm -r .fseventsd \ No newline at end of file diff --git a/Crazy Estex DSS/SHELL/Messages/main_txt.asm b/Crazy Estex DSS/SHELL/Messages/main_txt.asm index 4237a7e..0c80e61 100644 --- a/Crazy Estex DSS/SHELL/Messages/main_txt.asm +++ b/Crazy Estex DSS/SHELL/Messages/main_txt.asm @@ -36,7 +36,7 @@ MAIN_MSG: stN .DIR_1_ : db "Volume in drive %1 %6 %7\r\n" db "Volume Serial Number is %2, file sistem is %8\r\n" DZ "\r\nDirectory of %3\r\n\n" - stN .VERS_ : DZ "Estex DSS version %1. Shell version %2.\r\n" ;R13 + stN .VERS_ : DZ "Estex DSS version %1 (Crazy Blaster Edition). Shell version %2.\r\n" ;R13 stN .DATE_ : DZ "Current date: %1, %2\r\n" ; [x] вывод дня недели 26/01/2023 stN .TIME_ : DZ "Current time: %1\r\n" stN .PAUSE_ : DZ "Press any key to continue . . .\r" diff --git a/Crazy Estex DSS/SHELL/SHELL.ASM b/Crazy Estex DSS/SHELL/SHELL.ASM index 8908e4f..459964a 100644 --- a/Crazy Estex DSS/SHELL/SHELL.ASM +++ b/Crazy Estex DSS/SHELL/SHELL.ASM @@ -41,9 +41,9 @@ includelua 'Shared_includes/lua/Functions.lua' include 'shared_includes/constants/bios_equ.inc' include 'shared_includes/constants/dss_equ.inc' - include 'SHELL/version.inc' + include 'crazy estex dss/SHELL/version.inc' include 'shared_includes/structures/FileSystem.inc' - include 'SHELL/structures.inc' + include 'crazy estex dss/SHELL/structures.inc' ; ; Program EQU section ;---------------------------------------------------------------------[] diff --git a/Crazy Estex DSS/SHELL/version.inc b/Crazy Estex DSS/SHELL/version.inc index d78a3bc..d2f9c65 100644 --- a/Crazy Estex DSS/SHELL/version.inc +++ b/Crazy Estex DSS/SHELL/version.inc @@ -1,9 +1,11 @@ + DEFINE INCREASE_BUILD 0 + ;------------------[ Достаём текущую дату и BUILD++ ]-----------------[] LUA PASS1 - Console_build = increase_build("./SHELL/build.txt") - if Console_build > 999 then - Console_build = 999 - print("WARNING! Build > 999","WARNING! Build > 999","WARNING! Build > 999","WARNING! Build > 999","\aWARNING! Build > 999\a") + if sj.get_define("INCREASE_BUILD") > "0" then + Console_build = increase_build("./crazy estex dss/SHELL/build.txt") + else + Console_build = get_build("./crazy estex dss/SHELL/build.txt") end ENDLUA LUA ALLPASS diff --git a/Crazy Updater/UPDATER.ASM b/Crazy Updater/UPDATER.ASM index 766174b..216db76 100644 --- a/Crazy Updater/UPDATER.ASM +++ b/Crazy Updater/UPDATER.ASM @@ -19,7 +19,7 @@ DEFINE _dLogingMode 0 ; DEFINE _dDEBUG 0 ; компиляция для дебага DEFINE NeedSafePort_Y 0 ; - DEFINE _dEMULATOR 1 ; 0 - hardware, 1 - "MAME", 2 - "ZXMAK" + DEFINE _dEMULATOR 0 ; 0 - hardware, 1 - "MAME", 2 - "ZXMAK" ;---------------------------------------; ; For _dLogingMode 1 MACRO SHOW_STEP colors @@ -32,20 +32,6 @@ POP HL ENDIF ENDM -; For _dLogingMode 1 -; Debug_Steps: -; ._1 EQU COLORS.CGA.BORDER.BLACK*256 + COLORS.CGA.BORDER.BLUE -; ._2 EQU COLORS.CGA.BORDER.BLACK*256 + COLORS.CGA.BORDER.GREEN -; ._3 EQU COLORS.CGA.BORDER.BLACK*256 + COLORS.CGA.BORDER.CYAN -; ._4 EQU COLORS.CGA.BORDER.BLUE*256 + COLORS.CGA.BORDER.GREEN -; ._5 EQU COLORS.CGA.BORDER.BLUE*256 + COLORS.CGA.BORDER.CYAN -; ._6 EQU COLORS.CGA.BORDER.GREEN*256 + COLORS.CGA.BORDER.CYAN - -;======================================= -; IF _dDEBUG -; DEVICE SPRINTER -; ENDIF -;======================================= ;------------[LUA functions]------------; INCLUDELUA 'Shared_Includes/LUA/Functions.LUA' @@ -141,15 +127,7 @@ ROM_BITSTREAM: ;[] ============================================== [] ORG org_addr ; - - -; IF _dDEBUG -; OUTPUT "Build/Debug.bin" -; ENDIF - -Flasher_Start: -; IF _dIs_Updater - IN A,(SLOT0) +Flasher_Start: IN A,(SLOT0) LD (SET_ROM_MODE.Normal.slot0),A LD A,(IX-3) LD (FILE_HANDLE),A @@ -159,9 +137,26 @@ Flasher_Start: LD C,Dss.Cursor RST ToDSS LD (cursor_restore),DE - - ; TEST CHIP - CALL SET_ROM_MODE.Flash + ; Читаем INI + LD HL,NUMBER_COPY.INI_FILE + LD A,Dss.Open.R + LD C,Dss.Open + RST ToDSS + JR C,TEST_CHIP + ; + PUSH AF + LD HL,0 + LD IX,0 + LD BC,Dss.Move_FP.FrStart + RST ToDSS + POP AF + ; + LD HL,NUMBER_COPY.BRD_ID + LD DE,NUMBER_COPY.BRD_ID.Size + LD C,Dss.Read + RST ToDSS + ; +TEST_CHIP: CALL SET_ROM_MODE.Flash LD (SAVE_DCP_PORT),HL ; CALL TEST_ROM_CHIP @@ -202,44 +197,7 @@ Flasher_Start: RST ToDSS CALL START_PIC - -; достаём номер версии биоса пользователя и проверяем можно ли его -; обновлять отдельно от битстрима - LD HL,0 ; буфер для строки ID биоса пихаем в ПЗУ, потому что не нужна - LD C,BIOS.FN_VERSION - RST ToBIOS - JR C,.too_old_bios - ; - LD HL,-#0305 ; проверка на биос выше 3.04 - ADD HL,DE - JR NC,.not_305 - ; если версия биоса > 3.04, то номер битстрима получаем иначе - PUSH DE ; на случай ошибки - LD HL,0 ; буфер для строки в ПЗУ - не нужен - LD BC,BIOS.FN_CRIPT.AcexAndBitstream - RST ToBIOS - JR NC,.is_new_bios - POP DE - JR .not_305 -.is_old_bios: ; -.is_new_bios: LD HL,-5 ; такой результат (4) будет на старой тестовой 3.05 в функции FN_CRIPT до добавления в неё версии bitstream - ADD HL,DE - POP HL - JR C,.is_super_new_bios - EX DE,HL -.is_super_new_bios:; -.not_305: LD (SAVE_BITSTREAM.romCNFversion),DE - LD HL,MinBiosVerForUserBitstream - XOR A - SBC HL,DE - LD HL,START_MSG.afterPICyes_R - JR C,.print_next_msg - -.too_old_bios: LD HL,0 - LD (.skip_r_key),HL ; mem patch - NOP : NOP вместо CP 'r' LD HL,START_MSG.afterPICno_R - -.print_next_msg: LD C,Dss.PChars RST ToDSS @@ -254,9 +212,6 @@ Flasher_Start: CP 'y' JR Z,.next -.skip_r_key: CP 'r' - JR Z,.flash_only_bios - CP 'p' JP NZ,Program_exit.no_errors @@ -273,43 +228,23 @@ Flasher_Start: LD HL,START_MSG.PauseON JR NZ,.showPauseMSG LD HL,START_MSG.PauseOFF - + ; .showPauseMSG: LD C,Dss.PChars RST ToDSS - + ; LD DE,(cursor_restore) LD C,Dss.Locate RST ToDSS JR .loop -;.exit: call Program_exit.no_errors - -.flash_only_bios: - LD A,#FF - LD (ONLY_BIOS),A - - ; ELSE - ; LD HL,BEGIN_MSG - ; LD C,Dss.PChars - ; RST ToDSS - ; ENDIF - + ; .next: XOR A OUT (RGMOD),A DI - - ;+++++++++++++++++++++++++++++++++++++++ - ; IFN dIs_Updater - ; CALL READ_FROM_FILE - ; ELSE - CALL BUILD_FIRMWARE LD A,(FILE_HANDLE) LD C,Dss.Close RST ToDSS - ;DI -; JP C,Program_exit.file -; ENDIF ;+++++++++++++++++++++++++++++++++++++++ DI @@ -319,13 +254,6 @@ Flasher_Start: REWRITE: IN A,(SLOT1) LD (SV_PG1),A - ; !TODO Сделать сообщение об ошибке и пытаться дальше перезаписывать - ;LD A,(COUNT_ALL) - ;INC A - ;LD (COUNT_ALL),A - ;CP 6 ; 5 попыток - ;JR NZ,CONTINUE - ; ;-----------[PAUSE for reROM]-----------; .pause+1: LD A,0 AND A @@ -343,190 +271,53 @@ REWRITE: OUT (BorderColor),A ;---------------------------------------; JR CONTINUE - ; !TODO Сделать сообщение об ошибке и пытаться дальше перезаписывать - ; DI - ; HALT -;*********************************************************************** - + ; NUMBER_COPY: IN A,(SLOT3) EX AF,AF' LD A,#18 ;!HARDCODE OUT (SLOT3),A - - - LD A,SYS_PORT.CNF_0 - OUT (SYS_PORT.ROM),A ; на всякий случай - - LD BC,256+BIOS.FN_CRIPT - RST ToBIOS_18 - JP C,Program_exit.no_BoardID - - LD (#C000+BoardNumOffsets.Start),BC + ; + ; + LD HL,(.BRD_ID.Start) + LD (#C000+BoardNumOffsets.Start),HL + LD HL,(.BRD_ID.Number) LD (#C000+BoardNumOffsets.Number),HL - LD (#C000+BoardNumOffsets.End),DE + LD HL,(.BRD_ID.End) + LD (#C000+BoardNumOffsets.End),HL + LD A,(.BRD_ID.Type) LD (#C000+BoardNumOffsets.Type),A - + ; LD A,#10 ;!HARDCODE OUT (SLOT3),A LD A,(altera_chip) LD (#C000+expBIOS_Vars.msgStrings.str_ACEX_MODEL),A LD (#C000+expBIOS_Vars.msgRusStrings.str_ACEX_MODEL),A - - + ; EX AF,AF' OUT (SLOT3),A - RET + ; +.BRD_ID EQU $ +.BRD_ID.Start: DW #5283 +.BRD_ID.Number: DW #0000 +.BRD_ID.End: DW #47E8 +.BRD_ID.Type: DB #00 +.AcexType: DB ROM_BITSTREAM.K30 +.BRD_ID.Size EQU $-.BRD_ID +.INI_FILE: DZ '\flasher\board_id.ini' -CONTINUE: - CALL SET_ROM_MODE.Flash - -; di -; ld bc,#FFEE -; ld a,3 ; Z84.REG.Misc_Ctrl 3-rd register - boundaries -; out (c),a ; Z84.SYS.Control -; inc c -; ld a,1 ; cs0 enable, cs1 disable, 32-Bit CRC disable, reset output enable, Clock Divide-by-two -; out (c),a ; Z84.SYS.Data - -; dec c -; ld a,2 ; Z84.REG.CS_Boundary -; out (c),a ; Z84.SYS.Control -; inc c -; ld a,#F3 ; boundaries rom = 0000.3fff -; out (c),a ; Z84.SYS.Data -; ;------------------------------- -; LD BC,#1FFD -; XOR A -; OUT (C),A - -; ld a,#FF -; out (SLOT0),a -; ld a,#FE -; ld i,a ; убрать лишние обращения... - -; ;------------------------------- -; ;!FIXIT remove -; LD BC,ACEX.ROM_RG*256 + ACEX.ROM_RG -; CALL SET_DCP_PORT -; LD (SAVE_DCP_PORT),HL - -// in a,(SLOT1) -// push af -// ld a,DCP_PAGE -// out (SLOT1),a ; set dcp page -// LD A,(#4400) -// LD (SAVE_DCP_PORT.write),A -// LD A,(#4600) -// LD (SAVE_DCP_PORT.read),A -// ld a,ACEX.ROM_RG -// ld (#4400),a ; open for wr -// ld (#4600),a ; open for rd -// pop af -// out (SLOT1),a ; close SLOT1 - +CONTINUE: CALL SET_ROM_MODE.Flash LD A,COLORS.CGA.BORDER.BLACK OUT (BorderColor),A - ;LD A,SYS_PORT.CNF_0 - ;OUT (SYS_PORT.ON),A ; CNF0 - -; CALL SAVE_ROM_DATA - - - ;LD B,10 -TST_R: ;PUSH BC - - ; CALL READ_ID_ROM - ; EX DE,HL +TST_R: .jp+1: LD HL,0 JP (HL) - ; LD HL,ROM_CHIP.SST39SF020A - ; AND A - ; SBC HL,DE - ; JP Z,SST39SF020 - - ; LD HL,#76BF ; !HARDCODE - ; AND A - ; SBC HL,DE - ; JP Z,SST39SF020 - - ; LD HL,#10BF ; !HARDCODE - ; AND A - ; SBC HL,DE - ; JP Z,SST29EE020 - - ; LD HL,#24BF ; !HARDCODE - ; AND A - ; SBC HL,DE - ; JP Z,SST29EE020 - - ; LD HL,#45DA ; !HARDCODE - ; AND A - ; SBC HL,DE - ; JP Z,W29C020 - - ;POP BC - ;DJNZ TST_R ITs_Unknown_Chip: CALL SET_ROM_MODE.Normal JP Program_exit.unsupported_chip -;----------------------------------------------------------------------; - /* - LD (.SP),SP - IN A,(SLOT3) - EX AF,AF' - LD A,Spec_Page - OUT (SLOT3),A - -.slot0+1: LD A,0 - LD (Spec_Page.page_0),A - IN A,(SLOT1) - LD (Spec_Page.page_1),A - IN A,(SLOT2) - LD (Spec_Page.page_2),A - EX AF,AF' - LD (Spec_Page.page_3),A - - LD HL,.restart - LD (Spec_Page.RET_addr),HL - - ; Set Spec_Page - LD A,DCP_PAGE - OUT (SLOT3),A - LD A,ACEX.RET_PORT - LD (#C400),A - LD BC,0 - LD A,Spec_Page - OUT (C),A - ; reset - LD A,16 - LD BC,#1FFD - OUT (C),A - LD A,RESET_PAGE - OUT (SLOT3),A -.loop: LD (#C000),A ; в этот момент подается RESET - JR .loop - ; - -.restart: - LD A,SYS_PORT.CNF_0 - OUT (SYS_PORT.OFF),A -.SP+1: LD SP,0 - JP Program_exit.unsupported_chip - */ -;----------------------------------------------------------------------; - -; ERROR_ROM: ; !TODO сделать нормальный выход в дос если чип не детектится. -; LD A,COLORS.CGA.BORDER.BLACK -; OUT (BorderColor),A -; LD A,COLORS.CGA.BORDER.CYAN -; OUT (BorderColor),A -; JR ERROR_ROM -;======================================= - ; IF _dIs_Updater ;--------------------------------------- BUILD_FIRMWARE: LD A,DrawProgress.Verify CALL DrawProgress.start @@ -536,22 +327,10 @@ BUILD_FIRMWARE: LD A,DrawProgress.Verify LD DE,CHECKSUMS.BIOS LD BC,#101C ; !HARDCODE RAM for Bios file: #10 - first page, #1C - last page+1 CALL Read_And_Check - ; выбираем какой битстрим гнать в память DI - LD A,ROM_BITSTREAM.ROM - OUT (SYS_PORT.ON),A - LD A,ROM_BITSTREAM.PAGE - OUT (ROM.SLOT0),A - LD HL,ROM_BITSTREAM.OFFSET+ROM_BITSTREAM.CHIP - - LD A,(HL) + LD A,(NUMBER_COPY.AcexType) LD B,A - XOR A - OUT (ROM.SLOT0),A - OUT (SYS_PORT.OFF),A - ; - LD A,B CP ROM_BITSTREAM.K50 JR NZ,.chek_k30 ; @@ -563,9 +342,6 @@ BUILD_FIRMWARE: LD A,DrawProgress.Verify LD A,"3" .save_chip: LD (altera_chip),A ; сохраняем номер чипа 3 или 5 (1K30 или 1K50) ; -.check_mode: LD A,(ONLY_BIOS) - INC A - JR Z,SAVE_BITSTREAM ; оставляем битстрим пользователя LD A,B ;--------------[Check bitstreams] LOAD_BITSTREAM: @@ -579,145 +355,132 @@ LOAD_BITSTREAM: JP Read_And_Check ;------[] .next: CP ROM_BITSTREAM.K50 - JR NZ,.error + JP NZ,Program_exit.conf ; если битстрим неизвестный - выход с ошибкой LD IX,(OFFSETS.K50) ; младшее слово смещения в файле LD HL,(OFFSETS.K50+2) ; старшее слово смещения в файле LD DE,CHECKSUMS.K50 LD BC,#1C20 ; !HARDCODE high начальная_страница low конечная_страница+1 - JP Read_And_Check - ;---[check another] - ; на будущее -;1: -; CP ROM_BITSTREAM.XXX -; jr nz,1F -; ld ix,(OFFSETS.XXX) ; младшее слово смещения в файле -; ld hl,(OFFSETS.XXX+2) ; старшее слово смещения в файле -; ld de,CHECKSUMS.XXX -; ld bc,#1C20 ??? ; !HARDCODE high начальная_страница low конечная_страница+1 -; jp Read_And_Check -;----------------[] -.error: JP Program_exit.conf ; если битстрим неизвестный - выход с ошибкой + JP Read_And_Check ;------------------------------[] ;--------------------------------------- -;--------------------------------------- +;██████████████████████████████████████████████████████████████████████; ;-[Сохраняем битстрим пользователя]-[v] -SAVE_BITSTREAM: - IN A,(SLOT3) - PUSH AF - LD A,#1C ; !HARDCODE - OUT (SLOT3),A +;!FIXIT crazy +; SAVE_BITSTREAM: IN A,(SLOT3) +; PUSH AF +; LD A,#1C ; !HARDCODE +; OUT (SLOT3),A - LD A,(FILE_HANDLE) - LD HL,#C000 ; !HARDCODE - LD DE,ROM_BITSTREAM.OFFSET - LD C,Dss.Read ; загружаем loader для конфы - RST ToDSS - DI - JP C,Program_exit.file - AND A - JP NZ,Program_exit.file +; LD A,(FILE_HANDLE) +; LD HL,#C000 ; !HARDCODE +; LD DE,ROM_BITSTREAM.OFFSET +; LD C,Dss.Read ; загружаем loader для конфы +; RST ToDSS +; DI +; JP C,Program_exit.file +; AND A +; JP NZ,Program_exit.file -;---[Loader checksum check] - LD BC,0 - LD DE,0 - LD HL,#C000 +; ;---[Loader checksum check] +; LD BC,0 +; LD DE,0 +; LD HL,#C000 -.checksumLoop: - LD A,C - ADD A,(HL) - LD C,A - JR NC,.NO_SM1 - LD A,B - ADD A,(HL) - LD B,A - JR NC,.NO_SM1 - LD A,E - ADD A,(HL) - LD E,A - JR NC,.NO_SM1 - LD A,D - ADD A,(HL) - LD D,A -; JR NC,NO_SM1 -.NO_SM1: - INC L ; проверка контрольной суммы 256 (0-255) байтов лоадера - JR NZ,.checksumLoop +; .checksumLoop: +; LD A,C +; ADD A,(HL) +; LD C,A +; JR NC,.NO_SM1 +; LD A,B +; ADD A,(HL) +; LD B,A +; JR NC,.NO_SM1 +; LD A,E +; ADD A,(HL) +; LD E,A +; JR NC,.NO_SM1 +; LD A,D +; ADD A,(HL) +; LD D,A +; .NO_SM1: +; INC L ; проверка контрольной суммы 256 (0-255) байтов лоадера +; JR NZ,.checksumLoop - XOR A - LD HL,(CHECKSUMS.LOADER) - SBC HL,BC - JP NZ,Program_exit.checksum - XOR A - LD HL,(CHECKSUMS.LOADER+2) - SBC HL,DE - JP NZ,Program_exit.checksum -;---[x] +; XOR A +; LD HL,(CHECKSUMS.LOADER) +; SBC HL,BC +; JP NZ,Program_exit.checksum +; XOR A +; LD HL,(CHECKSUMS.LOADER+2) +; SBC HL,DE +; JP NZ,Program_exit.checksum +; ;---[x] - LD A,ROM_BITSTREAM.ROM - OUT (SYS_PORT.ON),A - LD A,ROM_BITSTREAM.PAGE - OUT (ROM.SLOT0),A - LD HL,ROM_BITSTREAM.OFFSET - LD DE,#C000+ROM_BITSTREAM.OFFSET - LD BC,#4000-ROM_BITSTREAM.OFFSET - LDIR ; сохраняем битстрим 1/4 +; LD A,ROM_BITSTREAM.ROM +; OUT (SYS_PORT.ON),A +; LD A,ROM_BITSTREAM.PAGE +; OUT (ROM.SLOT0),A +; LD HL,ROM_BITSTREAM.OFFSET +; LD DE,#C000+ROM_BITSTREAM.OFFSET +; LD BC,#4000-ROM_BITSTREAM.OFFSET +; LDIR ; сохраняем битстрим 1/4 - EX AF,AF' - LD A,3 - EX AF,AF' +; EX AF,AF' +; LD A,3 +; EX AF,AF' - EXX - LD BC,SLOT3 - IN B,(C) -.loop: - INC B - OUT (C),B - EXX +; EXX +; LD BC,SLOT3 +; IN B,(C) +; .loop: +; INC B +; OUT (C),B +; EXX - INC A - OUT (ROM.SLOT0),A +; INC A +; OUT (ROM.SLOT0),A - EX DE,HL - LD B,D - LD C,E ; ld hl,0 bc,#4000 - LD DE,#C000 - LDIR ; сохраняем битстрим 2/4 - 4/4 +; EX DE,HL +; LD B,D +; LD C,E ; ld hl,0 bc,#4000 +; LD DE,#C000 +; LDIR ; сохраняем битстрим 2/4 - 4/4 - EX AF,AF' - DEC A - JR Z,.change_number - EX AF,AF' +; EX AF,AF' +; DEC A +; JR Z,.change_number +; EX AF,AF' - EXX - CALL DrawProgress.next - JP .loop -;-[Сохраняем битстрим пользователя]-[^] -; -.change_number: - XOR A - OUT (ROM.SLOT0),A - OUT (SYS_PORT.OFF),A +; EXX +; CALL DrawProgress.next +; JP .loop +; ;-[Сохраняем битстрим пользователя]-[^] +; ; +; .change_number: +; XOR A +; OUT (ROM.SLOT0),A +; OUT (SYS_PORT.OFF),A -; меняем тут ID конфы в биосе - LD A,#18 ; !HARDCODE страница с EXP - OUT (SLOT3),A -.romCNFversion+1: - LD DE,0 - LD (#C000+expBIOS_Vars.FN_CRIPT.cnf),DE - LD HL,#C000+expBIOS_Vars.ID_SPRINTER.bitstream_ver - LD C,D - M_hex2dec2ascii_8bit 1 - INC HL - LD (HL),'.' - INC HL - LD C,E - M_hex2dec2ascii_8bit 2 +; ; меняем тут ID конфы в биосе +; LD A,#18 ; !HARDCODE страница с EXP +; OUT (SLOT3),A +; .romCNFversion+1: +; LD DE,0 +; LD (#C000+expBIOS_Vars.FN_CRIPT.cnf),DE +; LD HL,#C000+expBIOS_Vars.ID_SPRINTER.bitstream_ver +; LD C,D +; M_hex2dec2ascii_8bit 1 +; INC HL +; LD (HL),'.' +; INC HL +; LD C,E +; M_hex2dec2ascii_8bit 2 - POP AF - OUT (SLOT3),A - RET -;--------------------------------------- +; POP AF +; OUT (SLOT3),A +; RET +;██████████████████████████████████████████████████████████████████████; ;--------------------------------------- @@ -777,22 +540,10 @@ Read_And_Check: LD A,B IN A,(SLOT3) INC A OUT (SLOT3),A - -; CP #1C -; CALL Z,LOAD_BITSTREAM .last_page+1: CP #20 JR NZ,.loop -Checksum_Check: - - ; LD A,#10 - ; OUT (SLOT3),A - /* - LD A,PROGRESS_BAR.VERIFY - CALL DrawProgress.start - */ -; LD IX,.ch_b - EXX +Checksum_Check: EXX LD BC,0 LD DE,0 EXX @@ -820,7 +571,6 @@ Checksum_Check: LD A,D ADD A,(HL) LD D,A -; JR NC,NO_SM1 .NO_SM1: INC HL LD A,H @@ -886,49 +636,21 @@ SST39SF020: CALL ROM_PIC._39SF020 LD HL,1000 LD (Pause.Erase),HL ; mem patch - ; XOR A ;LD A,DrawProgress.Erase - ; CALL DrawProgress.start CALL ERASE._39SF020 - - -; LD A,4+D_TBOFF ; отключить турбо при записи 39SF020 -; LD A,4+D_TBON -; OUT (SYS_PORT.OFF),A ; CNF0 - - ; LD A,DrawProgress.Write - ; CALL DrawProgress.start CALL WRITE_39SF020 -; LD A,4+D_TBOFF -; LD A,4+D_TBON -; OUT (SYS_PORT.OFF),A ; CNF0 LD A,DrawProgress.Verify CALL DrawProgress.start CALL VERIFY - -; LD A,4+D_TBON -; OUT (SYS_PORT.OFF),A ; CNF0 - JP RESET COUNT_ALL: DB 0 ;********************************* -RESET: - DI - -// IN A,(SLOT1) -// PUSH AF -// LD A,DCP_PAGE -// OUT (SLOT1),A ; set DCP page -// LD A,ACEX.RESET -// LD (#4400),A ; open for WR -// LD (#4600),A ; open for RD +RESET: DI LD BC,ACEX.RESET*256+ACEX.RESET CALL SET_DCP_PORT - - ;nop ;!TEST Full init после перепрошивки и ресета, на всякий случай LD A,SYS_PAGE OUT (SLOT1),A @@ -936,33 +658,23 @@ RESET: LD (SYS_PAGE.ID_FLAG-#8000),A ; POP AF - OUT (SLOT1),A ; Close SLOT1 + OUT (SLOT1),A ; Close SLOT1 LD A,COLORS.CGA.BORDER.BLACK OUT (BorderColor),A LD A,CNF_PORT.CNF_0+CNF_PORT.TURBO.OFF - OUT (SYS_PORT.ON),A ; CNF0 + OUT (CNF_PORT.vBIOS),A ; CNF0 CALL Pause._200msek LD A,CNF_PORT.CNF_0+CNF_PORT.TURBO.ON - OUT (SYS_PORT.ON),A ; CNF0 + OUT (CNF_PORT.vBIOS),A ; CNF0 -RESET_LOOP: - ;!TEST - ;LD BC,#0100 - ;OUT (C),C - ;LD BC,0 - ;OUT (C),C - LD A,Port_HardReset.Step1 +RESET_LOOP: LD A,Port_HardReset.Step1 OUT (Port_HardReset),A DEC A OUT (Port_HardReset),A - ; JR RESET_LOOP - - DI - HALT ;********************************* VERIFY: IN A,(SLOT1) @@ -976,13 +688,6 @@ vf_loop: CALL Pause._50msek CALL WAIT_TOGGLE CALL Pause._50msek - ; LD A,DrawProgress.Verify - ; CALL DrawProgress.start - -; если будет ошибка в самом начале образа при верификации записи, то хоть немного подёргается прогрессбар - ;CALL DrawProgress.next - ;CALL DrawProgress.next - LD A,#10 TST_X: EX AF,AF' ;!!!!! @@ -996,15 +701,6 @@ LOOP_VF1X: EX AF,AF' LOOP_VF1: - ;!TEST - ; LD A,(DE) - ; CP (HL) - ; JR nz,error_xx - - ; INC L - ; INC E - ; JR NZ,LOOP_VF1 - ; IVAN LD A,(DE) XOR (HL) @@ -1032,9 +728,7 @@ LOOP_VF1: LD (vf_num),A LD A,H - ;AND 7 ;!HARDCODE DrawProgress - ;CP 7 - AND 15 ;!HARDCODE DrawProgress + AND 15 ;!HARDCODE DrawProgress CP 15 CALL Z,DrawProgress.next @@ -1070,148 +764,7 @@ HALTS: LD BC,0 SV_PG1+1: LD A,0 OUT (SLOT1),A JP REWRITE -; JP VERIFY - -;SV_PG1: DB 0 - -;************************************ -; IFN _dIs_Updater -; ;--------------------------------------- -; READ_FROM_FILE: - -; LD A,1 -; LD HL,ROM_FILE -; LD C,Dss.Open -; RST ToDSS -; ; !FIXIT error handler FLASHER -; DI - -; JR C,Program_exit.file -; LD (FILE_HANDLE),A - -; IN A,(SLOT3) -; PUSH AF -; LD A,10h -; OUT (SLOT3),A - -; LOOP_READ: -; LD A,(FILE_HANDLE) -; LD HL,#C000 -; LD DE,#4000 -; LD C,Dss.Read -; RST ToDSS -; DI -; JR C,Program_exit.file -; AND A -; LD HL,#4000 -; SBC HL,DE -; JR NZ,Program_exit.file - -; IN A,(SLOT3) -; INC A -; OUT (SLOT3),A - -; CP #20 -; JR NZ,LOOP_READ - -; LD A,(FILE_HANDLE) -; LD C,Dss.Close -; RST ToDSS -; DI - -; JR C,Program_exit.file - -; Checksum_Check: -; LD A,#10 -; OUT (SLOT3),A - -; LD HL,#C004 ; !TODO Собирать биос сразу с чексуммой? А тут тогда вставлять #FF. -; LD DE,.ch_a -; LD BC,4 -; LDIR - -; LD HL,#FFFF -; LD (#C004),HL ; !TODO если делать как написано выше, то для Апдейтера эту часть убрать условием компиляции -; LD (#C006),HL ; !TODO - -; LD A,PROGRESS_BAR.VERIFY -; CALL DrawProgress.start - -; ; LD IX,.ch_b -; EXX -; LD BC,0 -; LD DE,0 -; EXX -; LD A,#10 - -; .main_loop: -; OUT (SLOT3),A -; PUSH AF - -; EXX -; LD HL,#C000 -; .loop: -; LD A,C -; ADD A,(HL) -; LD C,A -; JR NC,.NO_SM1 -; LD A,B -; ADD A,(HL) -; LD B,A -; JR NC,.NO_SM1 -; LD A,E -; ADD A,(HL) -; LD E,A -; JR NC,.NO_SM1 -; LD A,D -; ADD A,(HL) -; LD D,A -; ; JR NC,NO_SM1 -; .NO_SM1: -; INC HL -; LD A,H -; OR L -; JR NZ,.loop - -; EXX -; LD B,8 - -; .progress: -; CALL DrawProgress.next -; DJNZ .progress - -; POP AF -; INC A - -; CP #20 -; JR NZ,.main_loop - -; EXX -; LD (.ch_b),BC -; LD (.ch_b+2),DE -; EXX - -; LD HL,(.ch_a) -; LD DE,(.ch_b) -; XOR A -; SBC HL,DE -; JR NZ,Program_exit.checksum - -; LD HL,(.ch_a+2) -; LD DE,(.ch_b+2) -; XOR A -; SBC HL,DE -; JR NZ,Program_exit.checksum - -; CALL DrawProgress.done -; POP AF -; OUT (SLOT3),A -; RET - -; .ch_a: DB 0,0,0,0 -; .ch_b: DB 0,0,0,0 - -; ENDIF + ; SET_DCP_PORT: IN A,(SLOT1) @@ -1314,20 +867,17 @@ PROGRAM_MESSAGES: ; ENDIF ; IF _dIs_Updater -END_MSG: DZ 'Your ROM now rewrited! Press RESET please.' START_MSG: DB 13,10,10 - DB 'ROM updater to ',HARDWARE_VERSION,' hardware and ',BIOS_VERSION,' BIOS',BIOS_BETA_VERSION,'versions.',13,10 + DB 'Crazy Blaster ROM updater to ',HARDWARE_VERSION,' hardware and ',BIOS_VERSION,' BIOS',BIOS_BETA_VERSION,'versions.',13,10 DB '2002 (',#91,') Peters Plus Ltd,',13,10 DB SP_TEAM_YEAR,' (',#91,') Sprinter Team.',13,10,10,10,10,10 DB 'Your ROM will be reflashed',13,10 - DB 'This operation can destroy your BIOS information if a power failure occurs!',13,10,10 DB 'Do not press any keys while reflashing!',13,10 DB 'After reflashing, your computer will restart.',13,10 DZ 'Contact Sprinter Team if you need help.',13,10,10 -.afterPICyes_R: DB 'Press "Y" to start full reflashing or "R" for reflashing only BIOS and ZX-ROMs.',13,10 +.afterPICno_R: DB 'Press "Y" to start full reflashing.',13,10 DB 'If you need a pause to change the ROM before flashing, press "P".',13,10 DZ 'Press any other key to cancel.',13,10 -.afterPICno_R: DZ 'Press "Y" to start full reflashing or any other key to cancel.',13,10 ; !FIXIT pause .PauseTXT: DZ 'Pause: ' .PauseON: DZ 'ON. Green border means waiting for any key to be pressed to continue.' ; /должна быть одинаковая длина\ .PauseOFF: DZ 'OFF. ' ; \должна быть одинаковая длина/ @@ -1349,7 +899,7 @@ READ_ID_ROM: AND A LD BC,0 LD A,#10 OUT (C),A - LD HL,(0) ; rdlow-ok + LD HL,(0) ; rdlow-ok OUT (C),C POP AF @@ -1621,7 +1171,7 @@ WAIT_TOGGLE: PUSH AF PUSH HL LD HL,0 - LD A,(0) ; rdlow-ok + LD A,(0) ; rdlow-ok LD D,A TOGGLE_LOOP: INC HL @@ -1636,7 +1186,7 @@ TOGGLE_LOOP: INC HL ;ZZZZ1: OUT (0FEh),A LD E,D - LD A,(0) ; rdlow-ok + LD A,(0) ; rdlow-ok LD D,A ; ;!TEST @@ -2007,20 +1557,14 @@ VideoModes: SAVE_DCP_PORT: .write: BYTE 0 .read: BYTE 0 -;.temp: WORD 0 - ; -; IF _dIs_Updater altera_chip: BYTE 0 CHECKSUMS: -;.BIOS_K30: DWORD LUA_CHECKSUM_K30_BIOS .BIOS: DWORD LUA_CHECKSUM_BIOS .K30: DWORD LUA_CHECKSUM_K30 .K50: DWORD LUA_CHECKSUM_K50 .LOADER: DWORD LUA_CHECKSUM_LOADER - -ONLY_BIOS: BYTE 0 - +; OFFSETS: .LOADER: DWORD IMAGES.K30 - exe_header .K30: DWORD IMAGES.K30 - exe_header @@ -2035,32 +1579,32 @@ TEST_ROM_CHIP: SCF ;no draw progress CALL READ_ID_ROM.no_draw EX DE,HL - ; + ; LD HL,ROM_CHIP.SST39SF020A AND A SBC HL,DE LD BC,SST39SF020 JR Z,.detected - ; - LD HL,#76BF ; !HARDCODE + ; + LD HL,#76BF ; !HARDCODE AND A SBC HL,DE - ;LD BC,SST39SF020 + ;LD BC,SST39SF020 JR Z,.detected - ; - LD HL,#10BF ; !HARDCODE + ; + LD HL,ROM_CHIP.ST29EE020 AND A SBC HL,DE - ;LD BC,SST39SF020 + ;LD BC,SST39SF020 JR Z,.detected - ; - LD HL,#24BF ; !HARDCODE + ; + LD HL,#24BF ; !HARDCODE AND A SBC HL,DE - ;LD BC,SST39SF020 + ;LD BC,SST39SF020 JR Z,.detected - ; - LD HL,#45DA ; !HARDCODE + ; + LD HL,ROM_CHIP.W29C020 AND A SBC HL,DE LD BC,W29C020 @@ -2106,8 +1650,8 @@ Flash: DI LD A,SYS_PORT.CNF_0 OUT (SYS_PORT.ON),A ; - LD BC,#1FFD XOR A + LD BC,#1FFD OUT (C),A ;!TODO возможно, что это для Sp97 LD A,#FF @@ -2138,13 +1682,14 @@ Normal: DI ; ; бордюр портится при записи в порт проца #EE из-за дешифрации карты портов XOR A OUT (BorderColor),A - ; SET ROM PAGE 8 + ; SET vROM PAGE BIOS + INC A + LD BC,#1FFD + OUT (C),A LD A,SYS_PORT.CNF_0 OUT (SYS_PORT.RAM),A + ;OUT (CNF_PORT.vBIOS),A ; - LD BC,#1FFD - LD A,1 - OUT (C),A ;!TODO возможно, что это для Sp97 .slot0+1: LD A,0 OUT (SLOT0),A @@ -2183,19 +1728,6 @@ BORDER_FLASH: LD A,H RET ENDIF -; ENDIF - - /* - DB "End of program." -; - BLOCK #8E00-$,0 -cmos_data: - - BLOCK data_start-$-#66,0 -stack_prog: - */ -; BLOCK data_start-$,0 - BLOCK stack_size,0 stack_point EQU $-2 @@ -2210,13 +1742,6 @@ PICTURE TBitMapFileHeader = $ ; IF _dIs_Updater Loader_length EQU $-Flasher_Start DISPLAY "Loader_length: ",/A,Loader_length - -;======================================= -; IF _dDEBUG -; OUTEND -; DEVICE NONE -; ENDIF -;======================================= DISPLAY PICTURE_FILE,' ',/A,MAIN_PICTURE.PIC_OFFSET+MAIN_PICTURE.CHIP_NAME_OFFSET OUTPUT '../SP_Core/Build/updater_picture.bin' @@ -2228,11 +1753,7 @@ IMAGES: .K30: INCBIN BIOS_K30_FILE,#4000 * #0C,#10000 ; битстрим для K30 с загрузчиком .K50: INCBIN K50_FILE,0,#10000 ; битстрим для K50 с загрузчиком .end EQU $ -; ELSE -; Loader_length EQU 0 -; ENDIF -; IF _dIs_Updater DISPLAY "Image reolution: ",/D,MAIN_PICTURE.PIC_WIDTH,"x",/D,MAIN_PICTURE.PIC_HEIGHT," pixels. Size: ",/D,MAIN_PICTURE.PIC_SIZE," bytes." DISPLAY "Code ends: ",/A,PICTURE DISPLAY "Code Length: ",/A,PICTURE-Flasher_Start @@ -2267,93 +1788,4 @@ IMAGES: EXPORT MAIN_PICTURE.PIC_X EXPORT MAIN_PICTURE.PIC_Y EXPORT MAIN_PICTURE.PIC_WIDTH - EXPORT Screen_Offset - -; ENDIF -; END -;****************************************************** - - /* -; - LD BC,#FFEE - XOR A - OUT (C),A ; 0 register - waits - INC C - OUT (C),A ; set 0 Waits - - DEC C - LD A,3 ; 3-rd - Misc.Control Register - OUT (C),A - INC C - - XOR A - LD A,1 - - OUT (C),A ; disable CS0,CS1 -; no boundary set! - - LD BC,#7FFD - LD A,#10 - OUT (C),A ; BASIC_48 mode - LD B,#1F - LD A,01 - OUT (C),A ; RAM-0 mode !!! - -; out (slot3),saved_page - - */ - - - /* -PRINT_LINE: ; from HL, zero - end - - IN A,(SLOT1) - EX AF,AF' - LD A,50h - OUT (SLOT1),A - LD A,01h ; first place - OUT (PORT_Y),A - - LD A,(VARX) - AND A - JR NZ,NO_VARS - LD A,(4300h) - LD A,C - LD (VARX),A -NO_VARS: - LD C,A - - LD DE,04301h ; symbol place -PRINT_LOOP: - LD A,(HL) - AND A - JR Z,PRINT_END - - LD (DE),A ; symbol - DEC E - LD A,C - LD (DE),A ; MODE - INC E - INC E - LD A,07h ; color - LD (DE),A - DEC E - - INC HL - IN A,(PORT_Y) - INC A - OUT (PORT_Y),A - JR PRINT_LOOP - - LD BC,(4300h) -PRINT_END: - LD A,#C0 ; close - OUT (PORT_Y),A - EX AF,AF' - OUT (SLOT1),A - - RET - -VARX: DB 0 - */ -; + EXPORT Screen_Offset \ No newline at end of file diff --git a/Crazy Updater/board_id.ini b/Crazy Updater/board_id.ini new file mode 100644 index 0000000..b33786e Binary files /dev/null and b/Crazy Updater/board_id.ini differ diff --git a/Crazy Updater/constants/ROM_CHIPS.inc b/Crazy Updater/constants/ROM_CHIPS.inc index 5a0d9b7..3919a51 100644 --- a/Crazy Updater/constants/ROM_CHIPS.inc +++ b/Crazy Updater/constants/ROM_CHIPS.inc @@ -1,23 +1,76 @@ ; CHIP/Manufacturer ROM_CHIP: IF _dEMULATOR = 1 ; MAME -.SST39SF010A EQU #76F3 ; 128 kb (#BF - SST) -.SST39SF020A EQU #76F3 ; 256 kb (#BF - SST) -.SST39SF040 EQU #76F3 ; 512 kb (#BF - SST) -.IS28F020 EQU #76F3 ; 256 kb (#D5 - ISSI) +; .SST39SF020A EQU #76F3 ; 256 kb (#BF - SST) +; .IS28F020 EQU #76F3 ; 256 kb (#D5 - ISSI) +.SST39SF020A EQU #FFFF ; 256 Kb SST39SF020A Silicon Storage Technology +.ST29EE020 EQU #FFFF ; 256 Kb ST29EE020 Silicon Storage Technology +.AE29F2008 EQU #FFFF ; 256 Kb AE29F2008 AE +.W29C020 EQU #FFFF ; 256 Kb W29C020 Winbond +; ELSEIF _dEMULATOR = 2 ; ZXMAK -.SST39SF010A EQU #A0C3 ; 128 kb (#BF - SST) .SST39SF020A EQU #A0C3 ; 256 kb (#BF - SST) -.SST39SF040 EQU #A0C3 ; 512 kb (#BF - SST) -.IS28F020 EQU #A0C3 ; 256 kb (#D5 - ISSI) +.ST29EE020 EQU #A0C3 ; 256 Kb ST29EE020 Silicon Storage Technology +.AE29F2008 EQU #A0C3 ; 256 Kb AE29F2008 AE +.W29C020 EQU #A0C3 ; 256 Kb W29C020 Winbond ; ELSE ; for hardware +; ; CHIP/Manufacturer +.SST39SF020A EQU #B6BF ; 256 Kb SST39SF020A Silicon Storage Technology +.ST29EE020 EQU #10BF ; 256 Kb ST29EE020 Silicon Storage Technology +.AE29F2008 EQU #45DA ; 256 Kb AE29F2008 AE +.W29C020 EQU #45DA ; 256 Kb W29C020 Winbond ; -.SST39SF010A EQU #B5BF ; 128 kb (#BF - SST) -.SST39SF020A EQU #B6BF ; 256 kb (#BF - SST) -.SST39SF040 EQU #B7BF ; 512 kb (#BF - SST) +.AT29C512 EQU #5d1f ; 64 Kb AT29C512 Atmel +.x28F512 EQU #b889 ; 64 Kb 28F512 Intel +.W29EE512P EQU #c8da ; 64 Kb W29EE512P Winbond +.AM29F010 EQU #2001 ; 128 Kb AM29F010 Advanced Micro Devices +.AM29F010B EQU #2001 ; 128 Kb AM29F010B Advanced Micro Devices +.AE29F1008 EQU #c1da ; 128 Kb AE29F1008 AE +.A29001_1_B EQU #c437 ; 128 Kb A29001(1)B AMIC Technology, Inc. +.A29001_1_T EQU #a137 ; 128 Kb A29001(1)T AMIC Technology, Inc. +.AT29C010A EQU #d51f ; 128 Kb AT29C010A Atmel +.CAT28F010 EQU #b431 ; 128 Kb CAT28F010 Catalyst +.M12116 EQU #1ac2 ; 128 Kb M12116 H.T. +.x28F001BX_B EQU #9589 ; 128 Kb 28F001BX-B Intel +.x28F001BX_T EQU #9489 ; 128 Kb 28F001BX-T Intel +.x28F010 EQU #b489 ; 128 Kb 28F010 Intel +.MX28F1000 EQU #1ac2 ; 128 Kb MX28F1000 Macronix +.MX29F001_N_B EQU #19c2 ; 128 Kb MX29F001(N)B Macronix +.MX29F001_N_T EQU #18c2 ; 128 Kb MX29F001(N)T Macronix +.ST29EE010 EQU #07bf ; 128 Kb ST29EE010 Silicon Storage Technology +.SST39SF010A EQU #B5BF ; 128 Kb SST39SF010A Silicon Storage Technology +.M28F101 EQU #0720 ; 128 Kb M28F101 STMicroelectronics +.W29EE011 EQU #c1da ; 128 Kb W29EE011 Winbond +.AM28F020 EQU #2a01 ; 256 Kb AM28F020 Advanced Micro Devices +.AM29F002_N_B EQU #3401 ; 256 Kb AM29F002(N)B Advanced Micro Devices +.AM29F002_N_T EQU #b001 ; 256 Kb AM29F002(N)T Advanced Micro Devices +.A29002_1_B EQU #0d37 ; 256 Kb A29002(1)B AMIC Technology, Inc. +.A29002_1_T EQU #8c37 ; 256 Kb A29002(1)T AMIC Technology, Inc. +.AT29C020 EQU #da1f ; 256 Kb AT29C020 Atmel +.AT49F002_N_ EQU #071f ; 256 Kb AT49F002(N) Atmel +.AT49F002_N_T EQU #081f ; 256 Kb AT49F002(N)T Atmel +.CAT28F020 EQU #bd31 ; 256 Kb CAT28F020 Catalyst +.EN29F002_N_B EQU #971c ; 256 Kb EN29F002(N)B EON Silicon Devices +.EN29F002_N_T EQU #921c ; 256 Kb EN29F002(N)T EON Silicon Devices +.HY29F002T EQU #b0ad ; 256 Kb HY29F002T Hynix .IS28F020 EQU #B4D5 ; 256 kb (#D5 - ISSI) -; +.x28F020 EQU #bd89 ; 256 Kb 28F020 Intel +.MX29F002_N_B EQU #34c2 ; 256 Kb MX29F002(N)B Macronix +.MX29F002_N_T EQU #b0c2 ; 256 Kb MX29F002(N)T Macronix +.MX28F2000 EQU #2ac2 ; 256 Kb MX28F2000 Macronix +.V29C51002B EQU #a240 ; 256 Kb V29C51002B Mosel Vitelic o. SyncMos +.V29C51002T EQU #0240 ; 256 Kb V29C51002T Mosel Vitelic o. SyncMos +.W49F002U EQU #0bda ; 256 Kb W49F002U Winbond +.AM29F040 EQU #a401 ; 512 Kb AM29F040 Advanced Micro Devices +.A29040A EQU #8637 ; 512 Kb A29040A AMIC Technology, Inc. +.AT29C040 EQU #a41f ; 512 Kb AT29C040 Atmel +.EN29F040 EQU #041c ; 512 Kb EN29F040 EON Silicon Devices +.F29F040A EQU #a404 ; 512 Kb F29F040A Fujitsu +.MX29F040 EQU #a4c2 ; 512 Kb MX29F040 Macronix +.SST39SF040A EQU #b7bf ; 512 Kb SST39SF040A Silicon Storage Technology +.M29F040 EQU #e220 ; 512 Kb M29F040 STMicroelectronics +.TMS29F040 EQU #a401 ; 512 Kb TMS29F040 Texas Instruments ENDIF MODULE CHIP_CMD @@ -35,4 +88,8 @@ SST: .Erase EQU #80 .Write EQU #A0 .ID_Exit EQU #F0 - ENDMODULE \ No newline at end of file + ENDMODULE + +/* + +*/ \ No newline at end of file diff --git a/Crazy/ACEX_RAM.ASM b/Crazy/ACEX_RAM.ASM index 41fa1b5..2ad23e4 100644 --- a/Crazy/ACEX_RAM.ASM +++ b/Crazy/ACEX_RAM.ASM @@ -202,8 +202,8 @@ vROM_MAP: LD HL,RESERVED_PAGES.BIOS ; проверка ID диска с BIOS (дополнительные функции) CHECK_IMG: LD B,1 ; число читаемых секторов LD HL,#8000 ; адрес буфера данных - LD IX,0 ; абсолютный номер сектора старшая часть - LD DE,0 ; абсолютный номер сектора младшая часть + LD IX,bios_img_sector_high ; абсолютный номер сектора старшая часть + LD DE,bios_img_sector_low ; абсолютный номер сектора младшая часть PUSH HL CALL FN_HDD_READ POP HL diff --git a/CrazyBlaster.asm b/CrazyBlaster.asm index 89691f3..0b97fcd 100644 --- a/CrazyBlaster.asm +++ b/CrazyBlaster.asm @@ -1,5 +1,5 @@ INCLUDE 'Shared_Includes/constants/SP2000.inc' - INCLUDE 'Build/updater.inc' + ;INCLUDE 'Build/updater.inc' INCLUDE 'Crazy BIOS/shared/CompMacro.asm' INCLUDE 'Crazy BIOS/shared/DEFINES.INC' ;INCLUDE 'Shared_Includes/structures/FileSystem.inc' @@ -17,8 +17,11 @@ DEFINE image_size_in_sectors flasher_size_in_sectors + bios_size_in_sectros DEFINE TYPE_OF_ACEX 3 ; 3 - 1K30, 5 - 1K50 -DOS_OFF EQU #4000 -DOS_ON EQU #3D13 +DOS_OFF EQU #4000 +DOS_ON EQU #3D13 +bios_img_sector_high EQU #0000 +bios_img_sector_low EQU #0830 + ;██████████████████████████████████████████████████████████████████████; ;█████████████████████[ FIRST SECTION - CONF ROM ]█████████████████████; diff --git a/Shared_Includes b/Shared_Includes index d357c4c..8ec0d06 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit d357c4cc2a8af41e47136c245161e11355612a96 +Subproject commit 8ec0d06b7705a94175d558c35b1f91f9b2a628a0 diff --git a/shared/DEFINES.INC b/shared/DEFINES.INC new file mode 100644 index 0000000..0a56e6a --- /dev/null +++ b/shared/DEFINES.INC @@ -0,0 +1,6 @@ +;========================[ Files Used ]=========================; + ; готовая болванка с двумя разделами. во второй раздел пихается BIOS_PART_RAW + DEFINE CRAZY_BLASTER_IMG 'bin/CB_IMAGE.IMG' + ; раздел с ID и Crazy Blaster BIOS + DEFINE BIOS_PART_RAW 'Build/CB_BIOS.RAW' +;===============================================================; \ No newline at end of file