THIS THREAD PERTAINS TO THE TEXT GRABBER AND FONTS IN GENERAL! ************ Topic 30 Sat Jan 02, 1988 WC.COLEMAN [Geos*Sysop] at 03:58 EST Sub: Bug in new Text Grabber located! I located the bug in the new Text Grabber that prevented it from loading in the forms. See message #1 this topic for a discription/fix. 15 message(s) total. ************ ------------ Category 19, Topic 30 Message 1 Sat Jan 02, 1988 WC.COLEMAN [Geos*Sysop] at 04:09 EST There is a bug in the new Text Grabber that prevented it from loading in the forms. The problem is simple -- all the forms are stored as Geos filetype #3 (data). Once you select the form it is loaded with GetFile. Unfortunatly this routine will not load type 3's, it will simply ignore them! The solution is simple - all the forms must be changed to type #7 (application data) and then a byte must be change in the Text Grabber program so that it will search the disk for 7's instead of 3's. Here's how: Use a disk doctor to change the forms to type #7. Offset #22 in the directory entry is the Geos Filetype. Change it from a three to a seven. Now chain to the header block and change offset 69 the same way. Now comes the hard part. Chain to the first sector in the Text grabber. The program is VLIR (it only has one record but the paranoid SOB's are afraid of people uploading their programs). Just chain to record #1 (the first two bytes past the link are the T&S of the program. Now count to the 24th sector. The index sector doesn't count. Go to offset #121. This should be a three. Change it to a seven. That's it! The program will now work properly. If anyone has any problems or comment leave messages in this topic. I will start off the questions -- Why doesn't BSW test their frigging programs before they sell them to us poor suckers???????????? ------------ Category 19, Topic 30 Message 2 Sat Jan 02, 1988 P.SPEARING at 09:02 EST Why doesn't BSworks test their programs before selling them? Beats me, but I suspect it's that they have a videogame mentality-- they claim they're ve written an operating system, but they act as though it was the latest space shoot-em-up (HEAVY copy protection, bugs, inaccurate documentation, poor or absent support). The GEOS is makes a whole new machine out t of the 64 or 128, but much of the power is lost because of these stupid things. I truly hope they g They treat us almost a well as the guys who built our comop puters do. Great machines, but try getting support from . ------------ Category 19, Topic 30 Message 3 Sun Jan 03, 1988 P.ROSSING at 10:31 CST Thanks for the the fix, but what if we don't play around with sectors and tricky things like that? any way that we can get a fixed one uploaded online? or would that be copyright violation. hardly seems fair for those of us who paid for the programs to begin with.. BSW should allow fixes to be uploaded. especially things like "text grabber" that don't have much use unless you've bought GEOSwrite. peg ------------ Category 19, Topic 30 Message 4 Sun Jan 03, 1988 WC.COLEMAN [Geos*Sysop] at 23:35 EST I could write something but it will take a while till I get to it. Don't you have any friends who know how to use a Disk Doctor. Hell, you only have to change a few bytes. I'll try to get something written but I'm in the middle of a grunch of projects at the moment (geos of course)! ------------ Category 19, Topic 30 Message 5 Mon Jan 04, 1988 P.ROSSING at 21:07 CST I'm sorry but I live up in the north woods of new hampshire where i bet it's 150 miles to the next commodore.. that's what online services like GENIE are for. I have a disk doctor, it so happens, and i tried to use it, but i couldnt for the life of me figure it out. I found the "3s" in the directory, but where re the headers? then what happens next? sorry to pester you, but not all of us are techies, or even know any. ------------ Category 19, Topic 30 Message 6 Mon Jan 04, 1988 WC.COLEMAN [Geos*Sysop] at 22:35 EST Ok i'll try to make this as painless as possible! Here it goes: First you must understand 'offset' in whole sectors it means the position in the sector (the first byte is 0 *not* 1). All the offsets will start at 0. In a Geos directory entry there are 2 bytes after the name (just past the shifted spaces if the name is less then 16 chars). These are the track and sector of the header block. Just put the cusor on the 1st byte (which is the trk) and Jump to the sector (in most Disk Doctor's you will use the 'J' key). Now go to position 69 (decimal) in the header. This will be the Geos filetype. In the forms this will be a chr$(3). just change the byte to a chr$(7) and save the sector back to the disk. Now back to the directory entry: The next byte past the header T&S is the structure 0=Geos Seq and 1=VLIR. Leave this alone! The very next byte is the Geos Filetype. Again change the 3 to a 7 and save the sector. Just do this to all (I think) 7 forms. Now find the dir entry for the text grabber. The 2 bytes before the 'T' in Text will be the TRK and SEC to the index sector (normally these would point to the 1st block of the program but this is a VLIR file). When you get to this sector you will see four bytes at the beginning and the rest will be zero. The first two are 0,255. The next two are the TRK and SEC you want. Jump to it. This is sector #1. Follow the links (usually the 'L' command ---or put the cursor at the beginning of the sector and use 'J'). count each sector until you get to 24. By the way on my disk this was track 8 sector 3, you might want to jump straight there -- you might get lucky! Anyway go to offset 121, you should be sitting on a chr$(3). If not go back and forward one block -- you may have miscounted. Again change the byte to a 7 and save the sector. That's it! Do I need to tell you to do this on a COPY??? It 's not really that hard - I can do it in less then 5 minutes. You may want to just do the Text Grabber itself and a single form. Then boot geos and see how you did. If you need more help just let me know (also tell me what kind of Disk Doctor you are using so I can be more specific about the commands). --WC ------------ Category 19, Topic 30 Message 7 Fri Jan 08, 1988 ALBERTMCCANN at 21:38 EST While you are playing with the disk doc on Text-Grabber, change the 26th sector (track 17, sector 18 ???) positions 20 and 21 from 09 20 to 8A 06. This maks the default font 'COMMODORE 10 POINT' instead of the berkley font . This makes it easier to print in NLQ mode. Has anybody decoded the word-processor files that text grabber uses? Also an other tip: To inport from Superscript, output to disk instead of printer in ASCII. Then use the '128 GENERIC II' selection to convert it. This preserves the document formating with spaces. ------------ Category 19, Topic 30 Message 8 Sun Jan 10, 1988 E.R.FLINN at 01:21 EST Hmmm, I *knew* there had to be some sort of reward for trying to learn to navigate this message-base. In one day I've got Text Grabber working AND can make boot disks to my heart's content. Very nice! _ The fix for the form files worked like a charm. The only quibble I have, and that's all it is, is that it would have been easier for me if the offsets were given in hex as well. No big deal. The change mentioned in message 7, though, to force Commodore 10 font, seems not to be for the 64 version, as the expected data isn't there. Or else I was looking in the wrong place. I'm going to be out of town for a week, so if I don't reply to any response, it's not out of rudeness or lack of interest. It *is* kind of spooky to realize that somehow nobody at BSW bothered to actually run the released version of the grabber on a real 64 running real GEOS. I haven't seen a patch on Qlink yet either, but that's no surprise. *s ------------ Category 19, Topic 30 Message 9 Sun Jan 10, 1988 WC.COLEMAN [Geos*Sysop] at 03:49 EST There is no version of Geos that contains a Commodore 10 font that I know of either. Anybody know what he is talking about??? ------------ Category 19, Topic 30 Message 10 Sun Jan 10, 1988 P.ROSSING at 08:08 CST The instructions sound helpful, THANKS! will try them as soon as i get done here and let you know. The "Commodore 10" font is on my Geowrite workshop disk (Geowrite version 2.1. On screen it looks just like good old Commodore 64 print, like you were using Easyscript or something. The letters are not proportionately spaced either. t On printout, it's proportioned to be the same as printer output from "Easyscript" or any other conventional word processor. In Geos mode, you get the same "graphics" printing as with any Geos font. In NLQ mode, you can use your printer's normal font. The advantage of the "Commodore 10" font is that you can get WYSWYG screen display for NLQ printing. does that help? ------------ Category 19, Topic 30 Message 11 Sun Jan 10, 1988 WC.COLEMAN [Geos*Sysop] at 15:28 EST I knew it was a stand alone font but that is something you select from GeoWrite, modifing the Text Grabber....Ah wait a sec! I see what you are doing. You are changing the font ID that TG places in the grabbed file. Great idea! Actually you should be able to change the default font to any valid font ID. Of course if the font isn't on the disk the geoWrite will revert back to BSW. Hmmm...technically you should be able to change the default Tabs and margins also. I never looked for where they where, I was just trying to get the damn thing to work! ------------ Category 19, Topic 30 Message 12 Sun Jan 10, 1988 P.ROSSING at 20:00 CST WC: The instructions were beautiful. they were easy to follow, and once I did everything you said, I had a working program. I repeat the curses of everyone else -- doesn't BSW try this out before they unleash it on us consumers? I didn't fool with the defaults since I have different fonts on different working disks, since with only one disk drive, there isn't much you can get on the same disk at once. Now that the text grabber works, it is a very useful program, one of the few BSW applications that doesn't have to be on the same disk as the thing being converted. BSW must have stock in 1764 expansions, no? thanks again. peg ------------ Category 19, Topic 30 Message 13 Sun Jan 17, 1988 ALBERTMCCANN at 09:37 EST That FONT patch for TEXT GRABBER is for the 128 version. You would have to hunt around the 64 version for the font variable location. BTW, the 3/7 file type problem is fixed in the 128 grabber. I've disassembled the 128 grabber and discovered it supports EASY SCRIPT and SPEED SCRIPT also. Just no conversion file on the disk. Are these files on the 64 workshop disk? ------------ Category 19, Topic 30 Message 14 Sun Jan 17, 1988 WC.COLEMAN [Geos*Sysop] at 20:54 EST Yes I seem to recall that they are. The 3/7 bug as near as i've been able to find out is not on all the 64 version disks, just some of them. ------------ Category 19, Topic 30 Message 15 Mon Feb 15, 1988 WC.COLEMAN [Geos*Sysop] at 18:32 EST Just wanted to leave a quick note about the GeoPublish Text Grabber. The reason it will work for some people and not for others is that it will work fine for V1.3 and above but not for V1.2. If you ask BSW they will tell you that it is not compatable with V1.2. This is untrue. If you just change the filetypes of the forms as I explained above it will work fine with all versions. Don't ask me why they did it that way (probably an oversight -- I doubt they ever tested it with V1.2)! -WC ------------ NEXT IS A LIST OF SOME UNDOCUMENTED SHORTCUTS! ************ Topic 12 Sat Jan 13, 1990 D.LARIVEE at 22:48 PST Sub: Undocumented shortcuts Has anyone found some undocumented shortcuts to use with GEOS 64 or 128? Lets document them here. 1 message(s) total. ************ ------------ Category 19, Topic 12 Message 1 Sat Jan 13, 1990 D.LARIVEE at 22:53 PST I have discovered by accident three shortcuts that I can't find in the manual. When I tested them some more, I discovered that they are only available on the GEOS 128 V2.0 (sorry 64 2.0 users). 1 and 2. When you have selected the files you want to copy to another disk, press the F1 key to copy them to disk A or F2 to copy to disk B. By magic, the files are automatically copied over without having to pick up and drag the icon over to the drive. The third trick is moving files to the border. You can highlight the files you want to move to the border and then press the F4 key and they will be moved down to the border for you. Quite an interesting discovery I think. Has anyone else discovered something they would like to share? ------------ HERE'S ONE FOR ALL YOU REU BUFFS! ************ Topic 37 Mon Feb 15, 1988 WC.COLEMAN [Geos*Sysop] at 22:05 EST Sub: Geos REU command summary. I have had a couple of questions on how to use the REU commands contained in the Geos jump table. Here's the answer. 6 message(s) total. ************ ------------ Category 19, Topic 37 Message 1 Mon Feb 15, 1988 WC.COLEMAN [Geos*Sysop] at 22:24 EST There are five REU functions contained in the V1.3 Kernal. They are: $C2C8 - StashRAM. Transfer computer -> REU. $C2CB - FetchRAM. Transfer REU -> computer. $C2CE - SwapRAM. REU <-> computer. $C2D1 - DoRAMOp. Send a command to the REU. For any of these routines pass: R0 - Computer destination/source address. R1 - REU destination/source address. R2 - Length in bytes. R3L - REU bank number (each bank is 64K). For DoRAMOp the command to be sent to the REU should be passed in the Y register in addition to the above. Nothing is returned by any of these routines but you can read the REU status register at $DF00 as follows: Bit 7 - interupt pending. Bit 6 - Transfer Complete. Bit 5 - Block Error. Bit 4 - Size. 0 = 128K, 1 = 512K. Bits 0-3 are the version number. All of these routines will hang in a loop until either bit 5 or 6 are set. The X register always contains zero on exit so you will have to read $DF00 to detect an error condition. That should be enough to get you started at least. If there are any more questions just leave a message. -WC ------------ Category 19, Topic 37 Message 2 Wed Feb 24, 1988 M.THOMAS6 at 21:12 CST Thanks for the info. I ought to find some use for this later. Mark Thomas ------------ Category 19, Topic 37 Message 3 Thu Feb 25, 1988 WC.COLEMAN [Geos*Sysop] at 20:51 EST By the way if you want to peek at the code (in V1.3) take a look at $9EAA to $9F00 (it doesn't take much)! -WC ------------ Category 19, Topic 37 Message 4 Wed Mar 02, 1988 M.THOMAS6 at 22:35 CST Does GEOS just drop the values into the memory locations at $DF00 or where ever? Mark Thomas ------------ Category 19, Topic 37 Message 5 Fri Mar 04, 1988 WC.COLEMAN [Geos*Sysop] at 06:16 EST That's about it. Geos simply take the values passed to it and sends them to the REU: 9EAA LDY #93 ; VerifyRam entry 9EAC BNE $9EB8 9EAE LDY #$90 ; StashRam entry 9EB0 BNE $9EB8 9EB2 LDY #92 ; SwapRam entry 9EB4 BNE $9EB8 9EB6 ldy #$91 ; FetchRam Entry 9EB8 ldx #$0D ; DoRamOp Entry 9EBA lda $08 9EBC cmp $88C3 9EBF bcs $9F00 9EC1 ldx $01 9EC3 lda #$35 9EC5 sta $01 ; Basic out, Kernal out, I/O in 9EC7 LoadW $DF02,$02 9ED1 LoadW $DF04,$04 9eDB LoadB $DF06,$08 9EE0 LoadW $DF07,$06 9EEA LDA #0:STA $DF09:STA $DF0A 9EF2 STY $DF01 9EF5 LDA $DF00 ; Wait loop.. 9EF8 AND #$60 ; ... begins here 9EFA BEQ $9EF5 ; Not ready yet 9EFC STX $01 ; Config back the way it was 9EFE LDX #0 ; NEVER REPORTS ERRORS OF ANY KIND! 9EFF RTS That's it (for V1.3 anyway)! -WC ------------ Category 19, Topic 37 Message 6 Sat Mar 05, 1988 M.THOMAS6 at 16:24 CST Well, that sounds pretty straight forward then. Anyway, thanks for the info on the calls. Mark Thomas ------------ HERE'S THE LIST OF BSw REFERENCE GUIDE ERRATA! ************ Topic 38 Mon Feb 15, 1988 WC.COLEMAN [Geos*Sysop] at 22:56 EST Sub: BSW Reference Guide Errata Sheet. BSW Reference Guide Errata Sheet. 1 message(s) total. ************ ------------ Category 19, Topic 38 Message 1 Mon Feb 15, 1988 WC.COLEMAN [Geos*Sysop] at 23:01 EST The following is the most complete list of BSW Reference Guide errata that I have been able to compile. Here and there I've also thrown in a few of my own comments: PAGE 18 - ResetHandle This is the Geos Cold Start Vector. Once the kernal is loaded in a call to this routine will start things going. Unfortunatly this routine calls a subroutine that checksums memory to see if GeosBoot is resident and then uses this value to set the IRQ vector. Supposedly this will prevent a user from loading in the Kernal using another (presumedly unprotected) booter. For those who are interested the proper IRQ vector is $E2DC. The offending (offensive?) routine is located (in Kernal V1.2) at $DBAE. PAGE 29 - Menus The reference to i-DoMenu is not correct. Currently there is no inline form of DoMenu. (Note: there may be one in the 128 version - I haven't checked tha one yet)! PAGE 30 - Menu Figure 2 All of the entries whos comment has the word 'pointer' in it are word length (two bytes) not single bytes. This is all of them except for the two SUB-MENU entries. PAGE 36 - DoMenu Again, there is no inline form of this routine. MENUS IN GENERAL There are also two other jump table Menu routines that are not mentioned anywhere in the book at all: RecoverMenu ($C154) - This routine erases the current submenu from the screen. Period. It will not reactive the previous menu. RecoverAllMenus ($C157) - This routine calls RecoverMenu repeatedly until you get back to the main menu. The main difference between this ro1tine and GotoFirstMenu is that this routine will not re-draw the first menu nor reposition the mouse. But it's also faster. PAGES 49-52 - PRGToGEOS I'm not even going to attempt to list all the errors here. Do yourself a favor and tear these pages out of the book! PAGE 96 - BitOtherClip Third line: BitOtherClip allows the caller to specify an input routine to return the next compacted byte in R0. PAGE 101 - GraphicString Commands This is not a complete list! See page 395 for a list of all the commands. PAGE 107 - Control Codes Outline od is CHR$(26). Plaintext is CHR$(27). Also CHR$ codes from 0 to 7 will crash the system if you attempt to print them!!! You must be careful to parse all strings that could possibly have these values embedded in them. PAGE 112 - GetString There is no such thing as a MaxCharFault Vector. All GetString will do is call StringFault Vector. One note about this routine: there has been alot of confusion about how to use GetString. It is driven by the interrupts so you should JMP to it after you have all the variables set up. When the user hits Return control will be passed back to the application at the address contained in KeyVector. Remember that the user will be able to use the menu/icons at this time. If you don't want this to happen then constrain the mouse. PAGE 117 - OnrGetString This routine won't work right for a number of reasons. PAGE 162 - UpdateMouseVels The opcode blt is actually BCC. The opcode bge is actually BCS. PAGE 219 - Position Command Third line of the paragraph should read: The first data byte-is the x position in bytes, 0-39. kPAGE 222 - Dialog Box Commands DBGetString - RegNumber should be the address of the zero page variable not it's number, i.e. for R5 RegNumber would contain $0C not 5. fDBGetFiles - the code for this command is 16 not 15. Also the maximum number of files that this command can support is 15 not 16 (15*17=255). DBGrphStr - This one is command #15. See page 405 for a description. PAGES 244-245, 259, 284 - LoadOpt Flag Change all references to Bit 1 to Bit 7. PAGE 261 - GetFile Synopsis GetFile can load any GEOS filetype with the notable exception of fonts. If Gou try to load a font with this routine it won't do anything at all (unfortunatly it won't return an error either). PAGE 297 - FreeBlock The address mentioned in the last line as 'to be supplied' (sic) is $9844. Remember this only applies to versi.n 1.2. PAGE 300 - BldGDirEntry One thing that is not metioned here is that you must also pass the size of the file (in CBM blocks) in R2. This indirectly effects SetGDirEntry since it will call this routine. PAGE 308 - PurgeTurbo This routine marks the turbo code for the indicated drive as no longer resident in the drive. The next time you try to open the drive the Turbo code will be have to be resent to the drive. There is also another routine which will only turn it o f (it is still resident) - ExitTurbo ($C232). The parameters are the same as for PurgeTurbo. PAGE 317 - VLIR Files Three routines are mentioned but not listed anywhere. They are: AppendRecord - No parameters. This routine will mark the next available record (usedRecords+1) as empty and increment the total records (usedRecords = $8497). InsertRecord - No parameters. Inserts a new (empty) record just after the current record. DeleteRecord - No parameters. Deletes the current record and frees up all sectors the record used. s PAGES 347, 372 - GetDimensions There is one feature here that is not mentioned anywhere except in the source code for the drivers: the accumulator will be zero if the driver can do ASCII printing and $FF if it can only do graphics. Keep this in mind if you ever write a printer driver. PAGE 392 - Selection_Delay This is the delay in 1/60 ths of a second. PAGE 398 - Geos Filetypes Note that System_Boot, Temporary, and Auto-exec are only valid in Kernal V1.3 and up. PAGE 420 - Drawing Modes This table is a mets! It should read: Bit 7 - UNDERLINE Bit 3 - OUTLINE Bit 6 - BOLDFACE Bit 2 - unused Bit 5 - REVERSE Bit 1 - unused Bit 4 - ITALICS Bit 0 - unused PAGE 423 - Disk Buffers FileTrScTab is at $8300 not $8400. DirEntryBuf is at $8400 not $8500. PAGE 425 - Vectors ApplicationMain should read $849B. Also note that MouseVector is at $84A1, it's indented so it's easy to miss. PAGE 431 - CallRoutine The proper address for this routine is $C1D8. PAGE 432 - Other Routines The proper address of DoneWithIO is $C25F. The proper address of CopyString is $C265. OTHER ODDS AND ENDS MENUS - Do not define menus/submenus with a right margin greater then 255. All sorts of strange things will occur. I haven't had a chance to track this bug down yet but it is definatly there. ICONS - The maximum number of icons that can be defined at one time is 32 (numbers 0-31). This reason for this is quite simple. The icon table that you pass to DoIcons is not moved, only a pointer to it is saved (in $3F-$40 to be exact). To find a given icons position in the table use the following formula - icon# * 8 + 4. Ok, let's plug in an icon # of 32 (remember this is actually the 33rd icon): 32 * 8 + 4 = 260. Since the value is greater then 255 the icon manager can't index into the table properly. DB ICONS - There are four icons that are listed as 'future expansion' (commands #7-10). Do not ever call these icons! The system will crash if you attempt to use them (no Panic box, it will just lock up). This can be a bear to track down if you don't realize what these commands will do. TABLES - All of the routines that require tables (DoIcons, DoMenus, InitProcess) will reset to the new table everytime they are called. Any options that where active from a previous call to the routine will be lost unless they are also contained in the new table. Technically speaking (I've never tried it) you could disable menus by pointing to a table that contains only a zero. Of course you would still have to erase the old menu from the screen. If anybody finds anymore please let me know so I can add them to the ever- growing list! -WC ------------ END OF FILE!!!! Enjoy - WC