Jump to content
IGNORED

FileLoader "!" - for tape in 1 block


xxl

Recommended Posts

file loader for .cas - like old "!" loader.

two versions:
1. a regular fileloader in 1 block (no pause required - it can load a binary file immediately) also does not give a specific buzzer signal. This is probably the only one-block binary loader for a tape recorder.
2. similarly to the above, 3 block additionally can decompress ZX0 compressed files on the fly. Even this version is two blocks shorter than the old "!"

 

On a standard tape recorder and standard speed, the Feud will now start after 9:32 instead of 15:41 (6 minutes earlier) of course, these are tests, I would ask you to check it on real equipment - unfortunately I do not have a tape recorder and I do not know if it really works ?

 

I don't use the CIO but the jump table, thanks to which I was able to fit the loader in one block.

FEUD-cex.cas Gremlins1block.cas

Edited by xxl
  • Like 1
Link to comment
Share on other sites

Thumbs up.

Something I would like to include in TS and XEX2CAS, with permission, of course.

One observation: The one-block loader doesn't stop the motor before doing an INIT jump. Is that intentional?

Edited by baktra
  • Like 1
Link to comment
Share on other sites

6 hours ago, baktra said:

Something I would like to include in TS and XEX2CAS, with permission, of course.

of course add, it will be nice.

 

6 hours ago, baktra said:

The one-block loader doesn't stop the motor before doing an INIT jump. Is that intentional?

I didn't think about it ? the 3 sector version already has it ?... now ? new version in attachment

 

 

example is Landscape, originally loading time 10:35

here the cex version loads at 4:50 ? more than half the time !!!

Landscape-cex.cas

  • Like 3
Link to comment
Share on other sites

14 minutes ago, x=usr(1536) said:

Have to admit: I don't believe that I know what the "!" loader is.  Been trying to Google it, but I'm having no luck.  Could someone clue me in, please?

Back in 1982, a company called Nudmehi Software created a utility that allowed to copy a DOS 2 binary load file from disk to cassette and named it Boot Cassette Maker. In order to do so, they had to develop a tape version of the 'BINARY LOAD' function, normally available only for disk. And so they did. However, they used dirty programming practices. While their loader worked perfectly with Atari 400/800, it somehow glitched on Atari XL/XE (but still was working). The result of the glitch was an exclamation mark appearing on screen. Hence the "!" loader. The loader was then regularly stolen and embedded in various disk to tape convertors and became prolific. Later, it even made it to the cross-platform utilities such as the original version of XEX2CAS for MS-DOS.

 

Now a patched version exists, which doesn't glitch. It can be also replaced with open-source TSCBL or STDBLOAD 2a.

  • Like 2
Link to comment
Share on other sites

19 minutes ago, baktra said:

Back in 1982, a company called Nudmehi Software created a utility that allowed to copy a DOS 2 binary load file from disk to cassette and named it Boot Cassette Maker. In order to do so, they had to develop a tape version of the 'BINARY LOAD' function, normally available only for disk. And so they did. However, they used dirty programming practices. While their loader worked perfectly with Atari 400/800, it somehow glitched on Atari XL/XE (but still was working). The result of the glitch was an exclamation mark appearing on screen. Hence the "!" loader. The loader was then regularly stolen and embedded in various disk to tape convertors and became prolific. Later, it even made it to the cross-platform utilities such as the original version of XEX2CAS for MS-DOS.

 

Now a patched version exists, which doesn't glitch. It can be also replaced with open-source TSCBL or STDBLOAD 2a.

OK, I think I vaguely remember this now - the "!" on the screen sounds slightly familiar.  Thanks for the explanation.

Link to comment
Share on other sites

the famous "!" appears because the screen is cleared in 400/800, but in XL/XE it is another address, that's why it appears.

765 169 125     LDA #125   ; CLEAR SCREEN
767 32  164 246 JSR PRINT  ; $F6A4

