CosmosEx – updates

Main app – 2017-04-13
- some fixes to CE STiNG – by nanard
- code refactoring (clean up, less polling, …) – by nanard
- fix / improvement for longer transfers than 1 MB
- extended key joystick functionality – see this for info: — by mikro
- toggle USB Keyboard exclusive access with RCTRL+RALT+LALT+LCTRL – by nanard
- disable auto login in console, disable ctrl+alt+delete restart of RPi

Hans – 2017-04-13
- support for longer transfers than 1 MB

Franz – 2017-04-13
- detection if RPi communicates, and if not, doing IKBD passthrough to ST instead of sending it to RPI

Main app – 2017-01-03
- added setting core_freq=250 into /boot/config.txt – this fixes communication issues between RPi 3 and CE on Raspbian. After successful update leave the device on for a minute, turn it off, wait 5 seconds, turn it on, and run the CE_TSTHD.TOS – option ‘D’ or ‘C’ to check if the transfers are now OK.
- fix for bad compare sign in script

Main app – 2016-12-29
- improved network hostname saving on Raspbian, also network settings saving
- CE_TSTHD has now more options to test hard drive interface, shows more stuff
- CE_DD.PRG has been refactored – by nanard
- install script added for ffmpeg, code merged for mp3 playback – by nanard

Hans – 2016-12-29
- timeout for reading to SD card extended from 0.5 second to 3 seconds
- added some commands, which are used by CE_TSTHD – for detecting SD card inserted, retrieving SD error count for reading and writing

Main app – 2016-12-20
- fixed script for yocto – wasn’t stopping the app
- disabled update through linux ce_conf and web ce_conf
- CE_TSTHD.TOS now contains some SD card write/read test

Hans – 2016-12-20
- timeout for writing to SD card extended from 0.5 second to 3 seconds to avoid data loss when all that’s needed is to wait

Main App – 2016-12-13
- HDD images support added, acting as RAW drives when attached – by nanard
- fix for using bad ACSI ID for SD card when used together with RAW drive – by nanard
- not mounting nfs share when network not availale – by tIn
- improvement on setting static IP on Raspbian, needs more testing (possibly also fixing)
- network (ethernet and wifi) now restarted only when something has changed in settings (to avoid unnecessary restart of network)
- config drive PRGs now moved to subdirs DRIVERS, TEST and other stayed in root of config drive
- some config tools zip, scripts zip and test floppy are now not generated but just extracted from app update – to speed up and simplify first start after update

Main App – 2016-11-30
- CE_TSTHD.PRG now contains stress test – test which doesn’t validate data, just checks if the ACSI/SCSI command succeeded, does this as fast as possible
- CE_CONF.PRG shows fake but detailed update progress when doing update – to help users to know that the update is still running – you will see this on the next update, as your current update will be through your old CE_CONF.PRG
- fix for clearing a bit in sector number when accessing USB RAW drives – this could lead to data corruption – fix by nanard
- USB drives will now show their volume name on desktop and CE_MOUNT.PRG when it’s set – nice feature by nanard
- minor improvements in config console – Enter key on edit line is now used for moving to next config item
- SSID in network config is now longer – if your network SSID is too long to fit in the old one – fix by MiKRO

Xilinx 2 SCSI – 2016-11-30
- fix for SCSI bus getting stuck after some SCSI commands, sometimes – please run CE_TSTHD.PRG – continous read test and data validity check test to see if it’s better now

Main App – 2016-11-09
- this is the first Raspbian release – contains also app for Yocto, should auto-detect your linux distro and use the right app
- added allowing only single instance of linux app to be running – to avoid more apps talking to CE HW at the same time
- various fixes for Raspbian
- file and directory attributes on FAT USB drives – by nanard
- your Raspberry Pi revision / type and linux distro is now shown in Config -> Update

