diff --git a/README.md b/README.md index ecaa38a..ba98944 100644 --- a/README.md +++ b/README.md @@ -31,10 +31,10 @@ Begin by building the assembler and emulator by running the build script. The as ./build.sh ``` -The following command will create an Uxn-compatible rom from an [uxambly file](https://wiki.xxiivv.com/site/uxambly.html), point to a different usm file in `/projects` to assemble a different rom. +The following command will create an Uxn-compatible rom from an [uxntal file](https://wiki.xxiivv.com/site/uxntal.html), point to a different .tal file in `/projects` to assemble a different rom. ``` -bin/uxnasm projects/examples/demos/life.usm bin/life.rom +bin/uxnasm projects/examples/demos/life.tal bin/life.rom ``` To start the rom, point the emulator to the newly created rom: diff --git a/build.sh b/build.sh index 1073164..659ce27 100755 --- a/build.sh +++ b/build.sh @@ -43,7 +43,7 @@ then fi echo "Assembling.." -./bin/uxnasm projects/examples/demos/piano.usm bin/piano.rom +./bin/uxnasm projects/examples/demos/piano.tal bin/piano.rom echo "Running.." ./bin/uxnemu bin/piano.rom diff --git a/etc/asma-test.sh b/etc/asma-test.sh index dc9655d..7632318 100755 --- a/etc/asma-test.sh +++ b/etc/asma-test.sh @@ -6,22 +6,22 @@ mkdir asma-test cd asma-test build_asma() { - sed -ne '/^( devices )/,/^( vectors )/p' ../projects/software/asma.usm + sed -ne '/^( devices )/,/^( vectors )/p' ../projects/software/asma.tal cat < 'in.usm' + cat > 'in.tal' if ../bin/uxncli asma.rom > asma.log 2>/dev/null || ! grep -qF "${1}" asma.log; then echo "error: asma didn't report error ${1} in faulty code" tail asma.log @@ -30,11 +30,11 @@ expect_failure() { } echo 'Assembling asma with uxnasm' -build_asma > asma.usm -../bin/uxnasm asma.usm asma.rom > uxnasm.log -find ../projects -type f -name '*.usm' -not -name 'blank.usm' | sort | while read F; do +build_asma > asma.tal +../bin/uxnasm asma.tal asma.rom > uxnasm.log +find ../projects -type f -name '*.tal' -not -name 'blank.tal' | sort | while read F; do echo "Comparing assembly of ${F}" - BN="$(basename "${F%.usm}")" + BN="$(basename "${F%.tal}")" if ! ../bin/uxnasm "${F}" "uxnasm-${BN}.rom" > uxnasm.log; then echo "error: uxnasm failed to assemble ${F}" @@ -43,7 +43,7 @@ find ../projects -type f -name '*.usm' -not -name 'blank.usm' | sort | while rea fi xxd "uxnasm-${BN}.rom" > "uxnasm-${BN}.hex" - cp "${F}" 'in.usm' + cp "${F}" 'in.tal' if ! ../bin/uxncli asma.rom > asma.log; then echo "error: asma failed to assemble ${F}, while uxnasm succeeded" tail asma.log diff --git a/etc/asma.lua b/etc/asma.lua index 015b411..05113ab 100644 --- a/etc/asma.lua +++ b/etc/asma.lua @@ -147,8 +147,8 @@ fmt = function(...) return (('\t%-11s %-10s %-12s %-14s %s '):format(...):gsub(' +$', '\n')) end do - local _with_0 = assert(io.open('projects/software/asma.usm.tmp', 'w')) - for l in assert(io.lines('projects/software/asma.usm')) do + local _with_0 = assert(io.open('projects/software/asma.tal.tmp', 'w')) + for l in assert(io.lines('projects/software/asma.tal')) do if l:match('--- cut here ---') then break end @@ -228,4 +228,4 @@ do ]]) _with_0:close() end -return os.execute('mv projects/software/asma.usm.tmp projects/software/asma.usm') +return os.execute('mv projects/software/asma.tal.tmp projects/software/asma.tal') diff --git a/etc/asma.moon b/etc/asma.moon index 54a23e6..30cfcd0 100644 --- a/etc/asma.moon +++ b/etc/asma.moon @@ -1,7 +1,7 @@ -- -- Asma tree helper script -- --- This script updates the trees at the end of projects/software/asma.usm when +-- This script updates the trees at the end of projects/software/asma.tal when -- Uxn's opcode set changes or new runes (first character of tokens) are -- created, so that new changes in the C assembler can be incorporated rapidly -- into asma. @@ -122,8 +122,8 @@ printout = true fmt = (...) -> ('\t%-11s %-10s %-12s %-14s %s '\format(...)\gsub ' +$', '\n') -with assert io.open 'projects/software/asma.usm.tmp', 'w' - for l in assert io.lines 'projects/software/asma.usm' +with assert io.open 'projects/software/asma.tal.tmp', 'w' + for l in assert io.lines 'projects/software/asma.tal' if l\match '--- cut here ---' break \write l @@ -193,5 +193,5 @@ with assert io.open 'projects/software/asma.usm.tmp', 'w' ]] \close! -os.execute 'mv projects/software/asma.usm.tmp projects/software/asma.usm' +os.execute 'mv projects/software/asma.tal.tmp projects/software/asma.tal' diff --git a/etc/usm.sublime-syntax b/etc/usm.sublime-syntax index e75774e..7f02ccb 100644 --- a/etc/usm.sublime-syntax +++ b/etc/usm.sublime-syntax @@ -2,11 +2,11 @@ --- # See http://www.sublimetext.com/docs/3/syntax.html name: Uxn Assembly -scopeName: usm. -fileTypes: [usm] +scopeName: tal. +fileTypes: [tal] file_extensions: - - usm -scope: source.usm + - tal +scope: source.tal contexts: main: diff --git a/etc/uxambly-translate.moon b/etc/uxambly-translate.moon index 5487873..04a7578 100644 --- a/etc/uxambly-translate.moon +++ b/etc/uxambly-translate.moon @@ -1,4 +1,4 @@ --- Used for porting Uxambly code for use with the old assembler +-- Used for porting Uxntal code for use with the old assembler -- in commit 82f7103a55c21b13f898b20e5d1e174e501bc825 with the -- assembler that replaced it straight afterwards. @@ -93,11 +93,11 @@ translate = (_filename) -> f\close! os.exit 0 -translate 'attic/software/assembler.usm' +translate 'attic/software/assembler.tal' os.exit 0 -translate 'attic/tests/opcodes.usm' -translate 'attic/tests/basics.usm' +translate 'attic/tests/opcodes.tal' +translate 'attic/tests/basics.tal' -- for k, v in pairs t -- print k diff --git a/mkfile b/mkfile index 9073ac1..30a7a56 100644 --- a/mkfile +++ b/mkfile @@ -1,8 +1,8 @@ /dev/null +%.rom:Q: %.tal bin/uxnasm + bin/uxnasm $stem.tal $target >/dev/null bin/uxncli: uxncli.$O uxn.$O $LD $LDFLAGS -o $target $prereq diff --git a/projects/examples/blank.usm b/projects/examples/blank.tal similarity index 100% rename from projects/examples/blank.usm rename to projects/examples/blank.tal diff --git a/projects/examples/demos/automata.usm b/projects/examples/demos/automata.tal similarity index 100% rename from projects/examples/demos/automata.usm rename to projects/examples/demos/automata.tal diff --git a/projects/examples/demos/bifurcan.usm b/projects/examples/demos/bifurcan.tal similarity index 100% rename from projects/examples/demos/bifurcan.usm rename to projects/examples/demos/bifurcan.tal diff --git a/projects/examples/demos/darena.usm b/projects/examples/demos/darena.tal similarity index 99% rename from projects/examples/demos/darena.usm rename to projects/examples/demos/darena.tal index 150dd7b..0ef08b0 100644 --- a/projects/examples/demos/darena.usm +++ b/projects/examples/demos/darena.tal @@ -1,4 +1,4 @@ -( darena.usm ) +( darena.tal ) ( an open-ended game of rocks and sand ) ( contributed by and cc0 sejo 12021 ) diff --git a/projects/examples/demos/drum-rack.usm b/projects/examples/demos/drum-rack.tal similarity index 100% rename from projects/examples/demos/drum-rack.usm rename to projects/examples/demos/drum-rack.tal diff --git a/projects/examples/demos/life.usm b/projects/examples/demos/life.tal similarity index 100% rename from projects/examples/demos/life.usm rename to projects/examples/demos/life.tal diff --git a/projects/examples/demos/musictracker.usm b/projects/examples/demos/musictracker.tal similarity index 100% rename from projects/examples/demos/musictracker.usm rename to projects/examples/demos/musictracker.tal diff --git a/projects/examples/demos/neralie.usm b/projects/examples/demos/neralie.tal similarity index 100% rename from projects/examples/demos/neralie.usm rename to projects/examples/demos/neralie.tal diff --git a/projects/examples/demos/piano.usm b/projects/examples/demos/piano.tal similarity index 100% rename from projects/examples/demos/piano.usm rename to projects/examples/demos/piano.tal diff --git a/projects/examples/demos/polycat.usm b/projects/examples/demos/polycat.tal similarity index 100% rename from projects/examples/demos/polycat.usm rename to projects/examples/demos/polycat.tal diff --git a/projects/examples/demos/theme.usm b/projects/examples/demos/theme.tal similarity index 100% rename from projects/examples/demos/theme.usm rename to projects/examples/demos/theme.tal diff --git a/projects/examples/devices/audio.channels.usm b/projects/examples/devices/audio.channels.tal similarity index 100% rename from projects/examples/devices/audio.channels.usm rename to projects/examples/devices/audio.channels.tal diff --git a/projects/examples/devices/audio.usm b/projects/examples/devices/audio.tal similarity index 100% rename from projects/examples/devices/audio.usm rename to projects/examples/devices/audio.tal diff --git a/projects/examples/devices/console.lib.usm b/projects/examples/devices/console.lib.tal similarity index 100% rename from projects/examples/devices/console.lib.usm rename to projects/examples/devices/console.lib.tal diff --git a/projects/examples/devices/console.usm b/projects/examples/devices/console.tal similarity index 100% rename from projects/examples/devices/console.usm rename to projects/examples/devices/console.tal diff --git a/projects/examples/devices/controller.buttons.usm b/projects/examples/devices/controller.buttons.tal similarity index 100% rename from projects/examples/devices/controller.buttons.usm rename to projects/examples/devices/controller.buttons.tal diff --git a/projects/examples/devices/controller.keys.usm b/projects/examples/devices/controller.keys.tal similarity index 100% rename from projects/examples/devices/controller.keys.usm rename to projects/examples/devices/controller.keys.tal diff --git a/projects/examples/devices/datetime.usm b/projects/examples/devices/datetime.tal similarity index 100% rename from projects/examples/devices/datetime.usm rename to projects/examples/devices/datetime.tal diff --git a/projects/examples/devices/file.load.usm b/projects/examples/devices/file.load.tal similarity index 100% rename from projects/examples/devices/file.load.usm rename to projects/examples/devices/file.load.tal diff --git a/projects/examples/devices/file.save.usm b/projects/examples/devices/file.save.tal similarity index 100% rename from projects/examples/devices/file.save.usm rename to projects/examples/devices/file.save.tal diff --git a/projects/examples/devices/file.usm b/projects/examples/devices/file.tal similarity index 100% rename from projects/examples/devices/file.usm rename to projects/examples/devices/file.tal diff --git a/projects/examples/devices/mouse.usm b/projects/examples/devices/mouse.tal similarity index 100% rename from projects/examples/devices/mouse.usm rename to projects/examples/devices/mouse.tal diff --git a/projects/examples/devices/screen.usm b/projects/examples/devices/screen.tal similarity index 100% rename from projects/examples/devices/screen.usm rename to projects/examples/devices/screen.tal diff --git a/projects/examples/gui/animation.usm b/projects/examples/gui/animation.tal similarity index 100% rename from projects/examples/gui/animation.usm rename to projects/examples/gui/animation.tal diff --git a/projects/examples/gui/hover.usm b/projects/examples/gui/hover.tal similarity index 100% rename from projects/examples/gui/hover.usm rename to projects/examples/gui/hover.tal diff --git a/projects/examples/gui/label.usm b/projects/examples/gui/label.usm deleted file mode 100644 index 510f41e..0000000 --- a/projects/examples/gui/label.usm +++ /dev/null @@ -1,141 +0,0 @@ -( GUI Labels ) - -%RTN { JMP2r } -%2// { #01 SFT2 } -%8** { #30 SFT2 } - -( devices ) - -|00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ] -|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $1 ] - -( variables ) - -|0000 - -@label [ &x $2 &y $2 &color $1 &addr $2 ] -@center [ &x $2 &y $2 ] - -( program ) - -|0100 - - ( theme ) #0f0f .System/r DEO2 #0fff .System/g DEO2 #0ff0 .System/b DEO2 - - ;draw JSR2 - -BRK - -@draw ( -- ) - - ( find screen center ) - .Screen/width DEI2 2// .center/x STZ2 - .Screen/height DEI2 2// .center/y STZ2 - - ( draw ver line ) - .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 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 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 LDZ .Screen/color DEO - ( incr ) #0001 ADD2 - ( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 - DUP2 LDA ,&loop JCN - POP2 - -RTN - -@draw-label-middle ( x y color addr -- ) - - ( load ) .label/addr STZ2 .label/color STZ .Screen/y DEO2 - ( align ) .label/addr LDZ2 ;get-text-length JSR2 8** 2// SUB2 .Screen/x DEO2 - .label/addr LDZ2 - &loop - ( draw ) DUP2 LDA #00 SWP 8** ;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 ,&loop JCN - POP2 - -RTN - -@draw-label-right ( x y color addr -- ) - - ( load ) .label/addr STZ2 .label/color STZ .Screen/y DEO2 - ( align ) .label/addr LDZ2 ;get-text-length JSR2 8** SUB2 .Screen/x DEO2 - .label/addr LDZ2 - &loop - ( draw ) DUP2 LDA #00 SWP 8** ;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 ,&loop JCN - POP2 - -RTN - -@get-text-length ( label* -- length ) - - #0000 ( counter ) - &loop - ( incr ) #0001 ADD2 OVR2 OVR2 ADD2 - LDA ,&loop JCN - SWP2 POP2 - -RTN - -@font ( spectrum-zx font ) -[ - 0000 0000 0000 0000 0000 2400 7e3c 0000 0000 2400 3c42 0000 0000 6c7c 7c38 1000 - 0010 387c 7c38 1000 0038 387c 6c10 3800 0010 387c 7c10 3800 0000 0018 1800 0000 - 007e 4242 4242 7e00 0000 1824 2418 0000 0018 2442 4224 1800 001e 063a 4a48 3000 - 0038 446c 107c 1000 000c 0808 0838 3800 003e 2222 2266 6600 0000 0822 0022 0800 - 0000 1018 1c18 1000 0000 0818 3818 0800 0008 1c00 001c 0800 0028 2828 2800 2800 - 003e 4a4a 3a0a 0a00 000c 3046 620c 3000 0000 0000 0000 ffff 0010 3800 3810 0038 - 0008 1c2a 0808 0800 0008 0808 2a1c 0800 0000 0804 7e04 0800 0000 1020 7e20 1000 - 0000 4040 7e00 0000 0000 0024 6624 0000 0000 1038 7c00 0000 0000 007c 3810 0000 - 0000 0000 0000 0000 0008 0808 0800 0800 0014 1400 0000 0000 0024 7e24 247e 2400 - 0008 1e28 1c0a 3c08 0042 0408 1020 4200 0030 4832 4c44 3a00 0008 1000 0000 0000 - 0004 0808 0808 0400 0010 0808 0808 1000 0000 1408 3e08 1400 0000 0808 3e08 0800 - 0000 0000 0008 0810 0000 0000 3c00 0000 0000 0000 0000 0800 0000 0204 0810 2000 - 003c 464a 5262 3c00 0018 2808 0808 3e00 003c 4202 3c40 7e00 003c 421c 0242 3c00 - 0008 1828 487e 0800 007e 407c 0242 3c00 003c 407c 4242 3c00 007e 0204 0810 1000 - 003c 423c 4242 3c00 003c 4242 3e02 3c00 0000 0008 0000 0800 0000 0800 0008 0810 - 0000 0810 2010 0800 0000 003e 003e 0000 0000 1008 0408 1000 003c 4202 0c00 0800 - 003c 425a 5442 3c00 0018 2442 7e42 4200 007c 427c 4242 7c00 003c 4240 4042 3c00 - 0078 4442 4244 7800 007e 407c 4040 7e00 003e 4040 7c40 4000 003c 4240 4e42 3c00 - 0042 427e 4242 4200 003e 0808 0808 3e00 0002 0202 4242 3c00 0044 4870 4844 4200 - 0040 4040 4040 7e00 0042 665a 4242 4200 0042 6252 4a46 4200 003c 4242 4242 3c00 - 007c 4242 7c40 4000 003c 4242 524a 3c00 007c 4242 7c44 4200 003c 403c 0242 3c00 - 00fe 1010 1010 1000 0042 4242 4242 3c00 0042 4242 4224 1800 0042 4242 5a66 4200 - 0042 2418 1824 4200 0082 4428 1010 1000 007e 0408 1020 7e00 000c 0808 0808 0c00 - 0040 2010 0804 0200 0018 0808 0808 1800 0008 1422 0000 0000 0000 0000 0000 7e00 - 0008 0400 0000 0000 0000 1c02 1e22 1e00 0020 203c 2222 3c00 0000 1e20 2020 1e00 - 0002 021e 2222 1e00 0000 1c22 3c20 1e00 000c 101c 1010 1000 0000 1c22 221e 021c - 0020 202c 3222 2200 0008 0018 0808 0400 0008 0008 0808 4830 0020 2428 3028 2400 - 0010 1010 1010 0c00 0000 6854 5454 5400 0000 5864 4444 4400 0000 3844 4444 3800 - 0000 7844 4478 4040 0000 3c44 443c 0406 0000 2c30 2020 2000 0000 3840 3804 7800 - 0010 103c 1010 0c00 0000 4444 4444 3800 0000 4444 2828 1000 0000 4454 5454 2800 - 0000 4428 1028 4400 0000 4444 443c 0438 0000 7c08 1020 7c00 000c 0810 1008 0c00 - 0008 0808 0808 0800 0030 1008 0810 3000 0000 0032 4c00 0000 3c42 99a1 a199 423c -] - -@text1 [ "Left 20 "Aligned 00 ] -@text2 [ "Middle 20 "Aligned 00 ] -@text3 [ "Right 20 "Aligned 00 ] -@text4 [ "even 00 ] -@text5 [ "odd 00 ] \ No newline at end of file diff --git a/projects/examples/gui/picture.usm b/projects/examples/gui/picture.tal similarity index 100% rename from projects/examples/gui/picture.usm rename to projects/examples/gui/picture.tal diff --git a/projects/examples/gui/proportional-font.usm b/projects/examples/gui/proportional-font.tal similarity index 100% rename from projects/examples/gui/proportional-font.usm rename to projects/examples/gui/proportional-font.tal diff --git a/projects/examples/gui/shapes.usm b/projects/examples/gui/shapes.tal similarity index 100% rename from projects/examples/gui/shapes.usm rename to projects/examples/gui/shapes.tal diff --git a/projects/examples/gui/wallpaper.usm b/projects/examples/gui/wallpaper.tal similarity index 100% rename from projects/examples/gui/wallpaper.usm rename to projects/examples/gui/wallpaper.tal diff --git a/projects/software/asma.usm b/projects/software/asma.tal similarity index 99% rename from projects/software/asma.usm rename to projects/software/asma.tal index 547e76d..1a3534f 100644 --- a/projects/software/asma.usm +++ b/projects/software/asma.tal @@ -22,7 +22,7 @@ ( Assemble the source code into an output ROM file. - If all you want is to use asma.usm to assemble files, insert a BRK + If all you want is to use asma.tal to assemble files, insert a BRK after this statement. ) ;&source-file ;&dest-file ;asma-assemble-file JSR2 @@ -60,7 +60,7 @@ #00ff JMP2 &source-file - "projects/demos/piano.usm 00 + "projects/demos/piano.tal 00 &dest-file "bin/asma-boot.rom 00