TD Line: wyłączenie i włączenie z poziomu programu
From Atariki
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.