Laser 2001 & Salora Manager - official thread

User avatar
Scouter3d
Posts: 646
Joined: Mon Jun 28, 2010 7:02 am
Location: Wien
Contact:

Re: Laser 2001 & Salora Manager - official thread

Post by Scouter3d » Wed Dec 30, 2015 7:37 pm

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)
User avatar
MADrigal
Site Admin
Posts: 1189
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Laser 2001 & Salora Manager - official thread

Post by MADrigal » Thu Dec 31, 2015 8:42 am

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.
User avatar
MADrigal
Site Admin
Posts: 1189
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Laser 2001 & Salora Manager - official thread

Post by MADrigal » Sun Jan 03, 2016 10:43 am

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! :-)
You do not have the required permissions to view the files attached to this post.
Sturmmann
Posts: 2
Joined: Wed Oct 12, 2016 2:05 pm

Re: Laser 2001 & Salora Manager - official thread

Post by Sturmmann » Sat Oct 29, 2016 3:52 pm

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:

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
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.
User avatar
Mobsie
Posts: 708
Joined: Fri Jun 13, 2008 10:38 am
Location: Weinheim, Germany

Re: Laser 2001 & Salora Manager - official thread

Post by Mobsie » Sat Oct 31, 2020 7:08 pm

are they information about how much Laser 2001 was sold?
User avatar
@username@
Posts: 320
Joined: Tue Oct 22, 2013 6:59 pm
Location: Scotland

Re: Laser 2001 & Salora Manager - official thread

Post by @username@ » Mon Apr 19, 2021 11:57 am

While waiting for Scouter3D to blow up more creativision PIAs :lol: - 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.
You do not have the required permissions to view the files attached to this post.
User avatar
@username@
Posts: 320
Joined: Tue Oct 22, 2013 6:59 pm
Location: Scotland

Re: Laser 2001 & Salora Manager - official thread

Post by @username@ » Wed Apr 21, 2021 9:48 pm

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 :lol:
User avatar
@username@
Posts: 320
Joined: Tue Oct 22, 2013 6:59 pm
Location: Scotland

Re: Laser 2001 & Salora Manager - official thread

Post by @username@ » Thu Apr 22, 2021 9:44 pm

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 !
User avatar
MADrigal
Site Admin
Posts: 1189
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Laser 2001 & Salora Manager - official thread

Post by MADrigal » Thu Apr 22, 2021 10:06 pm

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.
User avatar
@username@
Posts: 320
Joined: Tue Oct 22, 2013 6:59 pm
Location: Scotland

Re: Laser 2001 & Salora Manager - official thread

Post by @username@ » Thu Apr 22, 2021 10:40 pm

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.

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 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.
You do not have the required permissions to view the files attached to this post.
Post Reply