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. |