Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!sri-spam!mordor!styx!ptsfa!ihnp4!ihwpt!knudsen From: knudsen@ihwpt.ATT.COM (mike knudsen) Newsgroups: comp.sys.m6809 Subject: LOAD those PACKed RUNB files! Message-ID: <1639@ihwpt.ATT.COM> Date: Mon, 27-Apr-87 14:09:40 EDT Article-I.D.: ihwpt.1639 Posted: Mon Apr 27 14:09:40 1987 Date-Received: Tue, 28-Apr-87 03:18:10 EDT Organization: AT&T Bell Laboratories - Naperville, Illinois Lines: 34 Keywords: BASIC09, Level 1 and 2, RUNB With the new Level 2's emphasis on merging modules together into files, it's worthwhile to visit an old bug of RUNB (Basic09). Some guys on Delphi finally figured out what had been going on for years even under Level 1 (I had just quit using PACK). Problem is this: You PACK several Basic09 procedures into one file (or MERGE them together later, maybe adding some machine-code routines like INKEY or GFX2 or your own). With this file in your /CMDS, say named ZORCH, you should be able to type just "ZORCH" and OS9 will pull in RUNB to execute it. Well, not quite. You'll get the "unknown procedure" error. Reason: OS9 (or Shell) loads the first module in the file and immediately starts to execute it, forgetting about the rest of the file. That is, once RUNB is loaded, OS9 looks for the rest of the procedures in /CMDS and your pwd, but ignores the rest of your merged file! So unless all the other procedures are also saved separately under their own names, you get Unknown Procedure. (And if they are, you just blew 8K for every one of the little buggers in Level 2). To fix, just LOAD ZORCH before typing ZORCH. This puts all modules in memory, nicely packed for Level 2 also. Yes, you can mix packed B9 and 6809 code modules (neat, eh?). I found the fix while trying to run a friend's PACKed graphics demo; the Delphi hackers found the explanation while trying to make the "for 128K only" part of the B9 manual (YAWN) work. -- Mike J Knudsen ...ihnp4!ihwpt!knudsen Bell Labs(AT&T) Delphi: RAGTIMER CIS: " ~E(x):[is_lunch(x) && cost(x)==0] "