29.12.2012 Views

The Programmer's Guide to TRSDOS Version 6 - Tim Mann's Home ...

The Programmer's Guide to TRSDOS Version 6 - Tim Mann's Home ...

The Programmer's Guide to TRSDOS Version 6 - Tim Mann's Home ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

EX DE,HL ;Move new HIGH$ <strong>to</strong> HL<br />

LD A,@HIGH$ ;Set new HIGH$ in<strong>to</strong> the system<br />

RST 40<br />

INC HL ;Bump <strong>to</strong> filter entry<br />

LD (IX+0),40H.OR.7 ;Stuff TYPE byte<br />

LD (IX+1),L<br />

LD (IX+2),H ;Install addr in<strong>to</strong> dcb<br />

LD HL,0 ;Successful...<br />

RET<br />

;<br />

VIASET LD HL,VIASET$<br />

DB 0DDH<br />

NOMEM LD HL,NOMEM$<br />

@@LOGOT<br />

LD HL,-1<br />

RET<br />

;<br />

HELLO$ DB LF,'SLASH0 Filter'<br />

NOMEM$ DB 'High memory is not available!',CR<br />

VIASET$ DB 'Must install via SET!',CR<br />

;<br />

;*=*=*<br />

; <strong>The</strong> SLASH-0 filter<br />

;*=*=*<br />

SLASH JR START<br />

OLDHI DW $-$ ;HIGH$ before filtering<br />

DB MODDCB-SLASH-5<br />

DB 'SLASH0'<br />

MODDCB DW $-$ ;Loaded with DCB pointer<br />

DW 0<br />

;<br />

START JR NZ,OUTP1 ;Go if not PUT<br />

LD A,C<br />

CP '0' ;ASCII zero?<br />

JR Z,OUTCF ;Go if so<br />

OUTP1 PUSH IX ;Save current pointer<br />

PUSH BC ;Save in case affected downstream<br />

LD IX,(MODDCB) ;P/u this module's DCB<br />

RX01 EQU $-2<br />

LD A,@CHNIO ;Chain <strong>to</strong> the next<br />

RST 40<br />

POP BC<br />

POP IX<br />

RET<br />

;*=*=*<br />

; Do the slashing<br />

;*=*=*<br />

OUTCF CALL OUTP1 ;Put the zero<br />

RX02 EQU $-2<br />

LD C,08H ;Backspace<br />

CALL Z,OUTP1<br />

RX03 EQU $-2<br />

LD C,'/' ;Now put the slash<br />

JR Z,OUTP1 ; unless an error<br />

MODEND RET<br />

;<br />

LENGTH EQU $-SLASH<br />

RELTAB DW RX01,RX02,RX03,0<br />

;<br />

END BEGIN<br />

8-39

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!