[abc80] Emulering av 7.8kHz interrupt i ABCWin?

Andreas Gustafsson andreas.gustafsson at gmail.com
Sön Jan 22 10:21:15 PST 2017


Nu har jag provkört de olika irq-baserade ljud-grejer jag har under
utveckling, och det verkar fungera bra med alla!
Stort tack, det här är suveränt, nu slipper jag slita ut SD-korts-porten på
min ABCBus! :)

/Andreas

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

> Så, då finns ett första försök att hämta på
>
> http://www.lysator.liu.se/~exon/archive/ABCWin2/ABCWin2-r221.zip
>
> Det låter iaf när jag kör soundirq.bac...
>
> mvh Erik
>
>
>
> On 2017-01-21 00:10, juhasz wrote:
>
> Och här är ljud2
> http://www.devili.iki.fi/pub/Luxor/software/ABC-klubben/
> abc80/musik/ljud2.asm
>
> Fel av mig förresten, man behöver inte nödvändigtvis stödja möjligheten
> att ändra interrupt-adressen i pion, i alla fall inte för ljud2 - som du
> ser ligger den på offset 52 från ljud2:s startadress (HI+52) och det är
> samma som för tangentbordsrutinen. Det enda som ändras är I-registret som
> sätts till HI vid inkoppling och 0 vid urkoppling, och det finns nog redan
> i z80-emuleringen. Däremot vet jag att Basic ii (asmkod/basicii.cod) på
> abc80 ställer om interruptadressen i pion - förmodligen för att får mer
> plats till annat. Så kanske inte så dumt att stödja det ändå - det är ju
> bara ett register...
>
>
> Robert
> Skickat från min Samsung Galaxy-smartphone.
>
> -------- Originalmeddelande --------
> Från: Andreas Gustafsson <andreas.gustafsson at gmail.com>
> <andreas.gustafsson at gmail.com>
> Datum: 2017-01-20 23:34 (GMT+01:00)
> Till: Erik Isaksson <exon at lysator.liu.se> <exon at lysator.liu.se>
> Kopia: juhasz <juhasz at abc.se> <juhasz at abc.se>, "H. Peter Anvin"
> <hpa at zytor.com> <hpa at zytor.com>, abc80 <abc80 at abc80.org> <abc80 at abc80.org>
> Rubrik: Re: SV: Re: [abc80] Emulering av 7.8kHz interrupt i ABCWin?
>
> 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