qlwiki:qload

Differences

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

Link to this comparison view

Next revision
Previous revision
qlwiki:qload [2018/05/04 22:07] – created normandunbarqlwiki:qload [2023/08/25 12:22] (current) – external edit 127.0.0.1
Line 9: Line 9:
 QLOAD, QSAVE and QMERGE are now built in to SMSQ/e. QLOAD, QSAVE and QMERGE are now built in to SMSQ/e.
  
-The files produced by QSAVE cannot be viewed in a text editor as they are in binary format. A document explaining the internals can be found at http://www.dilwyn.me.uk/docs/formats/savfiles.doc - the text of which appears below, written by [[Dilwyn Jones]] with program code by [[Norman Dunbar]] and [[Dilwyn Jones]].+The files produced by QSAVE cannot be viewed in a text editor as they are in binary format. A document explaining the internals can be found at http://www.dilwyn.qlforum.co.uk/docs/formats/savfiles.doc - the text of which appears below, written by [[Dilwyn Jones]] with program code by [[Norman Dunbar]] and [[Dilwyn Jones]].
  
 ==== _Sav Files File Format ==== ==== _Sav Files File Format ====
Line 26: Line 26:
  
 I am very grateful to [[Per Witte]] and [[Norman Dunbar]] who sent me all sorts of useful information to help me understand the file format. Both sent me programs to help with decoding the programs. Norman wrote a program many years ago to decode these _sav files and as he hadn't updated it for SBASIC, I tentatively volunteered to update it. As it happened, it had been written so well originally that all I had to do was make fairly small changes to allow it to handle two new facilities in SBASIC (integer and hex constants) and change a couple of variable names to avoid clashes with new extension names in SBASIC. Norman kindly gave me permission to publish the new listing. There's also a wealth of information in the Jan Jones book, [[QL SuperBASIC (The Definitive Handbook)]] in Appendix C which lists the tokens used to store a SuperBASIC program. I am very grateful to [[Per Witte]] and [[Norman Dunbar]] who sent me all sorts of useful information to help me understand the file format. Both sent me programs to help with decoding the programs. Norman wrote a program many years ago to decode these _sav files and as he hadn't updated it for SBASIC, I tentatively volunteered to update it. As it happened, it had been written so well originally that all I had to do was make fairly small changes to allow it to handle two new facilities in SBASIC (integer and hex constants) and change a couple of variable names to avoid clashes with new extension names in SBASIC. Norman kindly gave me permission to publish the new listing. There's also a wealth of information in the Jan Jones book, [[QL SuperBASIC (The Definitive Handbook)]] in Appendix C which lists the tokens used to store a SuperBASIC program.
 +
 +==== Comments ====
 +
 +//The following comments were received by me (Norman) in an email, regarding the details in this Wiki page. Unfortunately, I have no way to confirm them, so I present theme here for your perusal. Thanks to Ralf for bringing them to my attention. Anything you see below in italics is from me.//
 +
 +QMERGE only exists in SMSQ/E. Tony Tebby has re-written the QLOAD suite, because the original extension from Liberation Software seemed to require an original QL ROM (source: "A brief history" from TT (//Tony Tebby//). I do not know more details but wish to do so. 
 +
 +The big disadvantage of QLOAD in SMSQ/E (IMHO) compared with the original extension is, that if you QLOAD something on a QL and have used toolkit PROCs/FNs, which are not loaded first, the message "Extensions missing!" occur in #0, followed by the names. This is very practical and I do not know, why TT has omitted that in his version. This has helped me a lot during programming S_Edit on QL, as there were several extensions to load first and sometimes I forgot to load this or that first. Neither WL (//Wolfgang Lenerz//) nor MK(//Marcel Kilgus//) have sent me an answer to that question. I can ask TT, but he is very slow in answering things. I just wonder, why I seem to be the only person, who remarked this omission.
 +
 +_sav Files could be used by QLiberator, but just from v.3.xx onwards, where the new front end is. Older versions need the temporary _wrk work file, done (//created//) with the keyword "Liberate". _wrk and _sav are identical. 
  
 ==== Tokens ==== ==== Tokens ====
Line 63: Line 73:
  
 After the //Decode_Program// routine comes a series of routines such as //Multi_Spaces// and //Keywords// which show how to handle the various tokens. At the end of the listing comes an initialisation routine which has a list of the keywords, operators and separators corresponding to token values. After the //Decode_Program// routine comes a series of routines such as //Multi_Spaces// and //Keywords// which show how to handle the various tokens. At the end of the listing comes an initialisation routine which has a list of the keywords, operators and separators corresponding to token values.
 +
  
 ==== Decoding Program ==== ==== Decoding Program ====
  
-Click the filename below to download the code.+Click the filename below to download the code. You will require [[qlwiki:dj_toolkit_djtk]] to run it.
  
 <code SuperBASIC decode_sav_file_bas> <code SuperBASIC decode_sav_file_bas>
  • qlwiki/qload.1525471672.txt.gz
  • Last modified: 2022/11/05 11:18
  • (external edit)