Byte in aktuelle Datei schreiben ($cfb7)
[Diese Routine wird immer dann aufgerufen, wenn Daten ueber den seriellen
Bus an das Diskettenlaufwerk gesendet werden. Dabei ist es egal, ob es
sich um:
- Daten fuer eine Datei, oder
- den Filenamen der Datei, oder um
- Diskettenkommandos
handelt. In den beiden letzten Faellen wird das Befehlsmodus-Flag gesetzt.
Dadurch wird nach der Uebertragung der Befehl automatisch analysiert bzw.
die Datei geoeffnet (s.$8004).]
Einsprung von $AED3:
8E78: A5 53 LDA $53 SA vom BUS
8E7A: 29 8F AND #$8F b7=1: SA oeffnen ? oder
8E7C: C9 0F CMP #$0F Byte in Kommandokanal schreiben ?
8E7E: B0 19 BCS $8E99 ja, ==>
Einsprung von $8E76:
8E80: 20 5F 90 JSR $905F aktuellen Filetyp holen
8E83: B0 05 BCS $8E8A Rel-Datei oder Direktzugriff, ==>
8E85: A5 54 LDA $54 empfangenes Byte holen
8E87: 4C 12 91 JMP $9112 Byte in die Datei schreiben
Einsprung von $8E83:
8E8A: D0 03 BNE $8E8F REL-Datei ?
8E8C: 4C 33 A0 JMP $A033 ja, Byte in Record schreiben
Einsprung von $8E8A:
8E8F: A5 54 LDA $54 Byte holen
8E91: 20 B1 8E JSR $8EB1 Byte in Puffer schreiben
8E94: A4 50 LDY $50
8E96: 4C 4A 93 JMP $934A naechstes Byte zur Ausgabe bereitstellen
Einsprung von $8E7E, $8E74:
8E99: A9 05 LDA #$05 Kommando-Kanalnumer setzen
8E9B: 85 50 STA $50
8E9D: 20 42 94 JSR $9442 Pufferzeiger holen
8EA0: C9 2A CMP #$2A Puffer voll ?
8EA2: F0 05 BEQ $8EA9 ja, ==>
8EA4: A5 54 LDA $54 empfangenes Byte holen und
8EA6: 20 B1 8E JSR $8EB1 in (Kommando-) Puffer schreiben
Einsprung von $8EA2:
8EA9: A5 51 LDA $51 EOI-Flag testen
8EAB: F0 01 BEQ $8EAE Datenende, ==>
8EAD: 60 RTS
Einsprung von $8EAB:
8EAE: E6 7B INC $7B Befehlsmodus-Flag setzen
8EB0: 60 RTS
Previous Page / Next Page