@@ 33,7 33,9 @@
%GET-ITERATORS { SWP2k POP SWP POP }
%TOGGLE { DUP LDZ #00 = SWP STZ }
+%PORTEL-TYPE { #02 }
%OPERATOR-TYPE { #03 }
+%PORTER-TYPE { #04 }
%OUTPUT-TYPE { #05 }
%DATA-CELLS { #8000 }
@@ 60,9 62,10 @@
%GET-PORT { GET-CELL GET-VALUE } ( x y -- char )
%SET-PORT { SET-CELL } ( x y char -- )
-%GET-PORT-LOCK { DUP2 #01 SET-LOCK GET-PORT } ( x y -- char )
-%SET-PORT-LOCK { DUP2 #01 SET-LOCK SET-PORT } ( x y char -- )
-%SET-PORT-OUT { STH DUP2 OUTPUT-TYPE SET-TYPE STHr SET-PORT-LOCK } ( x y char -- )
+%GET-PORT-LEFT { DUP2 PORTEL-TYPE SET-TYPE GET-PORT } ( x y -- char )
+%GET-PORT-RIGHT { DUP2 PORTER-TYPE SET-TYPE DUP2 #01 SET-LOCK GET-PORT } ( x y -- char )
+
+%SET-PORT-OUTPUT { STH DUP2 OUTPUT-TYPE SET-TYPE DUP2 #01 SET-LOCK STHr SET-PORT } ( x y char -- )
%RELEASE-MOUSE { #00 .Mouse/state DEO }
@@ 254,6 257,8 @@ RTN
POP2 ;marker8_icn RTN &no-marker8
DUP2 #01 AND #00 EQU SWP #01 AND #00 EQU #0101 NEQ2 ,&no-marker4 JCN
POP2 ;marker4_icn RTN &no-marker4
+ DUP2 GET-TYPE #00 = ,&no-port JCN
+ POP2 ;marker4_icn RTN &no-port
POP2 ;font RTN
&no-bar
STH POP2 STHr
@@ 266,23 271,23 @@ RTN
@op-a ( x y char -- )
POP ( TODO: detect capitalization )
- ( get left ) DUP2 DECR GET-PORT STH
- ( get right ) DUP2 INCR GET-PORT-LOCK STH
+ ( get left ) DUP2 DECR GET-PORT-LEFT STH
+ ( get right ) DUP2 INCR GET-PORT-RIGHT STH
( incr y ) #01 +
( get result ) ADDr STHr GET-CHAR
- SET-PORT-OUT
+ SET-PORT-OUTPUT
RTN
@op-b ( x y char -- )
POP ( TODO: detect capitalization )
- ( get left ) DUP2 DECR GET-PORT STH
- ( get right ) DUP2 INCR GET-PORT-LOCK STH
+ ( get left ) DUP2 DECR GET-PORT-LEFT STH
+ ( get right ) DUP2 INCR GET-PORT-RIGHT STH
( incr y ) #01 +
( get result ) SUBr STHr
( loop-around ) DUP #80 < ,&no-bounds JCN #00 SWP - #24 SWP - &no-bounds GET-CHAR
- SET-PORT-OUT
+ SET-PORT-OUTPUT
RTN
@@ 724,10 729,10 @@ RTN
@cell-styles
21 ( 0 normal )
23 ( 1 locked )
- 2c ( 2 port-unlocked )
- 28 ( 3 operator )
- 2c ( 4 port-locked )
- 24 ( 5 port-output )
+ 21 ( 2 port-unlocked )
+ 24 ( 3 operator )
+ 22 ( 4 port-locked )
+ 28 ( 5 port-output )
29 ( 6 selected )
@untitled-txt "untitled.chr $1
@@ 756,43 761,89 @@ RTN
005a 2442 4224 5a00 0000 0808 3e08 0800
0000 0000 0000 0810 0000 0000 3e00 0000
0000 0000 0000 0800 0000 0204 0810 2000
- 003c 464a 5262 3c00 0018 0808 0808 1c00
- 003c 4202 3c40 7e00 003c 421c 0242 3c00
- 000c 1424 447e 0400 007e 407c 0242 3c00
- 003c 407c 4242 3c00 007e 0204 0810 1000
- 003c 423c 4242 3c00 003c 4242 3e02 3c00
- 0000 0010 0000 1000 0000 1000 0010 1020
- 0000 0810 2010 0800 0000 003e 003e 0000
- 0000 1008 0408 1000 003c 420c 1000 1000
- 003c 4232 4a42 3c00 003c 4242 7e42 4200
- 007c 427c 4242 7c00 003c 4240 4042 3c00
- 007c 4242 4242 7c00 007e 4078 4040 7e00
- 007e 4078 4040 4000 003c 4240 4642 3c00
- 0042 427e 4242 4200 001c 0808 0808 1c00
- 007e 0202 0242 3c00 0042 4478 4442 4200
- 0040 4040 4040 7e00 0042 665a 4242 4200
- 0042 6252 4a46 4200 003c 4242 4242 3c00
- 007c 4242 7c40 4000 003c 4242 4244 3a00
- 007c 4242 7c44 4200 003e 403c 0242 3c00
- 007e 0808 0808 1000 0042 4242 4244 3a00
- 0042 4242 4224 1800 0042 4242 5a66 4200
- 0042 423c 4242 4200 0042 423e 0242 3c00
- 007e 020c 3040 7e00 000c 0808 0808 0c00
- 0040 2010 0804 0200 0030 1010 1010 3000
- 0008 1400 0000 0000 0000 0000 0000 7e00
- 0008 0400 0000 0000 0000 3c02 3e42 3a00
- 0040 407c 4242 7c00 0000 3c42 4042 3c00
- 0002 023e 4242 3e00 0000 3c42 7e40 3e00
- 0000 3e40 7840 4000 0000 3c42 3e02 3c00
- 0040 405c 6242 4200 0008 0018 0808 0400
- 0008 0018 0808 4830 0040 4244 7844 4200
- 0010 1010 1010 0c00 0000 6c52 5252 5200
- 0000 5c62 4242 4200 0000 3c42 4242 3c00
- 0000 7c42 427c 4040 0000 3e42 423e 0202
- 0000 5c62 4040 4000 0000 3e40 3c02 7c00
- 0008 7e08 0808 1000 0000 4242 4244 3a00
- 0000 4242 4224 1800 0000 5252 5252 2e00
- 0000 4224 1824 4200 0000 4242 3e02 7c00
- 0000 7e02 3c40 7e00 000c 0810 1008 0c00
- 0008 0808 0808 0800 0030 1008 0810 3000
- 0000 0032 4c00 0000 3c42 99a1 a199 423c
+&numbers
+ 0000 3c42 4242 3c00
+ 0000 3010 1010 1000
+ 0000 7c02 3c40 7e00
+ 0000 7c02 7c02 7c00
+ 0000 1222 427e 0200
+ 0000 7e40 3c02 7e00
+ 0000 3e40 7c42 3c00
+ 0000 7e02 0408 1000
+ 0000 7e42 3c42 7e00
+ 0000 7e42 3e02 0200
+ ( -- )
+ 0000 0010 0000 1000
+ 0000 1000 0010 1020
+ 0000 0810 2010 0800
+ 0000 003e 003e 0000
+ 0000 1008 0408 1000
+ 003c 420c 1000 1000
+ 003c 4232 4a42 3c00
+&uc
+ 0000 3c42 7e42 4200
+ 0000 7c42 7c42 7c00
+ 0000 3e40 4040 3e00
+ 0000 7c42 4242 7c00
+ 0000 7e40 7e40 7e00
+ 0000 7e40 7040 4000
+ 0000 3e40 5c42 3e00
+ 0000 4242 7e42 4200
+ 0000 1010 1010 1000
+ 0000 7e02 0242 3c00
+ 0000 4648 7048 4600
+ 0000 4040 4040 7e00
+ 0000 6e52 5252 5200
+ 0000 6252 4a46 4200
+ 0000 3c42 4242 3c00
+ 0000 7e42 7c40 4000
+ 0000 3c42 4a44 3a00
+ 0000 7e42 7c42 4200
+ 0000 3e40 7e02 7c00
+ 0000 7e10 1010 1000
+ 0000 4242 4242 3c00
+ 0000 4242 4224 1800
+ 0000 5252 5252 6e00
+ 0000 4224 1824 4200
+ 0000 4224 1010 1000
+ 0000 7e02 3c40 7e00
+ ( ? )
+ 000c 0808 0808 0c00
+ 0040 2010 0804 0200
+ 0030 1010 1010 3000
+ 0008 1400 0000 0000
+ 0000 0000 0000 7e00
+ 0008 0400 0000 0000
+&lc
+ 0000 7c02 3e42 7a00
+ 0000 4040 7c42 7c00
+ 0000 003e 4040 3e00
+ 0000 0202 3e42 3e00
+ 0000 3c42 7c40 3e00
+ 0000 3c42 7040 4000
+ 0000 3e42 3e02 7c00
+ 0000 4040 7c42 4200
+ 0000 1000 1010 1000
+ 0000 7e04 0444 3800
+ 0000 4244 7844 4200
+ 0000 4040 4040 3e00
+ 0000 6c52 5252 5200
+ 0000 5c62 4242 4200
+ 0000 1c22 4244 3800
+ 0000 7c42 7c40 4000
+ 0000 3e42 3e02 0200
+ 0000 5c62 4040 4000
+ 0000 3e40 3c02 7c00
+ 0000 7e10 1010 0800
+ 0000 4242 4246 3a00
+ 0000 4242 2424 1800
+ 0000 4242 5252 6c00
+ 0000 4242 3c42 4200
+ 0000 4242 3e02 7c00
+ 0000 7e04 1820 7e00
+
+ 000c 0810 1008 0c00
+ 0008 0808 0808 0800
+ 0030 1008 0810 3000
+ 0000 0032 4c00 0000
+ 3c42 99a1 a199 423c