-7,7 .IDENT -DSK IO- ; +++030 MAKE LOOK LIKE ORIGINAL WITH ; +++030 DISK I/O CAPABILITIES. -87,87 ; 028 FRED A. LIEN 18-AUG-83 READ NDA CREATED BINARY FILES FROM ; DISK USING FILE I/O. INCLUDES COMMAND ; LINE PROCESSING, BINARY FDB & OPEN. ; 029 FRED A. LIEN 24-AUG-83 WRITE BINARY FILES FROM TAPE TO DISK. ; 030 FRED A. LIEN 06-AUG-84 MAKE THIS PROGRAM WORK JUST LIKE THE ; ORIGINAL WHEN INPUT OR OUTPUT BINARY ; FILES ARE NOT SPECIFIED. -252 ; ADDED .RANDM=2 FOR BINARY FILE I/O. ; +++028 -675 .MCALL FDBDF$, FDAT$A, FDRC$A, FDBK$A, FDOP$A .MCALL CSI$, CSI$1, CSI$2 ; +++029 ; ; ; +++029 SUBROUTINE ; +++029 SBYTE -- OUTPUTS A BYTE IN DECIMAL (A SUBROUTINE) ; +++029 CALLING SEQUENCE: ; +++029 ; +++029 OUTBYT ,VALUE ; YOUR DESCRIPTION AND VALUE ; +++029 .EVEN ; +++029 SBUF:: .ASCII "< = >" SBL=.-SBUF .EVEN ; +++029 LINBUF::.BLKW 40. ; +++029 OUTLIN OUTPUT BUFFER SBYTE:: PUSH R0 ; +++029 PUSH R2 ; +++029 MOV #SBUF+13,R0 ; +++029 OUTPUT AREA FOR CBTA ASH #10,R1 ; +++029 SIGN EXTEND ASH #-10,R1 ; +++029 FOR BYTE OUTPUT MOV #42412,R2 ; +++029 FLAG FOR CONVERSION PARAMETERS ; +++029 SEE PAGE 5-10, SYSTEM LIBRARY ROUTINES ; +++029 REFERENCE MANUAL CALL $CBTA ; +++029 CONVERT BINARY TO ASCII QIOW$S #IO.WLB,#5,#12.,,,,<#SBUF,#SBL,#15> MOV #SBUF+13,R1 MOVSTR < > ; ZERO OUT OUTPUT POP R2 POP R0 RETURN ; +++029 END OF SBYTE ; +++029 SUBROUTINE WHICH ; +++029 OUTPUTS A WORD IN DECIMAL WITH 6 CHAR DESCRIPTER ; +++029 CALLING SEQUENCE: ; +++029 ; +++029 OUTWRD ,IOSTAT ; +++029 SWORD:: PUSH R0 ; +++029 PUSH R2 ; +++029 MOV #SBUF+13,R0 ; +++029 OUTPUT AREA FOR CBTA MOV #1,R2 ; +++029 MAKE THIS NON-ZERO, PART OF CALLING SEQ CALL $CBOSG ; +++029 CONVERT BINARY TO ASCII QIOW$S #IO.WLB,#5,#12.,,,,<#SBUF,#SBL,#15> MOV #SBUF+13,R1 MOVSTR < > POP R2 POP R0 RETURN ; END OF SWORD ; +++029 SLINE:: QIOW$S #IO.WLB,#5,#12,,,,<#LINBUF,#80.,#15> RETURN ; +++029 -700,703 DFNOUT: NMBLK$ ANALYSIS,LST,,CL,0 ; ++023 ; +++030 CHANGED BACK TO CL0: ; BINFDB:: ; +++028 READ FROM BINARY DISK FILE FDBDF$ ; +++028 FDAT$A R.FIX,,512.,-1000. ; +++030 1000. BLOCKS INITIAL SIZE ; +++028 512-BYTE RECORDS,128 BLKS (32WORDS) FDRC$A FD.RWM ; +++028 BLOCK I/O FDBK$A ,512.,,,IOST ; +++028 512-BYTE BLOCKS, I/O STATUS BLOCK FDOP$A INLUN,BINDEV,BINFNB ; +++029 CHANGED BINDSP TO BINDEV ; +++028 INPUT LUN, DATASET DESC, DEF FILENAME ; +++028 BINFNB::NMBLK$ BINARY,CDA,,SY,0 ; +++028 DEFAULT NAME SY0:BINARY.CDA ; +++028 BINDEV::.BLKW 6 ; +++029 CHANGED BINDSP TO BINDEV ; +++028 DATA-SET POINTER -730 OUTBLN ==10 ;+++029 BINARY OUTPUT LUN -763 ;+++029 ; ; COMMAND LINE FLAGS BIT DEFINITIONS (.CLFLG) ; CL.EQL== 1 ;SET = EQUAL SIGN SEEN CL.CMA== 2 ;SET = COMMA SEEN ON LEFT SIDE CL.LST== 4 ;SET = ANALYSIS FILE/DEVICE SPECIFIED CL.NSP== 10 ;SET = DO NOT SPOOL ANALYSIS FILE CL.CDO== 20 ;SET = CRASH DUMP OUTPUT FILE SPECIFIED CL.CDI== 40 ;SET = CRASH DUMP INPUT FILE SPECIFIED CL.CDD== 100 ;SET = INPUT DUMP DEVICE SPECIFIED CL.STB== 200 ;SET = SYMBOL TABLE FILE SPECIFIED CL.ILL== 400 ;SET = ILLEGAL SWITCH FOUND CL.LFO== 1000 ;SET = LISTING FILE OPEN CL.CLE== 2000 ;SET = EOF FOUND IN COMMAND LINE CL.XIT== 4000 ;SET = EXIT IN PROGRESS CL.XAE== 10000 ;SET = EXIT AFTER "N" ANALYSIS ERRORS CL.UNM== 20000 ;SET = FORCE APR'S TO UNMAPPED VALUES CL.SYM== 40000 ;SET = IGNOR "UNDEFINED" SYMBOLS ;+++029 -771 ; GCMLD$ ; +++029 MOVED FROM CDAINI CSI$ DEF$G ; +++029 MOVED FROM CDAINI (MADE GLOBAL) ; ; .STRBN::.WORD STRBLK ; +++029 USED FOR NDA ROUTINES ; CSIBLK::.BLKB C.SIZE ; +++029 MOVED FROM CDAINI (MADE GLOBAL) ; ; +++029 BINDEV::.BLKW 2 ; +++029 MOVED HERE FROM CDAINI ; UDOTC1::.WORD 0 ; +++030 PUD CHAR WORD 1, FOR CDAINI... DEV:: .WORD 0 ; +++030 MORE OF SAME UNT:: .WORD 0 ; +++030 " " " ; WRTBIN::.WORD 0 ; +++029 SET TO 1 TO INDICATE "CREATE FILE" ; IOST:: .BLKW 2 ;I/O STATUS BLOCK +++028 MADE GLOBAL,MOVED HERE ; -925 .XFR ;+++029 TRANSFER FILE TO DISK -948,949 ; OR BY CDAPRS FOR BINARY FILE +++028 ; 0 IF MAGTAPE ; 1 IF DISK OR DECTAPE ; 2 IF BINARY FILE +++028 -995,996 -1012 FIOERR: ERRMSG ;+++028 ; -2031,2031 20$: CMP .RANDM,#2 ;+++028 IS THIS A RANDOM DISK FILE? BEQ 22$ ;+++028 IT IS? BRANCH. -2036,2043 BCS 23$ ;+++029 30$ ;HANDLER LOADED IF CARRY CLEAR JMP L30 ;+++029 23$: MOV #MOUERR,R2 ; +++012 BUT COULD BE PRIVELEGE ERROR CMPB @#0,#-80. ; +++012 BNE 24$ ;+++029 40$ ; +++012 IF EQ THEN PRIVELEGE ERROR JMP L40 ;+++029 24$: MOV #DEVERR,R2 ;++018 ELSE ERROR JMP .MSG 22$: ;+++028 READ FROM DISK FILE CALL .FILIO ;+++028 CALL NDA MODULE NDAFIO BCC 30$ ;+++028 BR IF NO ERRORS. MOV #FIOERR,R2 ;+++028 THE DEFINITIVE ERROR MESSAGE JMP .MSG ;+++028 30$: L30: TSTB IOST ;CHECK I/O STATUS BPL L50 ;+++029 50$ ;OK -2049,2050 L40: JMP .MSG 50$: L50: MOV R3,R5 ;CALCULATE OFFSET INTO BLOCK TABLE /