bug fixes

This commit is contained in:
Anatoliy Belyanskiy 2024-06-23 02:34:22 +10:00
parent f8b40e8acf
commit 1af84f585b
8 changed files with 211 additions and 220 deletions

@ -1 +1 @@
Subproject commit 399bf41c5cbd12d2866204ee3ff1cc357a3d3a99
Subproject commit 1cb8eb13fb8e8b20bba324a5ab9f4e18d6bf8b3c

View File

@ -400,7 +400,7 @@ EXTINT: OR A
RET
.JPHL: JP (HL)
.stackDepth EQU 32 ; à ááâ®ï­¨¥ ®â ª®­æ  ¯à®æ¥¤ãàë ¤® ¢¥à設ë á⥪ .
.stackDepth EQU 64 ; à ááâ®ï­¨¥ ®â ª®­æ  ¯à®æ¥¤ãàë ¤® ¢¥à設ë á⥪ .
.switchProcedure.size EQU $-.switchProcedure
ENDIF
;--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==

View File

@ -64,8 +64,10 @@
;=============================================================
MACRO TEST_40
;[x] ¢ª«î稫 31/10/23, ç¨áâ® ­  •í««®ããã㨨¨­
;
EX AF,AF'
JR C,.LLL
INC D ; ०¨¬ 40
.LLL: EX AF,AF'
;
ENDM

View File

