BBS: Inland Empire Archive Date: 05-25-92 (22:43) Number: 179 From: FRANCOIS ROY Refer#: NONE To: STEVE MATHIESON Recvd: NO Subj: Squish, part 2 Conf: (2) Quik_Bas
Ok, now for the little bit of explanation I am able to give... I've only figured out how to read the Squish bases; I haven't tried to write new messages yet. The .SQI file is formed of 12-byte records, defined as per the SQIDX type. There is one such record for each valid message in the Squish base. The .SQD file contains the messages. You start reading (BINARY mode) at byte 1+SQIDX.OFFST (QB starts counting at 1, not 0). There, you find a record of type SQD immediately followed by a record of type SQMSG, immediately followed by the message itself. The SQD and SQMSG records total 238 bytes, so the length of the message to be read is SQD.MSGLEN-238. I also found out that if the message contains any ^A kludges, these end with a null byte, followed by the text of the message. In case you're wondering what the SQBASE record is used for... I'm not sure. There is only one of those per message base, and it appears at the very beginning of the .SQD file. It appears to store the control information Squish needs to maintain the message base. It isn't much, but hopefully it will set you on the right track. I had a hard time getting this far myself, since the 'C' code in the original MSGAPI from Scott has more #define's and other redundant stuff than actual structure definitions... I'm only glad 'C' is meant to be read by computers, not humans :-) --- msgedsq 2.1 * Origin: R&D BBS 'The VAX Heaven' {819/772-2952} 9600 HST/V32 (1:163/506)
Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET