TEXT pmode32(SB), $0
CLI
- /* disable nmi */
- PUSHA
- LWI(0x70, rDX)
- INB
- ANDB $0x7F, AL
- OUTB
- POPA
-
/* get return pc */
POPR(rDI)
_halt:
JMP _halt
-TEXT spllo(SB), $0
- /* enable nmi */
- PUSHA
- LWI(0x70, rDX)
- INB
- ORB $0x80, AL
- OUTB
- POPA
-
- STI
- RET
-
-TEXT getc(SB), $0
+TEXT kbdgetc(SB), $0
CALL rmode16(SB)
- CALL16(spllo(SB))
- MOVB $0x00, AH
- BIOSCALL(0x16)
-_getcret:
- CALL16(pmode32(SB))
- ANDL $0xFF, AX
- RET
-
-TEXT gotc(SB), $0
- CALL rmode16(SB)
- CALL16(spllo(SB))
+ STI
MOVB $0x01, AH
BIOSCALL(0x16)
- JNZ _getcret
+ JNZ _gotkey
CLR(rAX)
- JMP _getcret
+ JMP _pret32
+_gotkey:
+ CLR(rAX)
+ BIOSCALL(0x16)
+ JMP _pret32
-TEXT putc(SB), $0
+TEXT cgaputc(SB), $0
MOVL 4(SP),AX
CALL rmode16(SB)
- CALL16(spllo(SB))
+ STI
MOVB $0x0E, AH
BIOSCALL(0x10)
_pret32:
MOVL t+4(SP), AX
PUSHL AX
CALL rmode16(SB)
- CALL16(spllo(SB))
+ STI
POPR(rDX)
POPR(rCX)
MOVB $0x86, AH
LW(pxepoff(SB), rAX)
PUSHR(rAX)
- CALL16(spllo(SB))
+ STI
CLR(rAX)
CLR(rBX)
MOVW 10(SP), BX
MOVL 12(SP), SI
CALL rmode16(SB)
- CALL16(spllo(SB))
+ STI
CALL16(readsect16(SB))
CALL16(pmode32(SB))
ANDL $0xFFFF, AX
#endif
-TEXT crnl(SB), $0
- BYTE $'\r'; BYTE $'\n'; BYTE $0
+TEXT uart(SB), $0
+ BYTE $0xff
TEXT hex(SB), $0
BYTE $'0'; BYTE $'1'; BYTE $'2'; BYTE $'3';