File PLTPKG.LS (listing file)

Directory of image this file is from
This file as a plain text file



ARGAD   0602
BLKSWR  1045
BLOOP   0637
DCAI    3400OP
EGGSIT  1156
FKIT    0646
GETARG  0603
GETCAL  1141
GETON   0635
GETSTR  0626
GRUMB2  1020
GRUMB3  1122
GTCDF1  0604
GTCDF2  0613
GTCNT   0616
GTDONE  0622
GTLOOP  0620
GTPARS  0617
IER     1052
IERAD   1053
JMPI    5400OP
NOBLKS  1043
NOWD    1047
PASS0   0746
PASS1   0747
PASS2   0755
PLAXI   0730EXT 
PLBADR  1046
PLBUF   0200
PLCLO   1032EXT 
PLCUR   0601
PLETE   0674EXT 
PLGO2   0720
PLNENT  0600
PLNUM   0703EXT 
PLOPE   1000EXT 
PLOT    0662EXT 
PLOTGO  0671
PLSTR   0712EXT 
PLTTY   0737EXT 
PP1     0724
PREVNT  1044
PTBFOK  1100
PTCT    1050
PTLOOP  1073
PTOK    1065
PTOUT   1054
PTXOK   1136
STRTBL  1042
STUFIT  0652
TADI    1400OP
TEROR   1134
TERR    1051
UNIT    1041
WTAPE   0000EXT 

                /

                /       PLOTTER UTILITY ROUTINES FOR FORTRAN.
                /
                /         ROUTINES TO GENERATE A PLOT TAPE.
                /
                /
                /  (1) GENERAL PEN MOVEMENT COMMAND.
                /       CALL PLOT(IX,IY,IZ)
                /
                /  (2) PRINT A SINGLE ASCII LETTER.
                /       CALL PLETER(IX,IY,IFACT,ITHETA,ILETR)

                /  (3) PRINT A SIGNED INTEGER.
                /       CALL PLNUM(IX,IY,IFACT,ITHETA,INUMB)
                /
                /  (4) PRINT AN ASCII STRING.
                /       CALL PLSTRI(IX,IY,IFACT,ITHETA,IWDS,IARRAY)
                /
                /  (5) GENERAL AXIS PLOTTING ROUTINE.
                /       CALL PLAXIS(IX,IY,ID,IN,ITL,ITHETA,ISI,IMIN,ISS,
                /                       ISL,INWDS,ILABL)
                /
                /  (6) TELETYPE MESSAGE GENERATION ROUTINE.
                /       CALL PLTTY(IWAIT,IWDS,ISTRING)
                /
                /  (7) PLOT PACKAGE OPEN ROUTINE (MUST BE CALLED FIRST)
                /       CALL PLOPEN(IUNIT,ISTRTBL,INOBLOCKS,IER)
                /
                /  (8) PLOT PACKAGE CLOSE ROUTINE.
                /       CALL PLCLOS(NOBLKSWRITTEN)
                /
                /

                ENTRY PLOT
                ENTRY PLETE
                ENTRY PLNUM
                ENTRY PLSTR
                ENTRY PLAXI
                ENTRY PLTTY
                ENTRY PLOPE
                ENTRY PLCLO

      1400      OPDEF TADI 1400
      3400      OPDEF DCAI 3400
      5400      OPDEF JMPI 5400


                        LAP
0200  0000      PLBUF,  0
                        PAGE
                        PAGE


                /       DATA AND CONSTANTS FOR THIS MESS....
0600  0000      PLNENT, 0               /# OF CELLS LEFT IN BUFFER
0601  0000      PLCUR,  0               /CURRENT POINTER INTO BUFFER

                /       PARAMETER UNPACKING ROUTINE....

0602  0000      ARGAD,  0

0603  0000      GETARG, 0               /GETS NEXT ARGUMENT IN FORTRAN
                                        /GENERATED PARAMETER STRING.
0604  7402      GTCDF1, HLT             /REPLACED BY CDF
0605  1663              TADI  PLOT#     /GET PARAM DATA FIELD
0606  3213              DCA   GTCDF2
0607  2263              INC   PLOT#     /BUMP LIST ADDRESS
0610  1663              TADI  PLOT#     /GET PARAMETER ADDRESS
0611  3202              DCA   ARGAD     /SAVE FOR INDIRECT (OR ARRAY)
0612  2263              INC   PLOT#
0613  7402      GTCDF2, HLT             /REPLACED BY CDF
0614  1602              TADI  ARGAD     /PASS THE VALUE IN THE ACC
0615  5603              JMPI   GETARG   /EXIT QUIETLY



                /       STUFFS A VARIABLE # OF PARAMS INTO BUFFER.

