[abc80] Emulering av 7.8kHz interrupt i ABCWin?

Andreas Gustafsson andreas.gustafsson at gmail.com
Mon Jan 23 14:24:44 PST 2017


Det hade varit suveränt om det gick att lösa!
Har för mig att jag tyckte det såg som uppdateringen låg en rasterlinje
fel, minns ej åt vilket håll.
Jag ska snickra ihop ett referensprogram så att det är tydligt vilket håll
det ska justeras på, och så att man lätt kan se om det funkar eller inte.
Återkommer!

/Andreas

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

> 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>:
>
>> 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/abc8
>> 0/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
>>>>>> > /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
>>>>>> > 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