added "contrib" directory with syntax coloring files. added two library files (cbm i/o error codes and basic error codes)

git-svn-id: https://svn.code.sf.net/p/acme-crossass/code-0/trunk@36 4df02467-bbd4-4a76-a152-e7ce94205b78
This commit is contained in:
marcobaye 2014-06-08 17:59:41 +00:00
parent 808ccf39a3
commit dc12e23b95
7 changed files with 609 additions and 0 deletions

50
ACME_Lib/cbm/baserror.a Normal file
View File

@ -0,0 +1,50 @@
;ACME 0.95.1
!ifdef lib_cbm_baserror_a !eof
lib_cbm_baserror_a = 1
; i/o error 0 (BREAK) is mapped to basic error 30
; codes 1 through 9 are the same for i/o and basic errors:
baserror_TOO_MANY_FILES = 1
baserror_FILE_OPEN = 2
baserror_FILE_NOT_OPEN = 3
baserror_FILE_NOT_FOUND = 4
baserror_DEVICE_NOT_PRESENT = 5
baserror_NOT_INPUT_FILE = 6
baserror_NOT_OUTPUT_FILE = 7
baserror_MISSING_FILE_NAME = 8
baserror_ILLEGAL_DEVICE_NUMBER = 9
; from here on basic errors only:
baserror_NEXT_WITHOUT_FOR = 10
baserror_SYNTAX = 11
baserror_RETURN_WITHOUT_GOSUB = 12
baserror_OUT_OF_DATA = 13
baserror_ILLEGAL_QUANTITY = 14
baserror_OVERFLOW = 15
baserror_OUT_OF_MEMORY = 16
baserror_UNDEFD_STATEMENT = 17
baserror_BAD_SUBSCRIPT = 18
baserror_REDIMD_ARRAY = 19
baserror_DIVISION_BY_ZERO = 20
baserror_ILLEGAL_DIRECT = 21
baserror_TYPE_MISMATCH = 22
baserror_STRING_TOO_LONG = 23
baserror_FILE_DATA = 24
baserror_FORMULA_TOO_COMPLEX = 25
baserror_CANT_CONTINUE = 26
baserror_UNDEFINED_FUNCTION = 27
baserror_VERIFY = 28
baserror_LOAD = 29
baserror_BREAK = 30
; from here on, basic 7 only:
baserror_CANT_RESUME = 31
baserror_LOOP_NOT_FOUND = 32
baserror_LOOP_WITHOUT_DO = 33
baserror_DIRECT_MODE_ONLY = 34
baserror_NO_GRAPHICS_AREA = 35
baserror_BAD_DISK = 36
baserror_BEND_NOT_FOUND = 37
baserror_LINE_NUMBER_TOO_LARGE = 38 ; for RENUMBER
baserror_UNRESOLVED_REFERENCE = 39 ; for RENUMBER
baserror_UNIMPLEMENTED_COMMAND = 40 ; for OFF and QUIT
baserror_FILE_READ = 41

16
ACME_Lib/cbm/ioerror.a Normal file
View File

@ -0,0 +1,16 @@
;ACME 0.95.1
!ifdef lib_cbm_ioerror_a !eof
lib_cbm_ioerror_a = 1
; if kernel i/o routine exits with carry set, A holds one of these:
ioerror_BREAK = 0
ioerror_TOO_MANY_FILES = 1
ioerror_FILE_OPEN = 2
ioerror_FILE_NOT_OPEN = 3
ioerror_FILE_NOT_FOUND = 4
ioerror_DEVICE_NOT_PRESENT = 5
ioerror_NOT_INPUT_FILE = 6
ioerror_NOT_OUTPUT_FILE = 7
ioerror_MISSING_FILE_NAME = 8
ioerror_ILLEGAL_DEVICE_NUMBER = 9

View File

