Anders Franzén
<5258>
· Text 1191 · w8 · kommentar
1985-12-22 01:15
Ärende: VXLPGM
Programmet VÄXLAPGM.UTL innehåller några allvarliga
buggar. Det går inte att läsa filer från kassett och
man får inte skriva in för långa rader när VÄXLAPGM
är aktivt.
ABC80 dyker när man läser från kassett därför att
avbrottsvektorn för kassettinterupt saknas. Om en
BASIC-rad skrivs in och som kompilerad upptar mer än
72 bytes dyker datorn därför att avbrottsvektorn
för tangenttryck placerats i kompileringsbufferten!
Man kan åtgärda det första felet på ett enkelt sätt.
Det andra är mer svårlösligt. Det bästa vore om
maskinkoden till VÄXLAPGM placerades på något annat
ställe än i POKE-arean högst upp i minnet. Man kan
emellertid flytta avbrottsvektorn till annan plats.
Dessa rader gör VÄXLAPGM lite bättre:
151 IF PEEK(65064)=251 POKE 65064,250 (sänk stack)
540 POKE 64052,148,255,148,5 (interuptvektorer)
541 POKE -112,250 (rätt värde till I-reg)
Rad 540 ersätter gammal rad, de övriga är tillägg.
Nu kan man läsa från kassett utan problem. Denna
ändring ökar maxlängden på BASIC-rader till 199 bytes
vilket dock är för litet ibland.