Atari XF551 via RS232 mittels winapi unter pb ansprechen

Hardware- und Elektronikbasteleien, Ansteuerung von Schnittstellen und Peripherie.
Fragen zu "Consumer"-Problemen kommen in Offtopic.
Benutzeravatar
Winne
Beiträge: 8
Registriert: 03.08.2006 22:04
Wohnort: Klaus in Vorarlberg

Atari XF551 via RS232 mittels winapi unter pb ansprechen

Beitrag 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
Zuletzt geändert von Winne am 22.08.2006 20:53, insgesamt 2-mal geändert.
meine Tageszeitung http://www.progforum.com/
Benutzeravatar
Proton
Beiträge: 152
Registriert: 20.06.2006 12:21
Wohnort: Eckernförde /Stadtbergen

Beitrag von Proton »

Endlich ist das jemandem gelungen ! :wink:
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag 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
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
Proton
Beiträge: 152
Registriert: 20.06.2006 12:21
Wohnort: Eckernförde /Stadtbergen

Beitrag von Proton »

:mrgreen: C64 im Joystick ! :mrgreen:

Spitze, Falko !! :allright:
Benutzeravatar
Winne
Beiträge: 8
Registriert: 03.08.2006 22:04
Wohnort: Klaus in Vorarlberg

Beitrag von Winne »

@ falko

korrekt es ist ne XF551 es war glaube ich schon spät als ich den Beitrag schrieb :oops:
meine Tageszeitung http://www.progforum.com/
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag 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 <)
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag 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.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Da halten die Disks schon lange.
Die Geräte vielleicht, aber nicht die Datenträger :lol:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten