10 START/L 20 ; CONVER: COMMENT SECTION 30 ; 40 ;************************************************************************* 50 ; 60 ;START OF COMMENT SECTION 70 ; 80 ; 90 ;THIS IS A PROGRAM TO CONVERT DIBOL SOURCE CODE TO DIBOL DATA FILES SO 100 ;THAT THE USER OF RXO2 DRIVES MAY COPY EXISTING DIBOL CODE FROM RXO1 110 ;SINGLE DENSITY DISKETTES TO RXO2 DUAL DENSITY DISKETTES. THE USER MUST 120 ;SPECIFY THE NAMES OF THE OUTPUT FILES AND THE LOGICAL UNITS. THIS 130 ;PROGRAM REQUIRES THAT THE SYSTEM BE SET UP SO THAT THE DATA DISK ON RX1 140 ;CONTAINS 15 LOGICAL UNITS OF 2 IN LENGHT. THIS IS DONE WITH THE 'DFU' 150 ;PROGRAM (SEE SECTION 4 OF THE COS-310 SYSTEM REFERANCE MANUAL). UP 160 ;TO 7 FILES MAY BE TRANSFERED IN ONE 'RUN' BUT A TOTAL OF 15 MAY BE TRANS- 170 ;FERED IN ALL. THE MAXIMUM SIZE FOR AN INPUT SOURCE FILE IS 16 BLOCKS. 180 ;IF THE FILE IS TOO LONG YOU WILL HAVE TO CUT IT INTO SMALLER PEICES. 190 ;THE USER MAY SPECIFY UP TO 7 INPUT FILES BY THE 'RUN' COMMAND. 200 ; 210 ; FORMAT: 220 ; .RUN CONVER,PROG1,PROG2,PROG3,PROG4,PROG5,PROG6,PROG7 230 ; 240 ;WHERE PROG1,PROG2, . . . ,PROG7 ARE DIBOL SOURCE FILES ON THE SYSTEM 250 ;DEVICE. 260 ; 270 ;THE OUTPUT FILE NAMES CAN ONLY BE FIVE CHARACTERS IN LENGTH BECAUSE THE 280 ;PROGRAM AUTOMATICALY ADDS THE $ TO THE BEGINING TO ELIMINAYE THE: 290 ; 300 ; REPLACE FILENAME? 310 ; 320 ;THE USER DOES, HOWEVER, HAVE COMPLETE CONTROL OVER THE LOGICAL UNIT 330 ;NUMBERS. 340 ; 350 ; 360 ;END OF COMMENT SECTION 370 ; 380 ;************************************************************************* 390 ; 400 START/L 410 ; CONVER: DATA DIVISION 420 ; 430 ;************************************************************************* 440 ; 450 ;START OF DATA DIVISION 460 ; 470 ; 480 RECORD ,C ;RECORD TO HOLD OUTPUT SIZE 490 SIZE ,D3 500 ; 510 RECORD ,C ;RECORD USED TO DETERMINE OUTPUT SIZE 520 TRICK ,2A1 530 ; 540 RECORD INPUT ,C ;RECORD FOR THE INPUT FILE 550 INLINE ,A122 560 ; 570 RECORD OUTPUT ,X ;RECORD FOR THE OUTPUT FILE (OVERLAY) 580 OUTLINE ,A122 590 ; 600 RECORD NAMES ,C ;RECORD TO HOLD THE OUTPUT FILE NAMES 610 NAME ,7A6 ;AND THE LOGICAL UNIT NUMBERS 620 NUMBER ,7D2 630 ; 640 RECORD ,C 650 ALPHA ,A7 660 TCHAR ,D2 670 LOOP ,D1 680 NAMEO ,A6 690 UNITIN ,A3 700 ; 710 ; 720 ;END OF DATA DIVISION 730 ; 740 ;************************************************************************* 750 ; 760 PROC 2/L 770 ; CONVER: PROCEDURE DIVISION 780 ; 790 ;************************************************************************* 800 ; 810 ;START OF PROCEDURE DIVISION 820 ; 830 ; 840 OPNCHK, 850 DISPLAY (1,1,1) 860 ON ERROR NOFILE ;ROUTINE TO CHECK IF INPUT FILE IS IN 870 INIT (01,SYS) ;THE 'RUN' LINE 880 INIT, 890 DISPLAY (1,36,'CONVER') 900 DISPLAY (2,1,'MAXIMUN OUTPUT FILE NAME IS FIVE CHARACTERS.') 910 DISPLAY (3,1,'THE PROGRAM ADDS A $ TO FRONT OF SPECIFIED NAME.') 920 DISPLAY (4,1,'PRESS WHEN THERE ARE NO MORE NAMES.') 930 GETNAM, 940 INCR LOOP 950 DISPLAY (LOOP+5,1,'WHAT IS THE NAME FOR FILE # ') 960 ALPHA(1,2)=LOOP 970 DISPLAY (0,0,ALPHA(1,2)) 980 DISPLAY (0,0,' ? ') 990 ; 1000 ALPHA= 1010 ACCEPT (TCHAR,ALPHA) 1020 IF (TCHAR.EQ.13) GO TO GETUNIT 1030 DISPLAY (LOOP+5,1,2) 1040 DISPLAY (0,0,7) 1050 LOOP = LOOP-1 1060 GO TO GETNAM 1070 GETUNIT, 1080 IF (ALPHA(1,1).EQ.' ') GO TO START 1090 DISPLAY (LOOP+5,44,'WHAT IS THE LOGICAL UNIT ? ') 1100 ACCEPT (TCHAR,UNITIN) 1110 IF (TCHAR.EQ.13) GO TO GOT IT 1120 DISPLAY (LOOP+5,44,2) 1130 DISPLAY (0,0,7) 1140 GO TO GETUNIT 1150 GOTIT, 1160 NAME(LOOP)=ALPHA(1,5) 1170 NUMBER(LOOP)=UNITIN(1,2) 1180 IF (LOOP.LT.7) GO TO GETNAM 1190 START, 1200 DISPLAY (1,1,1) 1210 DISPLAY (0,0,'PROCESSING OCCURING . . . PLEASE WAIT') 1220 DISPLAY (15,1,0) 1230 LOOP= 1240 IOLOOP, 1250 INCR LOOP 1260 INITOUT, 1270 NAMEO(1,1)='$' 1280 NAMEO(2,6)=NAME(LOOP) 1290 INIT (02,O,NAMEO,NUMBER(LOOP)) 1300 READ, 1310 XMIT (01,INPUT,EOF) 1320 SIZE=(4096-64*#TRICK(3)-#TRICK(4))*2 1330 WRITE, 1340 XMIT (02,OUTPUT(3,SIZE+2)) 1350 GO TO READ 1360 EOF, 1370 FINI (01) 1380 FINI (02) 1390 DISPLAY (LOOP+5,1,'TRANSFER OF FILE ') 1400 DISPLAY (0,0,NAMEO) 1410 DISPLAY (0,0,' COMPLETED!') 1420 DISPLAY (0,0,7) 1430 NEXT, 1440 ON ERROR NOMORE 1450 INIT (01,SYS) 1460 GO TO IOLOOP 1470 NOFILE, 1480 DISPLAY (1,1,2) 1490 DISPLAY (0,0,'NO INPUT FILES IN RUN LINE!') 1500 DISPLAY (0,0,7) 1510 STOP 1520 NOMORE, 1530 DISPLAY (LOOP+7,1,'FILE TRANSFER COMPLETEED!') 1540 ; 1550 ; 1560 ;END OF PROCEDURE DIVISION 1570 ; 1580 ;************************************************************************* 1590 ; 1600 ; 1610 ;END OF PROGRAM 1620 ; 1630 END, 1640 END 1650 ; 1660 ; 1670 ;*************************************************************************