• Stars
    star
    2
  • Language
  • License
    MIT License
  • Created over 7 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

64tass Bundle for TextMate 2

Version Plaftorm

64tass Bundle for TextMate 2

If you like to code for Commodore 64 and love TextMate you’ll enjoy this bundle. 64tass is cross assembler targeting the 65xx series of micro processors.

Just type your code and hit + R

Installation

cd ~/Library/Application\ Support/TextMate/Bundles/
git clone https://github.com/vigo/textmate2-64tass-bundle.git C64Tass.tmbundle

# Relaunch Textmate

Todo

  • Syntax highlighting and language grammar is work-in-progress now!

Requirements

TextMate Setup

You need to set your environment variables. We have one required and two optional variables.

Required Variables

Update

We don’t need TM_64TASS_PATH variable anymore. Just added binary under Support/bin/ folder. Current version: 64tass Turbo Assembler Macro V1.52.1237?

TM_VICE_PATH

Command-line binary of X64.app. Vice comes with these tools under tools/ folder:

c1541
cartconv
petcat
vice-launcher.sh
x128
x64
x64dtv
x64sc
xcbm2
xcbm5x0
xpet
xplus4
xvic

Example: /Users/vigo/Applications/MacVice/tools/x64

# example from command-line
defaults write com.macromates.textmate environmentVariables -array-add \
    '{enabled = 1; value = "/Users/vigo/Applications/MacVice/tools/x64"; name = "TM_VICE_PATH"; }'

Optional Variables

TM_64TASS_OPTIONS

Default options are: -C -a. You can override it via setting TM_64TASS_OPTIONS variable. You can check the available options for 64tass via 64tass --help:

Usage: 64tass [OPTIONS...] SOURCES
64tass Turbo Assembler Macro V1.52.1237?

  -a, --ascii           Source is not in PETASCII
  -B, --long-branch     Automatic bxx *+3 jmp $xxxx
  -C, --case-sensitive  Case sensitive labels
  -D <label>=<value>    Define <label> to <value>
  -E, --error=<file>    Place errors into <file>
  -I <path>             Include search path
  -M <file>             Makefile dependencies to <file>
  -q, --quiet           Do not output summary and header
  -T, --tasm-compatible Enable TASM compatible mode
  -w, --no-warn         Suppress warnings
      --no-caret-diag   Suppress source line display
      
 Diagnostic options:
  -Wall                 Enable most diagnostic warnings
  -Werror               Diagnostic warnings to errors
  -Werror=<name>        Make a diagnostic to an error
  -Wno-error=<name>     Make a diagnostic to a warning
  -Wbranch-page         Warn if a branch crosses a page
  -Wimplied-reg         No implied register aliases
  -Wno-deprecated       No deprecated feature warnings
  -Wno-jmp-bug          No jmp ($xxff) bug warning
  -Wno-label-left       No warning about strange labels
  -Wno-mem-wrap         No offset overflow warning
  -Wno-pc-wrap          No PC overflow warning
  -Wold-equal           Warn about old equal operator
  -Woptimize            Optimization warnings
  -Wshadow              Check symbol shadowing
  -Wstrict-bool         No implicit bool conversions
  
 Output selection:
  -o, --output=<file>   Place output into <file>
  -b, --nostart         Strip starting address
  -f, --flat            Generate flat output file
  -n, --nonlinear       Generate nonlinear output file
  -X, --long-address    Use 3 byte start/len address
      --cbm-prg         Output CBM program file
      --atari-xex       Output Atari XEX file
      --apple-ii        Output Apple II file
      --intel-hex       Output Intel HEX file
      --s-record        Output Motorola S-record file
      
 Target CPU selection:
      --m65xx           Standard 65xx (default)
  -c, --m65c02          CMOS 65C02
      --m65ce02         CSG 65CE02
  -e, --m65el02         65EL02
  -i, --m6502           NMOS 65xx
  -t, --m65dtv02        65DTV02
  -x, --m65816          W65C816
      --mr65c02         R65C02
      --mw65c02         W65C02
      --m4510           CSG 4510
      
 Source listing and labels:
  -l, --labels=<file>   List labels into <file>
      --vice-labels     Labels in VICE format
      --dump-labels     Dump for debugging
  -L, --list=<file>     List into <file>
  -m, --no-monitor      Don't put monitor code into listing
  -s, --no-source       Don't put source code into listing
      --line-numbers    Put line numbers into listing
      --tab-size=<n>    Override the default tab size (8)
      --verbose-list    List unused lines as well
      
 Misc:
  -?, --help            Give this help list
      --usage           Give a short usage message
  -V, --version         Print program version
  
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

