FAQ of the Vintage Computing Christmas Challenge

 

I think comparing different machines and languages is not fair.

True. But it is interesting and as said it is not a competition. At least we can avoid unfair voting on the other hand. Oh, that was not a question. ;-)

 

Is it necessary, that a C64 BASIC program can also be typed in manually on a real C64? Or in other words, does the 80 characters limit apply for this compo?

No. You can use lines longer than 80 characters. The resulting program must be runnable, of course. 

 

What do you mean by source code?

Source code usually are commands, that a human can read and understand. It will usually be saved as pure text files. The file names may contain some special ending like .bas, .vbs, .js, .py, and so on. The (file) size of this source code is the first kind of measurement. Some source code (e.g. c or assembler) needs to be compiled. Other source code needs to be run using an interpreter.

 

What do you mean by file size?

This size category is most obvious to compiler languages (assembler, C, Java, ...). There, the source code needs to be compiled to an executable format, which then can be run (mostly) from the command line. But also for some interpreter languages, the size of the saved source code might differ from the source code itself. For example, the C64 will tokenize the commands, it will add some bytes for the line numbers, the start and the end of the file. The Amstrad CPC will add a 128b large header to most files. So the file size might offer advantages or disadvantages, depending on the platform.

 

What do you mean by executed code?

Again, we have to differentiate between compiled and interpreted code. Most compiled code will have something like a stub to start the main code. Sometimes it's just the start address plus a BASIC stub (C64), sometimes a huge header (Amstrad CPC). Removing this overhead, you get what is meant by "executed code". To make things between interpreters and compilers more fair, you may also subtract the start address or headers from files of system specific files, if they do exist.

 

Can I use the stub of an assembler program to store data or use side effects of the stub like zero-page or registers variables (e.g. basic line number) set by the stub?

No, you can't. If you do so, you also can't subtract the size of the stub (from the executed code) as a consequence. Exception: start address. Every program needs to start. So, if the starting process sets a register or zero-page address, you can use this side effect.

 

Can I place my machine code anywhere I want?

Yes. But it would be good, if you provide a standalone running program or a working loader.

 

Can I use language X or system Y?

Well, use whatever you want. Every system will get vintage one day, won't it?

 

Can I omit the line number from my BASIC program? It's a one-liner.

Most vintage BASIC dialects require the line number so that it becomes a program. Therefore, it can't be removed on such systems.

 

The screen of my system has less lines than the size of the object. Can I still take part?

Yes, you are allowed to use scrolling in this case. All other rules apply the same way. 

 

Can I withdraw my entry after the deadline?

Usually not, because recordings just start after the deadline and small changes can have a huge effect. Sorry.