[abc80] Emulering av 7.8kHz interrupt i ABCWin?
juhasz
juhasz at abc.se
Fre Jan 20 15:10:46 PST 2017
Och här är ljud2http://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...
RobertSkickat 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>:
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>
Datum: 2017-01-20 05:12 (GMT+01:00)
Till: Erik Isaksson <exon at lysator.liu.se>, Andreas
Gustafsson <andreas.gustafsson at gmail.com>, juhasz
<juhasz at abc.se>
Kopia: abc80 <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