Main App – 2016-04-24
- status page added into web interface of CosmosEx – now you can see if your chips are communicating, if your ST is communicating, what TOS drive letters are used by what, what floppy images are inserted and which is selected, and other info
- fix for config screen breaking sometimes when accessed through web interface – by tIn
- fix for zip dirs broken when zip filename contained spaces – by nanard
- the device name on ACSI / SCSI bus now shows also device type (RAW, CEDD) – by nanard
- refactoring of mounting of USB media and shared folders – by nanard
- other minor code changes (nanard, jookie)

Main App – 2016-04-12
- added generating and serving fake Pexec() RAW image for purpose of avoid manual Pexec() code, replaced with simpler fake image of the PRG that wants to be runned
- fix for translated drives being unusable, when ZIP DIRs were turned off – by tIn
- fix for having spaces in network mount folder and username / password – by nanard
- workaround for TOS 1.06 bug in setting mid resolution, by nanard
- fix for not reading whole wifi SSID and PSK, if it was more than one word (had spaces)
- other stuff, which is not visible to users (cosmetic changes in code, fixes and improvements to linux side of STiNG driver, and so on)

CE_DD, from that Main App 2016-04-12
- custom Pexec() and Pterm() were replaced with just serving the fake RAW image, so now TOS does all the Pexec() and Pterm() stuff himself.
This should help with issues when running some apps, and drivers / TSR (terminate and stay resident) should now work better.
Due to this major change you also might find some issues when running some apps, so report if you find anything.

Main App – 2016-02-16
- fixed an app crash on download / upload of floppy image from native drive (SD card)
- added the ‘ikbdlogs’ app argument, so recompilation is not needed for ikbd log enabling
- changes in web IF for Screenshots and some Screenshots handling from web IF – by tIn

Main App – 2016-02-06:
- web interface – overlay animation shown after uploading floppy image to notify user about image being processed
- config tool in linux console and web interface – fix for often screen corruption, now it’s better (100% good in linux console, 95% good through web interface)
- CE_CONF.PRG, CE_DD.PRG, config tools as MSA floppy image and .tar.gz archive can now be downloaded through the welcome screen of web interface
- config tools MSA image and test image can now be inserted into floppy slot #1 using a button in the floppy page of web interface
- screenshot interface added to web interface, but there’s still some bug in the screenshot code on ST in VBL, not usable at this moment
- your whole config can be donwloaded through web interface on Home / Debug page, or sent directly to me through config tool (on Other page)
- few fixes to translated drive, based on the results of my filesystem test (native drive thtough TOS vs. translated drive)
- fix to Fseek(.., .., SEEK_CUR), which prevented Flipo Demo to work from translated drive
- some code changes, fixes, improvements, so some things might work better, and I might have broken a couple of things, so report anything suspicious
- added recovery actions – 5 seconds long press of front button – insert config image into floppy slot #1. 10 seconds long press – delete all settings, set network to DHCP. 15 seconds long press – revert to first firmware (which might not support this recovery actions)
- added to config drive: HD interface test (ce_tsthd.prg), FDD interface test (ce_tstfd.prg), GEMDOS filesystem functions test (tst_fsys.prg)
- ZIP DIRs added – now you can open ZIP files as directories on translated drives, when they are smaller than 5 MB. Unpacking takes a while, so during that time the ST gets stuck and waits for unpacking. Watch for a symbol in the top left corner of the screen when entering ZIP DIR for the first time. Might be still buggy.

CE_DD, from that Main App 2016-02-06:
- SCSI support added
- few fixes which might have caused crashes
- fixes / improvements related to the filesystem test
- fix for Fseek(.., .., SEEK_CUR) – this never worked correctly before, now it does. Flipo Demo which uses this now works.
- added waiting before success of Dsetpath() when main app is still trying to open ZIP DIR (and it’s unpacking that zip file)

Hans – 2016-01-08:
- SCSI code added, so with the right hardware it behaves as ACSI or SCSI
- added recovery actions on long front button press
- together with the newest Xilinx firmware it might have fixed the cold boot issue on some machines, needs user verification to pronounce this definitely true :)

Franz – 2016-01-17:
- fix for getting sometimes corrupted data on floppy read, when ST was trying to read data too soon after seek – this happened with custom FDC routines, it was fine with TOS Floprd() function as it probably did some retries. This fixed the running of game Magic Pocket from Fuzion CD 87, and probably some other games.

