Laser 2001 & Salora Manager - official thread
Re: Laser 2001 & Salora Manager - official thread
Hi, cool that you have a complete disk system!
in Basic, there is the DISK command... in the magazin, where the listing for "Pipeline" was printed, there is a small reference to disk-users,
it tells you to replace CRUN with DISK "RUN PIPELINE"
so maybe there is something like DISK "SAVE NAME" or DISK "FORMAT" ????
Good luck, TOM:0)
in Basic, there is the DISK command... in the magazin, where the listing for "Pipeline" was printed, there is a small reference to disk-users,
it tells you to replace CRUN with DISK "RUN PIPELINE"
so maybe there is something like DISK "SAVE NAME" or DISK "FORMAT" ????
Good luck, TOM:0)
http://www.8bit-homecomputermuseum.at Find me here...
Re: Laser 2001 & Salora Manager - official thread
The floppy reads MD1D, so I am not sure if it is single, double or high density.
I will try with one of my old C64 diskettes.
When I type DIR, I get a blank line. So there is the possibility that the diskette is unformatted or empty.
I am going to dump the memory into a WAV file, as per @username@'s request. I am also using my 16K memory expansion module before dumping.
I will try with one of my old C64 diskettes.
When I type DIR, I get a blank line. So there is the possibility that the diskette is unformatted or empty.
I am going to dump the memory into a WAV file, as per @username@'s request. I am also using my 16K memory expansion module before dumping.
Re: Laser 2001 & Salora Manager - official thread
I have got these photos of the Salora DOS manual (probably included in the floppy disk interface, or the floppy disk drive).
Apparently the MLOAD and MSAVE work just like BLOAD and BSAVE, that is: binary load/save from/to diskette
MLOAD "FILENAME",$xxxx (loads binary file from disk into $xxxx)
MSAVE "FILENAME",$xxxx,$yyyy (saves binary file to disk starting from $xxxx with lenght of $yyyy)
READ doesn't seem to be a standalone command for the BASIC interpreter, but for the floppy disk interface/drive internal interpreter
Reading the manual:
DISK "READ BLAHBLAH,$xxxx" or DISK "READ BLAHBLAH,$yyyy,$xxxx"
DISK "WRITE BLAHBLAH,$xxxx" or DISK "WRITE BLAHBLAH,$yyyy,$xxxx".
The commands look similar to MLOAD/MSAVE. The $xxxx and $yyyy parameters look different though.
I am interested into knowing more of the DISK command, which "parameter" it accepts, etc. Reminds me of the way I operated the C64 floppy disk drive with the "OPEN" command followed by parameters for formatting, initialising, renaming, deleting, etc.
My Finnish friend, Jarkko, will hopefully scan the whole manual sometimes soon. I can't wait to have it scanned!
Apparently the MLOAD and MSAVE work just like BLOAD and BSAVE, that is: binary load/save from/to diskette
MLOAD "FILENAME",$xxxx (loads binary file from disk into $xxxx)
MSAVE "FILENAME",$xxxx,$yyyy (saves binary file to disk starting from $xxxx with lenght of $yyyy)
READ doesn't seem to be a standalone command for the BASIC interpreter, but for the floppy disk interface/drive internal interpreter
Reading the manual:
DISK "READ BLAHBLAH,$xxxx" or DISK "READ BLAHBLAH,$yyyy,$xxxx"
DISK "WRITE BLAHBLAH,$xxxx" or DISK "WRITE BLAHBLAH,$yyyy,$xxxx".
The commands look similar to MLOAD/MSAVE. The $xxxx and $yyyy parameters look different though.
I am interested into knowing more of the DISK command, which "parameter" it accepts, etc. Reminds me of the way I operated the C64 floppy disk drive with the "OPEN" command followed by parameters for formatting, initialising, renaming, deleting, etc.
My Finnish friend, Jarkko, will hopefully scan the whole manual sometimes soon. I can't wait to have it scanned!