0616  0000      GTCNT,  0

0617  0000      GTPARS, 0               /# TO STUFF PUT IN GTCNT
0620  4203      GTLOOP, JMS   GETARG    /GET THE NEXT ARGUMENT
0621  4252              JMS   STUFIT    /PUT IT INTO THE BUFFER
0622  2216      GTDONE, ISZ   GTCNT     /MORE TO STUFF.... (HIGHER....)
0623  5220              JMP   GTLOOP    /OUCH.
0624  6201 05           JMP I GTPARS    /WHEW.
0625  5617   


                /       GETS STRING OF DATA FROM ADDR PASSED AS PARAM


0626  0000      GETSTR, 0               /LENGTH OF STRING PASSED IN ACC
0627  7510              SPA             /CHECK FOR INDIRECT OPTION
0630  5246              JMP   FKIT
0631  7041              CIA             /SET NEGATIVE
0632  3216              DCA   GTCNT     /SAVE IT
0633  4203              JMS   GETARG    /NOW GET THE BUFFER ADDRESS
0634  7200              CLA
0635  1213      GETON,  TAD   GTCDF2    /FIRST THE DATA FIELD
0636  3237              DCA   BLOOP
0637  7402      BLOOP,  HLT             /CHANGE DATA FIELD
0640  1602              TADI  ARGAD     /GET THE NEXT VALUE
0641  4252              JMS   STUFIT    /PUT IT INTO THE BUFFER
0642  2202              INC   ARGAD     /BUMP THE BUFFER POINTER
0643  2216              ISZ   GTCNT     /MORE?
0644  5237              JMP   BLOOP     /YES.
0645  5626              JMP I GETSTR    /ADIOS.
0646  3216      FKIT,   DCA   GTCNT     /SAVE THE COUNT
0647  4203              JMS   GETARG    /THE WORD RETURNED IS A 
0650  3202              DCA   ARGAD     /POINTER TO THE STRING
0651  5235              JMP   GETON


                /       YEE OLDE BUFFER STUFFER.....


0652  0000      STUFIT, 0               /DATA TO BE STUFFED IN ACC
0653  6201 05           DCA I PLCUR     /STORE IT AWAY
0654  3601   
0655  2201              INC   PLCUR     /BUMP THE CURRENT POINTER
0656  2200              ISZ   PLNENT    /FULL YET?
0657  5652              JMP I STUFIT    /NO.
0660  4777              JMS   PTOUT     /YES.
0661  5652              JMP I STUFIT    /SO LONG.


                //      ENTRY POINT FOR PEN COMMAND (PLOT).



0662  0000      PLOT,   BLOCK 2
0663  0000   
0664  7346              CLA CLL CMA RTL /EXPECT THREE PARAMETERS

0665  3216              DCA   GTCNT     /SET UP RETRIEVAL
0666  1262              TAD   PLOT
0667  3204              DCA   GTCDF1
0670  7201              CLA IAC         /PUT IN FUNCTION CODE
0671  4252      PLOTGO, JMS   STUFIT
0672  4217              JMS   GTPARS    /STRIP THE PARAMS
0673  5776              JMP   EGGSIT    /AND SPLIT.


                /       ENTRY FOR PRINT SINGLE LETTER (PLETER)