@ -0,0 +1,51 @@
Just to make sure:
The syntax file and this help text come with ABSOLUTELY NO WARRANTY!
If you destroy your system, don't come whining to me.
--------------------
systemwide install
--------------------
1) Copy the syntax file to the correct directory by typing:
cp acme.jsf /etc/joe/syntax/
2) Add the following lines to the "SECOND SECTION" of "/etc/joe/joerc":
*.a
-indentc 9
-istep 1
-autoindent
-syntax acme
3) done!
--------------
user install
--------------
1) Copy the syntax file to the correct directory by typing:
mkdir -p ~/.joe/syntax
cp acme.jsf ~/.joe/syntax/
2) If you do not have a ~/.joerc file yet, create one by typing:
if [ -e ~/.joerc ] ; then echo :include /etc/joe/joerc > ~/.joerc ; fi
3) Add the following lines to the "SECOND SECTION" of your .joerc file:
*.a
-indentc 9
-istep 1
-autoindent
-syntax acme
4) done!
---------
testing
---------
After installing the syntax file, open the file "color.a" in joe to
check whether it works (and to see what it looks like).

297
contrib/joe_syntax/acme.jsf Normal file
View File

@ -0,0 +1,297 @@
# JOE syntax highlight file for ACME assembly language
# new in version 3: added jml, jsl
# new in version 4: added !warn, !error, !serious
# new in version 5: changed mnemo colors
# new in version 6: added !ifndef, !addr
# define colors
#
# bold inverse blink dim underline
# white cyan magenta blue yellow green red black
# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black
=Idle
=Ident
=Anon bold
=Bad bold red
=Call bold
=Comment green
=Constant cyan
=Keyword bold
=Pseudo bold
=Mnemo6502 bold yellow
=PCMnemo6502 bold red
=Mnemo6510 bg_red bold yellow
=PCMnemo6510 bg_red bold red
=Mnemo65c02 bg_cyan bold yellow
=PCMnemo65c02 bg_cyan bold red
=Mnemo65816 bg_blue bold yellow
=PCMnemo65816 bg_blue bold red
:reset Idle
* idle noeat
" \t" reset
:idle Idle
* idle
";" line_comment recolor=-1
":{\n" reset
"!.a-zA-Z_€-" checkstring recolor=-1 buffer
"+" anonf_or_macro recolor=-1
"-" anonb recolor=-1
"0" got_zero recolor=-1
"%" binary recolor=-1
"&" octal recolor=-1
"1-9" decimal recolor=-1
"$" hex recolor=-1
"'" char recolor=-1
"\"" string recolor=-1
# *= "*"
# ",:=()><[]*&|!~+\-%^" control recolor=-1
:line_comment Comment
* line_comment
"\n" reset
:call Call
* idle noeat
"a-zA-Z0-9€-" call
:anonf_or_macro Anon
* idle noeat
"+" anonf
".a-zA-Z0-9€-" call recolor=-2
:anonf Anon
* idle noeat
"+" anonf
:anonb Anon
* idle noeat
"-" anonb
:got_zero Constant
* idle noeat
"xX" hex
"0-9" decimal noeat
:binary Constant
* idle noeat
"01.#" binary
"2-9" badnum noeat
:octal Constant
* idle noeat
"0-7" octal
"89" badnum noeat
:hex Constant
* idle noeat
"0-9A-Fa-f" hex
:decimal Constant
* idle noeat
"0-9" decimal
:badnum Bad
* idle noeat
"0-9" badnum
:string Constant
* string
"\"" idle
:char Constant
* char
"'" idle
:ident Idle
* idle noeat
"a-zA-Z0-9_" ident
:checkstring Ident
* idle noeat istrings
"!8" pseudo
"!08" pseudo
"!by" pseudo
"!byte" pseudo
"!16" pseudo
"!wo" pseudo
"!word" pseudo
"!24" pseudo
"!32" pseudo
"!tx" pseudo
"!text" pseudo
"!raw" pseudo
"!pet" pseudo
"!scr" pseudo
"!scrxor" pseudo
"!ct" pseudo
"!convtab" pseudo
"!fi" pseudo
"!fill" pseudo
"!zn" pseudo
"!zone" pseudo
"!sl" pseudo
"!src" pseudo
"!source" pseudo
"!bin" pseudo
"!binary" pseudo
"!eof" pseudo
"!endoffile" pseudo
"!pseudopc" pseudo
"!align" pseudo
"!cpu" pseudo
"!to" pseudo
"!set" pseudo
"!macro" pseudo
"!if" pseudo
"!do" pseudo
"!for" pseudo
"!ifdef" pseudo
"!ifndef" pseudo
"!al" pseudo
"!as" pseudo
"!rl" pseudo
"!rs" pseudo
"!initmem" pseudo
"!warn" pseudo
"!error" pseudo
"!serious" pseudo
"!addr" pseudo
"!address" pseudo
"ora" mnemo6502
"asl" mnemo6502
"and" mnemo6502
"rol" mnemo6502
"eor" mnemo6502
"lsr" mnemo6502
"adc" mnemo6502
"ror" mnemo6502
"sta" mnemo6502
"stx" mnemo6502
"lda" mnemo6502
"ldx" mnemo6502
"cmp" mnemo6502
"dec" mnemo6502
"sbc" mnemo6502
"inc" mnemo6502
"bit" mnemo6502
"cpx" mnemo6502
"cpy" mnemo6502
"ldy" mnemo6502
"sty" mnemo6502
"php" mnemo6502
"clc" mnemo6502
"plp" mnemo6502
"sec" mnemo6502
"pha" mnemo6502
"cli" mnemo6502
"pla" mnemo6502
"sei" mnemo6502
"dey" mnemo6502
"txa" mnemo6502
"tya" mnemo6502
"txs" mnemo6502
"tay" mnemo6502
"tax" mnemo6502
"clv" mnemo6502
"tsx" mnemo6502
"iny" mnemo6502
"dex" mnemo6502
"cld" mnemo6502
"inx" mnemo6502
"nop" mnemo6502
"sed" mnemo6502
"brk" pcmnemo6502
"jmp" pcmnemo6502
"jsr" pcmnemo6502
"bpl" pcmnemo6502
"bmi" pcmnemo6502
"bvc" pcmnemo6502
"bvs" pcmnemo6502
"bcc" pcmnemo6502
"bcs" pcmnemo6502
"bne" pcmnemo6502
"beq" pcmnemo6502
"rti" pcmnemo6502
"rts" pcmnemo6502
"phy" mnemo65c02
"ply" mnemo65c02
"phx" mnemo65c02
"plx" mnemo65c02
"tsb" mnemo65c02
"trb" mnemo65c02
"stz" mnemo65c02
"bra" pcmnemo65c02
"wai" mnemo65816
"pei" mnemo65816
"per" mnemo65816
"mvp" mnemo65816
"mvn" mnemo65816
"rep" mnemo65816
"sep" mnemo65816
"pea" mnemo65816
"phd" mnemo65816
"tcs" mnemo65816
"pld" mnemo65816
"tsc" mnemo65816
"wdm" mnemo65816
"phk" mnemo65816
"tcd" mnemo65816
"tdc" mnemo65816
"phb" mnemo65816
"txy" mnemo65816
"plb" mnemo65816
"tyx" mnemo65816
"xba" mnemo65816
"xce" mnemo65816
"brl" pcmnemo65816
"cop" pcmnemo65816
"jml" pcmnemo65816
"jsl" pcmnemo65816
"rtl" pcmnemo65816
"stp" pcmnemo65816
"slo" mnemo6510
"rla" mnemo6510
"sre" mnemo6510
"rra" mnemo6510
"sax" mnemo6510
"lax" mnemo6510
"dcp" mnemo6510
"isc" mnemo6510
"anc" mnemo6510
"asr" mnemo6510
"arr" mnemo6510
"sbx" mnemo6510
"dop" mnemo6510
"top" mnemo6510
"lxa" mnemo6510
"jam" pcmnemo6510
"else" keyword
"until" keyword
"while" keyword
done
"!a-zA-Z0-9" checkstring
# " \t" idle noeat
:pseudo Pseudo
* idle noeat
:mnemo6502 Mnemo6502
* idle noeat
:pcmnemo6502 PCMnemo6502
* idle noeat
:mnemo65c02 Mnemo65c02
* idle noeat
:pcmnemo65c02 PCMnemo65c02
* idle noeat
:mnemo65816 Mnemo65816
* idle noeat
:pcmnemo65816 PCMnemo65816
* idle noeat
:mnemo6510 Mnemo6510
* idle noeat
:pcmnemo6510 PCMnemo6510
* idle noeat
:keyword Keyword
* idle noeat

