zasm: allow zasm to omit its 3rd argument
A bug in rdWS made zasm error out when omiting its 3rd argument. fixes #90
This commit is contained in:
parent
9515d63d47
commit
0f2b3aca24
@ -20,10 +20,10 @@ toWS:
|
|||||||
; Set Z if non-WS found, unset if end-of-string.
|
; Set Z if non-WS found, unset if end-of-string.
|
||||||
rdWS:
|
rdWS:
|
||||||
ld a, (hl)
|
ld a, (hl)
|
||||||
call isWS
|
|
||||||
jr nz, .ok
|
|
||||||
cp 0x01 ; if a is null, carries and unsets z
|
cp 0x01 ; if a is null, carries and unsets z
|
||||||
ret c
|
ret c
|
||||||
|
call isWS
|
||||||
|
jr nz, .ok
|
||||||
inc hl
|
inc hl
|
||||||
jr rdWS
|
jr rdWS
|
||||||
.ok:
|
.ok:
|
||||||
@ -97,8 +97,8 @@ strlen:
|
|||||||
ld c, a
|
ld c, a
|
||||||
cpir ; advances HL to the char after the null
|
cpir ; advances HL to the char after the null
|
||||||
.found:
|
.found:
|
||||||
; How many char do we have? We have strlen=(NEG BC)-1, since BC started
|
; How many char do we have? We have strlen=(NEG BC)-1, since BC started
|
||||||
; at 0 and decreased at each CPIR loop. In this routine,
|
; at 0 and decreased at each CPIR loop. In this routine,
|
||||||
; we stay in the 8-bit realm, so C only.
|
; we stay in the 8-bit realm, so C only.
|
||||||
add hl, bc
|
add hl, bc
|
||||||
sub c
|
sub c
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
.equ SHELL_RAMSTART 0x4100
|
|
||||||
.equ USER_CODE 0x4200 ; in sync with glue.asm
|
.equ USER_CODE 0x4200 ; in sync with glue.asm
|
||||||
|
|
||||||
; *** JUMP TABLE ***
|
; *** JUMP TABLE ***
|
||||||
|
55
tests/unit/test_lib_util.asm
Normal file
55
tests/unit/test_lib_util.asm
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
jp test
|
||||||
|
|
||||||
|
.inc "ascii.h"
|
||||||
|
.inc "core.asm"
|
||||||
|
.equ STDIO_RAMSTART RAMSTART
|
||||||
|
.inc "stdio.asm"
|
||||||
|
.inc "common.asm"
|
||||||
|
.inc "lib/ari.asm"
|
||||||
|
.inc "lib/fmt.asm"
|
||||||
|
.inc "lib/util.asm"
|
||||||
|
|
||||||
|
test:
|
||||||
|
ld sp, 0xffff
|
||||||
|
|
||||||
|
call testRdWS
|
||||||
|
|
||||||
|
; success
|
||||||
|
xor a
|
||||||
|
halt
|
||||||
|
|
||||||
|
testRdWS:
|
||||||
|
ld hl, .allGood
|
||||||
|
ld ix, .testGood
|
||||||
|
call testList
|
||||||
|
ld hl, .allBad
|
||||||
|
ld ix, .testBad
|
||||||
|
jp testList
|
||||||
|
|
||||||
|
.testGood:
|
||||||
|
call rdWS
|
||||||
|
jp assertZ
|
||||||
|
|
||||||
|
.testBad:
|
||||||
|
call rdWS
|
||||||
|
jp assertNZ
|
||||||
|
|
||||||
|
; Strings ending with a non-WS, and thus yielding Z
|
||||||
|
.g1:
|
||||||
|
.db " X", 0
|
||||||
|
.g2:
|
||||||
|
.db "X", 0
|
||||||
|
|
||||||
|
.allGood:
|
||||||
|
.dw .g1, .g2, 0
|
||||||
|
|
||||||
|
; Strings ending with a WS, and thus yielding NZ
|
||||||
|
.b1:
|
||||||
|
.db 0
|
||||||
|
.b2:
|
||||||
|
.db " ", 0
|
||||||
|
|
||||||
|
.allBad:
|
||||||
|
.dw .b1, .b2, 0
|
||||||
|
|
||||||
|
RAMSTART:
|
Loading…
Reference in New Issue
Block a user