mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
75 lines
1.4 KiB
NASM
75 lines
1.4 KiB
NASM
MACRO PRINT_LINE_KERNEL_PANIC txtString, txtStringSize, txtColor, coordY
|
||
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
|
||
|
||
|
||
;-----------------------[]
|
||
; 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 .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
|
||
;
|
||
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:
|
||
RET
|
||
;
|
||
.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
|
||
;-----------------------[] |