Crazy-Blaster/Crazy Estex DSS/DSS/Kernel_Panic.asm
Anatoliy Belyanskiy ace6b0904b First init
2024-07-29 01:59:31 +10:00

81 lines
1.4 KiB
NASM
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;
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
;-----------------------[]