uxn

Varvara Ordinator, written in ANSI C(SDL2)
git clone https://git.eamoncaddigan.net/uxn.git
Log | Files | Refs | README | LICENSE

commit a206ed0b10f0a2afbfa5fb2d1a4cd2b439367237
parent 8630028e97d133aa15ceb1bdeba32b2ae43b5276
Author: neauoire <aliceffekt@gmail.com>
Date:   Tue, 11 May 2021 11:14:52 -0700

Renamed PEK/POK to LDZ/STZ

Diffstat:
Metc/usm.sublime-syntax | 8++++----
Metc/uxambly-translate.moon | 10+++++-----
Mprojects/demos/bifurcan.usm | 56++++++++++++++++++++++++++++----------------------------
Mprojects/demos/drum-rack.usm | 206++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mprojects/demos/life.usm | 46+++++++++++++++++++++++-----------------------
Mprojects/demos/musictracker.usm | 248++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mprojects/demos/piano.usm | 164++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mprojects/demos/polycat.usm | 38+++++++++++++++++++-------------------
Mprojects/demos/theme.usm | 170++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mprojects/examples/devices/audio.usm | 12++++++------
Mprojects/examples/devices/console.lib.usm | 8++++----
Mprojects/examples/devices/controller.buttons.usm | 10+++++-----
Mprojects/examples/devices/datetime.usm | 64++++++++++++++++++++++++++++++++--------------------------------
Mprojects/examples/devices/mouse.usm | 72++++++++++++++++++++++++++++++++++++------------------------------------
Mprojects/examples/devices/screen.usm | 28++++++++++++++--------------
Mprojects/examples/gui/animation.usm | 24++++++++++++------------
Mprojects/examples/gui/hover.usm | 70+++++++++++++++++++++++++++++++++++-----------------------------------
Mprojects/examples/gui/label.usm | 38+++++++++++++++++++-------------------
Mprojects/examples/gui/picture.usm | 28++++++++++++++--------------
Mprojects/examples/gui/shapes.usm | 84++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mprojects/examples/gui/wallpaper.usm | 16++++++++--------
Mprojects/software/asma.usm | 8++++----
Mprojects/software/left.usm | 322++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mprojects/software/nasu.usm | 470++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mprojects/software/neralie.usm | 110++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mprojects/software/noodle.usm | 512++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mprojects/software/orca.usm | 88++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/assembler.c | 2+-
28 files changed, 1456 insertions(+), 1456 deletions(-)

diff --git a/etc/usm.sublime-syntax b/etc/usm.sublime-syntax @@ -18,10 +18,10 @@ contexts: - match: '\.(\S+)\sDEO' scope: constant.numeric pop: true - - match: '\.(\S+)\sPOK2' + - match: '\.(\S+)\sSTZ2' scope: constant.numeric pop: true - - match: '\.(\S+)\sPOK' + - match: '\.(\S+)\sSTZ' scope: constant.numeric pop: true - match: '\.(\S+)\sLDA2' @@ -37,10 +37,10 @@ contexts: - match: '\.(\S+)\sDEI' scope: entity.name.type.typedef pop: true - - match: '\.(\S+)\sPEK2' + - match: '\.(\S+)\sLDZ2' scope: entity.name.type.typedef pop: true - - match: '\.(\S+)\sPEK' + - match: '\.(\S+)\sLDZ' scope: entity.name.type.typedef pop: true - match: '\.(\S+)\sSTA2' diff --git a/etc/uxambly-translate.moon b/etc/uxambly-translate.moon @@ -7,10 +7,10 @@ import P, R, S, C, Ct, Cp, V from require 'lpeg' local labels, filename opcode_translate = - PEK2: 'LDA' - POK2: 'STA' - LDR: 'PEK2' - STR: 'POK2' + LDZ2: 'LDA' + STZ2: 'STA' + LDR: 'LDZ2' + STR: 'STZ2' LDR2: 'LDA2' STR2: 'STA2' @@ -26,7 +26,7 @@ grammar = P { r, w = if var\sub(1, 1) == var\sub(1, 1)\upper! ' DEI', ' DEO' else - ' PEK', ' POK' + ' LDZ', ' STZ' for i = 7, select('#', ...), 6 k = select i, ... rr, ww = if '2' == select i + 3, ... diff --git a/projects/demos/bifurcan.usm b/projects/demos/bifurcan.usm @@ -41,8 +41,8 @@ ;on-mouse .Mouse/vector DEO2 ( find center ) - .Screen/width DEI2 2/ .center/x POK2 - .Screen/height DEI2 2/ .center/y POK2 + .Screen/width DEI2 2/ .center/x STZ2 + .Screen/height DEI2 2/ .center/y STZ2 ( background ) ;tiles ;cover-pattern JSR2 @@ -53,9 +53,9 @@ BRK @on-frame ( -> ) ( only draw once per second ) - .DateTime/second DEI .last PEK NEQ #01 JCN [ BRK ] + .DateTime/second DEI .last LDZ NEQ #01 JCN [ BRK ] - .DateTime/second DEI .last POK + .DateTime/second DEI .last STZ ;redraw JSR2 @@ -66,8 +66,8 @@ BRK ;draw-cursor JSR2 .Mouse/state DEI #00 EQU ,&no-touch JCN - ( incr ) .style PEK INC #03 MOD .style POK - ( bg ) ;tiles .style PEK #10 MUL TOS ADD2 ;cover-pattern JSR2 + ( incr ) .style LDZ INC #03 MOD .style STZ + ( bg ) ;tiles .style LDZ #10 MUL TOS ADD2 ;cover-pattern JSR2 ( fg ) ;redraw JSR2 ( release ) #00 .Mouse/state DEO &no-touch @@ -77,26 +77,26 @@ BRK @redraw ( -- ) ( hrs ) - [ .center/x PEK2 #0018 SUB2 ] - [ .center/y PEK2 #0048 SUB2 ] + [ .center/x LDZ2 #0018 SUB2 ] + [ .center/y LDZ2 #0048 SUB2 ] .DateTime/hour DEI #0a DIV ;draw-number JSR2 - [ .center/x PEK2 #0008 ADD2 ] - [ .center/y PEK2 #0048 SUB2 ] + [ .center/x LDZ2 #0008 ADD2 ] + [ .center/y LDZ2 #0048 SUB2 ] .DateTime/hour DEI #0a MOD ;draw-number JSR2 ( min ) - [ .center/x PEK2 #0018 SUB2 ] - [ .center/y PEK2 #0018 SUB2 ] + [ .center/x LDZ2 #0018 SUB2 ] + [ .center/y LDZ2 #0018 SUB2 ] .DateTime/minute DEI #0a DIV ;draw-number JSR2 - [ .center/x PEK2 #0008 ADD2 ] - [ .center/y PEK2 #0018 SUB2 ] + [ .center/x LDZ2 #0008 ADD2 ] + [ .center/y LDZ2 #0018 SUB2 ] .DateTime/minute DEI #0a MOD ;draw-number JSR2 ( sec ) - [ .center/x PEK2 #0018 SUB2 ] - [ .center/y PEK2 #0018 ADD2 ] + [ .center/x LDZ2 #0018 SUB2 ] + [ .center/y LDZ2 #0018 ADD2 ] .DateTime/second DEI #0a DIV ;draw-number JSR2 - [ .center/x PEK2 #0008 ADD2 ] - [ .center/y PEK2 #0018 ADD2 ] + [ .center/x LDZ2 #0008 ADD2 ] + [ .center/y LDZ2 #0018 ADD2 ] .DateTime/second DEI #0a MOD ;draw-number JSR2 @@ -105,15 +105,15 @@ RTN @draw-number ( x y n -- ) STH - ( save pos ) .anchor/y POK2 .anchor/x POK2 + ( save pos ) .anchor/y STZ2 .anchor/x STZ2 #00 #0f &loop - ( save-x ) OVR #03 MOD TOS #0008 MUL2 .anchor/x PEK2 ADD2 .Screen/x DEO2 - ( save-y ) OVR #03 DIV TOS #0008 MUL2 .anchor/y PEK2 ADD2 .Screen/y DEO2 + ( save-x ) OVR #03 MOD TOS #0008 MUL2 .anchor/x LDZ2 ADD2 .Screen/x DEO2 + ( save-y ) OVR #03 DIV TOS #0008 MUL2 .anchor/y LDZ2 ADD2 .Screen/y DEO2 ( get digit* ) OVR DUPr STHr #02 MUL TOS ;digits ADD2 LDA2 ( get bit ) ROT #0e SWP SUB TOS SFT2 #0001 AND2 ( set tile ) #0008 MUL2 ;tiles ADD2 - ( set style ) .style PEK #10 MUL TOS ADD2 + ( set style ) .style LDZ #10 MUL TOS ADD2 .Screen/addr DEO2 ( draw ) #21 .Screen/color DEO ( incr ) SWP INC SWP @@ -146,15 +146,15 @@ RTN ( clear last cursor ) ;cursor .Screen/addr DEO2 - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 #30 .Screen/color DEO ( record pointer positions ) - .Mouse/x DEI2 .pointer/x POK2 - .Mouse/y DEI2 .pointer/y POK2 + .Mouse/x DEI2 .pointer/x STZ2 + .Mouse/y DEI2 .pointer/y STZ2 ( draw new cursor ) - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 ( colorize on state ) #31 [ .Mouse/state DEI #00 NEQ ] ADD .Screen/color DEO diff --git a/projects/demos/drum-rack.usm b/projects/demos/drum-rack.usm @@ -81,53 +81,53 @@ #1000 .Audio3/length DEO2 ( defaults ) - #01 .modes POK - #01 .piano/octave POK + #01 .modes STZ + #01 .piano/octave STZ ( find center ) - .Screen/width DEI2 #0002 // .center/x POK2 - .Screen/height DEI2 #0002 // .center/y POK2 + .Screen/width DEI2 #0002 // .center/x STZ2 + .Screen/height DEI2 #0002 // .center/y STZ2 ( place frame ) - .center/x PEK2 PAD-WIDTH #0003 ** -- #0010 -- .frame/x1 POK2 - .center/y PEK2 #0050 -- .frame/y1 POK2 - .center/x PEK2 PAD-WIDTH #0003 ** ++ #0010 ++ .frame/x2 POK2 - .frame/y1 PEK2 PAD-HEIGHT #0004 ** ++ #0028 ++ .frame/y2 POK2 + .center/x LDZ2 PAD-WIDTH #0003 ** -- #0010 -- .frame/x1 STZ2 + .center/y LDZ2 #0050 -- .frame/y1 STZ2 + .center/x LDZ2 PAD-WIDTH #0003 ** ++ #0010 ++ .frame/x2 STZ2 + .frame/y1 LDZ2 PAD-HEIGHT #0004 ** ++ #0028 ++ .frame/y2 STZ2 ( place pad-view ) - .frame/x1 PEK2 .pad-view/x1 POK2 - .frame/y1 PEK2 .pad-view/y1 POK2 - .pad-view/x1 PEK2 #0004 PAD-WIDTH ** ++ .pad-view/x2 POK2 - .pad-view/y1 PEK2 #0004 PAD-HEIGHT ** ++ .pad-view/y2 POK2 + .frame/x1 LDZ2 .pad-view/x1 STZ2 + .frame/y1 LDZ2 .pad-view/y1 STZ2 + .pad-view/x1 LDZ2 #0004 PAD-WIDTH ** ++ .pad-view/x2 STZ2 + .pad-view/y1 LDZ2 #0004 PAD-HEIGHT ** ++ .pad-view/y2 STZ2 ( place mix-view ) - .pad-view/x2 PEK2 #0006 ++ .mix-view/x1 POK2 - .pad-view/y1 PEK2 .mix-view/y1 POK2 - .mix-view/x1 PEK2 #007a ++ .mix-view/x2 POK2 - .pad-view/y2 PEK2 .mix-view/y2 POK2 + .pad-view/x2 LDZ2 #0006 ++ .mix-view/x1 STZ2 + .pad-view/y1 LDZ2 .mix-view/y1 STZ2 + .mix-view/x1 LDZ2 #007a ++ .mix-view/x2 STZ2 + .pad-view/y2 LDZ2 .mix-view/y2 STZ2 ( place oct-view ) - .frame/x1 PEK2 .oct-view/x1 POK2 - .mix-view/y2 PEK2 #0004 ++ .oct-view/y1 POK2 - .oct-view/x1 PEK2 #0050 ++ .oct-view/x2 POK2 - .oct-view/y1 PEK2 #0018 ++ .oct-view/y2 POK2 + .frame/x1 LDZ2 .oct-view/x1 STZ2 + .mix-view/y2 LDZ2 #0004 ++ .oct-view/y1 STZ2 + .oct-view/x1 LDZ2 #0050 ++ .oct-view/x2 STZ2 + .oct-view/y1 LDZ2 #0018 ++ .oct-view/y2 STZ2 ( place wav-view ) - .oct-view/x2 PEK2 .wav-view/x1 POK2 - .mix-view/y2 PEK2 #0004 ++ .wav-view/y1 POK2 - .frame/x2 PEK2 .wav-view/x2 POK2 - .wav-view/y1 PEK2 #0020 ++ .wav-view/y2 POK2 + .oct-view/x2 LDZ2 .wav-view/x1 STZ2 + .mix-view/y2 LDZ2 #0004 ++ .wav-view/y1 STZ2 + .frame/x2 LDZ2 .wav-view/x2 STZ2 + .wav-view/y1 LDZ2 #0020 ++ .wav-view/y2 STZ2 ( draw outlines ) - .mix-view/x1 PEK2 #0004 -- - .mix-view/y1 PEK2 #0000 -- - .mix-view/x2 PEK2 #0002 -- - .mix-view/y2 PEK2 #0002 -- + .mix-view/x1 LDZ2 #0004 -- + .mix-view/y1 LDZ2 #0000 -- + .mix-view/x2 LDZ2 #0002 -- + .mix-view/y2 LDZ2 #0002 -- #01 ;line-rect JSR2 - .wav-view/x1 PEK2 #0000 -- - .wav-view/y1 PEK2 #0002 -- - .wav-view/x2 PEK2 #0002 -- - .wav-view/y2 PEK2 #0002 ++ + .wav-view/x1 LDZ2 #0000 -- + .wav-view/y1 LDZ2 #0002 -- + .wav-view/x2 LDZ2 #0002 -- + .wav-view/y2 LDZ2 #0002 ++ #01 ;line-rect JSR2 ( initial draw ) @@ -155,8 +155,8 @@ BRK #00 #04 &loop OVR STH - ( x ) .mix-view/x1 PEK2 #0074 ++ - ( y ) .mix-view/y1 PEK2 PAD-HEIGHT DUPr STHr TOS ** ++ #0002 ++ + ( x ) .mix-view/x1 LDZ2 #0074 ++ + ( y ) .mix-view/y1 LDZ2 PAD-HEIGHT DUPr STHr TOS ** ++ #0002 ++ ( output ) .Audio0/output STHr #10 * + DEI ;draw-monitor JSR2 ( incr ) SWP #01 + SWP @@ -171,16 +171,16 @@ BRK .Mouse/state DEI #00 ! #01 JCN [ BRK ] - .Mouse/x DEI2 DUP2 .pad-view/x1 PEK2 >> ROT ROT .pad-view/x2 PEK2 #0001 ++ << #0101 == - .Mouse/y DEI2 DUP2 .pad-view/y1 PEK2 >> ROT ROT .pad-view/y2 PEK2 << #0101 == + .Mouse/x DEI2 DUP2 .pad-view/x1 LDZ2 >> ROT ROT .pad-view/x2 LDZ2 #0001 ++ << #0101 == + .Mouse/y DEI2 DUP2 .pad-view/y1 LDZ2 >> ROT ROT .pad-view/y2 LDZ2 << #0101 == #0101 == ;on-touch-pad JCN2 - .Mouse/x DEI2 DUP2 .mix-view/x1 PEK2 >> ROT ROT .mix-view/x2 PEK2 #0001 ++ << #0101 == - .Mouse/y DEI2 DUP2 .mix-view/y1 PEK2 >> ROT ROT .mix-view/y2 PEK2 << #0101 == + .Mouse/x DEI2 DUP2 .mix-view/x1 LDZ2 >> ROT ROT .mix-view/x2 LDZ2 #0001 ++ << #0101 == + .Mouse/y DEI2 DUP2 .mix-view/y1 LDZ2 >> ROT ROT .mix-view/y2 LDZ2 << #0101 == #0101 == ;on-touch-mix JCN2 - .Mouse/x DEI2 DUP2 .oct-view/x1 PEK2 >> ROT ROT .oct-view/x2 PEK2 #0001 ++ << #0101 == - .Mouse/y DEI2 DUP2 .oct-view/y1 PEK2 >> ROT ROT .oct-view/y2 PEK2 << #0101 == + .Mouse/x DEI2 DUP2 .oct-view/x1 LDZ2 >> ROT ROT .oct-view/x2 LDZ2 #0001 ++ << #0101 == + .Mouse/y DEI2 DUP2 .oct-view/y1 LDZ2 >> ROT ROT .oct-view/y2 LDZ2 << #0101 == #0101 == ;on-touch-oct JCN2 BRK @@ -229,8 +229,8 @@ BRK @on-touch-pad ( -> ) - ( x ) .Mouse/x DEI2 .pad-view/x1 PEK2 -- PAD-WIDTH // TOB - ( y ) .Mouse/y DEI2 .pad-view/y1 PEK2 -- PAD-HEIGHT // TOB #04 * + + ( x ) .Mouse/x DEI2 .pad-view/x1 LDZ2 -- PAD-WIDTH // TOB + ( y ) .Mouse/y DEI2 .pad-view/y1 LDZ2 -- PAD-HEIGHT // TOB #04 * + DUP SWP ;play-pad JSR2 @@ -242,8 +242,8 @@ BRK @on-touch-mix ( -> ) - ( channel ) .Mouse/y DEI2 .mix-view/y1 PEK2 -- PAD-HEIGHT // TOB STH - ( knob ) .Mouse/x DEI2 .mix-view/x1 PEK2 -- #0010 // TOB + ( channel ) .Mouse/y DEI2 .mix-view/y1 LDZ2 -- PAD-HEIGHT // TOB STH + ( knob ) .Mouse/x DEI2 .mix-view/x1 LDZ2 -- #0010 // TOB ( adsr ) DUP #00 ! ,&no-a JCN .Audio0/adsr [ DUPr STHr #10 * + ] DEI @@ -263,9 +263,9 @@ BRK .Audio0/adsr [ DUPr STHr #10 * + ] #01 + DEO &no-r ( modes ) DUP #04 ! ,&no-repeat JCN - .modes [ DUPr STHr + ] PEK + .modes [ DUPr STHr + ] LDZ #00 = - .modes [ DUPr STHr + ] POK &no-repeat + .modes [ DUPr STHr + ] STZ &no-repeat ( volume ) DUP #05 ! ,&no-left JCN .Audio0/volume [ DUPr STHr #10 * + ] DEI @@ -287,26 +287,26 @@ BRK @on-touch-oct ( -> ) - .Mouse/x DEI2 .oct-view/x1 PEK2 -- #0008 // TOB #08 ! ,&no-mod JCN - .Mouse/y DEI2 .oct-view/y1 PEK2 -- #0008 // TOB + .Mouse/x DEI2 .oct-view/x1 LDZ2 -- #0008 // TOB #08 ! ,&no-mod JCN + .Mouse/y DEI2 .oct-view/y1 LDZ2 -- #0008 // TOB DUP #00 ! ,&no-incr JCN - .piano/octave PEK #01 + .piano/octave POK &no-incr + .piano/octave LDZ #01 + .piano/octave STZ &no-incr DUP #02 ! ,&no-decr JCN - .piano/octave PEK #01 - .piano/octave POK &no-decr + .piano/octave LDZ #01 - .piano/octave STZ &no-decr POP ( release ) #00 .Mouse/state DEO ;draw-octave JSR2 BRK &no-mod - .Mouse/x DEI2 .oct-view/x1 PEK2 -- #0008 // TOB #06 GTH ,&no-key JCN - .Mouse/x DEI2 .oct-view/x1 PEK2 -- #0008 // + .Mouse/x DEI2 .oct-view/x1 LDZ2 -- #0008 // TOB #06 GTH ,&no-key JCN + .Mouse/x DEI2 .oct-view/x1 LDZ2 -- #0008 // ( set pitch of pad ) - DUP2 ;notes ++ LDA .pads/last PEK SWP .piano/octave PEK #02 - #0c * + + DUP2 ;notes ++ LDA .pads/last LDZ SWP .piano/octave LDZ #02 - #0c * + ( save ) SWP TOS ;pad-pitch ++ STA ( record last note ) - TOB .piano/last POK - .pads/last PEK ;play-pad JSR2 + TOB .piano/last STZ + .pads/last LDZ ;play-pad JSR2 ( release ) #00 .Mouse/state DEO ;draw-octave JSR2 &no-key @@ -316,8 +316,8 @@ BRK @play-pad ( note pad -- ) ( unselect last ) - .pads/last PEK #01 ;draw-pad JSR2 - DUP .pads/last POK + .pads/last LDZ #01 ;draw-pad JSR2 + DUP .pads/last STZ ( highlight ) DUP #02 ;draw-pad JSR2 ( addr ) @@ -325,7 +325,7 @@ BRK DUP #04 / #10 * .Audio0/addr + STH2r ROT DEO2 ( pitch ) DUP TOS ;pad-pitch ++ LDA STH - DUP #04 / .modes + PEK #00 = #80 * STH ADDr + DUP #04 / .modes + LDZ #00 = #80 * STH ADDr DUP #04 / #10 * .Audio0/pitch + STHr SWP DEO #04 / ;draw-mixer JSR2 @@ -337,25 +337,25 @@ RTN #02 * #00 SWP ;pad-addr ++ LDA2 STH2 ( clear ) - .wav-view/x1 PEK2 #0002 ++ - .wav-view/y1 PEK2 - .wav-view/x2 PEK2 #0002 -- - .wav-view/y2 PEK2 + .wav-view/x1 LDZ2 #0002 ++ + .wav-view/y1 LDZ2 + .wav-view/x2 LDZ2 #0002 -- + .wav-view/y2 LDZ2 #00 ;fill-rect JSR2 - .wav-view/x1 PEK2 #0002 ++ .Screen/x DEO2 + .wav-view/x1 LDZ2 #0002 ++ .Screen/x DEO2 ( waveform ) #00 #e8 &loop ( dotted line ) OVR #01 AND ,&no-dot JCN - .wav-view/y1 PEK2 #0010 ++ .Screen/y DEO2 + .wav-view/y1 LDZ2 #0010 ++ .Screen/y DEO2 #01 .Screen/color DEO &no-dot OVR TOS #0010 ** [ DUP2r STH2r ] ++ LDA #02 / - TOS #0004 // .wav-view/y1 PEK2 ++ .Screen/y DEO2 + TOS #0004 // .wav-view/y1 LDZ2 ++ .Screen/y DEO2 .Screen/x DEI2 #0001 ++ .Screen/x DEO2 ( draw ) #02 .Screen/color DEO ( incr ) SWP #01 + SWP @@ -367,24 +367,24 @@ RTN @draw-mixer ( mixer -- ) - DUP STH #00 SWP PAD-HEIGHT ** .mix-view/y1 PEK2 ++ #0003 ++ + DUP STH #00 SWP PAD-HEIGHT ** .mix-view/y1 LDZ2 ++ #0003 ++ ( adsr ) - DUP2 .mix-view/x1 PEK2 SWP2 + DUP2 .mix-view/x1 LDZ2 SWP2 .Audio0/adsr [ DUPr STHr #10 * + ] DEI #04 SFT ;draw-knob JSR2 - DUP2 .mix-view/x1 PEK2 #0010 ++ SWP2 + DUP2 .mix-view/x1 LDZ2 #0010 ++ SWP2 .Audio0/adsr [ DUPr STHr #10 * + ] DEI #0f AND ;draw-knob JSR2 - DUP2 .mix-view/x1 PEK2 #0020 ++ SWP2 + DUP2 .mix-view/x1 LDZ2 #0020 ++ SWP2 .Audio0/adsr [ DUPr STHr #10 * + ] #01 + DEI #04 SFT ;draw-knob JSR2 - DUP2 .mix-view/x1 PEK2 #0030 ++ SWP2 + DUP2 .mix-view/x1 LDZ2 #0030 ++ SWP2 .Audio0/adsr [ DUPr STHr #10 * + ] #01 + DEI #0f AND ;draw-knob JSR2 ( once/repeat ) - DUP2 .mix-view/x1 PEK2 #0040 ++ SWP2 - .modes [ DUPr STHr + ] PEK ;draw-switch JSR2 + DUP2 .mix-view/x1 LDZ2 #0040 ++ SWP2 + .modes [ DUPr STHr + ] LDZ ;draw-switch JSR2 ( volume ) - DUP2 .mix-view/x1 PEK2 #0050 ++ SWP2 + DUP2 .mix-view/x1 LDZ2 #0050 ++ SWP2 .Audio0/volume [ DUPr STHr #10 * + ] DEI #04 SFT ;draw-knob JSR2 - DUP2 .mix-view/x1 PEK2 #0060 ++ SWP2 + DUP2 .mix-view/x1 LDZ2 #0060 ++ SWP2 .Audio0/volume [ DUPr STHr #10 * + ] DEI #0f AND ;draw-knob JSR2 POP2 POPr @@ -397,8 +397,8 @@ RTN DUPr STHr - DUP #04 / SWP #04 MOD TOS PAD-WIDTH ** ( center ) .pad-view/x1 PEK2 ++ - ROT TOS PAD-HEIGHT ** ( center ) .pad-view/y1 PEK2 ++ + DUP #04 / SWP #04 MOD TOS PAD-WIDTH ** ( center ) .pad-view/x1 LDZ2 ++ + ROT TOS PAD-HEIGHT ** ( center ) .pad-view/y1 LDZ2 ++ ( draw outline ) OVR2 OVR2 @@ -435,28 +435,28 @@ RTN @draw-octave ( -- ) - .oct-view/x1 PEK2 .oct-view/y1 PEK2 + .oct-view/x1 LDZ2 .oct-view/y1 LDZ2 - OVR2 OVR2 ;keys-left-icns #21 .piano/last PEK #00 = + ;draw-key JSR2 - OVR2 #0008 ++ OVR2 ;keys-middle-icns #21 .piano/last PEK #01 = + ;draw-key JSR2 - OVR2 #0010 ++ OVR2 ;keys-right-icns #21 .piano/last PEK #02 = + ;draw-key JSR2 - OVR2 #0018 ++ OVR2 ;keys-left-icns #21 .piano/last PEK #03 = + ;draw-key JSR2 - OVR2 #0020 ++ OVR2 ;keys-middle-icns #21 .piano/last PEK #04 = + ;draw-key JSR2 - OVR2 #0028 ++ OVR2 ;keys-middle-icns #21 .piano/last PEK #05 = + ;draw-key JSR2 - SWP2 #0030 ++ SWP2 ;keys-right-icns #21 .piano/last PEK #06 = + ;draw-key JSR2 + OVR2 OVR2 ;keys-left-icns #21 .piano/last LDZ #00 = + ;draw-key JSR2 + OVR2 #0008 ++ OVR2 ;keys-middle-icns #21 .piano/last LDZ #01 = + ;draw-key JSR2 + OVR2 #0010 ++ OVR2 ;keys-right-icns #21 .piano/last LDZ #02 = + ;draw-key JSR2 + OVR2 #0018 ++ OVR2 ;keys-left-icns #21 .piano/last LDZ #03 = + ;draw-key JSR2 + OVR2 #0020 ++ OVR2 ;keys-middle-icns #21 .piano/last LDZ #04 = + ;draw-key JSR2 + OVR2 #0028 ++ OVR2 ;keys-middle-icns #21 .piano/last LDZ #05 = + ;draw-key JSR2 + SWP2 #0030 ++ SWP2 ;keys-right-icns #21 .piano/last LDZ #06 = + ;draw-key JSR2 - .oct-view/x1 PEK2 #0040 ++ .Screen/x DEO2 + .oct-view/x1 LDZ2 #0040 ++ .Screen/x DEO2 ;arrow-icns .Screen/addr DEO2 - .oct-view/y1 PEK2 .Screen/y DEO2 + .oct-view/y1 LDZ2 .Screen/y DEO2 #21 .Screen/color DEO ;arrow-icns #0008 ++ .Screen/addr DEO2 - .oct-view/y1 PEK2 #0010 ++ .Screen/y DEO2 + .oct-view/y1 LDZ2 #0010 ++ .Screen/y DEO2 #21 .Screen/color DEO - ;font-hex .piano/octave PEK #03 + #00 SWP #0008 ** ++ .Screen/addr DEO2 - .oct-view/y1 PEK2 #0008 ++ .Screen/y DEO2 + ;font-hex .piano/octave LDZ #03 + #00 SWP #0008 ** ++ .Screen/addr DEO2 + .oct-view/y1 LDZ2 #0008 ++ .Screen/y DEO2 #23 .Screen/color DEO RTN @@ -504,15 +504,15 @@ RTN ( clear last cursor ) ;cursor-icn .Screen/addr DEO2 - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 #30 .Screen/color DEO ( record pointer positions ) - .Mouse/x DEI2 .pointer/x POK2 - .Mouse/y DEI2 .pointer/y POK2 + .Mouse/x DEI2 .pointer/x STZ2 + .Mouse/y DEI2 .pointer/y STZ2 ( draw new cursor ) - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 ( colorize on state ) #33 [ .Mouse/state DEI #00 ! ] - .Screen/color DEO @@ -564,20 +564,20 @@ RTN @line-rect ( x1* y1* x2* y2* color -- ) - ( load ) .color POK DUP2 STH2 .rect/y2 POK2 .rect/x2 POK2 DUP2 STH2 .rect/y1 POK2 .rect/x1 POK2 + ( load ) .color STZ DUP2 STH2 .rect/y2 STZ2 .rect/x2 STZ2 DUP2 STH2 .rect/y1 STZ2 .rect/x1 STZ2 STH2r #0001 ++ STH2r &ver ( save ) OVR2 .Screen/y DEO2 - ( draw ) .rect/x1 PEK2 .Screen/x DEO2 .color PEK DUP .Screen/color DEO - ( draw ) .rect/x2 PEK2 .Screen/x DEO2 .Screen/color DEO + ( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ DUP .Screen/color DEO + ( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .Screen/color DEO ( incr ) SWP2 #0001 ++ SWP2 OVR2 OVR2 LTS2 ,&ver JCN POP2 POP2 - .rect/x1 PEK2 #0001 ++ .rect/x2 PEK2 #0001 -- + .rect/x1 LDZ2 #0001 ++ .rect/x2 LDZ2 #0001 -- &hor ( save ) OVR2 .Screen/x DEO2 - ( draw ) .rect/y1 PEK2 .Screen/y DEO2 .color PEK DUP .Screen/color DEO - ( draw ) .rect/y2 PEK2 .Screen/y DEO2 .Screen/color DEO + ( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ DUP .Screen/color DEO + ( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .Screen/color DEO ( incr ) SWP2 #0001 ++ SWP2 OVR2 OVR2 #0001 ++ LTS2 ,&hor JCN POP2 POP2 @@ -601,14 +601,14 @@ RTN @fill-rect ( x1* y1* x2* y2* color -- ) - .color POK + .color STZ ( x1 x2 y1 y2 ) ROT2 SWP2 &ver ( save ) OVR2 .Screen/y DEO2 STH2 STH2 OVR2 OVR2 &hor ( save ) OVR2 .Screen/x DEO2 - ( draw ) .color PEK .Screen/color DEO + ( draw ) .color LDZ .Screen/color DEO ( incr ) SWP2 #0001 ++ SWP2 OVR2 OVR2 LTS2 ,&hor JCN POP2 POP2 STH2r STH2r diff --git a/projects/demos/life.usm b/projects/demos/life.usm @@ -55,20 +55,20 @@ #07 #05 ;set-cell JSR2 #06 #05 ;set-cell JSR2 - .Screen/width DEI2 #0002 // WIDTH TOS -- .anchor/x POK2 - .Screen/height DEI2 #0002 // HEIGHT TOS -- .anchor/y POK2 + .Screen/width DEI2 #0002 // WIDTH TOS -- .anchor/x STZ2 + .Screen/height DEI2 #0002 // HEIGHT TOS -- .anchor/y STZ2 - #01 .world/paused POK + #01 .world/paused STZ BRK @on-frame ( -> ) .Mouse/state DEI #00 = #01 JCN [ BRK ] - .world/paused PEK #00 ! #01 JCN [ BRK ] + .world/paused LDZ #00 ! #01 JCN [ BRK ] - ( incr frame ) .world/frame PEK INCR [ DUP ] .world/frame POK - ( reset count ) #0000 .world/count POK2 + ( incr frame ) .world/frame LDZ INCR [ DUP ] .world/frame STZ + ( reset count ) #0000 .world/count STZ2 #10 MOD #00 ! #01 JCN [ BRK ] @@ -94,9 +94,9 @@ BRK ;draw-grid JSR2 ( draw cell count ) - .anchor/x PEK2 .Screen/x DEO2 - .anchor/y PEK2 HEIGHT #02 * TOS ++ .Screen/y DEO2 - .world/count PEK2 #22 ;draw-short JSR2 + .anchor/x LDZ2 .Screen/x DEO2 + .anchor/y LDZ2 HEIGHT #02 * TOS ++ .Screen/y DEO2 + .world/count LDZ2 #22 ;draw-short JSR2 BRK @@ -104,29 +104,29 @@ BRK ( clear last cursor ) ;cursor .Screen/addr DEO2 - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 #30 .Screen/color DEO ( record pointer positions ) - .Mouse/x DEI2 .pointer/x POK2 - .Mouse/y DEI2 .pointer/y POK2 + .Mouse/x DEI2 .pointer/x STZ2 + .Mouse/y DEI2 .pointer/y STZ2 ( draw new cursor ) - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 ( colorize on state ) #32 [ .Mouse/state DEI #00 ! ] + .Screen/color DEO .Mouse/state DEI #00 ! #01 JCN [ BRK ] - .Mouse/x DEI2 DUP2 .anchor/x PEK2 >> ROT ROT .anchor/x PEK2 WIDTH #02 * TOS ++ #0001 ++ << #0101 == - .Mouse/y DEI2 DUP2 .anchor/y PEK2 >> ROT ROT .anchor/y PEK2 HEIGHT #02 * TOS ++ << #0101 == + .Mouse/x DEI2 DUP2 .anchor/x LDZ2 >> ROT ROT .anchor/x LDZ2 WIDTH #02 * TOS ++ #0001 ++ << #0101 == + .Mouse/y DEI2 DUP2 .anchor/y LDZ2 >> ROT ROT .anchor/y LDZ2 HEIGHT #02 * TOS ++ << #0101 == #0101 == #01 JCN [ BRK ] - .Mouse/x DEI2 .anchor/x PEK2 SUB2 #02 / TOB - .Mouse/y DEI2 .anchor/y PEK2 SUB2 #02 / TOB + .Mouse/x DEI2 .anchor/x LDZ2 SUB2 #02 / TOB + .Mouse/y DEI2 .anchor/y LDZ2 SUB2 #02 / TOB ;set-cell JSR2 ;draw-grid JSR2 @@ -138,7 +138,7 @@ BRK .Controller/key DEI #00 ! #01 JCN [ BRK ] .Controller/key DEI #20 ! ,&no-toggle JCN - .world/paused PEK #01 ! .world/paused POK + .world/paused LDZ #01 ! .world/paused STZ &no-toggle BRK @@ -147,11 +147,11 @@ BRK #00 HEIGHT &ver - OVR TOS #0002 ** .anchor/y PEK2 ++ .Screen/y DEO2 + OVR TOS #0002 ** .anchor/y LDZ2 ++ .Screen/y DEO2 OVR STH #00 WIDTH &hor - OVR TOS #0002 ** .anchor/x PEK2 ++ .Screen/x DEO2 + OVR TOS #0002 ** .anchor/x LDZ2 ++ .Screen/x DEO2 OVR DUPr STHr ,get-cell JSR INCR .Screen/color DEO SWP INCR SWP DUP2 ! ,&hor JCN @@ -242,7 +242,7 @@ RTN HEIGHT MOD SWP WIDTH MOD SWP WIDTH #08 / TOS ROT TOS ** ROT #08 / TOS ++ [ BANK2 ++ ] ( incr count ) - .world/count PEK2 #0001 ADD2 .world/count POK2 + .world/count LDZ2 #0001 ADD2 .world/count STZ2 ( save in buffer ) STH2 DUP2 POP #08 MOD #01 SWP SFL diff --git a/projects/demos/musictracker.usm b/projects/demos/musictracker.usm @@ -5,7 +5,7 @@ %8* { #0008 MUL2 } %8/ { #0008 DIV2 } %++ { #0001 ADD2 } %MOD { DUP2 DIV MUL SUB } -%TRACK { ;track/ch1 #00 .track/active PEK #0020 MUL2 ADD2 } +%TRACK { ;track/ch1 #00 .track/active LDZ #0020 MUL2 ADD2 } ( variables ) @@ -43,16 +43,16 @@ ( vectors ) ;on-mouse .Mouse/vector DEO2 ( vectors ) ;on-button .Controller/vector DEO2 - .Screen/width DEI2 #0002 DIV2 DUP2 #0080 SUB2 .trkframe/x1 POK2 - #0080 ADD2 .trkframe/x2 POK2 - .Screen/height DEI2 #0002 DIV2 DUP2 #0038 SUB2 #0010 SUB2 .trkframe/y1 POK2 - #0038 ADD2 #0010 SUB2 .trkframe/y2 POK2 + .Screen/width DEI2 #0002 DIV2 DUP2 #0080 SUB2 .trkframe/x1 STZ2 + #0080 ADD2 .trkframe/x2 STZ2 + .Screen/height DEI2 #0002 DIV2 DUP2 #0038 SUB2 #0010 SUB2 .trkframe/y1 STZ2 + #0038 ADD2 #0010 SUB2 .trkframe/y2 STZ2 - .trkframe/x1 PEK2 .chnframe/x1 POK2 .trkframe/y2 PEK2 .chnframe/y1 POK2 - .chnframe/x1 PEK2 #0030 ADD2 .chnframe/x2 POK2 .chnframe/y1 PEK2 #0030 ADD2 .chnframe/y2 POK2 + .trkframe/x1 LDZ2 .chnframe/x1 STZ2 .trkframe/y2 LDZ2 .chnframe/y1 STZ2 + .chnframe/x1 LDZ2 #0030 ADD2 .chnframe/x2 STZ2 .chnframe/y1 LDZ2 #0030 ADD2 .chnframe/y2 STZ2 - .chnframe/x2 PEK2 .ctlframe/x1 POK2 .chnframe/y1 PEK2 .ctlframe/y1 POK2 - .trkframe/x2 PEK2 .ctlframe/x2 POK2 .chnframe/y2 PEK2 .ctlframe/y2 POK2 + .chnframe/x2 LDZ2 .ctlframe/x1 STZ2 .chnframe/y1 LDZ2 .ctlframe/y1 STZ2 + .trkframe/x2 LDZ2 .ctlframe/x2 STZ2 .chnframe/y2 LDZ2 .ctlframe/y2 STZ2 ( default settings ) #048c .Audio0/adsr DEO2 #88 .Audio0/volume DEO @@ -79,7 +79,7 @@ BRK ;move-head JSR2 ;draw-vu JSR2 - .head/pos PEK #08 MOD #00 NEQ ,&skip JCN + .head/pos LDZ #08 MOD #00 NEQ ,&skip JCN ;bang JSR2 &skip @@ -88,14 +88,14 @@ BRK @on-mouse ( -> ) .Mouse/state DEI #00 EQU ;&click-end JCN2 - .Mouse/x DEI2 .trkframe/x1 PEK2 GTH2 .Mouse/x DEI2 .trkframe/x2 PEK2 LTH2 #0101 EQU2 - .Mouse/y DEI2 .trkframe/y1 PEK2 GTH2 .Mouse/y DEI2 .trkframe/y2 PEK2 LTH2 #0101 EQU2 + .Mouse/x DEI2 .trkframe/x1 LDZ2 GTH2 .Mouse/x DEI2 .trkframe/x2 LDZ2 LTH2 #0101 EQU2 + .Mouse/y DEI2 .trkframe/y1 LDZ2 GTH2 .Mouse/y DEI2 .trkframe/y2 LDZ2 LTH2 #0101 EQU2 #0101 EQU2 ;touch-trk JCN2 - .Mouse/x DEI2 .chnframe/x1 PEK2 GTH2 .Mouse/x DEI2 .chnframe/x2 PEK2 LTH2 #0101 EQU2 - .Mouse/y DEI2 .chnframe/y1 PEK2 8+ GTH2 .Mouse/y DEI2 .chnframe/y2 PEK2 8- LTH2 #0101 EQU2 + .Mouse/x DEI2 .chnframe/x1 LDZ2 GTH2 .Mouse/x DEI2 .chnframe/x2 LDZ2 LTH2 #0101 EQU2 + .Mouse/y DEI2 .chnframe/y1 LDZ2 8+ GTH2 .Mouse/y DEI2 .chnframe/y2 LDZ2 8- LTH2 #0101 EQU2 #0101 EQU2 ;touch-chn JCN2 - .Mouse/x DEI2 .ctlframe/x1 PEK2 GTH2 .Mouse/x DEI2 .ctlframe/x2 PEK2 LTH2 #0101 EQU2 - .Mouse/y DEI2 .ctlframe/y1 PEK2 8+ GTH2 .Mouse/y DEI2 .ctlframe/y2 PEK2 8- LTH2 #0101 EQU2 + .Mouse/x DEI2 .ctlframe/x1 LDZ2 GTH2 .Mouse/x DEI2 .ctlframe/x2 LDZ2 LTH2 #0101 EQU2 + .Mouse/y DEI2 .ctlframe/y1 LDZ2 8+ GTH2 .Mouse/y DEI2 .ctlframe/y2 LDZ2 8- LTH2 #0101 EQU2 #0101 EQU2 ;touch-ctl JCN2 &click-end @@ -136,10 +136,10 @@ RTN ;clear-notes JSR2 ( get note ) - #0e .Mouse/y DEI2 .trkframe/y1 PEK2 SUB2 SWP POP #08 DIV SUB + #0e .Mouse/y DEI2 .trkframe/y1 LDZ2 SUB2 SWP POP #08 DIV SUB .Mouse/state DEI #10 NEQ ,&no-erase JCN POP #00 &no-erase ( edit note ) - TRACK #00 .Mouse/x DEI2 .trkframe/x1 PEK2 SUB2 SWP POP #08 DIV ADD2 STA + TRACK #00 .Mouse/x DEI2 .trkframe/x1 LDZ2 SUB2 SWP POP #08 DIV ADD2 STA ( release ) #00 .Mouse/state DEO ;draw-notes JSR2 @@ -148,7 +148,7 @@ BRK @touch-chn ( -- ) ;clear-notes JSR2 - ( save ) .Mouse/y DEI2 .chnframe/y1 PEK2 SUB2 SWP POP #08 DIV #01 SUB .track/active POK + ( save ) .Mouse/y DEI2 .chnframe/y1 LDZ2 SUB2 SWP POP #08 DIV #01 SUB .track/active STZ ( release ) #00 .Mouse/state DEO ;draw-channels JSR2 ;draw-notes JSR2 @@ -158,31 +158,31 @@ BRK @touch-ctl ( -- ) - .Mouse/x DEI2 .ctlframe/x1 PEK2 SUB2 8- 8/ SWP POP #02 DIV + .Mouse/x DEI2 .ctlframe/x1 LDZ2 SUB2 8- 8/ SWP POP #02 DIV DUP #00 NEQ ,&no-a JCN - .Audio0/adsr .track/active PEK #10 MUL ADD DEI + .Audio0/adsr .track/active LDZ #10 MUL ADD DEI #10 .Mouse/state DEI #10 EQU #e0 MUL ADD ADD - .Audio0/adsr .track/active PEK #10 MUL ADD DEO &no-a + .Audio0/adsr .track/active LDZ #10 MUL ADD DEO &no-a DUP #01 NEQ ,&no-d JCN - .Audio0/adsr .track/active PEK #10 MUL ADD DEI + .Audio0/adsr .track/active LDZ #10 MUL ADD DEI DUP #f0 AND STH #01 .Mouse/state DEI #10 EQU #0e MUL ADD ADD #0f AND STHr ADD - .Audio0/adsr .track/active PEK #10 MUL ADD DEO &no-d + .Audio0/adsr .track/active LDZ #10 MUL ADD DEO &no-d DUP #02 NEQ ,&no-s JCN - .Audio0/adsr .track/active PEK #10 MUL ADD #01 ADD DEI + .Audio0/adsr .track/active LDZ #10 MUL ADD #01 ADD DEI #10 .Mouse/state DEI #10 EQU #e0 MUL ADD ADD - .Audio0/adsr .track/active PEK #10 MUL ADD #01 ADD DEO &no-s + .Audio0/adsr .track/active LDZ #10 MUL ADD #01 ADD DEO &no-s DUP #03 NEQ ,&no-r JCN - .Audio0/adsr .track/active PEK #10 MUL ADD #01 ADD DEI + .Audio0/adsr .track/active LDZ #10 MUL ADD #01 ADD DEI DUP #f0 AND STH #01 .Mouse/state DEI #10 EQU #0e MUL ADD ADD #0f AND STHr ADD - .Audio0/adsr .track/active PEK #10 MUL ADD #01 ADD DEO &no-r + .Audio0/adsr .track/active LDZ #10 MUL ADD #01 ADD DEO &no-r DUP #05 NEQ ,&no-left JCN - .Audio0/volume .track/active PEK #10 MUL ADD DEI + .Audio0/volume .track/active LDZ #10 MUL ADD DEI #10 .Mouse/state DEI #10 EQU #e0 MUL ADD ADD - .Audio0/volume .track/active PEK #10 MUL ADD DEO &no-left + .Audio0/volume .track/active LDZ #10 MUL ADD DEO &no-left DUP #06 NEQ ,&no-right JCN - .Audio0/volume .track/active PEK #10 MUL ADD DEI + .Audio0/volume .track/active LDZ #10 MUL ADD DEI DUP #f0 AND STH #01 .Mouse/state DEI #10 EQU #0e MUL ADD ADD #0f AND STHr ADD - .Audio0/volume .track/active PEK #10 MUL ADD DEO &no-right + .Audio0/volume .track/active LDZ #10 MUL ADD DEO &no-right POP ( release ) #00 .Mouse/state DEO ;draw-controls JSR2 @@ -191,28 +191,28 @@ BRK @bang ( -- ) - ;track/ch1 #00 .head/pos PEK #08 DIV ADD2 LDA + ;track/ch1 #00 .head/pos LDZ #08 DIV ADD2 LDA #01 SUB DUP #ff NEQ ,&skip1 JCN POP ,&listen2 JMP &skip1 #00 SWP ;notes ADD2 LDA .Audio0/pitch DEO &listen2 - ;track/ch2 #00 .head/pos PEK #08 DIV ADD2 LDA + ;track/ch2 #00 .head/pos LDZ #08 DIV ADD2 LDA #01 SUB DUP #ff NEQ ,&skip2 JCN POP ,&listen3 JMP &skip2 #00 SWP ;notes ADD2 LDA .Audio1/pitch DEO &listen3 - ;track/ch3 #00 .head/pos PEK #08 DIV ADD2 LDA + ;track/ch3 #00 .head/pos LDZ #08 DIV ADD2 LDA #01 SUB DUP #ff NEQ ,&skip3 JCN POP ,&listen4 JMP &skip3 #00 SWP ;notes ADD2 LDA .Audio2/pitch DEO &listen4 - ;track/ch4 #00 .head/pos PEK #08 DIV ADD2 LDA + ;track/ch4 #00 .head/pos LDZ #08 DIV ADD2 LDA #01 SUB DUP #ff NEQ ,&skip4 JCN POP ,&end JMP @@ -225,14 +225,14 @@ RTN @move-head ( -- ) ( clear ) - .trkframe/y1 PEK2 8- .Screen/y DEO2 - .trkframe/x1 PEK2 #00 .head/pos PEK ADD2 .Screen/x DEO2 + .trkframe/y1 LDZ2 8- .Screen/y DEO2 + .trkframe/x1 LDZ2 #00 .head/pos LDZ ADD2 .Screen/x DEO2 ;head_icn .Screen/addr DEO2 #20 .Screen/color DEO - ( incr ) .head/pos PEK #01 ADD .head/pos POK - .trkframe/x1 PEK2 #00 .head/pos PEK ADD2 .Screen/x DEO2 + ( incr ) .head/pos LDZ #01 ADD .head/pos STZ + .trkframe/x1 LDZ2 #00 .head/pos LDZ ADD2 .Screen/x DEO2 ;head_icn .Screen/addr DEO2 - #21 ( if note ) TRACK #00 .head/pos PEK #08 DIV ADD2 LDA #00 NEQ ADD .Screen/color DEO + #21 ( if note ) TRACK #00 .head/pos LDZ #08 DIV ADD2 LDA #00 NEQ ADD .Screen/color DEO RTN @@ -241,8 +241,8 @@ RTN #00 #20 &loop ( load ) OVR #00 SWP TRACK ADD2 LDA - DUP STH #00 SWP #0e SWP SUB 8* .trkframe/y1 PEK2 ADD2 .Screen/y DEO2 - OVR #00 SWP 8* .trkframe/x1 PEK2 ADD2 .Screen/x DEO2 + DUP STH #00 SWP #0e SWP SUB 8* .trkframe/y1 LDZ2 ADD2 .Screen/y DEO2 + OVR #00 SWP 8* .trkframe/x1 LDZ2 ADD2 .Screen/x DEO2 STHr #00 EQU ,&skip JCN #20 .Screen/color DEO &skip @@ -257,8 +257,8 @@ RTN #00 #20 &notes-loop ( load ) OVR #00 SWP TRACK ADD2 LDA - DUP STH #00 SWP #0e SWP SUB 8* .trkframe/y1 PEK2 ADD2 .Screen/y DEO2 - OVR #00 SWP 8* .trkframe/x1 PEK2 ADD2 .Screen/x DEO2 + DUP STH #00 SWP #0e SWP SUB 8* .trkframe/y1 LDZ2 ADD2 .Screen/y DEO2 + OVR #00 SWP 8* .trkframe/x1 LDZ2 ADD2 .Screen/x DEO2 ;note_icn .Screen/addr DEO2 STHr #00 EQU ,&skip JCN #25 .Screen/color DEO @@ -272,27 +272,27 @@ RTN @draw-bars ( -- ) - .trkframe/x1 PEK2 .trkframe/y1 PEK2 .trkframe/x2 PEK2 .trkframe/y2 PEK2 #01 ;line-rect JSR2 + .trkframe/x1 LDZ2 .trkframe/y1 LDZ2 .trkframe/x2 LDZ2 .trkframe/y2 LDZ2 #01 ;line-rect JSR2 ( grid ) - .trkframe/y1 PEK2 #0010 SUB2 .Screen/y DEO2 + .trkframe/y1 LDZ2 #0010 SUB2 .Screen/y DEO2 ;font_hex .Screen/addr DEO2 #0000 #0100 &loop OVR2 SWP POP #02 DIV #0f AND #00 NEQ ,&skip JCN - OVR2 .trkframe/x1 PEK2 ADD2 .Screen/x DEO2 - .trkframe/y1 PEK2 #0010 SUB2 .Screen/y DEO2 + OVR2 .trkframe/x1 LDZ2 ADD2 .Screen/x DEO2 + .trkframe/y1 LDZ2 #0010 SUB2 .Screen/y DEO2 #22 .Screen/color DEO .Screen/addr DEI2 8+ .Screen/addr DEO2 - OVR2 .trkframe/x1 PEK2 ADD2 .trkframe/y1 PEK2 ++ .trkframe/y2 PEK2 #01 ;line-vertical-dotted JSR2 + OVR2 .trkframe/x1 LDZ2 ADD2 .trkframe/y1 LDZ2 ++ .trkframe/y2 LDZ2 #01 ;line-vertical-dotted JSR2 &skip - OVR2 .trkframe/x1 PEK2 ADD2 .trkframe/y1 PEK2 .trkframe/y2 PEK2 #01 ;line-vertical-dotted JSR2 + OVR2 .trkframe/x1 LDZ2 ADD2 .trkframe/y1 LDZ2 .trkframe/y2 LDZ2 #01 ;line-vertical-dotted JSR2 SWP2 8+ SWP2 OVR2 OVR2 LTH2 ,&loop JCN POP2 POP2 - .trkframe/x1 PEK2 .trkframe/x2 PEK2 .trkframe/y1 PEK2 8- #0040 ADD2 #01 ;line-horizontal-dotted JSR2 + .trkframe/x1 LDZ2 .trkframe/x2 LDZ2 .trkframe/y1 LDZ2 8- #0040 ADD2 #01 ;line-horizontal-dotted JSR2 RTN @@ -319,20 +319,20 @@ RTN @draw-octaves ( -- ) - .trkframe/x1 PEK2 #0018 SUB2 DUP2 .trkframe/y1 PEK2 ;draw-octave JSR2 - .trkframe/y1 PEK2 #0038 ADD2 ;draw-octave JSR2 - .trkframe/x1 PEK2 #0028 SUB2 .Screen/x DEO2 - .trkframe/y1 PEK2 #0030 ADD2 .Screen/y DEO2 + .trkframe/x1 LDZ2 #0018 SUB2 DUP2 .trkframe/y1 LDZ2 ;draw-octave JSR2 + .trkframe/y1 LDZ2 #0038 ADD2 ;draw-octave JSR2 + .trkframe/x1 LDZ2 #0028 SUB2 .Screen/x DEO2 + .trkframe/y1 LDZ2 #0030 ADD2 .Screen/y DEO2 ;font_hex #0020 ADD2 .Screen/addr DEO2 #23 .Screen/color DEO - .trkframe/x1 PEK2 #0030 SUB2 .Screen/x DEO2 + .trkframe/x1 LDZ2 #0030 SUB2 .Screen/x DEO2 ;font_hex #0060 ADD2 .Screen/addr DEO2 #23 .Screen/color DEO - .trkframe/x1 PEK2 #0028 SUB2 .Screen/x DEO2 - .trkframe/y1 PEK2 #0068 ADD2 .Screen/y DEO2 + .trkframe/x1 LDZ2 #0028 SUB2 .Screen/x DEO2 + .trkframe/y1 LDZ2 #0068 ADD2 .Screen/y DEO2 ;font_hex #0018 ADD2 .Screen/addr DEO2 #23 .Screen/color DEO - .trkframe/x1 PEK2 #0030 SUB2 .Screen/x DEO2 + .trkframe/x1 LDZ2 #0030 SUB2 .Screen/x DEO2 ;font_hex #0060 ADD2 .Screen/addr DEO2 #23 .Screen/color DEO @@ -346,74 +346,74 @@ RTN RTN @draw-knob ( x* y* value -- ) - .track/active PEK #03 EQU ;&blank JCN2 + .track/active LDZ #03 EQU ;&blank JCN2 &force - ( load ) .knob/value POK .knob/y POK2 .knob/x POK2 - - .knob/x PEK2 .Screen/x DEO2 - .knob/y PEK2 .Screen/y DEO2 ;knob_icns .Screen/addr DEO2 #21 .Screen/color DEO - .knob/x PEK2 8+ .Screen/x DEO2 ;knob_icns 8+ .Screen/addr DEO2 #21 .Screen/color DEO - .knob/y PEK2 8+ .Screen/y DEO2 ;knob_icns #0018 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO - .knob/x PEK2 .Screen/x DEO2 ;knob_icns #0010 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO - .knob/x PEK2 #00 #00 .knob/value PEK ;knob_offsetx ADD2 LDA ADD2 .Screen/x DEO2 - .knob/y PEK2 #00 #00 .knob/value PEK ;knob_offsety ADD2 LDA ADD2 .Screen/y DEO2 + ( load ) .knob/value STZ .knob/y STZ2 .knob/x STZ2 + + .knob/x LDZ2 .Screen/x DEO2 + .knob/y LDZ2 .Screen/y DEO2 ;knob_icns .Screen/addr DEO2 #21 .Screen/color DEO + .knob/x LDZ2 8+ .Screen/x DEO2 ;knob_icns 8+ .Screen/addr DEO2 #21 .Screen/color DEO + .knob/y LDZ2 8+ .Screen/y DEO2 ;knob_icns #0018 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO + .knob/x LDZ2 .Screen/x DEO2 ;knob_icns #0010 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO + .knob/x LDZ2 #00 #00 .knob/value LDZ ;knob_offsetx ADD2 LDA ADD2 .Screen/x DEO2 + .knob/y LDZ2 #00 #00 .knob/value LDZ ;knob_offsety ADD2 LDA ADD2 .Screen/y DEO2 ;knob_icns #0020 ADD2 .Screen/addr DEO2 #25 .Screen/color DEO - .knob/x PEK2 #0004 ADD2 .Screen/x DEO2 - .knob/y PEK2 #0010 ADD2 .Screen/y DEO2 - ;font_hex #00 .knob/value PEK #08 MUL ADD2 .Screen/addr DEO2 + .knob/x LDZ2 #0004 ADD2 .Screen/x DEO2 + .knob/y LDZ2 #0010 ADD2 .Screen/y DEO2 + ;font_hex #00 .knob/value LDZ #08 MUL ADD2 .Screen/addr DEO2 #21 .Screen/color DEO RTN &blank - ( load ) .knob/value POK .knob/y POK2 .knob/x POK2 + ( load ) .knob/value STZ .knob/y STZ2 .knob/x STZ2 - .knob/x PEK2 .Screen/x DEO2 - .knob/y PEK2 .Screen/y DEO2 #20 .Screen/color DEO - .knob/x PEK2 8+ .Screen/x DEO2 #20 .Screen/color DEO - .knob/y PEK2 8+ .Screen/y DEO2 #20 .Screen/color DEO - .knob/x PEK2 .Screen/x DEO2 #20 .Screen/color DEO - .knob/x PEK2 #0004 ADD2 .Screen/x DEO2 - .knob/y PEK2 #0010 ADD2 .Screen/y DEO2 + .knob/x LDZ2 .Screen/x DEO2 + .knob/y LDZ2 .Screen/y DEO2 #20 .Screen/color DEO + .knob/x LDZ2 8+ .Screen/x DEO2 #20 .Screen/color DEO + .knob/y LDZ2 8+ .Screen/y DEO2 #20 .Screen/color DEO + .knob/x LDZ2 .Screen/x DEO2 #20 .Screen/color DEO + .knob/x LDZ2 #0004 ADD2 .Screen/x DEO2 + .knob/y LDZ2 #0010 ADD2 .Screen/y DEO2 #20 .Screen/color DEO RTN @draw-controls ( -- ) - .ctlframe/x1 PEK2 .ctlframe/y1 PEK2 .ctlframe/x2 PEK2 .ctlframe/y2 PEK2 #01 ;line-rect JSR2 + .ctlframe/x1 LDZ2 .ctlframe/y1 LDZ2 .ctlframe/x2 LDZ2 .ctlframe/y2 LDZ2 #01 ;line-rect JSR2 ( env ) - .ctlframe/x1 PEK2 8+ .ctlframe/y1 PEK2 8+ #22 ;env_txt ;draw-label JSR2 - .ctlframe/x1 PEK2 8+ .ctlframe/y1 PEK2 #0010 ADD2 - .Audio0/adsr .track/active PEK #10 MUL ADD DEI #04 SFT + .ctlframe/x1 LDZ2 8+ .ctlframe/y1 LDZ2 8+ #22 ;env_txt ;draw-label JSR2 + .ctlframe/x1 LDZ2 8+ .ctlframe/y1 LDZ2 #0010 ADD2 + .Audio0/adsr .track/active LDZ #10 MUL ADD DEI #04 SFT ;draw-knob JSR2 - .ctlframe/x1 PEK2 #0018 ADD2 .ctlframe/y1 PEK2 #0010 ADD2 - .Audio0/adsr .track/active PEK #10 MUL ADD DEI #0f AND + .ctlframe/x1 LDZ2 #0018 ADD2 .ctlframe/y1 LDZ2 #0010 ADD2 + .Audio0/adsr .track/active LDZ #10 MUL ADD DEI #0f AND ;draw-knob JSR2 - .ctlframe/x1 PEK2 #0028 ADD2 .ctlframe/y1 PEK2 #0010 ADD2 - .Audio0/adsr .track/active PEK #10 MUL ADD #01 ADD DEI #04 SFT + .ctlframe/x1 LDZ2 #0028 ADD2 .ctlframe/y1 LDZ2 #0010 ADD2 + .Audio0/adsr .track/active LDZ #10 MUL ADD #01 ADD DEI #04 SFT ;draw-knob JSR2 - .ctlframe/x1 PEK2 #0038 ADD2 .ctlframe/y1 PEK2 #0010 ADD2 - .Audio0/adsr .track/active PEK #10 MUL ADD #01 ADD DEI #0f AND + .ctlframe/x1 LDZ2 #0038 ADD2 .ctlframe/y1 LDZ2 #0010 ADD2 + .Audio0/adsr .track/active LDZ #10 MUL ADD #01 ADD DEI #0f AND ;draw-knob JSR2 ( vol ) - .ctlframe/x1 PEK2 #0058 ADD2 .ctlframe/y1 PEK2 8+ #22 ;vol_txt ;draw-label JSR2 - .ctlframe/x1 PEK2 #0058 ADD2 .ctlframe/y1 PEK2 #0010 ADD2 - .Audio0/volume .track/active PEK #10 MUL ADD DEI #04 SFT + .ctlframe/x1 LDZ2 #0058 ADD2 .ctlframe/y1 LDZ2 8+ #22 ;vol_txt ;draw-label JSR2 + .ctlframe/x1 LDZ2 #0058 ADD2 .ctlframe/y1 LDZ2 #0010 ADD2 + .Audio0/volume .track/active LDZ #10 MUL ADD DEI #04 SFT ;draw-knob/force JSR2 - .ctlframe/x1 PEK2 #0068 ADD2 .ctlframe/y1 PEK2 #0010 ADD2 - .Audio0/volume .track/active PEK #10 MUL ADD DEI #0f AND + .ctlframe/x1 LDZ2 #0068 ADD2 .ctlframe/y1 LDZ2 #0010 ADD2 + .Audio0/volume .track/active LDZ #10 MUL ADD DEI #0f AND ;draw-knob/force JSR2 RTN @draw-vu ( -- ) - .ctlframe/x1 PEK2 #0088 ADD2 .ctlframe/y1 PEK2 #0010 ADD2 - .Audio0/output .track/active PEK #10 MUL ADD DEI DUP STH #04 SFT + .ctlframe/x1 LDZ2 #0088 ADD2 .ctlframe/y1 LDZ2 #0010 ADD2 + .Audio0/output .track/active LDZ #10 MUL ADD DEI DUP STH #04 SFT ;draw-knob/force JSR2 - .ctlframe/x1 PEK2 #0098 ADD2 .ctlframe/y1 PEK2 #0010 ADD2 + .ctlframe/x1 LDZ2 #0098 ADD2 .ctlframe/y1 LDZ2 #0010 ADD2 STHr #0f AND ;draw-knob/force JSR2 @@ -421,11 +421,11 @@ RTN @draw-channels - .chnframe/x1 PEK2 .chnframe/y1 PEK2 .chnframe/x2 PEK2 .chnframe/y2 PEK2 #01 ;line-rect JSR2 - .chnframe/x1 PEK2 8+ .chnframe/y1 PEK2 8+ #21 .track/active PEK #00 EQU #07 MUL ADD ;ch1_txt ;draw-label JSR2 - .chnframe/x1 PEK2 8+ .chnframe/y1 PEK2 #0010 ADD2 #21 .track/active PEK #01 EQU #07 MUL ADD ;ch2_txt ;draw-label JSR2 - .chnframe/x1 PEK2 8+ .chnframe/y1 PEK2 #0018 ADD2 #21 .track/active PEK #02 EQU #07 MUL ADD ;ch3_txt ;draw-label JSR2 - .chnframe/x1 PEK2 8+ .chnframe/y1 PEK2 #0020 ADD2 #21 .track/active PEK #03 EQU #07 MUL ADD ;ch4_txt ;draw-label JSR2 + .chnframe/x1 LDZ2 .chnframe/y1 LDZ2 .chnframe/x2 LDZ2 .chnframe/y2 LDZ2 #01 ;line-rect JSR2 + .chnframe/x1 LDZ2 8+ .chnframe/y1 LDZ2 8+ #21 .track/active LDZ #00 EQU #07 MUL ADD ;ch1_txt ;draw-label JSR2 + .chnframe/x1 LDZ2 8+ .chnframe/y1 LDZ2 #0010 ADD2 #21 .track/active LDZ #01 EQU #07 MUL ADD ;ch2_txt ;draw-label JSR2 + .chnframe/x1 LDZ2 8+ .chnframe/y1 LDZ2 #0018 ADD2 #21 .track/active LDZ #02 EQU #07 MUL ADD ;ch3_txt ;draw-label JSR2 + .chnframe/x1 LDZ2 8+ .chnframe/y1 LDZ2 #0020 ADD2 #21 .track/active LDZ #03 EQU #07 MUL ADD ;ch4_txt ;draw-label JSR2 RTN @@ -433,15 +433,15 @@ RTN ( clear last cursor ) ;clear_icn .Screen/addr DEO2 - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 #30 .Screen/color DEO ( record pointer positions ) - .Mouse/x DEI2 .pointer/x POK2 .Mouse/y DEI2 .pointer/y POK2 + .Mouse/x DEI2 .pointer/x STZ2 .Mouse/y DEI2 .pointer/y STZ2 ( draw new cursor ) ;cursor_icn .Screen/addr DEO2 - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 #32 .Mouse/state DEI #00 NEQ ADD .Screen/color DEO RTN @@ -450,10 +450,10 @@ RTN @draw-label ( x y color addr -- ) - ( load ) .label/addr POK2 .label/color POK .Screen/y DEO2 .Screen/x DEO2 - .label/addr PEK2 + ( load ) .label/addr STZ2 .label/color STZ .Screen/y DEO2 .Screen/x DEO2 + .label/addr LDZ2 &loop - ( draw ) DUP2 LDA #00 SWP 8* ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO + ( draw ) DUP2 LDA #00 SWP 8* ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/color DEO ( incr ) ++ ( incr ) .Screen/x DEI2 8+ .Screen/x DEO2 DUP2 LDA #00 NEQ ,&loop JCN @@ -463,9 +463,9 @@ RTN @line-vertical-dotted ( x y0 y1 color -- ) - .color POK STH2 SWP2 .Screen/x DEO2 STH2r OVR2 .Screen/y DEO2 + .color STZ STH2 SWP2 .Screen/x DEO2 STH2r OVR2 .Screen/y DEO2 &draw-ver - ( draw ) .color PEK .Screen/color DEO + ( draw ) .color LDZ .Screen/color DEO ( incr ) SWP2 #0002 ADD2 DUP2 .Screen/y DEO2 SWP2 OVR2 OVR2 LTH2 ,&draw-ver JCN POP2 POP2 @@ -474,9 +474,9 @@ RTN @line-horizontal-dotted ( x0 x1 y color -- ) - .color POK .Screen/y DEO2 OVR2 .Screen/x DEO2 + .color STZ .Screen/y DEO2 OVR2 .Screen/x DEO2 &draw-hor - ( draw ) .color PEK .Screen/color DEO + ( draw ) .color LDZ .Screen/color DEO ( incr ) SWP2 #0002 ADD2 DUP2 .Screen/x DEO2 SWP2 OVR2 OVR2 LTH2 ,&draw-hor JCN POP2 POP2 @@ -485,18 +485,18 @@ RTN @line-rect ( x1 y1 x2 y2 color ) - ( load ) .color POK .rect/y2 POK2 .rect/x2 POK2 DUP2 .Screen/y DEO2 .rect/y1 POK2 DUP2 .Screen/x DEO2 .rect/x1 POK2 + ( load ) .color STZ .rect/y2 STZ2 .rect/x2 STZ2 DUP2 .Screen/y DEO2 .rect/y1 STZ2 DUP2 .Screen/x DEO2 .rect/x1 STZ2 &hor ( incr ) .Screen/x DEI2 ++ .Screen/x DEO2 - ( draw ) .rect/y1 PEK2 .Screen/y DEO2 .color PEK .Screen/color DEO - ( draw ) .rect/y2 PEK2 .Screen/y DEO2 .color PEK .Screen/color DEO - .Screen/x DEI2 .rect/x2 PEK2 LTH2 ,&hor JCN - .rect/y1 PEK2 .Screen/y DEO2 + ( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ .Screen/color DEO + ( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .color LDZ .Screen/color DEO + .Screen/x DEI2 .rect/x2 LDZ2 LTH2 ,&hor JCN + .rect/y1 LDZ2 .Screen/y DEO2 &ver - ( draw ) .rect/x1 PEK2 .Screen/x DEO2 .color PEK .Screen/color DEO - ( draw ) .rect/x2 PEK2 .Screen/x DEO2 .color PEK .Screen/color DEO + ( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ .Screen/color DEO + ( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .color LDZ .Screen/color DEO ( incr ) .Screen/y DEI2 ++ .Screen/y DEO2 - .Screen/y DEI2 .rect/y2 PEK2 ++ LTH2 ,&ver JCN + .Screen/y DEI2 .rect/y2 LDZ2 ++ LTH2 ,&ver JCN RTN diff --git a/projects/demos/piano.usm b/projects/demos/piano.usm @@ -61,29 +61,29 @@ ;saw-path .File/name DEO2 #0100 .File/length DEO2 WAVEFORM #0500 ++ .File/load DEO2 ( find center ) - .Screen/width DEI2 #0002 // .center/x POK2 - .Screen/height DEI2 #0002 // .center/y POK2 + .Screen/width DEI2 #0002 // .center/x STZ2 + .Screen/height DEI2 #0002 // .center/y STZ2 ( place octave ) - .center/x PEK2 #0080 -- .octave-view/x1 POK2 - .center/y PEK2 #0008 ++ .octave-view/y1 POK2 - .octave-view/x1 PEK2 #0050 ++ .octave-view/x2 POK2 - .octave-view/y1 PEK2 #0018 ++ .octave-view/y2 POK2 + .center/x LDZ2 #0080 -- .octave-view/x1 STZ2 + .center/y LDZ2 #0008 ++ .octave-view/y1 STZ2 + .octave-view/x1 LDZ2 #0050 ++ .octave-view/x2 STZ2 + .octave-view/y1 LDZ2 #0018 ++ .octave-view/y2 STZ2 ( place adsr ) - .center/x PEK2 #0020 -- .adsr-view/x1 POK2 - .center/y PEK2 #0008 ++ .adsr-view/y1 POK2 - .adsr-view/x1 PEK2 #00a0 ++ .adsr-view/x2 POK2 - .adsr-view/y1 PEK2 #0018 ++ .adsr-view/y2 POK2 + .center/x LDZ2 #0020 -- .adsr-view/x1 STZ2 + .center/y LDZ2 #0008 ++ .adsr-view/y1 STZ2 + .adsr-view/x1 LDZ2 #00a0 ++ .adsr-view/x2 STZ2 + .adsr-view/y1 LDZ2 #0018 ++ .adsr-view/y2 STZ2 ( place waveform ) - .center/x PEK2 #0080 -- .wave-view/x1 POK2 - .center/y PEK2 #0020 -- .wave-view/y1 POK2 - .wave-view/x1 PEK2 #0100 ++ .wave-view/x2 POK2 - .wave-view/y1 PEK2 #0020 ++ .wave-view/y2 POK2 + .center/x LDZ2 #0080 -- .wave-view/x1 STZ2 + .center/y LDZ2 #0020 -- .wave-view/y1 STZ2 + .wave-view/x1 LDZ2 #0100 ++ .wave-view/x2 STZ2 + .wave-view/y1 LDZ2 #0020 ++ .wave-view/y2 STZ2 ( default settings ) - #ff .last-note POK + #ff .last-note STZ #041c .Audio0/adsr DEO2 #88 .Audio0/volume DEO WAVEFORM .Audio0/addr DEO2 @@ -98,13 +98,13 @@ BRK @on-frame ( -> ) - .adsr-view/y2 PEK2 #0020 -- .Screen/y DEO2 + .adsr-view/y2 LDZ2 #0020 -- .Screen/y DEO2 #00 #10 &loop - .adsr-view/x2 PEK2 #003a -- .Screen/x DEO2 + .adsr-view/x2 LDZ2 #003a -- .Screen/x DEO2 OVR #10 SWP - .Audio0/output DEI #0f AND < .Screen/color DEO - .adsr-view/x2 PEK2 #003a -- #0002 ++ .Screen/x DEO2 + .adsr-view/x2 LDZ2 #003a -- #0002 ++ .Screen/x DEO2 OVR #10 SWP - .Audio0/output DEI #04 SFT < .Screen/color DEO .Screen/y DEI2 #0002 ++ .Screen/y DEO2 ( incr ) SWP #01 + SWP @@ -125,23 +125,23 @@ BRK ;draw-cursor JSR2 .Mouse/state DEI #00 ! #01 JCN [ BRK ] ( wave-view ) - .Mouse/x DEI2 DUP2 .wave-view/x1 PEK2 >> ROT ROT .wave-view/x2 PEK2 #0001 ++ << #0101 == - .Mouse/y DEI2 DUP2 .wave-view/y1 PEK2 >> ROT ROT .wave-view/y2 PEK2 << #0101 == + .Mouse/x DEI2 DUP2 .wave-view/x1 LDZ2 >> ROT ROT .wave-view/x2 LDZ2 #0001 ++ << #0101 == + .Mouse/y DEI2 DUP2 .wave-view/y1 LDZ2 >> ROT ROT .wave-view/y2 LDZ2 << #0101 == #0101 == ;on-touch-wave-view JCN2 ( adsr-view ) - .Mouse/x DEI2 DUP2 .adsr-view/x1 PEK2 >> ROT ROT .adsr-view/x2 PEK2 << #0101 == - .Mouse/y DEI2 DUP2 .adsr-view/y1 PEK2 >> ROT ROT .adsr-view/y2 PEK2 << #0101 == + .Mouse/x DEI2 DUP2 .adsr-view/x1 LDZ2 >> ROT ROT .adsr-view/x2 LDZ2 << #0101 == + .Mouse/y DEI2 DUP2 .adsr-view/y1 LDZ2 >> ROT ROT .adsr-view/y2 LDZ2 << #0101 == #0101 == ;on-touch-adsr-view JCN2 ( octave-view ) - .Mouse/x DEI2 DUP2 .octave-view/x1 PEK2 >> ROT ROT .octave-view/x2 PEK2 << #0101 == - .Mouse/y DEI2 DUP2 .octave-view/y1 PEK2 >> ROT ROT .octave-view/y2 PEK2 << #0101 == + .Mouse/x DEI2 DUP2 .octave-view/x1 LDZ2 >> ROT ROT .octave-view/x2 LDZ2 << #0101 == + .Mouse/y DEI2 DUP2 .octave-view/y1 LDZ2 >> ROT ROT .octave-view/y2 LDZ2 << #0101 == #0101 == ;on-touch-octave-view JCN2 BRK @on-touch-wave-view ( -> ) - .Mouse/x DEI2 .wave-view/x1 PEK2 -- .Audio0/length DEO2 + .Mouse/x DEI2 .wave-view/x1 LDZ2 -- .Audio0/length DEO2 ;draw-wave JSR2 ;draw-cursor JSR2 @@ -149,20 +149,20 @@ BRK @on-touch-octave-view ( -> ) - .Mouse/x DEI2 .octave-view/x1 PEK2 -- #0008 // SWP POP #09 ! ,&no-mod JCN - .Mouse/y DEI2 .octave-view/y1 PEK2 -- #0008 // SWP POP + .Mouse/x DEI2 .octave-view/x1 LDZ2 -- #0008 // SWP POP #09 ! ,&no-mod JCN + .Mouse/y DEI2 .octave-view/y1 LDZ2 -- #0008 // SWP POP DUP #00 ! ,&no-incr JCN - .octave PEK #01 + .octave POK &no-incr + .octave LDZ #01 + .octave STZ &no-incr DUP #02 ! ,&no-decr JCN - .octave PEK #01 - .octave POK &no-decr + .octave LDZ #01 - .octave STZ &no-decr POP ( release ) #00 .Mouse/state DEO ;draw-octave JSR2 BRK &no-mod - .Mouse/x DEI2 .octave-view/x1 PEK2 -- #0008 // SWP POP #06 > ,&no-key JCN - .Mouse/x DEI2 .octave-view/x1 PEK2 -- #0008 // DUP2 SWP POP .last-note POK ;notes ++ LDA ;play JSR2 + .Mouse/x DEI2 .octave-view/x1 LDZ2 -- #0008 // SWP POP #06 > ,&no-key JCN + .Mouse/x DEI2 .octave-view/x1 LDZ2 -- #0008 // DUP2 SWP POP .last-note STZ ;notes ++ LDA ;play JSR2 ( release ) #00 .Mouse/state DEO ;draw-octave JSR2 &no-key @@ -171,7 +171,7 @@ BRK @on-touch-adsr-view ( -> ) - .Mouse/x DEI2 .adsr-view/x1 PEK2 -- #0008 // SWP POP #03 / + .Mouse/x DEI2 .adsr-view/x1 LDZ2 -- #0008 // SWP POP #03 / DUP #00 ! ,&no-a JCN .Audio0/adsr DEI #10 .Mouse/state DEI #10 = #e0 * + + @@ -208,27 +208,27 @@ BRK ( clear last cursor ) #fff8 .Screen/addr DEO2 - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 #30 .Screen/color DEO .Controller/key DEI DUP #61 ! ,&no-c JCN - #00 .last-note POK ;notes LDA ;play JSR2 &no-c + #00 .last-note STZ ;notes LDA ;play JSR2 &no-c DUP #73 ! ,&no-d JCN - #01 .last-note POK ;notes #0001 ++ LDA ;play JSR2 &no-d + #01 .last-note STZ ;notes #0001 ++ LDA ;play JSR2 &no-d DUP #64 ! ,&no-e JCN - #02 .last-note POK ;notes #0002 ++ LDA ;play JSR2 &no-e + #02 .last-note STZ ;notes #0002 ++ LDA ;play JSR2 &no-e DUP #66 ! ,&no-f JCN - #03 .last-note POK ;notes #0003 ++ LDA ;play JSR2 &no-f + #03 .last-note STZ ;notes #0003 ++ LDA ;play JSR2 &no-f DUP #67 ! ,&no-g JCN - #04 .last-note POK ;notes #0004 ++ LDA ;play JSR2 &no-g + #04 .last-note STZ ;notes #0004 ++ LDA ;play JSR2 &no-g DUP #68 ! ,&no-a JCN - #05 .last-note POK ;notes #0005 ++ LDA ;play JSR2 &no-a + #05 .last-note STZ ;notes #0005 ++ LDA ;play JSR2 &no-a DUP #6a ! ,&no-b JCN - #06 .last-note POK ;notes #0006 ++ LDA ;play JSR2 &no-b + #06 .last-note STZ ;notes #0006 ++ LDA ;play JSR2 &no-b DUP #6b ! ,&no-c2 JCN - #07 .last-note POK ;notes #0007 ++ LDA ;play JSR2 &no-c2 + #07 .last-note STZ ;notes #0007 ++ LDA ;play JSR2 &no-c2 POP .Controller/button DEI #f0 AND @@ -249,7 +249,7 @@ BRK @play ( pitch -- ) - DUP .octave PEK #0c * + .Audio0/pitch DEO + DUP .octave LDZ #0c * + .Audio0/pitch DEO RTN @@ -257,15 +257,15 @@ RTN ( clear last cursor ) ;cursor .Screen/addr DEO2 - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 #30 .Screen/color DEO ( record pointer positions ) - .Mouse/x DEI2 .pointer/x POK2 - .Mouse/y DEI2 .pointer/y POK2 + .Mouse/x DEI2 .pointer/x STZ2 + .Mouse/y DEI2 .pointer/y STZ2 ( draw new cursor ) - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 ( colorize on state ) #31 [ .Mouse/state DEI #00 ! ] + .Screen/color DEO @@ -273,28 +273,28 @@ RTN @draw-octave ( -- ) - .octave-view/x1 PEK2 .octave-view/y1 PEK2 + .octave-view/x1 LDZ2 .octave-view/y1 LDZ2 - OVR2 OVR2 ;keys-left-icns #21 .last-note PEK #00 = + ;draw-key JSR2 - OVR2 #0008 ++ OVR2 ;keys-middle-icns #21 .last-note PEK #01 = + ;draw-key JSR2 - OVR2 #0010 ++ OVR2 ;keys-right-icns #21 .last-note PEK #02 = + ;draw-key JSR2 - OVR2 #0018 ++ OVR2 ;keys-left-icns #21 .last-note PEK #03 = + ;draw-key JSR2 - OVR2 #0020 ++ OVR2 ;keys-middle-icns #21 .last-note PEK #04 = + ;draw-key JSR2 - OVR2 #0028 ++ OVR2 ;keys-middle-icns #21 .last-note PEK #05 = + ;draw-key JSR2 - SWP2 #0030 ++ SWP2 ;keys-right-icns #21 .last-note PEK #06 = + ;draw-key JSR2 + OVR2 OVR2 ;keys-left-icns #21 .last-note LDZ #00 = + ;draw-key JSR2 + OVR2 #0008 ++ OVR2 ;keys-middle-icns #21 .last-note LDZ #01 = + ;draw-key JSR2 + OVR2 #0010 ++ OVR2 ;keys-right-icns #21 .last-note LDZ #02 = + ;draw-key JSR2 + OVR2 #0018 ++ OVR2 ;keys-left-icns #21 .last-note LDZ #03 = + ;draw-key JSR2 + OVR2 #0020 ++ OVR2 ;keys-middle-icns #21 .last-note LDZ #04 = + ;draw-key JSR2 + OVR2 #0028 ++ OVR2 ;keys-middle-icns #21 .last-note LDZ #05 = + ;draw-key JSR2 + SWP2 #0030 ++ SWP2 ;keys-right-icns #21 .last-note LDZ #06 = + ;draw-key JSR2 - .octave-view/x1 PEK2 #0048 ++ .Screen/x DEO2 + .octave-view/x1 LDZ2 #0048 ++ .Screen/x DEO2 ;arrow-icns .Screen/addr DEO2 - .octave-view/y1 PEK2 .Screen/y DEO2 + .octave-view/y1 LDZ2 .Screen/y DEO2 #21 .Screen/color DEO ;arrow-icns #0008 ++ .Screen/addr DEO2 - .octave-view/y1 PEK2 #0010 ++ .Screen/y DEO2 + .octave-view/y1 LDZ2 #0010 ++ .Screen/y DEO2 #21 .Screen/color DEO - ;font-hex .octave PEK #03 + #00 SWP #0008 ** ++ .Screen/addr DEO2 - .octave-view/y1 PEK2 #0008 ++ .Screen/y DEO2 + ;font-hex .octave LDZ #03 + #00 SWP #0008 ** ++ .Screen/addr DEO2 + .octave-view/y1 LDZ2 #0008 ++ .Screen/y DEO2 #23 .Screen/color DEO RTN @@ -319,23 +319,23 @@ RTN @draw-adsr ( -- ) ( adsr ) - .adsr-view/x1 PEK2 .adsr-view/y1 PEK2 + .adsr-view/x1 LDZ2 .adsr-view/y1 LDZ2 .Audio0/adsr DEI #04 SFT ;draw-knob JSR2 - .adsr-view/x1 PEK2 #0018 ++ .adsr-view/y1 PEK2 + .adsr-view/x1 LDZ2 #0018 ++ .adsr-view/y1 LDZ2 .Audio0/adsr DEI #0f AND ;draw-knob JSR2 - .adsr-view/x1 PEK2 #0030 ++ .adsr-view/y1 PEK2 + .adsr-view/x1 LDZ2 #0030 ++ .adsr-view/y1 LDZ2 .Audio0/adsr #01 + DEI #04 SFT ;draw-knob JSR2 - .adsr-view/x1 PEK2 #0048 ++ .adsr-view/y1 PEK2 + .adsr-view/x1 LDZ2 #0048 ++ .adsr-view/y1 LDZ2 .Audio0/adsr #01 + DEI #0f AND ;draw-knob JSR2 ( volume ) - .adsr-view/x2 PEK2 #0028 -- .adsr-view/y1 PEK2 + .adsr-view/x2 LDZ2 #0028 -- .adsr-view/y1 LDZ2 .Audio0/volume DEI #04 SFT ;draw-knob JSR2 - .adsr-view/x2 PEK2 #0010 -- .adsr-view/y1 PEK2 + .adsr-view/x2 LDZ2 #0010 -- .adsr-view/y1 LDZ2 .Audio0/volume DEI #0f AND ;draw-knob JSR2 @@ -344,27 +344,27 @@ RTN @draw-wave ( -- ) ( clear ) - .wave-view/x1 PEK2 - .wave-view/y1 PEK2 - .wave-view/x2 PEK2 #0001 ++ - .wave-view/y2 PEK2 + .wave-view/x1 LDZ2 + .wave-view/y1 LDZ2 + .wave-view/x2 LDZ2 #0001 ++ + .wave-view/y2 LDZ2 #00 ;fill-rect JSR2 #01 ;draw-wave-length JSR2 - .wave-view/x1 PEK2 .Screen/x DEO2 + .wave-view/x1 LDZ2 .Screen/x DEO2 ( waveform ) #00 #ff &loop ( dotted line ) OVR #01 AND ,&no-dot JCN - .wave-view/y1 PEK2 #0010 ++ .Screen/y DEO2 + .wave-view/y1 LDZ2 #0010 ++ .Screen/y DEO2 #03 .Screen/color DEO &no-dot OVR TOS .Audio0/addr DEI2 ++ LDA #02 / - TOS #0004 // .wave-view/y1 PEK2 ++ .Screen/y DEO2 + TOS #0004 // .wave-view/y1 LDZ2 ++ .Screen/y DEO2 .Screen/x DEI2 #0001 ++ .Screen/x DEO2 ( draw ) OVR .Audio0/length DEI2 SWP POP > #02 * #01 + .Screen/color DEO ( incr ) SWP #01 + SWP @@ -372,10 +372,10 @@ RTN POP2 ( range ) - .wave-view/x1 PEK2 .Screen/x DEO2 - .wave-view/y1 PEK2 #0010 -- .Screen/y DEO2 + .wave-view/x1 LDZ2 .Screen/x DEO2 + .wave-view/y1 LDZ2 #0010 -- .Screen/y DEO2 .Audio0/addr DEI2 #22 ;draw-short JSR2 - .wave-view/x2 PEK2 #0020 -- .Screen/x DEO2 + .wave-view/x2 LDZ2 #0020 -- .Screen/x DEO2 .Audio0/length DEI2 #22 ;draw-short JSR2 RTN @@ -383,8 +383,8 @@ RTN @draw-wave-length ( color -- ) STH - .wave-view/x1 PEK2 .Audio0/length DEI2 ++ .Screen/x DEO2 - .wave-view/y1 PEK2 DUP2 #0020 ++ + .wave-view/x1 LDZ2 .Audio0/length DEI2 ++ .Screen/x DEO2 + .wave-view/y1 LDZ2 DUP2 #0020 ++ &loop OVR2 .Screen/y DEO2 ( draw ) DUPr STHr .Screen/color DEO @@ -439,14 +439,14 @@ RTN @fill-rect ( x1* y1* x2* y2* color -- ) - .color POK + .color STZ ( x1 x2 y1 y2 ) ROT2 SWP2 &ver ( save ) OVR2 .Screen/y DEO2 STH2 STH2 OVR2 OVR2 &hor ( save ) OVR2 .Screen/x DEO2 - ( draw ) .color PEK .Screen/color DEO + ( draw ) .color LDZ .Screen/color DEO ( incr ) SWP2 #0001 ++ SWP2 OVR2 OVR2 LTS2 ,&hor JCN POP2 POP2 STH2r STH2r diff --git a/projects/demos/polycat.usm b/projects/demos/polycat.usm @@ -28,8 +28,8 @@ #0caf .System/b DEO2 ( find center ) - .Screen/width DEI2 #0002 / #0008 - .cat/x POK2 - .Screen/height DEI2 #0004 / #0003 * #0018 - .cat/y POK2 + .Screen/width DEI2 #0002 / #0008 - .cat/x STZ2 + .Screen/height DEI2 #0004 / #0003 * #0018 - .cat/y STZ2 ( vectors ) ;on-mouse .Mouse/vector DEO2 @@ -44,15 +44,15 @@ BRK ;draw-cursor JSR2 - .Mouse/x DEI2 .cat/x PEK2 > #20 MUL - .Mouse/y DEI2 .cat/y PEK2 > #40 MUL + .Mouse/x DEI2 .cat/x LDZ2 > #20 MUL + .Mouse/y DEI2 .cat/y LDZ2 > #40 MUL ADD #00 SWP ;draw-eye JSR2 BRK @on-frame ( -> ) - .cat/timer PEK #01 ADD [ DUP ] .cat/timer POK + .cat/timer LDZ #01 ADD [ DUP ] .cat/timer STZ DUP #00 NEQ ,&skip0 JCN #0000 ;draw-tail JSR2 &skip0 DUP #10 NEQ ,&skip1 JCN #0001 ;draw-tail JSR2 &skip1 DUP #20 NEQ ,&skip2 JCN #0002 ;draw-tail JSR2 &skip2 @@ -66,8 +66,8 @@ BRK @draw-polycat ( -- ) ( ears ) - .cat/y PEK2 .Screen/y DEO2 - .cat/x PEK2 DUP2 STH2 #0008 - .Screen/x DEO2 + .cat/y LDZ2 .Screen/y DEO2 + .cat/x LDZ2 DUP2 STH2 #0008 - .Screen/x DEO2 ;ears .Screen/addr DEO2 #41 .Screen/color DEO STH2r .Screen/x DEO2 @@ -81,8 +81,8 @@ RTN @draw-eye ( quad* -- ) - .cat/y PEK2 #0008 + .Screen/y DEO2 - .cat/x PEK2 DUP2 STH2 #0008 - .Screen/x DEO2 + .cat/y LDZ2 #0008 + .Screen/y DEO2 + .cat/x LDZ2 DUP2 STH2 #0008 - .Screen/x DEO2 DUP2 ;eye + .Screen/addr DEO2 ( draw ) #41 .Screen/color DEO STH2r .Screen/x DEO2 @@ -93,8 +93,8 @@ RTN @draw-tail ( frame* -- ) - .cat/y PEK2 #0010 + .Screen/y DEO2 - .cat/x PEK2 DUP2 STH2 #0008 - .Screen/x DEO2 + .cat/y LDZ2 #0010 + .Screen/y DEO2 + .cat/x LDZ2 DUP2 STH2 #0008 - .Screen/x DEO2 ;body .Screen/addr DEO2 ( draw ) #41 .Screen/color DEO STH2r .Screen/x DEO2 @@ -107,17 +107,17 @@ RTN ( clear last cursor ) ;cursor .Screen/addr DEO2 - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 #30 .Screen/color DEO ( record pointer positions ) - .Mouse/x DEI2 .pointer/x POK2 - .Mouse/y DEI2 .pointer/y POK2 + .Mouse/x DEI2 .pointer/x STZ2 + .Mouse/y DEI2 .pointer/y STZ2 ( draw new cursor ) - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 ( colorize on state ) #31 [ .Mouse/state DEI #00 NEQ ] ADD .Screen/color DEO @@ -126,8 +126,8 @@ RTN @draw-ground ( -- ) - .cat/y PEK2 #0018 + .Screen/y DEO2 - .cat/x PEK2 #0010 - .Screen/x DEO2 + .cat/y LDZ2 #0018 + .Screen/y DEO2 + .cat/x LDZ2 #0010 - .Screen/x DEO2 ;ground .Screen/addr DEO2 #00 #10 diff --git a/projects/demos/theme.usm b/projects/demos/theme.usm @@ -44,21 +44,21 @@ ;on-mouse .Mouse/vector DEO2 ( size window ) - #00b0 .window/w POK2 - #0050 .window/h POK2 + #00b0 .window/w STZ2 + #0050 .window/h STZ2 ( center window ) - .Screen/width DEI2 2/ .window/w PEK2 2/ SUB2 .window/x1 POK2 - .Screen/height DEI2 2/ .window/h PEK2 2/ SUB2 .window/y1 POK2 + .Screen/width DEI2 2/ .window/w LDZ2 2/ SUB2 .window/x1 STZ2 + .Screen/height DEI2 2/ .window/h LDZ2 2/ SUB2 .window/y1 STZ2 - #01 .theme/r1 POK #02 .theme/g1 POK #03 .theme/b1 POK - #04 .theme/r2 POK #06 .theme/g2 POK #07 .theme/b2 POK - #0a .theme/r3 POK #09 .theme/g3 POK #08 .theme/b3 POK - #0c .theme/r4 POK #0b .theme/g4 POK #0d .theme/b4 POK + #01 .theme/r1 STZ #02 .theme/g1 STZ #03 .theme/b1 STZ + #04 .theme/r2 STZ #06 .theme/g2 STZ #07 .theme/b2 STZ + #0a .theme/r3 STZ #09 .theme/g3 STZ #08 .theme/b3 STZ + #0c .theme/r4 STZ #0b .theme/g4 STZ #0d .theme/b4 STZ ( find screen center ) - .Screen/width DEI2 2/ .center/x POK2 - .Screen/height DEI2 2/ .center/y POK2 + .Screen/width DEI2 2/ .center/x STZ2 + .Screen/height DEI2 2/ .center/y STZ2 ;update-theme JSR2 ;draw-background JSR2 @@ -72,26 +72,26 @@ BRK .Mouse/state DEI #00 NEQ #01 JCN [ BRK ] - .Mouse/y DEI2 .window/y1 PEK2 SUB2 STEP8 + .Mouse/y DEI2 .window/y1 LDZ2 SUB2 STEP8 DUP2 #0010 NEQ2 ,&no-touch-red JCN - .Mouse/x DEI2 .window/x1 PEK2 #0060 ADD2 LTH2 ,&no-touch-red JCN - .Mouse/x DEI2 .window/x1 PEK2 #009c ADD2 GTH2 ,&no-touch-red JCN - ( get new value ) .Mouse/x DEI2 .window/x1 PEK2 SUB2 #0060 SUB2 #0004 DIV2 SWP POP ;theme/r1 #00 .selection PEK ADD2 STA + .Mouse/x DEI2 .window/x1 LDZ2 #0060 ADD2 LTH2 ,&no-touch-red JCN + .Mouse/x DEI2 .window/x1 LDZ2 #009c ADD2 GTH2 ,&no-touch-red JCN + ( get new value ) .Mouse/x DEI2 .window/x1 LDZ2 SUB2 #0060 SUB2 #0004 DIV2 SWP POP ;theme/r1 #00 .selection LDZ ADD2 STA &no-touch-red DUP2 #0020 NEQ2 ,&no-touch-green JCN - .Mouse/x DEI2 .window/x1 PEK2 #0060 ADD2 LTH2 ,&no-touch-green JCN - .Mouse/x DEI2 .window/x1 PEK2 #009c ADD2 GTH2 ,&no-touch-green JCN - ( get new value ) .Mouse/x DEI2 .window/x1 PEK2 SUB2 #0060 SUB2 #0004 DIV2 SWP POP ;theme/g1 #00 .selection PEK ADD2 STA + .Mouse/x DEI2 .window/x1 LDZ2 #0060 ADD2 LTH2 ,&no-touch-green JCN + .Mouse/x DEI2 .window/x1 LDZ2 #009c ADD2 GTH2 ,&no-touch-green JCN + ( get new value ) .Mouse/x DEI2 .window/x1 LDZ2 SUB2 #0060 SUB2 #0004 DIV2 SWP POP ;theme/g1 #00 .selection LDZ ADD2 STA &no-touch-green DUP2 #0030 NEQ2 ,&no-touch-blue JCN - .Mouse/x DEI2 .window/x1 PEK2 #0060 ADD2 LTH2 ,&no-touch-blue JCN - .Mouse/x DEI2 .window/x1 PEK2 #009c ADD2 GTH2 ,&no-touch-blue JCN - ( get new value ) .Mouse/x DEI2 .window/x1 PEK2 SUB2 #0060 SUB2 #0004 DIV2 SWP POP ;theme/b1 #00 .selection PEK ADD2 STA + .Mouse/x DEI2 .window/x1 LDZ2 #0060 ADD2 LTH2 ,&no-touch-blue JCN + .Mouse/x DEI2 .window/x1 LDZ2 #009c ADD2 GTH2 ,&no-touch-blue JCN + ( get new value ) .Mouse/x DEI2 .window/x1 LDZ2 SUB2 #0060 SUB2 #0004 DIV2 SWP POP ;theme/b1 #00 .selection LDZ ADD2 STA &no-touch-blue DUP2 #0040 NEQ2 ,&no-touch-radio JCN - .Mouse/x DEI2 .window/x1 PEK2 #0050 ADD2 LTH2 ,&no-touch-radio JCN - .Mouse/x DEI2 .window/x1 PEK2 #008c ADD2 GTH2 ,&no-touch-radio JCN - .Mouse/x DEI2 .window/x1 PEK2 SUB2 #0050 SUB2 STEP8 2/ #0008 DIV2 SWP POP .selection POK + .Mouse/x DEI2 .window/x1 LDZ2 #0050 ADD2 LTH2 ,&no-touch-radio JCN + .Mouse/x DEI2 .window/x1 LDZ2 #008c ADD2 GTH2 ,&no-touch-radio JCN + .Mouse/x DEI2 .window/x1 LDZ2 SUB2 #0050 SUB2 STEP8 2/ #0008 DIV2 SWP POP .selection STZ &no-touch-radio POP2 @@ -102,25 +102,25 @@ BRK @update-theme ( -- ) - #08 DEI #0f AND .theme/r1 PEK #40 SFT ADD #08 DEO - #0a DEI #0f AND .theme/g1 PEK #40 SFT ADD #0a DEO - #0c DEI #0f AND .theme/b1 PEK #40 SFT ADD #0c DEO - #08 DEI #f0 AND .theme/r2 PEK ADD #08 DEO - #0a DEI #f0 AND .theme/g2 PEK ADD #0a DEO - #0c DEI #f0 AND .theme/b2 PEK ADD #0c DEO - #09 DEI #0f AND .theme/r3 PEK #40 SFT ADD #09 DEO - #0b DEI #0f AND .theme/g3 PEK #40 SFT ADD #0b DEO - #0d DEI #0f AND .theme/b3 PEK #40 SFT ADD #0d DEO - #09 DEI #f0 AND .theme/r4 PEK ADD #09 DEO - #0b DEI #f0 AND .theme/g4 PEK ADD #0b DEO - #0d DEI #f0 AND .theme/b4 PEK ADD #0d DEO + #08 DEI #0f AND .theme/r1 LDZ #40 SFT ADD #08 DEO + #0a DEI #0f AND .theme/g1 LDZ #40 SFT ADD #0a DEO + #0c DEI #0f AND .theme/b1 LDZ #40 SFT ADD #0c DEO + #08 DEI #f0 AND .theme/r2 LDZ ADD #08 DEO + #0a DEI #f0 AND .theme/g2 LDZ ADD #0a DEO + #0c DEI #f0 AND .theme/b2 LDZ ADD #0c DEO + #09 DEI #0f AND .theme/r3 LDZ #40 SFT ADD #09 DEO + #0b DEI #0f AND .theme/g3 LDZ #40 SFT ADD #0b DEO + #0d DEI #0f AND .theme/b3 LDZ #40 SFT ADD #0d DEO + #09 DEI #f0 AND .theme/r4 LDZ ADD #09 DEO + #0b DEI #f0 AND .theme/g4 LDZ ADD #0b DEO + #0d DEI #f0 AND .theme/b4 LDZ ADD #0d DEO RTN @draw-background ( -- ) ( draw hor line ) - #0000 .Screen/x DEO2 .center/y PEK2 .Screen/y DEO2 + #0000 .Screen/x DEO2 .center/y LDZ2 .Screen/y DEO2 #0000 .Screen/width DEI2 ( from/to ) &draw-hor ( draw ) #01 .Screen/color DEO @@ -129,7 +129,7 @@ RTN POP2 POP2 ( draw ver line ) - .center/x PEK2 .Screen/x DEO2 #0000 .Screen/y DEO2 + .center/x LDZ2 .Screen/x DEO2 #0000 .Screen/y DEO2 #0000 .Screen/height DEI2 ( from/to ) &draw-ver ( draw ) #02 .Screen/color DEO @@ -192,46 +192,46 @@ RTN @draw-window ( -- ) - .window/x1 PEK2 .window/w PEK2 ADD2 .window/x2 POK2 - .window/y1 PEK2 .window/h PEK2 ADD2 .window/y2 POK2 - .window/x1 PEK2 .window/y1 PEK2 .window/x2 PEK2 .window/y2 PEK2 #02 ;fill-rect JSR2 - .window/x1 PEK2 .window/y1 PEK2 .window/x2 PEK2 .window/y2 PEK2 #01 ;line-rect JSR2 - .window/x1 PEK2 #0002 SUB2 .window/y1 PEK2 #0002 SUB2 .window/x2 PEK2 #0002 ADD2 .window/y2 PEK2 #0002 ADD2 #01 ;line-rect JSR2 - - .window/x1 PEK2 #0008 ADD2 .window/y1 PEK2 #0010 ADD2 ;red_txt #25 ;draw-label JSR2 - .window/x1 PEK2 #0038 ADD2 .Screen/x DEO2 + .window/x1 LDZ2 .window/w LDZ2 ADD2 .window/x2 STZ2 + .window/y1 LDZ2 .window/h LDZ2 ADD2 .window/y2 STZ2 + .window/x1 LDZ2 .window/y1 LDZ2 .window/x2 LDZ2 .window/y2 LDZ2 #02 ;fill-rect JSR2 + .window/x1 LDZ2 .window/y1 LDZ2 .window/x2 LDZ2 .window/y2 LDZ2 #01 ;line-rect JSR2 + .window/x1 LDZ2 #0002 SUB2 .window/y1 LDZ2 #0002 SUB2 .window/x2 LDZ2 #0002 ADD2 .window/y2 LDZ2 #0002 ADD2 #01 ;line-rect JSR2 + + .window/x1 LDZ2 #0008 ADD2 .window/y1 LDZ2 #0010 ADD2 ;red_txt #25 ;draw-label JSR2 + .window/x1 LDZ2 #0038 ADD2 .Screen/x DEO2 .System/r DEI2 #28 ;draw-short JSR2 - .window/x1 PEK2 #0008 ADD2 .window/y1 PEK2 #0020 ADD2 ;green_txt #25 ;draw-label JSR2 - .window/x1 PEK2 #0038 ADD2 .Screen/x DEO2 + .window/x1 LDZ2 #0008 ADD2 .window/y1 LDZ2 #0020 ADD2 ;green_txt #25 ;draw-label JSR2 + .window/x1 LDZ2 #0038 ADD2 .Screen/x DEO2 .System/g DEI2 #28 ;draw-short JSR2 - .window/x1 PEK2 #0008 ADD2 .window/y1 PEK2 #0030 ADD2 ;blue_txt #25 ;draw-label JSR2 - .window/x1 PEK2 #0038 ADD2 .Screen/x DEO2 + .window/x1 LDZ2 #0008 ADD2 .window/y1 LDZ2 #0030 ADD2 ;blue_txt #25 ;draw-label JSR2 + .window/x1 LDZ2 #0038 ADD2 .Screen/x DEO2 .System/b DEI2 #28 ;draw-short JSR2 - .window/x1 PEK2 #0060 ADD2 .window/y1 PEK2 #0010 ADD2 .window/x1 PEK2 #0090 ADD2 #00 ;theme/r1 .selection PEK ADD LDA #0004 MUL2 #01 ;draw-slider JSR2 - .window/x1 PEK2 #0060 ADD2 .window/y1 PEK2 #0020 ADD2 .window/x1 PEK2 #0090 ADD2 #00 ;theme/g1 .selection PEK ADD LDA #0004 MUL2 #01 ;draw-slider JSR2 - .window/x1 PEK2 #0060 ADD2 .window/y1 PEK2 #0030 ADD2 .window/x1 PEK2 #0090 ADD2 #00 ;theme/b1 .selection PEK ADD LDA #0004 MUL2 #01 ;draw-slider JSR2 + .window/x1 LDZ2 #0060 ADD2 .window/y1 LDZ2 #0010 ADD2 .window/x1 LDZ2 #0090 ADD2 #00 ;theme/r1 .selection LDZ ADD LDA #0004 MUL2 #01 ;draw-slider JSR2 + .window/x1 LDZ2 #0060 ADD2 .window/y1 LDZ2 #0020 ADD2 .window/x1 LDZ2 #0090 ADD2 #00 ;theme/g1 .selection LDZ ADD LDA #0004 MUL2 #01 ;draw-slider JSR2 + .window/x1 LDZ2 #0060 ADD2 .window/y1 LDZ2 #0030 ADD2 .window/x1 LDZ2 #0090 ADD2 #00 ;theme/b1 .selection LDZ ADD LDA #0004 MUL2 #01 ;draw-slider JSR2 - .window/x1 PEK2 #0050 ADD2 .Screen/x DEO2 - .window/y1 PEK2 #0040 ADD2 .Screen/y DEO2 - ;radio_icns #00 .selection PEK #00 EQU #0008 MUL2 ADD2 .Screen/addr DEO2 + .window/x1 LDZ2 #0050 ADD2 .Screen/x DEO2 + .window/y1 LDZ2 #0040 ADD2 .Screen/y DEO2 + ;radio_icns #00 .selection LDZ #00 EQU #0008 MUL2 ADD2 .Screen/addr DEO2 #25 .Screen/color DEO - .window/x1 PEK2 #0060 ADD2 .Screen/x DEO2 - .window/y1 PEK2 #0040 ADD2 .Screen/y DEO2 - ;radio_icns #00 .selection PEK #01 EQU #0008 MUL2 ADD2 .Screen/addr DEO2 + .window/x1 LDZ2 #0060 ADD2 .Screen/x DEO2 + .window/y1 LDZ2 #0040 ADD2 .Screen/y DEO2 + ;radio_icns #00 .selection LDZ #01 EQU #0008 MUL2 ADD2 .Screen/addr DEO2 #25 .Screen/color DEO - .window/x1 PEK2 #0070 ADD2 .Screen/x DEO2 - .window/y1 PEK2 #0040 ADD2 .Screen/y DEO2 - ;radio_icns #00 .selection PEK #02 EQU #0008 MUL2 ADD2 .Screen/addr DEO2 + .window/x1 LDZ2 #0070 ADD2 .Screen/x DEO2 + .window/y1 LDZ2 #0040 ADD2 .Screen/y DEO2 + ;radio_icns #00 .selection LDZ #02 EQU #0008 MUL2 ADD2 .Screen/addr DEO2 #25 .Screen/color DEO - .window/x1 PEK2 #0080 ADD2 .Screen/x DEO2 - .window/y1 PEK2 #0040 ADD2 .Screen/y DEO2 - ;radio_icns #00 .selection PEK #03 EQU #0008 MUL2 ADD2 .Screen/addr DEO2 + .window/x1 LDZ2 #0080 ADD2 .Screen/x DEO2 + .window/y1 LDZ2 #0040 ADD2 .Screen/y DEO2 + ;radio_icns #00 .selection LDZ #03 EQU #0008 MUL2 ADD2 .Screen/addr DEO2 #25 .Screen/color DEO RTN @@ -240,27 +240,27 @@ RTN ( clear last cursor ) ;pointer_icn .Screen/addr DEO2 - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 #30 .Screen/color DEO ( record pointer positions ) - .Mouse/x DEI2 .pointer/x POK2 - .Mouse/y DEI2 .pointer/y POK2 + .Mouse/x DEI2 .pointer/x STZ2 + .Mouse/y DEI2 .pointer/y STZ2 ( draw new cursor ) - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 #33 .Mouse/state DEI #00 NEQ #02 MUL SUB .Screen/color DEO RTN @draw-slider ( x1* y* x2* pos* color -- ) - ( load ) .color POK .slider/pos POK2 .slider/x2 POK2 .slider/y POK2 .slider/x1 POK2 + ( load ) .color STZ .slider/pos STZ2 .slider/x2 STZ2 .slider/y STZ2 .slider/x1 STZ2 - .slider/x1 PEK2 .Screen/x DEO2 - .slider/y PEK2 .Screen/y DEO2 + .slider/x1 LDZ2 .Screen/x DEO2 + .slider/y LDZ2 .Screen/y DEO2 ;halftone_icn .Screen/addr DEO2 ;slidera_icn .Screen/addr DEO2 @@ -270,13 +270,13 @@ RTN &loop ( incr ) .Screen/x DEI2 8+ .Screen/x DEO2 ( draw ) #25 .Screen/color DEO - .Screen/x DEI2 .slider/x2 PEK2 #0008 ADD2 LTH2 ,&loop JCN + .Screen/x DEI2 .slider/x2 LDZ2 #0008 ADD2 LTH2 ,&loop JCN ( incr ) .Screen/x DEI2 #0004 ADD2 .Screen/x DEO2 ;sliderc_icn .Screen/addr DEO2 ( draw ) #25 .Screen/color DEO - .slider/x1 PEK2 .slider/pos PEK2 ADD2 .Screen/x DEO2 + .slider/x1 LDZ2 .slider/pos LDZ2 ADD2 .Screen/x DEO2 ;sliderd_icn .Screen/addr DEO2 ( draw ) #2a .Screen/color DEO @@ -284,14 +284,14 @@ RTN @fill-rect ( x1* y1* x2* y2* color -- ) - .color POK + .color STZ ( x1 x2 y1 y2 ) ROT2 SWP2 &ver ( save ) OVR2 .Screen/y DEO2 STH2 STH2 OVR2 OVR2 &hor ( save ) OVR2 .Screen/x DEO2 - ( draw ) .color PEK .Screen/color DEO + ( draw ) .color LDZ .Screen/color DEO ( incr ) SWP2 #0001 ADD2 SWP2 OVR2 OVR2 LTH2 ,&hor JCN POP2 POP2 STH2r STH2r @@ -303,18 +303,18 @@ RTN @line-rect ( x1* y1* x2* y2* color -- ) - ( load ) .color POK .rect/y2 POK2 .rect/x2 POK2 DUP2 .Screen/y DEO2 .rect/y1 POK2 DUP2 .Screen/x DEO2 .rect/x1 POK2 + ( load ) .color STZ .rect/y2 STZ2 .rect/x2 STZ2 DUP2 .Screen/y DEO2 .rect/y1 STZ2 DUP2 .Screen/x DEO2 .rect/x1 STZ2 &hor ( incr ) .Screen/x DEI2 ++ .Screen/x DEO2 - ( draw ) .rect/y1 PEK2 .Screen/y DEO2 .color PEK .Screen/color DEO - ( draw ) .rect/y2 PEK2 .Screen/y DEO2 .color PEK .Screen/color DEO - .Screen/x DEI2 .rect/x2 PEK2 LTH2 ,&hor JCN - .rect/y1 PEK2 .Screen/y DEO2 + ( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ .Screen/color DEO + ( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .color LDZ .Screen/color DEO + .Screen/x DEI2 .rect/x2 LDZ2 LTH2 ,&hor JCN + .rect/y1 LDZ2 .Screen/y DEO2 &ver - ( draw ) .rect/x1 PEK2 .Screen/x DEO2 .color PEK .Screen/color DEO - ( draw ) .rect/x2 PEK2 .Screen/x DEO2 .color PEK .Screen/color DEO + ( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ .Screen/color DEO + ( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .color LDZ .Screen/color DEO ( incr ) .Screen/y DEI2 ++ .Screen/y DEO2 - .Screen/y DEI2 .rect/y2 PEK2 ++ LTH2 ,&ver JCN + .Screen/y DEI2 .rect/y2 LDZ2 ++ LTH2 ,&ver JCN RTN diff --git a/projects/examples/devices/audio.usm b/projects/examples/devices/audio.usm @@ -31,11 +31,11 @@ BRK @on-frame ( -> ) - ( incr ) .timer PEK #01 ADD .timer POK - ( skip ) .timer PEK #10 EQU #01 JCN [ BRK ] + ( incr ) .timer LDZ #01 ADD .timer STZ + ( skip ) .timer LDZ #10 EQU #01 JCN [ BRK ] ( get note ) - ;melody #00 .progress PEK ADD2 LDA + ;melody #00 .progress LDZ ADD2 LDA ( play note ) DUP .Audio0/pitch DEO @@ -45,13 +45,13 @@ BRK ( draw note ) #00 SWP #0004 MUL2 #0100 SUB2 .Screen/y DEO2 - #00 .progress PEK #0008 MUL2 .Screen/x DEO2 + #00 .progress LDZ #0008 MUL2 .Screen/x DEO2 ;dot .Screen/addr DEO2 #21 .Screen/color DEO - ( incr ) .progress PEK #01 ADD #20 MOD .progress POK + ( incr ) .progress LDZ #01 ADD #20 MOD .progress STZ - #00 .timer POK + #00 .timer STZ BRK diff --git a/projects/examples/devices/console.lib.usm b/projects/examples/devices/console.lib.usm @@ -58,23 +58,23 @@ RTN RTN @print-decimal ( short -- ) - #00 .number/started POK + #00 .number/started STZ DUP2 #2710 DIV2 DUP2 ,&digit JSR #2710 MUL2 SUB2 DUP2 #03e8 DIV2 DUP2 ,&digit JSR #03e8 MUL2 SUB2 DUP2 #0064 DIV2 DUP2 ,&digit JSR #0064 MUL2 SUB2 DUP2 #000a DIV2 DUP2 ,&digit JSR #000a MUL2 SUB2 ,&digit JSR - .number/started PEK ,&end JCN + .number/started LDZ ,&end JCN LIT '0 .Console/char DEO &end RTN &digit SWP POP - DUP .number/started PEK ORA #02 JCN + DUP .number/started LDZ ORA #02 JCN POP JMP2r LIT '0 ADD .Console/char DEO - #01 .number/started POK + #01 .number/started STZ RTN @char-txt "char: 20 $1 diff --git a/projects/examples/devices/controller.buttons.usm b/projects/examples/devices/controller.buttons.usm @@ -33,19 +33,19 @@ ;default_icn .Screen/addr DEO2 #31 .Screen/color DEO - #2a .slime POK + #2a .slime STZ BRK @on-frame ( -> ) - #2a .slime POK + #2a .slime STZ ;default_icn .Screen/addr DEO2 ( hold ctrl key to change slime color ) .Controller/button DEI #0f AND - DUP #01 NEQ ,&no-ctrl JCN #25 .slime POK &no-ctrl - DUP #02 NEQ ,&no-alt JCN #2f .slime POK &no-alt + DUP #01 NEQ ,&no-ctrl JCN #25 .slime STZ &no-ctrl + DUP #02 NEQ ,&no-alt JCN #2f .slime STZ &no-alt POP ( clear ) #30 .Screen/color DEO @@ -75,7 +75,7 @@ BRK ( draw slime ) ;slime_icn .Screen/addr DEO2 - .slime PEK .Screen/color DEO + .slime LDZ .Screen/color DEO BRK diff --git a/projects/examples/devices/datetime.usm b/projects/examples/devices/datetime.usm @@ -41,30 +41,30 @@ BRK @on-frame ( -> ) ( only draw once per second ) - ( skip ) .DateTime/second DEI .current PEK NEQ #01 JCN [ BRK ] + ( skip ) .DateTime/second DEI .current LDZ NEQ #01 JCN [ BRK ] - .DateTime/second DEI .current POK + .DateTime/second DEI .current STZ ( clear ) - #0080 SCALEX #0080 SCALEY .needles/sx PEK2 .needles/sy PEK2 #00 ;draw-line JSR2 - #0080 SCALEX #0080 SCALEY .needles/mx PEK2 .needles/my PEK2 #00 ;draw-line JSR2 - #0080 SCALEX #0080 SCALEY .needles/hx PEK2 .needles/hy PEK2 #00 ;draw-line JSR2 + #0080 SCALEX #0080 SCALEY .needles/sx LDZ2 .needles/sy LDZ2 #00 ;draw-line JSR2 + #0080 SCALEX #0080 SCALEY .needles/mx LDZ2 .needles/my LDZ2 #00 ;draw-line JSR2 + #0080 SCALEX #0080 SCALEY .needles/hx LDZ2 .needles/hy LDZ2 #00 ;draw-line JSR2 ( place ) #00 .DateTime/second DEI #0002 MUL2 ;table ADD2 LDA2 - #00 SWP SCALEY .needles/sy POK2 - #00 SWP SCALEX .needles/sx POK2 + #00 SWP SCALEY .needles/sy STZ2 + #00 SWP SCALEX .needles/sx STZ2 #00 .DateTime/minute DEI #0002 MUL2 ;table ADD2 LDA2 - #00 SWP #0004 DIV2 #0003 MUL2 #0020 ADD2 SCALEY .needles/my POK2 - #00 SWP #0004 DIV2 #0003 MUL2 #0020 ADD2 SCALEX .needles/mx POK2 + #00 SWP #0004 DIV2 #0003 MUL2 #0020 ADD2 SCALEY .needles/my STZ2 + #00 SWP #0004 DIV2 #0003 MUL2 #0020 ADD2 SCALEX .needles/mx STZ2 #00 .DateTime/hour DEI 12HOURS #05 MUL #0002 MUL2 ;table ADD2 LDA2 - #00 SWP #0002 DIV2 #0040 ADD2 SCALEY .needles/hy POK2 - #00 SWP #0002 DIV2 #0040 ADD2 SCALEX .needles/hx POK2 + #00 SWP #0002 DIV2 #0040 ADD2 SCALEY .needles/hy STZ2 + #00 SWP #0002 DIV2 #0040 ADD2 SCALEX .needles/hx STZ2 ( needles ) - #0080 SCALEX #0080 SCALEY .needles/sx PEK2 .needles/sy PEK2 #02 ;draw-line JSR2 - #0080 SCALEX #0080 SCALEY .needles/mx PEK2 .needles/my PEK2 #01 ;draw-line JSR2 - #0080 SCALEX #0080 SCALEY .needles/hx PEK2 .needles/hy PEK2 #03 ;draw-line JSR2 + #0080 SCALEX #0080 SCALEY .needles/sx LDZ2 .needles/sy LDZ2 #02 ;draw-line JSR2 + #0080 SCALEX #0080 SCALEY .needles/mx LDZ2 .needles/my LDZ2 #01 ;draw-line JSR2 + #0080 SCALEX #0080 SCALEY .needles/hx LDZ2 .needles/hy LDZ2 #03 ;draw-line JSR2 ( circle ) #00 #3c @@ -109,26 +109,26 @@ RTN @draw-line ( x1 y1 x2 y2 color -- ) - ( load ) .color POK .line/y0 POK2 .line/x0 POK2 .line/y POK2 .line/x POK2 - .line/x0 PEK2 .line/x PEK2 SUB2 ABS2 .line/dx POK2 - .line/y0 PEK2 .line/y PEK2 SUB2 ABS2 #0000 SWP2 SUB2 .line/dy POK2 - #ffff #00 .line/x PEK2 .line/x0 PEK2 LTS2 #0002 MUL2 ADD2 .line/sx POK2 - #ffff #00 .line/y PEK2 .line/y0 PEK2 LTS2 #0002 MUL2 ADD2 .line/sy POK2 - .line/dx PEK2 .line/dy PEK2 ADD2 .line/e1 POK2 + ( load ) .color STZ .line/y0 STZ2 .line/x0 STZ2 .line/y STZ2 .line/x STZ2 + .line/x0 LDZ2 .line/x LDZ2 SUB2 ABS2 .line/dx STZ2 + .line/y0 LDZ2 .line/y LDZ2 SUB2 ABS2 #0000 SWP2 SUB2 .line/dy STZ2 + #ffff #00 .line/x LDZ2 .line/x0 LDZ2 LTS2 #0002 MUL2 ADD2 .line/sx STZ2 + #ffff #00 .line/y LDZ2 .line/y0 LDZ2 LTS2 #0002 MUL2 ADD2 .line/sy STZ2 + .line/dx LDZ2 .line/dy LDZ2 ADD2 .line/e1 STZ2 &loop - .line/x PEK2 .Screen/x DEO2 - .line/y PEK2 .Screen/y DEO2 - .color PEK .Screen/color DEO - [ .line/x PEK2 .line/x0 PEK2 EQU2 ] - [ .line/y PEK2 .line/y0 PEK2 EQU2 ] #0101 EQU2 ,&end JCN - .line/e1 PEK2 #0002 MUL2 .line/e2 POK2 - .line/e2 PEK2 .line/dy PEK2 LTS2 ,&skipy JCN - .line/e1 PEK2 .line/dy PEK2 ADD2 .line/e1 POK2 - .line/x PEK2 .line/sx PEK2 ADD2 .line/x POK2 + .line/x LDZ2 .Screen/x DEO2 + .line/y LDZ2 .Screen/y DEO2 + .color LDZ .Screen/color DEO + [ .line/x LDZ2 .line/x0 LDZ2 EQU2 ] + [ .line/y LDZ2 .line/y0 LDZ2 EQU2 ] #0101 EQU2 ,&end JCN + .line/e1 LDZ2 #0002 MUL2 .line/e2 STZ2 + .line/e2 LDZ2 .line/dy LDZ2 LTS2 ,&skipy JCN + .line/e1 LDZ2 .line/dy LDZ2 ADD2 .line/e1 STZ2 + .line/x LDZ2 .line/sx LDZ2 ADD2 .line/x STZ2 &skipy - .line/e2 PEK2 .line/dx PEK2 GTS2 ,&skipx JCN - .line/e1 PEK2 .line/dx PEK2 ADD2 .line/e1 POK2 - .line/y PEK2 .line/sy PEK2 ADD2 .line/y POK2 + .line/e2 LDZ2 .line/dx LDZ2 GTS2 ,&skipx JCN + .line/e1 LDZ2 .line/dx LDZ2 ADD2 .line/e1 STZ2 + .line/y LDZ2 .line/sy LDZ2 ADD2 .line/y STZ2 &skipx ;&loop JMP2 &end diff --git a/projects/examples/devices/mouse.usm b/projects/examples/devices/mouse.usm @@ -36,37 +36,37 @@ BRK ;draw-cursor JSR2 ( on down ) - .Mouse/state DEI #00 NEQ .pointer/state PEK #00 EQU #0101 EQU2 ,on-mouse-down JCN + .Mouse/state DEI #00 NEQ .pointer/state LDZ #00 EQU #0101 EQU2 ,on-mouse-down JCN ( on drag ) .Mouse/state DEI #00 NEQ ,on-mouse-drag JCN - .Mouse/state DEI .pointer/state POK + .Mouse/state DEI .pointer/state STZ BRK @on-mouse-down ( -> ) ( record start position ) - .Mouse/x DEI2 DUP2 .pointer/x POK2 .pointer/lastx POK2 - .Mouse/y DEI2 DUP2 .pointer/y POK2 .pointer/lasty POK2 - .Mouse/state DEI .pointer/state POK + .Mouse/x DEI2 DUP2 .pointer/x STZ2 .pointer/lastx STZ2 + .Mouse/y DEI2 DUP2 .pointer/y STZ2 .pointer/lasty STZ2 + .Mouse/state DEI .pointer/state STZ BRK @on-mouse-drag ( -> ) ( draw line ) - .pointer/lastx PEK2 - .pointer/lasty PEK2 - .pointer/x PEK2 - .pointer/y PEK2 + .pointer/lastx LDZ2 + .pointer/lasty LDZ2 + .pointer/x LDZ2 + .pointer/y LDZ2 #01 [ .Mouse/state DEI #10 EQU #02 MUL ADD ] ;draw-line JSR2 ( record last position ) - .Mouse/x DEI2 .pointer/lastx POK2 - .Mouse/y DEI2 .pointer/lasty POK2 - .Mouse/state DEI .pointer/state POK + .Mouse/x DEI2 .pointer/lastx STZ2 + .Mouse/y DEI2 .pointer/lasty STZ2 + .Mouse/state DEI .pointer/state STZ BRK @@ -74,44 +74,44 @@ BRK ( clear last cursor ) #fff8 .Screen/addr DEO2 - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 #30 .Screen/color DEO ( record pointer positions ) - .Mouse/x DEI2 .pointer/x POK2 - .Mouse/y DEI2 .pointer/y POK2 + .Mouse/x DEI2 .pointer/x STZ2 + .Mouse/y DEI2 .pointer/y STZ2 ( draw new cursor ) ;pointer_icn .Screen/addr DEO2 - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 #33 .Mouse/state DEI #00 NEQ #02 MUL SUB .Screen/color DEO RTN @draw-line ( x1 y1 x2 y2 color -- ) - ( load ) .color POK .line/y0 POK2 .line/x0 POK2 .line/y POK2 .line/x POK2 - .line/x0 PEK2 .line/x PEK2 SUB2 ABS2 .line/dx POK2 - .line/y0 PEK2 .line/y PEK2 SUB2 ABS2 #0000 SWP2 SUB2 .line/dy POK2 - #ffff #00 .line/x PEK2 .line/x0 PEK2 LTS2 #0002 MUL2 ADD2 .line/sx POK2 - #ffff #00 .line/y PEK2 .line/y0 PEK2 LTS2 #0002 MUL2 ADD2 .line/sy POK2 - .line/dx PEK2 .line/dy PEK2 ADD2 .line/e1 POK2 + ( load ) .color STZ .line/y0 STZ2 .line/x0 STZ2 .line/y STZ2 .line/x STZ2 + .line/x0 LDZ2 .line/x LDZ2 SUB2 ABS2 .line/dx STZ2 + .line/y0 LDZ2 .line/y LDZ2 SUB2 ABS2 #0000 SWP2 SUB2 .line/dy STZ2 + #ffff #00 .line/x LDZ2 .line/x0 LDZ2 LTS2 #0002 MUL2 ADD2 .line/sx STZ2 + #ffff #00 .line/y LDZ2 .line/y0 LDZ2 LTS2 #0002 MUL2 ADD2 .line/sy STZ2 + .line/dx LDZ2 .line/dy LDZ2 ADD2 .line/e1 STZ2 &loop - .line/x PEK2 .Screen/x DEO2 - .line/y PEK2 .Screen/y DEO2 - .color PEK .Screen/color DEO - [ .line/x PEK2 .line/x0 PEK2 EQU2 ] - [ .line/y PEK2 .line/y0 PEK2 EQU2 ] #0101 EQU2 ,&end JCN - .line/e1 PEK2 #0002 MUL2 .line/e2 POK2 - .line/e2 PEK2 .line/dy PEK2 LTS2 ,&skipy JCN - .line/e1 PEK2 .line/dy PEK2 ADD2 .line/e1 POK2 - .line/x PEK2 .line/sx PEK2 ADD2 .line/x POK2 + .line/x LDZ2 .Screen/x DEO2 + .line/y LDZ2 .Screen/y DEO2 + .color LDZ .Screen/color DEO + [ .line/x LDZ2 .line/x0 LDZ2 EQU2 ] + [ .line/y LDZ2 .line/y0 LDZ2 EQU2 ] #0101 EQU2 ,&end JCN + .line/e1 LDZ2 #0002 MUL2 .line/e2 STZ2 + .line/e2 LDZ2 .line/dy LDZ2 LTS2 ,&skipy JCN + .line/e1 LDZ2 .line/dy LDZ2 ADD2 .line/e1 STZ2 + .line/x LDZ2 .line/sx LDZ2 ADD2 .line/x STZ2 &skipy - .line/e2 PEK2 .line/dx PEK2 GTS2 ,&skipx JCN - .line/e1 PEK2 .line/dx PEK2 ADD2 .line/e1 POK2 - .line/y PEK2 .line/sy PEK2 ADD2 .line/y POK2 + .line/e2 LDZ2 .line/dx LDZ2 GTS2 ,&skipx JCN + .line/e1 LDZ2 .line/dx LDZ2 ADD2 .line/e1 STZ2 + .line/y LDZ2 .line/sy LDZ2 ADD2 .line/y STZ2 &skipx ;&loop JMP2 &end diff --git a/projects/examples/devices/screen.usm b/projects/examples/devices/screen.usm @@ -24,8 +24,8 @@ #0da4 .System/b DEO2 ( find screen center ) - .Screen/width DEI2 #0002 DIV2 .center/x POK2 - .Screen/height DEI2 #0002 DIV2 .center/y POK2 + .Screen/width DEI2 #0002 DIV2 .center/x STZ2 + .Screen/height DEI2 #0002 DIV2 .center/y STZ2 ( draw ) ;draw-table JSR2 @@ -40,9 +40,9 @@ BRK #00 #00 &loop ( move ) OVR #0f AND #40 SFT #02 DIV #00 SWP - .center/x PEK2 #0040 SUB2 ADD2 .Screen/x DEO2 + .center/x LDZ2 #0040 SUB2 ADD2 .Screen/x DEO2 ( move ) OVR #f0 AND #02 DIV #00 SWP - .center/y PEK2 #0040 SUB2 ADD2 .Screen/y DEO2 + .center/y LDZ2 #0040 SUB2 ADD2 .Screen/y DEO2 ( draw ) OVR .Screen/color DEO ( incr ) SWP #01 ADD SWP DUP2 NEQ ,&loop JCN @@ -58,14 +58,14 @@ RTN ( x-axis ) OVR #08 MUL #00 SWP - .center/x PEK2 #0040 SUB2 ADD2 .Screen/x DEO2 - .center/y PEK2 #0050 SUB2 .Screen/y DEO2 + .center/x LDZ2 #0040 SUB2 ADD2 .Screen/x DEO2 + .center/y LDZ2 #0050 SUB2 .Screen/y DEO2 ( draw ) #21 .Screen/color DEO ( y-axis ) OVR #08 MUL #00 SWP - .center/y PEK2 #0040 SUB2 ADD2 .Screen/y DEO2 - .center/x PEK2 #0050 SUB2 .Screen/x DEO2 + .center/y LDZ2 #0040 SUB2 ADD2 .Screen/y DEO2 + .center/x LDZ2 #0050 SUB2 .Screen/x DEO2 ( draw ) #21 .Screen/color DEO ( incr ) SWP #01 ADD SWP @@ -78,15 +78,15 @@ RTN ;preview_icn .Screen/addr DEO2 - .center/x PEK2 #0048 ADD2 .Screen/x DEO2 - .center/y PEK2 #0030 ADD2 .Screen/y DEO2 + .center/x LDZ2 #0048 ADD2 .Screen/x DEO2 + .center/y LDZ2 #0030 ADD2 .Screen/y DEO2 #21 .Screen/color DEO - .center/x PEK2 #0050 ADD2 .Screen/x DEO2 + .center/x LDZ2 #0050 ADD2 .Screen/x DEO2 #61 .Screen/color DEO - .center/x PEK2 #0048 ADD2 .Screen/x DEO2 - .center/y PEK2 #0038 ADD2 .Screen/y DEO2 + .center/x LDZ2 #0048 ADD2 .Screen/x DEO2 + .center/y LDZ2 #0038 ADD2 .Screen/y DEO2 #a1 .Screen/color DEO - .center/x PEK2 #0050 ADD2 .Screen/x DEO2 + .center/x LDZ2 #0050 ADD2 .Screen/x DEO2 #f1 .Screen/color DEO RTN diff --git a/projects/examples/gui/animation.usm b/projects/examples/gui/animation.usm @@ -20,8 +20,8 @@ ;on-frame .Screen/vector DEO2 ( starting position ) - .Screen/width DEI2 #0002 DIV2 .dvd/x POK2 - .Screen/height DEI2 #0002 DIV2 .dvd/y POK2 + .Screen/width DEI2 #0002 DIV2 .dvd/x STZ2 + .Screen/height DEI2 #0002 DIV2 .dvd/y STZ2 #21 ;draw-dvd JSR2 @@ -30,16 +30,16 @@ BRK @on-frame ( -> ) ( clear ) #20 ;draw-dvd JSR2 - ( case: hit-right ) .dvd/x PEK2 .Screen/width DEI2 #0020 SUB2 EQU2 - ( case: hit-left ) .dvd/x PEK2 #0000 EQU2 + ( case: hit-right ) .dvd/x LDZ2 .Screen/width DEI2 #0020 SUB2 EQU2 + ( case: hit-left ) .dvd/x LDZ2 #0000 EQU2 #0000 EQU2 ,&no-flipx JCN - .dvd/dx PEK #00 EQU .dvd/dx POK &no-flipx - ( case: hit-bottom ) .dvd/y PEK2 .Screen/height DEI2 #0010 SUB2 EQU2 - ( case: hit-top ) .dvd/y PEK2 #0000 EQU2 + .dvd/dx LDZ #00 EQU .dvd/dx STZ &no-flipx + ( case: hit-bottom ) .dvd/y LDZ2 .Screen/height DEI2 #0010 SUB2 EQU2 + ( case: hit-top ) .dvd/y LDZ2 #0000 EQU2 #0000 EQU2 ,&no-flipy JCN - .dvd/dy PEK #00 EQU .dvd/dy POK &no-flipy - ( incr ) .dvd/x PEK2 #0001 #00 .dvd/dx PEK #00 EQU #fffe MUL2 ADD2 ADD2 .dvd/x POK2 - ( incr ) .dvd/y PEK2 #0001 #00 .dvd/dy PEK #00 EQU #fffe MUL2 ADD2 ADD2 .dvd/y POK2 + .dvd/dy LDZ #00 EQU .dvd/dy STZ &no-flipy + ( incr ) .dvd/x LDZ2 #0001 #00 .dvd/dx LDZ #00 EQU #fffe MUL2 ADD2 ADD2 .dvd/x STZ2 + ( incr ) .dvd/y LDZ2 #0001 #00 .dvd/dy LDZ #00 EQU #fffe MUL2 ADD2 ADD2 .dvd/y STZ2 ( draw ) #21 ;draw-dvd JSR2 BRK @@ -48,10 +48,10 @@ BRK ( stash ) STH ;dvd_icn .Screen/addr DEO2 - .dvd/y PEK2 [ .dvd/y PEK2 #0010 ADD2 ] + .dvd/y LDZ2 [ .dvd/y LDZ2 #0010 ADD2 ] &ver OVR2 .Screen/y DEO2 - .dvd/x PEK2 [ .dvd/x PEK2 #0020 ADD2 ] + .dvd/x LDZ2 [ .dvd/x LDZ2 #0020 ADD2 ] &hor OVR2 .Screen/x DEO2 ( draw ) DUPr STHr .Screen/color DEO diff --git a/projects/examples/gui/hover.usm b/projects/examples/gui/hover.usm @@ -26,38 +26,38 @@ ( theme ) #0f0f .System/r DEO2 #0fff .System/g DEO2 #0ff0 .System/b DEO2 ( vectors ) ;on-mouse .Mouse/vector DEO2 - #0020 #0030 #0060 #0060 .r1/y2 POK2 .r1/x2 POK2 .r1/y1 POK2 .r1/x1 POK2 - #0058 #0050 #0090 #0080 .r2/y2 POK2 .r2/x2 POK2 .r2/y1 POK2 .r2/x1 POK2 - #0048 #0048 #0080 #0098 .r3/y2 POK2 .r3/x2 POK2 .r3/y1 POK2 .r3/x1 POK2 + #0020 #0030 #0060 #0060 .r1/y2 STZ2 .r1/x2 STZ2 .r1/y1 STZ2 .r1/x1 STZ2 + #0058 #0050 #0090 #0080 .r2/y2 STZ2 .r2/x2 STZ2 .r2/y1 STZ2 .r2/x1 STZ2 + #0048 #0048 #0080 #0098 .r3/y2 STZ2 .r3/x2 STZ2 .r3/y1 STZ2 .r3/x1 STZ2 ( no BRK, run through to on-mouse ) @on-mouse - ;pointer_icn .pointer/sprite POK2 + ;pointer_icn .pointer/sprite STZ2 - #01 .color POK + #01 .color STZ ( matrix comparison ) - .Mouse/x DEI2 .r1/x1 PEK2 GTH2 .Mouse/x DEI2 .r1/x2 PEK2 LTH2 #0101 EQU2 - .Mouse/y DEI2 .r1/y1 PEK2 GTH2 .Mouse/y DEI2 .r1/y2 PEK2 LTH2 #0101 EQU2 - #0101 NEQ2 ,&draw1 JCN #02 .color POK ;hand_icn .pointer/sprite POK2 - &draw1 .r1/x1 PEK2 .r1/y1 PEK2 .r1/x2 PEK2 .r1/y2 PEK2 .color PEK ;line-rect JSR2 + .Mouse/x DEI2 .r1/x1 LDZ2 GTH2 .Mouse/x DEI2 .r1/x2 LDZ2 LTH2 #0101 EQU2 + .Mouse/y DEI2 .r1/y1 LDZ2 GTH2 .Mouse/y DEI2 .r1/y2 LDZ2 LTH2 #0101 EQU2 + #0101 NEQ2 ,&draw1 JCN #02 .color STZ ;hand_icn .pointer/sprite STZ2 + &draw1 .r1/x1 LDZ2 .r1/y1 LDZ2 .r1/x2 LDZ2 .r1/y2 LDZ2 .color LDZ ;line-rect JSR2 - #01 .color POK + #01 .color STZ ( 2-step comparison ) - .Mouse/x DEI2 .r2/x1 PEK2 GTH2 .Mouse/x DEI2 .r2/x2 PEK2 LTH2 #0101 NEQ2 ,&draw2 JCN - .Mouse/y DEI2 .r2/y1 PEK2 GTH2 .Mouse/y DEI2 .r2/y2 PEK2 LTH2 #0101 NEQ2 ,&draw2 JCN - #03 .color POK ;hand_icn .pointer/sprite POK2 - &draw2 .r2/x1 PEK2 .r2/y1 PEK2 .r2/x2 PEK2 .r2/y2 PEK2 .color PEK ;line-rect JSR2 + .Mouse/x DEI2 .r2/x1 LDZ2 GTH2 .Mouse/x DEI2 .r2/x2 LDZ2 LTH2 #0101 NEQ2 ,&draw2 JCN + .Mouse/y DEI2 .r2/y1 LDZ2 GTH2 .Mouse/y DEI2 .r2/y2 LDZ2 LTH2 #0101 NEQ2 ,&draw2 JCN + #03 .color STZ ;hand_icn .pointer/sprite STZ2 + &draw2 .r2/x1 LDZ2 .r2/y1 LDZ2 .r2/x2 LDZ2 .r2/y2 LDZ2 .color LDZ ;line-rect JSR2 - #01 .color POK + #01 .color STZ ( 4-step comparison ) - .Mouse/x DEI2 .r3/x1 PEK2 LTH2 ,&draw3 JCN - .Mouse/x DEI2 .r3/x2 PEK2 GTH2 ,&draw3 JCN - .Mouse/y DEI2 .r3/y1 PEK2 LTH2 ,&draw3 JCN - .Mouse/y DEI2 .r3/y2 PEK2 GTH2 ,&draw3 JCN - #02 .color POK ;hand_icn .pointer/sprite POK2 - &draw3 .r3/x1 PEK2 .r3/y1 PEK2 .r3/x2 PEK2 .r3/y2 PEK2 .color PEK ;line-rect JSR2 + .Mouse/x DEI2 .r3/x1 LDZ2 LTH2 ,&draw3 JCN + .Mouse/x DEI2 .r3/x2 LDZ2 GTH2 ,&draw3 JCN + .Mouse/y DEI2 .r3/y1 LDZ2 LTH2 ,&draw3 JCN + .Mouse/y DEI2 .r3/y2 LDZ2 GTH2 ,&draw3 JCN + #02 .color STZ ;hand_icn .pointer/sprite STZ2 + &draw3 .r3/x1 LDZ2 .r3/y1 LDZ2 .r3/x2 LDZ2 .r3/y2 LDZ2 .color LDZ ;line-rect JSR2 ;draw-cursor JSR2 @@ -67,35 +67,35 @@ BRK ( clear last cursor ) ;clear_icn .Screen/addr DEO2 - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 #30 .Screen/color DEO ( record pointer positions ) - .Mouse/x DEI2 .pointer/x POK2 .Mouse/y DEI2 .pointer/y POK2 + .Mouse/x DEI2 .pointer/x STZ2 .Mouse/y DEI2 .pointer/y STZ2 ( draw new cursor ) - .pointer/sprite PEK2 .Screen/addr DEO2 - .pointer/x PEK2 .Screen/x DEO2 - .pointer/y PEK2 .Screen/y DEO2 + .pointer/sprite LDZ2 .Screen/addr DEO2 + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 #31 .Screen/color DEO RTN @line-rect ( x1* y1* x2* y2* color -- ) - ( load ) .color POK .rect/y2 POK2 .rect/x2 POK2 DUP2 .Screen/y DEO2 .rect/y1 POK2 DUP2 .Screen/x DEO2 .rect/x1 POK2 + ( load ) .color STZ .rect/y2 STZ2 .rect/x2 STZ2 DUP2 .Screen/y DEO2 .rect/y1 STZ2 DUP2 .Screen/x DEO2 .rect/x1 STZ2 &hor ( incr ) .Screen/x DEI2 #0001 ADD2 .Screen/x DEO2 - ( draw ) .rect/y1 PEK2 .Screen/y DEO2 .color PEK .Screen/color DEO - ( draw ) .rect/y2 PEK2 .Screen/y DEO2 .color PEK .Screen/color DEO - .Screen/x DEI2 .rect/x2 PEK2 LTH2 ,&hor JCN - .rect/y1 PEK2 .Screen/y DEO2 + ( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ .Screen/color DEO + ( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .color LDZ .Screen/color DEO + .Screen/x DEI2 .rect/x2 LDZ2 LTH2 ,&hor JCN + .rect/y1 LDZ2 .Screen/y DEO2 &ver - ( draw ) .rect/x1 PEK2 .Screen/x DEO2 .color PEK .Screen/color DEO - ( draw ) .rect/x2 PEK2 .Screen/x DEO2 .color PEK .Screen/color DEO + ( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ .Screen/color DEO + ( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .color LDZ .Screen/color DEO ( incr ) .Screen/y DEI2 #0001 ADD2 .Screen/y DEO2 - .Screen/y DEI2 .rect/y2 PEK2 #0001 ADD2 LTH2 ,&ver JCN + .Screen/y DEI2 .rect/y2 LDZ2 #0001 ADD2 LTH2 ,&ver JCN RTN diff --git a/projects/examples/gui/label.usm b/projects/examples/gui/label.usm @@ -27,30 +27,30 @@ BRK @draw ( -- ) ( find screen center ) - .Screen/width DEI2 #0002 DIV2 .center/x POK2 - .Screen/height DEI2 #0002 DIV2 .center/y POK2 + .Screen/width DEI2 #0002 DIV2 .center/x STZ2 + .Screen/height DEI2 #0002 DIV2 .center/y STZ2 ( draw ver line ) - .center/x PEK2 .Screen/x DEO2 #0000 .Screen/y DEO2 + .center/x LDZ2 .Screen/x DEO2 #0000 .Screen/y DEO2 &draw-ver ( draw ) #02 .Screen/color DEO ( incr ) .Screen/y DEI2 #0002 ADD2 .Screen/y DEO2 .Screen/y DEI2 .Screen/height DEI2 LTH2 ,&draw-ver JCN - .center/x PEK2 .center/y PEK2 #0010 SUB2 #2c ;text1 ;draw-label-left JSR2 - .center/x PEK2 .center/y PEK2 #2c ;text2 ;draw-label-middle JSR2 - .center/x PEK2 .center/y PEK2 #0010 ADD2 #2c ;text3 ;draw-label-right JSR2 - .center/x PEK2 .center/y PEK2 #0020 ADD2 #2c ;text4 ;draw-label-middle JSR2 - .center/x PEK2 .center/y PEK2 #0030 ADD2 #2c ;text5 ;draw-label-middle JSR2 + .center/x LDZ2 .center/y LDZ2 #0010 SUB2 #2c ;text1 ;draw-label-left JSR2 + .center/x LDZ2 .center/y LDZ2 #2c ;text2 ;draw-label-middle JSR2 + .center/x LDZ2 .center/y LDZ2 #0010 ADD2 #2c ;text3 ;draw-label-right JSR2 + .center/x LDZ2 .center/y LDZ2 #0020 ADD2 #2c ;text4 ;draw-label-middle JSR2 + .center/x LDZ2 .center/y LDZ2 #0030 ADD2 #2c ;text5 ;draw-label-middle JSR2 RTN @draw-label-left ( x y color addr -- ) - ( load ) .label/addr POK2 .label/color POK .Screen/y DEO2 .Screen/x DEO2 - .label/addr PEK2 + ( load ) .label/addr STZ2 .label/color STZ .Screen/y DEO2 .Screen/x DEO2 + .label/addr LDZ2 &loop - ( draw ) DUP2 LDA #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO + ( draw ) DUP2 LDA #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/color DEO ( incr ) #0001 ADD2 ( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 DUP2 LDA #00 NEQ ,&loop JCN @@ -60,11 +60,11 @@ RTN @draw-label-middle ( x y color addr -- ) - ( load ) .label/addr POK2 .label/color POK .Screen/y DEO2 - ( align ) .label/addr PEK2 ;get-text-length JSR2 #0008 MUL2 #0002 DIV2 SUB2 .Screen/x DEO2 - .label/addr PEK2 + ( load ) .label/addr STZ2 .label/color STZ .Screen/y DEO2 + ( align ) .label/addr LDZ2 ;get-text-length JSR2 #0008 MUL2 #0002 DIV2 SUB2 .Screen/x DEO2 + .label/addr LDZ2 &loop - ( draw ) DUP2 LDA #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO + ( draw ) DUP2 LDA #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/color DEO ( incr ) #0001 ADD2 ( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 DUP2 LDA #00 NEQ ,&loop JCN @@ -74,11 +74,11 @@ RTN @draw-label-right ( x y color addr -- ) - ( load ) .label/addr POK2 .label/color POK .Screen/y DEO2 - ( align ) .label/addr PEK2 ;get-text-length JSR2 #0008 MUL2 SUB2 #0008 SUB2 .Screen/x DEO2 - .label/addr PEK2 + ( load ) .label/addr STZ2 .label/color STZ .Screen/y DEO2 + ( align ) .label/addr LDZ2 ;get-text-length JSR2 #0008 MUL2 SUB2 #0008 SUB2 .Screen/x DEO2 + .label/addr LDZ2 &loop - ( draw ) DUP2 LDA #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO + ( draw ) DUP2 LDA #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/color DEO ( incr ) #0001 ADD2 ( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 DUP2 LDA #00 NEQ ,&loop JCN diff --git a/projects/examples/gui/picture.usm b/projects/examples/gui/picture.usm @@ -42,14 +42,14 @@ BRK @draw-icn ( x y width height color addr -- ) - ( load ) .Screen/addr DEO2 .color POK .size/height POK2 .size/width POK2 .position/y POK2 .position/x POK2 - #0000 .size/height PEK2 + ( load ) .Screen/addr DEO2 .color STZ .size/height STZ2 .size/width STZ2 .position/y STZ2 .position/x STZ2 + #0000 .size/height LDZ2 &ver - ( save ) OVR2 .position/y PEK2 ADD2 .Screen/y DEO2 - #0000 .size/width PEK2 + ( save ) OVR2 .position/y LDZ2 ADD2 .Screen/y DEO2 + #0000 .size/width LDZ2 &hor - ( save ) OVR2 .position/x PEK2 ADD2 .Screen/x DEO2 - ( draw ) .color PEK .Screen/color DEO + ( save ) OVR2 .position/x LDZ2 ADD2 .Screen/x DEO2 + ( draw ) .color LDZ .Screen/color DEO ( incr ) .Screen/addr DEI2 8+ .Screen/addr DEO2 ( incr ) SWP2 8+ SWP2 OVR2 OVR2 LTH2 ,&hor JCN @@ -62,14 +62,14 @@ RTN @draw-chr ( x y width height color addr -- ) - ( load ) .Screen/addr DEO2 .color POK .size/height POK2 .size/width POK2 .position/y POK2 .position/x POK2 - #0000 .size/height PEK2 + ( load ) .Screen/addr DEO2 .color STZ .size/height STZ2 .size/width STZ2 .position/y STZ2 .position/x STZ2 + #0000 .size/height LDZ2 &ver - ( save ) OVR2 .position/y PEK2 ADD2 .Screen/y DEO2 - #0000 .size/width PEK2 + ( save ) OVR2 .position/y LDZ2 ADD2 .Screen/y DEO2 + #0000 .size/width LDZ2 &hor - ( save ) OVR2 .position/x PEK2 ADD2 .Screen/x DEO2 - ( draw ) .color PEK .Screen/color DEO + ( save ) OVR2 .position/x LDZ2 ADD2 .Screen/x DEO2 + ( draw ) .color LDZ .Screen/color DEO ( incr ) .Screen/addr DEI2 #0010 ADD2 .Screen/addr DEO2 ( incr ) SWP2 8+ SWP2 OVR2 OVR2 LTH2 ,&hor JCN @@ -82,14 +82,14 @@ RTN @cover-pattern ( addr color -- ) - ( load ) .color POK .Screen/addr DEO2 + ( load ) .color STZ .Screen/addr DEO2 #0000 .Screen/height DEI2 &ver ( save ) OVR2 .Screen/y DEO2 #0000 .Screen/width DEI2 &hor ( save ) OVR2 .Screen/x DEO2 - ( draw ) .color PEK .Screen/color DEO + ( draw ) .color LDZ .Screen/color DEO ( incr ) SWP2 8+ SWP2 OVR2 OVR2 LTH2 ,&hor JCN POP2 POP2 diff --git a/projects/examples/gui/shapes.usm b/projects/examples/gui/shapes.usm @@ -46,23 +46,23 @@ BRK @line-slow ( x1 y1 x2 y2 color -- ) - ( load ) .color POK -- .line/y0 POK2 -- .line/x0 POK2 .line/y POK2 .line/x POK2 - .line/x0 PEK2 .line/x PEK2 SUB2 ABS2 .line/dx POK2 - .line/y0 PEK2 .line/y PEK2 SUB2 ABS2 #0000 SWP2 SUB2 .line/dy POK2 - #ffff #00 .line/x PEK2 .line/x0 PEK2 LTS2 #0002 MUL2 ADD2 .line/sx POK2 - #ffff #00 .line/y PEK2 .line/y0 PEK2 LTS2 #0002 MUL2 ADD2 .line/sy POK2 - .line/dx PEK2 .line/dy PEK2 ADD2 .line/e1 POK2 + ( load ) .color STZ -- .line/y0 STZ2 -- .line/x0 STZ2 .line/y STZ2 .line/x STZ2 + .line/x0 LDZ2 .line/x LDZ2 SUB2 ABS2 .line/dx STZ2 + .line/y0 LDZ2 .line/y LDZ2 SUB2 ABS2 #0000 SWP2 SUB2 .line/dy STZ2 + #ffff #00 .line/x LDZ2 .line/x0 LDZ2 LTS2 #0002 MUL2 ADD2 .line/sx STZ2 + #ffff #00 .line/y LDZ2 .line/y0 LDZ2 LTS2 #0002 MUL2 ADD2 .line/sy STZ2 + .line/dx LDZ2 .line/dy LDZ2 ADD2 .line/e1 STZ2 &loop - .line/x PEK2 .Screen/x DEO2 .line/y PEK2 .Screen/y DEO2 .color PEK .Screen/color DEO - .line/x PEK2 .line/x0 PEK2 EQU2 .line/y PEK2 .line/y0 PEK2 EQU2 #0101 EQU2 ,&end JCN - .line/e1 PEK2 #0002 MUL2 .line/e2 POK2 - .line/e2 PEK2 .line/dy PEK2 LTS2 ,&skipy JCN - .line/e1 PEK2 .line/dy PEK2 ADD2 .line/e1 POK2 - .line/x PEK2 .line/sx PEK2 ADD2 .line/x POK2 + .line/x LDZ2 .Screen/x DEO2 .line/y LDZ2 .Screen/y DEO2 .color LDZ .Screen/color DEO + .line/x LDZ2 .line/x0 LDZ2 EQU2 .line/y LDZ2 .line/y0 LDZ2 EQU2 #0101 EQU2 ,&end JCN + .line/e1 LDZ2 #0002 MUL2 .line/e2 STZ2 + .line/e2 LDZ2 .line/dy LDZ2 LTS2 ,&skipy JCN + .line/e1 LDZ2 .line/dy LDZ2 ADD2 .line/e1 STZ2 + .line/x LDZ2 .line/sx LDZ2 ADD2 .line/x STZ2 &skipy - .line/e2 PEK2 .line/dx PEK2 GTS2 ,&skipx JCN - .line/e1 PEK2 .line/dx PEK2 ADD2 .line/e1 POK2 - .line/y PEK2 .line/sy PEK2 ADD2 .line/y POK2 + .line/e2 LDZ2 .line/dx LDZ2 GTS2 ,&skipx JCN + .line/e1 LDZ2 .line/dx LDZ2 ADD2 .line/e1 STZ2 + .line/y LDZ2 .line/sy LDZ2 ADD2 .line/y STZ2 &skipx ;&loop JMP2 @@ -72,20 +72,20 @@ RTN @line-rect ( x1 y1 x2 y2 color -- ) - ( load ) .color POK DUP2 STH2 -- .rect/y2 POK2 -- .rect/x2 POK2 DUP2 STH2 .rect/y1 POK2 .rect/x1 POK2 + ( load ) .color STZ DUP2 STH2 -- .rect/y2 STZ2 -- .rect/x2 STZ2 DUP2 STH2 .rect/y1 STZ2 .rect/x1 STZ2 STH2r STH2r &ver ( save ) OVR2 .Screen/y DEO2 - ( draw ) .rect/x1 PEK2 .Screen/x DEO2 .color PEK DUP .Screen/color DEO - ( draw ) .rect/x2 PEK2 .Screen/x DEO2 .Screen/color DEO + ( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ DUP .Screen/color DEO + ( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .Screen/color DEO ( incr ) SWP2 ++ SWP2 OVR2 OVR2 LTS2 ,&ver JCN POP2 POP2 - .rect/x1 PEK2 .rect/x2 PEK2 + .rect/x1 LDZ2 .rect/x2 LDZ2 &hor ( save ) OVR2 .Screen/x DEO2 - ( draw ) .rect/y1 PEK2 .Screen/y DEO2 .color PEK DUP .Screen/color DEO - ( draw ) .rect/y2 PEK2 .Screen/y DEO2 .Screen/color DEO + ( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ DUP .Screen/color DEO + ( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .Screen/color DEO ( incr ) SWP2 ++ SWP2 OVR2 OVR2 ++ LTS2 ,&hor JCN POP2 POP2 @@ -94,14 +94,14 @@ RTN @fill-rect ( x1 y1 x2 y2 color -- ) - .color POK + .color STZ ( x1 x2 y1 y2 ) ROT2 SWP2 &ver ( save ) OVR2 .Screen/y DEO2 STH2 STH2 OVR2 OVR2 &hor ( save ) OVR2 .Screen/x DEO2 - ( draw ) .color PEK .Screen/color DEO + ( draw ) .color LDZ .Screen/color DEO ( incr ) SWP2 ++ SWP2 OVR2 OVR2 LTS2 ,&hor JCN POP2 POP2 STH2r STH2r @@ -113,44 +113,44 @@ RTN @draw-circle ( xc yc r color -- ) - ( load ) .color POK .circle/r POK2 .circle/yc POK2 .circle/xc POK2 - #0000 .circle/x POK2 .circle/r PEK2 .circle/y POK2 - .circle/r PEK2 #0002 MUL2 .circle/d POK2 + ( load ) .color STZ .circle/r STZ2 .circle/yc STZ2 .circle/xc STZ2 + #0000 .circle/x STZ2 .circle/r LDZ2 .circle/y STZ2 + .circle/r LDZ2 #0002 MUL2 .circle/d STZ2 ( draw ) ;&seg JSR2 &loop - ( incr ) .circle/x PEK2 ++ .circle/x POK2 - .circle/d PEK2 #0001 LTS2 ,&else JCN - ( decr ) .circle/y PEK2 -- .circle/y POK2 - .circle/x PEK2 .circle/y PEK2 SUB2 #0004 MUL2 .circle/d PEK2 ADD2 .circle/d POK2 + ( incr ) .circle/x LDZ2 ++ .circle/x STZ2 + .circle/d LDZ2 #0001 LTS2 ,&else JCN + ( decr ) .circle/y LDZ2 -- .circle/y STZ2 + .circle/x LDZ2 .circle/y LDZ2 SUB2 #0004 MUL2 .circle/d LDZ2 ADD2 .circle/d STZ2 ;&end JMP2 &else - .circle/x PEK2 #0004 MUL2 .circle/d PEK2 ADD2 .circle/d POK2 + .circle/x LDZ2 #0004 MUL2 .circle/d LDZ2 ADD2 .circle/d STZ2 &end ( draw ) ;&seg JSR2 - .circle/y PEK2 .circle/x PEK2 -- GTS2 ,&loop JCN + .circle/y LDZ2 .circle/x LDZ2 -- GTS2 ,&loop JCN RTN &seg - .circle/xc PEK2 .circle/x PEK2 ADD2 .Screen/x DEO2 .circle/yc PEK2 .circle/y PEK2 ADD2 .Screen/y DEO2 .color PEK .Screen/color DEO - .circle/xc PEK2 .circle/x PEK2 SUB2 .Screen/x DEO2 .circle/yc PEK2 .circle/y PEK2 ADD2 .Screen/y DEO2 .color PEK .Screen/color DEO - .circle/xc PEK2 .circle/x PEK2 ADD2 .Screen/x DEO2 .circle/yc PEK2 .circle/y PEK2 SUB2 .Screen/y DEO2 .color PEK .Screen/color DEO - .circle/xc PEK2 .circle/x PEK2 SUB2 .Screen/x DEO2 .circle/yc PEK2 .circle/y PEK2 SUB2 .Screen/y DEO2 .color PEK .Screen/color DEO - .circle/xc PEK2 .circle/y PEK2 ADD2 .Screen/x DEO2 .circle/yc PEK2 .circle/x PEK2 ADD2 .Screen/y DEO2 .color PEK .Screen/color DEO - .circle/xc PEK2 .circle/y PEK2 SUB2 .Screen/x DEO2 .circle/yc PEK2 .circle/x PEK2 ADD2 .Screen/y DEO2 .color PEK .Screen/color DEO - .circle/xc PEK2 .circle/y PEK2 ADD2 .Screen/x DEO2 .circle/yc PEK2 .circle/x PEK2 SUB2 .Screen/y DEO2 .color PEK .Screen/color DEO - .circle/xc PEK2 .circle/y PEK2 SUB2 .Screen/x DEO2 .circle/yc PEK2 .circle/x PEK2 SUB2 .Screen/y DEO2 .color PEK .Screen/color DEO + .circle/xc LDZ2 .circle/x LDZ2 ADD2 .Screen/x DEO2 .circle/yc LDZ2 .circle/y LDZ2 ADD2 .Screen/y DEO2 .color LDZ .Screen/color DEO + .circle/xc LDZ2 .circle/x LDZ2 SUB2 .Screen/x DEO2 .circle/yc LDZ2 .circle/y LDZ2 ADD2 .Screen/y DEO2 .color LDZ .Screen/color DEO + .circle/xc LDZ2 .circle/x LDZ2 ADD2 .Screen/x DEO2 .circle/yc LDZ2 .circle/y LDZ2 SUB2 .Screen/y DEO2 .color LDZ .Screen/color DEO + .circle/xc LDZ2 .circle/x LDZ2 SUB2 .Screen/x DEO2 .circle/yc LDZ2 .circle/y LDZ2 SUB2 .Screen/y DEO2 .color LDZ .Screen/color DEO + .circle/xc LDZ2 .circle/y LDZ2 ADD2 .Screen/x DEO2 .circle/yc LDZ2 .circle/x LDZ2 ADD2 .Screen/y DEO2 .color LDZ .Screen/color DEO + .circle/xc LDZ2 .circle/y LDZ2 SUB2 .Screen/x DEO2 .circle/yc LDZ2 .circle/x LDZ2 ADD2 .Screen/y DEO2 .color LDZ .Screen/color DEO + .circle/xc LDZ2 .circle/y LDZ2 ADD2 .Screen/x DEO2 .circle/yc LDZ2 .circle/x LDZ2 SUB2 .Screen/y DEO2 .color LDZ .Screen/color DEO + .circle/xc LDZ2 .circle/y LDZ2 SUB2 .Screen/x DEO2 .circle/yc LDZ2 .circle/x LDZ2 SUB2 .Screen/y DEO2 .color LDZ .Screen/color DEO RTN @cover-pattern ( addr color -- ) - ( load ) .color POK .Screen/addr DEO2 + ( load ) .color STZ .Screen/addr DEO2 #0000 .Screen/height DEI2 &ver ( save ) OVR2 .Screen/y DEO2 #0000 .Screen/width DEI2 &hor ( save ) OVR2 .Screen/x DEO2 - ( draw ) .color PEK .Screen/color DEO + ( draw ) .color LDZ .Screen/color DEO ( incr ) SWP2 8+ SWP2 OVR2 OVR2 LTH2 ,&hor JCN POP2 POP2 diff --git a/projects/examples/gui/wallpaper.usm b/projects/examples/gui/wallpaper.usm @@ -11,10 +11,10 @@ |0100 ( -> ) #90ff .System/r DEO2 #9000 .System/g DEO2 #900f .System/b DEO2 - #08e0 .Screen/width DEI2 #0001 SFT2 SUB2 .scroll/x POK2 - #09b0 .scroll/y POK2 + #08e0 .Screen/width DEI2 #0001 SFT2 SUB2 .scroll/x STZ2 + #09b0 .scroll/y STZ2 ;frame .Screen/vector DEO2 - #30 .scroll/wait POK + #30 .scroll/wait STZ BRK @frame ( -> ) @@ -24,22 +24,22 @@ #0001 ADD2 DUP2 .Screen/height DEI2 LTH2 ,&loop JCN POP2 - .scroll/wait PEK ,&noscroll JCN - .scroll/y PEK2 #0001 ADD2 .scroll/y POK2 + .scroll/wait LDZ ,&noscroll JCN + .scroll/y LDZ2 #0001 ADD2 .scroll/y STZ2 BRK &noscroll - .scroll/wait PEK #01 SUB .scroll/wait POK + .scroll/wait LDZ #01 SUB .scroll/wait STZ BRK @row ( y* -- ) DUP2 .Screen/y DEO2 - .scroll/y PEK2 ADD2 + .scroll/y LDZ2 ADD2 .Screen/width DEI2 &loop #0001 SUB2 - OVR2 OVR2 .scroll/x PEK2 ADD2 EOR2 DUP2 #0013 DIV2 #0013 MUL2 SUB2 + OVR2 OVR2 .scroll/x LDZ2 ADD2 EOR2 DUP2 #0013 DIV2 #0013 MUL2 SUB2 DUP #00 EQU ,&draw JCN DUP #05 EQU ,&draw JCN POP2 diff --git a/projects/software/asma.usm b/projects/software/asma.usm @@ -426,7 +426,7 @@ ;asma-parse-hex-string JSR2 ,&valid JCN - ;asma-msg-hex ;asma/error POK2 + ;asma-msg-hex ;asma/error STZ2 JMP2r &valid @@ -732,8 +732,8 @@ &JCN $2 $2 "JCN 00 &JSR :&JMP :&LDR "JSR 00 &STH :&SFT :&SUB "STH 00 - &PEK :&OVR :&POK "PEK 00 - &POK $2 $2 "POK 00 + &LDZ :&OVR :&STZ "LDZ 00 + &STZ $2 $2 "STZ 00 &LDR :&LDA :&LIT "LDR 00 &STR $2 $2 "STR 00 &LDA $2 $2 "LDA 00 @@ -745,7 +745,7 @@ &MUL $2 $2 "MUL 00 &DIV $2 $2 "DIV 00 &AND :&ADD $2 "AND 00 - &ORA :&NEQ :&PEK "ORA 00 + &ORA :&NEQ :&LDZ "ORA 00 &EOR $2 $2 "EOR 00 &SFT :&ROT :&STA "SFT 00 diff --git a/projects/software/left.usm b/projects/software/left.usm @@ -66,7 +66,7 @@ ;filepath ;load-file JSR2 ( place textarea ) - #0018 .textarea/x1 POK2 .Screen/height DEI2 8- .textarea/y2 POK2 + #0018 .textarea/x1 STZ2 .Screen/height DEI2 8- .textarea/y2 STZ2 ;select JSR2 ;redraw JSR2 @@ -79,13 +79,13 @@ BRK .Controller/button DEI #0f AND #02 NEQ ,&no-alt JCN .Controller/button DEI #04 SFT DUP #01 NEQ ,&no-aup JCN - ( sel word ) ;find-wordstart JSR2 .selection/to POK2 &no-aup + ( sel word ) ;find-wordstart JSR2 .selection/to STZ2 &no-aup DUP #02 NEQ ,&no-adown JCN - ( sel word ) ;find-wordend JSR2 .selection/to POK2 &no-adown + ( sel word ) ;find-wordend JSR2 .selection/to STZ2 &no-adown DUP #04 NEQ ,&no-aleft JCN - ( sel decr ) .selection/to PEK2 -- .selection/to POK2 &no-aleft + ( sel decr ) .selection/to LDZ2 -- .selection/to STZ2 &no-aleft DUP #08 NEQ ,&no-aright JCN - ( sel incr ) .selection/to PEK2 ++ .selection/to POK2 &no-aright + ( sel incr ) .selection/to LDZ2 ++ .selection/to STZ2 &no-aright POP ;clamp-selection JSR2 ;redraw JSR2 @@ -112,20 +112,20 @@ BRK .Controller/button DEI #f0 AND #00 EQU ;&no-arrow JCN2 .Controller/button DEI #f0 AND DUP #10 NEQ ,&no-arrowup JCN - ( clamp ) .position/y PEK2 #0000 EQU2 ,&no-arrowup JCN - ;find-lineoffset JSR2 .position/x POK2 .position/y PEK2 -- .position/y POK2 - ;find-selection JSR2 DUP2 .selection/from POK2 ++ .selection/to POK2 &no-arrowup + ( clamp ) .position/y LDZ2 #0000 EQU2 ,&no-arrowup JCN + ;find-lineoffset JSR2 .position/x STZ2 .position/y LDZ2 -- .position/y STZ2 + ;find-selection JSR2 DUP2 .selection/from STZ2 ++ .selection/to STZ2 &no-arrowup DUP #20 NEQ ,&no-arrowdown JCN ( clamp:TODO ) - ;find-lineoffset JSR2 .position/x POK2 .position/y PEK2 ++ .position/y POK2 - ;find-selection JSR2 DUP2 .selection/from POK2 ++ .selection/to POK2 &no-arrowdown + ;find-lineoffset JSR2 .position/x STZ2 .position/y LDZ2 ++ .position/y STZ2 + ;find-selection JSR2 DUP2 .selection/from STZ2 ++ .selection/to STZ2 &no-arrowdown DUP #40 NEQ ,&no-arrowleft JCN - ( clamp ) .selection/from PEK2 ;document/body EQU2 ,&no-arrowleft JCN - .selection/from PEK2 -- DUP2 .selection/from POK2 ++ .selection/to POK2 &no-arrowleft + ( clamp ) .selection/from LDZ2 ;document/body EQU2 ,&no-arrowleft JCN + .selection/from LDZ2 -- DUP2 .selection/from STZ2 ++ .selection/to STZ2 &no-arrowleft DUP #80 NEQ ,&no-arrowright JCN ( clamp:TODO ) #aa .Console/byte DEO - .selection/from PEK2 ++ DUP2 .selection/from POK2 ++ .selection/to POK2 &no-arrowright + .selection/from LDZ2 ++ DUP2 .selection/from STZ2 ++ .selection/to STZ2 &no-arrowright POP ;clamp-selection JSR2 ;follow-selection JSR2 @@ -134,24 +134,24 @@ BRK .Controller/key DEI #08 NEQ ,&no-backspace JCN ( erase ) - .selection/to PEK2 .selection/from PEK2 SUB2 #0001 NEQ2 ,&erase-multiple JCN - .selection/to PEK2 .selection/from PEK2 SUB2 ;shift-left JSR2 + .selection/to LDZ2 .selection/from LDZ2 SUB2 #0001 NEQ2 ,&erase-multiple JCN + .selection/to LDZ2 .selection/from LDZ2 SUB2 ;shift-left JSR2 ;&erase-end JMP2 &erase-multiple - .selection/from PEK2 ++ .selection/from POK2 - .selection/to PEK2 .selection/from PEK2 SUB2 ++ ;shift-left JSR2 + .selection/from LDZ2 ++ .selection/from STZ2 + .selection/to LDZ2 .selection/from LDZ2 SUB2 ++ ;shift-left JSR2 &erase-end - .selection/from PEK2 -- .selection/from POK2 - .selection/from PEK2 ++ .selection/to POK2 + .selection/from LDZ2 -- .selection/from STZ2 + .selection/from LDZ2 ++ .selection/to STZ2 ;redraw JSR2 BRK &no-backspace ( insert ) - .selection/to PEK2 .selection/from PEK2 SUB2 ;shift-right JSR2 - .Controller/key DEI .selection/from PEK2 STA - .selection/from PEK2 ++ .selection/from POK2 - .selection/from PEK2 ++ .selection/to POK2 + .selection/to LDZ2 .selection/from LDZ2 SUB2 ;shift-right JSR2 + .Controller/key DEI .selection/from LDZ2 STA + .selection/from LDZ2 ++ .selection/from STZ2 + .selection/from LDZ2 ++ .selection/to STZ2 ;redraw JSR2 BRK @@ -164,7 +164,7 @@ BRK ;touch-scrollbar JMP2 &touch-end - .Mouse/state DEI .touch/state POK + .Mouse/state DEI .touch/state STZ ;draw-cursor JSR2 @@ -172,9 +172,9 @@ BRK @touch-linebar ( -- ) - #0000 .position/x POK2 - .Mouse/y DEI2 8/ .scroll/y PEK2 ADD2 .position/y POK2 - ;find-selection JSR2 DUP2 .selection/from POK2 ++ .selection/to POK2 + #0000 .position/x STZ2 + .Mouse/y DEI2 8/ .scroll/y LDZ2 ADD2 .position/y STZ2 + ;find-selection JSR2 DUP2 .selection/from STZ2 ++ .selection/to STZ2 ;goto-linestart JSR2 ;redraw JSR2 ;draw-cursor JSR2 @@ -183,8 +183,8 @@ BRK @touch-body ( -- ) - .Mouse/y DEI2 8/ .scroll/y PEK2 ADD2 .position/y POK2 - .Mouse/x DEI2 .textarea/x1 PEK2 SUB2 #0007 ADD2 #0007 DIV2 .position/x POK2 + .Mouse/y DEI2 8/ .scroll/y LDZ2 ADD2 .position/y STZ2 + .Mouse/x DEI2 .textarea/x1 LDZ2 SUB2 #0007 ADD2 #0007 DIV2 .position/x STZ2 ( chords ) .Mouse/chord DEI #00 EQU ,&no-chords JCN .Mouse/chord DEI @@ -197,16 +197,16 @@ BRK BRK &no-chords ( drag ) - .Mouse/state DEI .touch/state PEK NEQ .Controller/button DEI #0f AND #02 NEQ #0101 EQU2 ,&no-drag JCN + .Mouse/state DEI .touch/state LDZ NEQ .Controller/button DEI #0f AND #02 NEQ #0101 EQU2 ,&no-drag JCN ( on drag ) - ;find-selection JSR2 ++ .selection/to POK2 + ;find-selection JSR2 ++ .selection/to STZ2 ;clamp-selection JSR2 ,&end JMP &no-drag ( on click ) - ;find-selection JSR2 DUP2 .selection/from POK2 ++ .selection/to POK2 + ;find-selection JSR2 DUP2 .selection/from STZ2 ++ .selection/to STZ2 &end - .Mouse/state DEI .touch/state POK + .Mouse/state DEI .touch/state STZ ;draw-cursor JSR2 ;redraw JSR2 @@ -215,16 +215,16 @@ BRK @touch-scrollbar ( -- ) .Mouse/y DEI2 #0008 GTH2 ,&no-up JCN - ( decr ) .scroll/y PEK2 #00 .scroll/y PEK2 #0000 NEQ2 SUB2 .scroll/y POK2 + ( decr ) .scroll/y LDZ2 #00 .scroll/y LDZ2 #0000 NEQ2 SUB2 .scroll/y STZ2 ,&end JMP &no-up .Mouse/y DEI2 .Screen/height DEI2 8- LTH2 ,&no-down JCN - ( incr ) .scroll/y PEK2 ++ .scroll/y POK2 + ( incr ) .scroll/y LDZ2 ++ .scroll/y STZ2 ,&end JMP &no-down - .Mouse/y DEI2 8- .scroll/y POK2 + .Mouse/y DEI2 8- .scroll/y STZ2 &end - .Mouse/state DEI .touch/state POK + .Mouse/state DEI .touch/state STZ ;draw-cursor JSR2 ;redraw JSR2 @@ -243,205 +243,205 @@ RTN @scroll-up ( length -- ) - DUP2 .scroll/y PEK2 LTH2 ,&clamp JCN - #0000 .scroll/y POK2 POP2 RTN + DUP2 .scroll/y LDZ2 LTH2 ,&clamp JCN + #0000 .scroll/y STZ2 POP2 RTN &clamp - .scroll/y PEK2 SWP2 SUB2 .scroll/y POK2 + .scroll/y LDZ2 SWP2 SUB2 .scroll/y STZ2 RTN @scroll-down ( length -- ) ( TODO: Clamp ) - .scroll/y PEK2 SWP2 ADD2 .scroll/y POK2 + .scroll/y LDZ2 SWP2 ADD2 .scroll/y STZ2 RTN @shift-left ( length -- ) - .i POK2 - .selection/from PEK2 -- .j POK2 ( start -> end ) + .i STZ2 + .selection/from LDZ2 -- .j STZ2 ( start -> end ) &loop - ( move ) .j PEK2 .i PEK2 ADD2 LDA .j PEK2 STA - ( incr ) .j PEK2 ++ .j POK2 - .j PEK2 ;document/eof LDA2 LTH2 ,&loop JCN - ;document/eof LDA2 .i PEK2 SUB2 ;document/eof STA2 + ( move ) .j LDZ2 .i LDZ2 ADD2 LDA .j LDZ2 STA + ( incr ) .j LDZ2 ++ .j STZ2 + .j LDZ2 ;document/eof LDA2 LTH2 ,&loop JCN + ;document/eof LDA2 .i LDZ2 SUB2 ;document/eof STA2 RTN @shift-right ( length -- ) - .i POK2 - ;document/eof LDA2 .j POK2 ( end -> start ) + .i STZ2 + ;document/eof LDA2 .j STZ2 ( end -> start ) &loop - ( move ) .j PEK2 .i PEK2 SUB2 LDA .j PEK2 STA - ( decr ) .j PEK2 -- .j POK2 - .j PEK2 .selection/from PEK2 GTH2 ,&loop JCN - ;document/eof LDA2 .i PEK2 ADD2 ;document/eof STA2 + ( move ) .j LDZ2 .i LDZ2 SUB2 LDA .j LDZ2 STA + ( decr ) .j LDZ2 -- .j STZ2 + .j LDZ2 .selection/from LDZ2 GTH2 ,&loop JCN + ;document/eof LDA2 .i LDZ2 ADD2 ;document/eof STA2 RTN @follow-selection ( -- ) - .position/y PEK2 .scroll/y PEK2 GTH2 ,&no-up JCN - .position/y PEK2 .scroll/y POK2 RTN + .position/y LDZ2 .scroll/y LDZ2 GTH2 ,&no-up JCN + .position/y LDZ2 .scroll/y STZ2 RTN &no-up - .position/y PEK2 .Screen/height DEI2 #0010 SUB2 8/ .scroll/y PEK2 ADD2 LTH2 ,&no-down JCN - .position/y PEK2 .Screen/height DEI2 #0010 SUB2 8/ SUB2 .scroll/y POK2 RTN + .position/y LDZ2 .Screen/height DEI2 #0010 SUB2 8/ .scroll/y LDZ2 ADD2 LTH2 ,&no-down JCN + .position/y LDZ2 .Screen/height DEI2 #0010 SUB2 8/ SUB2 .scroll/y STZ2 RTN &no-down RTN @clamp-selection ( -- ) - .selection/from PEK2 .selection/to PEK2 LTH2 RTN? - .selection/from PEK2 ++ .selection/to POK2 + .selection/from LDZ2 .selection/to LDZ2 LTH2 RTN? + .selection/from LDZ2 ++ .selection/to STZ2 RTN @goto-linestart ( -- ) &loop - .selection/from PEK2 -- LDA #0a EQU RTN? - .selection/from PEK2 -- LDA #0d EQU RTN? - ( decr ) .selection/from PEK2 DUP2 .selection/to POK2 -- .selection/from POK2 - .selection/from PEK2 LDA #00 NEQ ,&loop JCN + .selection/from LDZ2 -- LDA #0a EQU RTN? + .selection/from LDZ2 -- LDA #0d EQU RTN? + ( decr ) .selection/from LDZ2 DUP2 .selection/to STZ2 -- .selection/from STZ2 + .selection/from LDZ2 LDA #00 NEQ ,&loop JCN ( clamp at document body ) - .selection/from PEK2 ;document/body GTH2 RTN? - ;document/body DUP2 .selection/from POK2 ++ .selection/to POK2 + .selection/from LDZ2 ;document/body GTH2 RTN? + ;document/body DUP2 .selection/from STZ2 ++ .selection/to STZ2 RTN @goto-lineend ( -- ) &loop - .selection/from PEK2 LDA #0a EQU RTN? - .selection/from PEK2 LDA #0d EQU RTN? - ( incr ) .selection/from PEK2 ++ DUP2 ++ .selection/to POK2 .selection/from POK2 - .selection/from PEK2 LDA #00 NEQ ,&loop JCN + .selection/from LDZ2 LDA #0a EQU RTN? + .selection/from LDZ2 LDA #0d EQU RTN? + ( incr ) .selection/from LDZ2 ++ DUP2 ++ .selection/to STZ2 .selection/from STZ2 + .selection/from LDZ2 LDA #00 NEQ ,&loop JCN ( clamp at document body ) - .selection/from PEK2 ;document/eof LTH2 RTN? - ;document/eof -- DUP2 .selection/from POK2 ++ .selection/to POK2 + .selection/from LDZ2 ;document/eof LTH2 RTN? + ;document/eof -- DUP2 .selection/from STZ2 ++ .selection/to STZ2 RTN @find-wordstart ( -- ) - .selection/to PEK2 .j POK2 + .selection/to LDZ2 .j STZ2 &loop - ( decr ) .j PEK2 -- .j POK2 - .j PEK2 LDA #20 EQU ,&end JCN - .j PEK2 LDA #0a EQU ,&end JCN - .j PEK2 LDA #0d EQU ,&end JCN - .j PEK2 ;document/body GTH2 ,&loop JCN + ( decr ) .j LDZ2 -- .j STZ2 + .j LDZ2 LDA #20 EQU ,&end JCN + .j LDZ2 LDA #0a EQU ,&end JCN + .j LDZ2 LDA #0d EQU ,&end JCN + .j LDZ2 ;document/body GTH2 ,&loop JCN &end - ( return ) .j PEK2 -- + ( return ) .j LDZ2 -- RTN @find-wordend ( -- ) - .selection/to PEK2 .j POK2 + .selection/to LDZ2 .j STZ2 &loop - ( incr ) .j PEK2 ++ .j POK2 - .j PEK2 LDA #20 EQU ,&end JCN - .j PEK2 LDA #0a EQU ,&end JCN - .j PEK2 LDA #0d EQU ,&end JCN - .j PEK2 ;document/body GTH2 ,&loop JCN + ( incr ) .j LDZ2 ++ .j STZ2 + .j LDZ2 LDA #20 EQU ,&end JCN + .j LDZ2 LDA #0a EQU ,&end JCN + .j LDZ2 LDA #0d EQU ,&end JCN + .j LDZ2 ;document/body GTH2 ,&loop JCN &end - ( return ) .j PEK2 ++ + ( return ) .j LDZ2 ++ RTN @find-lineoffset ( return character offset from linestart ) - #0000 .j POK2 + #0000 .j STZ2 &loop - ( incr ) .j PEK2 ++ .j POK2 - .selection/from PEK2 .j PEK2 SUB2 LDA #0a EQU ,&end JCN - .selection/from PEK2 .j PEK2 SUB2 LDA #0d EQU ,&end JCN - .selection/from PEK2 .j PEK2 SUB2 ;document/body GTH2 ,&loop JCN + ( incr ) .j LDZ2 ++ .j STZ2 + .selection/from LDZ2 .j LDZ2 SUB2 LDA #0a EQU ,&end JCN + .selection/from LDZ2 .j LDZ2 SUB2 LDA #0d EQU ,&end JCN + .selection/from LDZ2 .j LDZ2 SUB2 ;document/body GTH2 ,&loop JCN &end - ( return ) .j PEK2 + ( return ) .j LDZ2 RTN @find-line ( position -> addr ) - ;document/body .j POK2 #0000 .pt/y POK2 + ;document/body .j STZ2 #0000 .pt/y STZ2 &loop - .pt/y PEK2 .position/y PEK2 -- GTH2 ,&end JCN - .j PEK2 LDA #0a NEQ .j PEK2 LDA #0d NEQ #0101 EQU2 ,&no-space JCN - ( incr ) .pt/y PEK2 ++ .pt/y POK2 + .pt/y LDZ2 .position/y LDZ2 -- GTH2 ,&end JCN + .j LDZ2 LDA #0a NEQ .j LDZ2 LDA #0d NEQ #0101 EQU2 ,&no-space JCN + ( incr ) .pt/y LDZ2 ++ .pt/y STZ2 &no-space - ( incr ) .j PEK2 ++ .j POK2 - .j PEK2 LDA #00 NEQ ,&loop JCN + ( incr ) .j LDZ2 ++ .j STZ2 + .j LDZ2 LDA #00 NEQ ,&loop JCN &end - ( return ) .j PEK2 + ( return ) .j LDZ2 RTN @find-selection ( position -> addr ) ;find-line JSR2 ( find line ) - #0000 .pt/x POK2 + #0000 .pt/x STZ2 &loop - .j PEK2 .pt/x PEK2 ADD2 LDA #0a EQU ,&end JCN - .j PEK2 .pt/x PEK2 ADD2 LDA #0d EQU ,&end JCN - ( incr ) .pt/x PEK2 ++ .pt/x POK2 - .pt/x PEK2 .position/x PEK2 -- LTH2 ,&loop JCN + .j LDZ2 .pt/x LDZ2 ADD2 LDA #0a EQU ,&end JCN + .j LDZ2 .pt/x LDZ2 ADD2 LDA #0d EQU ,&end JCN + ( incr ) .pt/x LDZ2 ++ .pt/x STZ2 + .pt/x LDZ2 .position/x LDZ2 -- LTH2 ,&loop JCN &end - ( return ) .pt/x PEK2 ADD2 + ( return ) .pt/x LDZ2 ADD2 RTN @cut ( -- ) ;copy JSR2 - .selection/to PEK2 .selection/from PEK2 SUB2 ;shift-left JSR2 - .selection/from PEK2 ++ .selection/to POK2 + .selection/to LDZ2 .selection/from LDZ2 SUB2 ;shift-left JSR2 + .selection/from LDZ2 ++ .selection/to STZ2 RTN @copy ( -- ) - #0000 .i POK2 ( start ) - .selection/to PEK2 .selection/from PEK2 SUB2 .j POK2 ( end ) - .j PEK2 ;clip/len STA2 + #0000 .i STZ2 ( start ) + .selection/to LDZ2 .selection/from LDZ2 SUB2 .j STZ2 ( end ) + .j LDZ2 ;clip/len STA2 &loop - .selection/from PEK2 .i PEK2 ADD2 LDA ;clip/body .i PEK2 ADD2 STA - ( incr ) .i PEK2 ++ .i POK2 - .i PEK2 .j PEK2 LTH2 ,&loop JCN + .selection/from LDZ2 .i LDZ2 ADD2 LDA ;clip/body .i LDZ2 ADD2 STA + ( incr ) .i LDZ2 ++ .i STZ2 + .i LDZ2 .j LDZ2 LTH2 ,&loop JCN RTN @paste ( -- ) ;clip/len LDA2 ;shift-right JSR2 - #0000 .i POK2 ( start ) - ;clip/len LDA2 .j POK2 ( end ) + #0000 .i STZ2 ( start ) + ;clip/len LDA2 .j STZ2 ( end ) &loop - ;clip/body .i PEK2 ADD2 LDA .selection/from PEK2 .i PEK2 ADD2 STA - ( incr ) .i PEK2 ++ .i POK2 - .i PEK2 .j PEK2 LTH2 ,&loop JCN + ;clip/body .i LDZ2 ADD2 LDA .selection/from LDZ2 .i LDZ2 ADD2 STA + ( incr ) .i LDZ2 ++ .i STZ2 + .i LDZ2 .j LDZ2 LTH2 ,&loop JCN RTN @select ( position -> selection ) - ;document/body .selection/from POK2 #0000 .pt/x POK2 #0000 .pt/y POK2 + ;document/body .selection/from STZ2 #0000 .pt/x STZ2 #0000 .pt/y STZ2 &loop - .selection/from PEK2 LDA #0a NEQ .selection/from PEK2 LDA #0d NEQ #0101 EQU2 ,&no-space JCN - ( incr ) .pt/y PEK2 ++ .pt/y POK2 - #0000 .pt/x POK2 + .selection/from LDZ2 LDA #0a NEQ .selection/from LDZ2 LDA #0d NEQ #0101 EQU2 ,&no-space JCN + ( incr ) .pt/y LDZ2 ++ .pt/y STZ2 + #0000 .pt/x STZ2 &no-space - .pt/y PEK2 .position/y PEK2 -- GTH2 .pt/x PEK2 .position/x PEK2 -- GTH2 #0101 NEQ2 ,&no-reached JCN - .selection/from PEK2 ++ .selection/to POK2 + .pt/y LDZ2 .position/y LDZ2 -- GTH2 .pt/x LDZ2 .position/x LDZ2 -- GTH2 #0101 NEQ2 ,&no-reached JCN + .selection/from LDZ2 ++ .selection/to STZ2 RTN &no-reached - ( incr ) .pt/x PEK2 ++ .pt/x POK2 - ( incr ) .selection/from PEK2 ++ .selection/from POK2 - .selection/from PEK2 LDA #00 NEQ ,&loop JCN + ( incr ) .pt/x LDZ2 ++ .pt/x STZ2 + ( incr ) .selection/from LDZ2 ++ .selection/from STZ2 + .selection/from LDZ2 LDA #00 NEQ ,&loop JCN RTN @@ -476,7 +476,7 @@ RTN @draw-short ( short ) - .addr POK2 + .addr STZ2 ;font_hex #00 ;addr LDA #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2 ( draw ) #2e .Screen/color DEO .Screen/x DEI2 8+ .Screen/x DEO2 @@ -494,18 +494,18 @@ RTN @draw-cursor ( clear last cursor ) - .mouse/x PEK2 .Screen/x DEO2 - .mouse/y PEK2 .Screen/y DEO2 + .mouse/x LDZ2 .Screen/x DEO2 + .mouse/y LDZ2 .Screen/y DEO2 ;blank_icn .Screen/addr DEO2 #30 .Screen/color DEO ( record mouse positions ) - .Mouse/x DEI2 .mouse/x POK2 - .Mouse/y DEI2 .mouse/y POK2 + .Mouse/x DEI2 .mouse/x STZ2 + .Mouse/y DEI2 .mouse/y STZ2 ( draw new cursor ) - .mouse/x PEK2 .Screen/x DEO2 - .mouse/y PEK2 .Screen/y DEO2 + .mouse/x LDZ2 .Screen/x DEO2 + .mouse/y LDZ2 .Screen/y DEO2 ;cursor_icn .Screen/addr DEO2 #3f .Mouse/state DEI #01 EQU #0a MUL SUB .Screen/color DEO @@ -513,32 +513,32 @@ RTN @draw-textarea ( x y color addr ) - ;document/body .textarea/addr POK2 + ;document/body .textarea/addr STZ2 ( scroll to position ) - #0000 .j POK2 ( j is linebreaks ) + #0000 .j STZ2 ( j is linebreaks ) &find-offset - .scroll/y PEK2 .j PEK2 EQU2 ,&find-offset-end JCN - .textarea/addr PEK2 LDA #0a NEQ .textarea/addr PEK2 LDA #0d NEQ #0101 EQU2 ,&no-break JCN - ( incr ) .j PEK2 ++ .j POK2 &no-break - ( incr ) .textarea/addr PEK2 ++ .textarea/addr POK2 - .textarea/addr PEK2 LDA #00 NEQ ,&find-offset JCN + .scroll/y LDZ2 .j LDZ2 EQU2 ,&find-offset-end JCN + .textarea/addr LDZ2 LDA #0a NEQ .textarea/addr LDZ2 LDA #0d NEQ #0101 EQU2 ,&no-break JCN + ( incr ) .j LDZ2 ++ .j STZ2 &no-break + ( incr ) .textarea/addr LDZ2 ++ .textarea/addr STZ2 + .textarea/addr LDZ2 LDA #00 NEQ ,&find-offset JCN &find-offset-end #0018 .Screen/x DEO2 #0000 .Screen/y DEO2 - .textarea/addr PEK2 .i POK2 + .textarea/addr LDZ2 .i STZ2 &loop .Screen/y DEI2 .Screen/height DEI2 #0010 SUB2 GTH2 ;&end JCN2 - .i PEK2 LDA #0a NEQ .i PEK2 LDA #0d NEQ #0101 EQU2 ;&no-linebreak JCN2 + .i LDZ2 LDA #0a NEQ .i LDZ2 LDA #0d NEQ #0101 EQU2 ;&no-linebreak JCN2 ( draw linebreak ) ;linebreak_icn .Screen/addr DEO2 ( draw ) #02 - .i PEK2 .selection/from PEK2 -- GTH2 - .i PEK2 .selection/to PEK2 LTH2 #0101 EQU2 + .i LDZ2 .selection/from LDZ2 -- GTH2 + .i LDZ2 .selection/to LDZ2 LTH2 #0101 EQU2 #26 MUL ADD .Screen/color DEO ( fill clear ) &fill-clear @@ -549,13 +549,13 @@ RTN ( draw line number ) #0000 .Screen/x DEO2 - .scroll/y PEK2 .Screen/y DEI2 8/ ADD2 DUP2 SWP POP .k POK - .position/y PEK2 EQU2 #05 MUL .l POK - ;font_hex #00 .k PEK #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2 - #24 .l PEK ADD .Screen/color DEO + .scroll/y LDZ2 .Screen/y DEI2 8/ ADD2 DUP2 SWP POP .k STZ + .position/y LDZ2 EQU2 #05 MUL .l STZ + ;font_hex #00 .k LDZ #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2 + #24 .l LDZ ADD .Screen/color DEO #0008 .Screen/x DEO2 - ;font_hex #00 .k PEK #0f AND #08 MUL ADD2 .Screen/addr DEO2 - #24 .l PEK ADD .Screen/color DEO + ;font_hex #00 .k LDZ #0f AND #08 MUL ADD2 .Screen/addr DEO2 + #24 .l LDZ ADD .Screen/color DEO #0010 .Screen/x DEO2 ( incr ) .Screen/y DEI2 8+ .Screen/y DEO2 @@ -563,19 +563,19 @@ RTN ( get character ) - ;font #00 .i PEK2 LDA #20 SUB 8* ADD2 .Screen/addr DEO2 + ;font #00 .i LDZ2 LDA #20 SUB 8* ADD2 .Screen/addr DEO2 ( is a special character ) - .i PEK2 LDA #20 GTH ,&no-tab JCN ;font .Screen/addr DEO2 &no-tab + .i LDZ2 LDA #20 GTH ,&no-tab JCN ;font .Screen/addr DEO2 &no-tab ( draw ) #21 - .i PEK2 .selection/from PEK2 -- GTH2 - .i PEK2 .selection/to PEK2 LTH2 #0101 EQU2 + .i LDZ2 .selection/from LDZ2 -- GTH2 + .i LDZ2 .selection/to LDZ2 LTH2 #0101 EQU2 #05 MUL ADD .Screen/color DEO - ( incr ) .i PEK2 ++ .i POK2 + ( incr ) .i LDZ2 ++ .i STZ2 ( incr ) .Screen/x DEI2 #0007 ADD2 .Screen/x DEO2 - .i PEK2 LDA #00 NEQ ;&loop JCN2 + .i LDZ2 LDA #00 NEQ ;&loop JCN2 &end @@ -596,7 +596,7 @@ RTN OVR2 OVR2 LTH2 ,&loop JCN POP2 POP2 - .scroll/y PEK2 8+ .Screen/y DEO2 + .scroll/y LDZ2 8+ .Screen/y DEO2 DUP2 #0008 ADD2 .Screen/addr DEO2 ( draw ) #21 .Screen/color DEO @@ -613,16 +613,16 @@ RTN @draw-titlebar #0018 .Screen/height DEI2 8- #29 ;filepath - ( load ) .label/addr POK2 .label/color POK .Screen/y DEO2 .Screen/x DEO2 - .label/addr PEK2 + ( load ) .label/addr STZ2 .label/color STZ .Screen/y DEO2 .Screen/x DEO2 + .label/addr LDZ2 &loop - ( draw ) DUP2 LDA #00 SWP #20 SUB 8* ;font ADD2 .Screen/addr DEO2 .label/color PEK .Screen/color DEO + ( draw ) DUP2 LDA #00 SWP #20 SUB 8* ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/color DEO ( incr ) ++ ( incr ) .Screen/x DEI2 8+ .Screen/x DEO2 DUP2 LDA #00 NEQ ,&loop JCN POP2 ( selection ) - .selection/from PEK2 ;document/body SUB2 ;draw-short JSR2 + .selection/from LDZ2 ;document/body SUB2 ;draw-short JSR2 RTN diff --git a/projects/software/nasu.usm b/projects/software/nasu.usm @@ -103,31 +103,31 @@ ;on-transfer .File/vector DEO2 ( set defaults ) - #0130 .frame/width POK2 - #00a8 .frame/height POK2 - #01 .settings/brush POK - #32 .settings/ratio POK - - .Screen/width DEI2 #0001 SFT2 .frame/width PEK2 #0001 SFT2 SUB2 - .Screen/height DEI2 #0001 SFT2 .frame/height PEK2 #0001 SFT2 SUB2 #0010 ADD2 - .frame/width PEK2 .frame/height PEK2 + #0130 .frame/width STZ2 + #00a8 .frame/height STZ2 + #01 .settings/brush STZ + #32 .settings/ratio STZ + + .Screen/width DEI2 #0001 SFT2 .frame/width LDZ2 #0001 SFT2 SUB2 + .Screen/height DEI2 #0001 SFT2 .frame/height LDZ2 #0001 SFT2 SUB2 #0010 ADD2 + .frame/width LDZ2 .frame/height LDZ2 SIZE-TO-RECT ;frame SET-RECT - .frame/x1 PEK2 #0010 ADD2 .bankview/x POK2 - .frame/y1 PEK2 .bankview/y POK2 - BANK .settings/page POK2 + .frame/x1 LDZ2 #0010 ADD2 .bankview/x STZ2 + .frame/y1 LDZ2 .bankview/y STZ2 + BANK .settings/page STZ2 - .frame/x2 PEK2 #0098 SUB2 .tileview/x POK2 - .frame/y1 PEK2 .tileview/y POK2 - BANK #0448 ADD2 .settings/tile POK2 + .frame/x2 LDZ2 #0098 SUB2 .tileview/x STZ2 + .frame/y1 LDZ2 .tileview/y STZ2 + BANK #0448 ADD2 .settings/tile STZ2 - .frame/x2 PEK2 #0010 SUB2 .frame/y1 PEK2 #0010 #0080 SIZE-TO-RECT ;dataview SET-RECT - .frame/x1 PEK2 #0010 ADD2 .frame/y2 PEK2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;blendview SET-RECT - .frame/x1 PEK2 #0060 ADD2 .frame/y2 PEK2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;colorview SET-RECT - .frame/x1 PEK2 #0038 ADD2 .frame/y2 PEK2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;preview SET-RECT - .frame/x2 PEK2 #0098 SUB2 .frame/y1 PEK2 #0080 #0080 SIZE-TO-RECT ;editview SET-RECT + .frame/x2 LDZ2 #0010 SUB2 .frame/y1 LDZ2 #0010 #0080 SIZE-TO-RECT ;dataview SET-RECT + .frame/x1 LDZ2 #0010 ADD2 .frame/y2 LDZ2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;blendview SET-RECT + .frame/x1 LDZ2 #0060 ADD2 .frame/y2 LDZ2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;colorview SET-RECT + .frame/x1 LDZ2 #0038 ADD2 .frame/y2 LDZ2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;preview SET-RECT + .frame/x2 LDZ2 #0098 SUB2 .frame/y1 LDZ2 #0080 #0080 SIZE-TO-RECT ;editview SET-RECT - #01 .settings/blending POK + #01 .settings/blending STZ ;filepath1 .File/name DEO2 #0800 .File/length DEO2 BANK .File/load DEO2 ;filepath2 .File/name DEO2 #0800 .File/length DEO2 BANK #0800 ADD2 .File/load DEO2 @@ -136,7 +136,7 @@ ;filepath5 .File/name DEO2 #1000 .File/length DEO2 BANK #2800 ADD2 .File/load DEO2 ;filepath6 .File/name DEO2 #1000 .File/length DEO2 BANK #3800 ADD2 .File/load DEO2 - #40 DUP .bankview/selection POK ;select-tile JSR2 + #40 DUP .bankview/selection STZ ;select-tile JSR2 BRK @@ -150,28 +150,28 @@ BRK ( skip ) .Controller/button DEI #00 NEQ #01 JCN [ BRK ] - .Controller/button DEI #11 NEQ ,&no-pageup JCN .settings/page PEK2 - #0800 SUB2 .settings/page POK2 + .Controller/button DEI #11 NEQ ,&no-pageup JCN .settings/page LDZ2 + #0800 SUB2 .settings/page STZ2 ;redraw JSR2 BRK &no-pageup - .Controller/button DEI #21 NEQ ,&no-pagedown JCN .settings/page PEK2 - #0800 ADD2 .settings/page POK2 + .Controller/button DEI #21 NEQ ,&no-pagedown JCN .settings/page LDZ2 + #0800 ADD2 .settings/page STZ2 ;redraw JSR2 BRK &no-pagedown .Controller/button DEI #f0 AND DUP #04 SFT #01 AND #01 NEQ ,&no-up JCN - ( move ) .bankview/selection PEK #10 SUB .bankview/selection POK &no-up + ( move ) .bankview/selection LDZ #10 SUB .bankview/selection STZ &no-up DUP #05 SFT #01 AND #01 NEQ ,&no-down JCN - ( move ) .bankview/selection PEK #10 ADD .bankview/selection POK &no-down + ( move ) .bankview/selection LDZ #10 ADD .bankview/selection STZ &no-down DUP #06 SFT #01 AND #01 NEQ ,&no-left JCN - ( move ) .bankview/selection PEK #01 SUB .bankview/selection POK &no-left + ( move ) .bankview/selection LDZ #01 SUB .bankview/selection STZ &no-left DUP #07 SFT #01 AND #01 NEQ ,&no-right JCN - ( move ) .bankview/selection PEK #01 ADD .bankview/selection POK &no-right + ( move ) .bankview/selection LDZ #01 ADD .bankview/selection STZ &no-right POP - .bankview/selection PEK ;select-tile JSR2 + .bankview/selection LDZ ;select-tile JSR2 BRK @@ -182,13 +182,13 @@ BRK ( skip ) .Mouse/state DEI #00 NEQ #01 JCN [ BRK ] ( toolbar ) - .Mouse/y DEI2 .bankview/y PEK2 #0010 SUB2 SUB2 #0008 DIV2 #0000 NEQ2 ;&no-toolbar-click JCN2 + .Mouse/y DEI2 .bankview/y LDZ2 #0010 SUB2 SUB2 #0008 DIV2 #0000 NEQ2 ;&no-toolbar-click JCN2 ( brush ) - .Mouse/x DEI2 .bankview/x PEK2 SUB2 #0008 DIV2 #000d LTH2 ,&no-brush-click JCN - .Mouse/x DEI2 .bankview/x PEK2 SUB2 #0008 DIV2 #000f GTH2 ,&no-brush-click JCN - ( select ) .mouse/x PEK2 .bankview/x PEK2 SUB2 #0008 DIV2 #000d SUB2 TOB .bankview/mode POK + .Mouse/x DEI2 .bankview/x LDZ2 SUB2 #0008 DIV2 #000d LTH2 ,&no-brush-click JCN + .Mouse/x DEI2 .bankview/x LDZ2 SUB2 #0008 DIV2 #000f GTH2 ,&no-brush-click JCN + ( select ) .mouse/x LDZ2 .bankview/x LDZ2 SUB2 #0008 DIV2 #000d SUB2 TOB .bankview/mode STZ &no-brush-click - .Mouse/x DEI2 .bankview/x PEK2 SUB2 #0008 DIV2 #0005 NEQ2 ,&no-toggle-depth JCN + .Mouse/x DEI2 .bankview/x LDZ2 SUB2 #0008 DIV2 #0005 NEQ2 ,&no-toggle-depth JCN ;toggle-depth JSR2 &no-toggle-depth ( release ) #00 .Mouse/state DEO @@ -196,77 +196,77 @@ BRK &no-toolbar-click ( bankview ) - .Mouse/x DEI2 .bankview/x PEK2 GTH2 .Mouse/x DEI2 .bankview/x PEK2 #0080 ADD2 LTH2 #0101 EQU2 - .Mouse/y DEI2 .bankview/y PEK2 GTH2 .Mouse/y DEI2 .bankview/y PEK2 #0080 ADD2 LTH2 #0101 EQU2 + .Mouse/x DEI2 .bankview/x LDZ2 GTH2 .Mouse/x DEI2 .bankview/x LDZ2 #0080 ADD2 LTH2 #0101 EQU2 + .Mouse/y DEI2 .bankview/y LDZ2 GTH2 .Mouse/y DEI2 .bankview/y LDZ2 #0080 ADD2 LTH2 #0101 EQU2 #0101 EQU2 ;on-touch-bankview JCN2 ( tileview ) - .Mouse/x DEI2 .tileview/x PEK2 GTH2 .Mouse/x DEI2 .tileview/x PEK2 #0080 ADD2 LTH2 #0101 EQU2 - .Mouse/y DEI2 .tileview/y PEK2 GTH2 .Mouse/y DEI2 .tileview/y PEK2 #0080 ADD2 LTH2 #0101 EQU2 + .Mouse/x DEI2 .tileview/x LDZ2 GTH2 .Mouse/x DEI2 .tileview/x LDZ2 #0080 ADD2 LTH2 #0101 EQU2 + .Mouse/y DEI2 .tileview/y LDZ2 GTH2 .Mouse/y DEI2 .tileview/y LDZ2 #0080 ADD2 LTH2 #0101 EQU2 #0101 EQU2 ;on-touch-tileview JCN2 ( editview ) - .Mouse/x DEI2 DUP2 .editview/x1 PEK2 GTH2 ROT ROT .editview/x2 PEK2 LTH2 #0101 EQU2 - .Mouse/y DEI2 DUP2 .editview/y1 PEK2 GTH2 ROT ROT .editview/y2 PEK2 LTH2 #0101 EQU2 + .Mouse/x DEI2 DUP2 .editview/x1 LDZ2 GTH2 ROT ROT .editview/x2 LDZ2 LTH2 #0101 EQU2 + .Mouse/y DEI2 DUP2 .editview/y1 LDZ2 GTH2 ROT ROT .editview/y2 LDZ2 LTH2 #0101 EQU2 #0101 EQU2 ;on-touch-editview JCN2 ( dataview ) - .Mouse/x DEI2 DUP2 .dataview/x1 PEK2 GTH2 ROT ROT .dataview/x2 PEK2 LTH2 #0101 EQU2 - .Mouse/y DEI2 DUP2 .dataview/y1 PEK2 GTH2 ROT ROT .dataview/y2 PEK2 LTH2 #0101 EQU2 + .Mouse/x DEI2 DUP2 .dataview/x1 LDZ2 GTH2 ROT ROT .dataview/x2 LDZ2 LTH2 #0101 EQU2 + .Mouse/y DEI2 DUP2 .dataview/y1 LDZ2 GTH2 ROT ROT .dataview/y2 LDZ2 LTH2 #0101 EQU2 #0101 EQU2 ;on-touch-dataview JCN2 ( blendbiew ) - .Mouse/x DEI2 DUP2 .blendview/x1 PEK2 GTH2 ROT ROT .blendview/x2 PEK2 LTH2 #0101 EQU2 - .Mouse/y DEI2 DUP2 .blendview/y1 PEK2 GTH2 ROT ROT .blendview/y2 PEK2 LTH2 #0101 EQU2 + .Mouse/x DEI2 DUP2 .blendview/x1 LDZ2 GTH2 ROT ROT .blendview/x2 LDZ2 LTH2 #0101 EQU2 + .Mouse/y DEI2 DUP2 .blendview/y1 LDZ2 GTH2 ROT ROT .blendview/y2 LDZ2 LTH2 #0101 EQU2 #0101 EQU2 ;on-touch-blendview JCN2 ( colorview ) - .Mouse/x DEI2 DUP2 .colorview/x1 PEK2 GTH2 ROT ROT .colorview/x2 PEK2 LTH2 #0101 EQU2 - .Mouse/y DEI2 DUP2 .colorview/y1 PEK2 GTH2 ROT ROT .colorview/y2 PEK2 LTH2 #0101 EQU2 + .Mouse/x DEI2 DUP2 .colorview/x1 LDZ2 GTH2 ROT ROT .colorview/x2 LDZ2 LTH2 #0101 EQU2 + .Mouse/y DEI2 DUP2 .colorview/y1 LDZ2 GTH2 ROT ROT .colorview/y2 LDZ2 LTH2 #0101 EQU2 #0101 EQU2 ;on-touch-colorview JCN2 ( preview ) - .Mouse/x DEI2 DUP2 .preview/x1 PEK2 GTH2 ROT ROT .preview/x2 PEK2 LTH2 #0101 EQU2 - .Mouse/y DEI2 DUP2 .preview/y1 PEK2 GTH2 ROT ROT .preview/y2 PEK2 LTH2 #0101 EQU2 + .Mouse/x DEI2 DUP2 .preview/x1 LDZ2 GTH2 ROT ROT .preview/x2 LDZ2 LTH2 #0101 EQU2 + .Mouse/y DEI2 DUP2 .preview/y1 LDZ2 GTH2 ROT ROT .preview/y2 LDZ2 LTH2 #0101 EQU2 #0101 EQU2 ;on-touch-preview JCN2 BRK @on-touch-bankview ( -> ) - .bankview/mode PEK #01 NEQ ,&not-copy-mode JCN - #00 .i POK + .bankview/mode LDZ #01 NEQ ,&not-copy-mode JCN + #00 .i STZ &copy-loop - ( load ) .settings/tile PEK2 .i PEK ADD LDA + ( load ) .settings/tile LDZ2 .i LDZ ADD LDA ( get touch addr ) - .Mouse/x DEI2 .bankview/x PEK2 SUB2 STEP8 - .Mouse/y DEI2 .bankview/y PEK2 SUB2 STEP8 #0010 MUL2 ADD2 - ( 2-bit mode ) #00 .settings/depth PEK #01 ADD MUL2 - .settings/page PEK2 ADD2 #00 .i PEK ADD2 STA - ( incr ) .i PEK #01 ADD .i POK - .i PEK #08 LTH ,&copy-loop JCN + .Mouse/x DEI2 .bankview/x LDZ2 SUB2 STEP8 + .Mouse/y DEI2 .bankview/y LDZ2 SUB2 STEP8 #0010 MUL2 ADD2 + ( 2-bit mode ) #00 .settings/depth LDZ #01 ADD MUL2 + .settings/page LDZ2 ADD2 #00 .i LDZ ADD2 STA + ( incr ) .i LDZ #01 ADD .i STZ + .i LDZ #08 LTH ,&copy-loop JCN ;redraw JSR2 BRK &not-copy-mode - .bankview/mode PEK #02 NEQ ,&not-erase-mode JCN - #00 .i POK + .bankview/mode LDZ #02 NEQ ,&not-erase-mode JCN + #00 .i STZ &erase-loop #00 ( get touch addr ) - .Mouse/x DEI2 .bankview/x PEK2 SUB2 STEP8 - .Mouse/y DEI2 .bankview/y PEK2 SUB2 STEP8 #0010 MUL2 ADD2 - ( 2-bit mode ) #00 .settings/depth PEK #01 ADD MUL2 - .settings/page PEK2 ADD2 #00 .i PEK ADD2 STA - ( incr ) .i PEK #01 ADD .i POK - .i PEK #08 LTH ,&erase-loop JCN + .Mouse/x DEI2 .bankview/x LDZ2 SUB2 STEP8 + .Mouse/y DEI2 .bankview/y LDZ2 SUB2 STEP8 #0010 MUL2 ADD2 + ( 2-bit mode ) #00 .settings/depth LDZ #01 ADD MUL2 + .settings/page LDZ2 ADD2 #00 .i LDZ ADD2 STA + ( incr ) .i LDZ #01 ADD .i STZ + .i LDZ #08 LTH ,&erase-loop JCN ;redraw JSR2 BRK &not-erase-mode ( select ) - .Mouse/x DEI2 .bankview/x PEK2 SUB2 #0008 DIV2 TOB - .Mouse/y DEI2 .bankview/y PEK2 SUB2 #0008 DIV2 TOB #40 SFT ADD - DUP .bankview/selection POK + .Mouse/x DEI2 .bankview/x LDZ2 SUB2 #0008 DIV2 TOB + .Mouse/y DEI2 .bankview/y LDZ2 SUB2 #0008 DIV2 TOB #40 SFT ADD + DUP .bankview/selection STZ ;select-tile JSR2 BRK @@ -284,8 +284,8 @@ BRK @on-touch-dataview ( -> ) - .Mouse/y DEI2 .dataview/y1 PEK2 SUB2 STEP8 TOB #60 EQU ,&skip JCN BRK &skip - .Mouse/x DEI2 .dataview/x1 PEK2 SUB2 #0008 DIV2 TOB + .Mouse/y DEI2 .dataview/y1 LDZ2 SUB2 STEP8 TOB #60 EQU ,&skip JCN BRK &skip + .Mouse/x DEI2 .dataview/x1 LDZ2 SUB2 #0008 DIV2 TOB DUP #00 NEQ ,&no-move-up JCN ;op_shiftup JSR2 ( release ) #00 .Mouse/state DEO @@ -300,9 +300,9 @@ BRK @on-touch-blendview ( -> ) - .Mouse/x DEI2 .blendview/x1 PEK2 SUB2 #0008 DIV2 TOB - .Mouse/y DEI2 .blendview/y1 PEK2 SUB2 #0008 DIV2 TOB #04 MUL ADD - .settings/blending POK + .Mouse/x DEI2 .blendview/x1 LDZ2 SUB2 #0008 DIV2 TOB + .Mouse/y DEI2 .blendview/y1 LDZ2 SUB2 #0008 DIV2 TOB #04 MUL ADD + .settings/blending STZ ( release ) #00 .Mouse/state DEO ;redraw JSR2 @@ -310,10 +310,10 @@ BRK @on-touch-colorview ( -> ) - ( channel ) .Mouse/y DEI2 .colorview/y1 PEK2 SUB2 #0008 DIV2 TOB STH - ( rgb ) .Mouse/x DEI2 .colorview/x1 PEK2 SUB2 #0008 DIV2 TOB + ( channel ) .Mouse/y DEI2 .colorview/y1 LDZ2 SUB2 #0008 DIV2 TOB STH + ( rgb ) .Mouse/x DEI2 .colorview/x1 LDZ2 SUB2 #0008 DIV2 TOB DUP #00 NEQ ,&no-brush JCN - DUPr STHr .settings/brush POK &no-brush + DUPr STHr .settings/brush STZ &no-brush DUP #01 NEQ ,&no-red JCN DUPr STHr .System/r ;set-color JSR2 &no-red DUP #02 NEQ ,&no-green JCN @@ -328,11 +328,11 @@ BRK @on-touch-preview ( -> ) - ( y ) .Mouse/y DEI2 .preview/y1 PEK2 SUB2 #0008 DIV2 TOB - ( x ) .Mouse/x DEI2 .preview/x1 PEK2 SUB2 #0008 DIV2 TOB + ( y ) .Mouse/y DEI2 .preview/y1 LDZ2 SUB2 #0008 DIV2 TOB + ( x ) .Mouse/x DEI2 .preview/x1 LDZ2 SUB2 #0008 DIV2 TOB #40 SFT ADD #11 ADD - .settings/ratio POK + .settings/ratio STZ ( release ) #00 .Mouse/state DEO ;redraw JSR2 @@ -372,45 +372,45 @@ RTN ( x y ) DUP #0f AND SWP #04 SFT ( y ) #10 MOD #10 MUL #00 SWP #0008 MUL2 ( x ) ROT #10 MOD #00 SWP #0008 MUL2 ADD2 - ( 2-bit mode ) #00 .settings/depth PEK #01 ADD MUL2 - ( offset ) .settings/page PEK2 ADD2 .settings/tile POK2 + ( 2-bit mode ) #00 .settings/depth LDZ #01 ADD MUL2 + ( offset ) .settings/page LDZ2 ADD2 .settings/tile STZ2 ;redraw JSR2 RTN @toggle-depth ( -- ) - .bankview/selection PEK - .settings/depth PEK #00 EQU .settings/depth POK + .bankview/selection LDZ + .settings/depth LDZ #00 EQU .settings/depth STZ ;select-tile JSR2 RTN @op_shiftup ( -- ) - .settings/tile PEK2 LDA - .settings/tile PEK2 #0001 ADD2 LDA .settings/tile PEK2 STA - .settings/tile PEK2 #0002 ADD2 LDA .settings/tile PEK2 #0001 ADD2 STA - .settings/tile PEK2 #0003 ADD2 LDA .settings/tile PEK2 #0002 ADD2 STA - .settings/tile PEK2 #0004 ADD2 LDA .settings/tile PEK2 #0003 ADD2 STA - .settings/tile PEK2 #0005 ADD2 LDA .settings/tile PEK2 #0004 ADD2 STA - .settings/tile PEK2 #0006 ADD2 LDA .settings/tile PEK2 #0005 ADD2 STA - .settings/tile PEK2 #0007 ADD2 LDA .settings/tile PEK2 #0006 ADD2 STA - .settings/tile PEK2 #0007 ADD2 STA + .settings/tile LDZ2 LDA + .settings/tile LDZ2 #0001 ADD2 LDA .settings/tile LDZ2 STA + .settings/tile LDZ2 #0002 ADD2 LDA .settings/tile LDZ2 #0001 ADD2 STA + .settings/tile LDZ2 #0003 ADD2 LDA .settings/tile LDZ2 #0002 ADD2 STA + .settings/tile LDZ2 #0004 ADD2 LDA .settings/tile LDZ2 #0003 ADD2 STA + .settings/tile LDZ2 #0005 ADD2 LDA .settings/tile LDZ2 #0004 ADD2 STA + .settings/tile LDZ2 #0006 ADD2 LDA .settings/tile LDZ2 #0005 ADD2 STA + .settings/tile LDZ2 #0007 ADD2 LDA .settings/tile LDZ2 #0006 ADD2 STA + .settings/tile LDZ2 #0007 ADD2 STA RTN @op_shiftdown ( -- ) - .settings/tile PEK2 #0007 ADD2 LDA - .settings/tile PEK2 #0006 ADD2 LDA .settings/tile PEK2 #0007 ADD2 STA - .settings/tile PEK2 #0005 ADD2 LDA .settings/tile PEK2 #0006 ADD2 STA - .settings/tile PEK2 #0004 ADD2 LDA .settings/tile PEK2 #0005 ADD2 STA - .settings/tile PEK2 #0003 ADD2 LDA .settings/tile PEK2 #0004 ADD2 STA - .settings/tile PEK2 #0002 ADD2 LDA .settings/tile PEK2 #0003 ADD2 STA - .settings/tile PEK2 #0001 ADD2 LDA .settings/tile PEK2 #0002 ADD2 STA - .settings/tile PEK2 LDA .settings/tile PEK2 #0001 ADD2 STA - .settings/tile PEK2 STA + .settings/tile LDZ2 #0007 ADD2 LDA + .settings/tile LDZ2 #0006 ADD2 LDA .settings/tile LDZ2 #0007 ADD2 STA + .settings/tile LDZ2 #0005 ADD2 LDA .settings/tile LDZ2 #0006 ADD2 STA + .settings/tile LDZ2 #0004 ADD2 LDA .settings/tile LDZ2 #0005 ADD2 STA + .settings/tile LDZ2 #0003 ADD2 LDA .settings/tile LDZ2 #0004 ADD2 STA + .settings/tile LDZ2 #0002 ADD2 LDA .settings/tile LDZ2 #0003 ADD2 STA + .settings/tile LDZ2 #0001 ADD2 LDA .settings/tile LDZ2 #0002 ADD2 STA + .settings/tile LDZ2 LDA .settings/tile LDZ2 #0001 ADD2 STA + .settings/tile LDZ2 STA RTN @@ -427,42 +427,42 @@ RTN @draw-bankview ( -- ) - .bankview/x PEK2 #0002 SUB2 .bankview/y PEK2 #0002 SUB2 .bankview/x PEK2 #0081 ADD2 .bankview/y PEK2 #0081 ADD2 #03 ;line-rect JSR2 + .bankview/x LDZ2 #0002 SUB2 .bankview/y LDZ2 #0002 SUB2 .bankview/x LDZ2 #0081 ADD2 .bankview/y LDZ2 #0081 ADD2 #03 ;line-rect JSR2 ( position ) - .bankview/x PEK2 .Screen/x DEO2 - .bankview/y PEK2 #0010 SUB2 .Screen/y DEO2 - .settings/page PEK2 #22 ;draw-short JSR2 + .bankview/x LDZ2 .Screen/x DEO2 + .bankview/y LDZ2 #0010 SUB2 .Screen/y DEO2 + .settings/page LDZ2 #22 ;draw-short JSR2 ( toolbar ) - .bankview/y PEK2 #0010 SUB2 .Screen/y DEO2 + .bankview/y LDZ2 #0010 SUB2 .Screen/y DEO2 - .bankview/x PEK2 #0028 ADD2 .Screen/x DEO2 - ;depth_icns #00 .settings/depth PEK #0008 MUL2 ADD2 .Screen/addr DEO2 + .bankview/x LDZ2 #0028 ADD2 .Screen/x DEO2 + ;depth_icns #00 .settings/depth LDZ #0008 MUL2 ADD2 .Screen/addr DEO2 #23 .Screen/color DEO - .bankview/x PEK2 #0068 ADD2 .Screen/x DEO2 + .bankview/x LDZ2 #0068 ADD2 .Screen/x DEO2 ;tool_selector .Screen/addr DEO2 - #21 .bankview/mode PEK #00 EQU ADD .Screen/color DEO + #21 .bankview/mode LDZ #00 EQU ADD .Screen/color DEO .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 ;tool_hand .Screen/addr DEO2 - #21 .bankview/mode PEK #01 EQU ADD .Screen/color DEO + #21 .bankview/mode LDZ #01 EQU ADD .Screen/color DEO .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 ;tool_eraser .Screen/addr DEO2 - #21 .bankview/mode PEK #02 EQU ADD .Screen/color DEO + #21 .bankview/mode LDZ #02 EQU ADD .Screen/color DEO ( guides ) - .bankview/x PEK2 #0010 SUB2 .Screen/x DEO2 - .bankview/y PEK2 .Screen/y DEO2 + .bankview/x LDZ2 #0010 SUB2 .Screen/x DEO2 + .bankview/y LDZ2 .Screen/y DEO2 ;font-hex .Screen/addr DEO2 #00 #10 &guides - ( draw ) OVR .bankview/selection PEK #04 SFT EQU #22 ADD .Screen/color DEO + ( draw ) OVR .bankview/selection LDZ #04 SFT EQU #22 ADD .Screen/color DEO .Screen/addr DEI2 #0008 ADD2 .Screen/addr DEO2 .Screen/y DEI2 #0008 ADD2 .Screen/y DEO2 SWP #01 ADD SWP @@ -471,19 +471,19 @@ RTN ( draw page ) - ( load ) .settings/page PEK2 .Screen/addr DEO2 - .bankview/y PEK2 DUP2 #0080 ADD2 + ( load ) .settings/page LDZ2 .Screen/addr DEO2 + .bankview/y LDZ2 DUP2 #0080 ADD2 &ver ( save ) OVR2 .Screen/y DEO2 - .bankview/x PEK2 DUP2 #0080 ADD2 + .bankview/x LDZ2 DUP2 #0080 ADD2 &hor ( save ) OVR2 .Screen/x DEO2 - ( get selected ) .Screen/addr DEI2 .settings/tile PEK2 EQU2 - ( get blending ) .settings/blending PEK - ( get depth ) .settings/depth PEK #20 MUL + ( get selected ) .Screen/addr DEI2 .settings/tile LDZ2 EQU2 + ( get blending ) .settings/blending LDZ + ( get depth ) .settings/depth LDZ #20 MUL ( draw ) #20 ADD ADD ADD .Screen/color DEO ( incr ) SWP2 #0008 ADD2 SWP2 - ( incr ) .Screen/addr DEI2 #0008 ADD2 #00 .settings/depth PEK #0008 MUL2 ADD2 .Screen/addr DEO2 + ( incr ) .Screen/addr DEI2 #0008 ADD2 #00 .settings/depth LDZ #0008 MUL2 ADD2 .Screen/addr DEO2 OVR2 OVR2 LTH2 ,&hor JCN POP2 POP2 ( incr ) SWP2 #0008 ADD2 SWP2 @@ -494,87 +494,87 @@ RTN @draw-tileview ( -- ) - .tileview/x PEK2 #0002 SUB2 .tileview/y PEK2 #0002 SUB2 .tileview/x PEK2 #0080 ADD2 .tileview/y PEK2 #0081 ADD2 #03 ;line-rect JSR2 + .tileview/x LDZ2 #0002 SUB2 .tileview/y LDZ2 #0002 SUB2 .tileview/x LDZ2 #0080 ADD2 .tileview/y LDZ2 #0081 ADD2 #03 ;line-rect JSR2 - .tileview/x PEK2 #0028 ADD2 .Screen/x DEO2 - .tileview/y PEK2 #0010 SUB2 .Screen/y DEO2 - .settings/tile PEK2 .Screen/addr DEO2 + .tileview/x LDZ2 #0028 ADD2 .Screen/x DEO2 + .tileview/y LDZ2 #0010 SUB2 .Screen/y DEO2 + .settings/tile LDZ2 .Screen/addr DEO2 - ( get blending ) .settings/blending PEK - ( get depth ) .settings/depth PEK #20 MUL + ( get blending ) .settings/blending LDZ + ( get depth ) .settings/depth LDZ #20 MUL ( draw ) #20 ADD ADD .Screen/color DEO ( position ) - .tileview/x PEK2 .Screen/x DEO2 - .tileview/y PEK2 #0010 SUB2 .Screen/y DEO2 - .settings/tile PEK2 #22 ;draw-short JSR2 + .tileview/x LDZ2 .Screen/x DEO2 + .tileview/y LDZ2 #0010 SUB2 .Screen/y DEO2 + .settings/tile LDZ2 #22 ;draw-short JSR2 ( body ) - .tileview/x PEK2 .Screen/x DEO2 - .tileview/y PEK2 .Screen/y DEO2 - .settings/tile PEK2 .settings/tile POK2 + .tileview/x LDZ2 .Screen/x DEO2 + .tileview/y LDZ2 .Screen/y DEO2 + .settings/tile LDZ2 .settings/tile STZ2 ;draw-tileview-icn JSR2 - .tileview/x PEK2 #0040 ADD2 .Screen/x DEO2 - .tileview/y PEK2 .Screen/y DEO2 - .settings/tile PEK2 #0008 ADD2 .settings/tile POK2 + .tileview/x LDZ2 #0040 ADD2 .Screen/x DEO2 + .tileview/y LDZ2 .Screen/y DEO2 + .settings/tile LDZ2 #0008 ADD2 .settings/tile STZ2 ;draw-tileview-icn JSR2 - .tileview/x PEK2 .Screen/x DEO2 - .tileview/y PEK2 #0040 ADD2 .Screen/y DEO2 - .settings/tile PEK2 #0008 ADD2 .settings/tile POK2 + .tileview/x LDZ2 .Screen/x DEO2 + .tileview/y LDZ2 #0040 ADD2 .Screen/y DEO2 + .settings/tile LDZ2 #0008 ADD2 .settings/tile STZ2 ;draw-tileview-icn JSR2 - .tileview/x PEK2 #0040 ADD2 .Screen/x DEO2 - .tileview/y PEK2 #0040 ADD2 .Screen/y DEO2 - .settings/tile PEK2 #0008 ADD2 .settings/tile POK2 + .tileview/x LDZ2 #0040 ADD2 .Screen/x DEO2 + .tileview/y LDZ2 #0040 ADD2 .Screen/y DEO2 + .settings/tile LDZ2 #0008 ADD2 .settings/tile STZ2 ;draw-tileview-icn JSR2 ( line hor ) - .tileview/y PEK2 #003f ADD2 .Screen/y DEO2 - .tileview/x PEK2 .Screen/x DEO2 + .tileview/y LDZ2 #003f ADD2 .Screen/y DEO2 + .tileview/x LDZ2 .Screen/x DEO2 &line-hor ( draw ) #03 .Screen/color DEO ( incr ) .Screen/x DEI2 #0002 ADD2 .Screen/x DEO2 - .Screen/x DEI2 .tileview/x PEK2 #0082 ADD2 LTH2 ,&line-hor JCN + .Screen/x DEI2 .tileview/x LDZ2 #0082 ADD2 LTH2 ,&line-hor JCN ( line ver ) - .tileview/y PEK2 .Screen/y DEO2 - .tileview/x PEK2 #003f ADD2 .Screen/x DEO2 + .tileview/y LDZ2 .Screen/y DEO2 + .tileview/x LDZ2 #003f ADD2 .Screen/x DEO2 &line-ver ( draw ) #03 .Screen/color DEO ( incr ) .Screen/y DEI2 #0002 ADD2 .Screen/y DEO2 - .Screen/y DEI2 .tileview/y PEK2 #0081 ADD2 LTH2 ,&line-ver JCN + .Screen/y DEI2 .tileview/y LDZ2 #0081 ADD2 LTH2 ,&line-ver JCN - ( rewind ) .settings/tile PEK2 #0018 SUB2 .settings/tile POK2 + ( rewind ) .settings/tile LDZ2 #0018 SUB2 .settings/tile STZ2 RTN @draw-editview ( -- ) - .editview/x1 PEK2 #0002 SUB2 .editview/y1 PEK2 #0002 SUB2 .editview/x2 PEK2 #0001 ADD2 .editview/y2 PEK2 #0001 ADD2 #03 ;line-rect JSR2 + .editview/x1 LDZ2 #0002 SUB2 .editview/y1 LDZ2 #0002 SUB2 .editview/x2 LDZ2 #0001 ADD2 .editview/y2 LDZ2 #0001 ADD2 #03 ;line-rect JSR2 ( position ) - .editview/x1 PEK2 .Screen/x DEO2 - .editview/y1 PEK2 #0010 SUB2 .Screen/y DEO2 - .settings/tile PEK2 #22 ;draw-short JSR2 + .editview/x1 LDZ2 .Screen/x DEO2 + .editview/y1 LDZ2 #0010 SUB2 .Screen/y DEO2 + .settings/tile LDZ2 #22 ;draw-short JSR2 ( tiles ) - .settings/tile PEK2 DUP2 STH2 .Screen/addr DEO2 + .settings/tile LDZ2 DUP2 STH2 .Screen/addr DEO2 #00 #04 &ver - OVR #08 MUL TOS #0004 MUL2 .editview/y1 PEK2 ADD2 .Screen/y DEO2 + OVR #08 MUL TOS #0004 MUL2 .editview/y1 LDZ2 ADD2 .Screen/y DEO2 #00 #04 &hor - OVR #08 MUL TOS #0004 MUL2 .editview/x1 PEK2 ADD2 .Screen/x DEO2 + OVR #08 MUL TOS #0004 MUL2 .editview/x1 LDZ2 ADD2 .Screen/x DEO2 ( get x,y ) SWP2 OVR STH SWP2 OVR STHr ( check if within ratio ) - .settings/ratio PEK #0f AND LTH STH - .settings/ratio PEK #04 SFT LTH STHr + .settings/ratio LDZ #0f AND LTH STH + .settings/ratio LDZ #04 SFT LTH STHr #0101 NEQ2 ,&outside JCN ( get tile ) DUP2r STH2r .Screen/addr DEO2 @@ -598,12 +598,12 @@ RTN POP2r ( grid ) - .editview/x1 PEK2 DUP2 #0080 ADD2 .editview/y1 PEK2 #0020 ADD2 #03 ;line-hor JSR2 - .editview/x1 PEK2 DUP2 #0080 ADD2 .editview/y1 PEK2 #0040 ADD2 #03 ;line-hor JSR2 - .editview/x1 PEK2 DUP2 #0080 ADD2 .editview/y1 PEK2 #0060 ADD2 #03 ;line-hor JSR2 - .editview/x1 PEK2 #0020 ADD2 .editview/y1 PEK2 DUP2 #0080 ADD2 #03 ;line-ver JSR2 - .editview/x1 PEK2 #0040 ADD2 .editview/y1 PEK2 DUP2 #0080 ADD2 #03 ;line-ver JSR2 - .editview/x1 PEK2 #0060 ADD2 .editview/y1 PEK2 DUP2 #0080 ADD2 #03 ;line-ver JSR2 + .editview/x1 LDZ2 DUP2 #0080 ADD2 .editview/y1 LDZ2 #0020 ADD2 #03 ;line-hor JSR2 + .editview/x1 LDZ2 DUP2 #0080 ADD2 .editview/y1 LDZ2 #0040 ADD2 #03 ;line-hor JSR2 + .editview/x1 LDZ2 DUP2 #0080 ADD2 .editview/y1 LDZ2 #0060 ADD2 #03 ;line-hor JSR2 + .editview/x1 LDZ2 #0020 ADD2 .editview/y1 LDZ2 DUP2 #0080 ADD2 #03 ;line-ver JSR2 + .editview/x1 LDZ2 #0040 ADD2 .editview/y1 LDZ2 DUP2 #0080 ADD2 #03 ;line-ver JSR2 + .editview/x1 LDZ2 #0060 ADD2 .editview/y1 LDZ2 DUP2 #0080 ADD2 #03 ;line-ver JSR2 RTN @@ -651,44 +651,44 @@ RTN @draw-tileview-icn ( -- ) - #00 .pt/x POK #00 .pt/y POK + #00 .pt/x STZ #00 .pt/y STZ &ver - #00 .pt/x POK + #00 .pt/x STZ &hor ( get bit ) ;blank_icn #00 - .settings/tile PEK2 #00 .pt/y PEK ADD2 LDA #07 .pt/x PEK SUB SFT #01 AND ( get bit ) + .settings/tile LDZ2 #00 .pt/y LDZ ADD2 LDA #07 .pt/x LDZ SUB SFT #01 AND ( get bit ) #0008 MUL2 ADD2 .Screen/addr DEO2 ( add *8 ) ( draw ) #21 .Screen/color DEO ( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 - ( incr ) .pt/x PEK #01 ADD .pt/x POK - .pt/x PEK #08 LTH ;&hor JCN2 + ( incr ) .pt/x LDZ #01 ADD .pt/x STZ + .pt/x LDZ #08 LTH ;&hor JCN2 ( incr ) .Screen/y DEI2 #0008 ADD2 .Screen/y DEO2 - ( incr ) .pt/y PEK #01 ADD .pt/y POK + ( incr ) .pt/y LDZ #01 ADD .pt/y STZ .Screen/x DEI2 #0040 SUB2 .Screen/x DEO2 - .pt/y PEK #08 LTH ;&ver JCN2 + .pt/y LDZ #08 LTH ;&ver JCN2 RTN @draw-blendview ( -- ) - ( .blendview/x1 PEK2 #0002 SUB2 .blendview/y1 PEK2 #0002 SUB2 .blendview/x2 PEK2 #0001 ADD2 .blendview/y2 PEK2 #0001 ADD2 #03 ;line-rect JSR2 ) + ( .blendview/x1 LDZ2 #0002 SUB2 .blendview/y1 LDZ2 #0002 SUB2 .blendview/x2 LDZ2 #0001 ADD2 .blendview/y2 LDZ2 #0001 ADD2 #03 ;line-rect JSR2 ) - .settings/tile PEK2 .Screen/addr DEO2 + .settings/tile LDZ2 .Screen/addr DEO2 #00 #10 &loop - OVR #04 MOD #00 SWP #0008 MUL2 .blendview/x1 PEK2 ADD2 .Screen/x DEO2 - OVR #04 DIV #00 SWP #0008 MUL2 .blendview/y1 PEK2 ADD2 .Screen/y DEO2 + OVR #04 MOD #00 SWP #0008 MUL2 .blendview/x1 LDZ2 ADD2 .Screen/x DEO2 + OVR #04 DIV #00 SWP #0008 MUL2 .blendview/y1 LDZ2 ADD2 .Screen/y DEO2 #20 .Screen/color DEO - OVR #20 ADD .settings/depth PEK #20 MUL ADD .Screen/color DEO + OVR #20 ADD .settings/depth LDZ #20 MUL ADD .Screen/color DEO SWP #01 ADD SWP DUP2 LTH ,&loop JCN POP2 - .blendview/x1 PEK2 .Screen/x DEO2 - .blendview/y2 PEK2 #0001 ADD2 .Screen/y DEO2 - ( get blending ) .settings/blending PEK - ( get depth ) .settings/depth PEK #20 MUL + .blendview/x1 LDZ2 .Screen/x DEO2 + .blendview/y2 LDZ2 #0001 ADD2 .Screen/y DEO2 + ( get blending ) .settings/blending LDZ + ( get depth ) .settings/depth LDZ #20 MUL ( draw ) #20 ADD ADD #21 ;draw-byte JSR2 RTN @@ -697,14 +697,14 @@ RTN ( bytes ) - .tileview/y PEK2 #0018 ADD2 .Screen/y DEO2 - #00 .i POK + .tileview/y LDZ2 #0018 ADD2 .Screen/y DEO2 + #00 .i STZ &bytes - .tileview/x PEK2 #0088 ADD2 .Screen/x DEO2 - .settings/tile PEK2 #00 .i PEK ADD2 LDA #22 ;draw-byte JSR2 - ( incr ) .i PEK #01 ADD .i POK + .tileview/x LDZ2 #0088 ADD2 .Screen/x DEO2 + .settings/tile LDZ2 #00 .i LDZ ADD2 LDA #22 ;draw-byte JSR2 + ( incr ) .i LDZ #01 ADD .i STZ ( incr ) .Screen/y DEI2 #0008 ADD2 .Screen/y DEO2 - .i PEK #08 LTH ;&bytes JCN2 + .i LDZ #08 LTH ;&bytes JCN2 ( operations ) @@ -716,43 +716,43 @@ RTN #21 .Screen/color DEO ( draw tiles 2x2 ) - .tileview/y PEK2 .Screen/y DEO2 - #00 .pt/x POK #00 .pt/y POK .settings/tile PEK2 .Screen/addr DEO2 + .tileview/y LDZ2 .Screen/y DEO2 + #00 .pt/x STZ #00 .pt/y STZ .settings/tile LDZ2 .Screen/addr DEO2 &tiles-ver - #00 .pt/x POK - .tileview/x PEK2 #0088 ADD2 .Screen/x DEO2 + #00 .pt/x STZ + .tileview/x LDZ2 #0088 ADD2 .Screen/x DEO2 &tiles-hor ( draw ) #23 .Screen/color DEO ( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 ( incr ) .Screen/addr DEI2 #0008 ADD2 .Screen/addr DEO2 - ( incr ) .pt/x PEK #01 ADD .pt/x POK - .pt/x PEK #02 LTH ;&tiles-hor JCN2 - ( incr ) .pt/y PEK #01 ADD .pt/y POK + ( incr ) .pt/x LDZ #01 ADD .pt/x STZ + .pt/x LDZ #02 LTH ;&tiles-hor JCN2 + ( incr ) .pt/y LDZ #01 ADD .pt/y STZ ( incr ) .Screen/y DEI2 #0008 ADD2 .Screen/y DEO2 - .pt/y PEK #02 LTH ;&tiles-ver JCN2 + .pt/y LDZ #02 LTH ;&tiles-ver JCN2 RTN @draw-colorview ( -- ) - .colorview/y1 PEK2 #18 ADD .Screen/y DEO2 - .colorview/x1 PEK2 #08 ADD .Screen/x DEO2 + .colorview/y1 LDZ2 #18 ADD .Screen/y DEO2 + .colorview/x1 LDZ2 #08 ADD .Screen/x DEO2 .System/r DEI2 ;draw-color-code JSR2 - .colorview/y1 PEK2 #18 ADD .Screen/y DEO2 - .colorview/x1 PEK2 #10 ADD .Screen/x DEO2 + .colorview/y1 LDZ2 #18 ADD .Screen/y DEO2 + .colorview/x1 LDZ2 #10 ADD .Screen/x DEO2 .System/g DEI2 ;draw-color-code JSR2 - .colorview/y1 PEK2 #18 ADD .Screen/y DEO2 - .colorview/x1 PEK2 #18 ADD .Screen/x DEO2 + .colorview/y1 LDZ2 #18 ADD .Screen/y DEO2 + .colorview/x1 LDZ2 #18 ADD .Screen/x DEO2 .System/b DEI2 ;draw-color-code JSR2 - .colorview/x1 PEK2 .Screen/x DEO2 + .colorview/x1 LDZ2 .Screen/x DEO2 ;circle_icns .Screen/addr DEO2 #00 #04 &loop - OVR .settings/brush PEK EQU #00 SWP #0008 MUL2 ;circle_icns ADD2 .Screen/addr DEO2 - OVR .colorview/y1 PEK2 ROT #00 SWP #0008 MUL2 ADD2 .Screen/y DEO2 + OVR .settings/brush LDZ EQU #00 SWP #0008 MUL2 ;circle_icns ADD2 .Screen/addr DEO2 + OVR .colorview/y1 LDZ2 ROT #00 SWP #0008 MUL2 ADD2 .Screen/y DEO2 OVR #20 ADD .Screen/color DEO SWP #01 ADD SWP DUP2 LTH ,&loop JCN @@ -763,24 +763,24 @@ RTN @draw-preview ( -- ) ( stash address ) - .settings/tile PEK2 DUP2 STH2 .Screen/addr DEO2 + .settings/tile LDZ2 DUP2 STH2 .Screen/addr DEO2 #00 #04 &ver - OVR #08 MUL TOS .preview/y1 PEK2 ADD2 .Screen/y DEO2 + OVR #08 MUL TOS .preview/y1 LDZ2 ADD2 .Screen/y DEO2 #00 #04 &hor - OVR #08 MUL TOS .preview/x1 PEK2 ADD2 .Screen/x DEO2 + OVR #08 MUL TOS .preview/x1 LDZ2 ADD2 .Screen/x DEO2 ( get x,y ) SWP2 OVR STH SWP2 OVR STHr ( check if within ratio ) - .settings/ratio PEK #0f AND LTH STH - .settings/ratio PEK #04 SFT LTH STHr + .settings/ratio LDZ #0f AND LTH STH + .settings/ratio LDZ #04 SFT LTH STHr #0101 NEQ2 ,&outside JCN ( get tile ) DUP2r STH2r .Screen/addr DEO2 - ( get blending ) .settings/blending PEK - ( get depth ) .settings/depth PEK #20 MUL + ( get blending ) .settings/blending LDZ + ( get depth ) .settings/depth LDZ #20 MUL ( draw ) #20 ADD ADD .Screen/color DEO - ( incr ) STH2r #0008 [ .settings/depth PEK #08 MUL TOS ADD2 ] ADD2 STH2 + ( incr ) STH2r #0008 [ .settings/depth LDZ #08 MUL TOS ADD2 ] ADD2 STH2 ,&resume JMP &outside ;halftone_icn .Screen/addr DEO2 @@ -793,9 +793,9 @@ RTN DUP2 LTH ;&ver JCN2 POP2 POP2r - .preview/x1 PEK2 #0001 SUB2 .Screen/x DEO2 - .preview/y2 PEK2 #0001 ADD2 .Screen/y DEO2 - .settings/ratio PEK #23 ;draw-byte JSR2 + .preview/x1 LDZ2 #0001 SUB2 .Screen/x DEO2 + .preview/y2 LDZ2 #0001 ADD2 .Screen/y DEO2 + .settings/ratio LDZ #23 ;draw-byte JSR2 RTN @@ -803,13 +803,13 @@ RTN DUP ;font-hex ROT #0f AND #08 MUL #00 SWP ADD2 .Screen/addr DEO2 ( draw ) #22 .Screen/color DEO - .colorview/y1 PEK2 #10 ADD .Screen/y DEO2 + .colorview/y1 LDZ2 #10 ADD .Screen/y DEO2 ;font-hex ROT #04 SFT #08 MUL #00 SWP ADD2 .Screen/addr DEO2 ( draw ) #22 .Screen/color DEO - .colorview/y1 PEK2 #08 ADD .Screen/y DEO2 + .colorview/y1 LDZ2 #08 ADD .Screen/y DEO2 DUP ;font-hex ROT #0f AND #08 MUL #00 SWP ADD2 .Screen/addr DEO2 ( draw ) #22 .Screen/color DEO - .colorview/y1 PEK2 .Screen/y DEO2 + .colorview/y1 LDZ2 .Screen/y DEO2 ;font-hex ROT #04 SFT #08 MUL #00 SWP ADD2 .Screen/addr DEO2 ( draw ) #22 .Screen/color DEO @@ -818,30 +818,30 @@ RTN @draw-cursor ( -- ) ( clear last cursor ) - .mouse/x PEK2 .Screen/x DEO2 - .mouse/y PEK2 .Screen/y DEO2 + .mouse/x LDZ2 .Screen/x DEO2 + .mouse/y LDZ2 .Screen/y DEO2 #30 .Screen/color DEO ( record mouse positions ) - .Mouse/x DEI2 .mouse/x POK2 - .Mouse/y DEI2 .mouse/y POK2 + .Mouse/x DEI2 .mouse/x STZ2 + .Mouse/y DEI2 .mouse/y STZ2 ( draw new cursor ) - .mouse/x PEK2 .Screen/x DEO2 - .mouse/y PEK2 .Screen/y DEO2 - ;tool_selector #00 .bankview/mode PEK #08 MUL ADD2 .Screen/addr DEO2 + .mouse/x LDZ2 .Screen/x DEO2 + .mouse/y LDZ2 .Screen/y DEO2 + ;tool_selector #00 .bankview/mode LDZ #08 MUL ADD2 .Screen/addr DEO2 #32 .Mouse/state DEI #00 NEQ ADD .Screen/color DEO RTN @draw-byte ( byte color -- ) - .color POK STH + .color STZ STH ;font-hex #00 DUPr STHr #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2 - ( draw ) .color PEK .Screen/color DEO + ( draw ) .color LDZ .Screen/color DEO .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 ;font-hex #00 STHr #0f AND #08 MUL ADD2 .Screen/addr DEO2 - ( draw ) .color PEK .Screen/color DEO + ( draw ) .color LDZ .Screen/color DEO RTN @@ -866,20 +866,20 @@ RTN @line-rect ( x1* y1* x2* y2* color -- ) - ( load ) .color POK DUP2 STH2 .rect/y2 POK2 .rect/x2 POK2 DUP2 STH2 .rect/y1 POK2 .rect/x1 POK2 + ( load ) .color STZ DUP2 STH2 .rect/y2 STZ2 .rect/x2 STZ2 DUP2 STH2 .rect/y1 STZ2 .rect/x1 STZ2 STH2r STH2r &ver ( save ) OVR2 .Screen/y DEO2 - ( draw ) .rect/x1 PEK2 .Screen/x DEO2 .color PEK DUP .Screen/color DEO - ( draw ) .rect/x2 PEK2 .Screen/x DEO2 .Screen/color DEO + ( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ DUP .Screen/color DEO + ( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .Screen/color DEO ( incr ) SWP2 #0001 ADD2 SWP2 OVR2 OVR2 LTS2 ,&ver JCN POP2 POP2 - .rect/x1 PEK2 .rect/x2 PEK2 + .rect/x1 LDZ2 .rect/x2 LDZ2 &hor ( save ) OVR2 .Screen/x DEO2 - ( draw ) .rect/y1 PEK2 .Screen/y DEO2 .color PEK DUP .Screen/color DEO - ( draw ) .rect/y2 PEK2 .Screen/y DEO2 .Screen/color DEO + ( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ DUP .Screen/color DEO + ( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .Screen/color DEO ( incr ) SWP2 #0001 ADD2 SWP2 OVR2 OVR2 #0001 ADD2 LTS2 ,&hor JCN POP2 POP2 diff --git a/projects/software/neralie.usm b/projects/software/neralie.usm @@ -32,55 +32,55 @@ ( theme ) #03fd .System/r DEO2 #0ef3 .System/g DEO2 #0bf2 .System/b DEO2 ( vectors ) ;on-screen .Screen/vector DEO2 - #01 .fps/current POK + #01 .fps/current STZ #000c - DUP2 .lines/x1 POK2 - DUP2 .lines/y1 POK2 - DUP2 .Screen/width DEI2 SWP2 SUB2 #0001 SUB2 .lines/x2 POK2 - .Screen/height DEI2 SWP2 SUB2 .lines/y2 POK2 - - #02 .neralie/color POK - .lines/x1 PEK2 .lines/x2 PEK2 - OVR2 OVR2 .lines/y1 PEK2 ;h JSR2 - .lines/y2 PEK2 ;h JSR2 - .lines/y1 PEK2 #0001 SUB2 .lines/y2 PEK2 #0001 ADD2 - OVR2 OVR2 .lines/x1 PEK2 ;v JSR2 - .lines/x2 PEK2 ;v JSR2 + DUP2 .lines/x1 STZ2 + DUP2 .lines/y1 STZ2 + DUP2 .Screen/width DEI2 SWP2 SUB2 #0001 SUB2 .lines/x2 STZ2 + .Screen/height DEI2 SWP2 SUB2 .lines/y2 STZ2 + + #02 .neralie/color STZ + .lines/x1 LDZ2 .lines/x2 LDZ2 + OVR2 OVR2 .lines/y1 LDZ2 ;h JSR2 + .lines/y2 LDZ2 ;h JSR2 + .lines/y1 LDZ2 #0001 SUB2 .lines/y2 LDZ2 #0001 ADD2 + OVR2 OVR2 .lines/x1 LDZ2 ;v JSR2 + .lines/x2 LDZ2 ;v JSR2 @on-screen ;update-fps JSR2 - #00 .neralie/color POK + #00 .neralie/color STZ ;neralie-lines JSR2 ;neralie-calc JSR2 - #02 .neralie/color POK + #02 .neralie/color STZ ;arvelie-text JSR2 ;neralie-text JSR2 ;neralie-lines JSR2 BRK #22 .Screen/color DEO - #0000 #00 .number/count PEK DUP2 ;h JSR2 - .number/count PEK #01 ADD .number/count POK + #0000 #00 .number/count LDZ DUP2 ;h JSR2 + .number/count LDZ #01 ADD .number/count STZ @neralie-calc ( -- ) ( add up fractions of a pulse, store tenths in n6 ) #0120 #00 h MUL2 #00c0 #00 m MUL2 ADD2 #00f8 #00 s MUL2 ADD2 - #0271 #00 .fps/next PEK MUL2 #00 .fps/current PEK DIV2 #0008 MUL2 ADD2 - #01b0 ;modf JSR2 SWP2 #0017 MUL2 #03e8 DIV2 .neralie/n6 POK POP + #0271 #00 .fps/next LDZ MUL2 #00 .fps/current LDZ DIV2 #0008 MUL2 ADD2 + #01b0 ;modf JSR2 SWP2 #0017 MUL2 #03e8 DIV2 .neralie/n6 STZ POP ( add up units and tens of pulses, store in n5 and n4 ) #0042 #00 h MUL2 ADD2 #005e #00 m MUL2 ADD2 #000b #00 s MUL2 ADD2 - #000a ;modf JSR2 SWP2 .neralie/n5 POK POP - #000a ;modf JSR2 SWP2 .neralie/n4 POK POP + #000a ;modf JSR2 SWP2 .neralie/n5 STZ POP + #000a ;modf JSR2 SWP2 .neralie/n4 STZ POP ( add up hundreds of pulses + 10 x beats, store in n0123 ) #01a0 #00 h MUL2 ADD2 - #0006 #00 m MUL2 ADD2 .neralie/n0123 POK2 + #0006 #00 m MUL2 ADD2 .neralie/n0123 STZ2 JMP2r @@ -98,14 +98,14 @@ @neralie-text ( -- ) .Screen/width DEI2 #0002 DIV2 #0004 SUB2 .Screen/x DEO2 - .neralie/n0123 PEK2 + .neralie/n0123 LDZ2 #03e8 ;modf JSR2 ,digit JSR #0064 ;modf JSR2 ,digit JSR #000a ;modf JSR2 ,digit JSR #000b ,digit JSR ( the colon ) ,digit JSR - #00 .neralie/n4 PEK ,digit JSR - #00 .neralie/n5 PEK ,digit JSR + #00 .neralie/n4 LDZ ,digit JSR + #00 .neralie/n5 LDZ ,digit JSR JMP2r @letter ( index* -- ) @@ -115,24 +115,24 @@ @digit ( index* -- ) #0008 MUL2 ;font-numbers ADD2 .Screen/addr DEO2 &middle - .neralie/color PEK #20 ADD .Screen/color DEO + .neralie/color LDZ #20 ADD .Screen/color DEO .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 JMP2r @neralie-lines ( -- ) - .lines/x2 PEK2 .lines/x1 PEK2 DUP2 .neralie/x POK2 SUB2 .neralie/w POK2 - .lines/y2 PEK2 .lines/y1 PEK2 DUP2 .neralie/y POK2 SUB2 .neralie/h POK2 + .lines/x2 LDZ2 .lines/x1 LDZ2 DUP2 .neralie/x STZ2 SUB2 .neralie/w STZ2 + .lines/y2 LDZ2 .lines/y1 LDZ2 DUP2 .neralie/y STZ2 SUB2 .neralie/h STZ2 - ;neralie/n4 SWP POP .neralie/n0123 PEK2 + ;neralie/n4 SWP POP .neralie/n0123 LDZ2 DUP2 ;&h JSR2 - ;&next JSR2 #0001 .Screen/x DEO2 .neralie/y PEK2 #0003 SUB2 .Screen/y DEO2 ,digit JSR + ;&next JSR2 #0001 .Screen/x DEO2 .neralie/y LDZ2 #0003 SUB2 .Screen/y DEO2 ,digit JSR DUP2 ;&v JSR2 #04 ;v/spacing STA - .lines/y1 PEK2 #0003 SUB2 .neralie/y PEK2 .neralie/x PEK2 ;v JSR2 + .lines/y1 LDZ2 #0003 SUB2 .neralie/y LDZ2 .neralie/x LDZ2 ;v JSR2 #01 ;v/spacing STA - ,&next JSR #0001 .Screen/y DEO2 .neralie/x PEK2 #0003 SUB2 .Screen/x DEO2 ;digit JSR2 + ,&next JSR #0001 .Screen/y DEO2 .neralie/x LDZ2 #0003 SUB2 .Screen/x DEO2 ;digit JSR2 DUP2 ,&h JSR - ,&next JSR .Screen/width DEI2 #0009 SUB2 .Screen/x DEO2 .neralie/y PEK2 #0003 SUB2 .Screen/y DEO2 ;digit JSR2 + ,&next JSR .Screen/width DEI2 #0009 SUB2 .Screen/x DEO2 .neralie/y LDZ2 #0003 SUB2 .Screen/y DEO2 ;digit JSR2 DUP2 ,&v JSR ,&next JSR POP2 DUP2 ,&h JSR @@ -144,25 +144,25 @@ &next ( digit-addr number* -- next-digit-addr next-number* prev-digit* ) #03e8 ;modf JSR2 STH2 #000a MUL2 ROT DUP STH #01 ADD ROT ROT - #00 STHr PEK ADD2 + #00 STHr LDZ ADD2 STH2r JMP2r &h ( number* -- ) ,scale JSR - .neralie/h PEK2 ;mul2hi JSR2 + .neralie/h LDZ2 ;mul2hi JSR2 DUP2 #0000 NEQ2 #02 JCN POP2 JMP2r - DUP2 .neralie/y PEK2 ADD2 .neralie/y POK2 - .neralie/h PEK2 SWP2 SUB2 .neralie/h POK2 - .neralie/x PEK2 DUP2 .neralie/w PEK2 ADD2 .neralie/y PEK2 ,h JMP + DUP2 .neralie/y LDZ2 ADD2 .neralie/y STZ2 + .neralie/h LDZ2 SWP2 SUB2 .neralie/h STZ2 + .neralie/x LDZ2 DUP2 .neralie/w LDZ2 ADD2 .neralie/y LDZ2 ,h JMP &v ( number* -- ) ,scale JSR - .neralie/w PEK2 ;mul2hi JSR2 + .neralie/w LDZ2 ;mul2hi JSR2 DUP2 #0000 NEQ2 #02 JCN POP2 JMP2r - DUP2 .neralie/x PEK2 ADD2 .neralie/x POK2 - .neralie/w PEK2 SWP2 SUB2 .neralie/w POK2 - .neralie/y PEK2 DUP2 .neralie/h PEK2 ADD2 .neralie/x PEK2 ,v JMP + DUP2 .neralie/x LDZ2 ADD2 .neralie/x STZ2 + .neralie/w LDZ2 SWP2 SUB2 .neralie/w STZ2 + .neralie/y LDZ2 DUP2 .neralie/h LDZ2 ADD2 .neralie/x LDZ2 ,v JMP @scale ( 0..10000* -- 0..65535* ) DUP2 #8db8 ;mul2hi JSR2 @@ -171,12 +171,12 @@ @h ( x1* x2* y* -- ) .Screen/y DEO2 - .Screen/x .lines/addr POK + .Screen/x .lines/addr STZ ,v/draw-line JMP @v ( y1* y2* x* -- ) .Screen/x DEO2 - .Screen/y .lines/addr POK + .Screen/y .lines/addr STZ &draw-line ( v1* v2* -- ) OVR2 OVR2 LTH2 #01 JCN SWP2 @@ -189,20 +189,20 @@ JMP2r &keep-going - DUP2 .lines/addr PEK DEO2 - .neralie/color PEK .Screen/color DEO + DUP2 .lines/addr LDZ DEO2 + .neralie/color LDZ .Screen/color DEO ,&loop JMP @update-fps ( -- ) - .fps/next PEK #01 ADD .fps/next POK - s .fps/second PEK NEQ JMP JMP2r - s .fps/second POK - .fps/next PEK .fps/current POK + .fps/next LDZ #01 ADD .fps/next STZ + s .fps/second LDZ NEQ JMP JMP2r + s .fps/second STZ + .fps/next LDZ .fps/current STZ ( ~fps.next ^print-byte-decimal JSR ,strings-fps ^print-string JSR ) - #00 .fps/next POK + #00 .fps/next STZ JMP2r @modf ( dividend* divisor* -- remainder* quotient* ) @@ -229,12 +229,12 @@ ;mul/bhi STA2 ;mul/ahi STA2 #00 #00 - #00 .mul/alo PEK #00 .mul/blo PEK MUL2 + #00 .mul/alo LDZ #00 .mul/blo LDZ MUL2 POP - #00 .mul/ahi PEK #00 .mul/blo PEK MUL2 ,&adc JSR - #00 .mul/alo PEK #00 .mul/bhi PEK MUL2 ,&adc JSR + #00 .mul/ahi LDZ #00 .mul/blo LDZ MUL2 ,&adc JSR + #00 .mul/alo LDZ #00 .mul/bhi LDZ MUL2 ,&adc JSR POP - #00 .mul/ahi PEK #00 .mul/bhi PEK MUL2 ADD2 + #00 .mul/ahi LDZ #00 .mul/bhi LDZ MUL2 ADD2 JMP2r &adc ( 31..24 a* b* -- 31..24 sum* ) diff --git a/projects/software/noodle.usm b/projects/software/noodle.usm @@ -25,7 +25,7 @@ %2/ { #0001 SFT2 } %8/ { #0003 SFT2 } %8* { #0030 SFT2 } %8+ { #0008 ADD2 } -%FILESIZE { .canvas/w PEK2 .canvas/h PEK2 MUL2 #0008 MUL2 } +%FILESIZE { .canvas/w LDZ2 .canvas/h LDZ2 MUL2 #0008 MUL2 } ( devices ) @@ -66,28 +66,28 @@ |0100 ( theme ) - #e0fa .theme/r0 POK2 #30fa .theme/g0 POK2 #30fa .theme/b0 POK2 ( normal mode ) - #00fe .theme/r1 POK2 #00f3 .theme/g1 POK2 #00f3 .theme/b1 POK2 ( presentation mode ) + #e0fa .theme/r0 STZ2 #30fa .theme/g0 STZ2 #30fa .theme/b0 STZ2 ( normal mode ) + #00fe .theme/r1 STZ2 #00f3 .theme/g1 STZ2 #00f3 .theme/b1 STZ2 ( presentation mode ) ( vectors ) ;on-screen .Screen/vector DEO2 ( vectors ) ;on-button .Controller/vector DEO2 ( vectors ) ;on-mouse .Mouse/vector DEO2 - .theme/r0 PEK2 .System/r DEO2 .theme/g0 PEK2 .System/g DEO2 .theme/b0 PEK2 .System/b DEO2 + .theme/r0 LDZ2 .System/r DEO2 .theme/g0 LDZ2 .System/g DEO2 .theme/b0 LDZ2 .System/b DEO2 ( default canvas ) - #002a .canvas/w POK2 #0018 .canvas/h POK2 + #002a .canvas/w STZ2 #0018 .canvas/h STZ2 ( default brush ) - #04 .brush/size POK #00 .brush/patt POK #00 .brush/tool POK + #04 .brush/size STZ #00 .brush/patt STZ #00 .brush/tool STZ ( load file ) ;untitled_txt ;path/name ;strcpy JSR2 ( setup panes ) - #0010 .toolpane/x1 POK2 #0010 .toolpane/y1 POK2 .toolpane/x1 PEK2 #0028 ADD2 .toolpane/x2 POK2 .toolpane/y1 PEK2 #0008 ADD2 .toolpane/y2 POK2 - #0040 .sizepane/x1 POK2 #0010 .sizepane/y1 POK2 .sizepane/x1 PEK2 #0040 ADD2 .sizepane/x2 POK2 .sizepane/y1 PEK2 #0008 ADD2 .sizepane/y2 POK2 - .Screen/width DEI2 #0078 SUB2 .viewpane/x1 POK2 #0010 .viewpane/y1 POK2 .viewpane/x1 PEK2 #0020 ADD2 .viewpane/x2 POK2 .viewpane/y1 PEK2 #0008 ADD2 .viewpane/y2 POK2 - .Screen/width DEI2 #0050 SUB2 .pattpane/x1 POK2 #0010 .pattpane/y1 POK2 .pattpane/x1 PEK2 #0040 ADD2 .pattpane/x2 POK2 .pattpane/y1 PEK2 #0008 ADD2 .pattpane/y2 POK2 + #0010 .toolpane/x1 STZ2 #0010 .toolpane/y1 STZ2 .toolpane/x1 LDZ2 #0028 ADD2 .toolpane/x2 STZ2 .toolpane/y1 LDZ2 #0008 ADD2 .toolpane/y2 STZ2 + #0040 .sizepane/x1 STZ2 #0010 .sizepane/y1 STZ2 .sizepane/x1 LDZ2 #0040 ADD2 .sizepane/x2 STZ2 .sizepane/y1 LDZ2 #0008 ADD2 .sizepane/y2 STZ2 + .Screen/width DEI2 #0078 SUB2 .viewpane/x1 STZ2 #0010 .viewpane/y1 STZ2 .viewpane/x1 LDZ2 #0020 ADD2 .viewpane/x2 STZ2 .viewpane/y1 LDZ2 #0008 ADD2 .viewpane/y2 STZ2 + .Screen/width DEI2 #0050 SUB2 .pattpane/x1 STZ2 #0010 .pattpane/y1 STZ2 .pattpane/x1 LDZ2 #0040 ADD2 .pattpane/x2 STZ2 .pattpane/y1 LDZ2 #0008 ADD2 .pattpane/y2 STZ2 ( ready. ) ;center JSR2 @@ -100,15 +100,15 @@ BRK @on-screen ( -> ) - .document/edit PEK #01 NEQ ,&no-edit JCN + .document/edit LDZ #01 NEQ ,&no-edit JCN #0008 .Screen/x DEO2 .Screen/height DEI2 #0010 SUB2 .Screen/y DEO2 - ;path/name #01 .timer PEK #04 DIV #03 AND #03 MUL ADD ;draw-label JSR2 + ;path/name #01 .timer LDZ #04 DIV #03 AND #03 MUL ADD ;draw-label JSR2 &clear #20 .Screen/color DEO .Screen/x DEI2 8+ DUP2 .Screen/x DEO2 .Screen/width DEI2 LTH2 ,&clear JCN - ( blink ) .timer PEK #01 ADD .timer POK + ( blink ) .timer LDZ #01 ADD .timer STZ &no-edit BRK @@ -118,32 +118,32 @@ BRK ;draw-cursor JSR2 ( release drag ) - .Mouse/state DEI #00 EQU .brush/drag PEK #01 EQU #0101 NEQ2 ,&no-release JCN - .origin/x1 PEK2 #0002 SUB2 .origin/y1 PEK2 #0002 SUB2 .origin/x2 PEK2 #0002 ADD2 .origin/y2 PEK2 #0002 ADD2 #00 ;fill-rect JSR2 - .canvas/x1 PEK2 -- .canvas/y1 PEK2 -- .canvas/x2 PEK2 .canvas/y2 PEK2 #10 ;line-rect JSR2 + .Mouse/state DEI #00 EQU .brush/drag LDZ #01 EQU #0101 NEQ2 ,&no-release JCN + .origin/x1 LDZ2 #0002 SUB2 .origin/y1 LDZ2 #0002 SUB2 .origin/x2 LDZ2 #0002 ADD2 .origin/y2 LDZ2 #0002 ADD2 #00 ;fill-rect JSR2 + .canvas/x1 LDZ2 -- .canvas/y1 LDZ2 -- .canvas/x2 LDZ2 .canvas/y2 LDZ2 #10 ;line-rect JSR2 ;draw-background JSR2 ;fit-canvas JSR2 ;draw-foreground JSR2 - #00 .brush/drag POK + #00 .brush/drag STZ &no-release ( operations on release line/rect ) - .Mouse/state DEI .brush/last PEK EQU ;&no-touch-change JCN2 - .Mouse/x DEI2 CLN2r .canvas/x1 PEK2 GTS2 STH2r .canvas/x2 PEK2 LTS2 #0101 NEQ2 ;&no-touch-change JCN2 - .Mouse/y DEI2 CLN2r .canvas/y1 PEK2 GTS2 STH2r .canvas/y2 PEK2 LTS2 #0101 NEQ2 ;&no-touch-change JCN2 + .Mouse/state DEI .brush/last LDZ EQU ;&no-touch-change JCN2 + .Mouse/x DEI2 CLN2r .canvas/x1 LDZ2 GTS2 STH2r .canvas/x2 LDZ2 LTS2 #0101 NEQ2 ;&no-touch-change JCN2 + .Mouse/y DEI2 CLN2r .canvas/y1 LDZ2 GTS2 STH2r .canvas/y2 LDZ2 LTS2 #0101 NEQ2 ;&no-touch-change JCN2 .Mouse/state DEI #00 EQU ,&no-touch-ondown JCN ( on down ) - .Mouse/x DEI2 .cursor/dx POK2 - .Mouse/y DEI2 .cursor/dy POK2 + .Mouse/x DEI2 .cursor/dx STZ2 + .Mouse/y DEI2 .cursor/dy STZ2 &no-touch-ondown .Mouse/state DEI #00 NEQ ,&no-touch-onup JCN ( on up ) - .brush/tool PEK #02 NEQ ,&no-touch-line JCN - .cursor/dx PEK2 .canvas/x1 PEK2 SUB2 .cursor/dy PEK2 .canvas/y1 PEK2 SUB2 .Mouse/x DEI2 .canvas/x1 PEK2 SUB2 .Mouse/y DEI2 .canvas/y1 PEK2 SUB2 ;paint-line JSR2 + .brush/tool LDZ #02 NEQ ,&no-touch-line JCN + .cursor/dx LDZ2 .canvas/x1 LDZ2 SUB2 .cursor/dy LDZ2 .canvas/y1 LDZ2 SUB2 .Mouse/x DEI2 .canvas/x1 LDZ2 SUB2 .Mouse/y DEI2 .canvas/y1 LDZ2 SUB2 ;paint-line JSR2 ;&touch-end JMP2 &no-touch-line - .brush/tool PEK #03 NEQ ,&no-touch-rect JCN - .cursor/dx PEK2 .canvas/x1 PEK2 SUB2 .cursor/dy PEK2 .canvas/y1 PEK2 SUB2 .Mouse/x DEI2 .canvas/x1 PEK2 SUB2 .Mouse/y DEI2 .canvas/y1 PEK2 SUB2 ;paint-rect JSR2 + .brush/tool LDZ #03 NEQ ,&no-touch-rect JCN + .cursor/dx LDZ2 .canvas/x1 LDZ2 SUB2 .cursor/dy LDZ2 .canvas/y1 LDZ2 SUB2 .Mouse/x DEI2 .canvas/x1 LDZ2 SUB2 .Mouse/y DEI2 .canvas/y1 LDZ2 SUB2 ;paint-rect JSR2 ;&touch-end JMP2 &no-touch-rect &no-touch-onup @@ -153,69 +153,69 @@ BRK ( drag ) .Controller/button DEI #02 NEQ ;&no-drag JCN2 - .brush/drag PEK #00 NEQ ,&no-drag-start JCN - .canvas/x1 PEK2 .origin/x1 POK2 - .canvas/y1 PEK2 .origin/y1 POK2 - .canvas/x2 PEK2 .origin/x2 POK2 - .canvas/y2 PEK2 .origin/y2 POK2 + .brush/drag LDZ #00 NEQ ,&no-drag-start JCN + .canvas/x1 LDZ2 .origin/x1 STZ2 + .canvas/y1 LDZ2 .origin/y1 STZ2 + .canvas/x2 LDZ2 .origin/x2 STZ2 + .canvas/y2 LDZ2 .origin/y2 STZ2 &no-drag-start - .canvas/x1 PEK2 -- .canvas/y1 PEK2 -- .canvas/x2 PEK2 .canvas/y2 PEK2 #10 ;line-rect JSR2 - .canvas/x1 PEK2 .Mouse/x DEI2 .cursor/x0 PEK2 SUB2 ADD2 .canvas/x1 POK2 - .canvas/y1 PEK2 .Mouse/y DEI2 .cursor/y0 PEK2 SUB2 ADD2 .canvas/y1 POK2 - .canvas/w PEK2 8* .canvas/x1 PEK2 ADD2 .canvas/x2 POK2 - .canvas/h PEK2 8* .canvas/y1 PEK2 ADD2 .canvas/y2 POK2 - .canvas/x1 PEK2 -- .canvas/y1 PEK2 -- .canvas/x2 PEK2 .canvas/y2 PEK2 #13 ;line-rect JSR2 - #01 .brush/drag POK + .canvas/x1 LDZ2 -- .canvas/y1 LDZ2 -- .canvas/x2 LDZ2 .canvas/y2 LDZ2 #10 ;line-rect JSR2 + .canvas/x1 LDZ2 .Mouse/x DEI2 .cursor/x0 LDZ2 SUB2 ADD2 .canvas/x1 STZ2 + .canvas/y1 LDZ2 .Mouse/y DEI2 .cursor/y0 LDZ2 SUB2 ADD2 .canvas/y1 STZ2 + .canvas/w LDZ2 8* .canvas/x1 LDZ2 ADD2 .canvas/x2 STZ2 + .canvas/h LDZ2 8* .canvas/y1 LDZ2 ADD2 .canvas/y2 STZ2 + .canvas/x1 LDZ2 -- .canvas/y1 LDZ2 -- .canvas/x2 LDZ2 .canvas/y2 LDZ2 #13 ;line-rect JSR2 + #01 .brush/drag STZ ;&touch-end JMP2 &no-drag ( in sizepane ) - .Mouse/x DEI2 CLN2r .sizepane/x1 PEK2 GTH2 STH2r .sizepane/x2 PEK2 LTH2 #0101 NEQ2 ,&no-touch-sizepane JCN - .Mouse/y DEI2 CLN2r .sizepane/y1 PEK2 GTH2 STH2r .sizepane/y2 PEK2 LTH2 #0101 NEQ2 ,&no-touch-sizepane JCN + .Mouse/x DEI2 CLN2r .sizepane/x1 LDZ2 GTH2 STH2r .sizepane/x2 LDZ2 LTH2 #0101 NEQ2 ,&no-touch-sizepane JCN + .Mouse/y DEI2 CLN2r .sizepane/y1 LDZ2 GTH2 STH2r .sizepane/y2 LDZ2 LTH2 #0101 NEQ2 ,&no-touch-sizepane JCN ( release ) #00 .Mouse/state DEO - #01 .brush/tool POK - .Mouse/x DEI2 .sizepane/x1 PEK2 SUB2 8/ SWP POP .brush/size POK + #01 .brush/tool STZ + .Mouse/x DEI2 .sizepane/x1 LDZ2 SUB2 8/ SWP POP .brush/size STZ ( draw ) ;draw-sizepane JSR2 ( draw ) ;draw-toolpane JSR2 ;&touch-end JMP2 &no-touch-sizepane ( in pattpane ) - .Mouse/x DEI2 CLN2r .pattpane/x1 PEK2 GTH2 STH2r .pattpane/x2 PEK2 LTH2 #0101 NEQ2 ,&no-touch-pattpane JCN - .Mouse/y DEI2 CLN2r .pattpane/y1 PEK2 GTH2 STH2r .pattpane/y2 PEK2 LTH2 #0101 NEQ2 ,&no-touch-pattpane JCN + .Mouse/x DEI2 CLN2r .pattpane/x1 LDZ2 GTH2 STH2r .pattpane/x2 LDZ2 LTH2 #0101 NEQ2 ,&no-touch-pattpane JCN + .Mouse/y DEI2 CLN2r .pattpane/y1 LDZ2 GTH2 STH2r .pattpane/y2 LDZ2 LTH2 #0101 NEQ2 ,&no-touch-pattpane JCN ( release ) #00 .Mouse/state DEO - .Mouse/x DEI2 .pattpane/x1 PEK2 SUB2 8/ SWP POP .brush/patt POK + .Mouse/x DEI2 .pattpane/x1 LDZ2 SUB2 8/ SWP POP .brush/patt STZ ( draw ) ;draw-pattpane JSR2 ;&touch-end JMP2 &no-touch-pattpane ( in toolpane ) - .Mouse/x DEI2 CLN2r .toolpane/x1 PEK2 GTH2 STH2r .toolpane/x2 PEK2 LTH2 #0101 NEQ2 ,&no-touch-toolpane JCN - .Mouse/y DEI2 CLN2r .toolpane/y1 PEK2 GTH2 STH2r .toolpane/y2 PEK2 LTH2 #0101 NEQ2 ,&no-touch-toolpane JCN + .Mouse/x DEI2 CLN2r .toolpane/x1 LDZ2 GTH2 STH2r .toolpane/x2 LDZ2 LTH2 #0101 NEQ2 ,&no-touch-toolpane JCN + .Mouse/y DEI2 CLN2r .toolpane/y1 LDZ2 GTH2 STH2r .toolpane/y2 LDZ2 LTH2 #0101 NEQ2 ,&no-touch-toolpane JCN ( release ) #00 .Mouse/state DEO - .Mouse/x DEI2 .toolpane/x1 PEK2 SUB2 8/ SWP POP .brush/tool POK + .Mouse/x DEI2 .toolpane/x1 LDZ2 SUB2 8/ SWP POP .brush/tool STZ ( draw ) ;draw-toolpane JSR2 ;&touch-end JMP2 &no-touch-toolpane ( in viewpane ) - .Mouse/x DEI2 CLN2r .viewpane/x1 PEK2 GTH2 STH2r .viewpane/x2 PEK2 LTH2 #0101 NEQ2 ;&no-touch-viewpane JCN2 - .Mouse/y DEI2 CLN2r .viewpane/y1 PEK2 GTH2 STH2r .viewpane/y2 PEK2 LTH2 #0101 NEQ2 ;&no-touch-viewpane JCN2 + .Mouse/x DEI2 CLN2r .viewpane/x1 LDZ2 GTH2 STH2r .viewpane/x2 LDZ2 LTH2 #0101 NEQ2 ;&no-touch-viewpane JCN2 + .Mouse/y DEI2 CLN2r .viewpane/y1 LDZ2 GTH2 STH2r .viewpane/y2 LDZ2 LTH2 #0101 NEQ2 ;&no-touch-viewpane JCN2 ( release ) #00 .Mouse/state DEO - ( clear ) .canvas/x1 PEK2 #0002 SUB2 .canvas/y1 PEK2 #0002 SUB2 .canvas/x2 PEK2 #0002 ADD2 .canvas/y2 PEK2 #0002 ADD2 #00 ;fill-rect JSR2 + ( clear ) .canvas/x1 LDZ2 #0002 SUB2 .canvas/y1 LDZ2 #0002 SUB2 .canvas/x2 LDZ2 #0002 ADD2 .canvas/y2 LDZ2 #0002 ADD2 #00 ;fill-rect JSR2 ;draw-background JSR2 - .Mouse/x DEI2 .viewpane/x1 PEK2 SUB2 8/ SWP POP + .Mouse/x DEI2 .viewpane/x1 LDZ2 SUB2 8/ SWP POP DUP #00 NEQ ,&no-incwidth JCN - .canvas/w PEK2 ++ .canvas/w POK2 + .canvas/w LDZ2 ++ .canvas/w STZ2 &no-incwidth DUP #01 NEQ ,&no-decwidth JCN - .canvas/w PEK2 -- .canvas/w POK2 + .canvas/w LDZ2 -- .canvas/w STZ2 &no-decwidth DUP #02 NEQ ,&no-incheight JCN - .canvas/h PEK2 ++ .canvas/h POK2 + .canvas/h LDZ2 ++ .canvas/h STZ2 &no-incheight DUP #03 NEQ ,&no-decheight JCN - .canvas/h PEK2 -- .canvas/h POK2 + .canvas/h LDZ2 -- .canvas/h STZ2 &no-decheight POP ;fit-canvas JSR2 @@ -224,27 +224,27 @@ BRK &no-touch-viewpane ( in canvas ) - .Mouse/x DEI2 CLN2r .canvas/x1 PEK2 GTS2 STH2r .canvas/x2 PEK2 LTS2 #0101 NEQ2 ;&no-touch-canvas JCN2 - .Mouse/y DEI2 CLN2r .canvas/y1 PEK2 GTS2 STH2r .canvas/y2 PEK2 LTS2 #0101 NEQ2 ;&no-touch-canvas JCN2 + .Mouse/x DEI2 CLN2r .canvas/x1 LDZ2 GTS2 STH2r .canvas/x2 LDZ2 LTS2 #0101 NEQ2 ;&no-touch-canvas JCN2 + .Mouse/y DEI2 CLN2r .canvas/y1 LDZ2 GTS2 STH2r .canvas/y2 LDZ2 LTS2 #0101 NEQ2 ;&no-touch-canvas JCN2 ( set cursor operation ) - ;add-pixel .Mouse/state DEI #01 EQU ;&no-oper JCN2 POP2 ;remove-pixel &no-oper .brush/oper POK2 + ;add-pixel .Mouse/state DEI #01 EQU ;&no-oper JCN2 POP2 ;remove-pixel &no-oper .brush/oper STZ2 - .brush/tool PEK #00 NEQ ,&no-touch-pen JCN - .cursor/x0 PEK2 .canvas/x1 PEK2 SUB2 .cursor/y0 PEK2 .canvas/y1 PEK2 SUB2 .Mouse/x DEI2 .canvas/x1 PEK2 SUB2 .Mouse/y DEI2 .canvas/y1 PEK2 SUB2 ;paint-line JSR2 + .brush/tool LDZ #00 NEQ ,&no-touch-pen JCN + .cursor/x0 LDZ2 .canvas/x1 LDZ2 SUB2 .cursor/y0 LDZ2 .canvas/y1 LDZ2 SUB2 .Mouse/x DEI2 .canvas/x1 LDZ2 SUB2 .Mouse/y DEI2 .canvas/y1 LDZ2 SUB2 ;paint-line JSR2 ;&touch-end JMP2 &no-touch-pen - .brush/tool PEK #01 NEQ ,&no-touch-brush JCN - .Mouse/x DEI2 .canvas/x1 PEK2 SUB2 .Mouse/y DEI2 .canvas/y1 PEK2 SUB2 ;paint-brush JSR2 + .brush/tool LDZ #01 NEQ ,&no-touch-brush JCN + .Mouse/x DEI2 .canvas/x1 LDZ2 SUB2 .Mouse/y DEI2 .canvas/y1 LDZ2 SUB2 ;paint-brush JSR2 ;&touch-end JMP2 &no-touch-brush - .brush/tool PEK #04 NEQ ,&no-touch-zoom JCN - .zoom/active PEK #00 EQU .zoom/active POK + .brush/tool LDZ #04 NEQ ,&no-touch-zoom JCN + .zoom/active LDZ #00 EQU .zoom/active STZ ( release ) #00 .Mouse/state DEO - .Mouse/x DEI2 .canvas/x1 PEK2 SUB2 .canvas/w PEK2 2/ SUB2 .zoom/x POK2 - .Mouse/y DEI2 .canvas/y1 PEK2 SUB2 .canvas/h PEK2 2/ SUB2 .zoom/y POK2 + .Mouse/x DEI2 .canvas/x1 LDZ2 SUB2 .canvas/w LDZ2 2/ SUB2 .zoom/x STZ2 + .Mouse/y DEI2 .canvas/y1 LDZ2 SUB2 .canvas/h LDZ2 2/ SUB2 .zoom/y STZ2 ;redraw JSR2 ;&touch-end JMP2 &no-touch-zoom @@ -260,7 +260,7 @@ BRK &no-eye-button DUP #01 NEQ ,&no-rename-button JCN ;rename JSR2 - #01 .document/edit POK + #01 .document/edit STZ ( release ) #00 .Mouse/state DEO &no-rename-button DUP #02 NEQ ,&no-load-button JCN @@ -280,71 +280,71 @@ BRK &no-touch - .Mouse/x DEI2 .cursor/x0 POK2 - .Mouse/y DEI2 .cursor/y0 POK2 - .Mouse/state DEI .brush/last POK + .Mouse/x DEI2 .cursor/x0 STZ2 + .Mouse/y DEI2 .cursor/y0 STZ2 + .Mouse/state DEI .brush/last STZ BRK @on-button ( -> ) ( if in renaming mode ) - .document/edit PEK #01 NEQ ;&no-edit JCN2 + .document/edit LDZ #01 NEQ ;&no-edit JCN2 .Controller/key DEI #00 EQU ;&no-edit JCN2 ( enter ) .Controller/key DEI #0d NEQ ,&no-edit-enter JCN - #00 .document/edit POK + #00 .document/edit STZ ;redraw JSR2 BRK &no-edit-enter ( backspace ) .Controller/key DEI #08 NEQ ,&no-edit-backspace JCN - .path/length PEK #00 EQU ,&edit-end JCN - .path/length PEK #01 SUB .path/length POK - #00 ;path/name #00 .path/length PEK ADD2 STA + .path/length LDZ #00 EQU ,&edit-end JCN + .path/length LDZ #01 SUB .path/length STZ + #00 ;path/name #00 .path/length LDZ ADD2 STA BRK &no-edit-backspace ( default ) - .path/length PEK #1f EQU ,&edit-end JCN - .Controller/key DEI ;path/name #00 .path/length PEK ADD2 STA - .path/length PEK #01 ADD .path/length POK + .path/length LDZ #1f EQU ,&edit-end JCN + .Controller/key DEI ;path/name #00 .path/length LDZ ADD2 STA + .path/length LDZ #01 ADD .path/length STZ &edit-end - #00 ;path/name #00 .path/length PEK ADD2 STA + #00 ;path/name #00 .path/length LDZ ADD2 STA BRK &no-edit ( control zoom ) - .zoom/active PEK #00 EQU ,&skip-zoom JCN + .zoom/active LDZ #00 EQU ,&skip-zoom JCN .Controller/button DEI #f0 AND DUP #04 SFT #01 AND #01 NEQ ,&no-up JCN - ( move ) .zoom/y PEK2 -- .zoom/y POK2 &no-up + ( move ) .zoom/y LDZ2 -- .zoom/y STZ2 &no-up DUP #05 SFT #01 AND #01 NEQ ,&no-down JCN - ( move ) .zoom/y PEK2 ++ .zoom/y POK2 &no-down + ( move ) .zoom/y LDZ2 ++ .zoom/y STZ2 &no-down DUP #06 SFT #01 AND #01 NEQ ,&no-left JCN - ( move ) .zoom/x PEK2 -- .zoom/x POK2 &no-left + ( move ) .zoom/x LDZ2 -- .zoom/x STZ2 &no-left DUP #07 SFT #01 AND #01 NEQ ,&no-right JCN - ( move ) .zoom/x PEK2 ++ .zoom/x POK2 &no-right + ( move ) .zoom/x LDZ2 ++ .zoom/x STZ2 &no-right #00 EQU #04 JCN ;draw-canvas JSR2 &skip-zoom .Controller/key DEI DUP #20 NEQ ,&no-space JCN - ( toggle zoom ) .zoom/active PEK #00 EQU .zoom/active POK ;redraw JSR2 &no-space + ( toggle zoom ) .zoom/active LDZ #00 EQU .zoom/active STZ ;redraw JSR2 &no-space DUP #08 NEQ ,&no-backspace JCN ( erase ) ;clear JSR2 &no-backspace DUP #71 NEQ ,&no-qkey JCN - ( tool0 ) #00 .brush/tool POK ;draw-toolpane JSR2 &no-qkey + ( tool0 ) #00 .brush/tool STZ ;draw-toolpane JSR2 &no-qkey DUP #77 NEQ ,&no-wkey JCN - ( tool0 ) #01 .brush/tool POK ;draw-toolpane JSR2 &no-wkey + ( tool0 ) #01 .brush/tool STZ ;draw-toolpane JSR2 &no-wkey DUP #65 NEQ ,&no-ekey JCN - ( tool0 ) #02 .brush/tool POK ;draw-toolpane JSR2 &no-ekey + ( tool0 ) #02 .brush/tool STZ ;draw-toolpane JSR2 &no-ekey DUP #72 NEQ ,&no-rkey JCN - ( tool0 ) #03 .brush/tool POK ;draw-toolpane JSR2 &no-rkey + ( tool0 ) #03 .brush/tool STZ ;draw-toolpane JSR2 &no-rkey DUP #74 NEQ ,&no-tkey JCN - ( tool0 ) #04 .brush/tool POK ;draw-toolpane JSR2 &no-tkey + ( tool0 ) #04 .brush/tool STZ ;draw-toolpane JSR2 &no-tkey DUP DUP #30 GTH SWP #39 LTH #0101 NEQ2 ,&no-numkey JCN - ( size ) .Controller/key DEI #31 SUB .brush/size POK ;draw-sizepane JSR2 &no-numkey + ( size ) .Controller/key DEI #31 SUB .brush/size STZ ;draw-sizepane JSR2 &no-numkey POP BRK @@ -352,12 +352,12 @@ BRK @center ( -- ) ( clear old ) - .canvas/x1 PEK2 #0002 SUB2 .canvas/y1 PEK2 #0002 SUB2 .canvas/x2 PEK2 #0002 ADD2 .canvas/y2 PEK2 #0002 ADD2 #00 ;fill-rect JSR2 + .canvas/x1 LDZ2 #0002 SUB2 .canvas/y1 LDZ2 #0002 SUB2 .canvas/x2 LDZ2 #0002 ADD2 .canvas/y2 LDZ2 #0002 ADD2 #00 ;fill-rect JSR2 ;draw-background JSR2 - .Screen/width DEI2 #0002 DIV2 .canvas/w PEK2 8* 2/ SUB2 .canvas/x1 POK2 - .Screen/height DEI2 #0002 DIV2 .canvas/h PEK2 8* 2/ SUB2 .canvas/y1 POK2 + .Screen/width DEI2 #0002 DIV2 .canvas/w LDZ2 8* 2/ SUB2 .canvas/x1 STZ2 + .Screen/height DEI2 #0002 DIV2 .canvas/h LDZ2 8* 2/ SUB2 .canvas/y1 STZ2 ;fit-canvas JSR2 ;draw-foreground JSR2 @@ -367,7 +367,7 @@ RTN @rename ;untitled_txt ;path/name ;strcpy JSR2 - #00 .path/length POK + #00 .path/length STZ RTN @@ -385,21 +385,21 @@ RTN @present - .document/presentation PEK #00 EQU .document/presentation POK + .document/presentation LDZ #00 EQU .document/presentation STZ - .document/presentation PEK + .document/presentation LDZ DUP #00 NEQ ,&skip0 JCN - .theme/r0 PEK2 .System/r DEO2 .theme/g0 PEK2 .System/g DEO2 .theme/b0 PEK2 .System/b DEO2 + .theme/r0 LDZ2 .System/r DEO2 .theme/g0 LDZ2 .System/g DEO2 .theme/b0 LDZ2 .System/b DEO2 &skip0 DUP #01 NEQ ,&skip1 JCN - .theme/r1 PEK2 .System/r DEO2 .theme/g1 PEK2 .System/g DEO2 .theme/b1 PEK2 .System/b DEO2 + .theme/r1 LDZ2 .System/r DEO2 .theme/g1 LDZ2 .System/g DEO2 .theme/b1 LDZ2 .System/b DEO2 &skip1 POP - .toolpane/x1 PEK2 #0002 SUB2 .toolpane/y1 PEK2 #0002 SUB2 .toolpane/x2 PEK2 ++ .toolpane/y2 PEK2 ++ #00 ;fill-rect JSR2 - .pattpane/x1 PEK2 #0002 SUB2 .pattpane/y1 PEK2 #0002 SUB2 .pattpane/x2 PEK2 ++ .pattpane/y2 PEK2 ++ #00 ;fill-rect JSR2 - .sizepane/x1 PEK2 #0002 SUB2 .sizepane/y1 PEK2 #0002 SUB2 .sizepane/x2 PEK2 ++ .sizepane/y2 PEK2 ++ #00 ;fill-rect JSR2 - .viewpane/x1 PEK2 #0002 SUB2 .viewpane/y1 PEK2 #0002 SUB2 .viewpane/x2 PEK2 ++ .viewpane/y2 PEK2 ++ #00 ;fill-rect JSR2 + .toolpane/x1 LDZ2 #0002 SUB2 .toolpane/y1 LDZ2 #0002 SUB2 .toolpane/x2 LDZ2 ++ .toolpane/y2 LDZ2 ++ #00 ;fill-rect JSR2 + .pattpane/x1 LDZ2 #0002 SUB2 .pattpane/y1 LDZ2 #0002 SUB2 .pattpane/x2 LDZ2 ++ .pattpane/y2 LDZ2 ++ #00 ;fill-rect JSR2 + .sizepane/x1 LDZ2 #0002 SUB2 .sizepane/y1 LDZ2 #0002 SUB2 .sizepane/x2 LDZ2 ++ .sizepane/y2 LDZ2 ++ #00 ;fill-rect JSR2 + .viewpane/x1 LDZ2 #0002 SUB2 .viewpane/y1 LDZ2 #0002 SUB2 .viewpane/x2 LDZ2 ++ .viewpane/y2 LDZ2 ++ #00 ;fill-rect JSR2 ( clear panes ) ;redraw JSR2 @@ -408,41 +408,41 @@ RTN @fit-canvas - .canvas/w PEK2 8* .canvas/x1 PEK2 ADD2 .canvas/x2 POK2 - .canvas/h PEK2 8* .canvas/y1 PEK2 ADD2 .canvas/y2 POK2 - .canvas/x1 PEK2 -- .canvas/y1 PEK2 -- .canvas/x2 PEK2 .canvas/y2 PEK2 #01 ;line-rect JSR2 + .canvas/w LDZ2 8* .canvas/x1 LDZ2 ADD2 .canvas/x2 STZ2 + .canvas/h LDZ2 8* .canvas/y1 LDZ2 ADD2 .canvas/y2 STZ2 + .canvas/x1 LDZ2 -- .canvas/y1 LDZ2 -- .canvas/x2 LDZ2 .canvas/y2 LDZ2 #01 ;line-rect JSR2 ;draw-canvas JSR2 RTN @paint-line ( x1 y1 x2 y2 -- ) - ( load ) .line/y1 POK2 .line/x1 POK2 .line/y2 POK2 .line/x2 POK2 + ( load ) .line/y1 STZ2 .line/x1 STZ2 .line/y2 STZ2 .line/x2 STZ2 ( trim if zoomed ) - .zoom/active PEK #01 NEQ ,&no-zoom JCN - .line/x1 PEK2 8/ .zoom/x PEK2 ADD2 .line/x1 POK2 - .line/y1 PEK2 8/ .zoom/y PEK2 ADD2 .line/y1 POK2 - .line/x2 PEK2 8/ .zoom/x PEK2 ADD2 .line/x2 POK2 - .line/y2 PEK2 8/ .zoom/y PEK2 ADD2 .line/y2 POK2 + .zoom/active LDZ #01 NEQ ,&no-zoom JCN + .line/x1 LDZ2 8/ .zoom/x LDZ2 ADD2 .line/x1 STZ2 + .line/y1 LDZ2 8/ .zoom/y LDZ2 ADD2 .line/y1 STZ2 + .line/x2 LDZ2 8/ .zoom/x LDZ2 ADD2 .line/x2 STZ2 + .line/y2 LDZ2 8/ .zoom/y LDZ2 ADD2 .line/y2 STZ2 &no-zoom - .line/x1 PEK2 .line/x2 PEK2 SUB2 ABS2 .line/dx POK2 - .line/y1 PEK2 .line/y2 PEK2 SUB2 ABS2 #0000 SWP2 SUB2 .line/dy POK2 - #ffff #00 .line/x2 PEK2 .line/x1 PEK2 LTS2 #0002 MUL2 ADD2 .line/sx POK2 - #ffff #00 .line/y2 PEK2 .line/y1 PEK2 LTS2 #0002 MUL2 ADD2 .line/sy POK2 - .line/dx PEK2 .line/dy PEK2 ADD2 .line/e1 POK2 + .line/x1 LDZ2 .line/x2 LDZ2 SUB2 ABS2 .line/dx STZ2 + .line/y1 LDZ2 .line/y2 LDZ2 SUB2 ABS2 #0000 SWP2 SUB2 .line/dy STZ2 + #ffff #00 .line/x2 LDZ2 .line/x1 LDZ2 LTS2 #0002 MUL2 ADD2 .line/sx STZ2 + #ffff #00 .line/y2 LDZ2 .line/y1 LDZ2 LTS2 #0002 MUL2 ADD2 .line/sy STZ2 + .line/dx LDZ2 .line/dy LDZ2 ADD2 .line/e1 STZ2 &loop - ( paint ) .line/x2 PEK2 .line/y2 PEK2 .brush/oper PEK2 JSR2 - .line/x2 PEK2 .line/x1 PEK2 EQU2 .line/y2 PEK2 .line/y1 PEK2 EQU2 #0101 EQU2 ,&end JCN - .line/e1 PEK2 #0002 MUL2 .line/e2 POK2 - .line/e2 PEK2 .line/dy PEK2 LTS2 ,&skipy JCN - .line/e1 PEK2 .line/dy PEK2 ADD2 .line/e1 POK2 - .line/x2 PEK2 .line/sx PEK2 ADD2 .line/x2 POK2 + ( paint ) .line/x2 LDZ2 .line/y2 LDZ2 .brush/oper LDZ2 JSR2 + .line/x2 LDZ2 .line/x1 LDZ2 EQU2 .line/y2 LDZ2 .line/y1 LDZ2 EQU2 #0101 EQU2 ,&end JCN + .line/e1 LDZ2 #0002 MUL2 .line/e2 STZ2 + .line/e2 LDZ2 .line/dy LDZ2 LTS2 ,&skipy JCN + .line/e1 LDZ2 .line/dy LDZ2 ADD2 .line/e1 STZ2 + .line/x2 LDZ2 .line/sx LDZ2 ADD2 .line/x2 STZ2 &skipy - .line/e2 PEK2 .line/dx PEK2 GTS2 ,&skipx JCN - .line/e1 PEK2 .line/dx PEK2 ADD2 .line/e1 POK2 - .line/y2 PEK2 .line/sy PEK2 ADD2 .line/y2 POK2 + .line/e2 LDZ2 .line/dx LDZ2 GTS2 ,&skipx JCN + .line/e1 LDZ2 .line/dx LDZ2 ADD2 .line/e1 STZ2 + .line/y2 LDZ2 .line/sy LDZ2 ADD2 .line/y2 STZ2 &skipx ;&loop JMP2 &end @@ -454,29 +454,29 @@ RTN @paint-rect ( x1 y1 x2 y2 -- ) - ( load ) .rect/y2 POK2 .rect/x2 POK2 .rect/y1 POK2 .rect/x1 POK2 + ( load ) .rect/y2 STZ2 .rect/x2 STZ2 .rect/y1 STZ2 .rect/x1 STZ2 ( trim if zoomed ) - .zoom/active PEK #01 NEQ ,&no-zoom JCN - .rect/x1 PEK2 8/ .zoom/x PEK2 ADD2 .rect/x1 POK2 - .rect/y1 PEK2 8/ .zoom/y PEK2 ADD2 .rect/y1 POK2 - .rect/x2 PEK2 8/ .zoom/x PEK2 ADD2 #0001 ADD2 .rect/x2 POK2 - .rect/y2 PEK2 8/ .zoom/y PEK2 ADD2 #0001 ADD2 .rect/y2 POK2 + .zoom/active LDZ #01 NEQ ,&no-zoom JCN + .rect/x1 LDZ2 8/ .zoom/x LDZ2 ADD2 .rect/x1 STZ2 + .rect/y1 LDZ2 8/ .zoom/y LDZ2 ADD2 .rect/y1 STZ2 + .rect/x2 LDZ2 8/ .zoom/x LDZ2 ADD2 #0001 ADD2 .rect/x2 STZ2 + .rect/y2 LDZ2 8/ .zoom/y LDZ2 ADD2 #0001 ADD2 .rect/y2 STZ2 &no-zoom - .rect/x1 PEK2 .pt2/x POK2 - .rect/y1 PEK2 .pt2/y POK2 + .rect/x1 LDZ2 .pt2/x STZ2 + .rect/y1 LDZ2 .pt2/y STZ2 &ver - .rect/x1 PEK2 .pt2/x POK2 + .rect/x1 LDZ2 .pt2/x STZ2 &hor - .pt2/x PEK2 SWP POP .px/x POK .pt2/y PEK2 SWP POP .px/y POK + .pt2/x LDZ2 SWP POP .px/x STZ .pt2/y LDZ2 SWP POP .px/y STZ ;patternize JSR2 #00 EQU ,&no-pixel JCN - ( draw ) .pt2/x PEK2 .pt2/y PEK2 .brush/oper PEK2 JSR2 &no-pixel - ( incr ) .pt2/x PEK2 ++ .pt2/x POK2 - .pt2/x PEK2 .rect/x2 PEK2 LTS2 ,&hor JCN - .pt2/y PEK2 ++ .pt2/y POK2 - .pt2/y PEK2 .rect/y2 PEK2 LTS2 ,&ver JCN + ( draw ) .pt2/x LDZ2 .pt2/y LDZ2 .brush/oper LDZ2 JSR2 &no-pixel + ( incr ) .pt2/x LDZ2 ++ .pt2/x STZ2 + .pt2/x LDZ2 .rect/x2 LDZ2 LTS2 ,&hor JCN + .pt2/y LDZ2 ++ .pt2/y STZ2 + .pt2/y LDZ2 .rect/y2 LDZ2 LTS2 ,&ver JCN ;draw-canvas JSR2 ;draw-foreground JSR2 @@ -485,27 +485,27 @@ RTN @paint-brush ( x y -- ) - #0003 SUB2 .pt0/y POK2 #0003 SUB2 .pt0/x POK2 ( cursor offset ) + #0003 SUB2 .pt0/y STZ2 #0003 SUB2 .pt0/x STZ2 ( cursor offset ) ( trim if zoomed ) - .zoom/active PEK #01 NEQ ,&no-zoom JCN - .pt0/x PEK2 8/ .zoom/x PEK2 ADD2 #0003 SUB2 .pt0/x POK2 - .pt0/y PEK2 8/ .zoom/y PEK2 ADD2 #0003 SUB2 .pt0/y POK2 + .zoom/active LDZ #01 NEQ ,&no-zoom JCN + .pt0/x LDZ2 8/ .zoom/x LDZ2 ADD2 #0003 SUB2 .pt0/x STZ2 + .pt0/y LDZ2 8/ .zoom/y LDZ2 ADD2 #0003 SUB2 .pt0/y STZ2 &no-zoom - #00 .px/x POK #00 .px/y POK + #00 .px/x STZ #00 .px/y STZ &ver - #00 .px/x POK + #00 .px/x STZ &hor - ( addr ) ;size_icns #00 .brush/size PEK 8* ADD2 - ( byte ) #00 .px/y PEK ADD2 LDA #07 .px/x PEK SUB SFT #01 AND + ( addr ) ;size_icns #00 .brush/size LDZ 8* ADD2 + ( byte ) #00 .px/y LDZ ADD2 LDA #07 .px/x LDZ SUB SFT #01 AND #00 EQU ,&no-pixel JCN ;patternize JSR2 #00 EQU ,&no-pixel JCN - .pt0/x PEK2 #00 .px/x PEK ADD2 .pt0/y PEK2 #00 .px/y PEK ADD2 .brush/oper PEK2 JSR2 &no-pixel - ( incr ) .px/x PEK #01 ADD .px/x POK - .px/x PEK #08 LTH ,&hor JCN - ( incr ) .px/y PEK #01 ADD .px/y POK - .px/y PEK #08 LTH ,&ver JCN + .pt0/x LDZ2 #00 .px/x LDZ ADD2 .pt0/y LDZ2 #00 .px/y LDZ ADD2 .brush/oper LDZ2 JSR2 &no-pixel + ( incr ) .px/x LDZ #01 ADD .px/x STZ + .px/x LDZ #08 LTH ,&hor JCN + ( incr ) .px/y LDZ #01 ADD .px/y STZ + .px/y LDZ #08 LTH ,&ver JCN ;draw-canvas JSR2 ;draw-foreground JSR2 @@ -514,38 +514,38 @@ RTN @patternize ( -- ) - .brush/patt PEK #00 NEQ ,&noplain JCN + .brush/patt LDZ #00 NEQ ,&noplain JCN #01 RTN &noplain - .brush/patt PEK #01 NEQ ,&notone1 JCN - .pt0/x PEK2 #00 .px/x PEK ADD2 .pt0/y PEK2 #00 .px/y PEK ADD2 ADD2 #0001 AND2 #0000 EQU2 - .pt0/x PEK2 #00 .px/x PEK ADD2 .pt0/y PEK2 #00 .px/y PEK ADD2 SUB2 #0001 AND2 #0000 EQU2 + .brush/patt LDZ #01 NEQ ,&notone1 JCN + .pt0/x LDZ2 #00 .px/x LDZ ADD2 .pt0/y LDZ2 #00 .px/y LDZ ADD2 ADD2 #0001 AND2 #0000 EQU2 + .pt0/x LDZ2 #00 .px/x LDZ ADD2 .pt0/y LDZ2 #00 .px/y LDZ ADD2 SUB2 #0001 AND2 #0000 EQU2 #0101 EQU2 RTN &notone1 - .brush/patt PEK #02 NEQ ,&notone2 JCN - .pt0/x PEK2 #00 .px/x PEK ADD2 .pt0/y PEK2 #00 .px/y PEK ADD2 ADD2 #0003 AND2 #0000 EQU2 - .pt0/x PEK2 #00 .px/x PEK ADD2 .pt0/y PEK2 #00 .px/y PEK ADD2 SUB2 #0003 AND2 #0000 EQU2 + .brush/patt LDZ #02 NEQ ,&notone2 JCN + .pt0/x LDZ2 #00 .px/x LDZ ADD2 .pt0/y LDZ2 #00 .px/y LDZ ADD2 ADD2 #0003 AND2 #0000 EQU2 + .pt0/x LDZ2 #00 .px/x LDZ ADD2 .pt0/y LDZ2 #00 .px/y LDZ ADD2 SUB2 #0003 AND2 #0000 EQU2 #0101 EQU2 RTN &notone2 - .brush/patt PEK #03 NEQ ,&notone3 JCN - .pt0/x PEK2 #00 .px/x PEK ADD2 .pt0/y PEK2 #00 .px/y PEK ADD2 ADD2 #0005 AND2 #0000 EQU2 - .pt0/x PEK2 #00 .px/x PEK ADD2 .pt0/y PEK2 #00 .px/y PEK ADD2 SUB2 #0005 AND2 #0000 EQU2 + .brush/patt LDZ #03 NEQ ,&notone3 JCN + .pt0/x LDZ2 #00 .px/x LDZ ADD2 .pt0/y LDZ2 #00 .px/y LDZ ADD2 ADD2 #0005 AND2 #0000 EQU2 + .pt0/x LDZ2 #00 .px/x LDZ ADD2 .pt0/y LDZ2 #00 .px/y LDZ ADD2 SUB2 #0005 AND2 #0000 EQU2 #0101 EQU2 RTN &notone3 - .brush/patt PEK #04 NEQ ,&notone4 JCN - .pt0/x PEK2 #00 .px/x PEK ADD2 .pt0/y PEK2 #00 .px/y PEK ADD2 ADD2 #0003 AND2 #0000 EQU2 RTN &notone4 + .brush/patt LDZ #04 NEQ ,&notone4 JCN + .pt0/x LDZ2 #00 .px/x LDZ ADD2 .pt0/y LDZ2 #00 .px/y LDZ ADD2 ADD2 #0003 AND2 #0000 EQU2 RTN &notone4 - .brush/patt PEK #05 NEQ ,&notone5 JCN - .pt0/x PEK2 #00 .px/x PEK ADD2 .pt0/y PEK2 #00 .px/y PEK ADD2 SUB2 #0003 AND2 #0000 EQU2 RTN &notone5 + .brush/patt LDZ #05 NEQ ,&notone5 JCN + .pt0/x LDZ2 #00 .px/x LDZ ADD2 .pt0/y LDZ2 #00 .px/y LDZ ADD2 SUB2 #0003 AND2 #0000 EQU2 RTN &notone5 - .brush/patt PEK #06 NEQ ,&notone6 JCN - .pt0/x PEK2 #00 .px/x PEK ADD2 #0001 AND2 SWP POP RTN &notone6 + .brush/patt LDZ #06 NEQ ,&notone6 JCN + .pt0/x LDZ2 #00 .px/x LDZ ADD2 #0001 AND2 SWP POP RTN &notone6 - .brush/patt PEK #07 NEQ ,&notone7 JCN - .pt0/y PEK2 #00 .px/y PEK ADD2 #0001 AND2 SWP POP RTN &notone7 + .brush/patt LDZ #07 NEQ ,&notone7 JCN + .pt0/y LDZ2 #00 .px/y LDZ ADD2 #0001 AND2 SWP POP RTN &notone7 #00 @@ -553,30 +553,30 @@ RTN @get-pixel ( x y -- b ) - SWP POP #07 AND .px/y POK - SWP POP #07 AND .px/x POK - ( get tile ) .pt1/x PEK2 8/ .pt1/y PEK2 8/ .canvas/w PEK2 MUL2 ADD2 8* + SWP POP #07 AND .px/y STZ + SWP POP #07 AND .px/x STZ + ( get tile ) .pt1/x LDZ2 8/ .pt1/y LDZ2 8/ .canvas/w LDZ2 MUL2 ADD2 8* ( add addr ) ;data ADD2 - #00 .px/y PEK ADD2 LDA #07 .px/x PEK SUB SFT #01 AND + #00 .px/y LDZ ADD2 LDA #07 .px/x LDZ SUB SFT #01 AND RTN @add-pixel ( x y -- ) - .pt1/y POK2 .pt1/x POK2 - ( get tile addr ) ;data .pt1/x PEK2 8/ .pt1/y PEK2 8/ .canvas/w PEK2 MUL2 ADD2 8* .pt1/y PEK2 MOD8 ADD2 ADD2 + .pt1/y STZ2 .pt1/x STZ2 + ( get tile addr ) ;data .pt1/x LDZ2 8/ .pt1/y LDZ2 8/ .canvas/w LDZ2 MUL2 ADD2 8* .pt1/y LDZ2 MOD8 ADD2 ADD2 ( load ) DUP2 LDA - ( mask ) #01 #07 .pt1/x PEK2 MOD8 SWP POP SUB SFL ORA + ( mask ) #01 #07 .pt1/x LDZ2 MOD8 SWP POP SUB SFL ORA ( save ) ROT ROT STA RTN @remove-pixel ( x y -- ) - .pt1/y POK2 .pt1/x POK2 - ( get tile addr ) ;data .pt1/x PEK2 8/ .pt1/y PEK2 8/ .canvas/w PEK2 MUL2 ADD2 8* .pt1/y PEK2 MOD8 ADD2 ADD2 + .pt1/y STZ2 .pt1/x STZ2 + ( get tile addr ) ;data .pt1/x LDZ2 8/ .pt1/y LDZ2 8/ .canvas/w LDZ2 MUL2 ADD2 8* .pt1/y LDZ2 MOD8 ADD2 ADD2 ( load ) DUP2 LDA - ( mask ) #01 #07 .pt1/x PEK2 MOD8 SWP POP SUB SFL #ff EOR AND + ( mask ) #01 #07 .pt1/x LDZ2 MOD8 SWP POP SUB SFL #ff EOR AND ( save ) ROT ROT STA RTN @@ -609,39 +609,39 @@ RTN @draw-canvas ( -- ) - .zoom/active PEK #01 EQU ;draw-canvas-zoom JCN2 + .zoom/active LDZ #01 EQU ;draw-canvas-zoom JCN2 - .canvas/y1 PEK2 .Screen/y DEO2 + .canvas/y1 LDZ2 .Screen/y DEO2 ;data .Screen/addr DEO2 &ver - .canvas/x1 PEK2 .Screen/x DEO2 + .canvas/x1 LDZ2 .Screen/x DEO2 &hor ( draw ) #29 .Screen/color DEO ( incr ) .Screen/x DEI2 8+ .Screen/x DEO2 ( incr ) .Screen/addr DEI2 8+ .Screen/addr DEO2 - .Screen/x DEI2 .canvas/x2 PEK2 NEQ2 ,&hor JCN + .Screen/x DEI2 .canvas/x2 LDZ2 NEQ2 ,&hor JCN ( incr ) .Screen/y DEI2 8+ .Screen/y DEO2 - .Screen/y DEI2 .canvas/y2 PEK2 NEQ2 ,&ver JCN + .Screen/y DEI2 .canvas/y2 LDZ2 NEQ2 ,&ver JCN RTN @draw-canvas-zoom ( -- ) - .zoom/y PEK2 .pt1/y POK2 - .canvas/y1 PEK2 .Screen/y DEO2 + .zoom/y LDZ2 .pt1/y STZ2 + .canvas/y1 LDZ2 .Screen/y DEO2 ;data .Screen/addr DEO2 &ver - .canvas/x1 PEK2 .Screen/x DEO2 - .zoom/x PEK2 .pt1/x POK2 + .canvas/x1 LDZ2 .Screen/x DEO2 + .zoom/x LDZ2 .pt1/x STZ2 &hor - ( incr ) ;bigpixel_icn #0008 #00 .pt1/x PEK2 .pt1/y PEK2 ;get-pixel JSR2 MUL2 ADD2 .Screen/addr DEO2 + ( incr ) ;bigpixel_icn #0008 #00 .pt1/x LDZ2 .pt1/y LDZ2 ;get-pixel JSR2 MUL2 ADD2 .Screen/addr DEO2 ( draw ) #29 .Screen/color DEO ( incr ) .Screen/x DEI2 8+ .Screen/x DEO2 - ( incr ) .pt1/x PEK2 ++ .pt1/x POK2 - .Screen/x DEI2 .canvas/x2 PEK2 NEQ2 ,&hor JCN + ( incr ) .pt1/x LDZ2 ++ .pt1/x STZ2 + .Screen/x DEI2 .canvas/x2 LDZ2 NEQ2 ,&hor JCN ( incr ) .Screen/y DEI2 8+ .Screen/y DEO2 - ( incr ) .pt1/y PEK2 ++ .pt1/y POK2 - .Screen/y DEI2 .canvas/y2 PEK2 NEQ2 ,&ver JCN + ( incr ) .pt1/y LDZ2 ++ .pt1/y STZ2 + .Screen/y DEI2 .canvas/y2 LDZ2 NEQ2 ,&ver JCN RTN @@ -649,28 +649,28 @@ RTN ;blank_icn .Screen/addr DEO2 ( clear brush size ) - .cursor/x PEK2 #0003 SUB2 .Screen/x DEO2 .cursor/y PEK2 #0003 SUB2 .Screen/y DEO2 #30 .Screen/color DEO + .cursor/x LDZ2 #0003 SUB2 .Screen/x DEO2 .cursor/y LDZ2 #0003 SUB2 .Screen/y DEO2 #30 .Screen/color DEO ( clear last cursor ) - .cursor/x PEK2 .Screen/x DEO2 .cursor/y PEK2 .Screen/y DEO2 #30 .Screen/color DEO + .cursor/x LDZ2 .Screen/x DEO2 .cursor/y LDZ2 .Screen/y DEO2 #30 .Screen/color DEO ( record cursor positions ) - .Mouse/x DEI2 .cursor/x POK2 .Mouse/y DEI2 .cursor/y POK2 + .Mouse/x DEI2 .cursor/x STZ2 .Mouse/y DEI2 .cursor/y STZ2 ( draw size cursor ) - .brush/tool PEK #01 NEQ ;&outside-canvas JCN2 + .brush/tool LDZ #01 NEQ ;&outside-canvas JCN2 ( do not draw size when holding alt ) .Controller/button DEI #02 EQU ;&outside-canvas JCN2 - .Mouse/x DEI2 CLN2r .canvas/x1 PEK2 GTH2 STH2r .canvas/x2 PEK2 LTH2 #0101 NEQ2 ;&outside-canvas JCN2 - .Mouse/y DEI2 CLN2r .canvas/y1 PEK2 GTH2 STH2r .canvas/y2 PEK2 LTH2 #0101 NEQ2 ;&outside-canvas JCN2 + .Mouse/x DEI2 CLN2r .canvas/x1 LDZ2 GTH2 STH2r .canvas/x2 LDZ2 LTH2 #0101 NEQ2 ;&outside-canvas JCN2 + .Mouse/y DEI2 CLN2r .canvas/y1 LDZ2 GTH2 STH2r .canvas/y2 LDZ2 LTH2 #0101 NEQ2 ;&outside-canvas JCN2 ( do not draw size in toolpane ) - .Mouse/x DEI2 CLN2r .toolpane/x1 PEK2 GTH2 STH2r .toolpane/x2 PEK2 LTH2 #0101 EQU2 .Mouse/y DEI2 CLN2r .toolpane/y1 PEK2 GTH2 STH2r .toolpane/y2 PEK2 LTH2 #0101 EQU2 #0101 EQU2 ;&outside-canvas JCN2 - .Mouse/x DEI2 CLN2r .sizepane/x1 PEK2 GTH2 STH2r .sizepane/x2 PEK2 LTH2 #0101 EQU2 .Mouse/y DEI2 CLN2r .sizepane/y1 PEK2 GTH2 STH2r .sizepane/y2 PEK2 LTH2 #0101 EQU2 #0101 EQU2 ;&outside-canvas JCN2 - .Mouse/x DEI2 CLN2r .pattpane/x1 PEK2 GTH2 STH2r .pattpane/x2 PEK2 LTH2 #0101 EQU2 .Mouse/y DEI2 CLN2r .pattpane/y1 PEK2 GTH2 STH2r .pattpane/y2 PEK2 LTH2 #0101 EQU2 #0101 EQU2 ;&outside-canvas JCN2 - .cursor/x PEK2 #0003 SUB2 .Screen/x DEO2 .cursor/y PEK2 #0003 SUB2 .Screen/y DEO2 - ;brush_icns #00 .brush/size PEK 8* ADD2 .Screen/addr DEO2 + .Mouse/x DEI2 CLN2r .toolpane/x1 LDZ2 GTH2 STH2r .toolpane/x2 LDZ2 LTH2 #0101 EQU2 .Mouse/y DEI2 CLN2r .toolpane/y1 LDZ2 GTH2 STH2r .toolpane/y2 LDZ2 LTH2 #0101 EQU2 #0101 EQU2 ;&outside-canvas JCN2 + .Mouse/x DEI2 CLN2r .sizepane/x1 LDZ2 GTH2 STH2r .sizepane/x2 LDZ2 LTH2 #0101 EQU2 .Mouse/y DEI2 CLN2r .sizepane/y1 LDZ2 GTH2 STH2r .sizepane/y2 LDZ2 LTH2 #0101 EQU2 #0101 EQU2 ;&outside-canvas JCN2 + .Mouse/x DEI2 CLN2r .pattpane/x1 LDZ2 GTH2 STH2r .pattpane/x2 LDZ2 LTH2 #0101 EQU2 .Mouse/y DEI2 CLN2r .pattpane/y1 LDZ2 GTH2 STH2r .pattpane/y2 LDZ2 LTH2 #0101 EQU2 #0101 EQU2 ;&outside-canvas JCN2 + .cursor/x LDZ2 #0003 SUB2 .Screen/x DEO2 .cursor/y LDZ2 #0003 SUB2 .Screen/y DEO2 + ;brush_icns #00 .brush/size LDZ 8* ADD2 .Screen/addr DEO2 #31 .Mouse/state DEI #02 MUL ADD .Screen/color DEO .Mouse/state DEI #00 EQU ,&outside-canvas JCN RTN &outside-canvas ( draw new cursor ) - .cursor/x PEK2 .Screen/x DEO2 .cursor/y PEK2 .Screen/y DEO2 + .cursor/x LDZ2 .Screen/x DEO2 .cursor/y LDZ2 .Screen/y DEO2 ;pointers_icn #00 .Controller/button DEI #02 EQU 8* ADD2 .Screen/addr DEO2 #3f .Mouse/state DEI #01 EQU #0a MUL SUB .Screen/color DEO @@ -678,79 +678,79 @@ RTN @draw-toolpane ( -- ) - .document/presentation PEK #00 EQU ,&skip JCN RTN &skip + .document/presentation LDZ #00 EQU ,&skip JCN RTN &skip ( frame ) - .toolpane/x1 PEK2 -- .toolpane/y1 PEK2 -- .toolpane/x2 PEK2 .toolpane/y2 PEK2 #00 ;line-rect JSR2 - .toolpane/x1 PEK2 #0002 SUB2 .toolpane/y1 PEK2 #0002 SUB2 .toolpane/x2 PEK2 .toolpane/y2 PEK2 #01 ;line-rect JSR2 + .toolpane/x1 LDZ2 -- .toolpane/y1 LDZ2 -- .toolpane/x2 LDZ2 .toolpane/y2 LDZ2 #00 ;line-rect JSR2 + .toolpane/x1 LDZ2 #0002 SUB2 .toolpane/y1 LDZ2 #0002 SUB2 .toolpane/x2 LDZ2 .toolpane/y2 LDZ2 #01 ;line-rect JSR2 - .toolpane/x1 PEK2 .Screen/x DEO2 .toolpane/y1 PEK2 .Screen/y DEO2 ;tool_icns .Screen/addr DEO2 + .toolpane/x1 LDZ2 .Screen/x DEO2 .toolpane/y1 LDZ2 .Screen/y DEO2 ;tool_icns .Screen/addr DEO2 &loop - ( draw ) #21 .Screen/x DEI2 .toolpane/x1 PEK2 SUB2 8/ SWP POP .brush/tool PEK EQU #02 MUL ADD .Screen/color DEO + ( draw ) #21 .Screen/x DEI2 .toolpane/x1 LDZ2 SUB2 8/ SWP POP .brush/tool LDZ EQU #02 MUL ADD .Screen/color DEO ( incr ) .Screen/x DEI2 8+ .Screen/x DEO2 ( incr ) .Screen/addr DEI2 8+ .Screen/addr DEO2 - .Screen/x DEI2 .toolpane/x2 PEK2 LTH2 ,&loop JCN + .Screen/x DEI2 .toolpane/x2 LDZ2 LTH2 ,&loop JCN - .zoom/active PEK #01 NEQ ,&no-zoom JCN + .zoom/active LDZ #01 NEQ ,&no-zoom JCN .Screen/x DEI2 #0008 SUB2 .Screen/x DEO2 ;tool_icns #0028 ADD2 .Screen/addr DEO2 - #21 #04 .brush/tool PEK EQU #02 MUL ADD .Screen/color DEO + #21 #04 .brush/tool LDZ EQU #02 MUL ADD .Screen/color DEO &no-zoom RTN @draw-pattpane ( -- ) - .document/presentation PEK #00 EQU ,&skip JCN RTN &skip + .document/presentation LDZ #00 EQU ,&skip JCN RTN &skip ( frame ) - .pattpane/x1 PEK2 -- .pattpane/y1 PEK2 -- .pattpane/x2 PEK2 .pattpane/y2 PEK2 #00 ;line-rect JSR2 - .pattpane/x1 PEK2 #0002 SUB2 .pattpane/y1 PEK2 #0002 SUB2 .pattpane/x2 PEK2 .pattpane/y2 PEK2 #01 ;line-rect JSR2 + .pattpane/x1 LDZ2 -- .pattpane/y1 LDZ2 -- .pattpane/x2 LDZ2 .pattpane/y2 LDZ2 #00 ;line-rect JSR2 + .pattpane/x1 LDZ2 #0002 SUB2 .pattpane/y1 LDZ2 #0002 SUB2 .pattpane/x2 LDZ2 .pattpane/y2 LDZ2 #01 ;line-rect JSR2 - .pattpane/x1 PEK2 .Screen/x DEO2 .pattpane/y1 PEK2 .Screen/y DEO2 ;patt_icns .Screen/addr DEO2 + .pattpane/x1 LDZ2 .Screen/x DEO2 .pattpane/y1 LDZ2 .Screen/y DEO2 ;patt_icns .Screen/addr DEO2 &loop - ( draw ) #21 .Screen/x DEI2 .pattpane/x1 PEK2 SUB2 8/ SWP POP .brush/patt PEK EQU #02 MUL ADD .Screen/color DEO + ( draw ) #21 .Screen/x DEI2 .pattpane/x1 LDZ2 SUB2 8/ SWP POP .brush/patt LDZ EQU #02 MUL ADD .Screen/color DEO ( incr ) .Screen/x DEI2 8+ .Screen/x DEO2 ( incr ) .Screen/addr DEI2 8+ .Screen/addr DEO2 - .Screen/x DEI2 .pattpane/x2 PEK2 LTH2 ,&loop JCN + .Screen/x DEI2 .pattpane/x2 LDZ2 LTH2 ,&loop JCN RTN @draw-sizepane ( -- ) - .document/presentation PEK #00 EQU ,&skip JCN RTN &skip + .document/presentation LDZ #00 EQU ,&skip JCN RTN &skip ( frame ) - .sizepane/x1 PEK2 -- .sizepane/y1 PEK2 -- .sizepane/x2 PEK2 .sizepane/y2 PEK2 #00 ;line-rect JSR2 - .sizepane/x1 PEK2 #0002 SUB2 .sizepane/y1 PEK2 #0002 SUB2 .sizepane/x2 PEK2 .sizepane/y2 PEK2 #01 ;line-rect JSR2 + .sizepane/x1 LDZ2 -- .sizepane/y1 LDZ2 -- .sizepane/x2 LDZ2 .sizepane/y2 LDZ2 #00 ;line-rect JSR2 + .sizepane/x1 LDZ2 #0002 SUB2 .sizepane/y1 LDZ2 #0002 SUB2 .sizepane/x2 LDZ2 .sizepane/y2 LDZ2 #01 ;line-rect JSR2 - .sizepane/x1 PEK2 .Screen/x DEO2 .sizepane/y1 PEK2 .Screen/y DEO2 ;size_icns .Screen/addr DEO2 + .sizepane/x1 LDZ2 .Screen/x DEO2 .sizepane/y1 LDZ2 .Screen/y DEO2 ;size_icns .Screen/addr DEO2 &loop - ( draw ) #21 .Screen/x DEI2 .sizepane/x1 PEK2 SUB2 8/ SWP POP .brush/size PEK EQU #02 MUL ADD .Screen/color DEO + ( draw ) #21 .Screen/x DEI2 .sizepane/x1 LDZ2 SUB2 8/ SWP POP .brush/size LDZ EQU #02 MUL ADD .Screen/color DEO ( incr ) .Screen/x DEI2 8+ .Screen/x DEO2 ( incr ) .Screen/addr DEI2 8+ .Screen/addr DEO2 - .Screen/x DEI2 .sizepane/x2 PEK2 LTH2 ,&loop JCN + .Screen/x DEI2 .sizepane/x2 LDZ2 LTH2 ,&loop JCN RTN @draw-viewpane ( -- ) - .document/presentation PEK #00 EQU ,&skip JCN RTN &skip + .document/presentation LDZ #00 EQU ,&skip JCN RTN &skip ( frame ) - .viewpane/x1 PEK2 -- .viewpane/y1 PEK2 -- .viewpane/x2 PEK2 .viewpane/y2 PEK2 #00 ;line-rect JSR2 - .viewpane/x1 PEK2 #0002 SUB2 .viewpane/y1 PEK2 #0002 SUB2 .viewpane/x2 PEK2 .viewpane/y2 PEK2 #01 ;line-rect JSR2 + .viewpane/x1 LDZ2 -- .viewpane/y1 LDZ2 -- .viewpane/x2 LDZ2 .viewpane/y2 LDZ2 #00 ;line-rect JSR2 + .viewpane/x1 LDZ2 #0002 SUB2 .viewpane/y1 LDZ2 #0002 SUB2 .viewpane/x2 LDZ2 .viewpane/y2 LDZ2 #01 ;line-rect JSR2 - .viewpane/x1 PEK2 .Screen/x DEO2 .viewpane/y1 PEK2 .Screen/y DEO2 ;view_icns .Screen/addr DEO2 + .viewpane/x1 LDZ2 .Screen/x DEO2 .viewpane/y1 LDZ2 .Screen/y DEO2 ;view_icns .Screen/addr DEO2 &loop ( draw ) #21 .Screen/color DEO ( incr ) .Screen/x DEI2 8+ .Screen/x DEO2 ( incr ) .Screen/addr DEI2 8+ .Screen/addr DEO2 - .Screen/x DEI2 .viewpane/x2 PEK2 LTH2 ,&loop JCN + .Screen/x DEI2 .viewpane/x2 LDZ2 LTH2 ,&loop JCN RTN @@ -766,29 +766,29 @@ RTN @draw-background ( draw hor line ) - #0000 .Screen/width DEI2 .Screen/height DEI2 #0002 DIV2 .document/presentation PEK #00 EQU ;line-horizontal-dotted JSR2 + #0000 .Screen/width DEI2 .Screen/height DEI2 #0002 DIV2 .document/presentation LDZ #00 EQU ;line-horizontal-dotted JSR2 ( draw ver line ) - .Screen/width DEI2 #0002 DIV2 #0000 .Screen/height DEI2 .document/presentation PEK #00 EQU ;line-vertical-dotted JSR2 + .Screen/width DEI2 #0002 DIV2 #0000 .Screen/height DEI2 .document/presentation LDZ #00 EQU ;line-vertical-dotted JSR2 - .document/presentation PEK #01 EQU ;&skip-size JCN2 + .document/presentation LDZ #01 EQU ;&skip-size JCN2 ( draw size ) #0010 .Screen/y DEO2 ( draw width ) - .Screen/width DEI2 #00a0 SUB2 .Screen/x DEO2 ;font_hex .canvas/w PEK2 #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2 + .Screen/width DEI2 #00a0 SUB2 .Screen/x DEO2 ;font_hex .canvas/w LDZ2 #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2 ( draw ) #21 .Screen/color DEO - .Screen/x DEI2 8+ .Screen/x DEO2 ;font_hex .canvas/w PEK2 #0f AND #08 MUL ADD2 .Screen/addr DEO2 + .Screen/x DEI2 8+ .Screen/x DEO2 ;font_hex .canvas/w LDZ2 #0f AND #08 MUL ADD2 .Screen/addr DEO2 ( draw ) #21 .Screen/color DEO ( draw height ) - .Screen/x DEI2 8+ .Screen/x DEO2 ;font_hex .canvas/h PEK2 #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2 + .Screen/x DEI2 8+ .Screen/x DEO2 ;font_hex .canvas/h LDZ2 #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2 ( draw ) #21 .Screen/color DEO - .Screen/x DEI2 8+ .Screen/x DEO2 ;font_hex .canvas/h PEK2 #0f AND #08 MUL ADD2 .Screen/addr DEO2 + .Screen/x DEI2 8+ .Screen/x DEO2 ;font_hex .canvas/h LDZ2 #0f AND #08 MUL ADD2 .Screen/addr DEO2 ( draw ) #21 .Screen/color DEO &skip-size ( draw save/load/guides icons ) .Screen/height DEI2 #0010 SUB2 .Screen/y DEO2 .Screen/width DEI2 #0028 SUB2 .Screen/x DEO2 - ;eye_icn #00 .document/presentation PEK #08 MUL ADD2 .Screen/addr DEO2 + ;eye_icn #00 .document/presentation LDZ #08 MUL ADD2 .Screen/addr DEO2 #23 .Screen/color DEO .Screen/x DEI2 8+ .Screen/x DEO2 ;filestate_icn .Screen/addr DEO2 @@ -809,20 +809,20 @@ RTN @line-rect ( x1 y1 x2 y2 color -- ) - ( load ) .color POK DUP2 STH2 .rect/y2 POK2 .rect/x2 POK2 DUP2 STH2 .rect/y1 POK2 .rect/x1 POK2 + ( load ) .color STZ DUP2 STH2 .rect/y2 STZ2 .rect/x2 STZ2 DUP2 STH2 .rect/y1 STZ2 .rect/x1 STZ2 STH2r STH2r &ver ( save ) OVR2 .Screen/y DEO2 - ( draw ) .rect/x1 PEK2 .Screen/x DEO2 .color PEK DUP .Screen/color DEO - ( draw ) .rect/x2 PEK2 .Screen/x DEO2 .Screen/color DEO + ( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ DUP .Screen/color DEO + ( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .Screen/color DEO ( incr ) SWP2 ++ SWP2 OVR2 OVR2 LTS2 ,&ver JCN POP2 POP2 - .rect/x1 PEK2 .rect/x2 PEK2 + .rect/x1 LDZ2 .rect/x2 LDZ2 &hor ( save ) OVR2 .Screen/x DEO2 - ( draw ) .rect/y1 PEK2 .Screen/y DEO2 .color PEK DUP .Screen/color DEO - ( draw ) .rect/y2 PEK2 .Screen/y DEO2 .Screen/color DEO + ( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ DUP .Screen/color DEO + ( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .Screen/color DEO ( incr ) SWP2 ++ SWP2 OVR2 OVR2 ++ LTS2 ,&hor JCN POP2 POP2 @@ -831,14 +831,14 @@ RTN @fill-rect ( x1 y1 x2 y2 color -- ) - .color POK + .color STZ ( x1 x2 y1 y2 ) ROT2 SWP2 &ver ( save ) OVR2 .Screen/y DEO2 STH2 STH2 OVR2 OVR2 &hor ( save ) OVR2 .Screen/x DEO2 - ( draw ) .color PEK .Screen/color DEO + ( draw ) .color LDZ .Screen/color DEO ( incr ) SWP2 ++ SWP2 OVR2 OVR2 LTS2 ,&hor JCN POP2 POP2 STH2r STH2r @@ -850,10 +850,10 @@ RTN @draw-label ( addr color -- ) - .color POK + .color STZ &loop DUP2 LDA #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 - ( draw ) .color PEK #20 ADD .Screen/color DEO + ( draw ) .color LDZ #20 ADD .Screen/color DEO ( incr ) #0001 ADD2 ( incr ) .Screen/x DEI2 8+ .Screen/x DEO2 ( loop ) DUP2 LDA #00 NEQ ,&loop JCN @@ -863,9 +863,9 @@ RTN @line-horizontal-dotted ( x0 x1 y color -- ) - .color POK .Screen/y DEO2 OVR2 .Screen/x DEO2 + .color STZ .Screen/y DEO2 OVR2 .Screen/x DEO2 &draw-hor - ( draw ) .color PEK .Screen/color DEO + ( draw ) .color LDZ .Screen/color DEO ( incr ) SWP2 #0002 ADD2 DUP2 .Screen/x DEO2 SWP2 OVR2 OVR2 LTH2 ,&draw-hor JCN POP2 POP2 @@ -874,9 +874,9 @@ RTN @line-vertical-dotted ( x y0 y1 color -- ) - .color POK STH2 SWP2 .Screen/x DEO2 STH2r OVR2 .Screen/y DEO2 + .color STZ STH2 SWP2 .Screen/x DEO2 STH2r OVR2 .Screen/y DEO2 &draw-ver - ( draw ) .color PEK .Screen/color DEO + ( draw ) .color LDZ .Screen/color DEO ( incr ) SWP2 #0002 ADD2 DUP2 .Screen/y DEO2 SWP2 OVR2 OVR2 LTH2 ,&draw-ver JCN POP2 POP2 diff --git a/projects/software/orca.usm b/projects/software/orca.usm @@ -24,7 +24,7 @@ %LDA-CHAR { #24 MOD #00 SWP ;b36clc ADD2 LDA } ( b36 -- char ) %LDA-VALUE { #20 SUB #00 SWP ;values ADD2 LDA } ( char -- b36 ) -%LDA-INDEX { #00 SWP #00 .grid/width PEK MUL2 ROT #00 SWP ADD2 } ( x y -- index ) +%LDA-INDEX { #00 SWP #00 .grid/width LDZ MUL2 ROT #00 SWP ADD2 } ( x y -- index ) %LDA-CELL { LDA-INDEX DATA-CELLS ADD2 LDA } ( x y -- char ) %SET-CELL { ROT ROT LDA-INDEX DATA-CELLS ADD2 STA } ( x y char -- ) %LDA-TYPE { LDA-INDEX DATA-TYPES ADD2 LDA } ( x y -- type ) @@ -59,8 +59,8 @@ ( vectors ) ;on-frame .Screen/vector DEO2 ( find size ) - .Screen/width DEI2 8/ SWP POP .grid/width POK - .Screen/height DEI2 8/ SWP POP #02 SUB .grid/height POK + .Screen/width DEI2 8/ SWP POP .grid/width STZ + .Screen/height DEI2 8/ SWP POP #02 SUB .grid/height STZ ( fill grid with dots ) @@ -71,47 +71,47 @@ BRK @on-frame - .timer PEK ++ DUP .timer POK + .timer LDZ ++ DUP .timer STZ ( skip ) #08 EQU ,&tick JCN BRK &tick - .timer/frame PEK ++ .timer/frame POK + .timer/frame LDZ ++ .timer/frame STZ ;run JSR2 - #00 .timer POK + #00 .timer STZ BRK @on-button .Controller/key DEI #00 EQU ,&no-key JCN - .selection/x1 PEK .selection/y1 PEK .Controller/key DEI SET-CELL + .selection/x1 LDZ .selection/y1 LDZ .Controller/key DEI SET-CELL ;redraw JSR2 &no-key ( arrows ) .Controller/button DEI #f0 AND DUP #04 SFT #01 AND #01 NEQ ,&no-up JCN - .selection/y1 PEK #00 EQU ,&no-up JCN - .selection/y1 PEK -- .selection/y1 POK - .selection/y2 PEK -- .selection/y2 POK &no-up + .selection/y1 LDZ #00 EQU ,&no-up JCN + .selection/y1 LDZ -- .selection/y1 STZ + .selection/y2 LDZ -- .selection/y2 STZ &no-up DUP #05 SFT #01 AND #01 NEQ ,&no-down JCN - .selection/y1 PEK .grid/height PEK -- EQU ,&no-down JCN - .selection/y1 PEK ++ .selection/y1 POK - .selection/y2 PEK ++ .selection/y2 POK &no-down + .selection/y1 LDZ .grid/height LDZ -- EQU ,&no-down JCN + .selection/y1 LDZ ++ .selection/y1 STZ + .selection/y2 LDZ ++ .selection/y2 STZ &no-down DUP #06 SFT #01 AND #01 NEQ ,&no-left JCN - .selection/x1 PEK #00 EQU ,&no-left JCN - .selection/x1 PEK -- .selection/x1 POK - .selection/x2 PEK -- .selection/x2 POK &no-left + .selection/x1 LDZ #00 EQU ,&no-left JCN + .selection/x1 LDZ -- .selection/x1 STZ + .selection/x2 LDZ -- .selection/x2 STZ &no-left DUP #07 SFT #01 AND #01 NEQ ,&no-right JCN - .selection/x1 PEK .grid/width PEK -- EQU ,&no-right JCN - .selection/x1 PEK ++ .selection/x1 POK - .selection/x2 PEK ++ .selection/x2 POK &no-right + .selection/x1 LDZ .grid/width LDZ -- EQU ,&no-right JCN + .selection/x1 LDZ ++ .selection/x1 STZ + .selection/x2 LDZ ++ .selection/x2 STZ &no-right POP .Controller/key DEI #08 NEQ ,&no-backspace JCN - .selection/x1 PEK .selection/y1 PEK #2e SET-CELL ( put . char ) + .selection/x1 LDZ .selection/y1 LDZ #2e SET-CELL ( put . char ) &no-backspace ;redraw JSR2 @@ -121,24 +121,24 @@ BRK @on-mouse .Mouse/state DEI #00 EQU ,&no-touch JCN - .Mouse/x DEI2 8/ SWP POP .selection/x1 POK - .Mouse/y DEI2 8/ SWP POP .selection/y1 POK + .Mouse/x DEI2 8/ SWP POP .selection/x1 STZ + .Mouse/y DEI2 8/ SWP POP .selection/y1 STZ ;redraw JSR2 &no-touch ( clear last cursor ) - .cursor/x PEK2 .Screen/x DEO2 - .cursor/y PEK2 .Screen/y DEO2 + .cursor/x LDZ2 .Screen/x DEO2 + .cursor/y LDZ2 .Screen/y DEO2 ;blank_icn .Screen/addr DEO2 #30 .Screen/color DEO ( record cursor positions ) - .Mouse/x DEI2 .cursor/x POK2 - .Mouse/y DEI2 .cursor/y POK2 + .Mouse/x DEI2 .cursor/x STZ2 + .Mouse/y DEI2 .cursor/y STZ2 ( draw new cursor ) - .cursor/x PEK2 .Screen/x DEO2 - .cursor/y PEK2 .Screen/y DEO2 + .cursor/x LDZ2 .Screen/x DEO2 + .cursor/y LDZ2 .Screen/y DEO2 ;cursor_icn .Screen/addr DEO2 #32 .Mouse/state DEI #01 EQU ADD .Screen/color DEO @@ -146,9 +146,9 @@ BRK @start ( -- ) - #00 .grid/height PEK + #00 .grid/height LDZ &ver - #00 .grid/width PEK + #00 .grid/width LDZ &hor ( get x,y ) SWP2 OVR STH SWP2 OVR STHr #2e SET-CELL @@ -159,7 +159,7 @@ BRK DUP2 LTH ,&ver JCN POP2 - #9a .timer/speed POK + #9a .timer/speed STZ RTN @@ -172,7 +172,7 @@ RTN @is-selected ( x y -- flag ) - .selection/x1 PEK .selection/y1 PEK EQU2 + .selection/x1 LDZ .selection/y1 LDZ EQU2 RTN @@ -236,7 +236,7 @@ RTN POP ++ - #30 .timer/frame PEK #08 MOD ADD SET-CELL + #30 .timer/frame LDZ #08 MOD ADD SET-CELL RTN @@ -445,9 +445,9 @@ RTN @init ( -- ) - #00 .grid/height PEK + #00 .grid/height LDZ &ver - #00 .grid/width PEK + #00 .grid/width LDZ &hor ( get x,y ) SWP2 OVR STH SWP2 OVR STHr ( unlock ) #00 SET-LOCK @@ -464,9 +464,9 @@ RTN ;init JSR2 - #00 .grid/height PEK + #00 .grid/height LDZ &ver - #00 .grid/width PEK + #00 .grid/width LDZ &hor ( get x,y ) SWP2 OVR STH SWP2 OVR STHr DUP2 LDA-CELL ;run-char JSR2 @@ -486,7 +486,7 @@ RTN ( Positionx ) #0000 .Screen/x DEO2 - .selection/x1 PEK + .selection/x1 LDZ DUP #04 SFT LDA-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 #22 .Screen/color DEO #0008 .Screen/x DEO2 @@ -495,7 +495,7 @@ RTN ( Positiony ) #0010 .Screen/x DEO2 - .selection/y1 PEK + .selection/y1 LDZ DUP #04 SFT LDA-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 #22 .Screen/color DEO #0018 .Screen/x DEO2 @@ -508,7 +508,7 @@ RTN ( Frame ) #0030 .Screen/x DEO2 - .timer/frame PEK + .timer/frame LDZ DUP #04 SFT LDA-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 #22 .Screen/color DEO #0038 .Screen/x DEO2 @@ -517,11 +517,11 @@ RTN #0040 .Screen/x DEO2 ;beat_icn .Screen/addr DEO2 - #21 .timer/frame PEK #08 MOD #00 EQU #02 MUL ADD .Screen/color DEO + #21 .timer/frame LDZ #08 MOD #00 EQU #02 MUL ADD .Screen/color DEO ( Speed ) #0050 .Screen/x DEO2 - .timer/speed PEK + .timer/speed LDZ DUP #04 SFT LDA-CHAR #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 #22 .Screen/color DEO #0058 .Screen/x DEO2 @@ -541,10 +541,10 @@ RTN @redraw ( -- ) - #00 .grid/height PEK + #00 .grid/height LDZ &ver ( pos-y ) OVR #00 SWP #0008 MUL2 .Screen/y DEO2 - #00 .grid/width PEK + #00 .grid/width LDZ &hor ( pos-x ) OVR #00 SWP #0008 MUL2 .Screen/x DEO2 ( get x,y ) SWP2 OVR STH SWP2 OVR STHr diff --git a/src/assembler.c b/src/assembler.c @@ -42,7 +42,7 @@ Program p; char ops[][4] = { "BRK", "LIT", "NOP", "POP", "DUP", "SWP", "OVR", "ROT", "EQU", "NEQ", "GTH", "LTH", "JMP", "JCN", "JSR", "STH", - "PEK", "POK", "LDR", "STR", "LDA", "STA", "DEI", "DEO", + "LDZ", "STZ", "LDR", "STR", "LDA", "STA", "DEI", "DEO", "ADD", "SUB", "MUL", "DIV", "AND", "ORA", "EOR", "SFT" };