-
Aantal items
112 -
Registratiedatum
-
Laatst bezocht
Inhoudstype
Profielen
Forums
Galerij
Kalender
Berichten die geplaatst zijn door HAL9000
-
-
13 hours ago, cancom said:
Er hangt in een "kale" P2000 maar één ding aan de INT\ en dat is die key-interrupt-generator (gecontroleerd door KBIEN\ en LOCK\). BET dus niet!
Dat bit wordt enkel in de gaten gehouden door de cassroutines. Software, niks hardware.
Geen hardware, klopt! Ik had eerder geschreven dat ik vermoedde dat de motor meteen uitgezet zou worden.
Ik had voor de waarde van de out &h44 gelezen en niet &h4, wat @pokowaka schreef.
Bij waarde &h44 wordt de motor wel meteen door de interrupt, als bijwerking van het (weer) aanzetten van KBIEN, uitgezet.
Dat heb ik net even getest.
13 hours ago, cancom said:Een complete M? 2 kasten? Dus met scherm/drives? Maar 2 gaten waar de 5¼ drives ooit gezeten hebben? Jammer dan.
Een floppykaart is niet een "insteek"-kaart maar ingebouwd boven het "moederbord".
2000M: Ik heb een complete set, 2 kasten en in de monitorkast met daarin 2 drives, een stapel floppen en wat kopieën van handleidingen erbij, zie fotootje.
En je hebt gelijk, het is een inbouw- en niet een insteekkaart
-
1 hour ago, cancom said:
heb je dan wel een floppy-controller in je P2000?
Nee, helaas...
Ik heb wel een P2000M staan. Hopelijk is die interface vergelijkbaar met de insteekkaart voor de P2000T...
-
44 minutes ago, cancom said:
Als je persé de MDCR naar de vaantjes wil helpen...
Ik zat als een havik op te letten en heb meteen het deurtje opengedaan, motor bleef draaien zonder dat de tape m tegenhield.
En Pokowaka heeft geen hardware, anders had ik die testjes niet hoeven doen denk ik...
Ik zal eens kijken of er een controller in een van mijn apparaten zit... is dat aan de buitenkant te zien?
-
jouw testjes:
dec hex binair -------------------- print inp(&h20) zonder cassette : 187 0xBB 1011 1011 print inp(&h20) cassette zonder stopje: 171 0xAB 1010 1011 print inp(&h20) cassette met stopje : 163 0xA3 1010 0011 ^ ^ CIP_| |_ WEN
CIP is blijkbaar ook 'inverted', en 0 als er een cassette is en 1 als er geen cassette is.
WEN = 0 als er geschreven kan worden en 1 als dat niet zo is (inverted)
Was dus fout in mijn analyse. Super, weer wat geleerd!
en 10 PRINT peek(&H6010)INP(&H20):GOTO 10 leverde een mooi oplopende eerste waarde en een constante waarde van 163 op voor de tweede
Dat is conform wat we verwachtten op basis van mijn eerdere beschrijving van hoe het clock-bit zich gedraagt.
tot slot, OUT &H10, &H4 spoelt de hele tape terug, en als de tape is teruggespoeld blijft de motor aan (geen EOT detectie actief die de motor uitzet)
Waarschijnlijk komt dit doordat de 0x04 op port 20 ook bit 6, KBIEN, uitzet en daarmee de interrupt.we worden nog weleens wijs!
laatste test:
bij geen cartridge en een tape in de recorder verschijnt er een knipperende 'T' op de bovenste regel.
De tape wordt teruggespoeld, en dan opgestart in een poging de eerste file te laden.
Ik had er een lege tape in gezet, dus er werd niks op tape gevonden
Vervolgens bleef de P2000T eindeloos proberen dat eerste block te vinden met die T bovenin beeld.
-
Wedervraag:
welke bronnen gebruik jij?
en aan allen: Ik zoek documentatie/informatie over de floppy drives die je op de P2000T kon aansluiten...
Mijn P2000T heb ik op de kop getikt zonder drives/floppen
iemand?
-
We zijn elkaar ook al tegengekomen op Circuits Online. Ik wil best wel jouw testjes doen
Ik kan ook alvast wat van mijn eigen bevindingen delen, want ik ben ook aan het uitzoeken hoe de P2000 een data blok van cassette leest.
Hoe het schrijven gaat staat voor daarna op de planning.
Allereerst: de Monitor ROM routines die met de cassette werken zetten de interrupt uit, om te voorkomen dat de interrupt de cassette control lijnen reset.
Wanneer je dus vanuit de prompt of in BASIC de cassette aanstuurt werkt dat ook alleen maar als je de interrupt uitzet...
Tijdens mijn analyses en testjes heb ik kunnen afleiden dat de clock, Bit 6 van inp(&H20), wisselt wanneer een (nieuw) data bit is gelezen en aanwezig is op Bit 7.
Op beide flanken, dus zowel hoog-laag als laag-hoog. Wanneer er geen data op de tape staat (lege tape of gedurende de gaps tussen Markers en Datablokken) wisselt de clock niet.
De cassetteroutine om een block te lezen werkt grofweg als volgt, voor zover ik heb kunnen uitvogelen:
Aanname is dat de cassette of is teruggespoeld, of is gestopt na het lezen of schrijven van een data block. Dan staat de leeskop op een GAP (lege tape) en zou een Marker moeten komen.
een Marker bestaat uit 4 bytes.
- preamble (&HAA of binary 10101010)
- &H00
- &H00
- postamble (&HAA)
De motor wordt gestart, en de code kijkt continu of het clock bit wisselt.
Bij de eerste wissel neemt de code aan dat dit bit 1 is van de preamble van de marker, en gaat na het verwerken van de preamble, door met bytes lezen, tellen en weggooien, tot er in een periode van ~5ms geen bit meer binnen komt.
Dan neemt de code aan dat Marker voorbij is en de volgende Gap bereikt.
Waren er meer of minder dan 3 bytes (nul, nul en postamble) geteld voordat de timeout kwam (kan komen doordat het een Datablock was, of lezen begon middenin een Mark of datablock) dan wordt een nieuwe poging gedaan de Marker te vinden.
Wanneer succesvol een Marker is gelezen dan staat de leeskop (dus) op de Gap tussen Marker en Data, en volgt (als het goed is ) een datablock:
- preamble (&HAA of binary 10101010)
- Header (32 bytes)
- Payload (1024 bytes)
- postamble (&HAA)
Nu wordt weer op een eerste clock flip/data bit gewacht, en (als het goed is) het preamble byte ingelezen en weggegooid.
Meteen daarna worden de header, gevolgd door de data, ingelezen.
Daarna worden weer bytes gelezen, geteld en weggegooid tot er een timeout is op het lezen van het volgende bit.
... Klaar!
Niet helemaal: er volgt nog wat boekhouding om te bepalen of het een valide datablock was en berekend met hoeveel de klokteller moet worden opgehoogd om te corrigeren voor het feit dat de interrupt die niet kon ophogen.
Hoe dat allemaal gaat ben ik momenteel aan het uitzoeken, dus meer details heb ik nog niet.
Ferenc
toevoeging:
dit zijn mijn aantekeningen bij in(0x20):
INPUT port 0x20-0x2f cassette and printer -------------------- bit description 7 RDA Data bit from cassette 6 RDC ReaD Clock (goes High-Low or Low-High when a databit is ready) 5 BET (N) Begin/End of tape signal 1= tape ok, 0 = begin/end 4 CIP Cassette In Position = 1, no cassette = 0 3 WEN (N) Write Enable 1=protected 0=can write 2 STRAP (N) printer type (Daisy/Matrix) 1 READY printer ready connected to printer port pin 20 0 PRI printer data in connected to printer port pin 2
-
Ik heb nog ergens een andere monochrome monitor liggen. Kijken of ik een verloopkabeltje kan maken. Niet zo mooi als een nwe beeldbuis, maar dan kan je wel lezen wat er staat...
-
-
Ja, dat topic had ik ook gevonden, alsnog bedankt voor de hulp.
-
Ik kan die PDF niet vinden bij cancoms profiel. Iemand een tip waar ik moet kijken?
-
De titel zegt het al: bestaat er zoiets?
Ik ken het adresboekje, dat bevat volgens mij meer info over wat welk (systeem) RAM adres voor functie heeft.
Mocht ik in een verkeerd forum zitten dan hoor ik graag waar het wel zou horen!
Philips P2000T
in Games & Consoles
gepost · aangepast door HAL9000
Mooi! dit helpt enorm alles beter te begrijpen...
Ik vond ook nog deze (bijlage)
philips_8920_405_10601_mdcr_sm.pdf