View File

@ -0,0 +1,27 @@
;ACME 0.91 ; comments are green
!serious "This file is not meant to be assembled."
binary1=%00001000 ; label names are grey, constants are cyan
binary2=%....#...
octal=&0123456789 ; bad constants are bold red
decimal=63
hex1=0xcd
hex2=$ef
!sl "labeldump.l" ; strings are cyan
*=$1300
+dings ; macro calls are bold
else ; keyword: bold
!eof ; pseudo: bold
-- ; anonymous labels should be bold (white)
; 6502 mnemonics
nop ; normal ones are yellow
rts ; PC-changing ones are red
; illegals
dop ; most of them are yellow on red
jam ; this single one's red on red. Guess why.
; 65c02 extensions
stz ; normal ones are yellow on cyan
bra ; PC-changing ones (just "BRA") are red
; 65816 extensions
xce ; yellow on blue
cop ; PC-changing ones are red

View File

@ -0,0 +1,37 @@
--- UltraEdit wordfile for ACME assembler source codes ---
The word list is freeware - anyone may use it as they see fit,
commercially or otherwise. My only restriction is that I won't be held
responsible for any damages caused by using it.
Instructions to use the wordlist:
The contents of the wordfile should be pasted in at the end of the
file called "Wordfile.txt" in the UltraEdit program directory, and
then you should check that the number on the first line of the
assembler language definition doesn't conflict with any other language
in the wordfile. It currently reads "/L10 ..." but instead of 10 you
could put in any number between 1 and 20. 1-9 are normally already
taken, so 10 is a good choice if this is the only language you've
added to UltraEdit.
Restart UltraEdit if it was running. That's it.
There's more information in UltraEdit's built-in
help and on this page:
http://www.ultraedit.com/index.php?name=Content&pa=showpage&pid=40#wordfiles
The only thing which I think may seem odd to some people is that some
of the opcodes are marked red. That's the instructions that may change
the value of the program counter (JMP, JSR, RTS, BEQ etc). I think it
makes it easier to follow the program flow when reading the code.
Anyway, this can be changed so that they have the same color as the
other opcodes. It's in the "Advanced | Configuration" dialog box in
UltraEdit.
Best regards,
Fredrik Ramsberg

