/* Diese Bibliothek ist fuer den KC85/4 mit Floppy geschrieben.Es werden die Funktionen aus dem 'Handbuch fuer den Programmierer' Seite 74 realisiert. Uwe Felgentreu / O-5210 Arnstadt / Am Fuerstenberg 46 / 15.Oktober 91 PSET(xx,y) PRES(xx,y) GFARB(f) LINE(xx1,y1,xx2,y2) CIRCL(xx,y,r) WINDOW(n) SOUND(t1,v1,t2,v2,l,z) TFARB(f,h) WININI(n,x1,y1,x2,y2) GCLS() INK(f) BACK(h) BSMODE() PCEXIT() CAOSP(n) IRMEB(s) IRMHI() IRMLO() MSWITCH(m,s) PTEST(xx) FKEY(n) LOCATE(x,y) READ1(aa) READN(aa) WRITE1(aa,b) WRITEN(aa,nn) GOSUB(aa) USOUT2(b) USOUT3(b) CAOSBS(b) ZSATZ(s) PAGEMOD(s) KBDMOD(s) CURSOR(s) TIMESE() TIMEMI() TIMEST() TIMESET(st,mi,se) DATE(puffer) BEEP() HOME() CLS() NEWLINE() CUU() CUO() CUL() CUR() Legende: xx.......X-Koordinate 0...319 y........Y-Koordinate 0...255 oder 0...31 x........X-Koordinate 0...39 f........Farbe 0...15 h........Farbe 0...7 s........Steuerbyte 0...255 n........Nummerbyte 0...255 m........Modulschacht 0...255 b........Byte 0...255 aa.......Adresse 0...2^16-1 nn.......Anzahl 0...2^16-1 r........Radius 0...255 st.......Stunde 0...23 mi.......Minute 0...59 se.......Sekunde 0...59 t1,t2....Takt-CTC 0...255 v1,v2....Vorteiler-CTC 0...255 l........Lautstaerke 0...255 z........Tondauer 0...255 ------------ BDOS-AUSGABEN ----------------------------------------------*/ f1esc(xx,y) int xx,y; { bdos(2,xx%256); bdos(2,xx/256); bdos(2,y); } f2esc(f) int f; { bdos(2,f); } f3esc(xx1,y1,xx2,y2) int xx1,y1,xx2,y2; { f1esc(xx1,y1); f1esc(xx2,y2); } f4esc(xx,y,r) int xx,y,r; { f1esc(xx,y); f2esc(r); } f5esc(n,x1,y1,x2,y2) int n,x1,y1,x2,y2; { bdos(2,n); bdos(2,x1); bdos(2,y1); bdos(2,x2); bdos(2,y2); } f6esc(f,h) int f,h; { bdos(2,f); bdos(2,h); } f7esc(xx) int xx; { bdos(2,xx%256); bdos(2,xx/256); } fn(n) int n; { bdos(2,27); n=n%256; bdos(2,n); } /*-------------- TEST-UNTERPROGRAMME ------------------------------------*/ xgtest(xx) int xx; { xx=abs(xx); xx=xx%320; return(xx); } ygtest(y) int y; { y=abs(y); y=y%256; return(y); } xwtest(x) int x; { x=abs(x); x=x%40; return(x); } ywtest(y) int y; { y=abs(y); y=y%32; return(y); } /*------------- FUNKTIONSDEFINITIONEN ----------------------------------*/ pset(x,y) int x,y; { fn(65); x=xgtest(x); y=ygtest(y); f1esc(x,y); } pres(x,y) int x,y; { fn(66); x=xgtest(x); y=ygtest(y); f1esc(x,y); } gfarb(f) int f; { fn(67); f=f%16; f2esc(f); } line(x1,y1,x2,y2) int x1,y1,x2,y2; { x1=xgtest(x1); x2=xgtest(x2); y1=ygtest(y1); y2=ygtest(y2); fn(68); f3esc(x1,y1,x2,y2); } circl(x,y,r) int x,y,r; { fn(69); x=xgtest(x); y=ygtest(y); r=ygtest(r); f4esc(x,y,r); } window(n) int n; { fn(70); n=n%10; f2esc(n); } sound(t1,v1,t2,v2,l,z) int t1,v1,t2,v2,l,z; { t1=ygtest(t1); v1=ygtest(v1); t2=ygtest(t2); v2=ygtest(v2); l=ygtest(l); z=ygtest(z); fn(71); f5esc(t1,v1,t2,v2,l); f2esc(z); } winini(n,x1,y1,x2,y2) int n,x1,y1,x2,y2; { n=ygtest(n); x1=xwtest(x1); y1=ywtest(y1); x2=xwtest(x2); y2=ywtest(y2); if(x1+x2<=40) { if(y1+y2<=32) { fn(76); f5esc(n,x1,y1,x2,y2); } } } tfarb(f,h) int f,h; { f=f%16; h=h%8; fn(72); f6esc(f,h); } gcls() { fn(77); } ink(f) int f; { fn(78); f=f%16; f2esc(f); } back(h) int h; { fn(79); h=h%8; f2esc(h); } bsmode() { fn(96); } pcexit() { fn(97); } caosp(n) int n; { n=abs(n); if(n<=50) { fn(91); f2esc(n); } } irmeb(s) int s; { s=s%256; fn(96); f2esc(s); } irmhi() { fn(97); } irmlo() { fn(98); } mswitch(m,s) int m,s; { m=m%256; if(m>8) { m=m/4; m=m*4; } s=s%256; fn(99); f6esc(m,s); } ptest(xx) int xx; { xx=xgtest(xx); fn(100); f7esc(xx); } fkey(n) int n; { n=n%12; fn(101); f2esc(n); } locate(x,y) int x,y; { x=xwtest(x); y=ywtest(y); bdos(2,27); bdos(2,128+x); bdos(2,128+y); } read1(aa) int aa; { aa=abs(aa); aa=aa%65536; fn(81); f7esc(aa); } readn(aa,n) int aa,n; { aa=abs(aa); aa=aa%65536; fn(82); f1esc(aa,n); } write1(aa,b) int aa,b; { aa=abs(aa); aa=aa%65536; b=b%256; fn(83); f1esc(aa,b); } writen(aa,nn) int aa,nn; { aa=abs(aa); aa=aa%65536; nn=abs(nn); nn=nn%65536; fn(84); f7esc(aa); f7esc(nn); } gosub(aa) int aa; { aa=abs(aa); aa=aa%65536; fn(85); f7esc(aa); } usout2(b) int b; { b=b%256; fn(87); f2esc(b); } usout3(b) int b; { b=b%256; fn(88); f2esc(b); } caosbs(b) int b; { b=b%256; fn(86); f2esc(b); } zsatz(s) int s; { s=s%2; if(s!=(peek(0xffb6)&2)) { fn(93); } } pagemod(s) int s; { s=s%2; if(s!=(peek(0xffb6)&8)) { fn(94); } } kbdmod(s) int s; { s=s%2; if((peek(0xffb6)&4)) { fn(95); } } cursor(s) int s; { s=s%2; f2esc(0x82+s); } beep() { bdos(2,7); } home() { bdos(2,1); } cuu() { bdos(2,10); } cuo() { bdos(2,26); } cul() { bdos(2,8); } cur() { bdos(2,21); } nl() { bdos(2,13); } cls() { bdos(2,12); } oldfarb() { return(read1(0xb7a3)); } oldink() { return((oldfarb(0xb7a3)%128)>>3); } oldback() { return(oldfarb(0xb7a3)&7); } /*------------- ENDE ---------------------------------------------------*/