/ DRAW.PA REV 0.9 / / HP 7475 PLOTTER SUBROUTINES / / MUST ASSEMBLED WITH USER PROGRAMM AND TXIO32 / WITH /F OPTION. START AT 4000 / MAY START AT 4200 IF EXTMAC IS DEFINED. / / DRAWA4 INIT PLOTTER, PAPER SIZE A4 / DRAWA3 INIT PLOTTER, PAPER SIZE A3 / DRAW COPY TEXT TO PLOTTER DEV 33/34 / DRAWCP CHANGE PAPER / DRAWEX EXIT TO OS/8 / / / 22-MAY-85 REV 0.0 KJ.S. / 11-JUN-85 REV 0.1 KJ.S. PEN NO. AS MACRO ARG. / 12-JUN-85 REV 0.2 KJ.S. OP-AMP'S ADDED / 12-JUN-85 REV 0.3 KJ.S. IC PATTERN ADDED / 24-APR-86 REV 0.4 KJ.S. ERROR MESSAGES ADDED / 28-APR-86 REV 0.5 KJ.S. CHANGE PAPER ADDED / 29-APR-86 REV 0.6 KJ.S. SUBROUTINE DRAW / 06-MAY-86 REV 0.7 KJ.S. BASIC DRAW WITHOUT MACRO / 16-JUN-86 REV 0.8 KJ.S. BUFFER IN DIFFERENT FIELD / 05-JUL-86 REV 0.9 KJ.S. DELAY IN DRAWCP / FIELD 0 *4200 / / SUBROUTINE DRAW / / TRANSFER PAL8 TEXT-STRING TO HP7475 PLOTTER / OUTPUT DEVICE IS 33/34. / IF THE PLOTTER IS NOT INITALIZED BY 'DRAWA3' OR 'DRAWA4', / THE DEFAULT INITIALISATION IS FOR DIN A4 PAPER SIZE. / BEFORE START, THE CHANGE PAPER ROUTINE 'DRAWCP' / IS CALLED AND A MESSAGE IS DISPLAYED ONLY ON TTY / IF THE PLOTTER IS READY. THE PAPER SIZE LED / IS BLINKING UNDER ALL CONDITIONS: LOAD PAPER AND / IF THE LED IS STILL BLINKING OR IF NO NEW PAPER / IS NEEDED, PRESS 'ENTER'. / BEFORE EXIT THE ERROR STATUS OF THE PLOTTER / IS DISPLAYED WITH FULL EXPLANATION ON TTY. / / ENTRY: AC = POINTER TO TEXT / ARG1: BUFFER FIELD XXNX / EXIT: AC = 0 / DRAW, 0 DCA DRWSTO / SAVE TEXT POINTER TAD I DRAW / GET FIELD AND (70 TAD (6201 DCA DRWFLD ISZ DRAW TAD DRWIFL SZA CLA / PLOTTER INITIALIZED ? JMS DRAWA4 / NO: A4 DEFAULT AND CHANGE PAPER TAD DRWFLD DCA TTOFLD / SET FIELD INSTRUCTION TAD DRWSTO JMS TTO / PLOT TAD (6201 DCA TTOFLD / RESET FIELD INSTRUCTION JMS DRAWER / READ ERROR STATUS JMP I DRAW DRWSTO, 0 DRWFLD, 0 / / SUBROUTINE DRAWA3 AND DRAWA4 / / INITIALISATION OF THE PLOTTER FOR DIFFERENT / PAPER SIZE. 'DRAWCP' FOR CHANGE PAPER IS CALLED. / / ENTRY: AC = NC / EXIT: AC = 0 / DRAWA4, 0 CLA TAD (DRWIIN JMS TTO TAD (DRWIA4 JMS TTO DCA DRWIFL / CLEAR FLAG JMS DRAWCP JMP I DRAWA4 DRAWA3, 0 CLA TAD (DRWIIN JMS TTO TAD (DRWIA3 JMS TTO DCA DRWIFL / CLEAR FLAG JMS DRAWCP JMP I DRAWA3 DRWIFL, -1 / FLAG CLEARED AFTER INITIALISATION / / SUBROUTINE DRAWCP / / ENABLE OPERATOR TO CHANGE PAPER / THERE ARE THREE SEQUENCES TO INTERRUPT THE / PLOT TO ENABLE THE OPERATOR TO CHANGE PAPER / / 1. SET PAPER SIZE LED BLINKING AND WAIT FOR PLOTTER / READY (STATUS=8). / IF THE PAPER LEVER IS UP, THE ROUTINE WAITS / UNTIL THE PAPER LEVER IS DOWN AGAIN. / 2. TYPE MESSAGE ON TTY AND WAIT UNTIL THE PAPER / LEVER IS HIGH (PAPER CHANGE) OR THE 'ENTER' / IS PRESSED. THE LED IS STILL BLINKING. / 3. WAIT FOR PLOTTER READY (STATUS=8) SO PLOTTING / CONTINUES AFTER LEVER LOW OR 'ENTER'. / THE PAPER SIZE LED BLINKING IS STOPPED. / / ENTRY: AC = NC / EXIT: AC = 0 / DRAWCP, 0 CLA TAD DRWIFL SZA CLA / PLOTTER INITIALIZED ? JMS DRAWA4 / NO: A4 DEFAULT TAD (330 / SET INPUT DEV FOR ERROR CODE JMS TIDC TAD (7200 / DISABLE TTI ECHO DCA TTI3-4 DRWCP1, TAD (DRWCPM / SEND STATUS COMMAND JMS TTO JMS TTI DRWCPB 4 TAD DRWCPB / CHECK STATUS TAD (-7000 / MUST BE "8 SZA CLA / PLOTTER OUTPUT = 8D ? JMP DRWCP1 / NO: ASK AGAIN TAD (40 / YES: SEND OPERATOR MESSAGE JMS TODC / CHANGE DEVICE CODE TAD (DRWCPO JMS TTO TAD (340 JMS TODC DRWCP2, TAD (DRWCPM / SEND STATUS COMMAND JMS TTO JMS TTI DRWCPB 4 TAD DRWCPB / CHECK STATUS TAD (-7000 SNA CLA / STATUS.NE.8D ? JMP DRWCP2 / NO: DRWCP3, TAD (DRWCPN / YES: SEND STATUS COMMAND JMS TTO JMS TTI DRWCPB 4 TAD DRWCPB / CHECK STATUS TAD (-7000 SZA CLA / STATUS = 8D ? JMP DRWCP3 / NO: TAD (DRWCPX / CR/LF JMS TTO TAD DRWCPD / DELAY DCA DRWCPY ISZ DRWCPZ JMP .-1 ISZ DRWCPY JMP .-3 JMP I DRAWCP / YES: DONE DRWCPD, -12 DRWCPZ, 0 DRWCPY, 0 DRWCPB, ZBLOCK 4 / INPUT BUFFER PAGE / / SUBROUTINE DRAWEX / / UNLOAD PEN AND EXIT TO OS/8 / / ENTRY: AC = NC / EXIT: NO EXIT / DRAWEX, NOP / JMP OR JMS WORKS CLA CLL TAD DRWIFL SZA CLA / PLOTTER INITIALIZED ? JMS DRAWA4 / NO: A4 DEFAULT TAD (DRWEXM JMS TTO JMP I (7600 / / SUBROTINE DRAWER / / READ PLOTTER ERROR STATUS AND TYPE / ERROR WITH FULL EXPLANATION ON TTY / / ENTRY: AC = NC / EXIT: AC = 0 / DRAWER, 0 CLA CLL TAD DRWIFL SZA CLA / PLOTTER INITIALIZED ? JMS DRAWA4 / NO: A4 DEFAULT TAD (DRWEGL JMS TTO / SEND MESSAGE JMS DRWERM / READ ERROR CODE TAD (DRWERC / EXTENDED ERROR CODE JMS TTO JMS DRWERM JMP I DRAWER DRWERM, 0 / READ ERROR CODE AND TYPE CLA / ERROR MESSAGE ON TTY TAD (330 / SET INPUT DEV FOR ERROR CODE JMS TIDC TAD (7200 / DISABLE TTI ECHO DCA TTI3-4 JMS TTI DRWINB 4 TAD DRWINB / CHECK ERROR CODE BSW TAD (-60 SNA / ERROR CODE = 0 ? JMP I DRWERM / YES: TAD (-1 DCA DRWESC / NO: ERROR TAD DRWINB / CHECK SECOND CHARACTER AND (77 SNA / ZERO ? JMP DRWERN / YES: ONE DIGIT ONLY TAD (-60 / NO: ERROR CODE 10 - 16 TAD (11 DCA DRWESC DRWERN, TAD DRWESC AND (7760 TAD DRWINB+1 SNA CLA / ERROR CODE 1<16 ? JMP .+3 / YES: TAD (10 / NO: UNDEFINED ERROR SKP TAD DRWESC AND (17 TAD (DRWEMS / ADD TABLE START DCA DRWESC TAD (40 / TTY OUTPUT JMS TODC TAD (DRWEMH / MESSAGE HEADER JMS TTO TAD I DRWESC JMS TTO TAD (340 JMS TODC JMP I DRWERM DRWESC, 0 / ERROR CODE DRWEMH, TEXT />DRAW ERROR / DRWINB, ZBLOCK 4 DRWEMS, DRWE01 DRWE02 DRWE03 DRWE04 DRWE05 DRWE06 DRWE04 DRWE08 DRWE04 DRWE10 DRWE11 DRWE12 DRWE03 DRWE14 DRWE15 DRWE16 PAGE / INITIALIZATION DRWIIN, TEXT /&34$[$.N;19:$[$.H32;;17:IN;SP0;PU;&04>DRAW DIN /;0 DRWIA4, TEXT /A4$JM$&00PS4;IP603,521,10603,7721;SC0,250,0,180;IW;/;0 DRWIA3, TEXT /A3$JM$&00PS3;IP170,602,15370,10602;SC0,380,0,250;IW;/;0 / DRAWCP MESSAGES DRWCPM, TEXT /DP;$[$.O/;0 DRWCPN, TEXT /DC;$[$.O/;0 DRWCPO, TEXT /&04$JM$>DRAW CHANGE PAPER !!&00/;0 DRWCPX, TEXT /&04$JM$&00/;0 / DRAWEX MESSAGE DRWEXM, TEXT /&04>DRAW EXIT$JM$&00PU;PA0,0;SP0;/;0 / DRAWER MESSAGES DRWEGL, TEXT /OE;/;0 DRWERC, TEXT /$[$.E;/;0 DRWE01, TEXT /$I$INSTRUCTION NOT RECOGNIZED !!$JM$/;0 DRWE02, TEXT /$I$WRONG NUMBER OF PARAMETER !!$JM$/;0 DRWE03, TEXT /$I$OUT-OF-RANGE PARAMETER !!$JM$/;0 DRWE04, TEXT /$I$?$JM$/;0 DRWE05, TEXT /$I$UNKNOWN CHARACTER SET !!$JM$/;0 DRWE06, TEXT /$I$POSITION OVERFLOW !!$JM$/;0 DRWE08, TEXT /$I$VECTOR RECEIVED WHILE PINCH WHEELS RAISED !!$JM$/;0 DRWE10, TEXT /$I$OUTPUT INSTRUCTION RECEIVED IS IGNORED !!$JM$/;0 DRWE11, TEXT /$I$INVALID BYTE RECEIVED !!$JM$/;0 DRWE12, TEXT /$I$INVALID BYTE RECEIVED !!$JM$/;0 DRWE14, TEXT /$I$TOO MANY PARAMETER RECEIVED !!$JM$/;0 DRWE15, TEXT /$I$TRANSMISSION ERROR !!$JM$/;0 DRWE16, TEXT /$I$INPUT BUFFER OVERFLOW !!$JM$/;0 PAGE / / TXIO32 FOLLOWS HERE AT 5400 /