File: FILSIZ.RA of Tape: Various/ETH/fc-files
(Source file text)
SECT8 FILSIZ /FETCH SIZE OF SPECIFIED FILE BASE 0 STARTD FLDA 0 /GET RETURN ADDRESS FSTA ADCRET FADD L2 /GET ADDR OF ARG POINTER FSTA 0 FLDA% 0 /GET ADDR OF FILE NUMBER FSTA 0 STARTF FLDA% 0 JEQ BADNR /NUMBER <= 0 FSUB L9 JGT BADNR /NUMBER>9 FLDA% 0 /GET FILE NUMBER FMUL L9 /9 ENTRIES PER DSRN NUMBER FADD DSRN ALN 0 /FIX IT FSTA CHANEL /STORE IT FOR FILE TRAP4 FILE /GOTO TO PDP8 CODE FLDA FILNR FNORM /GET THE SIZE AND NORMALIZE IT JGE ADCRET /GUARD AGAINST NEG >4000 FADD L4096 ADCRET, JA . BADNR, FCLA JA ADCRET /RETURN WITH 0 L2, 0;2 L4096, F 4096. L9, F 9. DSRN, F 2210. /THIS IS TRICKY IT IS THE DSRN BASE ADRESS /FROM FRTS IN DECIMAL -2 FILNR, 13;0;0 CHANEL, 0;0;0 FILE, 0 /FETCH THE FILE SIZE CDF 0 TAD% CHANEL+2 /POINTER TO REQUIRED SIZE DCA FILNR+1 CIF 0 JMP% FILE