Hello from Italy!

Post here first, tell us about yourself, your interests, your country...
User avatar
Scouter3d
Posts: 646
Joined: Mon Jun 28, 2010 7:02 am
Location: Wien
Contact:

Re: Hello from Italy!

Post by Scouter3d » Sun Mar 13, 2022 9:06 am

Hi,

looks nice!
are the Commodore Balloons moving? btw. "38911 BASIC BYTES FREE" is wishfull thinking ;0)

Cheers, TOM:0)
User avatar
MADrigal
Site Admin
Posts: 1189
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Hello from Italy!

Post by MADrigal » Sun Mar 13, 2022 10:27 am

:D :D :D :D
User avatar
@username@
Posts: 320
Joined: Tue Oct 22, 2013 6:59 pm
Location: Scotland

Re: Hello from Italy!

Post by @username@ » Sun Mar 13, 2022 11:15 am

Hi Nippur72,

The important cartridge vectors are

$BFE8 - Program entry point (START)
$BFEA - Interrupt Service Routine Handler - just JMP $FF52 to get BIOS to clean up and set the world OK again :)
$BFEC - Character table offset for numerals - used by Game Level and Score
$BFED - Number base - always seems to be $10
$BFEE - VDP Address for BIOS $FE83
$BFF0 - VDP register values 0 to 7 - set by BIOS $FF66 - saves you doing it :)
$BFF8 - Pointer to data structures to download to VRAM
$BFFA - Pointer to data structures to fill VRAM
$BFFC - Reset vector (default $F808)
$BFFE - Interrupt handler (default $FF3F)

Hope that saves you some time!
User avatar
Mobsie
Posts: 708
Joined: Fri Jun 13, 2008 10:38 am
Location: Weinheim, Germany

Re: Hello from Italy!

Post by Mobsie » Sun Mar 13, 2022 2:49 pm

Hi, you compare kickc with cc65? Or you just a kickc user)
I think i will try to compare it because i read a lot about kickc. I need to understand how made the target file first.
User avatar
nippur72
Posts: 22
Joined: Thu Mar 10, 2022 10:31 am

Re: Hello from Italy!

Post by nippur72 » Sun Mar 13, 2022 3:20 pm

Mobsie wrote:
Sun Mar 13, 2022 2:49 pm
Hi, you compare kickc with cc65? Or you just a kickc user)
I think i will try to compare it because i read a lot about kickc. I need to understand how made the target file first.
I love KickC, compared to cc65 it produces very efficient code, mostly thanks to the paradigm of not using stack for passing parameters (so function can't be reentrant -- but it's not a big drawback). So it has became the compiler of choice for my 6502 projects when I don't write in assembly directly (for which I have my own dedicated macro preprocessor/assembler).
Pros:
- very optimized and efficient
- doesn't link bloated libraries
- project is alive and rather actively maintained

Cons:
- it has lot of bugs, sometimes it fails to compile with strange errors or java null pointer exception
- slow to compile (when optimizations are on)
- non standard C
- uses KickAssembler for compile/link, it doesn't produce a classic .lst file (as far as I know)

For the target files, I use the following:
kickc/creativision_16KROM.ld

Code: Select all

// Creativision 16KROM cartdrige, with 1KRAM, 2KB BIOS
.file [name="%O", type="prg", segments="Program"]
.segmentdef Program [segments="Code, Data"]
.segmentdef Code [start=$8000,min=$8000,max=$bfff,outBin="creativision_codeseg.bin"]
.segmentdef Data [start=$0200,min=$0200,max=$03ff,outBin="creativision_dataseg.bin"]
kickc/creativision_16KROM.tgt

Code: Select all

{
    "extension": "prg",
    "link": "creativision_16KROM.ld",
    "start_address": "0x8000",
    "cpu": "ROM6502",
    "interrupt": "hardware_all",
    "emulator": "echo",
    "defines": {
        "__CREATIVISION__": 1,
        "CREATIVISION": 1,
        "CREATIVISION_16KROM": 1,
        "__KICKC__": 1
    }
}
and compile with:

Code: Select all