You do not have the required permissions to view the files attached to this post.
Re: Laser 2001 & Salora Manager - official thread
I was investigating zero page in Salora Manager. It seems that BASIC’s CHRGET routine starts at $B1. BASIC uses CHRGET to read text characters i.e. tokenized BASIC program which is being interpreted. The routine can be modified, because it is in zero page (RAM). For example it is possible to add new commands to BASIC.
I used a short BASIC program to find the routine from zero page and print it as a decimal dump to the screen. I converted decimal dump to assembly and calculated addresses in relative branches manually so there can be mistakes. CHRGET routine:
In practice, the routine is same as in other 6502 Microsoft BASIC variants. The usage of routine is described for example in Mapping the C64 and Programming the PET/CBM books.
I used a short BASIC program to find the routine from zero page and print it as a decimal dump to the screen. I converted decimal dump to assembly and calculated addresses in relative branches manually so there can be mistakes. CHRGET routine:
Code: Select all
$B1 INC $B8
$B3 BNE $B7
$B5 INC $B9
$B7 LDA $xxxx
$BA CMP #3A
$BC BCS $C8
$BE CMP #$20
$C0 BEQ $B1
$C2 SEC
$C3 SBC #$30
$C5 SEC
$C6 SBC #$D0
$C8 RTS
Re: Laser 2001 & Salora Manager - official thread
are they information about how much Laser 2001 was sold?
- @username@
- Posts: 335
- Joined: Tue Oct 22, 2013 6:59 pm
- Location: Scotland
Re: Laser 2001 & Salora Manager - official thread
While waiting for Scouter3D to blow up more creativision PIAs
- I got out my Salora Manager, with the idea of using an Arduino as a tape device.
I looked at the code for SMBLoader (first time in over 7 years!) - and made a few changes - it now uploads ~25% quicker - yay \O/
Another bonus is that it loads first time, every time!
Unfortunately, the Salora Manager load sequence kills the demo mode - and for a lot of games, because of this, the graphics etc don't get downloaded.
I may try to fix some of these - to enhance the catalogue for the Manager.
If someone with a Laser2001 wants to give it a go on that - maybe we can at least double the uploadable games available for both machines.

I looked at the code for SMBLoader (first time in over 7 years!) - and made a few changes - it now uploads ~25% quicker - yay \O/
Another bonus is that it loads first time, every time!
Unfortunately, the Salora Manager load sequence kills the demo mode - and for a lot of games, because of this, the graphics etc don't get downloaded.
I may try to fix some of these - to enhance the catalogue for the Manager.
If someone with a Laser2001 wants to give it a go on that - maybe we can at least double the uploadable games available for both machines.
You do not have the required permissions to view the files attached to this post.
- @username@
- Posts: 335
- Joined: Tue Oct 22, 2013 6:59 pm
- Location: Scotland
Re: Laser 2001 & Salora Manager - official thread
Focusing on AirSea Rescue, I now have pseudo demo mode running!
So load game, wait for demo to complete (you lose three lives) then kick in to the game play.
This should solve corrupt graphics etc for most games.
Great fun looking at how the CV works again - terrifying how much I have forgotten!
I could be the first case of VTech Dementia
So load game, wait for demo to complete (you lose three lives) then kick in to the game play.
This should solve corrupt graphics etc for most games.
Great fun looking at how the CV works again - terrifying how much I have forgotten!
I could be the first case of VTech Dementia