Mapping the XL/XE

Quote

Many 400/800 programs made direct jumps to keyboard ‘get’ and ‘put’ routines rather than through the proper vectors, which makes them incompatible with XL/XE machines. The get routines in the XL/XE begin at 62026 ($F24A). This was 63038 ($F63E) in the 800. The put routines begin at 62128 ($F2B0). or 63140 ($F6A4) in the 800. If you have a program which won’t work on your XL/XE, try finding if it uses these locations and change them.

  • Like 2
Link to comment
Share on other sites

On 4/1/2021 at 1:45 AM, baktra said:

Back in 1982, a company called Nudmehi Software created a utility that allowed to copy a DOS 2 binary load file from disk to cassette and named it Boot Cassette Maker. In order to do so, they had to develop a tape version of the 'BINARY LOAD' function, normally available only for disk. And so they did. However, they used dirty programming practices. While their loader worked perfectly with Atari 400/800, it somehow glitched on Atari XL/XE (but still was working). The result of the glitch was an exclamation mark appearing on screen. Hence the "!" loader. The loader was then regularly stolen and embedded in various disk to tape convertors and became prolific. Later, it even made it to the cross-platform utilities such as the original version of XEX2CAS for MS-DOS.

 

Now a patched version exists, which doesn't glitch. It can be also replaced with open-source TSCBL or STDBLOAD 2a.

 

 

Hi

 

Last year we made this article on Boot Cassette Maker on Atariware, please use the following link to check the Google Translate version of that article:

 

https://translate.google.com/translate?sl=es&tl=en&u=https://www.atariware.cl/wiki/Programas/NudmehiBCM

 

Kind regards,

 

Luis.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

On 3/31/2021 at 11:55 PM, xxl said:

of course add, it will be nice.

 

I didn't think about it ? the 3 sector version already has it ?... now ? new version in attachment

 

 

example is Landscape, originally loading time 10:35

here the cex version loads at 4:50 ? more than half the time !!!

Landscape-cex.cas 15.08 kB · 16 downloads

Thanks! I tried on NTSC emulation, and it hangs at 4:33 aprox. Maybe it needs a larger IRG there.

Link to comment
Share on other sites

I've started working on incorporation of the 1-block loader to Turgen System. The binary loader selection offered by the Standard plugin was just binary - either the all-mighty "TSCBL" or "No loader". Now one will be able to select from a list. The work will need some refinements, but the plugin, playlist item and binary convertors for the Wizard are ready.

35444104_obrzek_2021-04-08_103436.png.b1a1972c837cef208bc66cc8328c1d9a.png

 

One remaining question is, how to name the 1-block loader. I use a provisional name "SuperMini", but the final decision is up to xxl.

 

As for the hybrid binary files, I would like to support them too. It will be a new conversion type for the Standard Plugin named 'Hybrid binary file'.

But I will need to create a parser for the hybrid binary files. Without parser, IRGs after blocks that hold INIT segments cannot be elongated, and that is a crucial functionality.

 

  • Like 2
Link to comment
Share on other sites

Out of curiosity and by no means being unfriendly : why should we care these days about tape bootloaders and CAS / WAV file generation? Is there really anyone left in the world who would use a tape to load e.g. games on the Atari 8bit?

 

To this day I remember that I as a kid had really mixed feelings (to say it in nice words) rgd. tapes. To me it always always a big pain in the a*s. Boot times were horrific, commercial budget tape games often had quality issues ("Boot Errors"), copying tape games to disk was sometimes close to impossible, time consuming and frustrating. 

 

I had only a short period of being an "Atari 8bit tape-only user" and it was terrible. The day my grandfather upgraded his 1050 to XF551 was my day-1 to become a true Atari user, because I got his 1050 :) Finally I was a first class Atari citizen :)

 

grüße,

\thomas

Edited by twh/f2
Link to comment
Share on other sites

6 minutes ago, twh/f2 said:

Out of curiosity and by no means being unfriendly : why should we care these days about tape bootloaders and CAS / WAV file generation? Is there really anyone left in the world who would use a tape to load e.g. games on the Atari 8bit?

 

To this day I remember that I as a kid had really mixed feelings (to say it in nice words) rgd. tapes. To me it always always a big pain in the a*s. Boot times were horrific, commercial budget tape games often had quality issues ("Boot Errors"), copying tape games to disk was sometimes close to impossible, time consuming and frustrating. 

 

I had only a short period of being an "Atari 8bit tape-only user" and it was terrible. The day my grandfather upgraded his 1050 to XF551 was my day-1 to become a true Atari user, because I got his 1050 :) Finally I was a first class Atari citizen :)

 

grüße,

\thomas

That is obviously a valid question. Active users of cassettes are very scarce in 2021, I am aware of that.

 

On the other hand...

- In years 2017-2019 I've personally recorded and sold around 40 freshly recorded tapes with games.

- The Laura commercial tape version was prepared with Turgen System or XEX2CAS.

- I still get a request here and there to record selected games to tape.

- I am in area where almost everyone has their data recorder upgraded to support at least 2270 bps, which makes tapes a bit more appealing.

- As physical media, new cassettes are easy to obtain compared to 5 1/4 DD disks. Although I consider cartridges to be the best medium for physical releases in 2021.

- I have fun

  • Like 1
Link to comment
Share on other sites

I've pushed updated TS to the repository. Turgen.jar can be downloaded and placed to the current TS installation.

If the data recorder I've on hand is working, I might be able to conduct some tests with real hw. The one that is for sure working is not within my reach for now - Covid.

Link to comment
Share on other sites

1 hour ago, twh/f2 said:

why should we care these days about tape bootloaders and CAS / WAV file generation?

to this day there are releases on cassettes ? the one at the bottom is ultra rare.


It's true that the Atari xc is not the best device (poor as hell) - that's why hardware turbo or software systems like hybrid loaders have appeared to reduce the loading time.


does it make sense? same as stamp collection: D.

20210408_131224.jpg

  • Like 2
Link to comment
Share on other sites

1 hour ago, twh/f2 said:

Out of curiosity and by no means being unfriendly : why should we care these days about tape bootloaders and CAS / WAV file generation? Is there really anyone left in the world who would use a tape to load e.g. games on the Atari 8bit?

Aber sicher ? Yes definitely

Link to comment
Share on other sites

3 hours ago, twh/f2 said:

Out of curiosity and by no means being unfriendly : why should we care these days about tape bootloaders and CAS / WAV file generation?

CAS/WAV is a means of preserving cassette software in something approaching its original format, so it is *extremely* important - especially as 40-year-old cassettes continue to degrade and become unrecoverable.  As for the bootloaders, people like to work on them and they make tape usage better - so why not? :-D

3 hours ago, twh/f2 said:

Is there really anyone left in the world who would use a tape to load e.g. games on the Atari 8bit?

Yes.  From a purely practical standpoint, a cassette drive is a great way to test that SIO (amongst other things) works.  This is especially true if you're testing a newly-acquired machine with less than 48K of RAM.

 

Also, those of us with FujiNets or similar can load cassette images via the device.  Granted, that's not the same as hooking up a physical drive and using a tape made from the image, but it still gives the same experience in terms of loading.

 

As an example: I've been playing a fair amount of Spindizzy lately.  I'll set the FujiNet loading the .cas image, then do something else for the 10 minutes or so while it's loading.  The reason that I do this is that the game takes long enough to load that I'm less likely to switch over to playing something else out of frustration and more likely to try to get better at it.

  • Like 2
Link to comment
Share on other sites

12 hours ago, twh/f2 said:

Out of curiosity and by no means being unfriendly : why should we care these days about tape bootloaders and CAS / WAV file generation? Is there really anyone left in the world who would use a tape to load e.g. games on the Atari 8bit?

 