Main App – 2015-05-08:
- if you boot from config drive where the generated DESKTOP.INF is, you can now specify your required desktop screen resolution – in Config -> Others -> Screen res

CE_DD and bootsector – 2015-05-08:
- added a small delay with text before and after installing CE_DD in RAM, during which you can press a key to boot that drive letter (e.g. ‘A’ for floppy — useful for running games)
- added Mfree() when the CE_DD is not installed in RAM (either by pressed ALT or a boot drive letter) – without this around 65 kB of RAM was lost even when you didn’t let the CE_DD install in RAM, and some games then crashed with bombs (e.g. Missile Command)

Main App – 2015-05-02:
- main app can (and will) update scripts in other directories, so any user will have newest scripts (which are used for update and other stuff)
- update process now relying on calling the scripts instead creating the scripts
- the created DESKTOP.INF in the config drive now has info about opening .ST and .MSA images, so when you double-click on those files, it should launch CE_FDD.TTP from config drive and aically upload the image
- fix for joystick button not working in North vs South – joystick 1 button press reporting fixed when mouse is in relative reporting state
- fix for mouse buttons not working in Cannon Fodder – added ‘report mouse clicks as keys’ code (this feature was missing and is used in Cannon Fodder)

Main App – 2015-04-25:
- setting of timezone added, also some fixes related to timezone – now your UTC offset (which you set in config -> other -> UTC offset) affects the shown time of your files of translated drives
- added generating of DESKTOP.INF / NEWDESK.INF depending on your current setup (e.g. if your config drive is G, it should show desktop containing that icon after reset).
- fix for not creating directory from desktop on TT – by ggn/kua

Linux image update
Due to some things changed in Raspberry Pi B+ the previous linux image causes that the USB and LAN on Raspberry Pi B+ doesn’t start. If you are using CosmosEx device with RPi B+ (4 USB ports instead of just 2), you can verify that it’s your situation by plugging in USB keyboard to USB port of RPi, power on the device, wait ~25 seconds to make sure linux has booted, and if you press Num Lock / Caps Lock and the Num Lock / Caps Lock LEDs won’t turn, then your setup is also affected.

MainApp – 2015-04-08:
- code added for STiNG networking support, still needs a bit of work to make it fully usable
- some things changed as a preparation for future SCSI extension
- made fixes to IKDB code related to absolute mouse coordinates configuration and reporting – it didn’t work well and caused issues (e.g. in Lemmings)

Hans – 2015-03-25:
- solo mode added – with newer HW (made in 2015) CosmosEx can work without Raspberry Pi as just a hard drive replacement using a SD card – just like SatanDisk or UltraSatan
- added retrieving HW version and interface type from XILINX – this is a preparation for future SCSI extension

XILINX – 2015-03-25:
- added state for retrieving the HW version and interface type – this is a preparation for future SCSI extension

Hans – 2015-01-02:
- added retrying on initialization of SD card reading, which could fail and result in whole read to fail
- added timeout checking on some endless loops where the code could hang (e.g. when the previous SD card reading start failed), and this could make Hans hang until next restart of device (or main app)
- added some emptying of internal SD card buffer after init of SD card, without which it might have resulted in the 1st read / write operation to fail after hot swap of SD card

Franz – 2014-12-21:
- step limiting enabled to avoid one step too soon after another – this could fix some reported floppy issues, there were some sector read issues (in up to 5% of reads, on some machines – was working fine on my STFM, had 5% problematic reads on my STE)
- track request limiting raised to minimum 10 ms of no-step-time before sending request (lowers bus load)

MainApp – 2014-12-21:
- added remount of shared drive when network becomes available, also added missing new line char on wifi config – by tIn/absence

CE_DD (contained within Main App) – 2014-12-02:
- fix for missing data when read / written from / to translated drive on TT – by ggn/KUA
- fix for a crash on handling XBRA stuff – fix by tIn/absence
- FLOCK checking before setting added to avoid clash with other ACSI drivers

