/T-4002 PLOTTING ROUTINES FIELD 1 TYPEC=JMS I OUTDEV GS=235 US=37 XJ=3012 YJ=3112 *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 INTEGER FCHKP, DCA FCHK /TEMP PUSHJ /GET Y COORDINATE EVAL-1 INTEGER JMS HIGH /AREN'T WE THOUGH!! 0 /LAST HIGH GETS STORED HERE TAD C40 /ADD APPROPRIATE SIGNAL BITS TYPEC /PRINT IT TAD FCHK /SAVED X JMS HIGH /HIGH ORDER X 0 JXIT, TYPEC JMP I EFUN3I /AND RETURN FDSW=. HIGH, 0 /SUB TO CHECK HIGH-ORDER, ONLY PRINT IF NEEDED DCA FDT2 /SAVE ARG TAD FDT2 /GET IT BACK CLL RTR RTR RAR AND (37 TAD C40 DCA JFLOAT TAD JFLOAT TAD I HIGH /COMPARE WITH LAST HIGH SNA CLA JMP HXIT /OKAY TAD JFLOAT /NOT SO GOOD, PRINT IT TYPEC TAD JFLOAT CLL CIA DCA I HIGH /SAVE FOR NEXT TIME HXIT, ISZ HIGH /SKIP TAD FDT2 AND (37 TAD C100 JMP I HIGH FCHK, 0 /PRINTC WAS CALLED, SWITCH TO NORMAL MODE DCA HIGH /SAVE CHAR IN AC TAD (2465 /POINTER TO OUT DCA 151 TAD (US TYPEC TAD HIGH /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 TAD FLAC+2 /STILL HOLDS ARG SPA SNA CLA /NEGATIVE ARG IS TO READ WITHOUT CURSOR JMS X133 /READ FIRST CHAR IF NEEDED 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 JMP JXIT /ALSO ENABLE INTERRUPT FDT2=. JLOOK, 0 /CREATES VARIABLE IF NEEDED, AND FILLS IT DCA ADD /SAVE NAME IN 'ADD' PUSHJ GS1 /CALL 'GETVAR' JMS X133 /GET HIGH-ORDER AND (37 /MASK IT CLL RTL RTL RAL DCA FLAC+1 /SNEAKY, ISN'T IT? JMS X133 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 PAGE STVAR=.