/T-4002 PLOTTING ROUTINES FIELD 1 TYPEC=JMS I OUTDEV GS=235 US=37 XJ=3012 YJ=3112 DXL=6052 DYS=6066 *377 FDIS /PATCH TO FUNCTION TABLE *401 /ANOTHER PATCH FJOY *1142 PRINTX, 0 /OVERLAYS OLD FDIS TYPEC CIF JMP I PRINTX *2172 /PATCH TO 'FNTABL' 2637 *3216 FDIS, TAD FCHKP /CHEAT LIKE HELL!! DCA 151 /KLUDGE PRINTC SO WE KNOW WHAT MODE WE ARE ... INTEGER /CHECK FIRST ARG (FDIS(I,X,Y)) SMA SZA CLA /NEGATIVE ARG MEANS START POINT PLOT TAD FDSW /ARE WE IN GRAPHICS MODE? C40, SZA CLA JMP PLOT /WE'RE IN GRAPHICS AND I WAS POSITIVE TAD FLAC+2 /MIGHT BE POINT PLOT (FS=GS-1)! SPA CLA /CHECK FOR -1 ARG CMA /IT IS, CHANGE GS TO FS TAD (GS /OTHERWISE, START NEW LINE HERE TYPEC PLOT, PUSHJ /GET X COORDINATE EVAL-1 /SKIP OVER COMMA JMS JOWAIT /WAIT FOR TERMINAL INTEGER DXL /LOAD X BUFFER PUSHJ /GET Y COORDINATE EVAL-1 INTEGER DYS /LOAD AND SEND Y COORDINATE CLA CMA /SET TELETYPE FLAG DCA TELSW CLA CMA /AND MODE SWITCH DCA FDSW ION JMP I EFUN3I /AND RETURN FCHK, 0 /PRINTC WAS CALLED, SWITCH TO NORMAL MODE DCA FDSW /SAVE CHAR IN AC TAD (2465 /POINTER TO OUT DCA 151 TAD (US TYPEC TAD FDSW /PRINT CHAR PRINTC /WE RESTORED THE POINTER, REMEMBER? DCA FDSW /RESET MODE SWITCH JMP I FCHK FJOY, INTEGER /CHECK ARG SNA CLA TAD C214 /ZERO, TURN ON CURSOR AND WAIT (C214=DC1-ENQ) TAD ENQ /NON-ZERO, READ IT NOW PRINTC JMS JOWAIT /WAIT FOR TERMINAL TO RECEIVE CHARACTER TAD FLAC+2 /STILL HOLDS ARG SPA SNA CLA /NEGATIVE ARG IS TO READ WITHOUT CURSOR JMS JREAD /READ FIRST CHAR IF NEEDED FCHKP, DCA FCHK /TEMP TAD (XJ /X-COORDINATE GOES IN 'XJ' JMS JLOOK /PUT IT THERE TAD (YJ JMS JLOOK /DITTO FOR Y TAD FCHK /FLOAT FIRST CHAR FOR RETURN JMS JFLOAT TAD (US /SWITCH BACK TO NORMAL MODE TYPEC /ALSO ENABLE INTERRUPT JMP I EFUN3I /AND RETURN FDT2=. JLOOK, 0 /CREATES VARIABLE IF NEEDED, AND FILLS IT DCA ADD /SAVE NAME IN 'ADD' PUSHJ GS1 /CALL 'GETVAR' JMS JREAD /GET HIGH-ORDER AND (37 /MASK IT CLL RTL RTL RAL DCA FLAC+1 /SNEAKY, ISN'T IT? JMS JREAD AND (37 TAD FLAC+1 JMS JFLOAT /FLOAT IT FENT /AND PUT IT AWAY FNOR FPUT I PT1 /SET BY 'GETVAR' FEXT JMP I JLOOK JFLOAT, 0 /FLOATS 12-BIT AC DCA FLAC+1 ENQ, TAD P13 /PROPER EXPONENT DCA FLAC DCA FLAC+2 /CLEAR OTHER WORDS JMP I JFLOAT JREAD, 0 /READ A CHARACTER (INTERRUPT OFF) KSF /WAIT FOR FLAG JMP .-1 KRB TAD (-220 /^P? SNA JMP RECOVR /YES, INTERRUPT PROGRAM TAD (220 /RESTORE CHARACTER JMP I JREAD JOWAIT, 0 /WAIT FOR TERMINAL I/O TO FINISH TAD TELSW /TERMINAL BUSY FLAG SZA CLA /ZERO WHEN DONE JMP .-2 IOF JMP I JOWAIT FDSW, 0 /MODE SWITCH PAGE STVAR=.