TD Line: wyłączenie i włączenie z poziomu programu
From Atariki
←Older revision | Newer revision→
TD Line jest programem dla SpartaDOS i SpartaDOS X, wyświetlającym na dodatkowej linii ekranu bieżący czas i datę. Niekiedy zachodzi potrzeba tymczasowego, automatycznego wyłączenia działania TD Line, na przykład na czas ładowania programu wyświetlającego jakąś czołówkę.
SpartaDOS 3.x
W SpartaDOS 3.x służy do tego celu umieszczony pod adresem $FFC6 (pod ROM-em) wektor VTDON. Wywołanie wygląda następująco:
portb = $D301
vtdon = $FFC6
;
td_off lda portb
pha
and #$fe
sta portb
ldy #$00 ;$00 - OFF, $01 - ON
jsr vtdon
pla
sta portb
rts
SpartaDOS X
W SpartaDOS X powyższy sposób też działa, ale tylko pod następującymi warunkami:
- że pamięć pod ROM-em istnieje;
- że wektory się tam znajdujące nie zostały zniszczone przez program korzystający z tej pamięci (np. Turbo BASIC XL).
Dlatego najlepiej, zamiast wspomnianym wektorem, posłużyć się symbolem I_TDON. Robi się to następująco:
jext_on = $07f1
jext_off = $07f4
jfsymbol = $07eb
;
td_off lda #<sym
ldx #>sym
jsr jfsymbol
beq exit ;exit if no symbol found (= no TD loaded)
sta ptr+1
stx ptr+2
tya
jsr jext_on
ldy #$00 ;$00 - off, $01 - on
ptr jsr $0000
jmp jext_off
exit rts
; symbol name, space-padded to 8 characters
sym .byte 'I_TDON '
Należy zadbać, żeby podprogram znalazł się poza obszarem przełączania banków pamięci ($4000-$7FFF). Dodatkowo, sposób ten będzie działał dopiero w SpartaDOS X w wersji 4.40 albo nowszej.