Report bugs to <[email protected]>.

Set it from Terminal:

# example from command-line
defaults write com.macromates.textmate environmentVariables -array-add \
    '{enabled = 1; value = "YOUR OPTIONS"; name = "TM_64TASS_OPTIONS"; }'

TM_VICE_OPTIONS

You can define extra options for x64 executable. Try: x64 -h for all options. I’m using +cart which is Disable default cartridge in my configurations. It’s totally up to you.

# example from command-line
defaults write com.macromates.textmate environmentVariables -array-add \
    '{enabled = 1; value = "+cart"; name = "TM_VICE_OPTIONS"; }'

Example

Save this file as ~/Desktop/test.asm and hit + R

    * = $0801
    .word ss, 2005
    .null $9e, ^start ;will be sys 4096
ss    .word 0

    * = $1000
    
start
    lda #$00
    sta $d020
    rts

Screens

Example code snippet

Example runner output

Example running code

Output theme can be vary according to your preferences.

Theme Additions

I’ve just added few scope names. Please add these scopes for better syntax coloring. I’m using Solarized Dark Theme

{	name = '64Tass - Hexadecimal, Dollar Sign';
	scope = 'punctuation.definition.64tass.dollar.sign';
	settings = { foreground = '#ffffff'; };
},
{	name = '64Tass - Labels';
	scope = 'entity.name.64tass.label';
	settings = { foreground = '#8C7ECC'; };
},
{	name = '64Tass - Comment';
	scope = 'comment.line.semicolon.64tass';
	settings = { background = '#184753'; };
},
{	name = '64Tass - Memory Pointer';
	scope = 'punctuation.definition.64tass.star.equals';
	settings = { foreground = '#6a5cdd'; };
},

Change Log

2017-07-02

  • 64tass binary embedded to Support/bin
  • Added: Example code and screenshot

Contributer(s)

Contribute

All PR’s are welcome!

  1. fork (https://github.com/vigo/textmate2-64tass-bundle/fork)
  2. Create your branch (git checkout -b my-features)
  3. commit yours (git commit -am 'added killer options')
  4. push your branch (git push origin my-features)
  5. Than create a new Pull Request!

License

This project is licensed under MIT

More Repositories

1

git-puf-noktalari

Günlük hayatta kullandığımız revizyon kontrol sistemi GIT ile ilgili küçük ipuçlarını anlatan yeni mini kitabım.
Ruby
425
star
2

kommit

Build your commit message without touching or editing your code!
Shell
204
star
3

ruby101-kitap

Türkçe Ruby kitabı
Ruby
197
star
4

dinozorus

1990'lı yıllara damgasını vuran efsane televizyon oyunu Dinozorus. Amiga 1200 - AGA
Assembly
134
star
5

turk-scene-tarihi

80'lerin ortasında başlayan, günümüz bilgisayar kültürünün neredeyse başlangıç noktası olan Türk SCENE/DEMOSCENE tarihçesi
85
star
6

lyk-2017

Linux Yaz Kampı 2017'de anlattığım konular.
41
star
7

django2-project-template

Django project/application starter for lazybones :)
Python
40
star
8

textmate-twitterbootstrap.tmbundle

TextMate bundle for Twitter's Bootstrap
HTML
33
star
9

statoo

`statoo` is a super simple http GET tool for checking site health
Go
32
star
10

awesome-c64

Commodore 64 related links such as C64 tools for Mac/Linux/PC, demoscene related stuff, coding tools, C64 utilities etc...
31
star
11

textmate-octopress.tmbundle

TextMate bundle for Octopress blog engine. http://octopress.org/
29
star
12

gh_issues

Manage GitHub issues from command-line (read only!)
Ruby
22
star
13

dotfiles-light

Just another but `lighter` version of BASH environment
Shell
18
star
14

django-admin-list-filter

Dead simple autocompletion for Django admin `list_filter`.
Python
18
star
15

dotfiles-universal

My old BASH dot-files... Try new one!
Shell
13
star
16

textmate2-python-fmt

Python FMT is a python linter/formatter/checker for TextMate.
Ruby
13
star
17

textmate2-gfm-preview

