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 ...
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