*20 /DISPLAY (MINI MAGSPY ) /COPYRIGHT 1970 /DIGITAL EQUIPMENT CORPORATION,MAYNARD,MASS. /MOVING WINDOW DISPLAY SUBROUTINE /CURSOR READ OUT /CORE OR TAPE FILE PMODE *5400 /INITIAL CALL GET PARAM LIST /SET ARGS FOR RDORA IDORA, 0 /GET BOUNDS CLA CLL ACDF0, CDF 0 TAD I IDORA /DATA BUFFER DCA I KMNFLD /15 BIT ISZ IDORA /LOWER BOUND TAD I IDORA /AT P+1, P+2 DCA I KMNADR /MINFLD,MINADR ISZ IDORA TAD I IDORA /UPPER BOUND DCA I KMXFLD /AT P+3, P+4 ISZ IDORA IAC /RDORA USES TAD I IDORA /MAX+1 DCA I KMXADR RAL TAD I KMXFLD DCA I KMXFLD ISZ IDORA TAD I IDORA /Y SHIFT DCA YSHFT ISZ IDORA TAD I IDORA /Y SCALE DCA I KYSCAL TAD I KMNFLD /INITIALIZE DCA I KBUFHI /WINDOW TAD I KMNADR /STARTING ADDR DCA I KBUFLO JMP I IDORA /RTN TO SCR N KMNFLD, MINFLD KMNADR, MINADR KMXFLD, MAXFLD KMXADR, MAXADR KBUFHI, BUFHI KBUFLO, BUFLO KYSCAL, YSCAL P401, 401 DSCLOC, TAD P401 /DSC X,Y COORD DCA VCOORD TAD XCURHI /FIELD JMS DSCWD TAD XCURLO /ADDRESS JMS DSCWD TAD CORVAL /CONTENTS OF JMS DSCWD /CURSR CORE LOC TAD YCUR /Y COORD OF TAD P401 JMS DSCWD /CURSOR POINT RTNCDF, 0 /RESTORE USER /DATA FLD JMP I RDORA /RTN DSCWD, 0 /DSC C(AC) LINC LMODE STC TEMP /SAVE VALUE STC XCORD /CHAN 1 SFA /VC FOR FULL ROL I 5 /SIZE IS -40 LDA I /-20 FOR HALF -20 LZE /FULL CHARS ? ROL 1 /NO VC-40 ADM I /UPDATE VC VCOORD, 0 DSCLOP, LDA I TEMP, 0 ROL 3 /1 DIGIT STA /AT A TIME TEMP /UPDATE BCL I /LOW 3 BITS 7770 /ONLY ROL 1 /*2 AND REL ADA I /TO GRID TAB TAB&1777 STC 2 ADD VCOORD DSC 2 DSC I 2 XSK I 1 /MAKE GAP XSK I 1 /BETWEEN CHARS SRO I /DSC 4 CHARS ? 3567 JMP DSCLOP /NO CONT PDP PMODE CLA CLL JMP I DSCWD /RTN TAB, 4536 /60,0 3651 2101 /61,1 0177 4523 /62,2 2151 4122 /63,3 2651 2414 /64,4 0477 5172 /65,5 0651 1506 /66,6 4225 4443 /67,7 6050 RDORA, 0 CLA CLL /SAVE USER DF RDF TAD ACDF0 DCA RTNCDF LINC LMODE CSAM, CURSAM /CURSOR SCR 1 /9 BITS COVERS PDP /SCOPE PMODE /MAKE RANGE TAD P401 /-1 TO -1000 CIA CLL LINC LMODE STC CURCNT&1777 WSAM, WINSAM /WINDOW SCR 4 /75 CENTS W0RTH SET I XCORD -1000 /512 PNTS JMP CONT&1777 FREE, FRESAM SCR 1 PDP PMODE DCA YCUR TAD YCUR LINC 6000 /JMP 0 PAGE CONT, 2 CDF0, CDF 0 DCA DBLLO /PUT KNOB VAL TAD DBLLO /IN DAC SPA CLA /PROPAGATE SIGN CMA /BIT HI ORD DCA DBLHI JMS DADD TAD DBLLO /UPDATE WIN ADDR DCA BUFLO TAD DBLHI DCA BUFHI /MUST CHK /WINDOW SA /WITH BOUNDS /TO MAINTAIN /BUFFER RING JMS BOUND /LOWER BOUND MINFLD, 1 MINADR, 0 SMA CLA /LOW END WRAP? JMP CHKHI /NO TAD MAXFLD /RESET TO DCA BUFHI /UPPER BOUND TAD MAXADR WRAP, DCA BUFLO JMS DADD /CORRECT WRAP TAD DBLLO /CORRECTED DCA BUFLO /WINDOW SA TAD DBLHI DCA BUFHI SETFLD, TAD BUFLO /SET DISPLAY DCA BUFPTR /ARGS TAD M1000 DCA COUNT TAD BUFHI DCA BOUND JMS SETDF NXTPNT, TAD I BUFPTR TAD YSHFT /OFF SET LINC LMODE YSCAL, SCR 1 /SCALE FACTOR DIS I XCORD PDP PMODE ISZ CURCNT /READY TO DIS /CURSOR ? CURRTN, SKP CLA /NO JMP CURDIS ISZ ENDLO /CHK FOR HI JMP OKEND /END WRAP ISZ ENDHI JMP OKEND TAD MINADR /RESET TO DCA BUFPTR /LOWER BOUND TAD MINFLD DCA BOUND JMP NXTDF OKEND, ISZ BUFPTR /CHK FOR FIELD /BOUNDARY JMP OKFLD /ITS OK ISZ BOUND /SET NXT FLD NXTDF, JMS SETDF OKFLD, ISZ COUNT /512 PNTS ? JMP NXTPNT /NO JMP I .+1 /DSC READ OUT DSCLOC CHKHI, JMS BOUND /CHK UPR BOUND MAXFLD, 2 MAXADR, 0 M70, SPA CLA /HI WRAP ? JMP SETFLD TAD MINFLD /YES DCA BUFHI /RESET TO TAD MINADR /LOWER BOUND JMP WRAP /DOUBLE PRECISION ADD /(DBLHI,DBLLO)+(BUFHI,BUFLO) /RESULT IN (DBLHI,DBLLO) /(BUFHI,BUFLO)=INITIAL SCOPE ADDRESS DADD, 0 CLA CLL TAD DBLLO TAD BUFLO DCA DBLLO RAL TAD DBLHI TAD BUFHI DCA DBLHI JMP I DADD /ADD -UPPER OR -LOWER BOUND /TO (BUFHI,BUFLO) /BOUND IS AT P+1,P+2 OF CALL BOUND, 0 TAD I BOUND /2S COM OF ARG CMA CLL /TO DAC DCA DBLHI ISZ BOUND TAD I BOUND CIA SZL ISZ DBLHI M1000, NOP DCA DBLLO JMS DADD TAD DBLHI DCA ENDHI /DAC HOLDS -NUM TAD DBLLO /TO END OF BUF DCA ENDLO /NO MATTER FOR /LOW END WRAP TAD DBLHI /TO CHK FOR ISZ BOUND /UPON RTN JMP I BOUND SETDF, 0 /SET 8 FIELD TAD BOUND /REL TO BOUND CLL RTL RAL TAD CDF0 DCA .+1 DBLLO, 0 JMP I SETDF CURDIS, DCA YCUR /DISP CURSOR TAD BOUND /SAVE X,Y DCA XCURHI /COORDINATES TAD BUFPTR DCA XCURLO TAD I BUFPTR DCA CORVAL TAD M70 DCA DBLLO TAD YCUR CURLOP, LINC LMODE SNS I 5 JMP FREE /FREE CURSOR DIS XCORD PDP PMODE ISZ DBLLO JMP CURLOP JMP CURRTN CURCNT, 0 /THESE 5 GUYS MAY BE PAGE 0 BUFHI, 1 BUFLO, 0 ENDLO, 0 ENDHI, 0 DBLHI=SETDF BUFPTR=DADD XCORD=1 LMODE CURSAM=SAM 1 /CURSOR KNOB WINSAM=SAM 0 /WINDOW KNOB FRESAM=SAM 5 /FREE CURSOR SCALE=SCR SC12BU=SCR 3 /SCALE FACTOR /12 BIT UNSIGNED OF12BU=4000 /Y OFFSET FOR /12 BIT UNSIGNED /THESE 6 GUYS MUST BE PAGE 0 /THEY ARE ALL CONTIGUOUS AND DEFINED /RELATIVE TO YSHFT BUT THIS IS NOT /A REQUIREMENT YSHFT=20 /THE 4 SCOPE READ OUT VALUES XCURHI=YSHFT+1 XCURLO=XCURHI+1 CORVAL=XCURLO+1 YCUR=CORVAL+1 COUNT=YCUR+1 /AN EXAMPLE TO DISPLAY ALL OF FIELD 1 /12 BIT UNSIGNED DATA /PMODE /*S0MEWHERE /JMS I KIDORA /INITIAL CALL /1 /FLD /0000 /ADDR /1 /FLD /7777 /ADDR /OF12BU /Y OFF SET /SC12BU /Y SCALE FAC /JMS I KRDORA /REFRESH CALL /JMP .-1 /KIDORA,IDORA /KRDORA,RDORA /DISPLAY 3 AUG 70