[abc80] Högupplösningsgrafik på ABC806
Ola Andersson
ola at organ.su.se
Tors Jan 25 05:10:05 PST 2018
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
More information about the ABC80
mailing list