1

Temat: 600xl - pamięć

Szybkie pytanie mam: jak w 600xl (16 kb ram) wyłączyć rom (o ile się da)?
Wpisuje odpowiednie wartości do PORTB, i znika ROM. Czyli jest ok.
Zamiast RAMu są wartości FF (przynajmniej w a800) od $4000 w górę.
Wiadomo - jest go 16k, to i kończy się na owych $4000.
Wektory przerwań są na samym końcu RAMu, i jest mały problem.
Jednakże może jest jakiś magiczny sposób, by to nie były FF, ale np. 00 (co już by było ok)?

2

Odp: 600xl - pamięć

chyba nie ma innej mozliwosci jak tylko podpinajac tam cos.
jak tam nic nie ma, na szynie nic nie odpowie "wysokim" stanem napiecia, czyli zerowym bitem - bedziesz mial tam na stale 0xff

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

3

Odp: 600xl - pamięć

No to mamy 3 wektory: FFFF,FFFF,FFFF
Wszystkie wskazują na FFFF. Więc pod FFFF jest rozkaz o kodzie FF - nieudokumentowany:
ISB Q,X
Więc pod adresy 0 i 1 trzeba wpisać wartości odpowiednio 00 i FF, aby sobie niezależnie od wartości X zwiększał adres w pamięci, której nie ma.
Następnie od bajtu pod adresem 2 mamy początek obsługi przerwania hurtem: RESET, IRQ i NMI (tzn mamy mieć)

Pomysł taki był kiedyś realizowany w zx spectrum.

Ostatnio edytowany przez qbahusak (2012-08-06 15:23:25)

4

Odp: 600xl - pamięć

No wlasnie, nie chcialbym uzywac niepublikowanych rozkazow. Dlatego ludzilem sie z zerami. wtedy wektory wskazywalyby adres 0, a wtedy jestesmy w domu :)