CSL Cart...

Talk about programming CreatiVision (except games programming). Projects of homebrew hardware are also welcome.
User avatar
MADrigal
Site Admin
Posts: 1021
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: CSL Cart...

Post by MADrigal » Thu Dec 31, 2015 5:35 pm

Some good news and some bad news

First of all, I tried to BSAVE $0000,$fff but nothing happened. I suspect that BSAVE command does not allow to save a certain area of RAM (e.g. the lower area?), or doesn't save big amounts of data. Any hints?

BSAVing $C000,$1000 works (the Manager sends data to the tape recorder) without any issues. It takes about 1 minute to save.

Unfortunately (the bad news) my laptop has multi-purpose in/out audio jack that is stereo speakers output and microphone input in a single plug.

This is totally uncompatible with the Salora Manager audio cable, or any other male-male stereo cable I have.

I bought a few male and female jacks today, and a few wires. Unfortunately my solderer is totally inadequate for the purpose so I couldn't build a new "split" audio cable.

I will bring my Manager to my friend who owns a desktop PC with regular audio input jacks shortly.

One last good news: the floppy interface works flawlessly, as my two floppy disk drives. I was able to format a DS/DD floppy diskette, save and load multiple files.

The previously mentioned syntax "LOAD XXX.XX" is wrong. You simply SAVE"A" and LOAD"A" without any extension, but with brackets.

The following screenshot shows the behaviour of the Manager when a floppy interface is connected, a floppy disk drive is powered, and a formatted diskette is inside.

If a blank floppy diskette is inserted, a I/O ERROR message is prompted

If a formatted diskette is inserted (when the Manager boots), the DIR command is executed automatically.

In the screenshot you can see a previously saved "A" program in the diskette. I load the program, list it and save it as "B". The program is saved regularly.
You do not have the required permissions to view the files attached to this post.
User avatar
MADrigal
Site Admin
Posts: 1021
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: CSL Cart...

Post by MADrigal » Fri Jan 01, 2016 1:09 pm

Good news (maybe)

I was able to manufacture a new audio cable and connect my laptop microphone input to the Salora Manager audio/cassette output.

I saved BSAVE $0000,$ffff and I confirm that it doesnt work. It saves an almost empty audio file.

Then I saved:
BSAVE $0000,$4000 (0-16K)
BSAVE $4000,$4000 (16K-32K)
BSAVE $8000,$4000 (32K-48K)
BSAVE $C000,$4000 (48K-64K)

The saved WAV files are quite odd. The volume seems to go up and down without any pattern. I am not familiar with the BSAVE format so I really have no clue if the dumps are good or bad.

However, all files (incl the faulty $0000,$ffff) are available on WAV file (44KHz, mono) at

http://www.madrigaldesign.it/madrigal/s ... amdump.zip (approx 20 Mb)

*** PLEASE CONFIRM IF THE DUMPS ARE GOOD ASAP! ***

I am very short in time, so I can't guarantee that I could make new attempts in the next days. So PLEASE give me feedback ASAP. Thanks :)
User avatar
MADrigal
Site Admin
Posts: 1021
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: CSL Cart...

Post by MADrigal » Fri Jan 01, 2016 1:18 pm

Tested the following commands and they work fine

RUN "FILENAME" (same as CRUN for cassettes)
LOAD "FILENAME" (same as CLOAD for cassettes)
SAVE "FILENAME" (same as CSAVE for cassettes)
UNSAVE "FILENAME" (deletes the file)
FORMAT
RENAME "FILENAME","FILENAME"
PROTECT "FILENAME" (file can't be deleted via UNSAVE)
UNPROTECT "FILENAME"

-> NOTE: filename is case sensitive ("Abc" <> "ABC")

-> NOTE: LOAD with wrong filename prompts "FILE NOT EXIST"

-> NOTE: Msave prompts SYNTAX ERROR (tried with several parameters). I assume Mload is wrong, too.

-> NOTE: When a file is protected, the DIR shows "*B FILENAME" (that is with an asterisk before B). A non protected file is listed as " B FILENAME" with a blank space before B.

-> NOTE: when attepting to delete (UNSAVE) a protected file, an error message is displayed: FILE PROTECTED
User avatar
@username@
Posts: 202
Joined: Tue Oct 22, 2013 6:59 pm
Location: Glasgow, Scotland

Re: CSL Cart...

Post by @username@ » Fri Jan 01, 2016 2:26 pm

Unfortunately, the WAV files do not seem to contain any valid data - there is complete silence where the data should be.

This is not completely unexpected - as the header / tail routines are isolated, but the BSAVE function is not.

From what you have here, it would suggest that all the standard tape functions are replaced with the disc ones - so no actual data is sent when the data transfer section is called.

BIOS checks for a value of $A2 at $1200, if equal, then does a jump to ($2FFE) during initialisation - so use this pointer to determine where the DISK BIOS sits / injects itself.

So (PEEK($2FFF) * 256) + PEEK($2FFE) would give the jump address.

Still, now we know why disk-to-tape could be more than a little challenging :)