MainApp – 2014-11-26:
- floppy image upload through web interface – by tIn/absence
- config console through web interface – by tIn/absence
- forcing disk change on floppy image selection change, or floppy image upload

Franz – 2014-11-26:
- forced retrieving of new track on disk change

MainApp – 2014-11-12:
- added support for CE_CONF running directly on Raspberry Pi – after update to this version you can run the /ce/ script on Raspberry Pi (e.g. through ssh) to see the same config console as from your Atari ST
- format of CE_DD boot drive changed – each sector now contains checksum, has to be used with the newest boot sector (included in this update)

CE_DD boot sector (.bs) (contained within Main App):
- now when loading the CE_DD, the checksum is verified and if it’s bad, the sector is reloaded – this is a workaround for communication issues with TOS 1.00 machines, which resulted in 4 bombs after ‘CEDD boot loader’ message

CE_DD (contained within Main App):
- fix for Fread() and Fwrite() for TT, when trying to read / write to TT RAM, which is not accessible for DMA chip – done by ggn / KUA

MainApp – 2014-10-26:
- fix for accessing USB media in RAW mode above 2GB limit – this caused integer overflow in lseek(), it was replaced with lseek64() but that didn’t work, so finally replaced with _llseek()
- fix for SIGSEGV when closing Main App and disconnecting USB media

MainApp – 2014-10-18:
- fix for bad shortening of long file extensions on translated drives, when two similar extensions of two files (e.g. config.vcproj and config.vcproj.Aragorn.Jean.user) would result in the same short file name replacement (CONFIG.VCP)
- support for showing linux terminal in config added
- in ACSI ID config the ‘tran’ has been renamed to ‘ce_dd’ to lesser confusion – now it tells that this is only for booting the CE_DD driver, not for the access to translated drives

CE_DD (contained within Main App):
- fix for recursive file copying – used when copying in TOS, this resulted in some files missing in some specific cases when you copied directories from one translated drive

CE_CONF (contained within Main App):
- you can now see the linux terminal after you press F8 (press it again to return to normal config) – this is here just for problem solving cases, don’t use it too much – it’s far from good terminal emulation (e.g. you can’t quit an app by pressing CTRL+C)

MainApp – 2014-10-07:
- removing the ‘.\’ (current dir symbol) from start of the path if the ST specifies this – this caused some issues
- in case of failed mount of shared drive or USB drive the log files (MOUNT.LOG and MOUNT.ERR) visible instead of the original content now contain at least some title string – TOS 1.02 didn’t like showing empty files (it showed never ending garbage), TOS 1.06 had no issues with that, so added this just in case ;)
- fix for Fsfirst() – added code to reuse some buffer (find storage) if it was allocated before instead of trying to use new one – this caused files to disappear from the drive after some program run from translated drive, refresh was needed to see the files again, now it should be OK (reproduced and fixed on Mega STE & TOS 2.05)

Hans – 2014-10-02:
- this should fix the cold boot issue – when you turn on your ST, it won’t boot from CosmosEx and you needed a reset. This seems to fix the issue, tested with 2 different devices. The only difference between this and previous version is that the optimization has been changed from -o3 to -o2, and optimization for time has been turned off – I’m not sure if it was too fast for the DMA chip after power on, or there is something wrong with the highest level of compiler optimization…

MainApp – 2014-09-27:

- passwords in config will now be shown as asterisks (shared drive password, wifi password)

- some other functionality added for CE_DD when reading files

- protocol version is sent to CE_DD for the correct protocol version pairing – the CE_DD will not get installed if the Main App has a different translated disk protocol version (will not work yet with older CE_DD, but you will notice this in the future with the newer CE_DD)) – to force people to update the CE_DD which they load from SD card or other hard drive rather then from the CosmosEx device it self

CE_DD – 2014-09-26:
- protocol version checking added – this has to match the required protocol version of Main App, otherwise the driver won’t be installed (it shows a message about protocol version mismatch)

- fix / code added for cases when file is being read, and the app requests much more data than there is in the file, which could lead to data corruption up to 15 bytes after the actual end of file in memory

MainApp – 2014-09-24:

- fix for returning ‘.’ and ‘..’ on Fsfirst() / Fsnext() even when the request wasn’t about searching for dirs – by ggn / Kua

- fix for corrupting bytes after the last valid data of file, when end of file was hit by Fread() – by ggn / Kua

- now mounting USB media as translated / raw according to settings in config -> Translated disk -> Mount USB media as (aic mount depending on type of partitions removed)

- translation of non-standard ASCII chars (chars with diacritics) to standard ones added (e.g. German U umlaut) – was causing problems on copying, dir creation, and so on

MainApp – 2014-09-16:
- support for nested Fsfirst() / Fsnext() calls – this fixes issue with missing files when copying from translated to native drive in TOS (copying from native to translated drive was working OK even before, copying using Kobold worked even before in both directions) – I’ve spent almost a week with this :( (no good documentation on the nesting of Fsfirst() / Fsnext() )

- saving of DNS moved to CosmosEx settings, so now it should keep the DNS settings (when using static network settings) even after the device power off and on cycle

CE_DD – 2014-09-16:
- support for nested Fsfirst() / Fsnext() calls — works with the laters MainApp. If you’re running CE_DD from floppy or native drive, be sure to update it with the newest version from your config drive.

Main App – 2014-09-12:
- new feature by tIn/absence. – web server added to the main app, so the device web is accessible through the device IP address – using some browser (Chrome recommended)

- new feature by tIn/absence. – with this is related remote control web – handling keyboard, mouse and ST screen display in Chrome. The screen showing is now bit slow, but can be configured (CE_CONF -> Other -> Screencast frameskip
To have the screen forwarding from ST to remote control web, you have to start CE_CAST.PRG (located in Config drive), but you have to start it from non-translated drive (e.g. from SD card or floppy) – due to some issues when combined with translated driver (has to be fixed). Please also consider this as experimental feature – if you do some data transfers (copying data here and there, saving some data from app), do not use screencast – please prefer safety before features.

- joysticks have been swapped – now the 1st attached joystick appears as JOY 1, and 2nd attached joystick appears as JOY0 – this is probably the order which games expect. The behaviour can be reverted using CE_CONFIG.PRG -> Other -> Attach 1st joy as JOY0 (checkbox)

- when you change the timesync options (CE_CONFIG.PRG -> Other -> Update time from internet), this should now force time synchronisation from internet again

- added equal signs (‘=’) when saving wpa_supplicant.conf – the format was bad for wlan (wifi) configuration, but not all issues with wifi are solved yet

- resursive delete on non-empty directories added to translated disk – before this fix you couldn’t delete a non-empty directory from TOS

CE_DD – 2014-09-12 (this translated driver is included in the MainApp):
- fix for bad Fread() – when doing Fread() on specific number of bytes and when stored to odd address in ST RAM there was some data missing (data corruption). This should be now OK

Main App – 2014-08-25:
- fix for not responding for a while after ACSI request of odd length (e.g. SCSI INQUIRY with length of 15 bytes)
- a button added in config screen: Others -> Reset all setting — this will delete all your CosmosEx settings from device and you will end up with default settings
- there’s a new CE_CONF.PRG, and together with this version of Main App (and later) it will show you message ‘CosmosEx device is updating’ instead of ‘Communication with CosmosEx failed’ when the update is (probably) running – you won’t see this new behaviour in this update though, but in the next one
- a new tool has been added – CE_FDD.TTP – the only argument is a path to floppy image, which it will upload to currently selected image slot (or to slot 1 if no slot is selected), after which you need only reset your ST to start the game / demo from that slot (should work with drag and drop on TOS 2.06)

Hans – 2014-08-25:
- fix for not handling SCSI WRITE 10 command, which resulted in errors when trying to partition the SD card with capacity above 1 GB (there was a small copy&paste mistake – I had there SCSI_C_WRITE6 twice instead of having SCSI_C_WRITE6 and SCSI_C_WRITE10) – tested with HDDRIVER 9 and ICD Pro, both partitioned a 4 GB card without error now

Franz – 2014-08-25:
- now toggling also the WRITE_PROTECT signal when floppy image is changed, but my test utility doesn’t show any difference when asking about media change (it doesn’t notice the change even with the real floppy), so if anyone can test this (or help me with better test util), then go on. Please notice that due to some protocol stuff it takes around 2 to 3 seconds now to toggle the WRITE_PROTECT signal, so please wait a bit after pressing the image change button when testing this… Other thing is that from documentation it seems that TOS also reads floppy serial number when it isn’t sure if the media was changed and checks the previous serial number, and I’ve noticed that many Automation images have the same serial number (77 B9 90) – I could change the serial numbers to random values on the fly to improve the media change detection, but I’m afraid that this might misbehave in some situations (on some special floppy bootsectors where something other is stored there or when the serial number is checked for some purpose)

Hans & Main App – 2014-08-12:

- the update of Hans should solve the cold boot issue of SD card (that you had to do a couple of ST resets to boot from the SD card). The whole issue is related to hot swap feature – the device was reporting to the driver that the media (SD card) was changed on the start up, and that prevented the ST to boot from SD cart until this unit attention state was cleared. The problem is that this reporting of media change is done in a way that the new drivers know (HDDRIVER and ICD Pro) so they handle the situation (so running HDDRIVER / HDDRUTIL / ICD Pro would get the device from ‘media changed’ state to the normal usable state), but the TOS booting process doesn’t know anything about that, it just tries to read the sectors from the SD card and fails (and the ‘error’ is: dude, the media has changed, ok?). So now when the SD card is inserted when the device is turned on, it won’t report the first (initial) media change. Please test this and report if the behavior of SD card got better.

- the update of Main App is just some feature added which will be used later.

Main App – 2014-08-10:

- PrgFlags on all apps in config drive are now off – the current versions of these apps don’t like TT ram, I’m not sure if DMA transfer can work with TT ram (if I remember correctly, then it doesn’t), so that’s why :)

- fix for truncating files when doing Fopen with S_WRITE, which is used for modifying content of file – this caused that when you used some app (e.g. PrgFlags.PRG) which only modified existing file, the file then became empty (this issue appears only on TRANSLATED drives, native drives weren’t affected).

- fix for not saving floppy image files with name (or saving them with empty name) on native drives when using ce_fdd.prg – there was an extra backslash added when constructing saving path (e.g. C:\GAMES\\A000.ST) so TOS decided to use empty filename ;)

