~rabbits/orca-toy

b64d6b1b0ac84227d3374538dffe6074644e9bb8 — Devine Lu Linvega 22 days ago 863c86a
Test file triggers crash
2 files changed, 66 insertions(+), 71 deletions(-)

M etc/tests.orca
M src/orca.tal
M etc/tests.orca => etc/tests.orca +27 -25
@@ 1,25 1,27 @@
.................................................................................................
#...Diadic..................Tables..........Cardinals...............#............................
.................................................................................................
....C6.......6C6............C4.......C4.R4.......H...............................................
....56T.1aA0Z.46T.1aA0Z.....14Tabcd..14P0.......xE...............................................
....aVZ.......bV0.............b........3010........................H.............................
..................................................................xS.............................
...3Ka.b.3Ka.b.3Ka.b.3Ka.b..C4.......C4.R4.......................................................
.....ZA0...ZB0...ZF0...ZI0..1.Oabcd..1.X0......H...................H.............................
......z.....z...........0.....b........1032.2.xN..................xW.............................
.............................................0....W..............................................
...3Ka.b.3Ka.b.3Ka.b.3Ka.b..C4........C4.R4......................................................
.....ZL0...ZM0...ZR0...ZC0..12Qa0.....12G3a.#.Wires.................#............................
......0.....0.....i.....0....b1b1.......1a.......................................................
...............................c2.......3a...C4..................................................
...3Ka.b.3Ka.b.3Ka.b...........d3.......2a...1YYYYYY1............................................
.....ZD0...ZU0...ZZ0....................0a...J......J............................................
............*.....0..........................J......J............................................
.............................................J......J............................................
.............................................1YYYY1F1............................................
...................................................*.............................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
..................................................................................................
#...Diadic..................Tables..........Cardinals...............#.............................
..................................................................................................
....C7........7C7...........C4.......C4.R4.......H................................................
....57T.1aA0Zw.37T.1aA0Zw...04Tabcd..04P3.......xE................................................
....aVZ........bVA............a........3303.................E......H..............................
..................................................................xS..............................
...3Ka.b.3Ka.b.3Ka.b.3Ka.b..C4.......C4.R4........................................................
.....ZAA...ZBA...ZFA...ZIA..0.Oabcd..0.X2......H...................H..............................
......9.....P...........2.....a........2110.2.xN..................xW..............................
.............................................0....................................................
...3Ka.b.3Ka.b.3Ka.b.3Ka.b..C4........C4.R4.......................................................
.....ZLA...ZMA...ZRA...ZCA..02Qa0.....02G1a.#.Wires.................#.............................
......A.....M.....4.....3....a0b1.......1a........................................................
...............................c2.......1a...C4...................................................
...3Ka.b.3Ka.b.3Ka.b...........d3.......0a...0YYYYYY0.............................................
.....ZDA...ZUA...ZZA....................0a...J......J.............................................
............*.....A..........................J......J.............................................
.............................................J......J.............................................
.............................................0YYYY0F0.............................................
...................................................*..............................................
..................................................................................................
..................................................................................................
..................................................................................................
..................................................................................................
..................................................................................................
..................................................................................................

M src/orca.tal => src/orca.tal +39 -46
@@ 418,9 418,7 @@ BRK

!set-sel-range

@add-pos
	ROT ADD STH ADD STHr
JMP2r
@add-pos ( xy xy -- xy ) ROT ADD STH ADD STHr JMP2r

@set-sel-reset ( -- ) .selection/from LDZ2 !set-sel-from
@set-sel-all ( -- ) #0000 .grid/size LDZ2 !set-sel-range


@@ 824,15 822,14 @@ JMP2r

@is-selected ( x y -- bool )

	DUP .selection/y1 LDZ LTH ?&end
	DUP .selection/y2 LDZ GTH ?&end
	OVR .selection/x1 LDZ LTH ?&end
	OVR .selection/x2 LDZ GTH ?&end
		POP2 #01 JMP2r
	&end
	POP2 #00
	DUP .selection/y1 LDZ LTH ?&outside
	DUP .selection/y2 LDZ GTH ?&outside
	OVR .selection/x1 LDZ LTH ?&outside
	OVR .selection/x2 LDZ GTH ?&outside
	POP2 #01

