.Z80 .PHASE 0BA00H ; CENTRONICS-TREIBER ; ZEICHENAUSGABE FUER K6313 ; EINSCHLIESSLICH HARDCOPY ; COPYRIGHT BY K.-D. KIRVES ;*************************************** ;VEREINBARUNGEN: VERT EQU 0F003H CAOS EQU VERT MODU EQU 26H CRT EQU 0 PUFAD EQU 0B700H ;SYSTEMZELLEN CAOS ARGN EQU 0B781H ARG4 EQU 0B788H HCADR EQU 0B799H ;HARD-COPY STBT EQU 0B7A2H ;STEUERBYTE ZEIC OUTAB EQU 0B7B9H ;ZEIGER UP-NR.O UOUT1 EQU 0B7BDH ;USER OUT 1 ADR UOUT2 EQU 0B7C3H ; 2 CRR EQU 0DH ; PIOA EQU 04H ;PIO KANAL A DAT PIOAC EQU 06H ; STEUERWORT PIOB EQU 05H ;PIO B DATEN PIOBC EQU 07H ; STEUERWORT MKENN EQU 0EFH ;*************************************** ;PARAMETERUEBERGABE BEI AUFRUF: ; DIO- MODULSCHACHT KANAL USER-OUT PROTK ; 8 u.s.w. BELIEBIG 2/3 0-KN ;UEBERGEBEN IN ARGUMENTEN 1-IST ;WENN GEWUENSCHT 2-HCP ;*************************************** ;RAMZELLE: 14858 DEZ. HCPZ: DEFB 9 ;BIT 0 0 HARD-COPY OFF ; 1 - " - ON ; 1 0 USEROUT 1 ; 1 USEROUT 2 ; 3 0 PROTOKOLL OFF ; 1 - " - ON ;EINGESTELLT AUF: ; USEROUT 1 (#2) ; PROTOKOLL EIN ; SCREENCOPY AN ; MODULSCHACHT 8 MODSCH: DEFB 8 ;MODULSCHACHT ;--------------------------------------- JP START ;SELBSTSTARTADR. ;--------------------------------------- ;INITIALISIERUNGSTABELLE INTAB0: DEFB 0AH ;LF DEFB 0DH ;CR TABEND EQU $ MERK: DEFB 0 DEFW 7F7FH ;PROLOG DEFM 'CENK6313' DEFB 1 ; LD A,(ARGN) ; CP 4 ; JR C,START LD A,L ;ARG1,LOW LD (MODSCH),A ;SCHACHT LD A,(HCPZ) CHA1: LD B,A LD A,C ;USEROUT SUB 2 RES 1,B JR Z,CH1 SET 1,B CH1: LD A,(ARG4) ;PROT+HC RES 0,B RES 3,B AND A JR Z,CH2 SET 3,B ;PROTOKOLL DEC A JR Z,CH2 SET 0,B ;HARDCOPY CH2: LD A,B LD (HCPZ),A ; SELBSTSTARTADRESSE ;+++++++++++++++++++++++++++++++++++++ START: LD A,(MODSCH) LD B,A LD C,80H IN A,(C) CP MKENN JR Z,ST1 ERROR: CALL VERT DEFB 19H RET ; ST1: LD L,B LD A,2 ZWEI EQU $-1 LD D,1 LD E,D DREI EQU $+1 CALL VERT DEFB MODU CALL UPUSC ST3: BIT 3,A JR Z,INZ ;IN HARDCOPY EINTRAGEN LD HL,HCOP LD (HCADR),HL INZ: LD A,0FFH OUT (PIOAC),A XOR A OUT (PIOAC),A DEC A OUT (PIOBC),A ;BIT0 OUT LD A,4 OUT (PIOBC),A LD A,1 OUT (PIOB),A ;STROBE PASSIV EI ;INIT./ AUSGABE CR LD HL,INTAB0 LD B,TABEND-INTAB0 JP INBIM ;*************************************** ; EINTRAG USER-KANAL UPUSC: LD HL,ZCRT LD DE,SDD UPUS1: LD A,(HCPZ) LD (OUTAB),HL ;EINTRAG BIT 1,A ;USER2 ODER 3? JR NZ,ST2 LD (UOUT1+1),DE RET ST2: LD (UOUT2+1),DE RET ;*************************************** ;PROTOKOLLFUNKTION UEBER SHIFT CLEAR ;ODER BIDSCHIMAUSDRUCK ZUOT EQU ZWEI HCOP: PUSH HL PUSH DE LD A,(HCPZ) BIT 0,A JP NZ,BIMOD HCOPE: LD HL,(OUTAB) INC (HL) DEC (HL) JR NZ,HACO1 LD DE,PROT LD HL,ZWEI BIT 1,A JR Z,HACO3 LD L,LOW(DREI) HACO3: CALL UPUS1 HAPOP: POP DE POP HL RET HACO1: CALL UPUSC JR HAPOP ; TEXORC: LD A,M JR SDD1 ; PROT: PUSH AF CALL VERT ZCRT: DEFB 00H POP AF ;*************************************** ; ZEICHENAUSGABE ZEICHEN IN A SDD: PUSH HL PUSH BC LD B,7 LD HL,CODTAB SDD2: CP M INC HL JR Z,TEXORC INC HL DJNZ SDD2 SDD1: POP BC POP HL PUSH AF LD A,(STBT) BIT 3,A ;INTERPRET? JR Z,SD9 ;YES POP AF PUSH AF CP 7EH JR NC,SD4 ;PSEUDOGRAFIK? SD3: CP 20H ;STEUERCODE? JR NC,SD11 SD4: LD A,'_' SD11: CALL SD1 SDX: POP AF RET ; SD9: POP AF CP 0FH JR Z,SDY CP 0DH JR NZ,SD1 ;TABULATOR NACH CR PUSH AF CALL SD1 LD A,09H JR SD11 ; SDY: LD A,(MERK) CP 1BH ;ESCAPE LD A,0FH RET NZ ;DIREKTE BYTEAUSGABE SD1: PUSH BC ;AUSGABE DATEN PUSH AF SDA: IN A,(PIOB) BIT 2,A JR Z,SDB ;BUSY? LD A,5 CALL CAOS DEFB 14H ;WARTEN JR SDA ; SDB: POP AF PUSH AF OUT (PIOA),A ;DATEN XOR A OUT (PIOB),A INC A OUT (PIOB),A POP AF POP BC RET ;*************************************** INTAB2: DEFB 0DH ;CR DEFB 09H ;TABULATOR DEFB 1BH DEFM 'J' ;ZEILENVORSCHUB DEFB 24 ;18/216" INTAB4: DEFB 1BH DEFB 2AH ;BITMODE DEFB 5 ;PLOTTERGRAFIK DEFB 40H ;320 PUNKTE DEFB 01H ;BIMO INIT TABE2 EQU $ ;-------------------------------- INBIM: LD A,(HL) ;ZEIGER TABELLE INC HL CALL SD1 DJNZ INBIM RET ; BIMOD: PUSH AF PUSH BC LD H,0 BIM1: PUSH HL LD HL,INTAB2 ;INIT LD B,TABE2-INTAB2 CALL INBIM POP HL LD L,0 BIM4: LD B,8 PUSH HL LD DE,PUFAD BIM2: PUSH HL PUSH DE CALL VERT DEFB 34H LD A,M POP DE LD (DE),A INC DE POP HL INC H DJNZ BIM2 LD C,8 BIM5: LD B,8 LD HL,PUFAD BIM3: RL M RLA INC HL DJNZ BIM3 CALL SD1 DEC C JR NZ,BIM5 POP HL INC L LD A,40 CP L JR NZ,BIM4 LD A,H ADD A,8 LD H,A JR NC,BIM1 LD A,0CH CALL SD1 POP BC POP AF POP DE POP HL RET ;******************************** ;DIREKTE BYTEAUSGABE CODTAB: DEFB 80H DEFB 7BH DEFB 81H DEFB 7CH DEFB 82H DEFB 7DH DEFB 83H DEFB 7EH DEFB 86H DEFB 5BH DEFB 87H DEFB 5CH DEFB 88H DEFB 5DH ; END