update examples to use the new const eval syntax

coroutines
Ondřej Hruška 4 years ago
parent 66b3674f81
commit 4e67ac291f
Signed by: MightyPork
GPG Key ID: 2C5FD5035250423D
  1. 23
      examples/life.csn
  2. 9
      examples/mandelbrot/mandelbrot-full.csn
  3. 27
      examples/mandelbrot/mandelbrot-interactive.csn
  4. 14
      examples/mandelbrot/mandelbrot-lowres.csn

@ -10,23 +10,22 @@
(def GENERATION_MS 200)
; Real pixel size
(sc-init 400 400)
; Upscaling factor (bug pixels)
(sc-opt SCREEN_UPSCALE 10)
; Number of big pixels
; Number of pixels
(def W 40)
(def H 40)
(def UPSCALE 10)
; --- end of config ---
; !!! If you change size, also update the following constants.
; Compile-time math is not implemented yet.
; Real pixel size
(sc-init (=mul UPSCALE W) (=mul UPSCALE H))
; Upscaling factor (bug pixels)
(sc-opt SCREEN_UPSCALE UPSCALE)
(def XMAX 39) ; W-1
(def YMAX 39) ; H-1
(def NCELLS 1600) ; W*H
(def XMAX (=sub W 1))
(def YMAX (=sub H 1))
(def NCELLS (=mul W H))
; --- end of config ---
(sc-opt SCREEN_AUTO_BLIT 0)
(sc-erase 0) ; all black

@ -1,9 +1,12 @@
(
(sc-init 800 600)
(sc-opt SCREEN_AUTOBLIT 0)
; High resolution mandelbrot
(def W 800)
(def H 600)
(def MAXITER 50)
(def MAXITER 50) ; Increase for more detail but slower render
(sc-init W H)
(sc-opt SCREEN_AUTOBLIT 0)
(sym gradient r9)
(sym asciigr r10)

@ -1,10 +1,15 @@
(
(sc-init 1024 768)
(sc-opt SCREEN_AUTOBLIT 0)
(def W 1024)
(def H 768)
(sym MAXITER g0)
(ld MAXITER 50)
(def DEF_MAXITER 50)
; ---
(sc-init W H)
(sc-opt SCREEN_AUTOBLIT 0)
(sym maxiter g0)
(ld maxiter DEF_MAXITER)
(lds @cout "Interactive Mandelbrot\n")
(lds @cout "----------------------\n")
@ -86,7 +91,7 @@
(ld x col)
(:col)
(call pixel x y px py scale)
(sub r0 MAXITER 1)
(sub r0 maxiter 1)
(rcmp res0 1 r0
(eq?
(mod r0 res0 16)
@ -166,16 +171,16 @@
; R iter+
(sc-key r0 KEY_R (nz?
(add MAXITER 50)
(lds @cout "ITER=") (call printnum MAXITER) (ld @cout '\n')
(add maxiter 50)
(lds @cout "ITER=") (call printnum maxiter) (ld @cout '\n')
(mslp 200) ; Avoid unexpected rapid change
))
; F iter-
(sc-key r0 KEY_F (nz?
(cmp MAXITER 50)
(sub.gt MAXITER 50)
(lds @cout "ITER=") (call printnum MAXITER) (ld @cout '\n')
(cmp maxiter 50)
(sub.gt maxiter 50)
(lds @cout "ITER=") (call printnum maxiter) (ld @cout '\n')
(mslp 200) ; Avoid unexpected rapid change
))
@ -258,7 +263,7 @@
(sym iter r4)
(:iter)
(cmp iter MAXITER)
(cmp iter maxiter)
(j.eq :end)
(fmul r0 x x)
(fmul r1 y y)

@ -1,11 +1,15 @@
(
(sc-init 1024 768)
(sc-opt SCREEN_AUTOBLIT 0)
(sc-opt SCREEN_UPSCALE 8)
(def W 128)
(def H 96)
(def PX_W 1024)
(def PX_H 768)
(def UPSCALE 8)
(def MAXITER 50)
(sc-init PX_W PX_H)
(sc-opt SCREEN_AUTOBLIT 0)
(sc-opt SCREEN_UPSCALE UPSCALE)
(def W (=div PX_W UPSCALE))
(def H (=div PX_H UPSCALE))
(sym gradient r9)
(sym asciigr r10)

Loading…
Cancel
Save