Skip to content

Instantly share code, notes, and snippets.

@fu-sen
Last active April 19, 2025 02:20
Show Gist options
  • Select an option

  • Save fu-sen/4e079229d43a0aa6c9d40734c35fb2ab to your computer and use it in GitHub Desktop.

Select an option

Save fu-sen/4e079229d43a0aa6c9d40734c35fb2ab to your computer and use it in GitHub Desktop.
Sine curve | z88dk mono graphics
/*
Sine curve | z88dk mono graphics
Copyright (c) 2019 BALLOON | FU-SEN
The MIT License (MIT) - https://mit.balloon.net.eu.org/#2019
Colecovision:
zcc +coleco -lm -create-app -bn sin sin.c (generate sin.rom)
MSX (-pragma-define:CLIB_DEFAULT_SCREEN_MODE=3 also works):
zcc +msx -lm -pragma-define:CLIB_DEFAULT_SCREEN_MODE=2 -create-app -bn sin sin.c (Cassette tape image, generate sin.cas)
--> BLOAD"CAS:",R (MSX turbo R has the tape feature removed!)
zcc +msx -lm -pragma-define:CLIB_DEFAULT_SCREEN_MODE=2 -create-app -subtype=disk -bn sin sin.c (BASIC BLOAD file, generate sin.msx)
--> BLOAD"SIN.MSX",R
zcc +msx -lm -pragma-define:CLIB_DEFAULT_SCREEN_MODE=2 -create-app -subtype=wav -bn sin sin.c (Cassette tape audio WAV format, generate sin.wav)
--> BLOAD"CAS:",R (MSX turbo R has the tape feature removed!)
zcc +msx -lm -pragma-define:CLIB_DEFAULT_SCREEN_MODE=2 -create-app -subtype=msxdos -bn sin sin.c (MSX-DOS .com executable file, generate sin.com)
--> SIN (mSX-DOS)
zcc +msx -lm -pragma-define:CLIB_DEFAULT_SCREEN_MODE=2 -create-app -subtype=rom -bn sin sin.c (ROM cartridge image, generate sin.rom)
PC-6001:
If you have a problem with the line drawing, try on Night Build 20190708 or later
zcc +pc6001 -lm -create-app -bn sin sin.c (16k, generate sin.cas)
zcc +pc6001 -lm -subtype=32k -create-app -bn sin sin.c (32k, generate sin.cas)
--> CLOAD
RUN
PC-8801:
zcc +pc88 -lm -lgfxpc88 -create-app -Cz--audio -bn sin sin.c (160x100, generate sin.t88)
zcc +pc88 -lm -lgfxpc88hr200 -create-app -Cz--audio -bn sin sin.c (640x200, generate sin.t88)
--> MON
R
G8A00
PC-E200, E220, G801, G802, G803, G811, G812, G813, G820, G830:
zcc +g800 -lm -create-app -clib=e200 -bn sin sin.c (generate sin.ihx)
--> g800 sin.ihx 100 (g800)
MON
USER 1000
R
G100
PC-G815:
zcc +g800 -lm -create-app -clib=g815 -bn sin sin.c (generate sin.ihx)
--> g800 sin.ihx 100 (g800)
MON
USER 1000
R
G100
PC-G850:
zcc +g800 -lm -create-app -clib=g850b -bn sin sin.c (generate sin.ihx)
--> g800 sin.ihx 100 (g800)
MON
USER 1000
R
G100
SC-3000:
zcc +sc3000 -lm -subtype=rom -osin.sc sin.c (generate sin.sc)
SV-318 (-pragma-define:CLIB_DEFAULT_SCREEN_MODE=3 also works):
zcc +svi -lm -create-app -pragma-define:CRT_ORG_CODE=49200 -pragma-define:CLIB_DEFAULT_SCREEN_MODE=2 -bn sin sin.c (generate sin.cas)
--> BLOAD"cas:",R
zcc +svi -lm -create-app -pragma-define:CRT_ORG_CODE=49200 -pragma-define:CLIB_DEFAULT_SCREEN_MODE=2 -subtype=wav -bn sin sin.c (generate sin.wav)
--> BLOAD"cas:",R
zcc +svi -lm -create-app -pragma-define:CLIB_DEFAULT_SCREEN_MODE=2 -subtype=rom318 -bn sin sin.c
SV-328 (-pragma-define:CLIB_DEFAULT_SCREEN_MODE=3 also works):
zcc +svi -lm -create-app -pragma-define:CLIB_DEFAULT_SCREEN_MODE=2 -bn sin sin.c (generate sin.cas)
--> BLOAD"cas:",R
zcc +svi -lm -create-app -pragma-define:CLIB_DEFAULT_SCREEN_MODE=2 -subtype=wav -bn sin sin.c (generate sin.wav)
--> BLOAD"cas:",R
zcc +svi -lm -create-app -pragma-define:CLIB_DEFAULT_SCREEN_MODE=2 -subtype=rom -bn sin sin.c (generate sin.rom)
TI-83:
zcc +ti83 -lm -create-app -bn sin sin.c (shell=Ion or Ti-Explorer, generate sin.83p)
TI-86:
zcc +ti83 -lm -create-app -startup=2 -bn sin sin.c (shell=ASE, Rascal or emanon, generate sin.86p)
ZX81:
zcc +zx81 -lm -create-app -bn sin sin.c (generate sin.P)
ZX Spectrum:
zcc +zx -lp3 -lm -create-app -bn sin sin.c (generate sin.tap)
It can be built on various other Z80 platforms!
*/
#include <graphics.h>
#include <math.h>
#include <stdio.h>
void main() {
int x, y;
clg();
for (x=0; x<=getmaxx(); x+=2) {
plot(x, (getmaxy()+1) / 2);
}
for (x=0; x<=getmaxx(); x++) {
y = (int)(((getmaxy()+1) / 2) * (1.0 - sin(M_PI * 2.0 * x / (getmaxx()+1))));
if (x==0){
plot(x, y);
} else {
drawto(x, y);
}
}
while (getk() < 1){}
}
@fu-sen
Copy link
Author

fu-sen commented Jul 6, 2019

Colecovision (BlueMSX):
スクリーンショット 2024-12-02 19 32 15

MSX (WebMSX C-BIOS light version):
スクリーンショット 2024-12-04 10 41 54

PC-6001mkII (PC6001VW+互換BASIC(ごかんBASIC, Gokan BASIC=Compatible BASIC):
Note: The PC-6001 has a green background
スクリーンショット 2019-07-09 18 45 35

PC-G850 (g800):
g800

SC-3000 (BlueMSX)
スクリーンショット 2024-12-02 19 12 48

SV-318 (BlueMSX)
スクリーンショット 2024-12-05 20 07 21

SV-328 (openMSX)
スクリーンショット 2024-12-05 09 41 14

ZX81 (EightyOne):
eightyone

ZX Spectrum (Speccy):
スクリーンショット 2019-07-07 15 03 07

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment