blog:ql_dev1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revisionBoth sides next revision
blog:ql_dev1 [2021/12/14 13:09] – [C68 Cross-Compiler (aka XTC68)] johnblog:ql_dev1 [2021/12/15 19:50] – [Working with QL files & devices] john
Line 181: Line 181:
      * https://github.com/NormanDunbar/qltools      * https://github.com/NormanDunbar/qltools
      * Works with native QL floppy disks (DD 720K, HD 1440K or ED 3.2MB) or disk images to transfer files to/from those devices from Linux.      * Works with native QL floppy disks (DD 720K, HD 1440K or ED 3.2MB) or disk images to transfer files to/from those devices from Linux.
 +
 +==== Other Stuff ====
 +
 +I wrote a quick Python script to print out the value of an XTcc field in a binary produced by C68, GCC or similar. This is useful when copying an executable into a QL floppy or hard drive filesystem and you need to set the //dataspace parameter//:
 +
 +<code>
 +#!/usr/bin/env python
 +
 +####################################
 +#
 +# Prints out the value of a Sinclar
 +# QL binary XTcc field, as needed to
 +# turn it into an executable file
 +# on the QL itself, or when transferred
 +# using qltool.
 +#
 +# John Snowdon, 2021
 +#
 +####################################
 +
 +import sys
 +import os
 +
 +if len(sys.argv) < 2:
 + print("ERROR: No filename given")
 + sys.exit(-1)
 +
 +ql_filename = sys.argv[1]
 +if (os.path.exists(ql_filename)):
 + f = open(ql_filename, "rb")
 + filedata = f.read()
 + offset = filedata.find(b'\x00XTcc')
 +
 + if offset:
 + # First byte of "XTcc" is at 'offset', so jump by 4 bytes
 + f.seek(offset + 5)
 + dataspace = f.read(4)
 +
 + # Print out the value of the dataspace field
 + print(int.from_bytes(dataspace, byteorder='big'))
 +
 + f.close()
 +
 +else:
 + print("ERROR: Filename does not exist")
 + sys.exit(-1)
 +</code>
 +
 +Just call the script with the name of your C68 executable. For example:
 +
 +<code>
 +$ xtcc game.bin
 +868
 +</code>
 +
 +... the value printed is the size of the dataspace needed.
  • blog/ql_dev1.txt
  • Last modified: 2021/12/16 11:03
  • by john