GitHub Flavored Markdown Preview for TextMate 2
CSS
13
star
18

django-project-template

Project starter for Django 1.11.4 ... Batteries included :)
Python
10
star
19

textmate-hosts.tmbundle

TextMate bundle for /etc/hosts file
9
star
20

dotfiles-fever

Elegant BASH environment for macOS, Ubuntu and Gentoo
Shell
8
star
21

textmate-window-manager

Window manager/arranger for oldskool TextMate (1.5)
Shell
7
star
22

apm-bash-completion

Bash completion for Atom Package Manager (apm)
Shell
6
star
23

stormssh-completion

Bash competion for `sshstorm` (https://github.com/emre/storm)
Shell
6
star
24

devpod

Official website of devPod
HTML
6
star
25

textmate2-ruff-linter

Ruff linter for TextMate2. Linter and auto fixer for python!
Perl
5
star
26

ugur.ozyilmazel.com-v5

Kişisel websitem V4.0
HTML
5
star
27

lsvirtualenvs

Small commandline tool for `virtualenvwrapper`
Go
4
star
28

ghstars

Show GitHub stars count for user!
Go
4
star
29

git-init-githubrepo

Create git repository for GitHub style
Go
4
star
30

git-tips

Git versiyon kontrol sistemi ile ilgili Türkçe dökümantasyon ve ipuçları
JavaScript
4
star
31

golang-notlarim

Golang geliştirme ile ilgili aldığım notlar
Ruby
4
star
32

dox2008

2007-2008 yıllarında İstanbul Bilgi Üniversitesi, web departmanı için hazırladığım javascript ve html/css eğitimleri
JavaScript
4
star
33

textmate2-power-tools

Some useful TextMate2 snippets, commands etc...
Ruby
3
star
34

inspect-go

Ruby-ish Object#inspect tryouts for Golang!
Go
3
star
35

putio

Command-Line client for put.io platform (unofficial)
Go
3
star
36

textmate2-tailwind-css

Tailwind CSS support for TextMate 2
Ruby
3
star
37

sayisal_captcha

Çok basit şekilde iki basamaklı sayılardan random toplama ya da çarpma üreten bir sistem
Ruby
2
star
38

learning-stimulus-02

I'm learning stimulus, this is example 02
JavaScript
2
star
39

vigo

I'm a hustler baby!
2
star
40

textmate2-gomodifytags

TextMate2 implementation of Fatih’s gomodifytags
Shell
2
star
41

vigo.io

Personal website
HTML
2
star
42

els

Unix `ls` command alternative via Ruby :)
Ruby
2
star
43

pg16_django

3. Programlama Günleri / Karabük - Django ile tanışma
Python
2
star
44

ruby101-kitap-kod

Ruby101 kitabında geçen kod örnekleri
2
star
45

learning-stimulus-01

I'm learning stimulus, this is example 01
JavaScript
1
star
46

textmate2-bootstrap3

Bootstrap 3's helpers for TextMate2
1
star
47

uptimerobot_cmd

Command-line client for Uptimerobot service
Ruby
1
star
48

stringutils-demo

A basic golang package for demo purpose only...
Go
1
star
49

textmate1-twitter-bs3.tmbundle

Twitter Bootstrap 3 bundle for TextMate1 (yes the oldest TextMate)
1
star
50

try_git

1
star
51

homebrew-ghstars

Brew tap for ghstars cli
Ruby
1
star
52

dji18njs

Modified and hardcore changed version of Django's i18n-javascript function. Can be usable as JavasScript Template engine. If you familiar with python's "format text" you will love this!
JavaScript
1
star
53

homebrew-lsvirtualenvs

brew tap for lsvirtualenvs
Ruby
1
star
54

homebrew-git-init-githubrepo

brew tap for `git-init-githubrepo`
Ruby
1
star
55

amiga-ascii.tmbundle

Oldskool Amiga ascii/azki/nfo/diz support for TextMate with real Amiga fonts
1
star
56

vigo.github.com

My developer home page...
HTML
1
star
57

ugur.ozyilmazel.com

Kişisel web sitem
HTML
1
star
58

my-custom-textmate1-bundle

Many snippets and my custom scratch-pad for TextMate1.
CSS
1
star
59

textmate-nanorc.tmbundle

.nanorc bundle for TextMate
Ruby
1
star
60

homebrew-statoo

brew tap repo for `statoo`
Ruby
1
star