[abc80] Emulering av 7.8kHz interrupt i ABCWin?

H. Peter Anvin hpa at zytor.com
Tors Jan 19 20:12:40 PST 2017


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