Nu har jag sprungit på problem som gör att jag behöver en map/dictionary-datatyp (uppslagsdatatyp?). Jag satt och försökte skriva generiska makron för hoppa mellan banker på 128:an. Koden behöver hoppa via delat minne och jag försökte först att skriva en funktion som hanterade bankbytet och hoppet men antalet instruktioner exploderade av all stackhantering. Det bästa verkar vara att generera en hoppfunktion för varje adress som ska hoppas till. Då blev problemet att jag behöver samla in alla unika adresser som det ska hoppas till för att sedan generera koden i slutet av programkoden. En map-struktur skulle passa bra till detta.
Så nu är jag i valet och kvalet. Hur ska jag uttrycka infogande och uppslag?
Det finns ju två olika former av infogande.
- sätt in ett nytt värde och att skriva över är inte tillåtet
- sätt in ett nytt värde och skriv över eventuellt gammalt värde. Detta känns mest rimligt
Uppslag kan göras på flera olika sätt.
- Hämta ett värde och falera om det inte finns
- Hämta ett värde och returnera ett förinställt värde om det inte finns
- Hämta en referens till ett värde och skapa ett förinställt värde om det inte finns
Jag är nog mest inne på att inte ha några förinställda värden och falera uppslag som inte hittar något. Det skulle kunna se ut såhär:
- Kod: Markera allt
var objekt = map()
objekt.set("storlek", 43)
lda #objekt.get("storlek")