- fix for not mounting USB key as translated when the key didn’t contain any partitions (no /dev/sda1, /dev/sda2) but just the whole key was a single partition (just /dev/sda)

Also note that there was a link added to CosmosEx download page to update file for update from USB key ( ) and also a short manual about that ( ) – that update file will be updated on every new update :) (herp de derp…)

Main App – 2014-07-28:

- fix for not mounting USB drives (simple mistake when checking if the translated / raw mode is enabled)

- added ‘ce_mounts.prg’ tool to config drive – it shows you on what drive letter you have what drive, also pressing letters ‘C’ to ‘P’ unmounts the drive – if you use USB removable drive, then you should do this to avoid data loss (this does sync and umount)

- update from USB added to ce_config.prg, the update files will then be on my web-page somewhere (link later)

Main App & Franz – 2014-07-27:

- fix for bad behavior of original mouse when forwarded through injector and moving fast – happened on Mega ST, didn’t happen on sandwich STFM.

- fix for the network not starting problem - CosmosEx didn’t save ‘auto eth0′ to /etc/network/interfaces, this caused linux not to start eth0 aically — big thanks to Mark Fechtner (TinTzi) for finding the issue!, also moved wpa (wifi) configuration to separate config file. The network not starting happens when you save the configuration with the older version of app – that will overwrite the original config file with which it worked…

- added username and password to ‘shared drive configuration’ - now you can specify the credentials if you don’t like public sharing of your data on the network, this should also fix issue with Windows 8 sharing, as it didn’t work with empty / wrong username and password (this is not tested, I don’t have any Win 8 around).

Comments are closed.