DataMuseum.dk

Presents historical artifacts from the history of:

Intel ISIS Floppy Disks

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

See our Wiki for more about Intel ISIS Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦58deda92c⟧ TextFile

    Length: 2979 (0xba3)
    Types: TextFile
    Names: »WBOOTL.BAK«

Derivation

└─⟦519079be6⟧ Bits:30005500 8" CR80 Floppy CR80FD_0029 ( WBOOTL.SYS W.D bootload program 81 10 01 ??? )
└─⟦519079be6⟧ Intel_ISIS_II
    └─ ⟦this⟧ »WBOOTL.BAK« 

TextFile

	PAGESZ	40\r
;*********************************************************************\r
\r
	LIST	S\r
	NAME	WBOOTL\r
	TITLE	'WATCHDOG BOOTLOAD PROGRAM'\r
;	FILE	WBOOTL.SRC\r
;	DATE	81 10 14 20 00 LPO\r
;	DISK	WBOOTL.SYS\r
;	NOTES	PROM CHECKSUM=42H ADDR 7FFH\r
;		WD FIRMWARE CHECKSUM= 5DH PT\r
\r
;FUNCTION:\r
;	THIS MODULE IS LOCATED INTO THE SHADOW PROM ON THE WD-LTU\r
;	EXECUTE BOOT LOADING OF THE WD-LTU, IE LOAD PRGM FROM PROM\r
;	SITUATED ON WCA INTO SHARED RAM ON WD-LTU (CR8066D), THEN\r
;	AFTER CHECKSUM CTRL, THE WD FIRMWARE IS MOVED TO PROGRAM\r
;	MEMORY\r
\r
;*********************************************************************\r
\r
\r
\r
	PUBLIC	WBOOTL\r
	LIST	B,I,O,S,T,R,D\r
\r
PROMS	EQU	0		;	PROM START ADDRESS\r
PROME	EQU	3FFFH		;	PROM END ADDRESS\r
RAMEND	EQU	3FFFH		;	Z80 RAM END\r
SRAMB	EQU	4000H		;	FIRST SHARED RAM ADDRESS\r
SRAME	EQU	7FFFH		;	LAST SHARED RAM ADDRESS\r
\r
\r
\r
	CSEG	;PAGE\r
WBOOTL	LD	SP,RAMEND+1	;	ADJUST SP\r
	DI\r
	LD	B,200/13*4\r
	DJNZ	$+0		;	DELAY 200 USEC\r
\r
WBL1	LD	HL,SRAMB\r
	XOR	A		;	INIT CHECKSUM\r
	LD	C,A\r
	LD	DE,PROMS	;	LOAD PROM START ADDRESS\r
	DEC	DE\r
WBL2	INC	DE		;	INCREMENT PROM ADDRESS POINTER\r
	PUSH	BC\r
\r
	CALL	RCD		;	RESET COMMAND DECODER\r
	LD	C,22H		;	LATCH ROM UPPER ADDRESS BYTE\r
	LD	A,0F4H		;	VIA PORT C (OPC0 TO OPC3)\r
	OUT	(C),A		;	(COMMAND 4)\r
	LD	C,20H		;	SEND UPPER ADDR BYTE VIA PORT A\r
	OUT	(C),D\r
	LD	C,22H		;	LATCH ROM UPPER ADDR BYTE\r
	LD	A,0FCH		;	PLUS STROBE, (COMMAND 0CH)\r
	OUT	(C),A\r
\r
	CALL	RCD\r
	LD	C,22H		;	READ ROM (OUTPUT ENABLE)\r
	LD	A,0F3H		;	(COMMAND 3)\r
	OUT	(C),A\r
	LD	C,20H		;	SEND LOWER ADDR BYTE VIA PORT A\r
	OUT	(C),E\r
	LD	C,22H		;	READ ROM PLUS STROBE\r
	LD	A,0FBH		;	(COMMAND 0BH)\r
	OUT	(C),A\r
	LD	C,21H		;	RECEIVE DATA FROM SELECTED\r
				;	ROM ADDR VIA PORT B\r
;#	INI			;	LOAD DATA INTO SHARED RAM\r
\r
	NOP\r
	NOP\r
	IN	A,(C)		;#	SUBSTITUTE INI\r
	LD	(HL),A		;#\r
	INC	HL		;#\r
\r
	POP	BC\r
	LD	A,C		;	CHECKSUM COUNTER\r
	DEC	HL\r
	ADD	A,(HL)		;	ADD DATA TO CHECKSUM\r
	INC	HL\r
	LD	C,A		;	SAVE CHECKSUM WHEN PROM DATA\r
				;	POINTER IS EXAMINED\r
\r
	LD	A,0FFH		;	PROM END LOWER ADDR PART\r
	CP	E\r
	JR	NZ,WBL2		;	NEXT DATA\r
	LD	A,3FH		;	PROM END UPPER ADDR PART\r
	CP	D\r
	JR	NZ,WBL2\r
\r
	LD	A,C\r
	DEC	HL\r
	CP	(HL)		;	IF CHECKSUM ERROR THEN\r
	JP	NZ,WBL1		;	TRY AGAIN\r
	CALL	RCD		;\r
\r
				;	PRGM DATA ARE ACCEPTED AND\r
				;	NOW LOADED FROM SHARED RAM\r
				;	TO PROGRAM MEMORY\r
WBL3	LD	BC,SRAME-SRAMB\r
	LD	HL,SRAMB	;	GET FIRST DATA ADDRESS\r
	LD	DE,0\r
	LDIR			;	MOVE ALL DATA TO PROGRAM MEMORY\r
\r
	CALL	RCD\r
	LD	C,22H		;	LOAD COMMAND REGISTER (COMMAND 7)\r
	LD	A,0F7H\r
	OUT	(C),A\r
	LD	C,20H\r
	LD	A,0F0H		;	RESET ONESHOT IN WCA\r
	OUT	(C),A\r
	LD	C,22H\r
	LD	A,0FFH		;	LOAD COMMAND REGISTER PLUS STROBE\r
	OUT	(C),A\r
\r
	CALL	RCD\r
	LD	C,22H\r
	LD	A,0F7H\r
	OUT	(C),A\r
	LD	C,20H\r
	LD	A,0F1H		;	GIVE EXTERNAL MASTER CLEAR (EMC)\r
	OUT	(C),A\r
	LD	C,22H\r
	LD	A,0FFH\r
	OUT	(C),A\r
	HALT\r
\r
\r
\r
;# RESET COMMAND DECODER\r
RCD	LD	C,22H		;	LOAD POINTER TO PORT C\r
	LD	A,0F0H		;	SET LOWER NIBLE LOW\r
	OUT	(C),A\r
	LD	A,0F8H		;	SET BIT 3\r
	OUT	(C),A\r
	RET\r
	END\r