Programmerare, skeptiker, sekulärhumanist, antirasist.
Författare till bok om C64 och senbliven lantis.
Röstar pirat.
2023-02-28
VIC-20 har en gemensam minnesadress som håller reda både på skärmens bakgrundsfärg och borderfärg. Dessutom finns en bit som håller reda på om inverterat läge används. Adressen är 36879, och de åtta bitarna på adressen beskriver borderfärg (bit 0-2), inverterat läge (bit 3) och bakgrundsfärg (bit 4-7). Inverterat läge är avstängt om bit 3 är satt till 1 (normalt läge) och aktiverat om bit 3 är satt till 0.
Då endast tre bitar (bit 0-2) har avsatts för borderfärg, kan endast en av datorns åtta första färger väljas som borderfärg. Av någon anledning prioriterade man att få in flaggan för inverterat läge framför möjligheten att välja en av alla sexton tillgängliga färger till bordern.
Från början är inverterat läge avstängd, vilket kan konstateras om man läser av bit 3 på adress 36879.
PRINT PEEK(36879) AND 8
Svaret 8 betyder att bit 3 är satt. Ursprungsvärdet på adressen är 27, vilket motsvarar 00011011. Bit 0-2 (numreras från vänster till höger) är 011 vilket motsvarar 3 (turkos). Bit 3 är 1 (normalt läge) och bit 4-7 är 0001 (vit).
Genom att sätta bit 3 till 0 aktiveras inverterat läge.
POKE 36879,PEEK(36879) AND 247
Detta släcker bit 3, vilket gör att värdet på adress 36879 nu är 19 (00010011) om inget annat är ändrat. Borderfärgen är fortfarande turkos, bakgrundsfärgen är fortfarande vit, men textfärgen (blå om inget är ändrat) ligger nu bakom texten som visas med bakgrundsfärgen (vit). Det innebär att textmarkören inte syns mot vit botten, då den nu visas som vit.
För att återställa, sätt bit 3 till 1 igen.
POKE 36879,PEEK(36879) OR 8
Categories: Geeky
Tags: VIC-20
Bjud mig på en kopp kaffe (20:-) som tack för bra innehåll!
Leave a Reply