mirror of
https://github.com/hsoft/collapseos.git
synced 2024-11-20 16:28:07 +11:00
Move ASCII consts to ascii.h
And made them shorter in name. The new ascii.h file allow reuse in userspace code.
This commit is contained in:
parent
7046d23cd6
commit
7274dccbe7
@ -68,6 +68,7 @@
|
||||
; ******
|
||||
|
||||
.inc "err.h"
|
||||
.inc "ascii.h"
|
||||
.org USER_CODE
|
||||
|
||||
jp zasmMain
|
||||
|
@ -22,14 +22,14 @@ isLineEndOrComment:
|
||||
isLineEnd:
|
||||
or a ; same as cp 0
|
||||
ret z
|
||||
cp 0x0d
|
||||
cp CR
|
||||
ret z
|
||||
cp 0x0a
|
||||
cp LF
|
||||
ret z
|
||||
cp '\'
|
||||
ret
|
||||
|
||||
; Sets Z is A is ' ' '\t' or ','
|
||||
; Sets Z is A is ' ' '\t'
|
||||
isSep:
|
||||
cp ' '
|
||||
ret z
|
||||
|
@ -19,6 +19,7 @@ look like:
|
||||
jp aciaInt
|
||||
|
||||
.inc "err.h"
|
||||
.inc "ascii.h"
|
||||
.inc "core.asm"
|
||||
.inc "parse.asm"
|
||||
.equ ACIA_RAMSTART RAMSTART
|
||||
|
4
kernel/ascii.h
Normal file
4
kernel/ascii.h
Normal file
@ -0,0 +1,4 @@
|
||||
.equ BS 0x08
|
||||
.equ CR 0x0d
|
||||
.equ LF 0x0a
|
||||
.equ DEL 0x7f
|
@ -3,16 +3,6 @@
|
||||
; Routines used by pretty much all parts. You will want to include it first
|
||||
; in your glue file.
|
||||
|
||||
; *** CONSTS ***
|
||||
.equ ASCII_BS 0x08
|
||||
.equ ASCII_CR 0x0d
|
||||
.equ ASCII_LF 0x0a
|
||||
.equ ASCII_DEL 0x7f
|
||||
|
||||
; *** DATA ***
|
||||
; Useful data to point to, when a pointer is needed.
|
||||
P_NULL: .db 0
|
||||
|
||||
; *** REGISTER FIDDLING ***
|
||||
|
||||
; add the value of A into DE
|
||||
@ -27,7 +17,7 @@ addDE:
|
||||
noop: ; piggy backing on the first "ret" we have
|
||||
ret
|
||||
|
||||
; copy (HL) into DE, then exchange the two, utilising the optimised HL instructions.
|
||||
; copy (HL) into DE, then exchange the two, utilising the optimised HL instructions.
|
||||
; ld must be done little endian, so least significant byte first.
|
||||
intoHL:
|
||||
push de
|
||||
@ -86,7 +76,7 @@ cpHLDE:
|
||||
; Write the contents of HL in (DE)
|
||||
; de and hl are preserved, so no pushing/popping necessary
|
||||
writeHLinDE:
|
||||
ex de, hl
|
||||
ex de, hl
|
||||
ld (hl), e
|
||||
inc hl
|
||||
ld (hl), d
|
||||
@ -112,8 +102,8 @@ callIY:
|
||||
jp (iy)
|
||||
|
||||
; Ensures that Z is unset (more complicated than it sounds...)
|
||||
; There are often better inline alternatives, either replacing rets with
|
||||
; appropriate jmps, or if an 8 bit register is known to not be 0, an inc
|
||||
; There are often better inline alternatives, either replacing rets with
|
||||
; appropriate jmps, or if an 8 bit register is known to not be 0, an inc
|
||||
; then a dec. If a is nonzero, 'or a' is optimal.
|
||||
unsetZ:
|
||||
or a ;if a nonzero, Z reset
|
||||
@ -177,9 +167,9 @@ fmtHex:
|
||||
; it adds 6 to that nibble, carrying to the next nibble and bringing the
|
||||
; value back between 0-9. This gives us 6 of that 7 we needed to add, so
|
||||
; then we just condtionally set the carry and add that carry, along with
|
||||
; a number that maps 0 to '0'. We also need the upper nibble to be a
|
||||
; a number that maps 0 to '0'. We also need the upper nibble to be a
|
||||
; set value, and have the N, C and H flags clear.
|
||||
or 0xf0
|
||||
or 0xf0
|
||||
daa ; now a =0x50 + the original value + 0x06 if >= 0xfa
|
||||
add a, 0xa0 ; cause a carry for the values that were >=0x0a
|
||||
adc a, 0x40
|
||||
|
@ -66,7 +66,7 @@ shellInit:
|
||||
jp printstr
|
||||
|
||||
.welcome:
|
||||
.db "Collapse OS", ASCII_CR, ASCII_LF, "> ", 0
|
||||
.db "Collapse OS", CR, LF, "> ", 0
|
||||
|
||||
; Inifite loop that processes input. Because it's infinite, you should jump
|
||||
; to it rather than call it. Saves two precious bytes in the stack.
|
||||
|
@ -185,7 +185,7 @@ padGetC:
|
||||
call vdpSpitC
|
||||
jp padGetC
|
||||
.return:
|
||||
ld a, ASCII_LF
|
||||
ld a, LF
|
||||
ld (PAD_NEXTCHR), a
|
||||
; continue to .advance
|
||||
.advance:
|
||||
@ -193,7 +193,7 @@ padGetC:
|
||||
; Z was already set from previous BIT instruction
|
||||
ret
|
||||
.backspace:
|
||||
ld a, ASCII_BS
|
||||
ld a, BS
|
||||
; Z was already set from previous BIT instruction
|
||||
ret
|
||||
.nextchr:
|
||||
|
@ -119,11 +119,11 @@ vdpPutC:
|
||||
; 6 low bits contain our row*2 (each tile is 2 bytes wide) and high
|
||||
; 2 bits are the two low bits of our line
|
||||
; special case: line feed, carriage return, back space
|
||||
cp ASCII_LF
|
||||
cp LF
|
||||
jr z, vdpLF
|
||||
cp ASCII_CR
|
||||
cp CR
|
||||
jr z, vdpCR
|
||||
cp ASCII_BS
|
||||
cp BS
|
||||
jr z, vdpBS
|
||||
|
||||
push af
|
||||
|
@ -23,7 +23,7 @@
|
||||
; *** Defines ***
|
||||
; STDIO_GETC: address of a GetC routine
|
||||
; STDIO_PUTC: address of a PutC routine
|
||||
;
|
||||
;
|
||||
; *** Consts ***
|
||||
; Size of the readline buffer. If a typed line reaches this size, the line is
|
||||
; flushed immediately (same as pressing return).
|
||||
@ -81,9 +81,9 @@ printnstr:
|
||||
|
||||
printcrlf:
|
||||
push af
|
||||
ld a, ASCII_CR
|
||||
ld a, CR
|
||||
call STDIO_PUTC
|
||||
ld a, ASCII_LF
|
||||
ld a, LF
|
||||
call STDIO_PUTC
|
||||
pop af
|
||||
ret
|
||||
@ -124,13 +124,13 @@ stdioReadLine:
|
||||
; Let's wait until something is typed.
|
||||
call STDIO_GETC
|
||||
; got it. Now, is it a CR or LF?
|
||||
cp ASCII_CR
|
||||
cp CR
|
||||
jr z, .complete ; char is CR? buffer complete!
|
||||
cp ASCII_LF
|
||||
cp LF
|
||||
jr z, .complete
|
||||
cp ASCII_DEL
|
||||
cp DEL
|
||||
jr z, .delchr
|
||||
cp ASCII_BS
|
||||
cp BS
|
||||
jr z, .delchr
|
||||
|
||||
; Echo the received character right away so that we see what we type
|
||||
@ -161,10 +161,10 @@ stdioReadLine:
|
||||
inc b
|
||||
; Char deleted in buffer, now send BS + space + BS for the terminal
|
||||
; to clear its previous char
|
||||
ld a, ASCII_BS
|
||||
ld a, BS
|
||||
call STDIO_PUTC
|
||||
ld a, ' '
|
||||
call STDIO_PUTC
|
||||
ld a, ASCII_BS
|
||||
ld a, BS
|
||||
call STDIO_PUTC
|
||||
jr .loop
|
||||
|
@ -329,9 +329,9 @@ lcdClrScr:
|
||||
ret
|
||||
|
||||
lcdPutC:
|
||||
cp ASCII_LF
|
||||
cp LF
|
||||
jp z, lcdLinefeed
|
||||
cp ASCII_BS
|
||||
cp BS
|
||||
jr z, .bs
|
||||
push hl
|
||||
call fntGet
|
||||
|
@ -12,6 +12,7 @@ jp init
|
||||
jp aciaInt
|
||||
|
||||
.inc "err.h"
|
||||
.inc "ascii.h"
|
||||
.inc "core.asm"
|
||||
.inc "parse.asm"
|
||||
.equ ACIA_RAMSTART RAMSTART
|
||||
|
@ -12,6 +12,7 @@ jp init
|
||||
jp aciaInt
|
||||
|
||||
.inc "err.h"
|
||||
.inc "ascii.h"
|
||||
.inc "core.asm"
|
||||
.inc "parse.asm"
|
||||
.equ ACIA_RAMSTART RAMSTART
|
||||
|
@ -7,6 +7,7 @@
|
||||
jp init
|
||||
|
||||
.inc "err.h"
|
||||
.inc "ascii.h"
|
||||
.inc "core.asm"
|
||||
.inc "parse.asm"
|
||||
.equ ACIA_RAMSTART RAMSTART
|
||||
|
@ -21,6 +21,7 @@ jp sdcSendRecv
|
||||
jp aciaInt
|
||||
|
||||
.inc "err.h"
|
||||
.inc "ascii.h"
|
||||
.inc "core.asm"
|
||||
.inc "parse.asm"
|
||||
.equ ACIA_RAMSTART RAMSTART
|
||||
|
@ -47,6 +47,7 @@ jp aciaInt
|
||||
jp blkGetB
|
||||
|
||||
.inc "err.h"
|
||||
.inc "ascii.h"
|
||||
.inc "core.asm"
|
||||
.inc "parse.asm"
|
||||
.equ ACIA_RAMSTART RAMSTART
|
||||
|
@ -9,6 +9,7 @@
|
||||
retn
|
||||
|
||||
.inc "err.h"
|
||||
.inc "ascii.h"
|
||||
.inc "core.asm"
|
||||
.inc "parse.asm"
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
retn
|
||||
|
||||
.inc "err.h"
|
||||
.inc "ascii.h"
|
||||
.inc "core.asm"
|
||||
.inc "parse.asm"
|
||||
|
||||
|
@ -40,6 +40,7 @@
|
||||
retn
|
||||
|
||||
.inc "err.h"
|
||||
.inc "ascii.h"
|
||||
.inc "core.asm"
|
||||
.inc "parse.asm"
|
||||
|
||||
|
@ -22,6 +22,7 @@
|
||||
.fill 0x64-$
|
||||
|
||||
.inc "err.h"
|
||||
.inc "ascii.h"
|
||||
.inc "core.asm"
|
||||
.equ FNT_WIDTH 3
|
||||
.equ FNT_HEIGHT 5
|
||||
|
@ -42,6 +42,7 @@
|
||||
|
||||
.inc "core.asm"
|
||||
.inc "err.h"
|
||||
.inc "ascii.h"
|
||||
.inc "parse.asm"
|
||||
|
||||
.equ BLOCKDEV_RAMSTART RAMSTART
|
||||
|
@ -33,6 +33,7 @@ jp printstr
|
||||
|
||||
.inc "core.asm"
|
||||
.inc "err.h"
|
||||
.inc "ascii.h"
|
||||
.inc "parse.asm"
|
||||
.equ BLOCKDEV_RAMSTART RAMSTART
|
||||
.equ BLOCKDEV_COUNT 3
|
||||
|
Loading…
Reference in New Issue
Block a user