Benny Löfgren SYSOP
<2615>
· Text 934 · w8 · kommentar
1985-10-19 14:10
Ärende: ABC80 => ABC800 - LIBERS BASIC II-kort
Jo, efter mycket efterforskande kom jag på att om man körde LIB från
DOSet, dvs efter BYE så gick det bra, men däremot om man körde det lilla
BASIC-program som laddar in LIB.ABS så gick det åt skogen.
Vidare efterforskningar gav till resultat att jag isolerade instruktionerna
PEEK, POKE och CALL som misstänkta bovar.
Ytterligare lite snokande gav vid handen att det var POKE som var den
skyldige. Man gör nämligen några POKEar i LIB.BAC, vilket kanske är bekant!
Felet berodde på att ABC800-varianten av POKE gör en OUT-instruktion
först för att stänga av skrivskyddet på ett speciellt CMOS-RAM som man
kan ansluta. Nu visade det sig tyvärr att om man maskade bort vissa
oväsentliga bitar som inte har någon funktion i ABC80 så visade det sig
att man gjorde OUT 2,0. Just OUT 2 går till bussens C1-strob, och den
har på controllerkortet funktionen att ställa controllern i kommandoläge,
dvs. den genererar NMI till controllerns Z80.
Detta gjorde att controllern blev hängande i ett par sekunder innan den
kom i gång efter en access.