www.cavefischer.at/Sharp Pocket Computer
10:POKE &4100,2,0,120,&A8,&70,&EB,&38,55
20:INPUT "0-255:";X
30:POKE &4101,X
40:CALL &4100
50:GOTO 20
Assemblerdarstellung des Maschinenprogramms | |||||||||
&4100: | 002 | 000 | LIA | 0 | Inhalt der Adresse &4101 wird in das A-Register (Akku) übertragen | ||||
&4102: | 120 | &A8 | &70 | CALL | &A870 | Inhalt des A-Registers (Akku) wird mit der Funktion "Device-Select" an den Fo2-Port (Dout) übertragen | |||
&4105: | &EB | &38 | CAL | &B38 | Ports werden zurückgesetzt | ||||
&4107: | 055 | RTN | Rücksprung ins Basic |
// Uebertragung von "Device-Select" und Datenbytes zum Arduino UNO const int OUT_ACK9 = 4; // Pin D4, ACK, pin 9 der 11-pol. Buchsenleiste const int IN_Xout7 = 6; // Pin D6, Xout, pin 7 der 11-pol. Buchsenleiste const int IN_Dout5 = 8; // Pin D8, Dout, pin 5 der 11-pol. Buchsenleiste const int IN_Busy4 = 9; // Pin D9, Busy, pin 4 der 11-pol. Buchsenleiste int DataBit; int DataByte; int i; void setup() { Serial.begin(9600); pinMode(OUT_ACK9, OUTPUT); pinMode(IN_Xout7, INPUT); pinMode(IN_Dout5, INPUT); pinMode(IN_Busy4, INPUT); Serial.println(); Serial.println("Bereit:"); Serial.println(); } void loop() { if (digitalRead(IN_Xout7)) { // Uebertragung von DeviceSelect i = 0; DataByte = 0; do { digitalWrite(OUT_ACK9, HIGH); while (!digitalRead(IN_Busy4)); DataBit = digitalRead(IN_Dout5); digitalWrite(OUT_ACK9, LOW); while (digitalRead(IN_Busy4)); DataByte = DataByte | (DataBit << i); i++; } while (i < 8); while (digitalRead(IN_Xout7)); digitalWrite(OUT_ACK9, HIGH); delayMicroseconds(400); digitalWrite(OUT_ACK9, LOW); Serial.print("DeviceSelect:"); Serial.println(DataByte); } if (digitalRead(IN_Busy4) && !digitalRead(IN_Xout7)) { // Uebertragung eines Datenbytes i = 0; DataByte = 0; do { while (!digitalRead(IN_Busy4)); DataBit = digitalRead(IN_Dout5); digitalWrite(OUT_ACK9, HIGH); while (digitalRead(IN_Busy4)); digitalWrite(OUT_ACK9, LOW); DataByte = DataByte | (DataBit << i); i++; } while (i < 8); Serial.println(DataByte); } } // Ende loop
Pinbelegung | Signalverlauf bei Übertragung des Wertes 15 | ||
---|---|---|---|
Arduino UNO Pin | Name | Sharp PC 11-pol. Schnittstelle |
|
GND | GND | Pin 3 | |
D9 (Input) | Busy | Pin 4 | |
D8 (Input) | Dout | Pin 5 | |
D6 (Input) | Xout | Pin 7 | |
D4 (Output) | ACK | Pin 9 |