0674  0000      PLETE,  BLOCK 2
0675  0000   
0676  4775              JMS   GETCAL    /THE ENTRY POINT SHUFFLE
0677  1374              TAD   (-5       /EXPECT FIVE PARAMETERS
0700  3216              DCA   GTCNT
0701  7305              CLA CLL IAC RAL /FUNCTION CODE=2
0702  5271              JMP   PLOTGO    /GO DO IT.


                /       ENTRY FOR PLOT SIGNED INTEGER (PLNUM).


0703  0000      PLNUM,  BLOCK 2
0704  0000   
0705  4775              JMS   GETCAL
0706  1374              TAD   (-5       /FIVE PARAMETERS
0707  3216              DCA   GTCNT
0710  7325              CLA CLL CML IAC RAL
0711  5271              JMP   PLOTGO


                /       ENTRY FOR PRINT ASCII STRING (PLSTRI)


0712  0000      PLSTR,  BLOCK 2
0713  0000   
0714  4775              JMS   GETCAL
0715  1374              TAD   (-5
0716  3216              DCA   GTCNT     /SET PARAMETER COUNT
0717  7307              CLA CLL IAC RTL
0720  4252      PLGO2,  JMS   STUFIT    /SET FUNCTION CODE
0721  4217              JMS   GTPARS    /FIRST GET THE PARAMS
0722  1213              TAD   GTCDF2    /THEN GET THE STRING COUNT
0723  3324              DCA   PP1
0724  7402      PP1,    HLT
0725  1602              TADI  ARGAD     /IT WAS THE LAST PARAM.
0726  4226              JMS   GETSTR    /THEN GET THE ACTUAL STRING.
0727  5776              JMP   EGGSIT    /AND DISAPPEAR SUDDENLY.


                /       ENTRY FOR AXIS PLOTTING ROUTINE (PLAXIS)


0730  0000      PLAXI,  BLOCK 2
0731  0000   
0732  4775              JMS   GETCAL
0733  1373              TAD   (-13      /A SHITLOAD OF PARAMS
0734  3216              DCA   GTCNT
0735  1372              TAD   (5        /FUNCTION CODE = 5
0736  5320              JMP   PLGO2     /HO HUM.


                /       ENTRY FOR MESSAGE GENERATION (PLTTY)


0737  0000      PLTTY,  BLOCK 2
0740  0000   
0741  4775              JMS   GETCAL
0742  7344              CLA CLL CMA RAL /TWO PARAMS AND A STRING
0743  3216              DCA   GTCNT
0744  1371              TAD   (6
0745  5320              JMP   PLGO2


                /       PASS BACK A PARAMETER.


0746  0000      PASS0,  0
0747  0000      PASS1,  0
0750  3346              DCA   PASS0
0751  4203              JMS   GETARG    /SET IT UP
0752  7200              CLA
0753  1346              TAD   PASS0     /PASS IT BACK
0754  3602              DCAI  ARGAD
0755  6201 05   PASS2,  JMP I PASS1
0756  5747   

0771  0006   
0772  0005   
0773  7765   
0774  7773   
0775  1141 01
0776  1156 01
0777  1054 01
                        PAGE
                /

                /       ENTRY FOR PLOT PACKAGE OPEN (PLOPEN)


1000  0000      PLOPE,  BLOCK 2
1001  0000   
1002  4341              JMS   GETCAL
1003  4777              JMS   GETARG    /GET THE UNIT NUMBER
1004  3241              DCA   UNIT
1005  4777              JMS   GETARG    /AND THE START BLOCK
1006  3242              DCA   STRTBL
1007  4777              JMS   GETARG    /AND THE # OF BLOCKS
1010  7040              CMA
1011  3244              DCA   PREVNT    /PREVNT PREVENTS US FROM 
1012  7305              CLA CLL IAC RAL /WRITING TOO MANY BLOCKS
1013  1244              TAD   PREVNT    /NOBLKS SIGNALS WHEN ONLY
1014  3243              DCA   NOBLKS    /ONE BLOCK IS LEFT.
1015  3245              DCA   BLKSWR    /INIT BLOCKS WRITTEN TO 0
1016  3252              DCA   IER       /CLEAR ERROR STATUS
1017  4777              JMS   GETARG    /GET ERROR FLAG ADDRESS
1020  6201 05   GRUMB2, TAD   GTCDF2    /SAVE THE DATA FIELD
1021  1776   
1022  3356              DCA   EGGSIT
1023  1775              TAD   ARGAD     /AND THE ADDRESS
1024  3253              DCA   IERAD
1025  1374              TAD   (-400
1026  3773              DCA   PLNENT
1027  1246              TAD   PLBADR    /SET UP BUFFER POINTER
1030  3772              DCA   PLCUR
1031  5356              JMP   EGGSIT


                /       ENTRY FOR PLOT PACKAGE CLOSE (PLCLOS)


1032  0000      PLCLO,  BLOCK 2
1033  0000   
1034  4341              JMS   GETCAL
1035  4254              JMS   PTOUT     /DUMP THE REST OF THE BUFFER
1036  1245              TAD   BLKSWR
1037  4771              JMS   PASS1     /PASS THE BLOCKS WRITTEN
1040  5356              JMP   EGGSIT    /AND THATS IT




                /       BUFFER DUMPING ROUTINE.

                        /THESE FOUR VARIABLES SET BY PLOPEN

1041  0000      UNIT,   0               /THE TAPE UNIT NUMBER
1042  0000      STRTBL, 0               /THE STARTING BLOCK NUMBER
1043  0000      NOBLKS, 0               /NUMBER OF BLOCKS AVAILABLE
1044  0000      PREVNT, 0               /PREVENTS OVER WRITING

1045  0000      BLKSWR, 0               /COUNT OF BLOCKS WRITTEN
1046  0200 01   PLBADR, PLBUF           /BUFFER ADDRESS

1047  0400      NOWD,   400
1050  0000      PTCT,   0
1051  0000      TERR,   0               /TAPE ERROR FLAG
1052  0000      IER,    0               /GENERAL ERROR CONDITION FLAG
1053  0000      IERAD,  0               /ADDRESS OF USER ERROR FLAG

1054  0000      PTOUT,  0
1055  2244              ISZ   PREVNT    /CHECK FOR TOO MANY BLOCKS
1056  5265              JMP   PTOK      /NO PROBLEMS
1057  7240              CLA CMA         /ALREADY WRITTEN TOO MUCH
1060  3244              DCA   PREVNT
1061  7305              CLA CLL IAC RAL /SET ERROR FLAG TO 2
1062  3252              DCA   IER
1063  6201 05           JMP I PTOUT     /AND EXIT
1064  5654   
1065  6201 05   PTOK,   TAD   PLNENT
1066  1773   
1067  7650              SNA   CLA       /IF BUFFER NOT FULL
1070  5300              JMP   PTBFOK    /THEN MUST ZERO OUT THE 
1071  1772              TAD   PLCUR     /UNUSED PORTION OF IT.
1072  3250              DCA   PTCT
1073  6201 05   PTLOOP, DCA I PTCT
1074  3650   
1075  2250              INC   PTCT      /DO THE HOUSEKEEPING
1076  2773              ISZ   PLNENT
1077  5273              JMP   PTLOOP
1100  3251      PTBFOK, DCA   TERR      /CLEAR TAPE FLAG
1101  4033              CALL 5, WTAPE   /NOW DUMP THE BUFFER
1102  0511 06
1103  6201 05           ARG   UNIT
1104  1041 01
1105  6201 05           ARG   STRTBL
1106  1042 01
1107  6201 05           ARG   NOWD
1110  1047 01
1111  6201 05           ARG   PLBUF
1112  0200 01
1113  6201 05           ARG   TERR
1114  1051 01
1115  7200              CLA
1116  1251              TAD   TERR      /SEE IF ANY ERRORS
1117  7640              SZA CLA
1120  5334              JMP   TEROR     /OOPS
1121  1374              TAD   (-400     /RESET BUFFER COUNT
1122  6201 05   GRUMB3, DCA   PLNENT
1123  3773   
1124  1246              TAD   PLBADR    /AND BUFFER POINTER
1125  3772              DCA   PLCUR
1126  2245              INC   BLKSWR    /ANOTHER BLOCK WRITTEN
1127  2242              INC   STRTBL    /BUMP BLOCK POINTER
1130  2243              ISZ   NOBLKS
1131  5336              JMP   PTXOK     /ALL'S WELL FOR NOW.
1132  7240              CLA CMA         /ONLY ONE BLOCK LEFT
1133  7410              SKP
1134  7164      TEROR,  CLL CMA CML RAL /TAPE ERROR GANG.
1135  3252              DCA   IER       /PASS IT ON
1136  6201 05   PTXOK,  JMP I PTOUT
1137  5654   



                /       MOVE CALLING ADDRESS TO PLOT.


1140  0000              0
1141  0000      GETCAL, 0
1142  1370              TAD   (-3       /MUST BE CALLED FIRST THING
1143  1341              TAD   GETCAL
1144  3250              DCA   PTCT      /ADDRESS OF ENTRY DATA
1145  6201 05           TAD I PTCT
1146  1650   
1147  3767              DCA   PLOT
1150  2250              ISZ   PTCT
1151  1650              TAD I PTCT
1152  3766              DCA   PLOT#
1153  1767              TAD   PLOT      /SET UP PARAM FETCH
1154  3765              DCA   GTCDF1
1155  5741              JMP I GETCAL    /BLAH.

                /       THE EXIT FUNNEL (PASSES THE ERROR STATUS)


1156  7402      EGGSIT, HLT             /CDF FILLED BY PLOPEN
1157  1252              TAD   IER       /GET THE ERROR STATUS
1160  3653              DCAI  IERAD     /PASS IT BACK
1161  4040              RETRN PLOT      /AND SPLIT
1162  0001 06

1165  0604 01
1166  0663 01
1167  0662 01
1170  7775   
1171  0747 01
1172  0601 01
1173  0600 01
1174  7400   
1175  0602 01
1176  0613 01
1177  0603 01
                        END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search