z80andrew / serialdisk Goto Github PK
View Code? Open in Web Editor NEWA virtual Atari ST disk over serial for Windows, Linux and macOS
License: GNU General Public License v3.0
A virtual Atari ST disk over serial for Windows, Linux and macOS
License: GNU General Public License v3.0
The --help
option shows that the default for --logging-level
is Verbose
Yet running the program without the --logging-level
argument defaults to Info
. This needs to be consistent and either the default or the usage message needs to be changed.
Personally I'd prefer it if Verbose
really was the default, but I can live with it either way :)
If Verbose
had been the default I would have spent less time chasing after a ghost serial port error that is most likely due to something else.
Maximum disk size is currently 32MiB, but TOS 1.04+ can support 512MiB with larger sector sizes.
SerialDisk works with 512KiB sector sizes but not with anything larger.
By default, SerialDisk allocates a 32KiB buffer for large (512MiB) hard disk support. This causes conflicts with hard disk driver disk buffers, leading to bus errors.
Additionally, the wording used in SERDISK.CFG is misleading and implies that the disk buffer size should match the virtual disk size being used.
When copying a directory with subdirectories from a TT with TOS 3.06 running ICD Pro to the PC, a null exception is thrown accessing clusterinfo databuffer.
The application will hang after displaying the version number if a folder is not specified. This only affects the self-contained version.
Issue desription
Copying files from Atari to PC outside of PC root folder does not work correctly when using EmuTOS.
Serial communication happens as expected but no file is written to the PC.
Copying files and folders to the Atari works as expected.
Steps to reproduce
Copy a file from the Atari to a non-root folder on the virtual disk.
Expected result
File is written to disk.
Actual result
No file is written.
Test environment 1
Atari STe / 4 MiB RAM / EmuTOS 1.2.1 floppy disk
Test environment 2
Hatari / Atari STe / 4 MiB RAM / EmuTOS 1.2.1 512K ROM
An Atari warm reset reinitialises the disk vectors which causes SerialDisk to stop working.
Investigate how to restore these if a warm reset is detected.
e.g. ".FILENAME" will throw an error during FatAddFile
.
This requires a fix to FAT16Helper.GetShortFileName
.
SerialDisk only allows drive M to be used. User should be able to choose which drive letter is used.
https://www.facebook.com/groups/2260264734/
Connection and directory display working, but file transfers freeze on TOS 1.02 FR.
Determine if there is a compatibility issue with this particular version of TOS, and if so whether a fix can be implemented.
When the Atari is waiting for a response from a PC, the bee icon is displayed and the system is unusable until a valid response is received.
A timeout should occur to return control to the user.
Copying an empty file from Atari to PC transfers correctly, but does not write the file to disk.
I think this is a problem with the following line in Disk.SyncLocalDisk
:
if (String.IsNullOrEmpty(LocalDirectoryContentName) && directoryBuffer[directoryEntryIndex] != 0xe5 && startClusterIndex != 0)
Empty files have a start cluster of 0, and so are not considered ready for writing to disk.
If a directory is renamed, files within it can no longer be accessed because their local directory information properties are not updated in the catalogue.
Use data compression for transmission to reduce transfer times.
LZ4 has a tiny 68k implementation and decompresses fast enough to work transparently to the user.
Nuget packages exist for C# according to https://lz4.github.io/lz4/
I still seem to have this issue with version 2.3.11.0. I try to send some known good files from ST to PC and it crashes after 30 files.
grep "Saving local file" log/serial_port_error.log | wc -l
30
Included: verbose log
serial_port_error.log
Originally posted by @LaurentChardon in #8 (comment)
FatAddDirectoryEntry
does not allow directory sizes to be extended beyond a single cluster, so the maximum number of items is 1024/32 - 2 = 30.
PC -> Atari uses LZ4 compression to send as little data as possible, but there is currently no mechanism for data compression / trimming from Atari -> PC which makes larger disk sizes difficult to use due to the larger sector sizes.
Can the data be compressed or trimmed in any way to mitigate serial transmission speeds?
e.g. stf.18.msa does not load correctly in JAY MSA.
Need to strip / replace all but the last . in each filename reported to TOS.
Specifying a disk size greater than 31 in the application parameters will cause the virtual disk drive to behave incorrectly on the Atari ST. Reading seems to work but writing causes various errors.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.