Yes, me!  ;-) But only for the transfer process to disk and testing various C-Simulators...

I am loading A8 game tapes via JVC tapedeck and record them with a Pioneer CD-Recorder. Then I playback the CD while the CD-Recorder is connected (via tape-adapter) with the 1010 and finally save the data onto an A8 diskette. (The CD can later be used to create WAV and CAS files on the PC, allthough I personally never use WAV or CAS.) There are easier ways to do that, but I simply like using my Hifi system, the way I did in the 80s and 90s.

 

  • Like 4
Link to comment
Share on other sites

6 hours ago, Wilheim said:

 have you considered adding an error correction routine on your loader? Maybe it could be an interesting feature.

yes i did some tests as well ...

firstly, the method: I see two relatively easy ones - the first is that when the loaded record has a bad checksum, the user receives the information to rewind the tape by one or two records and continue loading, the method requires interaction with the user, the second method is that we want to be 100% sure that the program will be loaded even with 25% damage !!! in fact, 5% is enough (Reed-Solomon error correction) - this method unfortunately has two drawbacks - the first is decoding requires a double record buffer, the record decoding time requires an extension of the interval between records - this can of course be compensated by the compression method used within the record limits (small effectiveness) or within the limits of the program (requires a buffer), it can also be improved using e.g. compression with an external dictionary (I performed tests for LZ4 where the external dictionary was the computer's ROM and the effect was satisfactory but the problem is that a different rom in the computer means that decoding is impossible) ... generally, both methods have considerable disadvantages :/

I keep thinking about the one used in Buldoger Copy, but testing it on the emulator seems impossible to me - like rewinding the tape by a few seconds? (I find it quite tempting because we will also get a record counter for free ;-))

Edited by xxl
  • Like 1
Link to comment
Share on other sites

I still use and love cassettes. As a child I grew up with tapes in the UK as I never obtained a 1050 until many years later. For me tapes provide me with the nostalgia and takes me back to the 80s and waiting for a game to load. I know I can instantly load any games I choose now with the many modern options of which I have many of them but where's the fun in that?

 

@baktra I still use your Turgen system today and I believe helped you sort out the Rambit turbo option of which I still have my 1010 with this turbo upgrade and still works today.

  • Like 1
Link to comment
Share on other sites

4 hours ago, xxl said:

I keep thinking about the one used in Buldoger Copy, but testing it on the emulator seems impossible to me - like rewinding the tape by a few seconds? (I find it quite tempting because we will also get a record counter for free ;-))


Maybe this code would be helpful:

 

https://github.com/a8dogdark/atari/blob/master/dogdark/super_ultra/2.6/LOAD1.asm

 

The error correction routine starts at line 56.

 

  • Like 1
Link to comment
Share on other sites

6 hours ago, xxl said:

firstly, the method: I see two relatively easy ones - the first is that when the loaded record has a bad checksum, the user receives the information to rewind the tape by one or two records and continue loading

Funnily enough, I recently ran across a tape loader that does exactly this when it hits an error.  Only found it because it appears as though the tape dump may have an error in it, which triggered the error trap routine that prompts the user to rewind 3 revolutions of the cassette and try again.

 

Details are in this post; I've added the same attachment to this post for reference.

Koala-prisma.CAS

  • Like 2
Link to comment
Share on other sites

11 hours ago, Wilheim said:

Maybe this code would be helpful:

thanks ? I will take a look at it ?

 

8 hours ago, x=usr(1536) said:

Only found it because it appears as though the tape dump may have an error in it, which triggered the error trap routine that prompts the user to rewind 3 revolutions of the cassette and try again.

it's a pity that this idea wasn't popular 35 years ago ... the trauma has remained until today enough that there is xc12 in the room and I start creeping up like a cat.

  • Like 3
  • Haha 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...