Browse Source

Move ASCII consts to ascii.h

And made them shorter in name. The new ascii.h file allow reuse in userspace
code.
pull/85/head
Virgil Dupras 4 years ago
parent
commit
7274dccbe7
21 changed files with 43 additions and 36 deletions
  1. +1
    -0
      apps/zasm/glue.asm
  2. +3
    -3
      apps/zasm/tok.asm
  3. +1
    -0
      doc/glue-code.md
  4. +4
    -0
      kernel/ascii.h
  5. +6
    -16
      kernel/core.asm
  6. +1
    -1
      kernel/shell.asm
  7. +2
    -2
      kernel/sms/pad.asm
  8. +3
    -3
      kernel/sms/vdp.asm
  9. +9
    -9
      kernel/stdio.asm
  10. +2
    -2
      kernel/ti/lcd.asm
  11. +1
    -0
      recipes/rc2014/eeprom/glue.asm
  12. +1
    -0
      recipes/rc2014/glue.asm
  13. +1
    -0
      recipes/rc2014/ps2/glue.asm
  14. +1
    -0
      recipes/rc2014/sdcard/glue.asm
  15. +1
    -0
      recipes/rc2014/zasm/glue.asm
  16. +1
    -0
      recipes/sms/glue.asm
  17. +1
    -0
      recipes/sms/kbd/glue.asm
  18. +1
    -0
      recipes/sms/romasm/glue.asm
  19. +1
    -0
      recipes/ti84/glue.asm
  20. +1
    -0
      tools/emul/shell/shell_.asm
  21. +1
    -0
      tools/emul/zasm/glue.asm

+ 1
- 0
apps/zasm/glue.asm View File

@@ -68,6 +68,7 @@
; ******

.inc "err.h"
.inc "ascii.h"
.org USER_CODE

jp zasmMain


+ 3
- 3
apps/zasm/tok.asm View File

@@ -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


+ 1
- 0
doc/glue-code.md View File

@@ -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
- 0
kernel/ascii.h View File

@@ -0,0 +1,4 @@
.equ BS 0x08
.equ CR 0x0d
.equ LF 0x0a
.equ DEL 0x7f

+ 6
- 16
kernel/core.asm View File

@@ -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


+ 1
- 1
kernel/shell.asm View File

@@ -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.


+ 2
- 2
kernel/sms/pad.asm View File

@@ -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:


+ 3
- 3
kernel/sms/vdp.asm View File

@@ -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


+ 9
- 9
kernel/stdio.asm View File

@@ -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

+ 2
- 2
kernel/ti/lcd.asm View File

@@ -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


+ 1
- 0
recipes/rc2014/eeprom/glue.asm View File

@@ -12,6 +12,7 @@ jp init
jp aciaInt

.inc "err.h"
.inc "ascii.h"
.inc "core.asm"
.inc "parse.asm"
.equ ACIA_RAMSTART RAMSTART


+ 1
- 0
recipes/rc2014/glue.asm View File

@@ -12,6 +12,7 @@ jp init
jp aciaInt

.inc "err.h"
.inc "ascii.h"
.inc "core.asm"
.inc "parse.asm"
.equ ACIA_RAMSTART RAMSTART


+ 1
- 0
recipes/rc2014/ps2/glue.asm View File

@@ -7,6 +7,7 @@
jp init

.inc "err.h"
.inc "ascii.h"
.inc "core.asm"
.inc "parse.asm"
.equ ACIA_RAMSTART RAMSTART


+ 1
- 0
recipes/rc2014/sdcard/glue.asm View File

@@ -21,6 +21,7 @@ jp sdcSendRecv
jp aciaInt

.inc "err.h"
.inc "ascii.h"
.inc "core.asm"
.inc "parse.asm"
.equ ACIA_RAMSTART RAMSTART


+ 1
- 0
recipes/rc2014/zasm/glue.asm View File

@@ -47,6 +47,7 @@ jp aciaInt
jp blkGetB

.inc "err.h"
.inc "ascii.h"
.inc "core.asm"
.inc "parse.asm"
.equ ACIA_RAMSTART RAMSTART


+ 1
- 0
recipes/sms/glue.asm View File

@@ -9,6 +9,7 @@
retn

.inc "err.h"
.inc "ascii.h"
.inc "core.asm"
.inc "parse.asm"



+ 1
- 0
recipes/sms/kbd/glue.asm View File

@@ -9,6 +9,7 @@
retn

.inc "err.h"
.inc "ascii.h"
.inc "core.asm"
.inc "parse.asm"



+ 1
- 0
recipes/sms/romasm/glue.asm View File

@@ -40,6 +40,7 @@
retn

.inc "err.h"
.inc "ascii.h"
.inc "core.asm"
.inc "parse.asm"



+ 1
- 0
recipes/ti84/glue.asm View File

@@ -22,6 +22,7 @@
.fill 0x64-$

.inc "err.h"
.inc "ascii.h"
.inc "core.asm"
.equ FNT_WIDTH 3
.equ FNT_HEIGHT 5


+ 1
- 0
tools/emul/shell/shell_.asm View File

@@ -42,6 +42,7 @@

.inc "core.asm"
.inc "err.h"
.inc "ascii.h"
.inc "parse.asm"

.equ BLOCKDEV_RAMSTART RAMSTART


+ 1
- 0
tools/emul/zasm/glue.asm View File

@@ -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…
Cancel
Save