.z80\r
\r
\r
- global $coninit\r
- global $cists,$ci\r
- global $co\r
+; iobyte:\r
+; 0 = console on AVR-System\r
+; 1 = console on SIO/ASCI\r
\r
\r
- extrn ser.init,ser.instat,ser.in,ser.out\r
- extrn msginit,msg.in,msg.out,msgi.st\r
- extrn msg.co\r
+ extrn iobyte\r
+ extrn ff.init,ff.i.st,ff.in\r
+ extrn ff.o.st,ff.out\r
+ if CPU_Z180\r
+ extrn as0init,as0ista,as0inp,as0osta,as0out\r
+ extrn as1init,as1ista,as1inp,as1osta,as1out\r
+ else\r
+ extrn ser.init,ser.ist,ser.in,ser.ost,ser.out\r
+ endif\r
\r
+ public charini\r
+ public ?const,?conin\r
+ public ?conos,?cono\r
\r
include config.inc\r
+ if CPU_Z180\r
include z180reg.inc\r
+ endif\r
\r
cseg\r
-;\r
-;\r
\r
-$coninit:\r
- call msginit\r
+ if CPU_Z180\r
+charini:\r
+ call ff.init\r
+ call as0init\r
+ jp as1init\r
+\r
+?const:\r
+ ld a,(iobyte)\r
+ and 03h\r
+ jp z,ff.i.st\r
+ dec a\r
+ jp z,as0ista\r
+ dec a\r
+ jp z,as1ista\r
+ jr nullstatus\r
+\r
+?conin:\r
+ ld a,(iobyte)\r
+ and 03h\r
+ jp z,ff.in\r
+ dec a\r
+ jp z,as0inp\r
+ dec a\r
+ jp z,as1inp\r
+ jr nullinput\r
+\r
+?conos:\r
+ ld a,(iobyte)\r
+ and 03h\r
+ jp z,ff.o.st\r
+ dec a\r
+ jp z,as0osta\r
+ dec a\r
+ jp z,as1osta\r
+ jr rettrue\r
+\r
+?cono:\r
+ ld a,(iobyte)\r
+ and 03h\r
+ jp z,ff.out\r
+ dec a\r
+ jp z,as0out\r
+ dec a\r
+ jp z,as1out\r
+ jr nulloutput\r
+\r
+ else\r
+\r
+charini:\r
+ call ff.init\r
+ ld c,0\r
call ser.init\r
+ ld c,1\r
+ jp ser.init\r
+\r
+?const:\r
+ ld a,(iobyte)\r
+ and 03h\r
+ jp z,ff.i.st\r
+ dec a\r
+ ld b,a\r
+ jp ser.ist\r
+\r
+?conin:\r
+ ld a,(iobyte)\r
+ and 03h\r
+ jp z,ff.in\r
+ dec a\r
+ ld b,a\r
+ jp ser.in\r
+\r
+?conos:\r
+ ld a,(iobyte)\r
+ and 03h\r
+ jp z,ff.o.st\r
+ dec a\r
+ ld b,a\r
+ jp ser.ost\r
+\r
+?cono:\r
+ ld a,(iobyte)\r
+ and 03h\r
+ jp z,ff.out\r
+ dec a\r
+ ld b,a\r
+ jp ser.out\r
+ endif\r
+\r
+\r
+nullinput:\r
+ ld a,1Ah\r
ret\r
- \r
-$cists:\r
- call msgi.st\r
- ret nz\r
- call ser.instat\r
+\r
+nulloutput:\r
+ ld a,c\r
ret\r
- \r
-$ci:\r
- call msgi.st\r
- jp nz,msg.in\r
- call ser.instat\r
- jp nz,ser.in\r
- jr $ci\r
- \r
-;$costs:\r
-; jp f.o.st\r
- \r
-$co:\r
- call msg.co\r
- jp ser.out\r
- \r
+\r
+rettrue:\r
+ or 0FFh\r
+ ret\r
+\r
+nullstatus:\r
+ xor a\r
+ ret\r
+\r
end\r
\r