File RWOPEN.LS (listing file)

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



ARGAD   0200
ARG1    0245
ARG2    0246
CALLEM  0237
COMMON  0214
DCAI    3400OP
DEVIC   0253
EROR    0252
FCODE   0244
GETARG  0201
GTCDF1  0202
GTCDF2  0211
JMPI    5400OP
NAMAD   0255
NAME    0256
NAME1   0260
RETRNM  0262
ROPEN   0276EXT 
ROPE1   0301
SPLIT   0307
TADI    1400OP
USR     0254
WCLOS   0325EXT 
WOPEN   0315EXT 


                /UTILITIES FOR RTAPE,WTAPE FOR THE TD8E CONTROLLER.
                /
                / (1) OPEN FILE FOR READ.
                /       ROPEN(IUNIT,FILENAME,ISTARTBLOCK,INOBLOCKS,IER)
                /
                / (2) OPEN NEW FILE FOR WRITE.
                /       WOPEN(IUNIT,FILENAME,ISTARTBLOCK,INOBLOCKS,IER)

                /
                / (3) CLOSE PREVIOUSLY OPENED FILE.
                /       WCLOSE(IUNIT,FILENAME,INOBLOCKS,IER|)
                /
                /


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


                ENTRY ROPEN
                ENTRY WOPEN
                ENTRY WCLOS


                /  PARAMETER UNPACKING ROUTINE..

0200  0000      ARGAD,  0

0201  0000      GETARG, 0               /GETS NEXT ARGUMENT IN FORTRAN
                                        /GENERATED PARAMETER STRING.

0202  7402      GTCDF1, HLT             /REPLACED BY CDF
0203  1677              TADI  ROPEN#    /GET PARAM DATA FIELD
0204  3211              DCA   GTCDF2
0205  2277              INC   ROPEN#    /BUMP LIST ADDRESS
0206  1677              TADI  ROPEN#    /GET THE PARAMETER ADDRESS.
0207  3200              DCA   ARGAD     /SAVE FOR INDIRECT
0210  2277              INC   ROPEN#
0211  7402      GTCDF2, HLT             /REPLACED BY CDF
0212  1600              TADI  ARGAD     /PASS THE VALUE IN THE ACC
0213  5601              JMPI  GETARG    /ADIOS M.F.......


                /COMMON CODE FOR GETTING THE FIRST TWO PARAMS.


