ASMB,R,L,C * NAME: OUTDF * SOURCE: 92070-18119 * RELOC: 92070-16119 * PGMR: D.J.W., B.W. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * * NAM OUTDF,7 92070-1X119 REV.2026 800508 * * THIS SUBROUTINE CREATES THE OUTPUT FILE. IF THE HOST OPERATING * SYSTEM IS RTE-L A TYPE 6 FILE IS CREATED, OTHERWISE A TYPE 1 * FILE IS CREATED. THE FILE IS THEN OPENED FOR TYPE ONE ACCESS. * IF NO NAMR WAS SUPPLIED A SCRATCH FILE IS CREATED. IF NO FILE SIZE * IS SUPPLIED THEN THE FILE IS CREATED WITH THE MAXIMUM SIZE WHICH WILL * FIT IN THE CURRENT BACKGROUND OR REAL-TIME AREA TAKING INTO ACCOUNT * THE NUMBER OF SEGMENTS. IF THIS IS NOT POSSIBLE, A FILE OF SIZE * -1 IS CREATED. * * 5/8/80 CHANGED TYPE-1 ON RTE-IV TO TYPE-6 * B.W. * * CALLING SEQUENCE: JSB OUTDF * * ON RETURN: P+1: ERROR, A-REG = FMP ERROR CODE * P+2: GOOD RETURN * ENT OUTDF EXT .MVW,CREAT,CRETS,FMPER,I.ERR EXT ODCB,ONAMR, OPEN,OTDFT,OUTBF,OUTOP EXT TMSTG,PGFWA,PGLWA,BPFWA,BPLWA,#SGMT * A EQU 0 B EQU 1 * * OUTDF NOP OUTPUT FILE DEFINED FLAG LDB P6 STB FTYPE SAVE FILE TYPE 6 LDA ONAMR+7 HAS THE FILE SIZE BEEN SPECIFIED ? SZA JMP CROUT YES, GO CREATE THE FILE * * NO SIZE SPECIFIED, CREATE THE SIZE FILE NEEDED WHICH CORRESPONDS * TO THE MAXIMUM PROGRAM WHICH MAY BE RELOCATED ACCORDING TO PGFWA, * PGLWA, AND #SGMT. * LDA #SGMT INA STA MPYR MULTIPLIER = NUMBER OF SEGMENTS + 1 LDA PGFWA CALCULATE MAXIMUM MEMORY AVAILABLE CMA ADA PGLWA ADA O10 ADA O200 BUMP TO NEXT SECTOR CLB DIV O200 STA ONAMR+7 NUMBER OF SECTORS REQUIRED LDA BPFWA CALCULATE MAXIMUM BASE PAGE AVAILABLE CMA ADA BPLWA ADA O200 BUMP TO NEXT SECTOR CLB DIV O200 ADA ONAMR+7 MAX SECTORS FOR MEMORY AND BASE PAGE MPY MPYR MAX SECTORS FOR MAIN AND EACH SEGMENT INA ADD ONE FOR A LONG ID SECTOR INA AND DS NEEDS ONE EXTRA SHORT ID STA ONAMR+7 FILE SIZE TO BE CREATED * * CREATE THE OUTPUT FILE * CROUT LDB ONAMR HAS THE OUTPUT FILE BEEN NAMED ? SZB,RSS JMP GTSCR NO, GET A SCRATCH FILE * CRFIL JSB CREAT CREATE THE OUTPUT FILE DEF *+9 DEF ODCB+0 OUTPUT DCB DEF I.ERR ERROR PARAMETER DEF ONAMR+0 OUTPUT NAMR DEF ONAMR+7 FILE SIZE DEF FTYPE FILE TYPE DEF ONAMR+4 SECURITY CODE DEF ONAMR+5 CARTRIDGE REFERENCE NUMBER DEF IDCBS DCB SIZE * CPA M33 FMP RETURN = NO ROOM ? JMP GTLST YES, CREATE THE LARGEST POSSIBLE FILE THEN SSA ANY OTHER FMP ERROR ? JMP ERR?? YES, GO HANDLE IT * ARS SAVE ACTUAL FILE SIZE CREATED IN ONAMR STA ONAMR+7 FOR FINAL FILE TRUNCATION * * OPEN THE OUTPUT FILE FOR TYPE 1 ACCESS * FOPN JSB OPEN OPEN FILE AS A TYPE ONE DEF *+7 DEF ODCB+0 OUTPUT FILE DCB DEF I.ERR+0 ERROR PARAMETER DEF ONAMR+0 OUTPUT FILE NAME DEF IOPTN OPEN OPTION WORD DEF ONAMR+4 SECURITY CODE DEF ONAMR+5 CARTRIDGE REFERENCE NUMBER * SSA FMP ERROR ? JMP ERR?? YES, GO HANDLE IT * * CREATED AND OPENED, MOVE TIME STRING INTO FIRST BLOCK * LDA ATIME MOVE TIME STRING LDB AO112 INTO THE OUTPUT FILE JSB .MVW DEF P15 LENGTH OF FIFTEEN WORDS NOP * ISZ OUTOP SET 'OUTPUT FILE OPENED' FLAG ISZ OUTDF NO ERROR, RETURN P+2 JMP OUTDF,I * ATIME DEF TMSTG+0 AO112 DEF OUTBF+112 FTYPE DEC 6 FILE TYPE, DEFAULT IS TO TYPE 6 MPYR BSS 1 MULTIPLIER M31 DEC -31 $OPSY VALUE FOR RTE-L M1 DEC -1 M33 DEC -33 O200 OCT 200 O10 OCT 10 P15 DEC 15 P6 DEC 6 * * * COULDN'T CREATE THE SIZE WE WANTED SO JUST TAKE WHAT * WE CAN GET. * GTLST LDA M1 CREATE WITH SIZE = -1 CPA ONAMR+7 DID WE JUST TRY THAT ? JMP ERR?? YES, WELL THEN WE GOT PROBLEMS STA ONAMR+7 NO, SO GIVE IT A TRY JMP CRFIL GO CREATE ! * * ERROR PROCESSING * ERR?? JSB FMPER OUTPUT ERROR MESSAGE TO LIST DEF ONAMR+0 VIOLATION NAMR JMP OUTDF,I TAKE ERROR RETURN * * CREATE A SCRATCH FILE * GTSCR STB NUM SET NUMBER FOR SCRATCH FILE CALL STA ONAMR+8 PREPARE FOR DOUBLE WORD CALL STB ONAMR+7 SCRET JSB CRETS CREATE SCRATCH FILE DEF *+11 DEF ODCB+0 OUTPUT FILE DCB DEF I.ERR+0 ERROR PARAMETER DEF NUM SCRATCH FILE NUMBER DEF ONAMR+0 SCRATCH FILE NAME DEF ONAMR+7 FILE SIZE DEF FTYPE FILE TYPE DEF ONAMR+4 SECURITY CODE DEF ONAMR+5 CARTRIDGE NUMBER DEF IDCBS DCB SIZE DEF JSIZE SIZE FILE CREATED * LDA I.ERR ERROR RETURN ? CPA N2 FILE ALREADY THERE ? JMP NXNAM YES, SO GET NEXT NAME CPA M33 NO ROOM ? JMP LRGST YES, WELL THEN TRY THE LARGEST ALLOWABLE SSA ANY OTHER FMP ERROR ? JMP ERR?? YES, OUTPUT MESSAGE LDA JSIZE+1 NO ERROR, SAVE ACTUAL SIZE CREATED ARS SAVE FILE SIZE CREATED IN BLOCKS STA ONAMR+7 USED WHEN FILE IS TRUNCATED AT END OF LOAD ISZ OTDFT SET 'DEFAULT OUTPUT FILE' FLAG JMP FOPN NO, OPEN THE FILE AS A TYPE ONE * NXNAM ISZ NUM INCREMENT SCRATCH FILE NUMBER JMP SCRET AND TRY ANOTHER CREATE * LRGST LDA M1 GET LENGTH = -1 CPA ONAMR+7 WAS THIS WHAT WE JUST TRIED ? JMP ERR?? YES, WELL THEN WE GOT PROBLEMS STA ONAMR+7 NO, SO GIVE IT ANOTHER TRY STA ONAMR+8 JMP SCRET GO CREATE A SCRATCH * * IOPTN OCT 4 OPTION PARM IDCBS DEC 144 DCB SIZE JSIZE BSS 2 FILE SIZE CREATED NUM NOP SCRATCH FILE NUMBER N2 DEC -2 END