[abc80] Emulering av 7.8kHz interrupt i ABCWin?

Andreas Gustafsson andreas.gustafsson at gmail.com
Fre Jan 20 14:34:41 PST 2017


Här är en så avskalad variant som möjligt av min irq-ljud-rutin.
På nuvarande ABCWin är det bara tystnad, på en riktig ABC80 får man en
ihållande ton (inte så vacker men ändock...)

Suveränt att du börjat förbättra denna eminenta emulator igen. Får du rätt
på IRQs så ska jag påbörja övertalningsarbetet att fixa hires-timingen
härnäst... ;)

/Andreas


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

> Så, det verkar som att jag bara har stöd för "bitwise"-moden i min
> pio-implementation. Vilket betyder en del knåpande innan allt är på plats.
> Som tur är så är jag lycklig ägare till en kopia av Z80 User's Manual :-)
>
> Var finns ljud2.asm? Och kanske finns det ett färdigt testprogram (.BAC)
> som jag kan köra för att se om det funkar?
>
> PS. Ni är synnerligen onda människor som får mig att ta tag i det här
> igen... ;)
>
> mvh Erik
>
>
>
> On 2017-01-20 09:39, juhasz wrote:
>
> Just det, man ställer om pio:n till att reagera på astb istf en ändring av
> bit 7 på tgbordet. Detta görs i ett litet "paket" av out till pio-porten
> (se ljud2.asm). dessutom måste man stödja registret för interruptadress
> (som normalt är 0x26) som styr vart z80 hoppar vid interrupt. Så det är
> lite pyssel. Bra referenser är
> - ljud2.asm - där ser man inkoppling o även återställning av pio-register
> - Z80 pio datablad
> - listan....
>
> Robert
>
> Skickat från min Samsung Galaxy-smartphone.
>
> -------- Originalmeddelande --------
> Från: "H. Peter Anvin" <hpa at zytor.com> <hpa at zytor.com>
> Datum: 2017-01-20 05:12 (GMT+01:00)
> Till: Erik Isaksson <exon at lysator.liu.se> <exon at lysator.liu.se>, Andreas
> Gustafsson <andreas.gustafsson at gmail.com> <andreas.gustafsson at gmail.com>,
> juhasz <juhasz at abc.se> <juhasz at abc.se>
> Kopia: abc80 <abc80 at abc80.org> <abc80 at abc80.org>
> Rubrik: Re: [abc80] Emulering av 7.8kHz interrupt i ABCWin?
>
> On 01/19/17 13:53, Erik Isaksson wrote:
> > Hm, jag känner att jag behöver lite mer input här. Är det signalen in på
> > /ASTB som åsyftas? Den ser ut att komma från bit 0 i linjeräknaren.
> >
> > Och hur programmeras PIOn för att generera detta interrupt? Är osäker på
> > hur väl jag emulerar den. Samt att påverkas inte tangentbordsfunktionen
> > om man pillar för mycket på den?
>
> Sätt PIO port A till "input" i stället för "bitwise".  Det gör också att
> tangentbordsstoben inte längre generar interrupt, så din drivrutin måste
> kolla om port 56, bit 7 går från 0 -> 1 och hoppa till interruptrutinen
> i BASIC-tolken i stället för att göra RETI, d.v.s. något i den här stilen:
>
>
> interrupt:
> push af
> push hl
>
> ; Your own interrupt code goes here
>
>
> ld a,(last_key)
> xor 0FFh
> ld l,a
> in a,(56)
> ld (last_key),a
> and l
> pop hl
> jp m,keyboard_int
> pop af
> reti
> keyboard_int:
> pop af
> jp basic_keyboard_int
>
> last_key:
> defb 0
>
>
>


More information about the ABC80 mailing list