004
17.06.2014, 08:48 Uhr
holm
|
OK, mit 1156 verwexelt....
Abgesehen davon gibts eine SIF1000 Variante, den BD4000 oder wie das Ding hieß, 1154 mit Tastatur..
CP/A SD1154 Treiber für "Spezialinterface mit PIO"
Quellcode: |
;************************************************************** ; PIO-Treiber fuer Drucker 1154 (Spezialinterface) ; Version 23.06.87 ;**************************************************************
cdp54i equ dumi ;keine Zeicheneingabe unterstuetzt
; Einzelzeichenausgabe (A)
cdp54o: or a ;nop? ret z ;ja, ignorieren cp 0ah ;gueltiges zeichen? jr c,loutw3 ;nein cp 10h jr c,loutw4 ;0a .. 0f gueltig cp 20h jr c,loutw3 cp 60h ;fuehrt zu druckerfehlern jr z,loutw3 cp 7bh jr c,loutw4 loutw3: ld a,'^' ;ungueltiges zeichen loutw4: ld c,(ix+ltpsd) cpl out (c),a ld c,(ix+ltpsc) set 0,a ;zeichenausgabe anzeigen out (c),a res 0,a out (c),a res 3,(ix+ltpst) ;Sender nicht frei, Status neu abfragen ret
; Statusabfrage
cdp54s: ld a,(ix+ltpst) ;Status bit 1,a ;senderseitig blockiert? jr nz,cdpsr1 ;ja, frei rueckmelden bit 3,a ;schon mal frei gemeldet? jr nz,cdpsr1 ;ja, Bereitsch.abfrage nur einmal moeglich! or a ;initialisiert? call z,cdpini ;nein
ld c,(ix+ltpsc) ;Statusport in a,(c) bit 1,a ;Drucker sendebereit? ;nz bei ja cdpsr1: ld a,0ffh ret nz ;senderseitig frei cdpsr2: res 3,(ix+ltpst) ;nicht frei inc a ;a:=00, ret z ret ;senderseitig besetzt
; (Re-)Initialisierung ; IX auf Steuertabelle
cdpini: LD (ix+ltpst),11h ;ist initial..; Status neu abfragen LD (ix+ltpdc),11H ;DC1 nach Initialisierung simulieren push ix pop hl ld bc,ltpini add hl,bc jp portpr
|
Gruß,
Holm -- float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v; {s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+ (r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&& (A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;} Dieser Beitrag wurde am 17.06.2014 um 08:59 Uhr von holm editiert. |