View File

@ -0,0 +1,131 @@
/L10"ACME 65xx Asm" Nocase Line Comment = ; Escape Char = \ String Chars = "' File Extensions = A ASM ASS
/Delimiters = :;#$"'()<>^-*/%+=&| , ?
/Function String = "%[a-zA-Z_][a-zA-Z0-9_]+"
/Indent Strings = "{"
/Unindent Strings = "}"
/C1"General opcodes"
,
ADC
AND
ASL
CLC COP
CLD
CLI
CLV
CMP
CPX
CPY
DEC
DEX
DEY
DCP
EOR
INC
INX
INY
ISC
LDA
LDX
LDY
LSR
LAX
MVN MVP
NOP
ORA
PHA PEA PEI PER PHB PHD PHK PLB PLD PHX PHY PLX PLY
PHP
PLA
PLP
ROL REP
ROR
RLA RRA
SBC SEP STZ S
SEC
SED
SEI
STA
STX
STY
SLO SRE SAX
TAX TCD TCS TDC TSC TXY TYX TRB TSB
TAY
TSX
TXA
TXS
TYA
WDM
X XBA XCE
Y
/C2"Program flow opcodes"
BCC BRL BRA
BCS
BEQ
BIT
BMI
BNE
BPL
BRK
BVC
BVS
JMP JML JSL
JSR
RTI RTL
RTS
STP
WAI
/C3"Pseudo opcodes"
!08 !by !byte !8
!16 !wo !word
!24
!32
!fill !fi
!addr !address
!convtab !ct
!text !tx
!pet
!raw
!scr
!scrxor
!to
!source !src
!binary !bin
!sl
!zone !zn
!if
!ifdef
!ifndef
!for
!set
!do
!endoffile !eof
!macro
!initmem
!pseudopc
!align
!cpu
!al
!as
!rl
!rs
!warn !error !serious
else
/C4 "operators"
>> > >=
=
+
! !=
^
-
*
// /
%
+
-
<< < <=
&
|
DIV
NOT
MOD
OR
XOR