File RKCOPY.PA (PAL assembler source file)

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

/RKCOPY V2.004
/RECOMPILED FROM DISASSEMBLELY 27-AUG-81
/AT SUPERIOR PLATING OF FAIRFIELD,CONN.
/FOR A UNIQUE PROGRAMMING ENVIRONMENT.
//
/MG

ACM3=CLA CLL CMA RTL
AC4000=CLA CLL CML RAR
*0020
CHAR,	0000		/CHAR FOR READC ROUTINE

PRINT,	0000		/PRINT MESSAGE
	TAD I	PRINT
	DCA	CHAR
	ISZ	PRINT
PRINT3,	TAD I	CHAR
	BSW
	JMS	PRINT2
	TAD I	CHAR
	JMS	PRINT2
	ISZ	CHAR
	JMP	PRINT3

PRINT2,	0000
	AND	[77
	SNA 
	JMP I	PRINT
	TAD	[240
	AND	[77
	TAD	[240
	JMS	TYPE
	JMP I	PRINT2

CRLF,	0000		/CR LF ROUTINE
	TAD	[215
	JMS	TYPE
	TAD	[212
	JMS	TYPE
	JMP I	CRLF

TYPE,	0000		/TYPE CHAR IN AC ROUTINE
	TSF
	JMP	.-1
	TLS
	CLA 
	JMP I	TYPE

READC,	0000		/READ CHAR INTO CHAR,CHECK FOR ^C
	KSF
	JMP	.-1
	KRB
	AND	[177
	DCA	CHAR
	ACM3 
	TAD	CHAR
	SNA CLA 
	JMP I	[7605
	JMP I	READC

GETN,	0000		/GET NUMBER ROUTINE
	JMS	READC
	TAD	CHAR
	JMS	TYPE
	JMS	CRLF
	TAD	CHAR
	TAD	[7720
	AND	[7774
	SZA CLA 
	JMP I	GETN
	ISZ	GETN
	TAD	CHAR
	TAD	[7720
	CLL RAL 
	JMP I	GETN

PAGE
START,	6040	/RKCOPY ENTRY
	JMS	PRINT	/PRINT HEADER MESSAGE
	MESS1
	JMS	CRLF
	JMS	PRINT	/ASK FOR INPUT UNIT
	MESS2
	JMS	GETN	/GET UNIT NUMBER
	JMP	.-3	/ASK AGAIN?
	DCA	DSKIN	/SAVE INPUT UNIT #
	JMS	PRINT	/ASK FOR OUTPUT UNIT #
	MESS3
	JMS	GETN	/GET UNIT NUMBER
	JMP	.-3	/ASK AGAIN?
	DCA	DSKOUT	/SAVE OUTPUT UNIT #
	JMS	PRINT	/TELL HIM WE'RE READY
	MESS4
	JMS	READC	/WAIT UNTIL HE'S READY!
	JMS	CRLF
SETUP,	TAD	DSKIN	/SET UP TO READ
	DCA	UNIT
RSEQ,	DCA	DFUNC	/AC=0000 FOR READ,4000 FOR WRITE
	CLL CMA RAL 
	DCA	SURFSW	/SET SURFACE SWITCH = -2
	DCA	ALLFLG	/SET FOR DATA FORMAT OF READ OR WRITE
	TAD	(20
	DCA	DSKEMA	/SET FIELD 2 FOR SIDE ONE
XFERT,	TAD	(7760
	DCA	SCOUNT	/COUNT FOR 20(8) OR 16(10) SECTORS
	6744	/START AT LOCATION ZERO
XFERS,	TAD	UNIT	/GET UNIT #
	TAD	DFUNC	/GET DISK FUNCTION (R/W)
	TAD	DSKEMA	/GET DATA FIELD
	TAD	ALLFLG	/GET DATA/ALL FLAG
	TAD	DSURF	/GET DISK SURFACE
	6746	/LOAD COMMAND REGISTER
	TAD	DSKADD	/GET DISK ADDRESS
	6743	/LOAD ADDRESS AND GO DO FUNCTION
	6741	/ARE WE DONE YET?
	JMP	.-1	/NO: THEN WAIT!
	6745	/GET DISK STATUS
	CLL RAL 	/IGNORE BIT 0
	SZA 	/SKIP IF NO ERROR
	JMP	DSKERR	/GO HANDLE ERROR
GETMOR,	TAD	(1000	/SET FOR READ/WRITE ALL
	DCA	ALLFLG
	ISZ	DSKADD	/INCREMENT SECTOR
	SKP 
	ISZ	DSURF
	ISZ	SCOUNT	/DID WE DO 16 SECTORS?
	JMP	XFERS	/NO, GO DO SOME MORE
	TAD	(30
	DCA	DSKEMA	/SET FIELD 3 FOR SIDE TWO
	ISZ	SURFSW	/DID WE ALREADY DO SIDE TWO?
	JMP	XFERT	/NO, GO DO IT.
	CLL CMA RTL 	/YES: 3 ERROR TRIES PER CYLINDER
	DCA	ERRTRY
	TAD	DFUNC	/GET FUNCTION
	SPA CLA 	/SKIP ON READ
	JMP	NXTRAC	/WRITE: GO GET NEXT TRACK
	TAD	DSKOUT	/SET UP FOR WRITE
	DCA	UNIT
	TAD	DSKADD	/GET DISK ADDRESS
	SNA 
	DCA	DSURF
	TAD	(7740	/RESET FOR WRITE
	DCA	DSKADD
	AC4000 	/AC=4000 FOR WRITE
	JMP	RSEQ	/GO TO RSEQ WITH NZ AC
NXTRAC,	ISZ	TCOUNT	/DO ALL TRACKS?
	JMP	SETUP	/NO: GO DO MORE
	JMS	PRINT	/YES:PRINT DONE.
	MESS5
	JMS	CRLF
	JMP I	(7605		/AND EXIT TO OS8 MONITOR
DSKERR,	AND	(7757	/CHECK FATAL ERROR BITS
	SZA 	/SKIP IF NONE ARE SET
	JMP	ABORT	/GO ABORT COPY
	ISZ	ERRTRY	/SHOULD WE GIVE IT ANOTHER TRY
	SKP 	/YES!
	JMP	GETMOR	/BUG ER! GO TRY MORE?!?....
	DCA	ALLFLG	/RESET FOR READ/WRITE DATA FUNC
	TAD	DSKADD	/BACKUP DISK ADDRESS
	AND	(7760
	DCA	DSKADD
	JMP	XFERT	/GO RETRY THAT!
ABORT,	CLA 	/GIVE FATAL ERROR MESSAGE
	JMS	PRINT
	MESS6
	JMP I	(7605		/RETURN TO OS8
DSKIN,	0000
DSKOUT,	0002
ERRTRY,	7775
UNIT,	0000
DFUNC,	0000
DSKADD,	0000
ALLFLG,	0000
DSKEMA,	0000
DSURF,	0000
SURFSW,	0000
SCOUNT,	0000
TCOUNT,	7465

PAGE
MESS1,	TEXT "RK05 DISK COPY V2.004"
MESS2,	TEXT "FROM DRIVE?"
MESS3,	TEXT "TO DRIVE?"
MESS4,	TEXT "STRIKE ANY CHARACTER TO START COPY:"
MESS5,	TEXT "DONE"
MESS6,	TEXT "?FATAL ERROR IN COPY"
$$$$$$$$$$$$$$$$



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