Browse code

Added fizzbuzz example

neauoire authored on 13/10/2021 01:38:45
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,43 @@
1
+( FizzBuzz: a program that prints the integers from 1 to 100.
2
+	for multiples of three, print "Fizz"
3
+	for multiples of five, print "Buzz"
4
+	for multiples of both three and five, print "FizzBuzz" )
5
+
6
+%MOD  { DIVk MUL SUB }
7
+%HALT { #01 #0f DEO }
8
+%EMIT { #18 DEO }
9
+%RTN  { JMP2r }
10
+
11
+@program
12
+
13
+|0100 ( -> )
14
+
15
+	#6400
16
+	&loop
17
+		LITr 00
18
+		DUP #03 MOD ,&no3 JCN ;fizz-txt ;print-str JSR2 INCr &no3
19
+		DUP #05 MOD ,&no5 JCN ;buzz-txt ;print-str JSR2 INCr &no5
20
+		STHr ,&resume JCN
21
+		( print decimal )
22
+		DUPk #0a DIV #30 ADD EMIT
23
+		#0a MOD #30 ADD EMIT
24
+		&resume
25
+		( add linebreak ) #0a EMIT
26
+		INC GTHk ,&loop JCN
27
+	POP2
28
+
29
+	HALT
30
+
31
+BRK
32
+
33
+@print-str ( addr* -- )
34
+	
35
+	&loop
36
+		LDAk EMIT 
37
+		INC2 LDAk ,&loop JCN
38
+	POP2
39
+
40
+RTN
41
+
42
+@fizz-txt "Fizz $1
43
+@buzz-txt "Buzz $1