@ -600,7 +600,7 @@ ERRSUM+1:
CHEKOK: ;CALL ScreenPOS.GET_CUR
CALL LP_GET_PLACE
PUSH DE
CALL LOGOTYP
CALL LOGOTYPE
LD DE,#0000
;CALL ScreenPOS.LOCAT
@ -706,13 +706,13 @@ ABOOT: LD A,msgStrings.bootAltDrv
;EI
CALL INT_ON
AGAKEY: CALL WAITKEY
LD HL,#4F00 ; DEL - go to settings
LD HL,#4F00 ; DEL - go to settings
;AND A
SBC HL,DE
JR Z,CSETUP
CP #1B ; ESC - go to zx spectrum mode
JR Z,ENTER_SETUP
CP #1B ; ESC - go to zx spectrum mode
JP Z,EXIT_SETUP
CP #0D ; ENTER - restart
CP #0D ; ENTER - restart
JP NZ,AGAKEY
XOR A
JP Start_again
@ -720,17 +720,18 @@ AGAKEY: CALL WAITKEY
TSETUP:
CALL SCANKEY
RET Z
LD HL,#4F00
LD HL,#4F00 ; DEL - go to settings
AND A
SBC HL,DE
JR Z,CSETUP
JR Z,ENTER_SETUP
LD HL,#011B
AND A
SBC HL,DE
JR NZ,TSETUP
POP HL ; 㡨ࠥ¬ «¨è­¥¥
JP EXIT_SETUP
CSETUP: XOR A
ENTER_SETUP:
XOR A
LD (ITEM_Restore),A
CALL SETTINGS
XOR A
@ -783,28 +784,29 @@ writeDateTimeToCmos: ;!FIXIT
CALL CMOS_WR
RET
RESCREEN:
;R06
LD A,#1F ;!HARDCODE READ SCREEN POSITION
CALL READCMS
PUSH AF
IN A,(SLOT3)
LD E,A
LD A,DCP_PAGE
OUT (SLOT3),A
LD A,(#C400) ;c400 for first cfg 50176 ; !TODO ¬®¦­® ¯¥à¥¤¥« âì ­  ¢ë§®¢ ä㭪樨 ¡¨®á 
LD D,A
LD A,#CB
LD (#C400),A
POP AF
LD BC,0
OUT (C),A
LD A,D
LD (#C400),A
LD A,E
OUT (SLOT3),a
;R06
RET
RESCREEN: ;R06
LD A,CMOS_CELL.ScreenPosition
CALL READCMS
LD B,A
LD A,ACEX.HOLD
JP SET_PORTS
; PUSH AF
; IN A,(SLOT3)
; LD E,A
; LD A,DCP_PAGE
; OUT (SLOT3),A
; LD A,(#C400) ;c400 for first cfg 50176 ; !TODO ¬®¦­® ¯¥à¥¤¥« âì ­  ¢ë§®¢ ä㭪樨 ¡¨®á 
; LD D,A
; LD A,ACEX.HOLD
; LD (#C400),A
; POP AF
; LD BC,0
; OUT (C),A
; LD A,D
; LD (#C400),A
; LD A,E
; OUT (SLOT3),a
; RET
;
;R07
; CMOSINIT:

View File

@ -38,7 +38,7 @@ SETTINGS:
LD DE,#0602
LD BC,#134C
CALL PBORDER
CALL PBORDER ;!FIXIT
CALL setFRAME.single

View File

@ -155,177 +155,163 @@ TLINEH:
; E - X
; B - CY
; C - CX
PBORDER:
PUSH BC
LD A,C
DEC A
LD (.BSHI),A
DEC A
LD (.BHOR),A
LD (.BHOR2),A
;CALL ScreenPOS.LOCAT
CALL LP_SET_PLACE
LD A,(ElementsBuffer.UpLeft)
LD H,E
CALL PRSYM
LD A,(ElementsBuffer.HorizontalLine)
.BHOR+1:
LD B,1
PBORDER: PUSH BC
LD A,C
DEC A
LD (.BSHI),A
DEC A
LD (.BHOR),A
LD (.BHOR2),A
CALL LP_SET_PLACE
LD A,(ElementsBuffer.UpLeft)
LD H,E
CALL PRSYM
LD A,(ElementsBuffer.HorizontalLine)
.BHOR+1: LD B,1
CALL LP_PRINT_SYM
;CALL PRSYMB
CALL LP_PRINT_SYM
LD A,(ElementsBuffer.UpRight)
CALL PRSYM
POP BC
DEC B
DEC B
INC D
LD E,H
.loop: PUSH BC
CALL LP_SET_PLACE
LD A,(ElementsBuffer.VerticalLine)
CALL PRSYM
LD A,H
.BSHI+1: ADD A,#00
LD E,A
CALL LP_SET_PLACE
LD A,(ElementsBuffer.VerticalLine)
CALL PRSYM
POP BC
LD E,H
INC D
DJNZ .loop
LD A,(ElementsBuffer.UpRight)
CALL PRSYM
POP BC
DEC B
DEC B
INC D
LD E,H
CALL LP_SET_PLACE
LD A,(ElementsBuffer.DownLeft)
CALL PRSYM
LD A,(ElementsBuffer.HorizontalLine)
.BHOR2+1: LD B,1
CALL LP_PRINT_SYM
LD A,(ElementsBuffer.DownRight)
CALL PRSYM
RET
.loop: PUSH BC
;CALL ScreenPOS.LOCAT
CALL LP_SET_PLACE
LD A,(ElementsBuffer.VerticalLine)
CALL PRSYM
LD A,H
.BSHI+1:
ADD A,#00
LD E,A
;CALL ScreenPOS.LOCAT
CALL LP_SET_PLACE
LD A,(ElementsBuffer.VerticalLine)
CALL PRSYM
POP BC
LD E,H
INC D
DJNZ .loop
;CALL ScreenPOS.LOCAT
CALL LP_SET_PLACE
LD A,(ElementsBuffer.DownLeft)
CALL PRSYM
LD A,(ElementsBuffer.HorizontalLine)
.BHOR2+1:
LD B,1
;CALL PRSYMB
CALL LP_PRINT_SYM
LD A,(ElementsBuffer.DownRight)
CALL PRSYM
RET
PRSYM: ;LD BC,1*256 + BIOS.LP_PRINT_SYM
;JP_to_BIOS
LD B,1
PRSYM: LD B,1
JP LP_PRINT_SYM
; PRSYMB: LD C,BIOS.LP_PRINT_SYM
; JP_to_BIOS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//////////////////// LOGO \\\\\\\\\\\\\\\\\\\\
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LOGOTYPE: CALL SHOW_LOGO
LD BC,CMOS_CELL.BootUpParams.Mask.StartDelay
CALL G_VALUE
OR A
JR Z,.EASYDLY ; Delay average
DEC A
JR Z,.SKIPDLY ; Delay disabled
; Delay enabled
LD B,LOGO_DELAY_NORM
.loop EI
push bc
HALT
CALL go_setup
pop bc
DJNZ .loop
; Delay average
.SKIPDLY: LD B,LOGO_DELAY_MAX
.MMA: PUSH BC
EI
HALT
DI
CALL FADE
POP BC
DJNZ .MMA
; ;
.ERASE_LOGO: LD IX,win_descriptor.tab80x32
LD HL,#0000
LD E,1
;
EI
HALT
DI
CALL WIN_OPEN
;
LD DE,0
LD HL,#0920 ;!HARDCODE LOGOTYPE SIZE
LD B,7
JP LP_CLS_WIN
; Delay disabled
.EASYDLY: LD B,LOGO_DELAY_MIN
.loop2: EI
HALT
DJNZ .loop2
DI
JR .ERASE_LOGO
; ; ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LOGOTYP:
CALL LOGOX
LD BC,CMOS_CELL.BootUpParams.Mask.StartDelay
CALL G_VALUE
OR A
JR Z,EASYDLY ;MIN (DISABLE)
DEC A
JR Z,SKIPDLY ;NORMAL
LD B,LOGO_DELAY_NORM
.loop EI
push bc
HALT
call go_setup
pop bc
DJNZ .loop
SKIPDLY:
LD B,LOGO_DELAY_MAX
.MMA: PUSH BC
EI
HALT
DI
CALL FADE
POP BC
DJNZ .MMA
NOWLOGO:
LD IX,win_descriptor.tab80x32
LD HL,#0000
LD E,1
EI
HALT
DI
CALL WIN_OPEN
LD DE,0
LD HL,#0920 ;!HARDCODE LOGOTYPE SIZE
LD B,7
JP LP_CLS_WIN
EASYDLY:
LD B,LOGO_DELAY_MIN
.loop: EI
HALT
DJNZ .loop
DI
JR NOWLOGO
LOGOX: LD IX,win_descriptor.tab320x256
LD HL,#0000
LD E,1
CALL WIN_OPEN
SHOW_LOGO: LD IX,win_descriptor.tab320x256
LD HL,#0000
LD E,1
CALL WIN_OPEN
SAFE_PORTY
DI
LD A,1
OUT (SYS_PORT.ON),A
OUT (ROM.SLOT0),A
DI
LD A,1
OUT (SYS_PORT.ON),A
OUT (ROM.SLOT0),A
LD HL,MAIN_LOGO.Pallete
LD DE,memBUFFER.Shared
LD BC,MAIN_LOGO.Pallete.length
LDIR
LD HL,MAIN_LOGO.Pallete
LD DE,memBUFFER.Shared
LD BC,MAIN_LOGO.Pallete.length
LDIR
XOR A
OUT (ROM.SLOT0),A
OUT (SYS_PORT.ON),A
EI
XOR A
OUT (ROM.SLOT0),A
OUT (SYS_PORT.ON),A
EI
LD HL,memBUFFER.Shared
; A = 0
LD D,A ; SET DESKTOP PALETTE & CURSOR COLORS
LD E,A
LD B,def_pal_mask
CALL PIC_SET_PAL
LD HL,memBUFFER.Shared
; A = 0
LD D,A ; SET DESKTOP PALETTE & CURSOR COLORS
LD E,A
LD B,def_pal_mask
CALL PIC_SET_PAL
SAFE_PORTY
DI
LD A,1
OUT (SYS_PORT.ON),A
;LD A,1
OUT (ROM.SLOT0),A
DI
LD A,1
OUT (SYS_PORT.ON),A
;LD A,1
OUT (ROM.SLOT0),A
LD HL,MAIN_LOGO.Raster ; ­ ç «® ª à⨭ª¨ ¢ ¡ ­ª¥ <20>‡“
; CALL DECODE
CALL LOGO_TO_SCREEN
;
;--------------[<5B> áå «ª ]--------------[]
IF Pashalki
_PASHALKI_CODE
ENDIF
;--------------------------------------[]
;
XOR A
OUT (SYS_PORT.ON),A
OUT (ROM.SLOT0),A
EI
RET
LD HL,MAIN_LOGO.Raster ; ­ ç «® ª à⨭ª¨ ¢ ¡ ­ª¥ <20>‡“
; CALL DECODE
CALL LOGO_TO_SCREEN
;
;--------------[<5B> áå «ª ]--------------[]
IF Pashalki
_PASHALKI_CODE
ENDIF
;--------------------------------------[]
;
XOR A
OUT (SYS_PORT.ON),A
OUT (ROM.SLOT0),A
EI
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
win_descriptor:
.tab80x32 Window_UserVars{
@ -351,19 +337,20 @@ win_descriptor:
;
MACRO _mFADE
LD HL,memBUFFER.Shared
; A = 0
LD B,A
.loop:
DUP 3
CP (HL)
JR Z,1F
DEC (HL)
1: INC HL
EDUP
INC HL
DJNZ .loop
LD HL,memBUFFER.Shared
; A = 0
LD B,A
.loop: DUP 3
CP (HL)
JR Z,1F
DEC (HL)
1: INC HL
EDUP
INC HL
DJNZ .loop
ENDM
FADE: XOR A
_mFADE
_mFADE
@ -378,7 +365,7 @@ FADE: XOR A
SAFE_PORTY
go_setup: ; !FIXIT ¯¥à¥¤¥« âì ­  TSETUP
go_setup: ; !FIXIT ¯¥à¥¤¥« âì ­  TSETUP
CALL SCANKEY
RET Z
@ -394,7 +381,7 @@ go_setup: ; !FIXIT
LD HL,#0000
LD E,1
CALL WIN_OPEN
JP CSETUP
JP ENTER_SETUP
.to_EXIT_SETUP:
LD HL,(RET_TO_EXP_ADDR)

View File

@ -546,17 +546,17 @@ msgStrings:
_mSetStr bootOk, tmp_Counter : DZ ' OK'
_mSetStr afterBootFail, tmp_Counter : DZ 'PRESS <ENTER> TO REBOOT, <DEL> TO ENTER SETUP OR <ESC> TO ZX-MODE . . .'
;
_mSetStr parLang, tmp_Counter : DZ 'Language (Ÿ§ëª) : '
_mSetStr parLang, tmp_Counter : DZ 'Language (ï§ëª) : '
_mSetStr valLangEng, tmp_Counter : DZ 'English '
_mSetStr valLangRus, tmp_Counter : DZ '<EFBFBD>ãá᪨© '
_mSetStr parMemTest, tmp_Counter : DZ 'Memory Test : '
_mSetStr parMemTest, tmp_Counter : DZ 'Memory test : '
_mSetStr valDisabled, tmp_Counter : DZ 'Disabled'
_mSetStr valEnabled, tmp_Counter : DZ 'Enabled '
_mSetStr parSaveRAMdrvs, tmp_Counter : DZ 'Save RAM-disks : '
_mSetStr parUpdBios, tmp_Counter : DZ 'Update BIOS : '
_mSetStr parStartDelay, tmp_Counter : DZ 'Start Delay : '
_mSetStr valNormal, tmp_Counter : DZ 'Normal '
_mSetStr parTypRate, tmp_Counter : DZ 'Typematic Rate (Chars/Sec) : '
_mSetStr parStartDelay, tmp_Counter : DZ 'Start delay : '
_mSetStr valNormal, tmp_Counter : DZ 'Average '
_mSetStr parTypRate, tmp_Counter : DZ 'Typematic rate (chars/sec) : '
_mSetStr val_6, tmp_Counter : DZ '6 '
_mSetStr val_8, tmp_Counter : DZ '8 '
_mSetStr val_10, tmp_Counter : DZ '10'
@ -565,13 +565,13 @@ msgStrings:
_mSetStr val_20, tmp_Counter : DZ '20'
_mSetStr val_24, tmp_Counter : DZ '24'
_mSetStr val_30, tmp_Counter : DZ '30'
_mSetStr parTypDelay, tmp_Counter : DZ 'Typematic Delay (Msec) : '
_mSetStr parTypDelay, tmp_Counter : DZ 'Typematic delay (Msec) : '
_mSetStr val_250, tmp_Counter : DZ '250 '
_mSetStr val_500, tmp_Counter : DZ '500 '
_mSetStr val_750, tmp_Counter : DZ '750 '
_mSetStr val_1000, tmp_Counter : DZ '1000'
_mSetStr parRebootMsg, tmp_Counter : DZ 'Reboot message : '
_mSetStr parSysDsk, tmp_Counter : DZ 'System Disk : '
_mSetStr parSysDsk, tmp_Counter : DZ 'System disk : '
_mSetStr val1stFDD, tmp_Counter : DZ '1-st FDD'
_mSetStr val2ndFDD, tmp_Counter : DZ '2-nd FDD'
_mSetStr val1stIDE, tmp_Counter : DZ '1-st IDE'
@ -580,13 +580,13 @@ msgStrings:
_mSetStr val4thIDE, tmp_Counter : DZ '4-th IDE'
_mSetStr valRamDsk, tmp_Counter : DZ 'RAM-DISK'
_mSetStr valRecovery, tmp_Counter : DZ 'RECOVERY'
_mSetStr parAltSysDsk, tmp_Counter : DZ 'Alt. System Disk : '
_mSetStr parFddFirst, tmp_Counter : DZ 'FDD First : '
_mSetStr parAltSysDsk, tmp_Counter : DZ 'Alt. system disk : '
_mSetStr parFddFirst, tmp_Counter : DZ 'FDD first : '
_mSetStr valAuto, tmp_Counter : DZ 'Auto '
; _mSetStr val720, tmp_Counter : DZ '720K '
; _mSetStr val1440, tmp_Counter : DZ '1.44M '
_mSetStr valDash6, tmp_Counter : DZ '------'
_mSetStr parFddSecond, tmp_Counter : DZ 'FDD Second : '
_mSetStr parFddSecond, tmp_Counter : DZ 'FDD second : '
_mSetStr parPriIdeMA, tmp_Counter : DZ 'Primary IDE Master',#FF,' : '
_mSetStr valSetup, tmp_Counter : DZ 'Setup '
_mSetStr valCdRom, tmp_Counter : DZ 'CD-ROM'
@ -594,9 +594,9 @@ msgStrings:
_mSetStr parSecIdeMA, tmp_Counter : DZ 'Secondary IDE Master',#FF,' : '
_mSetStr parSecIdeSl, tmp_Counter : DZ 'Secondary IDE Slave',#FF,' : '
IF HDDwriteProtect
_mSetStr parHddWrPr, tmp_Counter : DZ 'HDD Write protect : '
_mSetStr parHddWrPr, tmp_Counter : DZ 'HDD write protect : '
ENDIF
_mSetStr parScreenY, tmp_Counter : DZ 'Y-Screen position : '
_mSetStr parScreenY, tmp_Counter : DZ 'Y-screen position : '
_mSetStr valMinus7, tmp_Counter : DZ '-7'
_mSetStr valMinus6, tmp_Counter : DZ '-6'
_mSetStr valMinus5, tmp_Counter : DZ '-5'
@ -612,7 +612,7 @@ msgStrings:
_mSetStr valPlus5, tmp_Counter : DZ '+5'
_mSetStr valPlus6, tmp_Counter : DZ '+6'
_mSetStr valPlus7, tmp_Counter : DZ '+7'
_mSetStr parScreenX, tmp_Counter : DZ 'X-Screen position : '
_mSetStr parScreenX, tmp_Counter : DZ 'X-screen position : '
_mSetStr parFrameInt, tmp_Counter : DZ 'Frame interrupt : '
_mSetStr valDash8, tmp_Counter : DZ '--------'
_mSetStr valScorpion, tmp_Counter : DZ 'Scorpion'
@ -621,7 +621,7 @@ msgStrings:
_mSetStr parVSync, tmp_Counter : DZ 'V-synchronization : '
_mSetStr val312_50, tmp_Counter : DZ '312/50Hz'
_mSetStr val320_49, tmp_Counter : DZ '320/49Hz'
_mSetStr parQuickStartROM, tmp_Counter : DZ 'Quick ROM Start : '
_mSetStr parQuickStartROM, tmp_Counter : DZ 'Quick ROM start : '
_mSetStr parTrDosA, tmp_Counter : DZ 'TR DOS A:> : '
_mSetStr valDefault, tmp_Counter : DZ 'Default'
_mSetStr valFDD, tmp_Counter : DZ 'FDD ' ; ????? ¯®¤ã¬ âì ª ª¨¥ ¢ à¨ ­âë ¢®§¬®¦­ë
@ -630,7 +630,7 @@ msgStrings:
_mSetStr parTrDosC, tmp_Counter : DZ 'TR DOS C:> : '
_mSetStr parTrDosD, tmp_Counter : DZ 'TR DOS D:> : '
IF NEW_FEATURE
_mSetStr parSetTime, tmp_Counter : DZ 'Date and Time setup : '
_mSetStr parSetTime, tmp_Counter : DZ 'Date and time setup : '
_mSetStr valFolder, tmp_Counter : DB 16,'ENTER',17,0
ENDIF
IF BETA_BUILD
@ -696,7 +696,7 @@ msgRusStrings:
_mSetStrRus bootOk, tmp_Counter : DZ ' OK'
_mSetStrRus afterBootFail, tmp_Counter : DZ '<EFBFBD>Œˆ <ENTER> Ÿ <EFBFBD><EFBFBD>ƒ<EFBFBD>Šˆ, <DEL> Ÿ <EFBFBD><EFBFBD>ŽŠ ˆˆ <ESC> Ÿ ZX-MODE . . .'
;
_mSetStrRus parLang, tmp_Counter : DZ 'Ÿ§ëª (Language) : '
_mSetStrRus parLang, tmp_Counter : DZ 'Ÿ§ëª (language) : '
_mSetStrRus valLangEng, tmp_Counter : DZ 'English '
_mSetStrRus valLangRus, tmp_Counter : DZ '<EFBFBD>ãá᪨© '
_mSetStrRus parMemTest, tmp_Counter : DZ '¥áâ¨à®¢ ­¨¥ ¯ ¬ï⨠: '
@ -705,7 +705,7 @@ msgRusStrings:
_mSetStrRus parSaveRAMdrvs, tmp_Counter : DZ '®åà ­¥­¨¥ RAM-¤¨áª®¢ : '
_mSetStrRus parUpdBios, tmp_Counter : DZ 'Ž¡­®¢«¥­¨¥ BIOS : '
_mSetStrRus parStartDelay, tmp_Counter : DZ '<EFBFBD> ç «ì­®¥ ®¦¨¤ ­¨¥ : '
_mSetStrRus valNormal, tmp_Counter : DZ 'Ž¡ëç­®¥ '
_mSetStrRus valNormal, tmp_Counter : DZ '।­¥¥ '
_mSetStrRus parTypRate, tmp_Counter : DZ 'ª®à®áâì  ¢â®¯®¢â®à  : '
_mSetStrRus val_6, tmp_Counter : DZ '6 '
_mSetStrRus val_8, tmp_Counter : DZ '8 '

Binary file not shown.