[abc80] Högupplösningsgrafik på ABC806
Robert Juhasz
juhasz at abc.se
Tors Feb 8 07:52:54 PST 2018
filnamn ska vara paddade med space till 8+3 tecken:
DATA.ABS -> DATAssssABS
... där s betecknar ett spacetecken. Jag har för mig att jag testat ladda både råa binärer och abs-filer med dessa funktioner. Tänk också på att ett helt block är 253 bytes...
Robert
Skickat från min Xperia™-smartphone från Sony
---- Andreas Gustafsson skrev ----
>(kan tillägga att jag provat alla kombinationer av filnamn, med och utan
>punkt, med och utan ändelse, stora och små bokstäver etc.)
>
>2018-02-08 16:39 GMT+01:00 Andreas Gustafsson <andreas.gustafsson at gmail.com>
>:
>
>> Har försökt läsa på lite om DOS-funktionerna i Bit för Bit nu, men jag
>> blir inte riktigt klok på hur och vilka jag ska använda.
>>
>> Vad jag vill göra är ju ha filer med "rå" binärdata som jag sedan kan
>> ladda in i minnet, antingen i en klump eller att jag loopar och tar små
>> chunks, det funkar vilket som.
>>
>> Men vad för sorts filer ska jag ha på disken? Kan jag lägga rena
>> rå-binärer där och ladda dem, eller ska jag köra via .abs filer (fast utan
>> att vilja starta dem).
>> För tillfället skapar jag disk-images via abcwrite och kör sedan i ABCWin,
>> men jag vill ju ha en lösning som är kompatibel även sen när jag kommer att
>> köra på riktig hårdvara via ABCBus.
>>
>> Det verkar ju finnas exempelvis 601B "Load" som laddar en ABS-fil.
>> Jag gjorde ett test med denna, skapade en .ABS-fil med lite data som
>> laddas på 0xa000, lade denna som data.abs tillsammans med mitt huvudprogram
>> på en .dsk fil.
>>
>> ORG 0x8000
>>
>>
>> ld de,filename
>> ld b,0
>> ld c,0xff
>> call 0x601b
>>
>> ld hl,0xa000
>> ld de,0x7800
>> ld bc,160
>> ldir
>>
>> inf:
>> jp inf
>>
>> filename:
>> db "DATA.ABS"
>> db 0
>>
>> Funkade inte alls, har provat att pilla lite på b och c parametrarna, men
>> det är ju som sagt mest gissningar.
>>
>> Kanske ABS-loading inte är det bästa sättet att lösa det på alls?
>>
>>
>> Finns det kanske något bra exempelprogram i något gammalt fint arkiv
>> nånstans? :)
>>
>> /Andreas
>>
>> 2018-01-25 16:18 GMT+01:00 Robert Juhasz <juhasz at abc.se>:
>>
>>> jag hade nog läst en sektor i taget o kopierat från dosbuf->vram. Om man
>>> vill läsa o kopiera mindre block finns många lättanvända funktioner i dos.
>>> Kolla sid 80-81 i bit för bit. De funkar också på abc80 med ufddos...
>>>
>>> Robert
>>>
>>> Robert
>>>
>>> Skickat från min Xperia™-smartphone från Sony
>>>
>>>
>>> ---- Andreas Gustafsson skrev ----
>>>
>>>
>>> På tal om att ladda saker - någon som har nåt tips på hur man kan
>>> "multiloada" saker enklast?
>>> Jag vill trycka in flera stycken hires-bilder (30kb styck). Då RAM-minnet
>>> bara är 32kb får man plats med en styck sådan i sitt huvudprogram som man
>>> kan trycka över till VRAM, men sen är det stopp.
>>> Det försök jag gjort är att bygga flera .abs-filer med en bild i varje,
>>> och sedan försöka quitta ut till DOS mellan varje, men det funkar icke.
>>> Alltså min teori var:
>>>
>>> program1.abs:
>>> switcha in VRAM på 0000->7fff
>>> Kopiera bild #1 dit
>>> switcha tillbaka ROM
>>> ret
>>>
>>> program2.abs
>>> switcha in VRAM på 0000->7fff
>>> Kopiera bild #2 dit
>>> switcha tillbaka ROM
>>> ret
>>>
>>> program3.abs
>>> ...
>>>
>>> och sedan till sist har man program5 som kan använda sig av alla bilder,
>>> och så skulle man då från dos bara köra:
>>> program1
>>> program2
>>> program3
>>> program4
>>> program5
>>>
>>> Men när jag exitar program 1 så hänger sig den emulerade 806an. :/
>>>
>>> /Andreas
>>>
>>> 2018-01-25 14:20 GMT+01:00 Robert Juhasz <juhasz at abc.se>:
>>>
>>>> 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
>>>> _______________________________________________
>>>> ABC80 mailing list
>>>> ABC80 at abc80.org
>>>> http://www.abc80.org/mailman/listinfo/abc80
>>>>
>>>
>>>
>>
More information about the ABC80
mailing list