You are not logged in.

Tommy

Unregistered

1

Sunday, May 1st 2005, 10:02pm

Floppy 1541 Probleme bei der Programmierung

Hi Leute,

ich habe ein Programm geschrieben, was die Floppy-Eproms ausliest und in ein File auf der Diskette schreibt (1. Teil des Prg)
Dann soll mit M-W das ganze File wieder zurück in die Floppy-ROMs geschrieben werden.
Ihr werdet fragen, was der Quatsch soll. Ich will die Roms mit einem Ram koppeln, so dass bei Schreibzugriffen in das Ram geschrieben wird. Anschließend möchte ich das Ram auch bei Lesezugriffen einschalten (und damit das Rom ausschalten).

Jetzt zum Programm. Es läuft prima im VICE aber in meinem SX64 bricht es im zweiten Teil ( 200ff) nach einigen Blocks mit Blinken der Floppy ab.

Warum ?
Es gibt doch keine Begrenzung der M-W Schreibbereiche.

Hat einer eine Idee?
Lasst das Programm mal spaßeshalber bei euch laufen.

http://www.boennrep.de/c64/floppy-rw.d64

Fröhn

Master

  • "Fröhn" is male

Posts: 2,180

Date of registration: Jan 5th 2004

Location: Hamburg

  • Send private message

member since 72 month member since 72 month member since 72 month member since 72 month member since 72 month member since 72 month

2

Monday, May 2nd 2005, 9:37am

M-W ist auf 36 Bytes begrenzt, dann ist der Eingabepuffer der 1541 voll. Die meisten Programme übertragen deswegen Daten zum Laufwerk in 32 Byte Blöcken.

x1541

1. Vorsitzender VzEkC e.V.

Posts: 4,055

Date of registration: Nov 24th 2002

  • Send private message

member since 84 month member since 84 month member since 84 month member since 84 month member since 84 month member since 84 month member since 84 month

3

Monday, May 2nd 2005, 9:58am

Quoted

Original von Fröhn
M-W ist auf 36 Bytes begrenzt, dann ist der Eingabepuffer der 1541 voll. Die meisten Programme übertragen deswegen Daten zum Laufwerk in 32 Byte Blöcken.


Richtig. Da das aber umständlich ist, und man normalerweise ja nur in die Pufferbereiche schreibt (z.B. einen Fastloader o.ä.), kann man auch einfach einen Kanal öffnen und dann 256 Byte am Stück schreiben. So hab ich das in meinem 1541 Flasher gemacht, source ist online, falls jemand sehen will wie das geht.
Besucht meine Hardwareprojekte:
http://www.x1541.de


Powered by WWW.VIC-20.DE

www.classic-computing.de
Verein zum Erhalt klassischer Computer e.V.


Fröhn

Master

  • "Fröhn" is male

Posts: 2,180

Date of registration: Jan 5th 2004

Location: Hamburg

  • Send private message

member since 72 month member since 72 month member since 72 month member since 72 month member since 72 month member since 72 month

4

Monday, May 2nd 2005, 10:24am

Umständlich? Wo ist das denn umständlich?

Da du eh Pufferweise schreibst:

LDY #$00
.loop2
LDA $BA
JSR $FFB1
LDA #$6F
JSR $FF93
LDA #"M"
JSR $FFA8
LDA #"-"
JSR $FFA8
LDA #"W"
JSR $FFA8
TYA
JSR $FFA8
LDA #$04
JSR $FFA8
LDA #$20
JSR $FFA8
.loop1
LDA data,Y
JSR $FFA8
INY
TYA
AND #$1F
BNE .loop1
JSR $FFAE
CPY #$00
BNE .loop2

Da braucht man keine Kanäle öffnen.

Tommy

Unregistered

5

Monday, May 2nd 2005, 6:25pm

Damit kein Missverständnis aufkommt:

Ich habe bewusst jeweils nur 32 Byte benutzt.

Das Schreiben mit M-W klappt auch zunächst, nur bricht das Programm nach etlichen Blocks mit einem mir unverständlichen Fehler ab.

Schaut euch doch bitte mal das Listing von der .d64 an (Link im 1. Beitrag)

Gruß
Thomas

Fröhn

Master

  • "Fröhn" is male

Posts: 2,180

Date of registration: Jan 5th 2004

Location: Hamburg

  • Send private message

member since 72 month member since 72 month member since 72 month member since 72 month member since 72 month member since 72 month

6

Tuesday, May 3rd 2005, 6:30pm

Na dann schreibt er wohl in das RAM.

x1541

1. Vorsitzender VzEkC e.V.

Posts: 4,055

Date of registration: Nov 24th 2002

  • Send private message

member since 84 month member since 84 month member since 84 month member since 84 month member since 84 month member since 84 month member since 84 month

7

Tuesday, May 3rd 2005, 9:20pm

Ich hab mir das Listing inzwischen mal angesehen (toll: 170kB d64 runterladen wegen einem 2 Blöcke BASIC PRG). Einmal, bei mir bleibt auch die emulierte Floppy hängen (31, Syntax Error), und dann sind mir schon einige Fehler aufgefallen, die aber nicht den Fehler der Floppy verursachen. Bin auch ein wenig ratlos. Nur mal ein Tipp: schau mal die "M-W" Befehlszeile an, die Du so zusammenkonstruierst. Zuerst ein ; zuwenig, und damit ein CHR$(13) zuviel, und dann am Ende eines zuwenig. Aber wie gesagt, daran liegt es wohl nichtmal ...
Besucht meine Hardwareprojekte:
http://www.x1541.de


Powered by WWW.VIC-20.DE

www.classic-computing.de
Verein zum Erhalt klassischer Computer e.V.


Tommy

Unregistered

8

Thursday, May 5th 2005, 11:53am

Mal was anderes :

Wenn ich das EPROM 23128 mit einem S-RAM 62256 Ram (pin-kompatibel) aufstocke und die OE-Leitungen zwischen beiden Chips umschaltbar mache, sowie die WE-Leitung des Rams mit dem 2116-Ram der Floppy verbinde, sollte man doch erwarten, dass das Eprom (wenn ich es per OE anwähle) normal weiter funktioniert - oder ?

http://www.boennrep.de/c64/ram-adapter.jpg

Seltsamerweise geht dann garnichts mehr (der Floppymotor kommt nicht mehr zum Stehen..)

Hat da jemand Erfahrungen gemacht (x1451?) ?

Gruß
Thomas

This post has been edited 1 times, last edit by "Tommy" (May 5th 2005, 12:06pm)