- @username@
- Posts: 335
- Joined: Tue Oct 22, 2013 6:59 pm
- Location: Scotland
Re: Laser 2001 & Salora Manager - official thread
Quick update.
Games with one-time demo mode enabled for tape loading
4K ROMs
AirSea Rescue
Crazy Chicky
Crazy Pucker
Sonic Invaders
8k ROMs
Auto Chase
Deep Sea
Mouse Puzzle
Planet Defender
Police Jump
Stone Age
Tank Attack
Tennis
I also have Astro Pinball, but as Salora Manager uses atari style joysticks with one fire button - second button is needed for left flipper. Does look good though !
Games with one-time demo mode enabled for tape loading
4K ROMs
AirSea Rescue
Crazy Chicky
Crazy Pucker
Sonic Invaders
8k ROMs
Auto Chase
Deep Sea
Mouse Puzzle
Planet Defender
Police Jump
Stone Age
Tank Attack
Tennis
I also have Astro Pinball, but as Salora Manager uses atari style joysticks with one fire button - second button is needed for left flipper. Does look good though !
Re: Laser 2001 & Salora Manager - official thread
What is the process/the changes you made to the loading system? I am not too sure I read this correctly
1. you have created 'tape' files with the typical Salora Manager BASIC listing for the 'loader' but modified in a way that the games start with the typical CV demo mode
2. you append the ROM file
Is this correct?
FYI also Tank Attack uses 2 buttons.
Salora Manager was sold with two 2-button joysticks, so ideally whoever has a complete set can play all games.
1. you have created 'tape' files with the typical Salora Manager BASIC listing for the 'loader' but modified in a way that the games start with the typical CV demo mode
2. you append the ROM file
Is this correct?
FYI also Tank Attack uses 2 buttons.
Salora Manager was sold with two 2-button joysticks, so ideally whoever has a complete set can play all games.
- @username@
- Posts: 335
- Joined: Tue Oct 22, 2013 6:59 pm
- Location: Scotland
Re: Laser 2001 & Salora Manager - official thread
OK - the reason the normal tape loader does not do demo mode is that there is no way out of it once it starts.
Pressing RESET will just drop you back to BASIC.
The BASIC loader jumps in as if you had pressed RESET, and leaves you on the selection screen.
This is kind of OK for some games - but pretty tragic for others.
As you come in after RESET, some game initialisation, memory clearing etc is not performed, leaving the game unplayable.
However, by attaching a small binary patch to the ROM, the initialisation is performed, and the demo runs. The patch will exit to selection mode once you reach GAME OVER in the demo.
For now, I haven't bothered with a BASIC loader - just BLOAD then CALL works fine.
Great news about the two-button joysticks! Astro Pinball may live again
To make the WAV file, I use SMBloader above then play on my phone to the Salora Manager.
I am still awaiting parts for the Arduino build - but even low quality mono 11Khz/8bit seems to load fine.
The BASIC loader copies the vectors from $BFFC to $200 before doing a CALL -138 ($FF76).
The disassembly above determines whether it's before or after reset by checking if the ROM vectors match those it has in RAM.
As you can see above - some memory clearing, characters etc from BIOS are skipped. Also the ROM itself may do some initialisation on pre-RESET too.
Let me know if you need more info!
PS: I have attached the preloader patch for AirSea Rescue.
Pressing RESET will just drop you back to BASIC.
The BASIC loader jumps in as if you had pressed RESET, and leaves you on the selection screen.
This is kind of OK for some games - but pretty tragic for others.
As you come in after RESET, some game initialisation, memory clearing etc is not performed, leaving the game unplayable.
However, by attaching a small binary patch to the ROM, the initialisation is performed, and the demo runs. The patch will exit to selection mode once you reach GAME OVER in the demo.
For now, I haven't bothered with a BASIC loader - just BLOAD then CALL works fine.
Great news about the two-button joysticks! Astro Pinball may live again

To make the WAV file, I use SMBloader above then play on my phone to the Salora Manager.
I am still awaiting parts for the Arduino build - but even low quality mono 11Khz/8bit seems to load fine.
Code: Select all
ROM:FF76 loc_FF76:
ROM:FF76 JSR sub_F84B ;; Set VDP regs to creatiVision defaults
ROM:FF79 LDX #5
ROM:FF7B
ROM:FF7B loc_FF7B:
ROM:FF7B DEX
ROM:FF7C BEQ loc_FF9E
ROM:FF7E LDA $BFFB,X ;; Compare ROM INT vectors with RAM
ROM:FF81 CMP $1FF,X
ROM:FF84 BEQ loc_FF7B ;; Are the vectors the same as the ROM?
ROM:FF86 JSR sub_FE2F ;; Clear Zero Page
ROM:FF89 LDA #$F4
ROM:FF8B JSR sub_F85C ;; FillScreen
ROM:FF8E JSR sub_FE38 ;; Load chars show copyright
ROM:FF91 LDX #3
ROM:FF93
ROM:FF93 loc_FF93:
ROM:FF93 LDA $BFFC,X ;; Copy ROM INT vectors to RAM
ROM:FF96 STA $200,X
ROM:FF99 DEX
ROM:FF9A BPL loc_FF93
ROM:FF9C STX 2
ROM:FF9E
ROM:FF9E loc_FF9E:
ROM:FF9E JMP ($BFFC) ;; JMP VECTOR 1
The disassembly above determines whether it's before or after reset by checking if the ROM vectors match those it has in RAM.
As you can see above - some memory clearing, characters etc from BIOS are skipped. Also the ROM itself may do some initialisation on pre-RESET too.
Let me know if you need more info!
PS: I have attached the preloader patch for AirSea Rescue.
You do not have the required permissions to view the files attached to this post.