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

⟦a8ba1e703⟧ TextFile

    Length: 1436 (0x59c)
    Types: TextFile
    Names: »TPROM.SRC«

Derivation

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

TextFile

;*****************************************************************************\r
	TITLE	'PROM TEST ROUTINE'\r
	NAME	TPROM\r
;*****************************************************************************\r
\r
	PUBLIC	TPROM,CHESUM,CHEADJ\r
	EXTRN	ERROR\r
	CSEG\r
\r
;-------PROM TEST---------------------------------------TPROM------------------\r
		;DESCRIP: THE ROUTINE TEST THE PROM BY CALCULATE THE CHECKSUM\r
		;	THE CHECKSUM MUST BE ADJUSTED TO 00H IF PROGRAM\r
		;	IS LOCATED INTO PROM.\r
TPROM	LD	DE,0		;LOAD PROM START ADDRESS\r
	LD	HL,PROMEND	;LOAD PROM END ADDRESS\r
	CALL	CHESUM\r
	AND	A\r
	RET	Z		;RETURN IF CHECKSUM = 0\r
	CPL\r
	LD	HL,CHEADJ\r
	LD	E,A\r
	LD	A,0FFH\r
	CP	(HL)\r
	JR	NZ,T1ERROR	;JUMP IF CHECKSUM ALREADY ADJUSTED\r
	LD	A,E\r
	LD	(HL),A		;ADJUST CHECKSUM\r
	CP	(HL)\r
T1ERROR	LD	A,1\r
	CALL	NZ,ERROR	;JUMP IF READ/WRITE ERROR\r
	JP	TPROM\r
\r
\r
\r
;-------CHECKSUM------------------------------------------------CHESUM-------\r
		;DESCRIPT: CALCULATE CHECKSUM FOR SPECIFEID PROM.\r
		;ENTRY:	DE - FIRST PROM ADDRESS\r
		;	HL - LAST PROM ADDRESS\r
		;EXIT:	A - CHECKSUM\r
		;DESTROY: F,DE,HL\r
		;TIME: 47+27*BYTE COUNT TCYCLES\r
CHESUM	XOR	A		;RESET CHECKSUM\r
	SBC	HL,DE		;CALCULATE BYTE COUNT\r
	EX	DE,HL\r
	INC	E\r
	INC	D\r
	DEC	HL\r
C1LOOP	INC	HL		;FOR ADDRES = START TO END\r
	ADD	A,(HL)		;  CALCULATE CHECKSUM\r
	DEC	E\r
	JP	NZ,C1LOOP\r
	DEC	D\r
	JP	NZ,C1LOOP	;NEXT ADDRESS\r
	RET			;RETURN\r
CHEADJ	DB	0FFH		;RESERVE ONE BYTE FOR CHECKSUM ADJUST.\r
	END\r