[abc80] Högupplösningsgrafik på ABC806

Andreas Gustafsson andreas.gustafsson at gmail.com
Tis Jan 23 14:33:43 PST 2018


Tack Ola och Erik!

Med hjälp av port 6 för att mappa in vilket minnesområde jag peta på samt
visa på skärmen, port 35 för att aktivera 32kb-mappningen samt port 7 för
att sätta upp paletten så har jag nu fått igång hires-grafik, funkar fint!
Intressant lösning att den lägger sig ovanpå det vanliga text-grafiken, det
här öppnar upp för skojiga effekter!
Har massor av idéer på vad man skulle kunna göra, men ska försöka hålla mig
lite i skinnet tills jag har en riktig maskin på plats också så att man kan
verifiera allt till 100% :)

/Andreas



2018-01-23 19:22 GMT+01:00 Erik Isaksson <exon at lysator.liu.se>:

> Det finns visst tre olika sätt att komma åt grafikminnet (128k) på 806:
>
> - 30k-blocking: 30k kopplas in på 0x0000--0x7800 vid exekvering av kod på
> adress 0x7800--0x7fff
>
> - 32k-blocking: 32k kopplas in på 0x0000-0x8000 vid aktivering av DART ChB
> DTR
>
> -4k-blocking: godtyckligt 4k-block kan kopplas in på "godtycklig" plats i
> minnet, aktiveras av EME i MISC-registret (out 54,128)
>
> Känns ju som enklaste sättet om man kör från egen assembler är
> 32k-blocking...?
>
>
> mvh Erik
>
>
>
> On 2018-01-23 00:07, H. Peter Anvin wrote:
>
> On 01/22/18 09:50, Andreas Gustafsson wrote:
>>
>>> Ja, nu är jag igång och spammar stackars ABC80-listan igen!
>>>
>>> Nu har jag hyfsad koll på hur textmode/attribut-färger etc. fungerar, och
>>> med Eriks hjälp har jag även lyckats vänta på VSYNC så att mina
>>> uppdateringar sker en gång per frame, vilket man givetvis vill för att få
>>> mjuk och fin animation.
>>>
>>> Nu skulle jag vilja börja leka med hiresgrafiken! Finns den beskriven
>>> någonstans?
>>> Har förstått så mycket som att man kan switcha in block av Video-RAM nere
>>> på 0000->7800 på något sätt, men hittar inte någon dokumentation på hur
>>> man
>>> gör detta (antar att det är någon OUT-port som styr det).
>>> Sedan vill jag även enabla grafikmoden på något sätt, och välja vilken av
>>> de fyra bitmapparna som får plats i VRAMet som ska visas inte heller
>>> detta
>>> har jag hittat hur man gör.
>>> I servicemanualen finns det lite exempel, men de använder bara tråkig
>>> BASIC, jag vill ju koda rätt "to the metal" i assembler!
>>> I värsta fall kanske man kan ge sig på att disassemblera basic-kommando
>>> för
>>> att hitta vad de gör?
>>>
>>> Bit för bit beskriver grafiken för ABC800C/M, men tyvärr inte ABC806 som
>> kom ut senare.  Tyvärr är kretsschemat inte så användbart heller,
>> eftersom ABC806 använde en hel del PAL-kretsar, som då hade blivit
>> tillgängliga.
>>
>> Det finns troligen något i ABC-bladen och/eller ABC-klubbens MSG, och
>> kanske i någon annan manual.  Det kanske går att hitta en manual
>> och/eller simulator som klurat ut det, med, och tracea vad ROMmen
>> faktiskt gör.
>>
>> ABC800C/Ms HR-grafik var rätt annorlunda; den kopplades automatiskt in
>> på 0-16K plus ett PROM på 30-32K om CPUn började köra kod på de senare
>> addresserna (M1 + MREQ användes för att klocka en vippa som lagrade
>> A[15:11] = 01111).  ABC806 hade ju 128K, dock.
>>
>> ABC802 hade RAM på 0-32K som kunde kopplas in via en statussignal från
>> en av SIO-kretsarna (lite som A20 på PC kontrollerades via
>> tangentbordskontrollern.)  Jag vet att det interfacet stöddes också på
>> ABC806, men jag tror också att det gick att kontrollera i finare detalj.
>>
>>         -hpa
>>
>> _______________________________________________
>> ABC80 mailing list
>> ABC80 at abc80.org
>> http://www.abc80.org/mailman/listinfo/abc80
>>
>
> _______________________________________________
> ABC80 mailing list
> ABC80 at abc80.org
> http://www.abc80.org/mailman/listinfo/abc80
>


More information about the ABC80 mailing list