File: WOISAM.01 of Tape: Various/Decus/decus-2
(Source file text)
LAP IBUF, BLOCK 200/START OF MAIN BUFFER BLOCK 177 IBUFE, BLOCK 1/END OF BUFFER CPAGE 6 EAP / / / /INDEX SEQUENTIAL PUT ONLY ROUTINES / / /VERSION 01 / /THERE ARE THREE ENTRIRS TO THIS ROUTINE / /PUTOP WILL OPEN AN OUTPUT FILE ON THE DEVICE SPECIFIED / WITH AN EXTENSION .DA ASSUMED / /PUTX WILL PUT THE INFO FROM 10400 ON UP INTO THE BUFFER / /PUTCL WILL CLOSE THE FILE TO ALL ADDL OUTPUT / /THE CALLS ARE OF THE FORM: / CALL PUTOP('DEVICE','FILNAM',RECORDLENGTH) / CALL PUTX / CALL PUTCL / / / USE WITH CAUTION / / ENTRY PUTOP /OPEN A PUT ONLY FILE ENTRY PUTX /PUT A RECORD OF DATA ON THE FILE ENTRY PUTCL /CLOSE THE FILE / / / / OPDEF CIFZ 6202 /CHANGE TO IF 0 OPDEF CDFZ 6201 /CHANGE TO DF 0 OPDEF CDF1 6211 /CHANGE TO DF 1 OPDEF TADI 1400 /TAD IND OPDEF DCAI 3400 /DCA IND OPDEF JMPI 5400 /JMP IND OPDEF JMSI 4400 /JMS IND / / SPACE, 0 /NO OF FREE BLOCKS LEFT MBASE, 0 /ABS START OF DATA FILE / / IXYZ1, COMMN 100 /TO FORCE ERROR IXYZ2, COMMN 100 /IF NOT TWO PAGES OF IXYZ3, COMMN 1 /TWO PAGES MIN / / LOSTR, IBUF# /ADD OF START OF DATA MNWDS, 7777 /SKIPS AFTER WC OVFLO MNREC, 7777 /SKIPS AFTER RC OVFLO X77, XTAG# /START OF ARGS S541, 541 /LOADER LOC OF CLOSE S75, 75 /LOC OF PAGE NO PUTCL, BLOCK 2 /CLOST THE FILE TAD (7770 DCA PUTOP MRPUT, TAD (1747 CDF1 DCAI S400 /AND PUT SOME 999(19)'S FOR EOF'S CALL 0,PUTX /AND PUT IT THERE ISZ PUTOP JMP MRPUT DCA IBUFE /ZERO THE FWD POINTER JMS RWROT /AND WRITE THE BLOCK INC IMRK /AND BUMP BLK CNT BY 1 CDFZ TADI S121 /SAVE 00121 DCA PUTOP TADI S763 /AND 00763 DCA PUTOP# TAD IMRK /PUT BLK CNT IN 00763 DCAI S763 TAD DEV /AND SETUP 553-555 DTAG1, DCA DEVDF TAD DEV# DCA RWROT TAD (552 DCA 10 JMS GETWD JMS GETWD TADI S75 SNA JMS EOF# DCAI 10 TAD NAME /AND PUT NAME IN 00000-00002 DTAG2, DCA DEVDF TAD NAME# DCA RWROT CLA CLL CMA DCA 10 JMS GETWD JMS GETWD JMS GETWD TAD (0401 /TACK ON A DA EXTENSION DCAI 10 TAD (757 6202 /A CIF 0 DTAG3, JMS I S541 SKP /SINCE A SKIP IF ERROR JMS EOF# CLA CLL CMA DCA MNREC CLA CLL CMA DCA MNWDS DCA MHAND /AND RESET MHAND TO 0 TAD PUTOP /RESTORE 00121 AND 00763 CDFZ DCAI S121 TAD PUTOP# DCAI S763 RETRN PUTCL IMRK, 0 /REL BLK IN CORE NOW S400, 400 /LOC OF COMMON BUFFER S121, 121 /LOC OF HANDLER S746, 746 /LOC OF ROOM LEFT S663, 663 /LOC OF ??? S763, 763 /LOC OF CLOSE PUTOP, BLOCK 2 /OPEN AN OUTPUT FILE TAD (7774 /SET UP AN ISZ LOOP DCA PUTCL TAD X77 DCA 10 MRNAM, TAD I PUTOP /GET THE ARGS DCA I 10 INC PUTOP# ISZ PUTCL JMP MRNAM XTAG, CALL 2,OOPEN /NOW OPEN THE FILE DEV, ARG 0 NAME, ARG 0 CDFZ /AND GET THE ARGS TADI S663 DCA MBASE /SAVE THE FIRST BLK NO TADI S746 DCA SPACE /AND NO OF FREE BLOCKS TADI S121 DCA MHAND /AND THE ENTRY OF HANDLER DCAI LOSTR /SET FREE TO 0 CLA CLL IAC DCA IBUF /SET START TO 1 INC PUTOP# TAD LOSTR DCA 10 TAD DTAG1 TAD (5777 DCA RWPAR /GENERATE AN 42X0 TAD I PUTOP /GET THE NO OF WDS PER REC DCA PUTX TADI PUTX /GET THE N WDS INC PUTOP# CMA IAC DCA MNWDS /AND SAVE IT TAD MNWDS SMA /GTR 0??? JMS EOF# /NOPE TAD (175 SPA CLA /LESS THAN 125(10)??? JMS EOF# /NOPE TAD MNWDS DCA I 10 /SET MINUS NO OF WDS DCA IMRK /SET COUNTER DCA EOF# TAD (375 NOTYET, TAD MNWDS SPA JMP GOTIT INC EOF# JMP NOTYET GOTIT, CLA CLL /NOW SET THE NO RECS PER BLOCK TAD EOF# CMA IAC DCA MNREC TAD MNREC DCAI 10 JMS RWROT /AND WRITE THE HEADER JMS FRSET /AND SET THE POINTERS RETRN PUTOP /AND GO HOME GPNT, 7777 /BUFFER POINTER RCNT, 7777 /BUFFER COUBTER FRSET, 0 /SET THE POINTERS INC IMRK /BUMP RECPOINTER BY 1 CLA CLL CMA TAD IMRK DCA IBUF TAD IMRK IAC DCA IBUFE ISZ SPACE /AND CHECK FOR ENOUGH ROOM SKP JMS EOF# /TOO TIGHT TO SURVIVE TAD LOSTR DCA GPNT TAD MNREC DCA RCNT JMPI FRSET /AND RETURN MSG1, TEXT 'PUTX' /NASTY-GRAM EOF, TAD IBUF /62X1 GOES HERE;DONT CARE WHAT NEXT CALL 1,ERROR /TILT - YOU JUST LOST ARG MSG1 PUTX, BLOCK 2 /PUT A LOGICAL RECORD ON THE FILE TAD MNWDS DCA FRSET TAD (377 DCA 10 NCAR2, CDF1 /GET A WORD TADI 10 DCA I GPNT /AND STORE IT INC GPNT ISZ FRSET JMP NCAR2 ISZ RCNT /STILL IN THIS BLOCK??? JMP PUTDON /YUP JMS RWROT /AND WRITE THE BLOCK JMS FRSET PUTDON, RETRN PUTX /THATS ALL FOLKS LAP /LEAVE PAGING-WE NEED THE LAST TWO LOCS RWROT, 0 /WRITE TWO PAGES TAD MBASE TAD IMRK DCA RW3 TAD MHAND SNA CLA /EVER OPENED??? JMS EOF# /NOPE CIFZ JMSI MHAND /GO DO SOMETHING RWPAR, 0 /WRITE 1 BLOCK RW2, IBUF /FROM HERE IN CORE RW3, 0 /AT THIS BLOCK NO JMS EOF# /ERROR RETURN JMPI RWROT /AND GO BACK MHAND, 0 /ENTRY OF SYS HANDLER GETWD, 0 /GET A WORD DEVDF, NOP /CHANGET TO A CDF CALLING TADI RWROT CDFZ DCAI 10 INC RWROT JMPI GETWD /DO NOT RESTORE DF END