diff --git a/src/bios/exp/EXP.asm b/src/bios/exp/EXP.asm index 80e0a9b..fe1669c 100644 --- a/src/bios/exp/EXP.asm +++ b/src/bios/exp/EXP.asm @@ -251,22 +251,22 @@ BoardID: ; any adress < #C0 with mask %xxxx0000 ; таблица для Sprinter POST-Tester-a TABLE_X: ; таблица для Sprinter POST-Tester-a -.v0: DB 00101000b ; "0" -.v1: DB 10111101b ; "1" -.v2: DB 00110010b ; "2" -.v3: DB 00110100b ; "3" -.v4: DB 10100101b ; "4" -.v5: DB 01100100b ; "5" -.v6: DB 01100000b ; "6" -.v7: DB 00111101b ; "7" -.v8: DB 00100000b ; "8" -.v9: DB 00100100b ; "9" -.vA: DB 00100001b ; "A" -.vB: DB 11100000b ; "B" -.vC: DB 01101010b ; "C" -.vD: DB 10110000b ; "D" -.vE: DB 01100010b ; "E" -.vF: DB 01100011b ; "F" +.v0: DB %00101000 ; "0" a +.v1: DB %10111101 ; "1" ___ +.v2: DB %00110010 ; "2" f | g | b +.v3: DB %00110100 ; "3" |___| +.v4: DB %10100101 ; "4" e | | c +.v5: DB %01100100 ; "5" |___| +.v6: DB %01100000 ; "6" d +.v7: DB %00111101 ; "7" +.v8: DB %00100000 ; "8" a - 7 +.v9: DB %00100100 ; "9" b - 6 +.vA: DB %00100001 ; "A" f - 4 +.vB: DB %11100000 ; "B" g - 3 +.vC: DB %01101010 ; "C" e - 2 +.vD: DB %10110000 ; "D" c - 1 +.vE: DB %01100010 ; "E" d - 0 +.vF: DB %01100011 ; "F" ENDIF ;======================================= ; @@ -953,140 +953,147 @@ Setup_to_RAM: ;*********************************** ; Инициализация портов PORTS_INIT: -; включить TURBO - LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON - OUT (SYS_PORT.ROM),A - -; RESET to ISA - LD BC,PORT_ISA - LD A,#FF - OUT (C),A -.isa_reset: - DEC A ;!FIXIT может убрать цикл ожидания и запулить 0 в ису после инита клавы? - JR NZ,.isa_reset - OUT (C),A -; Инициализация последовательного порта клавиатуры - ; reg 0 - XOR A ;LD A,0 - OUT (Z84.SIO.Ch_A.Ctrl),A - ; reg 4 - LD A,4 - OUT (Z84.SIO.Ch_A.Ctrl),A - ;INC A ;LD A,5 - OUT (Z84.SIO.Ch_A.Ctrl),A - ; reg 3 - LD A,3 - OUT (Z84.SIO.Ch_A.Ctrl),A - LD A,#C1 - OUT (Z84.SIO.Ch_A.Ctrl),A - ; reg 5 - LD A,5 - OUT (Z84.SIO.Ch_A.Ctrl),A - LD A,#62 ;60, 61 - OUT (Z84.SIO.Ch_A.Ctrl),A - ; reg 1 - LD A,1 - OUT (Z84.SIO.Ch_A.Ctrl),A - DEC A ;LD A,0 ; #18 включение прерываний - OUT (Z84.SIO.Ch_A.Ctrl),A -; Инициализация мыши -.mouse: ; Инициализация таймера мыши - LD A,#55 - OUT (Z84.CTC.Ch_0),A - LD A,#2D - OUT (Z84.CTC.Ch_0),A - ; reg 0 - XOR A ;LD A,0 - OUT (Z84.SIO.Ch_B.Ctrl),A - ; reg 4 - LD A,4 - OUT (Z84.SIO.Ch_B.Ctrl),A - ;LD A,#45 - LD A,#40 - OUT (Z84.SIO.Ch_B.Ctrl),A - ; reg 3 - LD A,3 - OUT (Z84.SIO.Ch_B.Ctrl),A - LD A,#41 - OUT (Z84.SIO.Ch_B.Ctrl),A - ; reg 5 - LD A,5 - OUT (Z84.SIO.Ch_B.Ctrl),A - LD A,#E0 - OUT (Z84.SIO.Ch_B.Ctrl),A - ; reg 1 - LD A,1 - OUT (Z84.SIO.Ch_B.Ctrl),A - DEC A ;LD A,0 - OUT (Z84.SIO.Ch_B.Ctrl),A -; Инициализация параллельного порта 1 (принтер) - ; для POST-Tester-а - LD A,#CF ; BITS I/O - OUT (Z84.PIO.Port_A.Command),A - XOR A - OUT (Z84.PIO.Port_A.Command),A ; ALL - out - OUT (Z84.PIO.Port_A.Data),A ; DATA - all zeros - ; для printer-a - LD A,#0F ; OUT - OUT (Z84.PIO.Port_A.Command),A - OUT (Z84.PIO.Port_A.Command),A -; Инициализация параллельного порта 2 (INT/DMA ISA) - LD BC,Z84.PIO.Port_B.Command ;только через регистр BC, иначе Альтера перехватит - LD A,#CF ; BITS I/O - OUT (C),A - LD A,#3F - OUT (C),A - LD A,#C0 - OUT (Z84.PIO.Port_B.Data),A -; "Заглушение" ковокса - XOR A - OUT (CBL.SYS_PORT),A - LD BC,CBL.OUT - LD A,#80 -.CBL_MUTE: - OUT (C),A - DJNZ .CBL_MUTE -; Сброс контроллера дисковода - ; Включить доступ к контроллеру диска (третья конфа) - LD A,CNF_PORT.CNF_3 + ROM.BIOS - OUT (SYS_PORT.ROM),A - OUT (FDC_93.DrvCTRL),A - push hl - pop hl - LD A,#3C ;!HARDCODE команда для ВГ93 - OUT (FDC_93.DrvCTRL),A - push hl - pop hl - XOR A - OUT (FDC_93.Command),A - ; Выключить доступ к контроллеру диска - LD A,CNF_PORT.CNF_0 + ROM.BIOS - OUT (SYS_PORT.ROM),A - ; set HDD1/not-HDD2 - LD A,IDE.Chanel.Primary - OUT (IDE.Chanel.Set),A - LD BC,#7FFD - LD A,#10 - OUT (C),A ; BASIC_48 mode - LD B,#1F - LD A,01 - OUT (C),A ; RAM-0 mode !!! + ; включить TURBO + LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON + OUT (SYS_PORT.ROM),A + ; ; RESET to ISA + ; LD BC,PORT_ISA + ; LD A,#FF + ; OUT (C),A + ; .isa_reset: + ; DEC A ;!FIXIT может убрать цикл ожидания и запулить 0 в ису после инита клавы? + ; JR NZ,.isa_reset + ; OUT (C),A ; - CALL .clean_kbd_buf - JR .clean_mouse_buf -;Clearing the keyboard buffer -.clean_kbd_buf: - IN A,(Z84.SIO.Ch_A.Ctrl) - RRCA - RET NC - IN A,(Z84.SIO.Ch_A.Data) - JR .clean_kbd_buf -.clean_mouse_buf: - IN A,(Z84.SIO.Ch_B.Ctrl) - RRCA - RET NC - IN A,(Z84.SIO.Ch_B.Data) - JR .clean_kbd_buf + ; Инициализация последовательного порта клавиатуры + ; reg 0 + XOR A ;LD A,0 + OUT (Z84.SIO.Ch_A.Ctrl),A + ; reg 4 + LD A,4 + OUT (Z84.SIO.Ch_A.Ctrl),A + ;INC A ;LD A,5 + OUT (Z84.SIO.Ch_A.Ctrl),A + ; reg 3 + LD A,3 + OUT (Z84.SIO.Ch_A.Ctrl),A + LD A,#C1 + OUT (Z84.SIO.Ch_A.Ctrl),A + ; reg 5 + LD A,5 + OUT (Z84.SIO.Ch_A.Ctrl),A + LD A,#62 ;60, 61 + OUT (Z84.SIO.Ch_A.Ctrl),A + ; reg 1 + LD A,1 + OUT (Z84.SIO.Ch_A.Ctrl),A + DEC A ;LD A,0 ; #18 включение прерываний + OUT (Z84.SIO.Ch_A.Ctrl),A +.mouse: ; Инициализация мыши + ; Инициализация таймера мыши + LD A,#55 + OUT (Z84.CTC.Ch_0),A + LD A,#2D + OUT (Z84.CTC.Ch_0),A + ; reg 0 + XOR A ;LD A,0 + OUT (Z84.SIO.Ch_B.Ctrl),A + ; reg 4 + LD A,4 + OUT (Z84.SIO.Ch_B.Ctrl),A + ;LD A,#45 + LD A,#40 + OUT (Z84.SIO.Ch_B.Ctrl),A + ; reg 3 + LD A,3 + OUT (Z84.SIO.Ch_B.Ctrl),A + LD A,#41 + OUT (Z84.SIO.Ch_B.Ctrl),A + ; reg 5 + LD A,5 + OUT (Z84.SIO.Ch_B.Ctrl),A + LD A,#E0 + OUT (Z84.SIO.Ch_B.Ctrl),A + ; reg 1 + LD A,1 + OUT (Z84.SIO.Ch_B.Ctrl),A + DEC A ;LD A,0 + OUT (Z84.SIO.Ch_B.Ctrl),A + ; Инициализация параллельного порта 1 (принтер) + ; для POST-Tester-а + LD A,#CF ; BITS I/O + OUT (Z84.PIO.Port_A.Command),A + XOR A + OUT (Z84.PIO.Port_A.Command),A ; ALL - out + OUT (Z84.PIO.Port_A.Data),A ; DATA - all zeros + ; для printer-a + LD A,#0F ; OUT + OUT (Z84.PIO.Port_A.Command),A + OUT (Z84.PIO.Port_A.Command),A + ; Инициализация параллельного порта 2 (INT/DMA ISA) + LD BC,Z84.PIO.Port_B.Command ;только через регистр BC, иначе Альтера перехватит + LD A,#CF ; BITS I/O + OUT (C),A + LD A,#3F + OUT (C),A + LD A,#C0 + OUT (Z84.PIO.Port_B.Data),A + ; "Заглушение" ковокса и ресет ISA + ; ресет ISA часть 1 + LD BC,PORT_ISA + LD A,#FF + OUT (C),A + ; глушим ковокс + XOR A + OUT (CBL.SYS_PORT),A + LD BC,CBL.OUT + LD A,#80 +.CBL_MUTE: OUT (C),A + DJNZ .CBL_MUTE + ; ресет ISA часть 2 после небольшой паузы + LD BC,PORT_ISA + XOR A + OUT (C),A + ; Сброс контроллера дисковода + ; Включить доступ к контроллеру диска (третья конфа) + LD A,CNF_PORT.CNF_3 + ROM.BIOS + OUT (SYS_PORT.ROM),A + OUT (FDC_93.DrvCTRL),A + push hl + pop hl + LD A,#3C ;!HARDCODE команда для ВГ93 + OUT (FDC_93.DrvCTRL),A + push hl + pop hl + XOR A + OUT (FDC_93.Command),A + ; Выключить доступ к контроллеру диска + LD A,CNF_PORT.CNF_0 + ROM.BIOS + OUT (SYS_PORT.ROM),A + ; set HDD1/not-HDD2 + LD A,IDE.Chanel.Primary + OUT (IDE.Chanel.Set),A + LD BC,#7FFD + LD A,#10 + OUT (C),A ; BASIC_48 mode + LD B,#1F + LD A,01 + OUT (C),A ; RAM-0 mode !!! + ; очистка буферов клавиатуры и мыши в SIO + CALL .clean_kbd_buf + JR .clean_mouse_buf +.clean_kbd_buf: ; Clearing the keyboard buffer + IN A,(Z84.SIO.Ch_A.Ctrl) + RRCA + RET NC + IN A,(Z84.SIO.Ch_A.Data) + JR .clean_kbd_buf +.clean_mouse_buf:; Clearing the mouse buffer + IN A,(Z84.SIO.Ch_B.Ctrl) + RRCA + RET NC + IN A,(Z84.SIO.Ch_B.Data) + JR .clean_mouse_buf ;--------------------------------------- ;-----------------------------------------------------------------------; diff --git a/src/bios/rom/SETUP/messages.z80 b/src/bios/rom/SETUP/messages.z80 index 32e1de7..0a27ed0 100644 --- a/src/bios/rom/SETUP/messages.z80 +++ b/src/bios/rom/SETUP/messages.z80 @@ -526,7 +526,7 @@ msgStrings: _mSetStr ideSkiped, tmp_Counter : DZ 'Skipped ' _mSetStr ideFail, tmp_Counter : DZ 'Fail ' ; !FIXIT strFail _mSetStr spModel, tmp_Counter : DZ 'Model : ' -.str_ACEX_MODEL EQU $$$+2 ; указатель на строку ниже для патча апдейтером +.str_ACEX_MODEL EQU $$$+7 ; указатель на строку ниже для патча апдейтером _mSetStr spCNFver, tmp_Counter : DZ 'Core 1K30 : v' _mSetStr spMemory, tmp_Counter : DZ 'Memory : ' _mSetStr cmosFound, tmp_Counter : DZ 'CMOS : Found' @@ -677,7 +677,7 @@ msgRusStrings: _mSetStrRus ideSkiped, tmp_Counter : DZ 'Пропущен ' _mSetStrRus ideFail, tmp_Counter : DZ 'Не определён ' _mSetStrRus spModel, tmp_Counter : DZ 'Модель : ' -.str_ACEX_MODEL EQU $$$+2 ; указатель на строку ниже для патча апдейтером ; !FIXIT ? вытягивать через FN_CRIPT.Acex_ver ? +.str_ACEX_MODEL EQU $$$+7 ; указатель на строку ниже для патча апдейтером ; !FIXIT ? вытягивать через FN_CRIPT.Acex_ver ? _mSetStrRus spCNFver, tmp_Counter : DZ 'Ядро 1K30 : v' _mSetStrRus spMemory, tmp_Counter : DZ 'Память : ' _mSetStrRus cmosFound, tmp_Counter : DZ 'CMOS : Найден' diff --git a/src/bios/shared/RECOVERY.IMG b/src/bios/shared/RECOVERY.IMG index bb92284..b43d0d6 100755 Binary files a/src/bios/shared/RECOVERY.IMG and b/src/bios/shared/RECOVERY.IMG differ