Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Programming the 6502 microprocessor and its relatives in assembly and other languages.
User avatar
drogon
Posts: 1671
Joined: 14 Feb 2018
Location: Scotland
Contact:

Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by drogon »

Anyone going to enter?

https://logiker.com/Vintage-Computing-C ... lenge-2023

I've submitted my entry in my GIBL/TinyBasic just for some retro fun.

Anyone rising to the challenge in 6502 assembler?

Cheers,

-Gordon
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
User avatar
BigEd
Posts: 11463
Joined: 11 Dec 2008
Location: England
Contact:

Re: Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by BigEd »

Just to note the rules, which are in the spirit of not spoiling anyone else's fun:

"Do not reveal the code or even the exact size of the code to anyone. This shall be a personal challenge."

So, please don't share your ideas or your guesses or algorithms or approaches, until after the competition deadline.
BillG
Posts: 710
Joined: 12 Mar 2020
Location: North Tejas

Re: Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by BillG »

drogon wrote:
Anyone going to enter?

https://logiker.com/Vintage-Computing-C ... lenge-2023

I've submitted my entry in my GIBL/TinyBasic just for some retro fun.

Anyone rising to the challenge in 6502 assembler?

Cheers,

-Gordon
Yes.

I have entered in the past, but did not last year because I found the challenge, shall we say, uninspiring.

As usual, I will begin by coding up a solution in 6800 assembly language. Then go to the 6809 to see if that can improve it. Finally create 6502 and 8080 versions for comparison.

I do not like that the judging criteria are:

The shortest size of the following provided sizes is taken for the final “ordering/ranking”:

* Source code
* File size
* Executed Code (net[to] code size; “real” code)

So I will be submitting both commented and uncommented source code…
BillG
Posts: 710
Joined: 12 Mar 2020
Location: North Tejas

Re: Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by BillG »

I hope this is not out of line, but the preliminary results show the 6502 version is smaller than the 6800 one.
User avatar
drogon
Posts: 1671
Joined: 14 Feb 2018
Location: Scotland
Contact:

Re: Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by drogon »

BillG wrote:
I have entered in the past, but did not last year because I found the challenge, shall we say, uninspiring.
I think it's just a fun thing to do - not particularly difficult so rather than try to squeeze every last byte out of it I've tried to be more "interesting".

And building my own computer, writing my own TinyBasic to run on that computer and using that for the entry is, I think, "interesting" :-)

-Gordon
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
User avatar
drogon
Posts: 1671
Joined: 14 Feb 2018
Location: Scotland
Contact:

Re: Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by drogon »

