DataMuseum.dk

Presents historical artifacts from the history of:

Christian Rovsing CR7, CR8 & CR16 CP/M

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

See our Wiki for more about Christian Rovsing CR7, CR8 & CR16 CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦3f7c7b26d⟧ TextFile

    Length: 1408 (0x580)
    Types: TextFile
    Names: »ERASE.MAC«

Derivation

└─⟦811637d18⟧ Bits:30005383 Microsoft COBOL-80 v4.01
    └─ ⟦this⟧ »ERASE.MAC« 

TextFile

$ERASE:	LXI     D,1		;SEQUENTIAL POSITION 1(HOME)
        CALL    $CMPR		;	VS CURRENT POSITION
        JZ	CLSCR		;IF HOME POSITION, USE CLEAR SCREEN CODE
	PUSH	H		;CURRENT CURSOR POSITION
	CALL	$CMPL		;NEGATE IT
	PUSH	H		;	AND SAVE ON STACK
	LDA	$CRLEN		;SCREEN LENGHT
	MOV	D,A		;		TO D
	LDA	$CRWID		;SCREEN WIDTH
	MOV	E,A		;		TO E
	CALL	$MULDE		;PRODUCT IS SEQ POS OF EOS
	POP	D		;-CURRENT POS
	DAD	D		;DIFFERENCE
	INX	H		;	PLUS ONE IS NUMBER OF SPACES TO SEND
ERASLP: MVI	A,' '		;ASCII SPACE
	CALL	$OUTCH		;SEND THE SPACE
	DCX	H		;DECR COUNTER
	MOV	A,H		;IF SPACE COUNTER
	ORA	L		;IS NOT 0
	JNZ	ERASLP		;MORE SPACES TO SEND
	POP	H		;ORIG. CURSOR POS
	CALL	$ROWCL		;CONVERT TO ROW AND COLUMN FORMAT
	JMP	$SETCR		;PUT CURSOR BACK TO ORG. POS
CLSCR:  MVI	A,CLEAR		;CLEAR SCREEN CODE
	JMP	$OUTCH		;SEND IT AND RETURN
		
;****************************************************
; ERASE TO END OF LINE
;	ÆHÅ = CURRENT ROW NUMBER
;	ÆLÅ = CURRENT COLUMN NUMBER
;****************************************************
;
$EOL:	PUSH	H		;CURRENT CURSOR POS.
	LDA 	$CRWID		;SCREEN WIDTH
	MOV	E,A		;		TO E
EOLOOP:	MVI	A,' '		;ASCII SPACE
	CALL	$OUTCH		;SEND IT
	INR	L		;BUMP CURRENT COLUMN
	MOV	A,E		;SCREEN WIDTH
	CMP	L		;	VS CURRENT COLUMN
	JNC	EOLOOP		;LOOP IF COLUMN =< WIDTH
	POP	H		;ORIG. CURSER POS.
	JMP	$SETCR		;SET CURSOR AND RETURN
«eof»