DataMuseum.dk

Presents historical artifacts from the history of:

Commodore CBM-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Commodore CBM-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦338e7c622⟧ TextFile

    Length: 3083 (0xc0b)
    Types: TextFile
    Notes: UNIX file
    Names: »t.asm«

Derivation

└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
    └─⟦0a3c255ba⟧ UNIX V7 Filesystem
        └─ ⟦this⟧ »assm/t.asm« 

TextFile

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;***************************************************************************************************************************
;***************************************************************************************************************************
;						CSI-DOS-VERSION 3.2j
;						   COPYWRITE (C) 1985
;						      BY COMPUTER SPECIALTIES INC.
;							 SID TODD & OTIS LUTZ
;***************************************************************************************************************************
;***************************************************************************************************************************
;
;
; For 10MB, 4 Head, 306 Cylinder Disk.
;
; Things fixed:
;		V3.2 11/15/85		FAH
;			(a) Fixes the disk full error @ 6MB of data.
;			(b) Fixes the # of blocks free.
;		(Rd)	(c) Fixes backup to serial device.
;		(Re)	(d) Compacted START area of code. 23 bytes freed.
;		(Rf-Rh)	(e) Various timing change attempts - none permanent.
;		(Ri)	(f) C128 fixes : (1) Remove line to SRQ (hardware fix
;			    required for now. Fixes LOAD/SAVE problem.
;					 (2) Make delay at start of OSW
;			    shorter - fixes read timeout on EOI to C128.
;			NOTE: one intermittent problem left - EOI timing
;			      to ST10C???
;		(Rj)    (g) Per Dave Siracusa @ CBM Ts = 60 uS, Tv = 80uS
;
;		V3.3 next!
;
;
;
;
;
VR	EQU	'V'	;V FOR VERSION
VRN	EQU	'3'	;VERSION NUMBER OF DOS
MAXTRK	EQU	154	;MAX TRACK NUMBER (1/2 FISACAL NUMBER)
WBUF	EQU	4000H	;DRIVE BUFFER START ADDR
BRSEC	EQU	02H	;BAM START SECTOR
BLCYL	EQU	34	;BAM LOW CYLINDER NUMBER
BHCYL	EQU	00	;BAM HIGH CYLINDER NUMBER
BHEAD	EQU	0	;BAM HEAD NUMBER
BCOUNT	EQU	21	;NUMBER OF SECTORS FOR BAM
BRAM	EQU	8B00H	;BAM RAM START ADDR
BTCOUNT	EQU	34	;NUMBER OF BYTES PER TRACK IN BAM
DMASK	EQU	1AH	;INTERRUPT MASK BACKUP OFF
EMASK	EQU	18H	;INTERRUPT MASK BACKUP ON
SIM	EQU	30H	; SIM 8085 instruction.
RIM	EQU	20H	; RIM 8085 instruction.
;
;
			ORG 0000h
		JMP	START		;
BUNEW		DB	'N0:BACKUP,01'	;
BUOPEN		DB	'0:BACKUP'	;
HDIR		DB	'$0'		;
TYPLST0		DB	44H,53H,50H,55H,4CH	;
MODLST		DB	82,87,65,77	;
			ORG 002CH	;BDRQ INTERUPT FROM WDC
		JMP	RESET		;
			ORG 0034H	;BACKUP
		JMP	HBACKUP		;
			ORG 003CH	;INRQ FROM WDC
		JMP	JDONE		;SET JOB DONE
;
;
START		LXI	SP,60F0H	;
CLEAR		LXI	H,8000H		; 8000 -> H,L  Clear 8000 - 82FF
CLLOOP		XRA	A		; 0 -> A
		MOV	M,A
		INX	H
		MOV	A,H
		ANI	83H
		JNZ	CLLOOP
		JMP	CLEAR1	
;
		ORG	0065H		; re-sync the system
CLEAR1		MVI	A,0C0H		;TURN READY IND OFF
		DB	30H
		MVI	A,EMASK
		DB	30H		;SIM:SET INTERRUPT MASKS
S0		MVI	A,0FH		;SET PAR PORTS TO OUTPUT
		OUT	60H
		MVI	A,3FH		;SET FIFO TO 256 BLOCK SERIAL DATA CLK HIGH
		OUT	63H
		MVI	A,3EH
		OUT	63H
		LDA	5007H		;WAIT TILL DRIVE READY
		ANI	0FEH		;MASK ERROR BIT
		CPI	50H
		JNZ	S0
		MVI	A,6FH		;SETS REN AND IFC ACTIVE
		OUT	62H
		MVI	B,0FFH		;INIT IEEE DEVICES
S01		MVI	A,0FFH
S02		DCR	A
		JNZ	S02
		DCR	B
		JNZ	S01
		MVI	A,07FH		;SET IEEE CONTROL AND DATA
		STA	IEEECNT
		OUT	62H
		MVI	A,0FFH
		OUT	61H
		EI
		MVI	A,0FFH
		STA	5001H		;SET WDC TO NO REDUCE WRITE CURRENT
		STA	LINUSE
		END