DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

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

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦547fac57d⟧ TextFile

    Length: 896 (0x380)
    Types: TextFile
    Names: »PSTAT.SRC«

Derivation

└─⟦c9df7130d⟧ Bits:30005915 Pascal MT+ Release 5.2 (Jet-80)
    └─ ⟦this⟧ »PSTAT.SRC« 

TextFile

;PRINTS STATEMENT NUMBER IF TRACES OR EXT.ERROR MESSAGES ON
;
	NAME PSTAT
	ENTRY PSTAT
	EXT STMTMSG,TXTYP,CO,CRLF
;
PSTAT:	PUSH	H		;SAVE HEAP POINTER
	LXI	H,STMTMSG	;PRINT STATEMENT MESSAGE
	PUSH	B		;STATEMENT NUMBER -> HL
	CALL	TXTYP
	POP	H
	PUSH	H
	LXI	D,1000		;DO THOUSANDS DIGIT
	CALL	DIGIT
	LXI	D,100		;DO HUNDREDS  DIGIT
	CALL	DIGIT
	LXI	D,10		;DO TENS DIGIT
	CALL	DIGIT
	LXI	D,1		;DO ONES DIGIT
	CALL	DIGIT
	LXI	H,CRLF		;POINT TO CRLF
	CALL	TXTYP		;PRINT IT
	POP	B		;RESTORE STATEMENT NUMBER
	POP	H		;RESTORE HEAP POINTER
	XRA	A		;CLEAR ACC
	RET
;
DIGIT:	MVI	C,'0'-1		;INITIALIZE ASCII COUNTER
	XRA	A		;CLEAR CARRY
DIG1:	INR	C		;BUMP COUNTER
	DSBC	D		;TRY ANOTHER SUBTRACTION
	JRNC	DIG1		;KEEP IT UP WHILE POSITIVE RESULT
	DAD	D		;ELSE MAKE RESULT +IVE
	JMP	CO		;PRINT CHAR AND RETURN TO CALLER
«eof»