Move the macro package sources into own files
git-svn-id: svn://svn.cc65.org/cc65/trunk@3583 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
22
src/ca65/macpack/cbm.mac
Normal file
22
src/ca65/macpack/cbm.mac
Normal file
@@ -0,0 +1,22 @@
|
||||
; Convert characters to screen codes
|
||||
.macro scrcode str
|
||||
.repeat .strlen(str), i
|
||||
.if (.strat(str, i) >= '@' .and .strat(str, i) <= 'z')
|
||||
.byte .strat(str, i) - '@'
|
||||
.elseif (.strat(str, i) >= 'A' .and .strat(str, i) <= 'Z')
|
||||
.byte .strat(str, i) - 'A' + 65
|
||||
.elseif (.strat(str, i) = '[')
|
||||
.byte 27
|
||||
.elseif (.strat(str, i) = ']')
|
||||
.byte 29
|
||||
.elseif (.strat(str, i) = '^')
|
||||
.byte 30
|
||||
.elseif (.strat(str, i) = '_')
|
||||
.byte 31
|
||||
.else
|
||||
.byte .strat(str, i)
|
||||
.endif
|
||||
.endrepeat
|
||||
.endmacro
|
||||
|
||||
|
||||
19
src/ca65/macpack/cpu.mac
Normal file
19
src/ca65/macpack/cpu.mac
Normal file
@@ -0,0 +1,19 @@
|
||||
|
||||
/* CPU bitmask constants */
|
||||
CPU_ISET_6502 = $01
|
||||
CPU_ISET_6502X = $02
|
||||
CPU_ISET_65SC02 = $04
|
||||
CPU_ISET_65C02 = $08
|
||||
CPU_ISET_65816 = $10
|
||||
CPU_ISET_SUNPLUS = $20
|
||||
CPU_ISET_SWEET16 = $40
|
||||
|
||||
/* CPU capabilities */
|
||||
CPU_6502 = CPU_ISET_6502
|
||||
CPU_6502X = CPU_ISET_6502|CPU_ISET_6502X
|
||||
CPU_65SC02 = CPU_ISET_6502|CPU_ISET_65SC02
|
||||
CPU_65C02 = CPU_ISET_6502|CPU_ISET_65SC02|CPU_ISET_65C02
|
||||
CPU_65816 = CPU_ISET_6502|CPU_ISET_65SC02|CPU_ISET_65816
|
||||
CPU_SUNPLUS = CPU_ISET_SUNPLUS
|
||||
CPU_SWEET16 = CPU_ISET_SWEET16
|
||||
|
||||
75
src/ca65/macpack/cvt-mac.pl
Executable file
75
src/ca65/macpack/cvt-mac.pl
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
# Check number of params
|
||||
die "Usage: cvt-cfg.pl input output varname\n" unless ($#ARGV == 2);
|
||||
|
||||
# Get the parameters
|
||||
$InputName = shift (@ARGV);
|
||||
$OutputName = shift (@ARGV);
|
||||
$VarName = shift (@ARGV);
|
||||
|
||||
# Open both files
|
||||
open (IN, "<$InputName") or die "Cannot open $InputName\n";
|
||||
open (OUT, ">$OutputName") or die "Cannot open $OutputName\n";
|
||||
|
||||
# Print the header to the output file
|
||||
print OUT "static char $VarName" . "[] = \n";
|
||||
|
||||
# Read from input, print to output
|
||||
while ($Line = <IN>) {
|
||||
|
||||
# Remove the newline
|
||||
chomp $Line;
|
||||
|
||||
# Separate an existing comment. No need to be overly clever, just ignore
|
||||
# semicolons in strings.
|
||||
if ($Line =~ /(.*?)(\s*)(;\s*)(.*?)\s*$/) {
|
||||
$Line = $1;
|
||||
$CommentSpace = $2;
|
||||
$Comment = $4;
|
||||
} else {
|
||||
$CommentSpace = "";
|
||||
$Comment = "";
|
||||
}
|
||||
|
||||
# Remove leading and trailing spaces
|
||||
$Line =~ s/^\s*|\s*$//g;
|
||||
|
||||
# Ignore empty lines
|
||||
if ($Line eq "") {
|
||||
if ($Comment ne "") {
|
||||
print OUT "/* $Comment */\n";
|
||||
}
|
||||
next;
|
||||
}
|
||||
|
||||
# Replace control chars
|
||||
$Line =~ s/\\/\\\\/g;
|
||||
$Line =~ s/\"/\\\"/g;
|
||||
$Line =~ s/\'/\\\'/g;
|
||||
|
||||
# Print to output
|
||||
print OUT "\"$Line\\n\"";
|
||||
|
||||
# Add a comment if we have one
|
||||
if ($Comment ne "") {
|
||||
print OUT "$CommentSpace/* $Comment */";
|
||||
}
|
||||
|
||||
# Terminate the line
|
||||
print OUT "\n";
|
||||
}
|
||||
|
||||
# Terminate the variable declaration
|
||||
print OUT ";\n";
|
||||
|
||||
# Close the files
|
||||
close IN;
|
||||
close OUT;
|
||||
|
||||
# Done
|
||||
exit 0;
|
||||
|
||||
|
||||
|
||||
|
||||
21
src/ca65/macpack/generic.mac
Normal file
21
src/ca65/macpack/generic.mac
Normal file
@@ -0,0 +1,21 @@
|
||||
|
||||
; add - Add without carry
|
||||
.macro add Arg1, Arg2
|
||||
clc
|
||||
.if .paramcount = 2
|
||||
adc Arg1, Arg2
|
||||
.else
|
||||
adc Arg1
|
||||
.endif
|
||||
.endmacro
|
||||
|
||||
; sub - subtract without borrow
|
||||
.macro sub Arg1, Arg2
|
||||
sec
|
||||
.if .paramcount = 2
|
||||
sbc Arg1, Arg2
|
||||
.else
|
||||
sbc Arg1
|
||||
.endif
|
||||
.endmacro
|
||||
|
||||
88
src/ca65/macpack/longbranch.mac
Normal file
88
src/ca65/macpack/longbranch.mac
Normal file
@@ -0,0 +1,88 @@
|
||||
.macro jeq Target
|
||||
.if .match(Target, 0)
|
||||
bne *+5
|
||||
jmp Target
|
||||
.elseif .def(Target) .and .const(Target) .and ((*+2)-(Target) <= 127)
|
||||
beq Target
|
||||
.else
|
||||
bne *+5
|
||||
jmp Target
|
||||
.endif
|
||||
.endmacro
|
||||
.macro jne Target
|
||||
.if .match(Target, 0)
|
||||
beq *+5
|
||||
jmp Target
|
||||
.elseif .def(Target) .and .const(Target) .and ((*+2)-(Target) <= 127)
|
||||
bne Target
|
||||
.else
|
||||
beq *+5
|
||||
jmp Target
|
||||
.endif
|
||||
.endmacro
|
||||
.macro jmi Target
|
||||
.if .match(Target, 0)
|
||||
bpl *+5
|
||||
jmp Target
|
||||
.elseif .def(Target) .and .const(Target) .and ((*+2)-(Target) <= 127)
|
||||
bmi Target
|
||||
.else
|
||||
bpl *+5
|
||||
jmp Target
|
||||
.endif
|
||||
.endmacro
|
||||
.macro jpl Target
|
||||
.if .match(Target, 0)
|
||||
bmi *+5
|
||||
jmp Target
|
||||
.elseif .def(Target) .and .const(Target) .and ((*+2)-(Target) <= 127)
|
||||
bpl Target
|
||||
.else
|
||||
bmi *+5
|
||||
jmp Target
|
||||
.endif
|
||||
.endmacro
|
||||
.macro jcs Target
|
||||
.if .match(Target, 0)
|
||||
bcc *+5
|
||||
jmp Target
|
||||
.elseif .def(Target) .and .const(Target) .and ((*+2)-(Target) <= 127)
|
||||
bcs Target
|
||||
.else
|
||||
bcc *+5
|
||||
jmp Target
|
||||
.endif
|
||||
.endmacro
|
||||
.macro jcc Target
|
||||
.if .match(Target, 0)
|
||||
bcs *+5
|
||||
jmp Target
|
||||
.elseif .def(Target) .and .const(Target) .and ((*+2)-(Target) <= 127)
|
||||
bcc Target
|
||||
.else
|
||||
bcs *+5
|
||||
jmp Target
|
||||
.endif
|
||||
.endmacro
|
||||
.macro jvs Target
|
||||
.if .match(Target, 0)
|
||||
bvc *+5
|
||||
jmp Target
|
||||
.elseif .def(Target) .and .const(Target) .and ((*+2)-(Target) <= 127)
|
||||
bvs Target
|
||||
.else
|
||||
bvc *+5
|
||||
jmp Target
|
||||
.endif
|
||||
.endmacro
|
||||
.macro jvc Target
|
||||
.if .match(Target, 0)
|
||||
bvs *+5
|
||||
jmp Target
|
||||
.elseif .def(Target) .and .const(Target) .and ((*+2)-(Target) <= 127)
|
||||
bvc Target
|
||||
.else
|
||||
bvs *+5
|
||||
jmp Target
|
||||
.endif
|
||||
.endmacro
|
||||
Reference in New Issue
Block a user