Cosmos/source2/Compiler/Cosmos.Compiler.DebugStub/Screen.xs
kudzu_cp 5a2f9cdff0
2012-07-09 02:51:58 +00:00

43 lines
745 B
Text

Group DebugStub
procedure Cls {
# VidBase
ESI = $B8000
BeginLoop:
# Text
AL = $00
ESI[0] = AL
ESI++
# Colour
AL = $0A
ESI[0] = AL
ESI++
# End of Video Area
# VidBase + 25 * 80 * 2 = B8FA0
If ESI < $B8FA0 goto BeginLoop
}
procedure DisplayWaitMsg {
# http://wiki.osdev.org/Text_UI
# Later can cycle for x changes of second register:
# http://wiki.osdev.org/Time_And_Date
ESI = @..DebugWaitMsg
# VidBase
EDI = $B8000
# 10 lines down, 20 cols in (10 * 80 + 20) * 2)
EDI + 1640
# Read and copy string till 0 terminator
ReadChar:
AL = ESI[0]
if AL = 0 exit
ESI++
EDI[0] = AL
EDI + 2
Goto ReadChar
}