8-Bit-Nirvana Startseite  
?DIVISION TOO COMPLICATED ERROR IN 36100
[ Home | Index | Werbung | Forum | Flohmarkt | Gästebuch | Links | Info ]

8-Bit-Forum

"Diskzugriff unter Basic" von HighNo
(6.7.2001, 16:50)

(Dieser Artikel wurde 782 mal seit dem 16.10.2001, 22:56 aufgerufen)

Antworten: Re: Diskzugriff unter Basic (Philipp-Maier - Diskettenschlitz.de)

[ Antwort schreiben | Übersicht | Thema ]

Hallo,

ich habe ein für mich mittlerweile nicht mehr durchschaubares Problem:
Ich habe einen PC und einen CBM 720 mit angeschlossener CBM 8050. Ich
habe in Basic ein kleines Terminalprogramm für den 720er geschrieben.
Das funktioniert soweit auch, ich kann mich sogar auf meiner
Linuxkiste seriell (OK, nur mit 2400 bps) einloggen.

Ich habe nun 2 Probleme:
1. Ich kann keine Null-Bytes von der Schnittstelle lesen. Die
"verschwinden" einfach so. Null-Bytes an die Linuxkiste senden klappt
wunderbar.
2. Ich habe versucht, mir eine Dateiübertragung zu schreiben. Die
klappt auch, nur werden die Daten nicht korrekt auf Diskette
geschrieben. Obwohl deutlich größer landen max. 3 Blocks auf der
Diskette - ohne jegliche Fehlermeldung.
Ich hab dabei sogar schon versucht, die Datei in einem Stück zu
schreiben (versucht man ja logischerweise zuerst, dann landet aber nur
ein Block auf Disk), in dieser Version versuch ich nach 255 Bytes die
Datei zu schließen und wieder im APPEND-Modus zu öffnen. Wie gesagt,
es kommt keine Fehlermeldung von Disk aber klappen tuts halt auch
nicht. ICh hoffe auf nen Dummy-Fehler...

Wenn mir da jemand weiterhelfen könnte? Hier noch das Listing:

5 PRINT"PLEASE WAIT WHILE INITIALIZING..."
10 DIM CI(255), IC(255)
20 FOR A=0 TO 255:CI(A)=A:IC(A)=A:NEXT
30 READ A,B
35 IF A=0 THEN 50
40 CI(A)=B:IC(B)=A
45 GOTO 30
50 REM WEITER
70 CH=26+32
80 E$(0)="OFF"
81 E$(1)="ON"
90 OPEN 1,2,11,CHR$(CH)
95 PRINT "*** MINITERM V0.1 ***"
100 REM *** START ***
110 IF A$="" THEN EC=(NOT EC) AND 1:A$="":PRINT "ECHO ";E$(EC);"";
112 IF A$="" AND CH<255 THEN CH=CH+1:CLOSE 1:OPEN 1,2,11,CHR$(CH):PRINT "NEW CHANNEL:";CH;"":A$=""
114 IF A$="" AND CH>0 THEN CH=CH-1:CLOSE 1:OPEN 1,2,11,CHR$(CH):PRINT "NEW CHANNEL:";CH;"":A$=""
116 IF A$="" AND PM<2 THEN PM=(NOT PM) AND 1:A$="":PRINT "PROGRAMM RECEIVE MODE IS NOW ";E$(PM);""
118 IF A$="" THEN DM=(NOT DM) AND 1:A$="":PRINT "HEX DEBUG MODE IS NOW ";E$(DM);""
120 IF A$="" THEN 200
129 IF PM>0 THEN 200
130 GOSUB 1000
140 PRINT#1,B$;
150 IF EC=1 THEN PRINT A$;
200 REM *** DATEN VON RS232 DARSTELLEN ***
210 GET#1,C$
212 IF ZE=0 THEN 215
213 C$=CHR$(ASC(C$)-1)
214 ZE=0:GOTO 220
215 IF C$=CHR$(1) THEN ZE=1:C$=""
220 IF C$="" THEN 300
225 IF DM=1 THEN PRINT ASC(C$);:GOTO 300
227 IF PM>0 THEN 300
230 GOSUB 1100
240 PRINT D$;
300 REM PROGRAMM-EMPFANGSMODUS
301 REM ZUERST PROGRAMMNAME NULLTERMINIERT
302 REM DANN DATEIGROESSE IN KLARTEXT (ASCII 0-9) NULLTERMINIERT
303 REM DANN DIREKT DATENBYTES
304 REM NACH LETZTEM BYTE >1 FUER ENDE ODER 1 FUER WEITERE DATEI
310 IF PM=0 THEN 500
320 ON PM GOTO 330, 340, 340, 340, 370, 450
325 GOSUB 1100
330 IF C$<>"" THEN GOSUB 1100
331 IF C$<>CHR$(2) THEN NA$=NA$+D$:GOTO 500
333 PM=2:NA$=MID$(NA$,2)
334 PRINT "FILENAME IS : ";NA$;""
335 SZ$="":GOTO 500
340 REM NUN DIE GROESSE
344 IF C$=CHR$(2) THEN 348
345 SZ$=SZ$+C$
346 GOTO 500
348 LF=0
349 SZ=VAL(SZ$)
350 OPEN 2,8,1,"0:"+NA$:REM *** DEBUG... PRINT DS$:DIRECTORY
351 PRINT "FILESIZE IS :";SZ;""
352 PM=5
355 GOTO 500
370 REM DATENSTROM
380 PRINT#2,C$;
385 IF (LF AND 31)= 0 THEN PRINT "";LF;"";CHR$(145)
386 IF (LF AND 255)<255 THEN 390
387 CLOSE 2
388 REM *** DEBUG... PRINT LF;" - "; DS$ :DIRECTORY
389 OPEN 2,8,3,"0:"+NA$+",P,A"
390 LF=LF+1
400 IF LF<SZ THEN 500
410 CLOSE 2
420 PM=6
430 PRINT"FILE DOWNLOAD COMPLETE."
435 NA$=""
440 GOTO 500
450 REM NAECHSTE DATEI?
460 IF C$=CHR$(2) THEN PM=1:PRINT "AWAITING NEXT FILE...":GOTO 500
470 PM=0:PRINT "ALL FILES RECEIVED. TURNING OFF RECEIVE MODE."
500 REM UND WEITER
900 GET A$: IF NOT A$="" THEN 100
910 CLOSE 1
920 END
1000 REM *** UMSETZUNG CBM ASCII ZU IBM ASCII
1001 REM EINGABE IN A$, AUSGABE IN B$
1010 B$=CHR$(CI(ASC(A$)))
1099 RETURN
1100 REM *** UMKEHRUNG DER UMSETZUNG CBM ZU IBM
1101 REM EINGABE IN C$, AUSGABE IN D$
1110 D$=CHR$(IC(ASC(C$)))
1199 RETURN
2000 REM *** DATEN FUER ASCII-ANPASSUNG
2001 DATA
193,65,194,66,195,67,196,68,197,69,198,70,199,71,200,72,201,73,202,74,203,75,204,76,205,77
2010 DATA
206,78,207,79,208,80,209,81,210,82,211,83,212,84,213,85,214,86,215,87,216,88,217,89,218,90
2020 DATA 65, 97,66, 98,67,
99,68,100,69,101,70,102,71,103,72,104,73,105,74,106,75,107,76,108,77,109
2030 DATA
78,110,79,111,80,112,81,113,82,114,83,115,84,116,85,117,86,118,87,119,88,120,89,121,90,122
2099 DATA 0,0