JMP2r
	&outside POP2 #00 JMP2r

@draw-guide ( -- )



@@ 984,32 981,6 @@ JMP2r
!draw-state
	&lb 0a

( random )

@init-prng ( -- )

	( seed )
	#00 .DateTime/second DEI
	#00 .DateTime/minute DEI #60 SFT2 EOR2
	#00 .DateTime/hour DEI #c0 SFT2 EOR2 ,prng/x STR2
	#00 .DateTime/hour DEI #04 SFT2
	#00 .DateTime/day DEI DUP2 ADD2 EOR2
	#00 .DateTime/month DEI #60 SFT2 EOR2
	.DateTime/year DEI2 #a0 SFT2 EOR2 ,prng/y STR2

JMP2r

@prng ( -- number* )

	LIT2 &x $2
	DUP2 #50 SFT2 EOR2
	DUP2 #03 SFT2 EOR2
	LIT2 &y $2 DUP2 ,&x STR2
	DUP2 #01 SFT2 EOR2 EOR2
	,&y STR2k POP

JMP2r

( snarf )

@snarf-txt ".snarf $1


@@ 1064,16 1035,6 @@ JMP2r
JMP2r

(
@|helpers )

@base128 ( char - b128 ) chrb36 #00 SWP #007f MUL2 #0023 DIV2 NIP JMP2r
@b36chr ( b36 -- char ) #24 ( MOD ) [ DIVk MUL SUB ] #00 SWP ;b36clc ADD2 LDA JMP2r
@chrb36 ( char -- b36 ) #20 SUB #00 SWP ;values ADD2 LDA JMP2r
@chrmid ( char -- midi ) DUP chrb36 SWP ciuc #24 MUL ADD #00 SWP ;notes ADD2 LDA JMP2r
@ciuc ( char -- bool ) LIT "A SUB #1a LTH JMP2r
@ci-key ( char -- bool ) #20 SUB #5b LTH JMP2r

(
@|ports )

@get-port-right1-value ( addr* -- value ) INC2


@@ 1162,8 1123,40 @@ JMP2r
(
@|stdlib )

@base128 ( char - b128 ) chrb36 #00 SWP #007f MUL2 #0023 DIV2 NIP JMP2r
@b36chr ( b36 -- char ) #24 ( MOD ) [ DIVk MUL SUB ] #00 SWP ;b36clc ADD2 LDA JMP2r
@chrb36 ( char -- b36 ) #20 SUB #00 SWP ;values ADD2 LDA JMP2r
@chrmid ( char -- midi ) DUP chrb36 SWP ciuc #24 MUL ADD #00 SWP ;notes ADD2 LDA JMP2r
@ciuc ( char -- bool ) LIT "A SUB #1a LTH JMP2r
@ci-key ( char -- bool ) #20 SUB #5b LTH JMP2r
@mcpy ( src* dst* len* -- ) SWP2 STH2 OVR2 ADD2 SWP2 &loop LDAk STH2kr STA INC2r INC2 GTH2k ?&loop POP2 POP2 POP2r JMP2r

( random )

@init-prng ( -- )

	( seed )
	#00 .DateTime/second DEI
	#00 .DateTime/minute DEI #60 SFT2 EOR2
	#00 .DateTime/hour DEI #c0 SFT2 EOR2 ,prng/x STR2
	#00 .DateTime/hour DEI #04 SFT2
	#00 .DateTime/day DEI DUP2 ADD2 EOR2
	#00 .DateTime/month DEI #60 SFT2 EOR2
	.DateTime/year DEI2 #a0 SFT2 EOR2 ,prng/y STR2

JMP2r

@prng ( -- number* )

	LIT2 &x $2
	DUP2 #50 SFT2 EOR2
	DUP2 #03 SFT2 EOR2
	LIT2 &y $2 DUP2 ,&x STR2
	DUP2 #01 SFT2 EOR2 EOR2
	,&y STR2k POP

JMP2r

@mfil ( src* len* data* -- )

	,&data STR2