Blueberry information 1388 glöps
- general:
- level: user
- personal:
- first name: Aske Simon
- last name: Christensen
- cdcs:
- cdc #1: Nexus-7 by Andromeda [web]
- cdc #2: Tint by The Black Lotus [web]
- cdc #3: Gift by Potion
- cdc #4: STS-02: Electric Kool-Aid by Synesthetics
- cdc #5: TBC Realtime Experience by Too Bloody Cheesy [web]
- demo Windows JavaScript moron by Holon [web]
- I like this! Yes!
- rulezadded on the 2018-10-07 18:34:22
- demotool Windows Crinkler by Loonies [web] & TBC
- Hi dnm221
Commandline arguments are handled by the startup code in msvcrt.lib. Since you are already using msvcrt for the various C stdlib functions your code uses, all you have to do to include the startup code is to not specify a custom entry point.
This doesn't quite work though. The startup code also handles the execution of various initializers that need to run before main. It assumes that two lists of function pointers are stored between special labels (one between ___xi_a and ___xi_z and one between ___xc_a and ___xc_z). Crinkler does not treat those labels specially, so they end up in (more or less) random places in the uninitialized section. The startup code tries to call everything between the start and end labels and crashes.
There is a small trick that will sometimes work: add plenty of ORDERTRIES (1000 or more). This is highly likely to place these labels next to each other (since that will make the startup code compress better). Then the code works. You can check their placement in the compression report.
This still pulls in around 200 bytes of code for the startup, much of which is probably not needed. A smaller solution is to use this minimal startup code (nasm/yasm syntax):
Code:extern __imp____getmainargs extern __imp__ExitProcess@4 extern _main global _mainCRTStartup section startup text align=1 _mainCRTStartup: push eax mov dword [esp], esp push eax mov dword [esp], esp push eax mov dword [esp], esp call [__imp____getmainargs] call _main push eax call [__imp__ExitProcess@4] - isokadded on the 2018-10-01 22:06:16
- 32b Commodore 64 grey screen with no music by Genesis Project [web]
- Ah, you were talking about the other intros. Got it. Hmm, I'll have to think about that one. ;)
- isokadded on the 2018-09-01 20:08:18
- 32b Commodore 64 grey screen with no music by Genesis Project [web]
- What do you mean "smallest is 16 bytes so far"? This prod is 10 bytes, and I just described how to reduce it to 7. :)
- isokadded on the 2018-09-01 19:50:46
- 512b Windows Grey Screen With No Escape by Loonies [web]
- And it's FULL HD, of course. :)
- isokadded on the 2018-09-01 19:41:53
- 512b Windows Grey Screen With No Escape by Loonies [web]
- For the truly authentic "Nothing but a grey screen without music allowed" experience. Save your work before running!
- isokadded on the 2018-09-01 19:35:51
- 32b Commodore 64 grey screen with no music by Genesis Project [web]
- Quote:
8 bytes on a non-DOS platform. respect.
Not as big a feat when you consider that the file header is left out of this number. The file is 10 bytes. And in this particular case, those extra two bytes (the load address) are essential to make the code work, as they make sure it is injected into the CHRGET routine.
Anyway, some improvements are possible:
1. Replace
Code:INC $D020
by
Code:LSR $D020
to make the code work even when executed multiple times. This fixes the "bug" that it currently has where pressing RETURN will change the screen color away from grey.
2. Replace
Code:LDA #0 STA $D011
by
Code:LSR $D011
which just as effectively clears the DEN bit, blanking the screen, to save two bytes.
3. Inject at address $84. Then the final byte, at address $89, will already have the value $D0 as needed, so it can be left out.
All in out, we can get down to 5 bytes payload, for a 7 bytes file size. :) - isokadded on the 2018-09-01 16:49:03
- 32b ZX Spectrum Grey Screen With No Music by sibCrew
- Only if the ZX Spectrum platform is subdivided.
- rulezadded on the 2018-08-31 12:35:23
- 8k BeOS Grey Screen With No Music by Shinra [web]
- Most inspiring prod I have seen for some time.
- rulezadded on the 2018-08-31 12:29:10
- 32b MS-Dos grey screen with no music 6b by Desire [web]
- 5b version would be a different prod of course.
- rulezadded on the 2018-08-31 12:12:38
account created on the 2004-11-26 18:36:35
