123456789101112131415161718192021222324252627282930 |
- #!/usr/bin/env python3
- template = """\
- 10CLEAR10,&H%s:BLOAD"%s"\n\
- 20DEFFNS(A)=PEEK(A)+256*(PEEK(A)>127)\n\
- 30DEFFNW(A)=PEEK(A)+256*PEEK(A+1)\n\
- 40DEFUSR=&H%s\n\
- 50A=USR(0)\n\
- 60B=FNW(-1675)+65536*PEEK(-1673)\n\
- 70SCREEN0\n\
- 80?"Cyc,Err"B;A\n\
- 90?"ACK "FNS(-1672)FNS(-1671)FNS(-1670)FNS(-1669)\n\
- """
- fnames = {'cas':'CAS:VDPtst', 'dsk':'vdptest.bin'}
- import sys
- def hx(n): return hex(n)[2:].upper()
- def main():
- if len(sys.argv) < 3 or sys.argv[1].lower() not in fnames:
- sys.stderr.write("Usage: python3 loadertpl.py {cas|dsk} <addr>\n")
- addr = int(sys.argv[2], 0)
- fname = fnames[sys.argv[1].lower()]
- tpl = template.replace('\n','\r\n')
- sys.stdout.buffer.write(
- (tpl % (hx(addr - 1), fname, hx(addr))).encode('latin1'))
- main()
|