Happy New Year!
˙uʍop-ǝpısdn sı ɹoʇıuoɯ ɹnoʎ 'sıɥʇ pɐǝɹ uɐɔ noʎ ɟı

The creatiVision Emulator 16.04.24
Salora Manager / Laser 2001 BLOAD utility 0.9
CSL Cartridge middleware
http://sourceforge.net/projects/creativisionemulator
User avatar
MADrigal
Site Admin
Posts: 1021
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: CSL Cart...

Post by MADrigal » Fri Jan 01, 2016 3:26 pm

Thanks for your report. However the dump does contain "data". The volume is very low but I listened to the typical "garbled" sound.

Did you check all four WAV files? In some of them, there are chunks of "data" scattered here and there.

Last bit of information: when I BSAVE $0000,$4000, a dozen of garbled characters appear on screen at about 50% of the saving time, then the screen is filled with other garbled characters when saved completely.

Do you want me to do some additional tests? I would prefer not "dumping with CSAVE" anymore because my original Salora audio cable has got some damage during my tests, and I am not sure if it is still working.

Other than that, happy to help with some PEEK. Do you want me to "dump" chunks of data through a FOR/PEEK/PRINT routine? I would then send you screenshots. In such case please send me the BASIC program listing.
User avatar
@username@
Posts: 202
Joined: Tue Oct 22, 2013 6:59 pm
Location: Glasgow, Scotland

Re: CSL Cart...

Post by @username@ » Fri Jan 01, 2016 7:38 pm

Ok - a little bit of BASIC

Code: Select all

10 PT=(PEEK(12287)*256)+PEEK(12286)
20 FOR I=PT TO PT+1024
30 PRINT PT;" / ";PEEK(PT)
40 NEXT I
This will hopefully dump 1k from the entry vector. You may wish to adjust this if the entry vector is above a page boundary.

Thanks!!

NB: Please remember it's New Years Day, and traditionally, we scots have a hangover :)
˙uʍop-ǝpısdn sı ɹoʇıuoɯ ɹnoʎ 'sıɥʇ pɐǝɹ uɐɔ noʎ ɟı

The creatiVision Emulator 16.04.24
Salora Manager / Laser 2001 BLOAD utility 0.9
CSL Cartridge middleware
http://sourceforge.net/projects/creativisionemulator
User avatar
MADrigal
Site Admin
Posts: 1021
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: CSL Cart...

Post by MADrigal » Fri Jan 01, 2016 10:35 pm

lol :D

Tried your BASIC listing. The FOR-NEXT loop did not work as I expected... Maybe PRINT(PT) should be replaced by PRINT(I) ?
You do not have the required permissions to view the files attached to this post.
User avatar
MADrigal
Site Admin
Posts: 1021
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: CSL Cart...

Post by MADrigal » Fri Jan 01, 2016 10:40 pm

This one looks more interesting... - with PRINT I;" /";PEEK(I)

I suppose you need a dump of all 1024 bytes. I would modify the program a little bit to fit more data on screen, if if you're happy with that.

In no such case, I would have to take about 50 screenshots.

I wish I could LPRINT the whole thing :(
You do not have the required permissions to view the files attached to this post.
User avatar
MADrigal
Site Admin
Posts: 1021
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: CSL Cart...

Post by MADrigal » Fri Jan 01, 2016 10:54 pm

OK I have an idea. Since we know that the vector points to 6368, I could change the BASIC program this way. This will allow me to "dump" 64 bytes at a time and a "pause" to take screenshots anytime :)

10 PT=6304
20 PT=PT+64
30 PRINT PT
40 FOR I = PT TO PT + 64
50 PRINT PEEK(I);", ";
60 NEXT I
65 PRINT
70 INPUT A
80 IF PT < 7328 THEN GOTO 20

I will post screenshots soon :)
User avatar
MADrigal
Site Admin
Posts: 1021
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: CSL Cart...

Post by MADrigal » Fri Jan 01, 2016 11:11 pm

Screenshots attached. 8 screenshots showing 2x64 bytes each
You do not have the required permissions to view the files attached to this post.
Post Reply