; DIRPAT3 Install program (c) ESKAY ; .z80 .request syslib ; cr equ 0dh lf equ 0ah ; cseg ; start: ld sp,stack call print## cr,lf,lf 'DIRPAT v3.xx INSTALL program (c) 1985 ESKAY',cr,lf,lf,0 ld de,record ld c,26 call bdos## ld de,fcb call f$open## jr z,..ok. call print## 'ERROR: DIRPAT.COM not found!',cr,lf,7,0 rst 0 ; ..ok.: call f$read## ..cls: call print## cr,lf 'Current CLS bytes : ',0 ld hl,cls call get5 call print## cr,lf,lf 'Current cursor positioning bytes : ',0 ld hl,curpos call get5 call print## cr,lf,lf 'Is Row or Column first? (R or C) ',0 call capin## cp 'R' ld a,0 jr z,.row. dec a .row.: ld (xory),a call print## cr,lf,lf 'Enter cursor offset in hex (normally 20H) ',0 call bbline## call eval16 ld (coffs),a call print## cr,lf,lf 'Do you want continuous time-display on the screen? (Y or N) ',0 call capin## cp 'Y' ld a,0ffh jr z,..to. inc a ..to.: ld (timeon),a call print## cr,lf,lf 'Inexplicably, WYSE-50 terminals get confused at high baud rates',cr,lf 'with DIRPAT cursor addressing. If you wish to add delays to',cr,lf 'Prevent erratic cursor movements, enter "Y", else enter "N" : ',0 call capin## cp 'Y' ld a,0ffh jr z,..dl. inc a ..dl.: ld (wyse),a call print## cr,lf,lf 'Thanks.',0 ld de,fcb ld hl,0 ld (fcb+32),hl ld (fcb+34),hl ld c,34 call bdos## call print## ' DIRPAT.COM installed.',cr,lf,lf,0 rst 0 ; get5: ld b,5 push hl .clsd.: ld a,(hl) call pa2hc## ld a,' ' call cout## inc hl djnz .clsd. call print## cr,lf 'Enter new bytes in hex, one at a time, ' 'fill remainder with 0:',cr,lf,0 pop hl ld b,5 .clg..: push hl call print## cr,lf,': ',0 call bbline## call eval16## pop hl ld (hl),a inc hl djnz .clg.. ret ; dseg ; fcb: db 0,'DIRPAT COM',0,0,0,0 ds 24 ds 60 stack equ $ ; record equ $ ds 2 cls: db 1bh,'E',0,0,0,0 ; clear screen curpos: db 1bh,'F',0,0,0,0 ; cursor pos xory: db 0 ; 0=xy, nz=yx coffs: db 32 ; cursor offset timeon: db 0 wyse: db 0 ; end