Kijk hier maar eens voor zowel vele artikelen hoe met de MSX apparaten aan te sturen als voor de sources van MSX Connect.
Dit is een mini-artikeltje uit de C.U.C. met asm code hoe je een flipflopje via joystick poort B kan aansturen. Dat moet je op weg helpen, lijkt me, want zelfs ik, als electro-leek, snap 't :P
Wat je bedoelt is MSX-Connect, destijds te koop bij Jostel en geschreven door Ries Vriend. Het maakt gebruik van het Paul te Bokkel RAMdisk systeem om verbinding te maken met de drives van de andere MSX. Deze maakt gebruik van een kabel met exact dezelfde aansluitingen als van F-1 Spirit 3D-Special. Ook het door Ramon van der Winkel geschreven MAD (MSX op Afstand Debugger) gebruikt dezelfde kabel.
A ha , ik ben weer helemaal bij.
En die adressen die ik gaf , nul en generlij waarde????
Dit is een mini-artikeltje uit de C.U.C. met asm code hoe je een flipflopje via joystick poort B kan aansturen. Dat moet je op weg helpen, lijkt me, want zelfs ik, als electro-leek, snap 't
Ziet er eenvoudig uit, ik ben dit nu aan het proberen met een 74HCT74N, maar het lukt mij niet om te flipfloppen.
Ik gebruik wat basic code om de poort hoog of laag te sturen:
10 out&HA0,15:' PSG register 15
20 out&HA1,&B00010011:'stuur pen 6,7 en 8 van poort 1
30 t0=time
40 t1=time:ift1-t0<50then40
50 out&HA1,0
60 t0=time
70 t1=time:ift1-t0<50then70
80 goto 20
Ik meet alleen maar +5V op pennen 6 en 7 en 0V op pen 8. Ook als ik de flipflop aansluit zoals in het artikeltje van Peter Zevenhoven (CUC 33), weigert de flipflop te floppen danwel flippen.
Is mijn poort kapot (joystick werkt trouwens nog wel), of doe ik iets verkeerd?
10 out&HA0,15:' PSG register 15 20 out&HA1,&B00010011:'stuur pen 6,7 en 8 van poort 1 30 t0=time 40 t1=time:ift1-t0<50then40 50 out&HA1,0 60 t0=time 70 t1=time:ift1-t0<50then70 80 goto 20
Hm, zou moeten werken volgens mijn "MSX-Handboek voor gevorderden".
Misschien mis je nog een
45 out &HA0,15
?
Hm, zou moeten werken volgens mijn "MSX-Handboek voor gevorderden".
Misschien mis je nog een
45 out &HA0,15
?
Ja dat lijkt inderdaad toch uit te maken. Voor elke byte die je naar &HA1 schrijft, moet je blijkbaar eerst 15 naar &HA0 sturen.
Als ik de vertraging in het programma weglaat, meet ik op pen 8 een gelijkspanning van 1,8V, wisselspanning (geen idee welke met frequentie(s) mijn goedkope multimeter meet) 3,6 V. Hier lijkt een kloksignaal op te staan. Pennen 6 en 7 doen helemaal niks. Als ik één van de twee
out&HA0,15
's weglaat, dan is deze spanning lager.
Als ik alleen maar eentjes stuur naar bit 5, verdubbelt de spanning. Een klokpuls met de dubbele frekwentie?
Een scope zou wel handig zijn..
Hm, volgens mij heb je meer aan fatsoenlijke documentatie dan aan een scoop
(Bronnen "MSX HAndboek voor gevorderden" par 5.7)
Registers
PSG register 14:
bit 7 cassette input 6 ? iets voor JP MSX? 5 input pin 7 4 input pin 6 3 input pin 4 2 input pin 3 1 input pin 2 0 input pin 1
PSG register 15:
bit 7 KANA LED 6 Poort select (0 = joystick 1, 1 = joystick 2) 5 output pin 8 poort 2 4 output pin 8 poort 1 3 output pin 7 poort 2 2 output pin 6 poort 2 1 output pin 7 poort 1 0 output pin 6 poort 1
Addressering PSG registers
lezen:
OUT &HA0,<register> R = INP(&HA2)
schrijven:
OUT &HA0,<register> OUT &HA1, <waarde>
Pinnen 6 en 7 kunnen zowel geschreven als gelezen worden. Om de pinnen te kunnen lezen, moeten de uitgangssignalen hoog gezet zijn.
Ja dat lijkt inderdaad toch uit te maken. Voor elke byte die je naar &HA1 schrijft, moet je blijkbaar eerst 15 naar &HA0 sturen.Jep.
Als ik de vertraging in het programma weglaat, meet ik op pen 8 een gelijkspanning van 1,8V, wisselspanning (geen idee welke met frequentie(s) mijn goedkope multimeter meet) 3,6 V. Hier lijkt een kloksignaal op te staan.Joh! En dat heeft helemaal niks te maken met 't feit dat je programmaatje die pin afwisselend hoog en laag aanstuurt?
Pennen 6 en 7 doen helemaal niks. Als ik één van de twee out&HA0,15 's weglaat, dan is deze spanning lager.Mja, omdat dan slechts een van de twee andere outs echt iets doet...
Dat krijg je als je elektriciens laat programmeren (no offense, Kanarie
)
Mjah, na wat klooien met de software lijkt ook op pen 6 iets te gebeuren.
Ik doe nu dit:
10 t0=time 20 out&HA0,15 30 out&HA1,&B00010011 40 t1=time:ift1-t0<100then20 50 t0=time 60 out&HA0,15 70 out&HA1,&B00000000 80 t1=time:ift1-t0<100then60 90 goto 10
en er gebeurt warempel iets op pen 6. Hij wisselt tussen +5V en +1,5V. Pen 8 wisselt tussen 0V en 3,5V.
Het lijkt er op neer te komen dat je poortberichten moet blijven sturen om de uitgangen op pen 6/7 voor wat langere tijd laag te trekken / pen 8 hoog te sturen.
Nou de flipflop nog.
Dank Aurora voor je info!
Dat krijg je als je elektriciens laat programmeren (no offense, Kanarie
)
Haha, ik ben niet eens een echte vonkenboer, slechts een mislukte natuurkundige met lichte soldeerneigingen.
Het lijkt er op neer te komen dat je poortberichten moet blijven sturen om de uitgangen op pen 6/7 voor wat langere tijd laag te trekken / pen 8 hoog te sturen.Hm, dan zit de interrupthandler je waarschijnlijk in de weg. Helaas is er in BASIC geen simpele manier om die uit te schakelen, dus ik ben bang dat je aan de ML moet...
Haha, ik ben niet eens een echte vonkenboer, slechts een mislukte natuurkundige met lichte soldeerneigingen.Hm, tja, 'k weet eerlijk gezegd niet wat erger is