[abc80] Emulering av 7.8kHz interrupt i ABCWin?

Erik Isaksson exon at lysator.liu.se
Sön Jan 22 09:12:17 PST 2017


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>
> Datum: 2017-01-20 23:34 (GMT+01:00)
> Till: Erik Isaksson <exon at lysator.liu.se>
> Kopia: juhasz <juhasz at abc.se>, "H. Peter Anvin" <hpa at zytor.com>, abc80 
> <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