kickc -targetdir kickc -t creativision_16KROM demo.c -o demo.prg -e
then I take the resulting "creativision_codeseg.bin" (not .prg) and use it to create a .BIN cart file (with start address at $BFFC).
User avatar
Mobsie
Posts: 708
Joined: Fri Jun 13, 2008 10:38 am
Location: Weinheim, Germany

Re: Hello from Italy!

Post by Mobsie » Thu Mar 17, 2022 12:17 pm

Yes, i play with different example and the code is cool!
Would be interesting if someone move over the lib from cc65 to kickc.
User avatar
nippur72
Posts: 22
Joined: Thu Mar 10, 2022 10:31 am

Re: Hello from Italy!

Post by nippur72 » Thu Mar 17, 2022 12:36 pm

Mobsie wrote:
Thu Mar 17, 2022 12:17 pm
Yes, i play with different example and the code is cool!
Would be interesting if someone move over the lib from cc65 to kickc.
I've written a sort of TMS9918 library for my previous Apple1 project which I'm porting to Creativision, so I will also look at cc65 and see if I can recycle something :-)

When finished I'll put it in a github repo for anyone use it or contribute.

Edit: cc65 creativision related stuff is here: https://github.com/cc65/cc65/tree/maste ... eativision
User avatar
carlsson
Posts: 507
Joined: Fri Jun 13, 2008 7:39 am
Location: Västerås, Sweden

Re: Hello from Italy!

Post by carlsson » Sun Mar 20, 2022 12:28 am

nippur72 wrote:
Sun Mar 13, 2022 8:58 am
the disk drive format seems to be the same used in Laser 500
How surprising for being VTech! I thought every machine they made was unlike and incompatible with all the others in their line.

Speaking of which, there was a fellow on Twitter who had a joystick interface for the Laser 200 series, which apparently was sold with joystick(s) permanently attached. Many years ago he chopped off the cable to turn the joystick into an Atari compatible one, leaving the severed joystick interface to its destiny. He was willing to donate the interface to anyone needing it. I don't have a 200, but wonder if the expansion port would by chance have anything in common with the 500, or if the compatibility between different Laser products only went as far as the software side.
User avatar
Ransom
Posts: 11
Joined: Wed Jan 19, 2022 11:33 am
Contact:

Re: Hello from Italy!

Post by Ransom » Sun Mar 20, 2022 1:53 am

Writing emulators and FPGA cores?! Excellent, welcome.
Seth A. Robinson
www.rtsoft.com
User avatar
nippur72
Posts: 22
Joined: Thu Mar 10, 2022 10:31 am

Re: Hello from Italy!

Post by nippur72 » Sun Mar 20, 2022 8:52 am

carlsson wrote:
Sun Mar 20, 2022 12:28 am
I don't have a 200, but wonder if the expansion port would by chance have anything in common with the 500, or if the compatibility between different Laser products only went as far as the software side.
the 200 and 500 share the same basic design as the 500 was meant to be an improvement of the 200 with a custom video chip in place of the off-the-shelf MC6847. The user port is compatible, I used to switch joysticks/printer between the 310 and 500. I'm not sure about the expansion port, the pins seems to be identical with the only difference that the 500 make use of some address pins for bank switching.

My guess is that the 500 was originally meant to fit in a Laser 310 keyboard, but once the MSX clone project was aborted they put the 500 in the extended keyboard they made for the MSX, and shipped the previous design as "Laser 350" (which indeed is a 500 in a 310 case). From the keyboard schematic you can clearly see that the rows for the extended keys (F1-F10, arrows, etc) were added later and are to be queried in a different way than the standard keys.

I also think that when designing the 500, they dropped the Laser 200 disk drive format for the one they developed for the Salora Manager, because it was more capable and allowed the machine to be sold as a CP/M compatible. But they managed to keep the same commands in the 200 and 500 versions of the DOS, indeed they shipped the same user manual along with the disk drive.

The Creativision/Salora is a totally different project, I still wonder why they didn't push it as their main home computer line instead of the Laser 210 ...it could have been a great success. I guess one of the reasons is cost reducing, CV has 3 third-party chips (PIA,TMS/SN), while the 210 has only one (the video chip).
Post Reply