mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
параметр компиляции для сочетания клавиш на переключение языка раскладки ctrl+space или shift+ctrl
This commit is contained in:
parent
32a1547722
commit
ff2f2b9941
@ -148,7 +148,7 @@ confirm_flag+*: ld a,0
|
||||
; § ¯à®á¨âì æ¥«¥¢®© ¤¨áª
|
||||
ld a,(disk) ; § ¤ ë© ®¬¥à ¤¨áª
|
||||
add a,'A'
|
||||
ld (lett2),a
|
||||
ld (messages.lett2),a
|
||||
ld a,5 ; ¨¤¥ªá áâப¨ "Insert destination disk..."
|
||||
call print_string
|
||||
ld bc,3035h ; ¦¤¥¬ ¦ â¨ï ª« ¢¨è¨
|
||||
@ -198,7 +198,7 @@ ok_write1: ;
|
||||
;
|
||||
ld a,(disk) ; § ¤ ë© ®¬¥à ¤¨áª
|
||||
add a,'A'
|
||||
ld (lett1),a
|
||||
ld (messages.lett1),a
|
||||
ld a,1 ; ¨¤¥ªá áâப¨ "System installed on disk "
|
||||
call print_string
|
||||
ld a,(confirm_flag)
|
||||
@ -209,7 +209,7 @@ ok_write1: ;
|
||||
cp 2
|
||||
jr nc,exit-1 ; ¥ ¤¨áª®¢®¤ë
|
||||
add a,'A'
|
||||
ld (lett3),a
|
||||
ld (messages.lett3),a
|
||||
ld a,6 ; ¨¤¥ªá áâப¨ "Insert system disk..."
|
||||
call print_string
|
||||
ld bc,3035h ; ¦¤¥¬ ¦ â¨ï ª« ¢¨è¨
|
||||
@ -518,41 +518,39 @@ id_mem: db -1 ;
|
||||
;
|
||||
; á®®¡é¥¨ï
|
||||
messages: db 0
|
||||
db 0Dh,0Ah,"Boot and System files Installer v" ;0
|
||||
db "\r\nBoot and System files Installer v" ;0
|
||||
db major_version + '0','.'
|
||||
db (minor_version / 10) + '0',(minor_version % 10) + '0','.'
|
||||
db 0Dh,0Ah,0Ah
|
||||
db "Copyright (c) 2006-2022 Vasil Ivanov."
|
||||
db 0Dh,0Ah,0Ah
|
||||
db "Copyright (c) 2023 Sprinter Team."
|
||||
db 0Dh,0Ah,0Ah,0
|
||||
db "\r\n\nCopyright (c) 2006-2022 Vasil Ivanov."
|
||||
db "\r\n\nCopyright (c) 2023 Sprinter Team."
|
||||
db "\r\n\n",0
|
||||
;
|
||||
db "System successfully installed on disk " ;1
|
||||
lett1: db "X:",0Dh,0Ah,0Ah,0
|
||||
.lett1: db "X:\r\n\n",0
|
||||
;
|
||||
db "Installing boot loader...",0Dh,0Ah,0Ah,0 ;2
|
||||
db "Writing system files...",0Dh,0Ah,0Ah,0 ;3
|
||||
db "Installing boot loader...\r\n\n",0 ;2
|
||||
db "Writing system files...\r\n\n",0 ;3
|
||||
;
|
||||
db "Syntax: SYS X:",0Dh,0Ah ;4
|
||||
db " where X: - drive letter (A..Z)",0Dh,0Ah,0Ah,0
|
||||
db "Syntax: SYS X:\r\n" ;4
|
||||
db " where X: - drive letter (A..Z)\r\n\n",0
|
||||
;
|
||||
db "Insert destination disk in drive " ;5
|
||||
lett2: db "X:",0Dh,0Ah
|
||||
db "and strike any key when ready ...",0Dh,0Ah,0Ah,0
|
||||
.lett2: db "X:\r\n"
|
||||
db "and strike any key when ready ...\r\n\n",0
|
||||
;
|
||||
db "Insert system disk in drive " ;6
|
||||
lett3: db "X:",0Dh,0Ah
|
||||
db "and strike any key when ready ...",0Dh,0Ah,0Ah,0
|
||||
.lett3: db "X:\r\n"
|
||||
db "and strike any key when ready ...\r\n\n",0
|
||||
;
|
||||
db "Can't install boot on this disk",0Dh,0Ah,0Ah,0 ;7
|
||||
db "Invalid drive specification",0Dh,0Ah,0Ah,0 ;8
|
||||
db " Error: Can't open file",0Dh,0Ah,0Ah,0 ;9
|
||||
db " Error: Can't allocate memory",0Dh,0Ah,0Ah,0 ;10
|
||||
db " Error: Need DOS version 1.70.811 or higher",0Dh,0Ah,0Ah,0 ;11
|
||||
db " Error: Reading error",0Dh,0Ah,0Ah,0 ;12
|
||||
db " Error: Can't create file",0Dh,0Ah,0Ah,0 ;13
|
||||
db " Error: Writing error",0Dh,0Ah,0Ah,0 ;14
|
||||
endmess: db 0
|
||||
db "Can't install boot on this disk\r\n\n",0 ;7
|
||||
db "Invalid drive specification\r\n\n",0 ;8
|
||||
db " Error: Can't open file\r\n\n",0 ;9
|
||||
db " Error: Can't allocate memory\r\n\n",0 ;10
|
||||
db " Error: Need DOS version 1.70.811 or higher\r\n\n",0 ;11
|
||||
db " Error: Reading error\r\n\n",0 ;12
|
||||
db " Error: Can't create file\r\n\n",0 ;13
|
||||
db " Error: Writing error\r\n\n",0 ;14
|
||||
.endmess: db 0
|
||||
|
||||
|
||||
|
||||
@ -566,7 +564,7 @@ print_string: call get_string ;
|
||||
|
||||
; ¯®¨áª áâப¨ ¯® ¥¥ ¨¤¥ªáã ¢ 'a'
|
||||
get_string: ld hl,messages ; ᯨ᮪ ¬¥áá £ ¤«ï ¨¤¥ªá. ¤®áâã¯
|
||||
ld bc,endmess-messages ; à §¬¥à ᯨáª
|
||||
ld bc,messages.endmess - messages ; à §¬¥à ᯨáª
|
||||
inc a
|
||||
ex af,af'
|
||||
xor a
|
||||
|
||||
@ -67,6 +67,7 @@
|
||||
include 'API/GSwitch.asm'
|
||||
include 'API/Environ.ASM'
|
||||
include 'API/Lib_Sub.asm'
|
||||
include "API/EXECUTE.ASM"
|
||||
|
||||
|
||||
|
||||
|
||||
@ -613,20 +613,24 @@ FREE_PROCESS_FMs:
|
||||
LD A,(TASK)
|
||||
.loop: ADD IY,DE
|
||||
CP (IY+_sFM.TASK_NUM)
|
||||
CALL Z,.CLOSE
|
||||
DJNZ .loop
|
||||
RET
|
||||
;
|
||||
.CLOSE: PUSH IY
|
||||
PUSH DE
|
||||
JR NZ,.next
|
||||
; close fm
|
||||
PUSH AF
|
||||
XOR A
|
||||
OR (IY+_sFM.TASK_NUM)
|
||||
JR Z,.skip
|
||||
PUSH IY
|
||||
PUSH DE
|
||||
LD A,FMCOUNT+1
|
||||
SUB B
|
||||
CALL CLOSE_FN
|
||||
POP AF
|
||||
POP DE
|
||||
POP IY
|
||||
.skip: POP AF
|
||||
;
|
||||
.next: DJNZ .loop
|
||||
RET
|
||||
;
|
||||
;-----------------------------------------------------------------------
|
||||
|
||||
|
||||
@ -42,11 +42,32 @@ FM_BUF: _sFM
|
||||
*/
|
||||
|
||||
; ¢ë室¥ ¡¥§ ®è¨¡®ª IY 㪠§ë¢ ¥â ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
||||
MACRO _mFM_FIND
|
||||
CP FMCOUNT+1
|
||||
JR NC,ABS_FM
|
||||
PUSH DE
|
||||
; MACRO _mFM_FIND
|
||||
; CP FMCOUNT+1
|
||||
; CCF
|
||||
; RET C
|
||||
; PUSH DE
|
||||
|
||||
; LD IY,CORE_BUFFERS.FM_BUF
|
||||
; LD DE,CORE_BUFFERS.FM_BUF.Size
|
||||
; AND A
|
||||
; JR Z,.endLoop
|
||||
; .loop: ADD IY,DE
|
||||
; DEC A
|
||||
; JR NZ,.loop
|
||||
; .endLoop:
|
||||
; POP DE
|
||||
; ; A=0
|
||||
; OR (IY) ;+00 NAME
|
||||
; RET
|
||||
; ENDM
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
; ¢ë室¥ ¡¥§ ®è¨¡®ª IY 㪠§ë¢ ¥â ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
||||
FM_FIND: CP FMCOUNT+1
|
||||
JR NC,.error
|
||||
;
|
||||
PUSH DE
|
||||
LD IY,CORE_BUFFERS.FM_BUF
|
||||
LD DE,CORE_BUFFERS.FM_BUF.Size
|
||||
AND A
|
||||
@ -54,26 +75,33 @@ FM_BUF: _sFM
|
||||
.loop: ADD IY,DE
|
||||
DEC A
|
||||
JR NZ,.loop
|
||||
.endLoop:
|
||||
POP DE
|
||||
.endLoop: POP DE
|
||||
; A=0
|
||||
OR (IY) ;+00 NAME
|
||||
ENDM
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
RET
|
||||
.error: XOR A
|
||||
LD A,DSS_Error.sys.INVALID_HANDLE
|
||||
RET
|
||||
|
||||
SET_FM: _mFM_FIND
|
||||
LD A,DSS_Error.sys.NO_ERROR
|
||||
RET NZ
|
||||
ABS_FM LD A,DSS_Error.sys.INVALID_HANDLE
|
||||
SET_FM: CALL FM_FIND
|
||||
; error
|
||||
;LD A,DSS_Error.sys.INVALID_HANDLE
|
||||
; CF = 1
|
||||
SCF
|
||||
RET Z
|
||||
; no error
|
||||
XOR A ;LD A,DSS_Error.sys.NO_ERROR
|
||||
; CF = 0
|
||||
RET
|
||||
|
||||
|
||||
RES_FM: _mFM_FIND
|
||||
LD A,DSS_Error.sys.INVALID_HANDLE
|
||||
;EXX
|
||||
|
||||
RES_FM: CALL FM_FIND
|
||||
; error
|
||||
; LD A,DSS_Error.sys.INVALID_HANDLE
|
||||
SCF
|
||||
RET Z
|
||||
; no error
|
||||
XOR A
|
||||
LD (IY + _sFM.FS_REC.NAME),A
|
||||
RET
|
||||
@ -92,7 +120,7 @@ GET_FM: LD B,FMCOUNT
|
||||
SCF
|
||||
RET
|
||||
/*
|
||||
;!TEST CHECK LOCKING 10/11/2023
|
||||
;!TODO CHECK LOCKING 10/11/2023
|
||||
GET_FM: LD IY,0
|
||||
LD (.freeHandle),IY
|
||||
;
|
||||
|
||||
@ -237,7 +237,6 @@ PORTAL.out_MAIN: ;
|
||||
; = -- = -- = -- = -- = = -- = -- = = -- = -- = = -- = -- = -- = -- = --;
|
||||
;
|
||||
|
||||
|
||||
;
|
||||
CLEAR_BUFFER_AND_INIT_PROC:
|
||||
;------[CLEAR BUFFERS]------;
|
||||
@ -361,8 +360,7 @@ ADRST10: ;DS 512 ;,0
|
||||
INCLUDE "FS/FAT/FAT.ASM"
|
||||
INCLUDE "FS/FAT/FAT_X.ASM"
|
||||
INCLUDE "DOS_FM.ASM"
|
||||
|
||||
INCLUDE "EXECUTE.ASM"
|
||||
;INCLUDE "EXECUTE.ASM"
|
||||
INCLUDE "INTMOUSE.ASM"
|
||||
INCLUDE "Procedures.asm"
|
||||
INCLUDE "Kernel_Panic.asm"
|
||||
|
||||
484
DSS/KEYINTER.ASM
484
DSS/KEYINTER.ASM
@ -18,8 +18,8 @@ HOST DB #00
|
||||
K_LOCK EQU $-KEYFLAG
|
||||
LANG_L EQU 7
|
||||
PAUSE_L EQU 6
|
||||
RES5_L EQU 5
|
||||
RES4_L EQU 4
|
||||
LANG_R EQU 5 ; á®ç¥â ¨¥ ª« ¢¨è ¤«ï ¯¥à¥ª«î票ï ï§ëª ®â¦ â®
|
||||
LANG_S EQU 4 ; á®ç¥â ¨¥ ª« ¢¨è ¤«ï ¯¥à¥ª«î票ï ï§ëª ¦ â®
|
||||
NUM_L EQU 3
|
||||
SCRL_L EQU 2
|
||||
INS_L EQU 1
|
||||
@ -58,6 +58,7 @@ FLAG_S2 EQU 2
|
||||
SF_ALT EQU 1
|
||||
SF_BUFF EQU 0
|
||||
DB #03
|
||||
UNCODE DW 0 ; ¯®á«¥¤ïï ®â¦ â ï ª« ¢¨è
|
||||
|
||||
; D15 - LShift
|
||||
; D14 - RShift
|
||||
@ -87,7 +88,6 @@ SF_BUFF EQU 0
|
||||
; D7..D0 - ASCII code
|
||||
|
||||
|
||||
UNCODE DW 0
|
||||
|
||||
WAITKEY LD HL,HOST
|
||||
LD A,(HEAD)
|
||||
@ -360,6 +360,7 @@ K_CLEAR:
|
||||
JR C,.error
|
||||
LD C,B
|
||||
JP RST_10
|
||||
;
|
||||
.error: LD A,DSS_Error.sys.INVALID_FUNCTION
|
||||
SCF
|
||||
RET
|
||||
@ -408,6 +409,7 @@ GETSYM: LD HL,HOST
|
||||
INC L
|
||||
LD C,(HL)
|
||||
RET
|
||||
;
|
||||
|
||||
FULL_BF:
|
||||
EX AF,AF'
|
||||
@ -429,10 +431,9 @@ FULL_BF:
|
||||
.E1_KEY:
|
||||
SET FLAG_E1,(IX+KEYFLG)
|
||||
JR KEYSCAN.RESCAN
|
||||
;
|
||||
|
||||
|
||||
KEYSCAN:
|
||||
LD IX,KEYFLAG
|
||||
KEYSCAN: LD IX,KEYFLAG
|
||||
;!TEST SIO INT
|
||||
IF KEYBOARD_INT_ENABLED
|
||||
CALL .RESCAN
|
||||
@ -440,9 +441,7 @@ KEYSCAN:
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
RET
|
||||
ENDIF
|
||||
;
|
||||
.RESCAN:
|
||||
IN A,(Z84.SIO.Ch_A.Ctrl)
|
||||
.RESCAN: IN A,(Z84.SIO.Ch_A.Ctrl)
|
||||
AND 1
|
||||
RET Z
|
||||
;[ ] 18/02/2024 ¯à®¢¥àª ¯¥à¥¯®«¥¨¥ ¡ãä¥à
|
||||
@ -456,67 +455,98 @@ KEYSCAN:
|
||||
IN A,(Z84.SIO.Ch_A.Data)
|
||||
CP #F0
|
||||
JR Z,FULL_BF.F0_KEY
|
||||
;
|
||||
CP #E0
|
||||
JR Z,FULL_BF.E0_KEY
|
||||
;
|
||||
CP #E1
|
||||
JR Z,FULL_BF.E1_KEY
|
||||
;
|
||||
BIT FLAG_F0,(IX+KEYFLG)
|
||||
JR NZ,UN_KEY
|
||||
;
|
||||
LD L,A
|
||||
CALL XLAT
|
||||
CALL SHIFTS
|
||||
RES FLAG_E0,(IX+KEYFLG)
|
||||
RES FLAG_E1,(IX+KEYFLG)
|
||||
;[ ] 29/02/2024 ¢ë£à¥¡á⨠¢¥áì ¡ãä¥à
|
||||
JR Z,.RESCAN ;IT'S SHIFT KEY
|
||||
;[ ] ¢ë£à¥¡á⨠¢¥áì ¡ãä¥à
|
||||
JR Z,.RESCAN
|
||||
; RET Z ;IT'S SHIFT KEY
|
||||
;
|
||||
CALL INPCODE ;L - AT POS. CODE
|
||||
;PUTCODE
|
||||
LD HL,#1C00 ;Caps Lock
|
||||
;Caps Lock
|
||||
LD HL,#1C00
|
||||
AND A
|
||||
SBC HL,DE
|
||||
CALL Z,CAPS_X
|
||||
LD HL,#B800 ;Ctrl + Space
|
||||
IFN CHANGE_LANG_CTRL_SHIFT
|
||||
;Ctrl + Space
|
||||
LD HL,#B800
|
||||
AND A
|
||||
SBC HL,DE
|
||||
CALL Z,RUS_X
|
||||
LD HL,#5000 ;Insert
|
||||
CALL Z,LANG_X
|
||||
ENDIF
|
||||
;Insert
|
||||
LD HL,#5000
|
||||
AND A
|
||||
SBC HL,DE
|
||||
CALL Z,INS_X
|
||||
LD HL,#4900 ;Num Lock
|
||||
;Num Lock
|
||||
LD HL,#4900
|
||||
AND A
|
||||
SBC HL,DE
|
||||
CALL Z,NUM_X
|
||||
LD HL,#C900 ;Pause Lock
|
||||
;Pause Lock
|
||||
LD HL,#C900
|
||||
AND A
|
||||
SBC HL,DE
|
||||
CALL Z,PAUSE_X
|
||||
LD HL,#4800 ;Scroll Lock
|
||||
;Scroll Lock
|
||||
LD HL,#4800
|
||||
AND A
|
||||
SBC HL,DE
|
||||
CALL Z,SCL_X
|
||||
;Ctrl + Alt + Del
|
||||
;[x] small optimization)))
|
||||
; LD HL,#CF00 ;Ctrl + Alt + Del
|
||||
; LD HL,#CF00
|
||||
; AND A
|
||||
; SBC HL,DE
|
||||
; CALL Z,RST_X
|
||||
;
|
||||
LD BC,(KEYFLAG)
|
||||
CALL PUTSYM
|
||||
;[ ] 29/02/2024 ¢ë£à¥¡á⨠¢¥áì ¡ãä¥à
|
||||
JR .RESCAN
|
||||
;RET
|
||||
;
|
||||
;
|
||||
IF CHANGE_LANG_CTRL_SHIFT
|
||||
UN_KEY: RES FLAG_F0,(IX+KEYFLG)
|
||||
LD L,A
|
||||
CALL XLAT
|
||||
CALL UNSHIFT
|
||||
RES FLAG_E0,(IX+KEYFLG)
|
||||
LD A,(UNCODE)
|
||||
LD H,0
|
||||
LD (UNCODE),HL
|
||||
CP #36 ;L CTRL
|
||||
JR Z,.check_shift
|
||||
CP #29 ;L SHIFT
|
||||
RET NZ
|
||||
; check ctrl
|
||||
LD A,L
|
||||
SUB #36 ;L CTRL
|
||||
JR Z,LANG_X
|
||||
RET
|
||||
;[ ] 18/02/2024 ¯à®¢¥àª ¯¥à¥¯®«¥¨¥ ¡ãä¥à
|
||||
; .Receiver_Overrun:
|
||||
; LD (IX+K_SHIFT),0
|
||||
; LD (IX+KEYFLG),0
|
||||
; ; reg 0 - reset errors
|
||||
; LD A,%0011'0000
|
||||
; OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
; RET
|
||||
|
||||
|
||||
UN_KEY RES FLAG_F0,(IX+KEYFLG)
|
||||
;
|
||||
.check_shift: LD A,L
|
||||
SUB #29
|
||||
JR Z,LANG_X
|
||||
RET
|
||||
ELSE
|
||||
UN_KEY: RES FLAG_F0,(IX+KEYFLG)
|
||||
LD L,A
|
||||
CALL XLAT
|
||||
CALL UNSHIFT
|
||||
@ -524,14 +554,19 @@ UN_KEY RES FLAG_F0,(IX+KEYFLG)
|
||||
LD H,0
|
||||
LD (UNCODE),HL
|
||||
RET
|
||||
ENDIF
|
||||
;
|
||||
|
||||
CAPS_X LD A,(IX+K_LOCK)
|
||||
CAPS_X: LD A,(IX+K_LOCK)
|
||||
XOR 1<<CAPS_L
|
||||
LD (IX+K_LOCK),A
|
||||
RET
|
||||
;
|
||||
|
||||
RUS_X BIT X_CTRL,(IX+K_SHIFT)
|
||||
LANG_X: IFN CHANGE_LANG_CTRL_SHIFT
|
||||
BIT X_CTRL,(IX+K_SHIFT)
|
||||
RET Z
|
||||
ENDIF
|
||||
LD A,(IX+K_LOCK)
|
||||
XOR 1<<LANG_L
|
||||
LD (IX+K_LOCK),A
|
||||
@ -543,36 +578,41 @@ RUS_X BIT X_CTRL,(IX+K_SHIFT)
|
||||
CALL BEEP
|
||||
EXX
|
||||
RET
|
||||
;
|
||||
|
||||
INS_X LD A,(IX+K_LOCK)
|
||||
INS_X: LD A,(IX+K_LOCK)
|
||||
XOR 1<<INS_L
|
||||
LD (IX+K_LOCK),A
|
||||
RET
|
||||
;
|
||||
|
||||
NUM_X LD A,(IX+K_LOCK)
|
||||
NUM_X: LD A,(IX+K_LOCK)
|
||||
XOR 1<<NUM_L
|
||||
LD (IX+K_LOCK),A
|
||||
RET
|
||||
;
|
||||
|
||||
PAUSE_X BIT X_CTRL,(IX+K_SHIFT)
|
||||
PAUSE_X: BIT X_CTRL,(IX+K_SHIFT)
|
||||
RET Z
|
||||
POP HL ;!!!!! “ ‘ ©¬ ã¡à POP
|
||||
POP HL ; ¡ « á á⥪
|
||||
LD A,(IX+K_LOCK)
|
||||
XOR 1<<PAUSE_L
|
||||
LD (IX+K_LOCK),A
|
||||
BIT PAUSE_L,A
|
||||
RET Z
|
||||
EI
|
||||
PAUSE_ HALT
|
||||
.loop: HALT
|
||||
BIT PAUSE_L,(IX+K_LOCK)
|
||||
JR NZ,PAUSE_
|
||||
JR NZ,.loop
|
||||
DI
|
||||
RET
|
||||
;
|
||||
|
||||
SCL_X LD A,(IX+K_LOCK)
|
||||
SCL_X: LD A,(IX+K_LOCK)
|
||||
XOR 1<<SCRL_L
|
||||
LD (IX+K_LOCK),A
|
||||
RET
|
||||
;
|
||||
|
||||
;small optimization
|
||||
; RST_X BIT X_CTRL,(IX+K_SHIFT)
|
||||
@ -585,90 +625,89 @@ SCL_X LD A,(IX+K_LOCK)
|
||||
; RET
|
||||
;;;
|
||||
|
||||
UNSHIFT LD A,L
|
||||
UNSHIFT: LD A,L
|
||||
CP #37 ;L ALT
|
||||
JR NZ,USH1
|
||||
JR NZ,.USH1
|
||||
RES L_ALT,(IX+K_SHIFT)
|
||||
BIT R_ALT,(IX+K_SHIFT)
|
||||
RET NZ
|
||||
RES X_ALT,(IX+K_SHIFT)
|
||||
RET
|
||||
USH1 CP #39 ;R ALT
|
||||
JR NZ,USH2
|
||||
;
|
||||
.USH1: CP #39 ;R ALT
|
||||
JR NZ,.USH2
|
||||
RES R_ALT,(IX+K_SHIFT)
|
||||
BIT L_ALT,(IX+K_SHIFT)
|
||||
RET NZ
|
||||
RES X_ALT,(IX+K_SHIFT)
|
||||
RET
|
||||
USH2 CP #36 ;L CTRL
|
||||
JR NZ,USH3
|
||||
;
|
||||
.USH2: CP #36 ;L CTRL
|
||||
JR NZ,.USH3
|
||||
RES L_CTRL,(IX+K_SHIFT)
|
||||
BIT R_CTRL,(IX+K_SHIFT)
|
||||
RET NZ
|
||||
RES X_CTRL,(IX+K_SHIFT)
|
||||
RET
|
||||
USH3 CP #3A ;R CTRL
|
||||
JR NZ,USH4
|
||||
;
|
||||
.USH3: CP #3A ;R CTRL
|
||||
JR NZ,.USH4
|
||||
RES R_CTRL,(IX+K_SHIFT)
|
||||
BIT L_CTRL,(IX+K_SHIFT)
|
||||
RET NZ
|
||||
RES X_CTRL,(IX+K_SHIFT)
|
||||
RET
|
||||
USH4 CP #29 ;L SHIFT
|
||||
JR NZ,USH5
|
||||
;
|
||||
.USH4: CP #29 ;L SHIFT
|
||||
JR NZ,.USH5
|
||||
RES L_SHIFT,(IX+K_SHIFT)
|
||||
RET
|
||||
USH5 CP #34 ;R SHIFT
|
||||
JR NZ,USH6
|
||||
;
|
||||
.USH5: CP #34 ;R SHIFT
|
||||
;JR NZ,.USH6
|
||||
RET NZ
|
||||
RES R_SHIFT,(IX+K_SHIFT)
|
||||
USH6 RET
|
||||
.USH6: RET
|
||||
|
||||
SHIFTS LD A,L
|
||||
SHIFTS: LD A,L
|
||||
CP #37 ;L ALT
|
||||
JR NZ,NSH1
|
||||
JR NZ,.NSH1
|
||||
SET L_ALT,(IX+K_SHIFT)
|
||||
SET X_ALT,(IX+K_SHIFT)
|
||||
RET
|
||||
NSH1 CP #39 ;R ALT
|
||||
JR NZ,NSH2
|
||||
;
|
||||
.NSH1: CP #39 ;R ALT
|
||||
JR NZ,.NSH2
|
||||
SET R_ALT,(IX+K_SHIFT)
|
||||
SET X_ALT,(IX+K_SHIFT)
|
||||
RET
|
||||
NSH2 CP #36 ;L CTRL
|
||||
JR NZ,NSH3
|
||||
;
|
||||
.NSH2: CP #36 ;L CTRL
|
||||
JR NZ,.NSH3
|
||||
SET L_CTRL,(IX+K_SHIFT)
|
||||
SET X_CTRL,(IX+K_SHIFT)
|
||||
RET
|
||||
NSH3 CP #3A ;R CTRL
|
||||
JR NZ,NSH4
|
||||
;
|
||||
.NSH3: CP #3A ;R CTRL
|
||||
JR NZ,.NSH4
|
||||
SET R_CTRL,(IX+K_SHIFT)
|
||||
SET X_CTRL,(IX+K_SHIFT)
|
||||
RET
|
||||
NSH4 CP #29 ;L SHIFT
|
||||
JR NZ,NSH5
|
||||
;
|
||||
.NSH4: CP #29 ;L SHIFT
|
||||
JR NZ,.NSH5
|
||||
SET L_SHIFT,(IX+K_SHIFT)
|
||||
RET
|
||||
NSH5 CP #34 ;R SHIFT
|
||||
JR NZ,NSH6
|
||||
;
|
||||
.NSH5: CP #34 ;R SHIFT
|
||||
;JR NZ,.NSH6
|
||||
RET NZ
|
||||
SET R_SHIFT,(IX+K_SHIFT)
|
||||
NSH6 RET
|
||||
.NSH6: RET
|
||||
|
||||
;
|
||||
;;
|
||||
_mInfoALIGN 256,0
|
||||
; 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||||
XLAT_T: DB #00,#43,#00,#3F,#3D,#3B,#3C,#46,#00,#44,#42,#40,#3E,#0F,#00,#00 ;00
|
||||
DB #00,#37,#29,#00,#36,#10,#02,#00,#00,#00,#2A,#1E,#1D,#11,#03,#00 ;10
|
||||
DB #00,#2C,#2B,#1F,#12,#05,#04,#00,#00,#38,#2D,#20,#14,#13,#06,#00 ;20
|
||||
DB #00,#2F,#2E,#22,#21,#15,#07,#00,#00,#00,#30,#23,#16,#08,#09,#00 ;30
|
||||
DB #00,#31,#24,#17,#18,#0B,#0A,#00,#00,#32,#33,#25,#26,#19,#0C,#00 ;40
|
||||
DB #00,#00,#27,#00,#1A,#0D,#00,#00,#1C,#34,#28,#1B,#00,#35,#00,#00 ;50
|
||||
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 BIT FLAG_E0,(IX+KEYFLG)
|
||||
JR Z,W_O_E0
|
||||
|
||||
XLAT: BIT FLAG_E0,(IX+KEYFLG)
|
||||
JR Z,.W_O_E0
|
||||
CP #11 ;Right ALT
|
||||
LD L,#39
|
||||
RET Z
|
||||
@ -685,15 +724,14 @@ XLAT BIT FLAG_E0,(IX+KEYFLG)
|
||||
LD L,#47
|
||||
RET Z
|
||||
LD L,A
|
||||
W_O_E0 LD H,high XLAT_T
|
||||
.W_O_E0: LD H,high XLAT_T
|
||||
LD L,(HL)
|
||||
RET
|
||||
;;
|
||||
;
|
||||
|
||||
;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)
|
||||
JP NZ,RUSCODE
|
||||
@ -708,24 +746,27 @@ INPCODE LD D,L
|
||||
LD D,L
|
||||
BIT CAPS_L,(IX+K_LOCK)
|
||||
LD BC,CAPSTAB
|
||||
JR NZ,CONVER
|
||||
JR NZ,CONVER.NO_SET
|
||||
LD BC,NORMTAB
|
||||
CONVER LD H,0
|
||||
ADD HL,BC
|
||||
LD E,(HL)
|
||||
RET
|
||||
JR CONVER.NO_SET
|
||||
;
|
||||
; CONVER: LD H,0
|
||||
; ADD HL,BC
|
||||
; LD E,(HL)
|
||||
; RET
|
||||
|
||||
SHIFT_L LD BC,SHIFTAB
|
||||
SHIFT_L: LD BC,SHIFTAB
|
||||
BIT CAPS_L,(IX+K_LOCK)
|
||||
JR Z,CONVER5
|
||||
JR Z,CONVER.SET
|
||||
LD BC,SHF2TAB
|
||||
CONVER5 LD H,0
|
||||
CONVER: ;
|
||||
.SET: SET 7,D
|
||||
.NO_SET: LD H,0
|
||||
ADD HL,BC
|
||||
LD E,(HL)
|
||||
SET 7,D
|
||||
RET
|
||||
|
||||
RUSCODE LD A,(IX+K_SHIFT)
|
||||
RUSCODE: LD A,(IX+K_SHIFT)
|
||||
AND #C0
|
||||
JR NZ,SHIFT_R
|
||||
SET 7,D
|
||||
@ -736,24 +777,26 @@ RUSCODE LD A,(IX+K_SHIFT)
|
||||
LD D,L
|
||||
BIT CAPS_L,(IX+K_LOCK)
|
||||
LD BC,CAPSRUS
|
||||
JR NZ,CONVER2
|
||||
JR NZ,CONVER.NO_SET
|
||||
LD BC,NORMRUS
|
||||
CONVER2 LD H,0
|
||||
ADD HL,BC
|
||||
LD E,(HL)
|
||||
RET
|
||||
JR CONVER.NO_SET
|
||||
; LD H,0
|
||||
; ADD HL,BC
|
||||
; LD E,(HL)
|
||||
; RET
|
||||
|
||||
SHIFT_R LD BC,SHIFRUS
|
||||
SHIFT_R: LD BC,SHIFRUS
|
||||
BIT CAPS_L,(IX+K_LOCK)
|
||||
JR Z,CONVER4
|
||||
JR Z,CONVER.SET
|
||||
LD BC,SHF2RUS
|
||||
CONVER4 LD H,0
|
||||
ADD HL,BC
|
||||
LD E,(HL)
|
||||
SET 7,D
|
||||
RET
|
||||
JR CONVER.SET
|
||||
; .CONVER: SET 7,D
|
||||
; LD H,0
|
||||
; ADD HL,BC
|
||||
; LD E,(HL)
|
||||
; RET
|
||||
|
||||
K_SETUP INC B
|
||||
K_SETUP: INC B
|
||||
DEC B
|
||||
JP Z,KEYMAP
|
||||
DEC B
|
||||
@ -763,81 +806,185 @@ K_SETUP INC B
|
||||
LD A,DSS_Error.sys.INVALID_ACCESS
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
|
||||
K_SND_R LD A,(SOUND_K)
|
||||
K_SND_R: LD A,(SOUND_K)
|
||||
AND A
|
||||
RET
|
||||
;
|
||||
|
||||
K_SND_W LD (SOUND_K),A
|
||||
K_SND_W: LD (SOUND_K),A
|
||||
AND A
|
||||
RET
|
||||
;
|
||||
|
||||
KEYMAP LD BC,ENDNORM-NORMTAB
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
_mInfoALIGN 256,0 ;;
|
||||
; 0 1 2 3 4 5 6 7 8 9 A B C D E F ;;
|
||||
XLAT_T: DB #00,#43,#00,#3F,#3D,#3B,#3C,#46,#00,#44,#42,#40,#3E,#0F,#00,#00 ;00 ;;
|
||||
DB #00,#37,#29,#00,#36,#10,#02,#00,#00,#00,#2A,#1E,#1D,#11,#03,#00 ;10 ;;
|
||||
DB #00,#2C,#2B,#1F,#12,#05,#04,#00,#00,#38,#2D,#20,#14,#13,#06,#00 ;20 ;;
|
||||
DB #00,#2F,#2E,#22,#21,#15,#07,#00,#00,#00,#30,#23,#16,#08,#09,#00 ;30 ;;
|
||||
DB #00,#31,#24,#17,#18,#0B,#0A,#00,#00,#32,#33,#25,#26,#19,#0C,#00 ;40 ;;
|
||||
DB #00,#00,#27,#00,#1A,#0D,#00,#00,#1C,#34,#28,#1B,#00,#35,#00,#00 ;50 ;;
|
||||
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 ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
KEYMAP: LD BC,ENDNORM-NORMTAB
|
||||
BIT 7,A
|
||||
JR NZ,READMAP
|
||||
;
|
||||
LD DE,NORMTAB
|
||||
OR A
|
||||
JR Z,LTAB
|
||||
JR Z,.LTAB
|
||||
LD DE,SHIFTAB
|
||||
DEC A
|
||||
JR Z,LTAB
|
||||
JR Z,.LTAB
|
||||
LD DE,CAPSTAB
|
||||
DEC A
|
||||
JR Z,LTAB
|
||||
JR Z,.LTAB
|
||||
LD DE,SHF2TAB
|
||||
DEC A
|
||||
JR Z,LTAB
|
||||
JR Z,.LTAB
|
||||
LD DE,NORMRUS
|
||||
DEC A
|
||||
JR Z,LTAB
|
||||
JR Z,.LTAB
|
||||
LD DE,SHIFRUS
|
||||
DEC A
|
||||
JR Z,LTAB
|
||||
JR Z,.LTAB
|
||||
LD DE,CAPSRUS
|
||||
DEC A
|
||||
JR Z,LTAB
|
||||
JR Z,.LTAB
|
||||
LD DE,SHF2RUS
|
||||
DEC A
|
||||
JR Z,LTAB
|
||||
JR Z,.LTAB
|
||||
;
|
||||
XOR A ; ????? ¬®¦¥â âãâ ¤® .INVALID_COMMAND ?
|
||||
SCF
|
||||
RET
|
||||
LTAB LDIR
|
||||
;
|
||||
.LTAB: LDIR
|
||||
XOR A
|
||||
RET
|
||||
|
||||
READMAP RES 7,A
|
||||
READMAP: RES 7,A
|
||||
LD DE,NORMTAB
|
||||
OR A
|
||||
JR Z,RTAB
|
||||
JR Z,.RTAB
|
||||
LD DE,SHIFTAB
|
||||
DEC A
|
||||
JR Z,RTAB
|
||||
JR Z,.RTAB
|
||||
LD DE,CAPSTAB
|
||||
DEC A
|
||||
JR Z,RTAB
|
||||
JR Z,.RTAB
|
||||
LD DE,SHF2TAB
|
||||
DEC A
|
||||
JR Z,RTAB
|
||||
JR Z,.RTAB
|
||||
LD DE,NORMRUS
|
||||
DEC A
|
||||
JR Z,RTAB
|
||||
JR Z,.RTAB
|
||||
LD DE,SHIFRUS
|
||||
DEC A
|
||||
JR Z,RTAB
|
||||
JR Z,.RTAB
|
||||
LD DE,CAPSRUS
|
||||
DEC A
|
||||
JR Z,RTAB
|
||||
JR Z,.RTAB
|
||||
LD DE,SHF2RUS
|
||||
DEC A
|
||||
JR Z,RTAB
|
||||
JR Z,.RTAB
|
||||
XOR A ; ????? ¬®¦¥â âãâ ¤® .INVALID_COMMAND ?
|
||||
SCF
|
||||
RET
|
||||
RTAB EX DE,HL
|
||||
;
|
||||
.RTAB: EX DE,HL
|
||||
LDIR
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
|
||||
BEEP: LD A,#10
|
||||
OUT (ZX_Beeper),A
|
||||
LD B,D
|
||||
LD C,E
|
||||
.loop1: DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,.loop1
|
||||
XOR A ;LD A,#00
|
||||
OUT (ZX_Beeper),A
|
||||
LD B,D
|
||||
LD C,E
|
||||
.loop2: DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,.loop2
|
||||
DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR NZ,BEEP
|
||||
RET
|
||||
;
|
||||
|
||||
KEYBOARD_INIT: DI
|
||||
; reg 0
|
||||
XOR A
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
; reg 4
|
||||
LD A,4
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
;LD A,5 ; parity
|
||||
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
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
; reg 1
|
||||
LD A,1
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
IF KEYBOARD_INT_ENABLED
|
||||
LD A,%0001'1001
|
||||
ELSE
|
||||
XOR A
|
||||
ENDIF
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
;
|
||||
EI
|
||||
RET
|
||||
;
|
||||
|
||||
;[x] 18/02/2024 ¯à®¢¥àª ¯¥à¥¯®«¥¨¥ ¡ãä¥à
|
||||
KBD_Receiver_Overrun:
|
||||
; empty the buffer
|
||||
IN A,(Z84.SIO.Ch_A.Data)
|
||||
IN A,(Z84.SIO.Ch_A.Ctrl)
|
||||
RRCA
|
||||
JR C,KBD_Receiver_Overrun
|
||||
; reg 0 - error reset
|
||||
LD A,%0011'0000
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
;!TEST SIO INT
|
||||
; reg 0 - return from int
|
||||
IF KEYBOARD_INT_ENABLED
|
||||
LD A,%0011'1000
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
ENDIF
|
||||
;
|
||||
;!TODO ¯à¨ ¤¥â¥ªâ¥ ¯¥à¥¯®«¥¨ï ¡ãä¥à ¯à®æ áïâì ª« ¢¨è¨ ¨§ ¯®àâ #FE ᯥªâàã¬
|
||||
;
|
||||
LD (IX+K_SHIFT),0
|
||||
LD (IX+KEYFLG),0
|
||||
;
|
||||
;AND A
|
||||
RET
|
||||
|
||||
; `
|
||||
; 0
|
||||
@ -948,84 +1095,5 @@ SHF2RUS DB #F1,Esc,"!",#22,"#","$",":",#2C,".",";","?","%","_","+",Bcs
|
||||
|
||||
;================================
|
||||
|
||||
BEEP: LD A,#10
|
||||
OUT (ZX_Beeper),A
|
||||
LD B,D
|
||||
LD C,E
|
||||
.loop1: DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,.loop1
|
||||
XOR A ;LD A,#00
|
||||
OUT (ZX_Beeper),A
|
||||
LD B,D
|
||||
LD C,E
|
||||
.loop2: DEC BC
|
||||
LD A,B
|
||||
OR C
|
||||
JR NZ,.loop2
|
||||
DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR NZ,BEEP
|
||||
RET
|
||||
|
||||
KEYBOARD_INIT:
|
||||
DI
|
||||
; reg 0
|
||||
XOR A
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
; reg 4
|
||||
LD A,4
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
;LD A,5 ; parity
|
||||
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
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
; reg 1
|
||||
LD A,1
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
IF KEYBOARD_INT_ENABLED
|
||||
LD A,%0001'1001
|
||||
ELSE
|
||||
XOR A
|
||||
ENDIF
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
;
|
||||
EI
|
||||
RET
|
||||
|
||||
;[x] 18/02/2024 ¯à®¢¥àª ¯¥à¥¯®«¥¨¥ ¡ãä¥à
|
||||
KBD_Receiver_Overrun:
|
||||
; empty the buffer
|
||||
IN A,(Z84.SIO.Ch_A.Data)
|
||||
IN A,(Z84.SIO.Ch_A.Ctrl)
|
||||
RRCA
|
||||
JR C,KBD_Receiver_Overrun
|
||||
; reg 0 - error reset
|
||||
LD A,%0011'0000
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
;!TEST SIO INT
|
||||
; reg 0 - return from int
|
||||
IF KEYBOARD_INT_ENABLED
|
||||
LD A,%0011'1000
|
||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||
ENDIF
|
||||
;
|
||||
;!TODO ¯à¨ ¤¥â¥ªâ¥ ¯¥à¥¯®«¥¨ï ¡ãä¥à ¯à®æ áïâì ª« ¢¨è¨ ¨§ ¯®àâ #FE ᯥªâàã¬
|
||||
;
|
||||
LD (IX+K_SHIFT),0
|
||||
LD (IX+KEYFLG),0
|
||||
;
|
||||
;AND A
|
||||
RET
|
||||
;//MODULE: KEYINTER
|
||||
;[END]
|
||||
@ -1,22 +1,11 @@
|
||||
MACRO PRINT_LINE_KERNEL_PANIC txtString, txtStringSize, txtColor, coordY
|
||||
;
|
||||
MACRO PRINT_LINE_KERNEL_PANIC coordY, txtString, txtStringSize, txtColor
|
||||
LD HL,txtString
|
||||
LD DE,#A000
|
||||
LD BC,txtStringSize
|
||||
LD A,C
|
||||
LDIR
|
||||
;
|
||||
LD DE,coordY*256 + (80-txtStringSize)/2 ;X=0, Y=15
|
||||
LD C,BIOS.LP_SET_PLACE
|
||||
RST ToBIOS
|
||||
;
|
||||
LD HL,#A000
|
||||
LD DE,0*256 + txtColor
|
||||
LD B,A
|
||||
LD C,BIOS.LP_PRINT_LINE3
|
||||
RST ToBIOS
|
||||
ENDM
|
||||
|
||||
|
||||
LD BC,txtColor*256 + txtStringSize
|
||||
LD DE,coordY * 256 + (80 - txtStringSize)/2
|
||||
CALL .PRINT_LINE
|
||||
ENDM ; 12 bytes
|
||||
;
|
||||
;-----------------------[]
|
||||
; HL - á®®¡é¥¨¥
|
||||
; E - ª®®à¤¨ â X ⥪á⮢®¬ íªà ¥
|
||||
@ -40,8 +29,8 @@ KERNEL_PANIC:
|
||||
LD A,1
|
||||
OUT (SCREEN_SWITCH),A ; set scr-2
|
||||
;
|
||||
PRINT_LINE_KERNEL_PANIC .kernel_panic, .kernel_panic.size, +(COLORS.CGA.FLASH + COLORS.CGA.PAPER.BLUE + COLORS.CGA.INC.RED), 13
|
||||
PRINT_LINE_KERNEL_PANIC .press_CAD, .press_CAD.size, +(COLORS.CGA.PAPER.BLUE + COLORS.CGA.INC.WHITE), 18
|
||||
PRINT_LINE_KERNEL_PANIC 13, .kernel_panic, .kernel_panic.size, +(COLORS.CGA.FLASH + COLORS.CGA.PAPER.BLUE + COLORS.CGA.INC.RED)
|
||||
PRINT_LINE_KERNEL_PANIC 18, .press_CAD, .press_CAD.size, +(COLORS.CGA.PAPER.BLUE + COLORS.CGA.INC.WHITE)
|
||||
;
|
||||
POP BC
|
||||
POP HL
|
||||
@ -63,9 +52,26 @@ KERNEL_PANIC:
|
||||
.loop: DI
|
||||
HALT
|
||||
JR .loop
|
||||
|
||||
.print_line:
|
||||
RET
|
||||
;
|
||||
.PRINT_LINE:
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
LD DE,#A000
|
||||
LD B,E
|
||||
LD A,C
|
||||
LDIR
|
||||
;
|
||||
POP DE
|
||||
LD C,BIOS.LP_SET_PLACE
|
||||
RST ToBIOS
|
||||
;
|
||||
POP DE
|
||||
LD E,D
|
||||
LD HL,#A000
|
||||
LD D,L
|
||||
LD B,A
|
||||
LD C,BIOS.LP_PRINT_LINE3
|
||||
JP ToBIOS
|
||||
;
|
||||
.kernel_panic: DZ "KERNEL PANIC!"
|
||||
.kernel_panic.size EQU $-.kernel_panic
|
||||
|
||||
@ -1 +1 @@
|
||||
947
|
||||
956
|
||||
@ -17,9 +17,9 @@
|
||||
;DEFINE MOUSE_READ_PORT_TIMEOUT 3072 ; Š®áâë«ìë© â ©¬- ãâ ®¦¨¤ ¨¥ ¡ ©â ®â ¬ë誨. <EFBFBD>à®áâ® ¥áâì ªà¨¢ë¥ ¯¥à¥å®¤¨ª¨
|
||||
;
|
||||
DEFINE KEYBOARD_INT_ENABLED 0 ; INT from SIO ch. A
|
||||
DEFINE CHANGE_LANG_CTRL_SHIFT 1 ; [x] 0: Ctrl + Space, 1: Ctrl + Shift.
|
||||
;
|
||||
|
||||
;
|
||||
;LD_DSK EQU 16 ; ¬ ªá¨¬ «ì®¥ ª®«¨ç¥á⢮ «®£¨ç¥áª¨å HDD ¤¨áª®¢ ¢ á¨á⥬¥
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -1 +1 @@
|
||||
311
|
||||
312
|
||||
Loading…
Reference in New Issue
Block a user