commit 2d26274
zzo38
·
2025-09-01 06:30:55 +0000 UTC
parent 8a2ccd6
Make the prg/dealcards.tal shorter (compiled program was 254 bytes and is now 199 bytes)
1 files changed,
+10,
-20
+10,
-20
1@@ -1,37 +1,27 @@
2 |0100
3 LIT2r ff33
4- #c3 DEI2 INC2 ;random/x STA2
5+ #17c3 DEI2 INC2 ;random/x STA2
6 #c5 DEI2 #c1 DEI2 EOR2 INC2 ;random/y STA2
7- #17 DEI ?input
8+ DEI ?input
9 @begin
10- ;deck
11+ DUP2k EOR2 [@ DUPk STZ INC DUP ]?
12+@loop
13 \\ Select random card
14- STHrk DUP #04 SFT ORA DUP #02 SFT ORA DUP #01 SFT ORA
15- DUP [@ POP random ADD OVR AND DUP STHrk GTH ]?
16- NIP ADD LDAk
17+ STHrk DUP #04 SFT ORA DUP #02 SFT ORA DUP EQUk SFT ORA
18+ DUP [@ POP random ADD OVR AND DUP STHrk GTH ]? NIP LDZk
19 \\ Display card
20- LIT2r =ranks STHk LITr 0f ANDr ADDr LDAr LITr 18 DEOr
21- LIT2r =suits STH LITr 04 SFTr ADDr LDAr LITr 18 DEOr
22+ LIT2r =ranks STHk LITr 02 SFTr ADDr LDAr LITr 18 DEOr
23+ LIT2r =suits STH LITr 03 ANDr ADDr LDAr LITr 18 DEOr
24 \\ Exchange card
25- LIT2r =deck ROTrk ADDr LDAr STH2 STAr POP2r
26+ LDZrk STH STZr
27 \\ Space
28 STHrk #0d DIVk MUL NEQ #16 MUL #0a ADD #18 DEO
29 \\ Next
30 STHrk [? #800f DEO BRK ]@
31- ADDrk NIPr !begin
32+ ADDrk NIPr !loop
33
34-@deck
35- \_@
36- 00 01 02 03 04 05 06 07 08 09 0a 0b 0c
37- 10 11 12 13 14 15 16 17 18 19 1a 1b 1c
38- 20 21 22 23 24 25 26 27 28 29 2a 2b 2c
39- 30 31 32 33 34 35 36 37 38 39 3a 3b 3c
40- \_@1-^ff00"&[@E]
41-
42-\_@
43 @suits "cdhs
44 @ranks "A23456789TJQK
45-\_@1-^ff00"&[@E]
46
47 @input
48 [; #10 DEO2 BRK ]@