mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
81 lines
1.4 KiB
NASM
81 lines
1.4 KiB
NASM
;
|
||
MACRO PRINT_LINE_KERNEL_PANIC coordY, txtString, txtStringSize, txtColor
|
||
LD HL,txtString
|
||
LD BC,txtColor*256 + txtStringSize
|
||
LD DE,coordY * 256 + (80 - txtStringSize)/2
|
||
CALL .PRINT_LINE
|
||
ENDM ; 12 bytes
|
||
;
|
||
;-----------------------[]
|
||
; HL - á®®¡é¥¨¥
|
||
; E - ª®®à¤¨ â X ⥪á⮢®¬ íªà ¥
|
||
; BC - ¤«¨ á®®¡é¥¨ï
|
||
KERNEL_PANIC:
|
||
DI
|
||
;
|
||
PUSH DE
|
||
PUSH HL
|
||
PUSH BC
|
||
;
|
||
LD E,1
|
||
LD BC,BIOS.LP_OPEN_S.TXT_80x32_Default
|
||
RST ToBIOS
|
||
;
|
||
LD HL,#2050
|
||
LD DE,0
|
||
LD BC,256*COLORS.CGA.PAPER.BLUE + BIOS.LP_CLS_WIN
|
||
RST ToBIOS
|
||
;
|
||
LD A,1
|
||
OUT (SCREEN_SWITCH),A ; set scr-2
|
||
;
|
||
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
|
||
LD DE,#A000
|
||
LD A,C
|
||
LDIR
|
||
;
|
||
POP DE
|
||
LD D,15
|
||
LD C,BIOS.LP_SET_PLACE
|
||
RST ToBIOS
|
||
;
|
||
LD HL,#A000
|
||
LD DE,0*256 + COLORS.CGA.PAPER.BLUE + COLORS.CGA.INC.WHITE
|
||
LD B,A
|
||
LD C,BIOS.LP_PRINT_LINE3
|
||
RST ToBIOS
|
||
;
|
||
.loop: DI
|
||
HALT
|
||
JR .loop
|
||
;
|
||
.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
|
||
;
|
||
.press_CAD: DZ "Press Ctrl+Alt+Del or RESET."
|
||
.press_CAD.size EQU $-.press_CAD
|
||
;-----------------------[] |