убран баг XLAT
This commit is contained in:
parent
c8b5e323a5
commit
959648169a
@ -1 +1 @@
|
||||
Subproject commit 68681fbc50da463f1debae860e6db64603886d39
|
||||
Subproject commit 18c132c6e9b507cb92d2144f5497278f021a0292
|
||||
@ -51,7 +51,7 @@ FDD_5x.GETMED:
|
||||
ELSE
|
||||
LD HL,(FDD_INI_TABLE.FDD_0.SECTORS)
|
||||
LD DE,(FDD_INI_TABLE.FDD_0.CYLINDL)
|
||||
LD IX,(FDD_INI_TABLE.FDD_0.B_P_S)
|
||||
LD IX,(FDD_INI_TABLE.FDD_0.BytesPerSector)
|
||||
LD A,(FDD_INI_TABLE.FDD_0.F144)
|
||||
ENDIF
|
||||
LD B,A
|
||||
@ -102,7 +102,7 @@ FDD_5x.SETMED:
|
||||
LD A,B
|
||||
LD (FDD_INI_TABLE.FDD_0.SECTORS),HL
|
||||
LD (FDD_INI_TABLE.FDD_0.CYLINDL),DE
|
||||
LD (FDD_INI_TABLE.FDD_0.B_P_S),IX
|
||||
LD (FDD_INI_TABLE.FDD_0.BytesPerSector),IX
|
||||
LD (FDD_INI_TABLE.FDD_0.F144),A
|
||||
ENDIF
|
||||
EX AF,AF'
|
||||
@ -200,7 +200,7 @@ FDD_5x.LONG_READ:
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD IY,(FDD_INI_TABLE.FDD_0.B_P_S)
|
||||
LD IY,(FDD_INI_TABLE.FDD_0.BytesPerSector)
|
||||
LD XH,C
|
||||
LD A,(FDD_INI_TABLE.FDD_0.SECTORS)
|
||||
LD C,A
|
||||
@ -347,7 +347,7 @@ FDD_5x.LONG_WRITE:
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD IY,(FDD_INI_TABLE.FDD_0.B_P_S)
|
||||
LD IY,(FDD_INI_TABLE.FDD_0.BytesPerSector)
|
||||
LD XH,C
|
||||
LD A,(FDD_INI_TABLE.FDD_0.SECTORS)
|
||||
LD C,A
|
||||
|
||||
@ -227,6 +227,7 @@ EMM.FreeMemRMD:
|
||||
;------[
|
||||
; Žá¢®¡®¤¨âì ¡«®ª ¯ ¬ïâ¨
|
||||
; ‚室: A - <20>€—€‹Ž –…<E28093>Ž—Šˆ
|
||||
; <20>… <20>Ž<EFBFBD>’ˆ’œ DE!!!
|
||||
;EMM_FN3M:
|
||||
EMM.FreeMem:
|
||||
AND A
|
||||
@ -242,7 +243,7 @@ EMM.FreeMem:
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
|
||||
LD H,high (SYS_PAGE.RAMD_FAT); - #4000 - #4000) ; !FIXIT SAFE_RGADR +
|
||||
LD H,high (SYS_PAGE.RAMD_FAT)
|
||||
LD A,L
|
||||
EMM_F3M_L1:
|
||||
LD L,A
|
||||
|
||||
@ -430,6 +430,7 @@ REINIT: DEC B
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
; ¥ ¤®«¦® ¯®àâ¨âì DE
|
||||
SET_ROM_FLAG_ZX:
|
||||
EX AF,AF'
|
||||
IN A,(SLOT3)
|
||||
|
||||
43
src/bios/rom/SETUP/IM2_INT.asm
Normal file
43
src/bios/rom/SETUP/IM2_INT.asm
Normal file
@ -0,0 +1,43 @@
|
||||
;
|
||||
before_intPointer EQU $
|
||||
BLOCK #FF - low $,0 ; ¢ëà ¢¨¢ ¨¥ #xxFF
|
||||
INT_POINTER: WORD 0
|
||||
|
||||
ASSERT +low INT_POINTER = #FF, 'ERROR! Not valid interrupt pointer!'
|
||||
IFDEF PREBUILD
|
||||
ASSERT INT_POINTER-before_intPointer < 16, 'Warning! To much space before INT_POINTER.'
|
||||
ELSE
|
||||
IF INT_POINTER-before_intPointer > 16
|
||||
DISPLAY 'Warning! To much space before INT_POINTER: ',/D,INT_POINTER-before_intPointer
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
INT_HANDLER:
|
||||
PUSH AF
|
||||
EX AF,AF'
|
||||
PUSH AF
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
EXX
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
PUSH IX
|
||||
PUSH IY
|
||||
CALL KEYSCAN
|
||||
POP IY
|
||||
POP IX
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
EXX
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
POP AF
|
||||
EX AF,AF'
|
||||
POP AF
|
||||
EI
|
||||
RETI
|
||||
;
|
||||
@ -51,7 +51,7 @@ SF_ALT EQU 1
|
||||
SF_BUFF EQU 0
|
||||
DB 3
|
||||
;
|
||||
UNCODE: DW 0000
|
||||
;UNCODE: DW 0000
|
||||
;
|
||||
|
||||
; D15 - LShift
|
||||
@ -185,15 +185,25 @@ RESCANN:
|
||||
JR Z,F0_KEY
|
||||
CP #E0
|
||||
JR Z,E0_KEY
|
||||
;
|
||||
CP #E1
|
||||
IF USE_E1_SCANCODE
|
||||
JR Z,E1_KEY
|
||||
ELSE
|
||||
JR Z,RESCANN
|
||||
ENDIF
|
||||
;
|
||||
BIT FLAG_F0,(IX+KEYFLG)
|
||||
JR NZ,UN_KEY
|
||||
;
|
||||
LD L,A
|
||||
CALL XLAT
|
||||
CALL SHIFTS
|
||||
RES FLAG_E0,(IX+KEYFLG)
|
||||
IF USE_E1_SCANCODE
|
||||
RES FLAG_E1,(IX+KEYFLG)
|
||||
ENDIF
|
||||
;
|
||||
;[ ] 29/02/2024 ¢ë£à¥¡á⨠¢¥áì ¡ãä¥à
|
||||
JR Z,RESCANN ;IT'S SHIFT KEY
|
||||
; RET Z ;IT'S SHIFT KEY
|
||||
@ -235,7 +245,7 @@ RESCANN:
|
||||
;-----------------------;
|
||||
LD BC,(KEYFLAG)
|
||||
CALL PUTSYM
|
||||
RET
|
||||
JP RESCANN
|
||||
|
||||
E0_KEY: SET FLAG_E0,(IX+KEYFLG)
|
||||
JR RESCANN
|
||||
@ -243,41 +253,43 @@ E0_KEY: SET FLAG_E0,(IX+KEYFLG)
|
||||
F0_KEY: SET FLAG_F0,(IX+KEYFLG)
|
||||
JR RESCANN
|
||||
|
||||
IF USE_E1_SCANCODE
|
||||
E1_KEY: SET FLAG_E1,(IX+KEYFLG)
|
||||
JR RESCANN
|
||||
ENDIF
|
||||
|
||||
UN_KEY: RES FLAG_F0,(IX+KEYFLG)
|
||||
LD L,A
|
||||
CALL XLAT
|
||||
CALL UNSHIFT
|
||||
RES FLAG_E0,(IX+KEYFLG)
|
||||
LD H,0
|
||||
LD (UNCODE),HL
|
||||
;LD H,0
|
||||
;LD (UNCODE),HL
|
||||
RET
|
||||
|
||||
CAPS_X: LD A,(IX+K_LOCK)
|
||||
XOR #01
|
||||
LD (IX+K_LOCK),A
|
||||
CAPS_X: LD A,(KEYFLAG)
|
||||
XOR 1<<CAPS_L
|
||||
LD (KEYFLAG),A
|
||||
RET
|
||||
|
||||
INS_X: LD A,(IX+K_LOCK)
|
||||
XOR #02
|
||||
LD (IX+K_LOCK),A
|
||||
INS_X: LD A,(KEYFLAG)
|
||||
XOR 1<<INS_L
|
||||
LD (KEYFLAG),A
|
||||
RET
|
||||
|
||||
NUM_X: LD A,(IX+K_LOCK)
|
||||
XOR #08
|
||||
LD (IX+K_LOCK),A
|
||||
NUM_X: LD A,(KEYFLAG)
|
||||
XOR 1<<NUM_L
|
||||
LD (KEYFLAG),A
|
||||
RET
|
||||
|
||||
PAUSE_X:
|
||||
BIT X_CTRL,(IX+K_SHIFT)
|
||||
RET Z
|
||||
POP HL
|
||||
LD A,(IX+K_LOCK)
|
||||
XOR #40
|
||||
LD (IX+K_LOCK),A
|
||||
BIT PAUSE_L,(IX+K_LOCK)
|
||||
LD A,(KEYFLAG)
|
||||
XOR 1<<PAUSE_L
|
||||
LD (KEYFLAG),A
|
||||
AND 1<<PAUSE_L
|
||||
RET Z
|
||||
EI
|
||||
.loop: HALT
|
||||
@ -286,9 +298,9 @@ PAUSE_X:
|
||||
DI
|
||||
RET
|
||||
|
||||
SCL_X: LD A,(IX+K_LOCK)
|
||||
XOR #04
|
||||
LD (IX+K_LOCK),A
|
||||
SCL_X: LD A,(KEYFLAG)
|
||||
XOR 1<<SCRL_L
|
||||
LD (KEYFLAG),A
|
||||
RET
|
||||
|
||||
;///////////////////////////////////////////////////////////////////////
|
||||
@ -376,7 +388,6 @@ SCL_X: LD A,(IX+K_LOCK)
|
||||
;;
|
||||
UNSHIFT:
|
||||
LD A,L
|
||||
|
||||
CP #37 ;L ALT
|
||||
JR Z,.L_ALT
|
||||
CP #39 ;R ALT
|
||||
@ -422,7 +433,6 @@ UNSHIFT:
|
||||
;;
|
||||
SHIFTS:
|
||||
LD A,L
|
||||
|
||||
CP #37 ;L ALT
|
||||
JR Z,.L_ALT
|
||||
CP #39 ;R ALT
|
||||
@ -498,7 +508,8 @@ SHF2TAB:
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
|
||||
_mInfoALIGN 256,0
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
; _mInfoALIGN 256,0 ; ¡¥§ ¢ëà ¢¨¢ ¨ï
|
||||
XLAT_T:
|
||||
; 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||||
DB #00,#43,#00,#3F,#3D,#3B,#3C,#46,#00,#44,#42,#40,#3E,#0F,#00,#00 ;00
|
||||
@ -510,6 +521,9 @@ XLAT_T:
|
||||
DB #00,#00,#00,#00,#00,#00,#0E,#00,#00,#51,#00,#54,#57,#00,#00,#00 ;60
|
||||
DB #50,#4F,#52,#55,#56,#58,#01,#49,#45,#4D,#53,#4C,#4B,#59,#48,#00 ;70
|
||||
DB #00,#00,#00,#41,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 ;80
|
||||
XLAT_T.Size EQU $-XLAT_T
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
XLAT: BIT FLAG_E0,(IX+KEYFLG)
|
||||
JR Z,W_O_E0
|
||||
@ -534,23 +548,39 @@ XLAT: BIT FLAG_E0,(IX+KEYFLG)
|
||||
RET Z
|
||||
|
||||
LD L,A
|
||||
W_O_E0: LD H,high XLAT_T
|
||||
W_O_E0: ; â ¡«¨æ á ¢ëà ¢¨¢ ¨¥¬ 256
|
||||
; LD H,high XLAT_T
|
||||
; LD L,(HL)
|
||||
;
|
||||
; ¡¥§ ¢ëà ¢¨¢ ¨ï
|
||||
; [ ] 31/03/2024 ¨á¯à ¢«¥ ¡ £ á ¢ë室®¬ § £à ¨æë â ¡«¨æë XLAT_T
|
||||
CP XLAT_T.Size
|
||||
LD L,0
|
||||
RET NC
|
||||
;
|
||||
LD HL,XLAT_T
|
||||
ADD A,L
|
||||
LD L,A
|
||||
JR NC,.no_inc
|
||||
INC H
|
||||
.no_inc:
|
||||
LD L,(HL)
|
||||
RET
|
||||
RET
|
||||
|
||||
; !TODO ¯®á¬®âà¥âì
|
||||
;INPCODE:
|
||||
; BIT 1,(IX+1) ;00110000
|
||||
; JR NZ,FN_KEY ;LRCAcaRP
|
||||
|
||||
INPCODE:
|
||||
LD D,L
|
||||
INPCODE: LD D,L
|
||||
LD E,0
|
||||
; BIT LANG_L,(IX+K_LOCK) ; !TODO ¢¥àãâì àãá᪨©? € § 祬?
|
||||
; JP NZ,RUSCODE
|
||||
LD A,(IX+K_SHIFT)
|
||||
AND #C0
|
||||
JR NZ,SHIFT_L
|
||||
; !TODO ¢¥àãâì àãá᪨©? € § 祬?
|
||||
; BIT LANG_L,(IX+K_LOCK)
|
||||
; JP NZ,RUSCODE
|
||||
LD A,(KEYCTRL)
|
||||
AND 1<<L_SHIFT | 1<<R_SHIFT
|
||||
JR NZ,.SHIFT
|
||||
SET 7,D
|
||||
BIT X_ALT,(IX+K_SHIFT)
|
||||
RET NZ
|
||||
@ -559,24 +589,19 @@ INPCODE:
|
||||
LD D,L
|
||||
BIT CAPS_L,(IX+K_LOCK)
|
||||
LD BC,CAPSTAB
|
||||
JR NZ,CONVER
|
||||
JR NZ,CONVERT.NO_SET
|
||||
LD BC,NORMTAB
|
||||
CONVER:
|
||||
LD H,0
|
||||
ADD HL,BC
|
||||
LD E,(HL)
|
||||
RET
|
||||
|
||||
SHIFT_L:
|
||||
LD BC,SHIFTAB
|
||||
JR CONVERT.NO_SET
|
||||
;
|
||||
.SHIFT: LD BC,SHIFTAB
|
||||
BIT CAPS_L,(IX+K_LOCK)
|
||||
JR Z,CONVER5
|
||||
JR Z,CONVERT.SET
|
||||
LD BC,SHF2TAB
|
||||
CONVER5:
|
||||
LD H,0
|
||||
CONVERT: ;
|
||||
.SET: SET 7,D
|
||||
.NO_SET: LD H,0
|
||||
ADD HL,BC
|
||||
LD E,(HL)
|
||||
SET 7,D
|
||||
RET
|
||||
|
||||
; !TODO ¢¥àãâì àãá᪨©? € § 祬?
|
||||
@ -699,22 +724,21 @@ Ent EQU #0D
|
||||
;================================
|
||||
|
||||
BEEP: LD A,#10
|
||||
OUT (#FE),A
|
||||
OUT (ZX_Beeper),A
|
||||
LD B,D
|
||||
LD C,E
|
||||
BPP: DEC BC
|
||||
.loop1: DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,BPP
|
||||
LD A,#00
|
||||
OUT (#FE),A
|
||||
JR NZ,.loop1
|
||||
XOR A ;LD A,#00
|
||||
OUT (ZX_Beeper),A
|
||||
LD B,D
|
||||
LD C,E
|
||||
BPP2:
|
||||
DEC BC
|
||||
.loop2: DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,BPP2
|
||||
JR NZ,.loop2
|
||||
DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
|
||||
@ -299,48 +299,49 @@ CLEARM: IN A,(SLOT3)
|
||||
|
||||
;
|
||||
;
|
||||
before_intPointer EQU $
|
||||
BLOCK #FF - low $,0 ; ¢ëà ¢¨¢ ¨¥ #xxFF
|
||||
INT_POINTER: WORD 0
|
||||
; before_intPointer EQU $
|
||||
; BLOCK #FF - low $,0 ; ¢ëà ¢¨¢ ¨¥ #xxFF
|
||||
; INT_POINTER: WORD 0
|
||||
|
||||
ASSERT +low INT_POINTER = #FF, 'ERROR! Not valid interrupt pointer!'
|
||||
IFDEF PREBUILD
|
||||
ASSERT INT_POINTER-before_intPointer < 16, 'Warning! To much space before INT_POINTER.'
|
||||
ELSE
|
||||
IF INT_POINTER-before_intPointer > 16
|
||||
DISPLAY 'Warning! To much space before INT_POINTER: ',/D,INT_POINTER-before_intPointer
|
||||
ENDIF
|
||||
ENDIF
|
||||
; ASSERT +low INT_POINTER = #FF, 'ERROR! Not valid interrupt pointer!'
|
||||
; IFDEF PREBUILD
|
||||
; ASSERT INT_POINTER-before_intPointer < 16, 'Warning! To much space before INT_POINTER.'
|
||||
; ELSE
|
||||
; IF INT_POINTER-before_intPointer > 16
|
||||
; DISPLAY 'Warning! To much space before INT_POINTER: ',/D,INT_POINTER-before_intPointer
|
||||
; ENDIF
|
||||
; ENDIF
|
||||
|
||||
; INT_HANDLER:
|
||||
; PUSH AF
|
||||
; EX AF,AF'
|
||||
; PUSH AF
|
||||
; PUSH BC
|
||||
; PUSH DE
|
||||
; PUSH HL
|
||||
; EXX
|
||||
; PUSH BC
|
||||
; PUSH DE
|
||||
; PUSH HL
|
||||
; PUSH IX
|
||||
; PUSH IY
|
||||
; CALL KEYSCAN
|
||||
; POP IY
|
||||
; POP IX
|
||||
; POP HL
|
||||
; POP DE
|
||||
; POP BC
|
||||
; EXX
|
||||
; POP HL
|
||||
; POP DE
|
||||
; POP BC
|
||||
; POP AF
|
||||
; EX AF,AF'
|
||||
; POP AF
|
||||
; EI
|
||||
; RETI
|
||||
; ;
|
||||
|
||||
INT_HANDLER:
|
||||
PUSH AF
|
||||
EX AF,AF'
|
||||
PUSH AF
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
EXX
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
PUSH IX
|
||||
PUSH IY
|
||||
CALL KEYSCAN
|
||||
POP IY
|
||||
POP IX
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
EXX
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
POP AF
|
||||
EX AF,AF'
|
||||
POP AF
|
||||
EI
|
||||
RETI
|
||||
;
|
||||
INT_OFF:
|
||||
DI
|
||||
LD A,#3F
|
||||
@ -1190,6 +1191,10 @@ CNF_VER_PRINT:
|
||||
; LD BC,#0A86
|
||||
; JP_to_BIOS
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
INCLUDE 'IM2_INT.asm'
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
PRNHEX: LD D,A
|
||||
RRCA
|
||||
RRCA
|
||||
@ -1243,6 +1248,7 @@ PRNTIME:
|
||||
OUT (SLOT3),A
|
||||
RET
|
||||
|
||||
|
||||
PMEMORY:
|
||||
ADD HL,HL
|
||||
ADD HL,HL
|
||||
@ -1387,6 +1393,9 @@ TRDOSX:
|
||||
; OUT (SLOT3),A
|
||||
; RET
|
||||
;
|
||||
|
||||
|
||||
|
||||
setFRAME:
|
||||
.double:
|
||||
LD HL,.dataDoubleAll
|
||||
@ -1432,7 +1441,7 @@ ElementsBuffer:
|
||||
INCLUDE 'SETTINGS.asm'
|
||||
INCLUDE 'KEY.asm'
|
||||
;.......................................
|
||||
;
|
||||
|
||||
KEY: EI
|
||||
JP WAITKEY
|
||||
|
||||
@ -1532,6 +1541,7 @@ PRINT_CHANEL:
|
||||
JP LP_PRINT_LINE6
|
||||
;
|
||||
|
||||
|
||||
;---------------------------------------
|
||||
INCLUDE 'src/bios/ROM/SETUP/messages.z80'
|
||||
;---------------------------------------
|
||||
|
||||
@ -9,6 +9,8 @@
|
||||
DEFINE PICTURE_FILE './src/bios/logo/psfathers.bmp'
|
||||
DEFINE StandartCGApallete 1 ; <20>®¤ª«îç âì ¯ «¨âàã ¨§ standart_colors.inc
|
||||
DEFINE BitStream_SizeInPages 4
|
||||
DEFINE USE_E1_SCANCODE 0
|
||||
|
||||
|
||||
; ‡ ¤¥à¦ª ¢ ª ¤à å ¯®á«¥ ®âà¨á®¢ª¨ «®£®â¨¯ (0 = 256)
|
||||
DEFINE LOGO_DELAY_MIN 25
|
||||
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user