On kyllä melko outo tapa nollata keskeytykset ?!?
$DC0D puoli menee kyllä ihan oikein,,, Mutta
$DC0E taas asetetaan kaikken mahdolliset päälle ainoastaan 50/60hz TOD tilaan ei kosketa ??!
bit 1 CIA timer A (ON) pitääkin olla 1
bit 2 asettaa PB6 pinnin (user-port) lähettämään A laskurin keskeytyksiä ulospäin
bit 3 Timer A output Toggle
bit 4 Timer A Run mode one shot ( A Ajastin keskeytys tehdään vain kerran ja se tarvitsee asettaa sen jälkeen uudelleen)
bit 5 Force load Timer YES ( Nollataan A ajastiin laskuri laskenta aloitetaan alusta )
bit 6 A Ajastin laskee ulkoisia CNT singnaaleja ei ajastimia (user-port shift reg.)
bit 7 CIA asetetaan ulkoisen lähetyksen tilaan (user-port shift reg.)
bit 8 TOD taajuus 50/60hz (PAL koneissa def. 50Hz)
kun asetat keskeytykset ($DC0D) takaisin päälle kaikki seuraavat jutut aktivoituvat :/
jos basicissa $DC0E asettaa tuon $7f =127 (poke56334,127)
aito kone lukkiintuu heti. Kaikki emulaattorit eivät reagoi mitenkään (esim. TC)
Basic jää jumiin näppäimistö rutiiniin odottamaan keskeysten aikaansaamaa näppis toimintaan
mutta keskeytykset eivät ole päällä muutamasta syystä
$dc0e
bit 6 Timer A counts 1=CNT
asettaa laskurin A laskemaan (user-port shift registeri ) ulkoista synkronisointi kellotusta
niitä ei yleensä tule Shift rekisteri on melko tuntematon CIA ominaisuus eikä sitä käytetä oikeastaan mihinkään
aikanaan VIC levari liikenne piti kulkea tämän lävitse mutta 6522;ssa oli valmistus virhe ja se dumpattiin
eikä siihen palattu kuin vasta C128+1571 ulkaisun yhteydessä vaikka vika oli korjattu 6526 myötä
kernaali siis jää odottamaan ulkoista keskeytys lähdettä jota ei tule ( Jumi )
bit 4 Timer A run mode 1= one shot
pakottaa A ajastimen suorittamaan yhden keskeytyksen
jos haluaa lisää pitää bitti 0 asettaa uudelleen jokaisen keskeytyksen jälkeen ( jumi )
bit 2 Timer A output on PB6=1
alkaa syöttämään näppis matriisiin ( ROW 6 )
Ajastin keskeytys A taajuutta sekoittaa näppiksen lukemisen melko hyvin
oletukseni on että tässä on käynyt joku käpy
tekijä on olettanut $DC0E rekisterin toimivan samoin kuin $DC0D
mutta näin ei ole
itse en tuota Stack käynnisystä käytä koska se on melko arvaamaton
ja tila on kortilla helpompi tapa ja systeemi ystavallisempi on kassu puskuri
jota itse usein käytän
keskeytysten kieltämiseen riittää usein pelkästään $DC0E 1 bitin nollaaminen joka lopettaa irq keskeytykset vähän sama kuin SEI komento
$DC0D puoli menee kyllä ihan oikein,,, Mutta
$DC0E taas asetetaan kaikken mahdolliset päälle ainoastaan 50/60hz TOD tilaan ei kosketa ??!
bit 1 CIA timer A (ON) pitääkin olla 1
bit 2 asettaa PB6 pinnin (user-port) lähettämään A laskurin keskeytyksiä ulospäin
bit 3 Timer A output Toggle
bit 4 Timer A Run mode one shot ( A Ajastin keskeytys tehdään vain kerran ja se tarvitsee asettaa sen jälkeen uudelleen)
bit 5 Force load Timer YES ( Nollataan A ajastiin laskuri laskenta aloitetaan alusta )
bit 6 A Ajastin laskee ulkoisia CNT singnaaleja ei ajastimia (user-port shift reg.)
bit 7 CIA asetetaan ulkoisen lähetyksen tilaan (user-port shift reg.)
bit 8 TOD taajuus 50/60hz (PAL koneissa def. 50Hz)
kun asetat keskeytykset ($DC0D) takaisin päälle kaikki seuraavat jutut aktivoituvat :/
jos basicissa $DC0E asettaa tuon $7f =127 (poke56334,127)
aito kone lukkiintuu heti. Kaikki emulaattorit eivät reagoi mitenkään (esim. TC)
Basic jää jumiin näppäimistö rutiiniin odottamaan keskeysten aikaansaamaa näppis toimintaan
mutta keskeytykset eivät ole päällä muutamasta syystä
$dc0e
bit 6 Timer A counts 1=CNT
asettaa laskurin A laskemaan (user-port shift registeri ) ulkoista synkronisointi kellotusta
niitä ei yleensä tule Shift rekisteri on melko tuntematon CIA ominaisuus eikä sitä käytetä oikeastaan mihinkään
aikanaan VIC levari liikenne piti kulkea tämän lävitse mutta 6522;ssa oli valmistus virhe ja se dumpattiin
eikä siihen palattu kuin vasta C128+1571 ulkaisun yhteydessä vaikka vika oli korjattu 6526 myötä
kernaali siis jää odottamaan ulkoista keskeytys lähdettä jota ei tule ( Jumi )
bit 4 Timer A run mode 1= one shot
pakottaa A ajastimen suorittamaan yhden keskeytyksen
jos haluaa lisää pitää bitti 0 asettaa uudelleen jokaisen keskeytyksen jälkeen ( jumi )
bit 2 Timer A output on PB6=1
alkaa syöttämään näppis matriisiin ( ROW 6 )
Ajastin keskeytys A taajuutta sekoittaa näppiksen lukemisen melko hyvin
oletukseni on että tässä on käynyt joku käpy
tekijä on olettanut $DC0E rekisterin toimivan samoin kuin $DC0D
mutta näin ei ole
itse en tuota Stack käynnisystä käytä koska se on melko arvaamaton
ja tila on kortilla helpompi tapa ja systeemi ystavallisempi on kassu puskuri
jota itse usein käytän
keskeytysten kieltämiseen riittää usein pelkästään $DC0E 1 bitin nollaaminen joka lopettaa irq keskeytykset vähän sama kuin SEI komento