diff --git a/apps/zasm/directive.asm b/apps/zasm/directive.asm index 4c9ab2b..229839c 100644 --- a/apps/zasm/directive.asm +++ b/apps/zasm/directive.asm @@ -50,12 +50,16 @@ handleDB: jr nz, .overflow ; not zero? overflow ld a, l call ioPutC + jr nz, .ioError .stopStrLit: call readComma jr z, .loop cp a ; ensure Z pop hl ret +.ioError: + ld a, SHELL_ERR_IO_ERROR + jr .error .badfmt: ld a, ERR_BAD_FMT jr .error diff --git a/apps/zasm/instr.asm b/apps/zasm/instr.asm index 46346ea..c20e1d0 100644 --- a/apps/zasm/instr.asm +++ b/apps/zasm/instr.asm @@ -823,10 +823,14 @@ parseInstruction: .loopWrite: ld a, (hl) call ioPutC + jr nz, .ioError inc hl djnz .loopWrite cp a ; ensure Z jr .end +.ioError: + ld a, SHELL_ERR_IO_ERROR + jr .error .overflow: ld a, ERR_OVFL jr .error diff --git a/apps/zasm/io.asm b/apps/zasm/io.asm index dff7c7a..c02d096 100644 --- a/apps/zasm/io.asm +++ b/apps/zasm/io.asm @@ -152,6 +152,7 @@ ioPutC: jp _blkPutC .skip: pop af + cp a ; ensure Z ret ioSavePos: diff --git a/kernel/sdc.asm b/kernel/sdc.asm index 48cfb90..ddced67 100644 --- a/kernel/sdc.asm +++ b/kernel/sdc.asm @@ -529,11 +529,13 @@ sdcSync: .buf1Ok: ld de, SDC_BUFSEC1 ld (SDC_BUFPTR), de + ; Z already set jr .end .buf2Ok: ld de, SDC_BUFSEC2 ld (SDC_BUFPTR), de + ; Z already set ; to .end .end: pop de diff --git a/tools/emul/zasm/glue.asm b/tools/emul/zasm/glue.asm index d86f7ba..97be16e 100644 --- a/tools/emul/zasm/glue.asm +++ b/tools/emul/zasm/glue.asm @@ -82,6 +82,7 @@ emulGetC: emulPutC: out (STDIO_PORT), a + cp a ; ensure Z ret fsdevGetC: @@ -111,6 +112,7 @@ fsdevPutC: jr nz, .error pop af out (FS_DATA_PORT), a + cp a ; ensure Z ret .error: pop af