From f768942015b2ae40e7ea75e35ad3af8f15812fbd Mon Sep 17 00:00:00 2001 From: Travis Shears Date: Sun, 11 Jan 2026 11:21:55 +0100 Subject: [PATCH] Remove pixel offset so x,y values are zero based --- README.md | 2 ++ one_line_canvas.tal | 35 ++++++++++++++++------------------- tasks.txt | 7 +++++-- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index b9fad3b..b16f583 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ This is an art project drawing canvas tool that enables drawing low resolution pixel images. The project includes a file specification for the drawings and a canvas app for making the files. +Press "e" to export the drawing to .1line file. + ## Dev diff --git a/one_line_canvas.tal b/one_line_canvas.tal index 5e23784..cd4cf62 100644 --- a/one_line_canvas.tal +++ b/one_line_canvas.tal @@ -43,19 +43,23 @@ #65 EQU ?write-drawing-file-to-disk BRK +@on-mouse ( -> ) + .Mouse/x DEI2 LIT2 =canvas-width SUB2 .x STZ2 + .Mouse/y DEI2 LIT2 =canvas-height SUB2 .y STZ2 + .Mouse/x DEI2 .Mouse/y DEI2 ( y x ) + draw-cursor + add-px-to-drawing + BRK + @add-px-to-drawing ( figure out if px on on canvas ) - ( x too small ) - LIT2 =canvas-width .x LDZ2 GTH2 ?/end ( x too big ) - LIT2 =canvas-width #0002 MUL2 .x LDZ2 LTH2 ?/end - ( y too small ) - LIT2 =canvas-height .y LDZ2 GTH2 ?/end + LIT2 =canvas-width .x LDZ2 LTH2 ?/end ( y too big ) - LIT2 =canvas-height #0002 MUL2 .y LDZ2 LTH2 ?/end + LIT2 =canvas-height .y LDZ2 LTH2 ?/end ( draw px to screen ) - .x LDZ2 .Screen/x DEO2 - .y LDZ2 .Screen/y DEO2 + .x LDZ2 LIT2 =canvas-width ADD2 .Screen/x DEO2 + .y LDZ2 LIT2 =canvas-height ADD2 .Screen/y DEO2 #01 .Screen/pixel DEO ( set local pt to start of pixels ) !{ &local-pt $2 } @@ -94,21 +98,16 @@ JMP2r &filename "drawing.1line $1 -@on-mouse ( -> ) - .Mouse/x DEI2 .x STZ2 - .Mouse/y DEI2 .y STZ2 - draw-cursor - add-px-to-drawing - BRK -@draw-cursor + +@draw-cursor ( y x -- ) ( clear fg ) LIT2 0000 .Screen/x DEO2 LIT2 0000 .Screen/y DEO2 #c0 .Screen/pixel DEO ( draw cursor sprite to fg ) - .x LDZ2 #0002 SUB2 .Screen/x DEO2 - .y LDZ2 #0002 SUB2 .Screen/y DEO2 + #0002 SUB2 .Screen/y DEO2 ( x ) + #0002 SUB2 .Screen/x DEO2 ;cursor-sprite .Screen/addr DEO2 #41 .Screen/sprite DEO JMP2r @@ -120,7 +119,6 @@ ( store vars ) !{ &y $1 &l $1 } ,/y STR ,/l STR - &loop ( set y ) ,/y LDR DUP ( y y ) @@ -144,7 +142,6 @@ ( store vars ) !{ &x $1 &l $1 } ,/x STR ,/l STR - &loop ( set x ) ,/x LDR DUP ( x x ) diff --git a/tasks.txt b/tasks.txt index 44b94b9..a6e02c4 100644 --- a/tasks.txt +++ b/tasks.txt @@ -1,3 +1,6 @@ -task: include header in generated .1line file as spec in ./one_line_file_type_spec.ms -task: shift pixel x,y to be zero based task: set terminal byte + +------------------------- + +DONE: include header in generated .1line file as spec in ./one_line_file_type_spec.ms +DONE: shift pixel x,y to be zero based