[abc80] Emulering av 7.8kHz interrupt i ABCWin?

Erik Isaksson exon at lysator.liu.se
Mon Jan 23 14:01:37 PST 2017


Ingen orsak. Hur var det nu med hires-timingen då? Det kanske också går 
att fixa ganska lätt...

mvh Erik

On 2017-01-22 19:21, Andreas Gustafsson wrote:
> 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 
> <mailto: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
>     <http://www.lysator.liu.se/%7Eexon/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
>>     <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>
>>     <mailto:andreas.gustafsson at gmail.com>
>>     Datum: 2017-01-20 23:34 (GMT+01:00)
>>     Till: Erik Isaksson <exon at lysator.liu.se>
>>     <mailto:exon at lysator.liu.se>
>>     Kopia: juhasz <juhasz at abc.se> <mailto:juhasz at abc.se>, "H. Peter
>>     Anvin" <hpa at zytor.com> <mailto:hpa at zytor.com>, abc80
>>     <abc80 at abc80.org> <mailto: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
>>     <mailto: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> <mailto:hpa at zytor.com>
>>>         Datum: 2017-01-20 05:12 (GMT+01:00)
>>>         Till: Erik Isaksson <exon at lysator.liu.se>
>>>         <mailto:exon at lysator.liu.se>, Andreas Gustafsson
>>>         <andreas.gustafsson at gmail.com>
>>>         <mailto:andreas.gustafsson at gmail.com>, juhasz
>>>         <juhasz at abc.se> <mailto:juhasz at abc.se>
>>>         Kopia: abc80 <abc80 at abc80.org> <mailto: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