From 2a2a1fb59da83007db18a430f3859b0febb8e758 Mon Sep 17 00:00:00 2001 From: neauoire Date: Wed, 16 Mar 2022 11:14:14 -0700 Subject: [PATCH] Ported to Screen/auto --- src/main.tal | 109 +++++++++++++++++++++++---------------------------- 1 file changed, 49 insertions(+), 60 deletions(-) diff --git a/src/main.tal b/src/main.tal index d688f28..f22ab34 100644 --- a/src/main.tal +++ b/src/main.tal @@ -1,8 +1,6 @@ ( Nasu ) -%+ { ADD } %- { SUB } %* { MUL } %/ { DIV } -%< { LTH } %> { GTH } %= { EQU } %! { NEQ } -%-- { SUB2 } %** { MUL2 } %// { DIV2 } +%-- { SUB2 } ( devices ) @@ -58,17 +56,14 @@ #0a6f .System/r DEO2 #05cf .System/g DEO2 #0caf .System/b DEO2 - ( size ) #0130 .Screen/width DEO2 #00e0 .Screen/height DEO2 - ( vectors ) ;on-console .Console/vector DEO2 ;on-button .Controller/vector DEO2 ;on-mouse .Mouse/vector DEO2 ;on-frame .Screen/vector DEO2 - ( set defaults ) #0100 .frame/width STZ2 #00c0 .frame/height STZ2 @@ -79,7 +74,7 @@ #01 .settings/tool STZ #00 .settings/brush STZ #0000 ;set-focus JSR2 - + ( place ) .Screen/width DEI2 #01 SFT2 .frame/width LDZ2 #01 SFT2 -- .Screen/height DEI2 #01 SFT2 .frame/height LDZ2 #01 SFT2 -- .frame/width LDZ2 .frame/height LDZ2 ;frame ;set-size JSR2 .frame/x1 LDZ2 #0001 -- .frame/y1 LDZ2 #0030 ADD2 #10 #00 SWP #30 SFT2 #0080 ;tileview ;set-size JSR2 .frame/x1 LDZ2 #0082 ADD2 .frame/y1 LDZ2 #0030 ADD2 #007f #007f ;nametable ;set-size JSR2 @@ -89,20 +84,21 @@ .frame/x1 LDZ2 #008f ADD2 .frame/y1 LDZ2 #0020 #0028 ;blendview ;set-size JSR2 .frame/x1 LDZ2 #00bf ADD2 .frame/y1 LDZ2 #0048 #0020 ;dataview ;set-size JSR2 .tileview/x1 LDZ2 .tileview/y2 LDZ2 #0008 ADD2 #0100 #0008 ;toolview ;set-size JSR2 - + ( outlines ) .frame/x1 LDZ2 #0002 -- .workspace-frame/x1 STZ2 .tileview/y1 LDZ2 #0001 -- .workspace-frame/y1 STZ2 .frame/x2 LDZ2 #0002 ADD2 .workspace-frame/x2 STZ2 .tileview/y2 LDZ2 INC2 .workspace-frame/y2 STZ2 - .zoomview/x1 LDZ2 #0001 -- .zoomview-frame/x1 STZ2 .zoomview/y1 LDZ2 #0001 -- .zoomview-frame/y1 STZ2 .zoomview/x2 LDZ2 #0002 ADD2 .zoomview-frame/x2 STZ2 .zoomview/y2 LDZ2 #0007 -- .zoomview-frame/y2 STZ2 - + ( let's begin! ) ;load-theme JSR2 ;new-file JSR2 + .frame/x1 LDZ2 #0080 ADD2 .tileview/y1 LDZ2 #0f ;line-ver-dashed JSR2 + BRK @untrap ( -- ) @@ -150,7 +146,7 @@ BRK @on-button-trap ( -> ) #00 ;draw-filepath JSR2 - .Controller/key DEI DUP #0d EQU #03 * SUB ,capture-trap JSR + .Controller/key DEI DUP #0d EQU #03 MUL SUB ,capture-trap JSR #01 ;draw-filepath JSR2 BRK @@ -275,9 +271,9 @@ BRK .settings/tool LDZ #01 EQU ;&select JCN2 ( paint ) - .Mouse/x DEI2 .tileview/x1 LDZ2 -- - .Mouse/y DEI2 .tileview/y1 LDZ2 -- - .settings/color LDZ .Mouse/state DEI #01 EQU * + .Mouse/x DEI2 .tileview/x1 LDZ2 SUB2 + .Mouse/y DEI2 .tileview/y1 LDZ2 SUB2 + .settings/color LDZ .Mouse/state DEI #01 EQU MUL ;put-pixel JSR2 #01 .state/changed STZ ;draw-state JSR2 ;redraw JSR2 @@ -300,7 +296,7 @@ BRK .Mouse/x DEI2 .tileview/x1 LDZ2 -- #03 SFT2 #00 .selection/zx LDZ ADD2 .Mouse/y DEI2 .tileview/y1 LDZ2 -- #03 SFT2 #00 .selection/zy LDZ ADD2 - .settings/color LDZ .Mouse/state DEI #01 EQU * ;put-pixel JSR2 + .settings/color LDZ .Mouse/state DEI #01 EQU MUL ;put-pixel JSR2 #01 .state/changed STZ ;draw-state JSR2 ;redraw JSR2 @@ -393,7 +389,7 @@ BRK .Mouse/y DEI2 .zoomview/y1 LDZ2 -- #02 SFT2 .settings/focus LDZ2 ADD2 ( detect erase ) - .settings/color LDZ .Mouse/state DEI #01 EQU * STH + .settings/color LDZ .Mouse/state DEI #01 EQU MUL STH OVR2 OVR2 STHkr #00 ;toggle-pixel JSR2 #0008 ADD2 STHr #01 ;toggle-pixel JSR2 #01 .state/changed STZ ;draw-state JSR2 @@ -407,7 +403,7 @@ BRK @on-touch-blendview ( -> ) .Mouse/x DEI2 .blendview/x1 LDZ2 -- #03 SFT2 NIP - .Mouse/y DEI2 .blendview/y1 LDZ2 -- #03 SFT2 NIP #20 SFT + + .Mouse/y DEI2 .blendview/y1 LDZ2 -- #03 SFT2 NIP #20 SFT ADD DUP #0f GTH ,&no-set JCN DUP .settings/blend LDZ #b0 AND ADD .settings/blend STZ &no-set @@ -450,10 +446,10 @@ BRK .settings/color LDZ STHk #01 SFT ADD DEI STHr #01 AND STHk #0f SWP [ #60 SFT SFT ] AND - STHr #00 = + STHr #00 EQU .Mouse/x DEI2 .colorview/x1 LDZ2 -- #01 SFT2 NIP - ( clamp to #0f ) DUP #01 GTH - - SWP [ #60 SFT SFT ] + + ( clamp to #0f ) DUP #01 GTH SUB + SWP [ #60 SFT SFT ] ADD JMP2r BRK @@ -463,7 +459,7 @@ BRK ( y ) .Mouse/y DEI2 .preview/y1 LDZ2 -- #03 SFT2 NIP ( x ) .Mouse/x DEI2 .preview/x1 LDZ2 -- #03 SFT2 NIP - #40 SFT ADD #11 + + #40 SFT ADD #11 ADD .settings/ratio STZ ;redraw JSR2 @@ -723,20 +719,6 @@ JMP2r ;draw-nametable JSR2 ;draw-zoomview JSR2 - .frame/x1 LDZ2 #0080 ADD2 .tileview/y1 LDZ2 .tileview/y2 LDZ2 INC2 #03 ;line-ver-dashed JSR2 - -JMP2r - -@is-selected ( x y -- flag ) - - OVR .selection/x1 LDZ LTH ,&end JCN - OVR .selection/x2 LDZ GTH ,&end JCN - DUP .selection/y1 LDZ LTH ,&end JCN - DUP .selection/y2 LDZ GTH ,&end JCN - POP2 #01 JMP2r - &end - POP2 #00 - JMP2r @draw-tileview ( -- ) @@ -789,13 +771,20 @@ JMP2r INC GTHk ,&ver JCN POP2 POP2r POP2r - ( guides ) + ( guide hor ) #00 #07 .selection/zy LDZ SUB #0007 AND2 #30 SFT2 #0001 -- #0008 ADD2 STH2 - .tileview/x1 LDZ2 .tileview/x2 LDZ2 .tileview/y1 LDZ2 STH2kr ADD2 #02 ;line-hor-dashed JSR2 - .tileview/x1 LDZ2 .tileview/x2 LDZ2 .tileview/y1 LDZ2 STH2r ADD2 #0040 ADD2 #02 ;line-hor-dashed JSR2 + .tileview/x1 LDZ2 .tileview/y1 LDZ2 STH2kr ADD2 #0a ;line-hor-dashed JSR2 + .selection/zy LDZ #07 AND #00 EQU ,&skip-hor JCN + .tileview/x1 LDZ2 .tileview/y1 LDZ2 STH2kr ADD2 #0040 ADD2 #0a ;line-hor-dashed JSR2 + &skip-hor + POP2r + ( guide ver ) #00 #07 .selection/zx LDZ SUB #0007 AND2 #30 SFT2 #0001 -- #0008 ADD2 STH2 - .tileview/x1 LDZ2 STH2kr ADD2 .tileview/y1 LDZ2 .tileview/y2 LDZ2 #02 ;line-ver-dashed JSR2 - .tileview/x1 LDZ2 STH2r ADD2 #0040 ADD2 .tileview/y1 LDZ2 .tileview/y2 LDZ2 #02 ;line-ver-dashed JSR2 + .tileview/x1 LDZ2 STH2kr ADD2 .tileview/y1 LDZ2 #0a ;line-ver-dashed JSR2 + .selection/zx LDZ #07 AND #00 EQU ,&skip-ver JCN + .tileview/x1 LDZ2 STH2kr ADD2 #0040 ADD2 .tileview/y1 LDZ2 #0a ;line-ver-dashed JSR2 + &skip-ver + POP2r JMP2r @@ -837,7 +826,7 @@ JMP2r [ STHr ] [ STH2r ] #0008 ADD2 LDA SWP #07 SWP SUB SFT #01 AND #10 SFT - + + ADD JMP2r @@ -911,7 +900,7 @@ JMP2r ( ch2 ) [ STHr ] [ STH2r ] #0008 ADD2 LDA SWP #07 SWP SUB SFT #01 AND - #10 SFT + + #10 SFT ADD .Screen/sprite DEO INC GTHk ,&hor JCN POP2 @@ -1113,7 +1102,7 @@ JMP2r .toolview/x2 LDZ2 #0008 -- .Screen/x DEO2 .toolview/y1 LDZ2 .Screen/y DEO2 ;save-icn .Screen/addr DEO2 - #05 .state/changed LDZ #0a * ADD .Screen/sprite DEO + #05 .state/changed LDZ #0a MUL ADD .Screen/sprite DEO JMP2r @@ -1126,7 +1115,7 @@ JMP2r ;filepath ( scroll ) DUP2 ;slen JSR2 #0013 GTH2 #00 SWP - ;filepath ;slen JSR2 #0013 -- ** ADD2 + ;filepath ;slen JSR2 #0013 -- MUL2 ADD2 STHr ,draw-text JSR @@ -1155,7 +1144,7 @@ JMP2r @draw-hex ( char color -- ) - SWP #0f AND [ DUP #09 GTH #27 * ADD #30 ADD ] SWP + SWP #0f AND [ DUP #09 GTH #27 MUL ADD #30 ADD ] SWP @draw-char ( char color -- ) @@ -1362,27 +1351,27 @@ JMP2r JMP2r -@line-hor-dashed ( x0* x1* y* color -- ) +@line-hor-dashed ( x* y* color -- ) - STH .Screen/y DEO2 SWP2 - &loop - DUP2 .Screen/x DEO2 - STHkr .Screen/pixel DEO - INC2 INC2 GTH2k ,&loop JCN - POP2 POP2 POPr + STH .Screen/y DEO2 .Screen/x DEO2 + ;&sprite .Screen/addr DEO2 + #f2 .Screen/auto DEO + STHr .Screen/sprite DEO + #00 .Screen/auto DEO JMP2r + &sprite aa00 0000 0000 0000 -@line-ver-dashed ( x* y0* y1* color -- ) +@line-ver-dashed ( x* y* color -- ) - STH ROT2 .Screen/x DEO2 SWP2 - &loop - DUP2 .Screen/y DEO2 - STHkr .Screen/pixel DEO - INC2 INC2 GTH2k ,&loop JCN - POP2 POP2 POPr + STH .Screen/y DEO2 .Screen/x DEO2 + ;&sprite .Screen/addr DEO2 + #f1 .Screen/auto DEO + STHr .Screen/sprite DEO + #00 .Screen/auto DEO JMP2r + &sprite 8000 8000 8000 8000 ( memory generics ) @@ -1412,7 +1401,7 @@ JMP2r @slen ( str* -- len* ) - DUP2 ,scap JSR SWP2 -- + DUP2 ,scap JSR SWP2 SUB2 JMP2r