(Programmerklärung: Mit "Norm Graph"-Taste wird der Empfang einer
Datei initiiert PM=1! Mit "Home" beendet sich das Programm. Ich hab
leider die Quotes-Version drin, nicht die CHR$(x)-Variante...)


Lesezeichen für diesen Beitrag: del.icio.us del.icio.us Bei Mister Wong speichern Mister Wong Seite bei LinkARENA speichern LinkARENA Digg it Digg Slashdot it Slashdot StumbleUpon StumbleUpon


Antwort schreiben

Hier kannst Du auf die angezeigte Nachricht antworten. Beachte bitte die folgenden Punkte:
  • Dieses Forum befasst sich ausschließlich mit 8-Bit-Computern und Videospielen, Artikel zu anderen Themen sind off-topic und unerwünscht (für Computer mit mehr als 8 Bit gibt es hier aber auch ein eigenes Forum). Wenn der Vorschreiber schon vom Thema abweicht und Du unbedingt antworten möchtest, dann schreibe ihm lieber per e-mail.
  • Schreibe bitte so, dass sich niemand beleidigt oder angegriffen fühlt, auch wenn der Vorschreiber sich bereits im Ton vergriffen haben sollte. Solche Sachen löst man eh besser privat per e-mail.
  • Im Eingabefeld wird der komplette Text zitiert. Kürze die Zitate bitte so weit wie möglich, damit unnötiger Ballast vermieden wird. Hinweise zu richtigem und falschem Quoting findest Du hier: learn.to/quote.
Name:
E-mail:
Betreff:
Antwort:
Klicke bitte das Feld links an, falls Du Antworten auf diese Nachricht auch per E-mail bekommen möchtest.


       

Achtung: "SPAMFALLE" heißt nicht ohne Grund so, keinesfalls benutzen!



Mozilla Sidebar Opera Sidebar RSS 0.91 Newsfeed RSS 2.0 Newsfeed Add to Google Add to MyYahoo Spam Poison
Mozilla Sidebar Opera Sidebar RSS 0.91 Feed RSS 2.0 Feed Add to Google My Yahoo! Spam Poison

[ Index | Werbung | Forum | Flohmarkt | Gästebuch | Links | Info | Impressum/Datenschutz | News | Credits | Webmasters | Seitenanfang ]