Added files
This commit is contained in:
parent
4c491648e0
commit
490137aa33
38
.gitignore
vendored
Normal file
38
.gitignore
vendored
Normal file
|
@ -0,0 +1,38 @@
|
|||
syntax: glob
|
||||
|
||||
# Project ignores
|
||||
bin
|
||||
bin/**
|
||||
|
||||
# Makefile ignores
|
||||
Makelocal.mk
|
||||
|
||||
# File ignores
|
||||
*.log
|
||||
*.bak
|
||||
*.zip
|
||||
*.tar.gz
|
||||
|
||||
# Ignore some eclipse files
|
||||
.settings
|
||||
.project
|
||||
|
||||
# Ignore visual studio files
|
||||
.vs/
|
||||
|
||||
# Ignore intellij files
|
||||
*.iml
|
||||
.idea
|
||||
|
||||
# Ignore netbeans directory
|
||||
nbproject
|
||||
|
||||
# Ignore mac finder files
|
||||
.DS_Store
|
||||
|
||||
# Ignore windows files.
|
||||
Thumbs.db
|
||||
Desktop.ini
|
||||
|
||||
# Ignore kde dolphin files
|
||||
.directory
|
|
@ -1,3 +1,5 @@
|
|||
# convasm
|
||||
|
||||
Collection of regex's to convert old asm to sdcc asm.
|
||||
Collection of regex's to convert old asm to sdcc asm.
|
||||
|
||||
Warning it still convert a few cases wrongly, sorry.
|
||||
|
|
72
convasm.sh
Executable file
72
convasm.sh
Executable file
|
@ -0,0 +1,72 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# NOTE: this is not 100% done
|
||||
# maybe better as single script with buildin tests for all cases.
|
||||
#
|
||||
|
||||
#TODO FIX
|
||||
# LD L,(IX+2) -> LD L,2(IX) but was LD L,(IX)
|
||||
# COLOR_PRESENTS:
|
||||
# .db #0x00,
|
||||
|
||||
|
||||
# Start with useless cat and lots of perl kittens to print with.
|
||||
cat $1 |\
|
||||
# fix org
|
||||
perl -ne 's/(?<=\s)ORG(?=\s)/; org/gi; print;' |\
|
||||
# fix equ
|
||||
perl -ne 's/(?<=\s)EQU(?=\s)/.equ/gi; print;' |\
|
||||
perl -ne 's/(?<=\w):(?=\s*.equ)/ /gi; print;' |\
|
||||
# fix include
|
||||
perl -ne 's/(?<=\s)INCLUDE(?=\s)/.include/gi; print;' |\
|
||||
perl -ne 's/(?<=\.include\s\s)\w+.\w+/\L"$&"/gi; print;' |\
|
||||
perl -ne 's/(?<=\.include\s\s\")(\w+.)xsm(?=\")/$1asm/gi; print;' |\
|
||||
# fix data types
|
||||
perl -ne 's/(?<=[\s|:])DB|DEFB(?=\s)/.db/gi; print;' |\
|
||||
perl -ne 's/(?<=[\s|:])DW|DEFW(?=\s)/.dw/gi; print;' |\
|
||||
perl -ne 's/(?<=[\s|:])DS|DEFS(?=\s)/.ds/gi; print;' |\
|
||||
perl -ne 's/(?<=[\s|:])DEFM(?=\s+")/.str/gi; print;' |\
|
||||
perl -ne 's/(?<=\.)DB(?=\s+")/str/gi; print;' |\
|
||||
# LD (IX+#09),5 of SET 4,(IX+#0B)
|
||||
perl -ne 's/(\(\s?I[XY]\s?\+\s?)\#(?=[\d\w]+)/$1&H/gi; print;' |\
|
||||
# fix data notation
|
||||
perl -ne 's/&H(?=[\d\w])/0x/gi; print;' |\
|
||||
perl -ne 's/&B(?=\d)/0b/gi; print;' |\
|
||||
# TXT_Z80: DB "Z80",&H0A,&H0D,&H1D
|
||||
perl -ne 's/(?<=\")\s*,\s*(?=[\s\d])/\n\t\t.db\t\t/gi; print;' |\
|
||||
# LD HL,0FCCAh
|
||||
perl -ne 's/0([\w\d]{2,4})h/0x$1/gi; print;' |\
|
||||
# AND 03h
|
||||
perl -ne 's/(?<=AND\s)([\w\d]{2,4})h/0x$1/gi; print;' |\
|
||||
# Fix missing : after labels note: igm!!
|
||||
perl -ne 's/(^\w+)($|\s)(?!.*equ)/$1:\t/igm; print;' |\
|
||||
# Add constant prefix
|
||||
perl -ne 's/(?<=CP\s)[-\d\"]/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=AND\s)[-\d\"]/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=OR\s)[-\d\"]/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=ADD\s)[-\d\"]/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=SUB\s)[-\d\"]/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=ADD\s\w,)[-\d\"]/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=ADC\s\w,)[-\d\"]/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=LD\s\w,)[-\d\"]/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=LD\s\w\w,)[-\d\"]/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=LD\s\w,)0x\d/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=LD\s\w\w,)0x\d/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=LD\s\w,)0b\d/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=LD\s\w\w,)0b\d/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=LD\s\(..\),)[-\d\"\+]/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=LD\s\(..\+\d\),)[-\d\"\+]/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=LD\s\(..\+\d\d\),)[-\d\"\+]/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=LD\s\(..\+0x\d\),)[-\d\"\+]/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=LD\s\(..\+0x\d\d\),)[-\d\"\+]/#$&/gi; print;' |\
|
||||
# Add label prefix 8 bit
|
||||
perl -ne 's/(?<=LD\s\w,)\w{2,}/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=LD\s\w,)\w_\w+/#$&/gi; print;' |\
|
||||
# Add label prefix 16 bit
|
||||
perl -ne 's/(?<=LD\s\w\w,)\w{2,}/#$&/gi; print;' |\
|
||||
perl -ne 's/(?<=LD\s\(\w\w\),)\w{2,}/#$&/gi; print;' |\
|
||||
# fix ix/iy offset notation
|
||||
perl -ne 's/\(\s?IX\s?\+\s?([0x\d\w]+)\s?\)/$1(IX)/gi; print;' |\
|
||||
perl -ne 's/\(\s?IY\s?\+\s?([0x\d\w]+)\s?\)/$1(IY)/gi; print;'
|
||||
|
||||
|
Loading…
Reference in a new issue