File DAFTA.AS (Source fil)

Directory of image this file is from
This file as a plain text file

10 	START;	 D A F T	VERSION 6.05
15 		
20 ;COPYRIGHT 1973
25 ;DIGITAL EQUIPMENT CORPORATION
30 ;MAYNARD, MASS.  01754
35 ;
40 ;THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
45 ;ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
50 ;OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
55 ;AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
60 ;
65 ;THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
70 ;NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT
75 ;BY DIGITAL EQUIPMENT CORPORATION.
80 ;
85 ;DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF
90 ;ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
95 ;
100 ;COMPILATION INSTRUCTIONS:
105 ;	.RUN COMP,DAFTA,DAFTB
110 ;	.SAVE DAFT
115 ;	.RUN DAFT
120 ;
125 RECORD
130 TRICK,	2A1
135 RECORD INREC
140 I,	510A1
145 RECORD
150 TRICK2,	2A1
155 RECORD COMMAND
160 COM,	128A1
165 RECORD
170 QUOTE,	A1
175 ,	A1,'?'	;OVERFLOW PROTECTION
180 RECORD
185 TRICK4,	A1
190 RECORD TR4
195 ,	A1
200 RECORD
205 NAME,	A6,'/NONE/'
210 UNIT,	D2,00
215 LEFT,	D3
220 RIGHT,	D3
225 NUMBR,	D15
230 LFT,	D3
235 RT,	D3
240 RECNO,	D5
245 RECORD
250 TRICK3,	A1,'*'
255 RECORD
260 D3,	D3
265 RECORD,X
270 HUNS,	D1
275 TENS,	D1
280 UNITS,	D1
285 RECORD,X
290 ,	D1
295 D2,	D2
300 RECORD INFO
305 ,	A7,'RECORD '
310 RECNUM,	D6
315 ,	A9,' OF FILE '
320 RECNAM,	A6,'/NONE/'
325 ,	A18,',   RECORD LENGTH='
330 RECLEN,	D3,510
335 ,	A11,' CHARACTERS'
340 RECORD
345 K,	D2
350 KBD,	D1,7
355 TTY,	D1,8
360 LPT,	D1,6
365 LENG,	D3,001
370 LINCOUNT,D2
375 LETTR,	A1
380 CHAR,	A1
385 INFLG,	D1	;1 MEANS INPUT RECORD HAS BEEN INITED
390 OUTFLG,	D1	;1 MEANS OUTPUT FILE IS OPEN
395 OUTKNT,	D6	;NO. OF RECORDS OUTPUT
400 GRID,	D1	;1 MEANS DISPLAY GRID
405 KEYLOW,	D3,001	;CURRENT LOWER LIMIT OF KEY
410 KEYHI,	D3,510	;CURRENT UPPER LIMIT OF KEY
415 KYHI,	D3,509	;RESTRICTED UPPER LIMIT
420 FLAG,	D1	;1 MEANS NO DIGITS FOUND
425 IN,	D1,1
430 OUT,	D1,2
435 SYS,	D1,3
440 GRIDLEN,D3,050
445 SCAN,	D3,001
450 LOW,	D3,001
455 HIGH,	D3,130
460 DIF,	D3
465 UPFLAG,	D1	;1 MEANS RECORD IS BEING UPDATE
470 SYSFLG,	D1
475 DEVICE,	D2,02
480 OLDLEN,	D3,-001	;OLD RECORD LENGTH
485 PLUS,	D1	;1 MEANS WRITE BEFORE EACH READ
490 RECORD
495 DATA,	A100
500 RECORD,X
505 NDATA,	D100
510 RECORD
515 GRIDA,	A50,'         1         2         3         4         5'
520 ,	A50,'         6         7         8         9         0'
525 ,	A50,'         1         2         3         4         5'
530 ,	A50,'         6         7         8         9         0'
535 ,	A32,'         1         2         3  '
540 RECORD
545 GRIDB,	A50,'12345678901234567890123456789012345678901234567890'
550 ,	A50,'12345678901234567890123456789012345678901234567890'
555 ,	A50,'12345678901234567890123456789012345678901234567890'
560 RECORD EOFMSG
565 ,	A28,'END OF INPUT FILE AT RECORD '
570 EOFREC,	D6
575 RECORD FOUNDM
580 ,	A21,'DATA FOUND IN RECORD '
585 FNOM,	D5
590 RECORD QOUT
595 ,	A13,'OUTPUT FILE: '
600 OUTNAM,	A6,'/NONE/'
605 RECORD QOUTU
610 ,	A6,'UNIT: '
615 OUTUN,	D2
620 RECORD QKEY
625 ,	A5,'KEY=<'
630 KEYL,	D3,001		;PERMANENT LOWER LIMIT OF KEY
635 ,	A1,','
640 KEYH,	D3,509		;PERMANENT UPPER LIMIT OF KEY
645 ,	A1,'>'
650 RECORD QIN
655 ,	A12,'INPUT FILE: '
660 RICN,	A6
665 ,	A4
670 STATUS,	A4
675 RECORD QINU
680 ,	A6,'UNIT: '
685 INUNIT,	D2
690 RECORD GBUFF
695 PAD,	A1
700 GBUF,	A132
705 	PROC 3	;   (DAFT)  DUMP AND FIX TECHNIQUE
710 	LINCOUNT=55
715 	TR4=" '
720 	QUOTE=TRICK4(3)
725 	GO TO EOJ
730 START,	PLUS=
735 	SCAN=1			;INITIALIZE SCAN
740 	IF(SYSFLG .EQ. 1)GO TO SYSINP
745 	DISPLAY (0,0,TRICK3)
750 	ONERROR X
755 	XMIT(KBD,COMMAND,EXIT)	;READ COMMAND FROM KEYBOARD
760 TERM,	COM(129-2*#TRICK2(4)) = ';'
765 	CALL FLOW
770 	K = #COM(SCAN)-33	;GET FIRST LETTER
775 	IF (K .EQ. -5) GO TO START
780 	CALL PASS		;GO TO NEXT ARGUMENT
785 	GOTO (ADV,BACK,CHANGE,DISPLAY,EXIT,FINI,GOTO,HELP,INPUT,X,KEY,LIST,X), K
790 	GOTO(X,OUTPUT,PUT,QUERY,REWIND,SEARCH,TYPE,UPDATE,VERSION,WRITE,XINF), K-13
795 X,	XMIT(TTY,"BAD COMMAND.')
800 	GOTO START
805  
810 INPUT,	IF (INFLG .NE. 0) CALL INFINI
815 	CALL LABEL
820 	INIT(IN,INPUT,NAME,UNIT)
825 	RECNAM=NAME
830 	INUNIT=UNIT
835 	STATUS='OPEN'
840 	UPFLAG=
845 INP2,	RECNUM=0
850 	RECLEN=510
855 	INFLG=1
860 	GOTO READ
865 INFINI,	FINI(IN)
870 	RETURN
875  
880 OUTPUT,	IF (OUTFLG.NE.0) GOTO OUT2ERR
885 	CALL LABEL
890 	INIT(OUT,OUTPUT,NAME,UNIT)
895 	OUTNAM=NAME
900 	OUTUN=UNIT
905 	OUTFLG=1
910 	OUTKNT=
915 	GOTO START
920 OUT2ERR,XMIT(TTY,"OUTPUT FILE ALREADY OPEN')
925 	GOTO START
930  
935 UPDATE,	IF (OUTFLG .NE. 0) GOTO OUT2ERR
940 	IF (INFLG .NE. 0) CALL INFINI
945 	CALL LABEL
950 	INIT(IN,UPDATE,NAME,UNIT)
955 	UPFLAG=1		;NOTE SAID FACT
960 	OUTFLG=1
965 	OUTKNT=0
970 	INUNIT=UNIT
975 	OUTUN=UNIT
980 	STATUS='UPDT'
985 	RECNAM=NAME
990 	OUTNAM=NAME
995 	GOTO INP2
1000 READ,	CALL REED		;READ NEXT INPUT RECORD
1005 	GOTO START
1010 REED,	IF (INFLG .NE. 1) GOTO NOIN
1015 	IF (RECNUM .EQ. 0) GOTO RD2
1020 	IF (PLUS .GT. 0) CALL WRIT
1025 RD2,	IF (UPFLAG .NE. 0) GOTO READUP
1030 	XMIT(IN,INREC,EOF)
1035 RD3,	RECNUM=RECNUM+1
1040 GETLEN,	RECLEN=(4096-64*#TRICK(3)-#TRICK(4))*2
1045 	OLDLEN=RECLEN
1050 	RETURN
1055 NOIN,	XMIT(TTY,"NO INPUT FILE.')
1060 	GOTO START
1065 READUP,	RECNUM=RECNUM+1
1070 RDUP,	ON ERROR ILLREC
1075 	READ(IN,INREC(1,RECLEN+2),RECNUM)
1080 	GOTO GETLEN
1085 EOF,	EOFREC=RECNUM
1090 	XMIT(TTY,EOFMSG)
1095 	INFLG=
1100 	STATUS='THRU'
1105 	GOTO START
1110 ILLREC,	XMIT(TTY,"ILLEGAL RECORD - CLOSING FILE')
1115 	GOTO FINI
1120  
1125 WRIT,	IF (OUTFLG .NE. 1) GOTO NOUT
1130 	IF (UPFLAG .NE. 0) GOTO WRITUP
1135 	IF (RECLEN .EQ. 0) GOTO NOIN
1140 	XMIT(OUT,INREC(1,RECLEN+2))
1145 	OUTKNT=OUTKNT+1
1150 	RETURN
1155 NOUT,	XMIT(TTY,"NO OUTPUT FILE')
1160 	GOTO START
1165 WRITUP,	WRITE(IN,INREC(1,RECLEN+2),RECNUM)
1170 	RETURN
1175  
1180 FLOW,	IF (COM(SCAN) .NE. ' ') RETURN
1185 	SCAN=SCAN+1
1190 	GOTO FLOW



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search