[abc80] Högupplösningsgrafik på ABC806
Robert Juhasz
juhasz at abc.se
Tors Jan 25 05:20:04 PST 2018
peters abcwrite/abcread/ithabs är finfina verktyg för denna typ av verksamhet! ;)
Om han inte misstycker kan jag dela med mig av windowsbinärer jag gjort av dessa om det finns intresse.....
Robert
Skickat från min Xperia™-smartphone från Sony
---- Ola Andersson skrev ----
>Hur skapar du .dsk-filen?
>Jag gör det manuellt med ABCExplorer, men om jag använder samma filnamn
>på .dsk-filen verkar ABCWin inte märka att jag ändrat nåt (nån sorts
>cachning verkar det som).
>
>On 2018-01-25 13:37, Andreas Gustafsson wrote:
>> När jag kodade för ABC80 hade jag en bat fil som assemblerade, körde en
>> bin -> bac konvertering, kopierade denna fil in en dsk-fil med namnet
>> "a.bac" och startade emulatorn.
>> Då var det bara att köra "run a" för att provköra.
>>
>> Får 806:an har jag nu gått över till .abs-filer istället, så då gör bat
>> filen istället: assembler, bin->abs, kopiera denna fill till a.abs och
>> starta emulatorn.
>> Sedna får jag köra "bye" för att komma till dos och sedan "a" för att
>> starta.
>>
>> Tack för erbjudande om testning, kanske behövs, men prio ett är att få
>> en egen maskin nu när det börjat röra på sig i utvecklingen!
>>
>> /Andreas
>>
>> 2018-01-25 13:10 GMT+01:00 Ola Andersson <ola at organ.su.se
>> <mailto:ola at organ.su.se>>:
>>
>> Ja, det är väldigt bra att ha en bra emulator.
>> Jag har fått till det så att jag kan generera .bac-filer direkt från
>> min utvecklingsmiljö (kör SublimeText 3), men det är ju lite jobb
>> att sen fixa en .dsk-fil i ABCExplorer och sen starta i ABCWin.
>> Om man skulle få önska så vore det nice att kunna skicka in en
>> bac-fil direkt som argument till ABCWin. Eller går det redan?
>>
>> Jag kan testa dina 806-program åt dig tills vidare om du vill.
>>
>>
>> On 2018-01-25 12:45, Andreas Gustafsson wrote:
>>
>> Suveränt att du fortsätter uppdatera emulatorn, den är
>> ovärderlig vid
>> utveckling!
>>
>> Jag tror nästan att jag ska ta och vänta in att jag får tag på
>> en riktig
>> 806a nu innan jag experimenterar vidare, känns som det vore bra
>> att ha den
>> och provköra och verifiera på allteftersom. Jag kommer säkert
>> stöta på
>> massor med problem, 99% kommer vara jag som klantat till det och
>> 1% kommer
>> kanske vara att det är något som saknas i emulatorn, så för att
>> undvika att
>> rapportera massa falska issues vill jag kunna testa själv först!
>>
>> /Andreas
>>
>> 2018-01-24 20:47 GMT+01:00 Erik Isaksson <exon at lysator.liu.se
>> <mailto:exon at lysator.liu.se>>:
>>
>> Jaha, ser man på, där hittade du en brist i
>> implementationen. Jag har
>> visst gjort ett ful-hack som ignorerar adressen och bara
>> räknar upp
>> palette-indexet för varje skrivning :-( Funkar ok så länge
>> man bara
>> använder BASICens FGCTL som alltid skriver alla 16 register...
>>
>> Fixar, om du inte tänker hitta något mer när du ändå håller
>> på :-)
>>
>> mvh Erik
>>
>> On 2018-01-24 16:04, Andreas Gustafsson wrote:
>>
>> Riktigt trevlig dokumentation ser det ut att bli, tummen upp!
>>
>> När det gäller palett-register så tolkade jag också
>> servicemanual-texten
>> så som du skrev, men jag var tveksam för jag har inte läst
>> tidigare något
>> om att out (c) på z80 skulle ta hänsyn till b-registret, men
>> det kanske är
>> så.
>> Dock verkar det inte fungera, för följande kod:
>>
>> ld b,0
>> ld c,7
>> ld a,0x00
>> out (c),a
>>
>> ld b,1
>> ld c,7
>> ld a,0x77
>> out (c),a
>>
>> Ger *inte* samma resultat som:
>>
>> ld b,1
>> ld c,7
>> ld a,0x77
>> out (c),a
>>
>> ld b,0
>> ld c,7
>> ld a,0x00
>> out (c),a
>>
>> Dvs. i bägge fallen vill jag sätta färg 0 till svart och 1
>> till vit, det
>> enda som skiljer är ordningen vilken jag gör det i.
>> Men i de nedre fallet verkar färg 0 bli vit, precis som om
>> b-registret
>> ignorerades.
>>
>> /Andreas
>>
>>
>>
>> 2018-01-24 15:43 GMT+01:00 Erik Isaksson
>> <exon at lysator.liu.se <mailto:exon at lysator.liu.se>>:
>>
>> Man måste använda instruktionen OUT (C), r som också
>> lägger ut
>> B-registret på de höga adressbitarna och används för att
>> välja register.
>>
>> Jag håller precis på att dokumentera funktionen i
>> emulatorn, och kommit
>> ungefär så här långt:
>>
>>
>> Hi-Res Graphics
>>
>> 512x240 pixels, 2 bits/pixel, gives 30kBytes.
>>
>>
>>
>> Visible 32k-page selected by HRC-reg bits 3—0, active
>> 32k-page selected
>> by HRC-reg bits 7—4.
>>
>>
>>
>> Bit
>>
>> 7
>>
>> 6
>>
>> 5
>>
>> 4
>>
>> 3
>>
>> 2
>>
>> 1
>>
>> 0
>>
>> Page
>>
>> Active Page 0—15
>>
>> Visible Page 0—15
>>
>>
>>
>> HRC-reg written using OUT 6,<val>.
>>
>>
>>
>> Each nibble of video memory serves as an index into the
>> palette
>> registers, which gives 4-bit color values for two pixels.
>>
>>
>>
>> Bit
>>
>> 7
>>
>> 6
>>
>> 5
>>
>> 4
>>
>> 3
>>
>> 2
>>
>> 1
>>
>> 0
>>
>> Pixels
>>
>> 0-1
>>
>> 2-3
>>
>>
>>
>> Palette registers 0—15:
>>
>>
>>
>> Bit
>>
>> 7
>>
>> 6
>>
>> 5
>>
>> 4
>>
>> 3
>>
>> 2
>>
>> 1
>>
>> 0
>>
>> Color
>>
>> P
>>
>> B
>>
>> G
>>
>> R
>>
>> P
>>
>> B
>>
>> G
>>
>> R
>>
>> Pixel
>>
>> 0
>>
>> 1
>>
>>
>>
>> Palette registers are written using LD B,<idx>; LD C,7;
>> LD r,<val>, OUT
>> (C),r
>>
>>
>>
>> 128k of Video Unit Memory (VUMEM) is available through
>> one of three
>> mechanisms: 4k, 30k, or 32k paging.
>> 4k-paging
>>
>> Enabled by EME-bit in MISC-reg.
>>
>>
>> 30k-paging
>>
>> Enabled by executing code from 7800h—8000h (HR-opt).
>> Active page
>> available at 0000h—7800h.
>>
>>
>> 32k-paging
>>
>> Enabled by DART chB DTR. Active page available at
>> 0000h—8000h.
>>
>>
>> mvh Erik
>>
>>
>> On 2018-01-24 13:01, Andreas Gustafsson wrote:
>>
>> Inser nu att jag nog inte riktigt förstått mig på
>> palett-systemet, jag
>> kan sätta upp färgerna genom att skicka saker till port
>> 7, men hur väljer
>> man *vilket* av de 16 palette-entryna man vill påverka?
>> Servicemanualen börjar nämna lite om det på sida 122 men
>> hänvisar sedan
>> "(se teknisk beskr.)" och någon sådan hittar jag inte!
>>
>> 2018-01-23 23:46 GMT+01:00 Erik Isaksson
>> <exon at lysator.liu.se <mailto:exon at lysator.liu.se>>:
>>
>> Kul att det rör på sig! Jag hoppas jag har fått rätt
>> funktion på sakerna
>> i emulatorn, bra om du kan verifiera med en riktig
>> maskin om jag gjort rätt
>> :-)
>>
>> Bit 3 (P) i palettvärdet bestämmer väl dessutom om
>> text eller grafik ska
>> synas givet en viss färg; börjar man blanda borde
>> det bli riktigt
>> psykedeliskt!
>>
>>
>> / E
>>
>> On 2018-01-23 23:33, Andreas Gustafsson wrote:
>>
>> 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 <mailto: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 <mailto:ABC80 at abc80.org>
>> http://www.abc80.org/mailman/listinfo/abc80
>> <http://www.abc80.org/mailman/listinfo/abc80>
>>
>>
>> _______________________________________________
>> ABC80 mailing list
>> ABC80 at abc80.org <mailto:ABC80 at abc80.org>
>> http://www.abc80.org/mailman/listinfo/abc80
>> <http://www.abc80.org/mailman/listinfo/abc80>
>>
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> ABC80 mailing list
>> ABC80 at abc80.org <mailto:ABC80 at abc80.org>
>> http://www.abc80.org/mailman/listinfo/abc80
>> <http://www.abc80.org/mailman/listinfo/abc80>
>>
>>
>>
>> --
>> Ola Andersson
>> Organisk Kemi
>> Stockholms Universitet
>> 08-163743
>> _______________________________________________
>> ABC80 mailing list
>> ABC80 at abc80.org <mailto:ABC80 at abc80.org>
>> http://www.abc80.org/mailman/listinfo/abc80
>> <http://www.abc80.org/mailman/listinfo/abc80>
>>
>>
>
>
>--
>Ola Andersson
>Organisk Kemi
>Stockholms Universitet
>08-163743
>_______________________________________________
>ABC80 mailing list
>ABC80 at abc80.org
>http://www.abc80.org/mailman/listinfo/abc80
More information about the ABC80
mailing list