[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