BillG wrote:
I hope this is not out of line, but the preliminary results show the 6502 version is smaller than the 6800 one.
I never did get into the 6800. No real UK systems using it, so not much interest and the 6502 was ... cheaper. Same for the 6809, but it was a bit late to the game there. I do remember using a 6809 system for some industrial control but by then we were into high level languages (early/mid 80's) and C and BCPL were winning the game over the 6809s Pascal...

It was a funny old time.

-Gordon
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
BillG
Posts: 710
Joined: 12 Mar 2020
Location: North Tejas

Re: Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by BillG »

I decided to look at the results from last year and have some serious concerns.

https://demozoo.org/parties/4578/

The winning entry claims only 27 bytes of code. Looking more deeply into the entry reveals many many bytes of variables and data that are not counted in that 27. Is the scoring system broken such that the total footprint is not important but only the amount of executable code?
IamRob
Posts: 357
Joined: 26 Apr 2020

Re: Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by IamRob »

BillG wrote:
I decided to look at the results from last year and have some serious concerns.

https://demozoo.org/parties/4578/

The winning entry claims only 27 bytes of code. Looking more deeply into the entry reveals many many bytes of variables and data that are not counted in that 27. Is the scoring system broken such that the total footprint is not important but only the amount of executable code?

Why is there even any scoring? Isn't it just enough to see the different programming techniques? It is best to leave any scoring results unposted. And if there is any scoring to be done, let it be for the most interesting technique.
User avatar
barrym95838
Posts: 2056
Joined: 30 Jun 2013
Location: Sacramento, CA, USA

Re: Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by barrym95838 »

drogon wrote:
Anyone rising to the challenge in 6502 assembler?
Yes, if hand-assembly counts. My WOZMON entry surprised me by working on the first try!
Got a kilobyte lying fallow in your 65xx's memory map? Sprinkle some VTL02C on it and see how it grows on you!

Mike B. (about me) (learning how to github)
User avatar
drogon
Posts: 1671
Joined: 14 Feb 2018
Location: Scotland
Contact:

Re: Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by drogon »

barrym95838 wrote:
drogon wrote:
Anyone rising to the challenge in 6502 assembler?
Yes, if hand-assembly counts. My WOZMON entry surprised me by working on the first try!
It absolutely counts!

Now.. Apple II. F666G, was it?

(mini assembler)

Cheers,

-Gordon
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
IamRob
Posts: 357
Joined: 26 Apr 2020

Re: Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by IamRob »

barrym95838 wrote:
drogon wrote:
Anyone rising to the challenge in 6502 assembler?
Yes, if hand-assembly counts. My WOZMON entry surprised me by working on the first try!
Hey Mike. Are you not the author of VTLC? I will do one in Forth if you do one in VTLC.

I might try my hand at TurtleLogo as well.
User avatar
barrym95838
Posts: 2056
Joined: 30 Jun 2013
Location: Sacramento, CA, USA

Re: Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by barrym95838 »

IamRob wrote:
Hey Mike. Are you not the author of VTLC?
Yeah, I'll take swing at it and see if I can come up with a base hit. VTLC isn't exactly the correct name. The original 6800 and 8080 versions are VTL-2 and my latest NMOS 6502 version is VTL02C. VTLC02 is for the 65c02. Those 65xx interpreters have a few bells and whistles that weren't in the originals, like recognizing the space character as genuine white space, and not a variable name or binary operator. :lol: As for TABs ... er ... not a good idea in any version.
Last edited by barrym95838 on Thu Dec 21, 2023 12:39 am, edited 1 time in total.
Got a kilobyte lying fallow in your 65xx's memory map? Sprinkle some VTL02C on it and see how it grows on you!

Mike B. (about me) (learning how to github)
resman
Posts: 154
Joined: 12 Dec 2015
Location: Lake Tahoe
Contact:

Re: Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by resman »

I was going to write one in Vintage-Computing-Christmas-Challenge-2023 Language. It would be one byte long.

Instead I wrote it in PLASMA with twinkling stars. Certainly not going to be the smallest.
User avatar
barrym95838
Posts: 2056
Joined: 30 Jun 2013
Location: Sacramento, CA, USA

Re: Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by barrym95838 »

My VTL-2 version is disappointing in a head-to-head comparison with 6502 machine language, at least when using the same algorithm. Kinda makes sense, though ... LDA #50 is two bytes and two CPU cycles, and 100 A=50 is eight bytes and (mumble) CPU cycles. I am also not pleased with the portability issue associated with my rendering technique ... it uses spaces instead of newline chars, which isn't bad for the original WOZMON, but horrible on a generic terminal connected to a typical VTL-2 host, because not many of those terminals wrap lines at 40 columns like the Apple 1 does.
Got a kilobyte lying fallow in your 65xx's memory map? Sprinkle some VTL02C on it and see how it grows on you!

Mike B. (about me) (learning how to github)
IamRob
Posts: 357
Joined: 26 Apr 2020

Re: Vintage Computing Christmas Challenge 2023 (VC³ 2023)

Post by IamRob »

Here's what I came up with Forth - it compiles to 173 bytes

: S spaces 42 emit ;
: one 3 S 5 S 5 S cr ;
: two 2 S 1 S 3 S 1 S 3 S 1 S cr ;
: thre 1 S 3 S 1 S 3 S 1 S 3 S cr ;
: for 42 EMIT 5 S 5 S 5 S cr ;
: G 3 0 do one two thre for thre two loop one ;

I am sure it could be made smaller.

An applesoft one posted elsewhere is 105 bytes.
Post Reply