Seite 1 von 2

Atari XF551 via RS232 mittels winapi unter pb ansprechen

Verfasst: 07.08.2006 00:08
von Winne
Geschafft!
Es ist mir gelungen die Atari XF551 über RS232 mittels Winapi unter PB anzusprechen.

Ein Projekt nimmt Formen an, dank PB und seiner Transparenz.
Ziel ist es Ataridisketten als Imagedateien auf die PCFestplatte zu kopieren und dazu das Original Ataridrive XF551 (Drive zum 8bit ATARI130XE) zu verwenden.
Der erste Schritt ist getan der Rest ist Fleiß
Einen 8fach Drivesimulator hatte ich schon vor Jahren unter QBX geschrieben. Leider ging er verloren(HD-Crash)
auf ein Neues!

HW besteht aus aus einem Max 232 + Hühnerfutter
RTS simuliert Commandleitung der des seriellen ATARI-Busses

Code: Alles auswählen


Global com1h.l, DCB1.dcb, a.b, outbuffer.s,inbuffer.s, dummy.l

;********************************************************************************************
Procedure open_port() 
 com1h= CreateFile_("COM1:", #GENERIC_READ | #GENERIC_WRITE,0, 0, #OPEN_EXISTING, 0, 0) 
 If handle = #INVALID_HANDLE_VALUE 
  Debug("Couldn't open serial device!") 
 Else 
  
  ct.COMMTIMEOUTS 
  ct\ReadIntervalTimeout = 0 
  ct\ReadTotalTimeoutMultiplier = 0
  ct\ReadTotalTimeoutConstant = 1000
  ct\WriteTotalTimeoutMultiplier = 0 
  ct\WriteTotalTimeoutConstant = 0 
  SetCommTimeouts_(com1h,@ct) 

  DCB1.dcb 
  DCB1\DCBlength=8 
  DCB1\BaudRate=19200 
               ;BPCDD STOIENR AD2345678901234567 
  DCB1\fbits=  %00000100000001000000000000000000 
  DCB1\wReserved=0 
  DCB1\XonLim=2048 
  DCB1\XoffLim=2048 
  DCB1\ByteSize=8 
  DCB1\Parity=#NOPARITY 
  DCB1\StopBits=#ONESTOPBIT 
  DCB1\XonChar=$11 
  DCB1\XoffChar=$13 
  DCB1\ErrorChar=0 
  DCB1\EofChar=0 
  DCB1\EvtChar=0 
  DCB1\wReserved1=0 
  SetCommState_(com1h,@DCB1) 
  PurgeComm_(com1h,#PURGE_TXCLEAR|#PURGE_RXCLEAR) 
  x.l 
  GetCommMask_(com1h,@x) 
  x=0
  SetCommMask_(com1h, 0) 
    Delay(100) 
 EndIf 
EndProcedure 
;********************************************************************************************
Procedure close_port() 
 CloseHandle_(com1h) 
EndProcedure 
; ********************************************************************************************
Procedure.l uns(b.b)
  l.l
  PokeB(@l,PeekB(@b))
  ProcedureReturn l
EndProcedure 
;********************************************************************************************
Procedure main()
open_port()
outbuffer ="abcdef"
PokeB(@outbuffer+0,49)
PokeB(@outbuffer+1,83)
PokeB(@outbuffer+2,0)
PokeB(@outbuffer+3,0)
PokeB(@outbuffer+4,132)
Debug("*******outbuffer**************")
Debug (Str(uns(PeekB(@outbuffer+0))))
Debug (Str(uns(PeekB(@outbuffer+1))))
Debug (Str(uns(PeekB(@outbuffer+2))))
Debug (Str(uns(PeekB(@outbuffer+3))))
Debug (Str(uns(PeekB(@outbuffer+4))))
Debug("******************************")

EscapeCommFunction_(com1h,#SETRTS)
Delay(1)
WriteFile_(com1h,@outbuffer+0,5,@dummy,#Null)
Delay(20)
EscapeCommFunction_(com1h,#CLRRTS)
Delay(10)



EscapeCommFunction_(com1h,#SETRTS)
Delay(1)


WriteFile_(com1h,@outbuffer+0,5,@dummy,#Null)

;WriteFile_(com1h,@outbuffer+1,1,@dummy,#Null)
;WriteFile_(com1h,@outbuffer+2,1,@dummy,#Null)
;WriteFile_(com1h,@outbuffer+3,1,@dummy,#Null)
;WriteFile_(com1h,@outbuffer+4,1,@dummy,#Null)

inbuffer=".............................."

ReadFile_(com1h,@inbuffer,7,@dummy,#Null)  
EscapeCommFunction_(com1h,#CLRRTS)
Debug("*******inbuffer***************")
Debug (Str(uns(PeekB(@inbuffer+0))))
Debug (Str(uns(PeekB(@inbuffer+1))))
Debug (Str(uns(PeekB(@inbuffer+2))))
Debug (Str(uns(PeekB(@inbuffer+3))))
Debug (Str(uns(PeekB(@inbuffer+4))))
Debug (Str(uns(PeekB(@inbuffer+5))))
Debug (Str(uns(PeekB(@inbuffer+6))))
Debug("******************************")

;Debug (Str(uns(PeekB(@inbuffer+7))))
;Debug (Str(uns(PeekB(@inbuffer+8))))
;Debug (Str(uns(PeekB(@inbuffer+9))))


Delay(35)
Close_port()




;MessageRequester("Information", outbuffer +"gesendet"+Chr(13),inbuffer+"empfangen", #PB_MessageRequester_Ok)
EndProcedure
;********************************************************************************************

main()

End

Verfasst: 07.08.2006 19:59
von Proton
Endlich ist das jemandem gelungen ! :wink:

Verfasst: 07.08.2006 20:55
von ts-soft
Mit vielen mühen hab ich jetzt herausgefunden, es handelt sich um ein
Laufwerkt für einen 8-Bit ATARI. Ich nehme mal an, sowas wie 800xl usw.

Hätte man auch erwähnen können, kennt nicht jeder die
Laufwerksbezeichnung von so alten Geräten :mrgreen:

Verfasst: 08.08.2006 11:45
von Falko
Und wo hast du das gefunden?
Ich konnte nur dieses finden, ein XF551

http://www.atarimagazines.com/v7n2/XF551.html

Und das Bild der Floppy sieht eher nach einer 5 1/4" - Floppy aus.
Das Gehäuse hat ja schon fast Ähnlichkeit mit meiner EX-Atari-Festplatte Megafile 30.

Bekannt waren wohl mehr die 1541-Floppys, die auch mittels Adapter über RS232 am PC eingelesen werden können.

Wer weis, vielleicht wird irgenwann ein 8/16-Bit Atari auch sowas erleben, das man ihn in einen Joystick, in einen Atmel unterbringt und wiederum, wie beim C64, diesen wieder
so umbauen kann, das man Floppys etc. dort anschliessen kann.

http://www.binkino.de/ecbm64DTV4.htm

Verfasst: 08.08.2006 14:29
von Proton
:mrgreen: C64 im Joystick ! :mrgreen:

Spitze, Falko !! :allright:

Verfasst: 08.08.2006 21:58
von Winne
@ falko

korrekt es ist ne XF551 es war glaube ich schon spät als ich den Beitrag schrieb :oops:

Verfasst: 08.08.2006 22:21
von ts-soft
Aber die Lebensdauer von 5,25" Disketten ist doch längst überschritten
:mrgreen:
Kann mir nicht vorstellen, das es da noch viel lesbar ist. Oder werden noch
aktiv bespielt?

Verfasst: 09.08.2006 09:10
von #NULL
>> Aber die Lebensdauer von 5,25" Disketten ist doch längst überschritten
na dann wirds ja erst recht höchste eisenbahn für das programm <)

Verfasst: 09.08.2006 09:24
von Leonhard
ts-soft hat geschrieben:Aber die Lebensdauer von 5,25" Disketten ist doch längst überschritten
:mrgreen:
Kann mir nicht vorstellen, das es da noch viel lesbar ist. Oder werden noch
aktiv bespielt?
Der vorteil an alten geräten ist, das diese sehr schwer zerstörbar sind (ich meine ohne gewalt z.B. ausversehen angetatscht). Da halten die Disks schon lange.

Verfasst: 09.08.2006 09:29
von ts-soft
>> Da halten die Disks schon lange.
Die Geräte vielleicht, aber nicht die Datenträger :lol: