Autor Wątek: Odstęp między blokami na taśmie  (Przeczytany 5185 razy)

zenek

  • *
  • Wiadomości: 34
Odstęp między blokami na taśmie
« dnia: 2017.09.24, 13:39:18 »
Chciałem usprawnić programowy odtwarzacz TAPów. W programach jest LOAD "" : LOAD "" CODE
Jaka musi być przerwa w taktach procesora, między odtworzeniem pierwszego bloku a odtworzeniem drugiego, żeby "magnetofon" nie był szybszy od Spectrum, tzn. żeby nie rozpoczął odtwarzania drugiego bloku za szybko,  przed LOAD "" CODE ?

Phonex

  • *****
  • Wiadomości: 1260
  • Miejsce pobytu:
    Warszawa
Odp: Odstęp między blokami na taśmie
« Odpowiedź #1 dnia: 2017.09.24, 15:52:44 »
Nie ma sensu sekwencja LOAD "" : LOAD "" CODE
LOAD "" załaduje Basic kasując bieżący program i LOAD "" CODE już się nie wykona.

zenek

  • *
  • Wiadomości: 34
Odp: Odstęp między blokami na taśmie
« Odpowiedź #2 dnia: 2017.09.24, 16:01:29 »
OK.
To jaka musi przerwa między dwoma LOAD "" CODE : LOAD "" CODE?
Albo jeśli jeszcze komputer coś wykonuje między nimi, np. jak w Timmym.

Phonex

  • *****
  • Wiadomości: 1260
  • Miejsce pobytu:
    Warszawa
Odp: Odstęp między blokami na taśmie
« Odpowiedź #3 dnia: 2017.09.24, 16:45:30 »
Dla standardowego LOAD teoretycznie może nie być przerwy. Nawet jak magnetofon zacznie wcześniej, to i tak pilot przed nagłówkiem ma 5 sekund, a do synchronizacji potrzebne jest 1 sekunda + 256 zboczy. Więc jest prawie 4 sekundy zapasu.
Warto jednak dać przerwę, na wypadek gdyby ktoś chciał to załadować do programu kopiującego. W takim przypadku zbyt mała przerwa spowoduje błąd, ponieważ kopier potraktuje następnego pilota jako ciąg dalszy danych i będzie go ładował. Było to nawet używane jako zabezpieczenie przed kopiowaniem np. na kasetach "CODA" czy "Komputera" ;)
Na końcu standardowej procedury SAVE jest opóźnienie 779 taktów, więc tyle wystarczy.
053A  LD B, $3B ; $07Ts
053C  DJNZ L_053C ; $08/$0DTs
053E  RET ; $0AT

A jeśli coś się wykonuje między blokami?
Chyba jedyny sposób na 100% skuteczny to sprawdzić WSZYSTKIE programy :P
Albo trzymać kciuki, że te wyżej wspomniane 4 sekundy zapasu wystarczą.
Standardowo w tap odstęp na końcu to 1 sekunda, więc wszyscy piszą mając to na myśli. Jak chcesz być 100% compatible to powinno tak zostać.
Jak w przytoczonym Timmy usuniesz ten 1 sek. odstęp to się nie załaduje :(