[abc80] Emulering av 7.8kHz interrupt i ABCWin?

Erik Isaksson exon at lysator.liu.se
Sön Jan 22 13:35:57 PST 2017


Jag hade stöd för de flesta registren redan, även interrupt-adressen. 
Dock hade jag bara stöd för command-mode (3) eftersom det är det enda 
som körs "normalt". Nu finns även stöd för interruptgenerering i read- 
och write-mode (0 och 1). r/w-mod är dock lite svårare att få till med 
den lösning jag valt. Hoppas ingen behöver den på ett tag :-)

/ E


On 2017-01-22 19:58, juhasz wrote:
> Coolt! Tack för insatsen Erik! Ska nog också ta o leka lite med ljud! 
> Vilken lösning valde du med pio-registren förresten?
>
> Robert
>
>
>
> Skickat från min Samsung Galaxy-smartphone.
>
> -------- Originalmeddelande --------
> Från: Erik Isaksson <exon at lysator.liu.se>
> Datum: 2017-01-22 18:12 (GMT+01:00)
> Till: juhasz <juhasz at abc.se>, Andreas Gustafsson 
> <andreas.gustafsson at gmail.com>
> Kopia: "H. Peter Anvin" <hpa at zytor.com>, abc80 <abc80 at abc80.org>
> Rubrik: Re: SV: Re: SV: Re: [abc80] Emulering av 7.8kHz interrupt i 
> ABCWin?
>
> 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