Estex-DSS/DSS/Kernel_Panic.asm
Anatoliy Belyanskiy 0312779217 Preparing for FAT32
2024-03-12 03:51:04 +10:00

75 lines
1.4 KiB
NASM
Raw 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 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
;-----------------------[]