0214  0000      COMMON, 0
0215  4201              JMS   GETARG    /GET THE UNIT NUMBER
0216  7110              CLL RAR         /DETERMINE WHICH UNIT
0217  7630              SZL CLA
0220  1377              TAD   (3        /DTA1 IS LOGICAL #4
0221  7001              IAC             /DTA0 IS LOGICAL #1
0222  3253              DCA   DEVIC
0223  4201              JMS   GETARG    /NOW GET THE FILE NAME
0224  3256              DCA   NAME
0225  2200              INC   ARGAD     /WHICH CONSISTS OF THREE
0226  1600              TADI  ARGAD     /WORDS AND AN ASSUMED
0227  3257              DCA   NAME#     /EXTENSION OF .DA
0230  2200              INC   ARGAD     
0231  1600              TADI  ARGAD
0232  3260              DCA   NAME1
0233  1255              TAD   NAMAD     /SET UP ADDRES POINTER
0234  3245              DCA   ARG1      /TO THIS NAME IN ARG1.
0235  3252              DCA   EROR      /CLEAR ERROR STATUS
0236  5614              JMP I COMMON    /EXEUNT THE PLACE


                /  COMMON CALL TO THE USR FOR THE FUNCTION DESIRED..


0237  0000      CALLEM, 0
0240  1253              TAD   DEVIC     /DEVICE NUMBER IN THE ACC
0241  6212              6212            /CHANGE INSTRUCTION FIELD TO 1
0242  6201 05           JMS I USR
0243  4654   
0244  0000      FCODE,  0               /FUNCTION CODE WORD

0245  0000      ARG1,   0
0246  0000      ARG2,   0
0247  2252              INC   EROR      /SET ERROR FLAG
0250  6201 05           JMP I CALLEM    /SO MUCH FOR THAT PART.
0251  5637   


                / A FEW DATA CELLS AND CONSTANTS.

0252  0000      EROR,   0
0253  0000      DEVIC,  0               /THE DEVICE NUMBER
0254  7700      USR,    7700
0255  0256 01   NAMAD,  NAME
0256  0000      NAME,   BLOCK 2
0257  0000   
0260  0000      NAME1,  0
0261  0401              0401            /ASSUMED EXTENSION OF .DA


                / COMMON ROUTINE TO RETURN THE LAST TWO PARAMETERS.


0262  0000      RETRNM, 0
0263  7300              CLA CLL
0264  4201              JMS  GETARG     /GET IT ALL SET UP BY GETTING
0265  7200              CLA             /THE PARAMETER, THEN JUST PUT
0266  1245              TAD   ARG1      /IN THE RETURNED VALUE.
0267  3600              DCAI  ARGAD     /PASS BACK THE START BLOCK
0270  4201              JMS   GETARG
0271  7200              CLA
0272  1246              TAD   ARG2      /AND THE NUMBER OF BLOCKS.
0273  7041              CIA             /AS A POSITIVE NUMBER
0274  3600              DCAI  ARGAD
0275  5662              JMP I RETRNM    /ZOOM ON GANG.


                /  ENTRY FOR READ FILE OPEN (ROPEN)


0276  0000      ROPEN,  BLOCK 2
0277  0000   
0300  7305              CLA CLL IAC RAL /FUNCTION CODE IS 2
0301  3244      ROPE1,  DCA   FCODE
0302  1276              TAD   ROPEN     /SET UP PARAMETER FETCH
0303  3202              DCA   GTCDF1
0304  4214              JMS   COMMON    /UNPACK THE PARAMETERS
0305  4237              JMS   CALLEM    /CALL THE USR
0306  4262              JMS   RETRNM    /RETURN THE FILE INFORMATION
0307  4201      SPLIT,  JMS   GETARG    /AND THE ERROR STATUS
0310  7200              CLA
0311  1252              TAD   EROR
0312  3600              DCAI  ARGAD
0313  4040              RETRN ROPEN     /AND SPLIT.
0314  0001 06


                /  ENTRY FOR WRITE FILE OPEN (WOPEN)


0315  0000      WOPEN,  BLOCK 2
0316  0000   
0317  1315              TAD   WOPEN     /MOVE CALLING PARAMETERS
0320  3276              DCA   ROPEN
0321  1316              TAD   WOPEN#
0322  3277              DCA   ROPEN#
0323  1377              TAD   (3        /FUNCTION CODE IS 3
0324  5301              JMP   ROPE1     /AND THE REST IS THE SAME


                /  ENTRY FOR CLOSING PREVIOUSLY OPENED WRITE FILE (WCLOS)


0325  0000      WCLOS,  BLOCK 2
0326  0000   
0327  1325              TAD   WCLOS     /JUGGLE THE CALLING PARAMS
0330  3276              DCA   ROPEN
0331  1326              TAD   WCLOS#
0332  3277              DCA   ROPEN#
0333  7307              CLA CLL IAC RTL /FUNCTION CODE IS 4
0334  3244              DCA   FCODE
0335  1276              TAD   ROPEN     /SET UP PARAMETER FETCH
0336  3202              DCA   GTCDF1
0337  4214              JMS   COMMON    /GET FIRST TWO PARAMS
0340  4201              JMS   GETARG    /AND THE FILE LENGTH
0341  3246              DCA   ARG2
0342  4237              JMS   CALLEM    /CALL THE USR
0343  5307              JMP   SPLIT     /THATS ALL....


0377  0003   
                        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