X-Git-Url: http://cloudbase.mooo.com/gitweb/z180-stamp.git/blobdiff_plain/6a4e9540b950d871ea8fa072b195490a231b251d..64cc220767e870fad388fb9021cf96ff2958275b:/z180/console.180 diff --git a/z180/console.180 b/z180/console.180 index 07fb570..1241d5a 100644 --- a/z180/console.180 +++ b/z180/console.180 @@ -2,47 +2,136 @@ .z80 - global $coninit - global $cists,$ci - global $co +; iobyte: +; 0 = console on AVR-System +; 1 = console on SIO/ASCI - extrn ser.init,ser.instat,ser.in,ser.out - extrn ff.init,ff.i.st,ff.in,ff.out - extrn ff.out + extrn iobyte + extrn ff.init,ff.i.st,ff.in + extrn ff.o.st,ff.out + if CPU_Z180 + extrn as0init,as0ista,as0inp,as0osta,as0out + extrn as1init,as1ista,as1inp,as1osta,as1out + else + extrn ser.init,ser.ist,ser.in,ser.ost,ser.out + endif + public charini + public ?const,?conin + public ?conos,?cono include config.inc + if CPU_Z180 include z180reg.inc + endif cseg -; -; -$coninit: + if CPU_Z180 +charini: call ff.init + call as0init + jp as1init + +?const: + ld a,(iobyte) + and 03h + jp z,ff.i.st + dec a + jp z,as0ista + dec a + jp z,as1ista + jr nullstatus + +?conin: + ld a,(iobyte) + and 03h + jp z,ff.in + dec a + jp z,as0inp + dec a + jp z,as1inp + jr nullinput + +?conos: + ld a,(iobyte) + and 03h + jp z,ff.o.st + dec a + jp z,as0osta + dec a + jp z,as1osta + jr rettrue + +?cono: + ld a,(iobyte) + and 03h + jp z,ff.out + dec a + jp z,as0out + dec a + jp z,as1out + jr nulloutput + + else + +charini: + call ff.init + ld c,0 call ser.init + ld c,1 + jp ser.init + +?const: + ld a,(iobyte) + and 03h + jp z,ff.i.st + dec a + ld b,a + jp ser.ist + +?conin: + ld a,(iobyte) + and 03h + jp z,ff.in + dec a + ld b,a + jp ser.in + +?conos: + ld a,(iobyte) + and 03h + jp z,ff.o.st + dec a + ld b,a + jp ser.ost + +?cono: + ld a,(iobyte) + and 03h + jp z,ff.out + dec a + ld b,a + jp ser.out + endif + + +nullinput: + ld a,1Ah ret - -$cists: - call ff.i.st - ret nz - call ser.instat + +nulloutput: + ld a,c ret - -$ci: - call ff.i.st - jp nz,ff.in - call ser.instat - jp nz,ser.in - jr $ci - -;$costs: -; jp f.o.st - -$co: - call ff.out - jp ser.out - + +rettrue: + or 0FFh + ret + +nullstatus: + xor a + ret + end