Newsgroups: comp.sys.apple2.programmer Path: news.uiowa.edu!hobbes.physics.uiowa.edu!math.ohio-state.edu!howland.reston.ans.net!news.sprintlink.net!noc.netcom.net!netcom.com!hexman From: hexman@netcom.com (Tony Morales) Subject: GEnieLamp A2Pro, October 1995 Message-ID: Organization: NETCOM On-line Communication Services (408 261-4700 guest) Date: Tue, 3 Oct 1995 14:28:55 GMT Lines: 2009 Sender: hexman@netcom23.netcom.com |||||| |||||| || || |||||| |||||| || || ||| || || || || ||| |||| |||||| || |||| Your || || || || ||| || || |||||| |||||| || || |||||| |||||| GEnieLamp Computing || |||||| || || |||||| RoundTable || || || ||| ||| || || || |||||| |||||||| |||||| RESOURCE! || || || || || || || ||||| || || || || || ~ WELCOME TO GENIELAMP A2Pro! ~ """"""""""""""""""""""""""" ~ Condensing Text ~ SPOTLIGHT ON: Tim Buchheim ~ ~ Text Windows in BASIC ~ Checking the Version ~ ~ ORCA/Pascal Questions ~ ORCA Version Numbers ~ ~ HOT NEWS, HOT FILES, HOT MESSAGES ~ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////// GEnieLamp A2Pro ~ A T/TalkNET Publication ~ Vol.5, Issue 31 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Publisher.................................................John F. Peters Editor....................................................Tim Buchheim \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////// ~ GEnieLamp IBM ~ GEnieLamp Atari ~ GEnieLamp PowerPC ~ ~ GEnieLamp A2Pro ~ GEnieLamp Macintosh ~ GEnieLamp TX2 ~ ~ GEnieLamp Windows ~ GEnieLamp A2 ~ LiveWire (ASCII) ~ ~ Member Of The Digital Publishing Association ~ GE Mail: GENIELAMP Internet: genielamp@genie.com ////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ >>> WHAT'S HAPPENING IN THE A2Pro ROUNDTABLE? <<< """"""""""""""""""""""""""""""""""""""""""""""""" ~ October 1, 1995 ~ FROM MY DESKTOP ......... [FRM] HEY MISTER POSTMAN ...... [HEY] Notes From The Editor. Is That A Letter For Me? A2PRO ROUNDTABLE STAFF .. [DIR] DEVELOPERS CORNER ....... [DEV] Directory of A2Pro Staff. News From Online Developers. LIBRARY BIT BONANZA ..... [LIB] RTC WATCH ............... [RTC] HOT Files You Can Download. Real Time Information. LOG OFF ................. [PUB] GEnieLamp information. [IDX]""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" READING GEnieLamp GEnieLamp has incorporated a unique indexing """"""""""""""""" system to help make reading the magazine easier. To utilize this system, load GEnieLamp into any ASCII word processor or text editor. In the index you will find the following example: HUMOR ONLINE ............ [HUM] [*]GEnie Fun & Games. To read this article, set your find or search command to [HUM]. If you want to scan all of the articles, search for [EOA]. [EOF] will take you to the last page, whereas [IDX] will bring you back to the index. MESSAGE INFO To make it easy for you to respond to messages re-printed """""""""""" here in GEnieLamp, you will find all the information you need immediately following the message. For example: (SMITH, CAT6, TOP1, MSG:58/M530) _____________| _____|__ _|___ |____ |_____________ |Name of sender CATegory TOPic Msg. Page number| In this example, to respond to Smith's message, log on to page 530 enter the bulletin board and set CAT 6. Enter your REPly in TOPic 1. A message number that is surrounded by brackets indicates that this message is a "target" message and is referring to a "chain" of two or more messages that are following the same topic. For example: {58}. ABOUT GEnie GEnie's monthly fee is $8.95 which gives you up to four hours """"""""""" of non-prime time access to most GEnie services, such as software downloads, bulletin boards, GE Mail, an Internet gateway, great multi-player games and chat lines. GEnie's non-prime time connect rate is $3.00 an hour. To sign up for GEnie, just follow these simple steps. 1. Set your communications software to half duplex (local echo) 8 bits, no parity and 1 stop bit, at 300, 1200, 2400 or 9600 baud. 2. Call (with modem) 1-800-638-8369. 3. Wait for the U#= prompt. Type: JOINGENIE and hit RETURN. When you get the prompt asking for the signup/offer code, type: DSD524 and hit RETURN. 4. Have a major credit card ready, as the system will prompt you for your information. If you need more information, call GEnie's Customer Service department at 1-800-638-9636. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" [EOA] [FRM]////////////////////////////// FROM MY DESKTOP / ///////////////////////////////// Notes From My Desktop """"""""""""""""""""" by Tim Buchheim [A2PRO.GELAMP] o TOP OF THE PAGE >>> TOP OF THE PAGE <<< """"""""""""""""""""""""" ~ A Letter From the Editor ~ HAPPY BIRTHDAY TO ME.. AND GENIE! Today (October 1) I turn 18 :) """"""""""""""""""""""""""""""""" This month (I'm unsure of the day, but I think it's the 7th) GEnie celebrates its 10th anniversary! Yes, GEnie is a decade old. It has been around longer than AOL, Prodigy, or MSN. :) Looking back over GEnie's history, it's obvious that the world of online services has changed drastically! When GEnie started, its only competition was CompuServe. GEnie's rates started at $12/hour... and that was for 300 baud after 6:00 pm! $3/hour for 14,400 bps is much nicer, and a $2/hour surcharge for Prime Time usage is certainly better than the $9 or so it was a few months ago. (I don't even want to think about what it was when GEnie started!:) One of the original RoundTables on GEnie was A2. At that time, there was no separate A2Pro, however. We programmers only got a few categories in the A2 Bulletin Board. I wasn't around at the time, but I've been told that A2Pro was created because Apple II users in A2 were sick of reading what Apple II programmers talked about. When I first joined GEnie, GEnie*Basic services still existed.. those areas were free during non-prime hours, and I remember hanging around those RoundTables quite a bit :) If the rates hadn't changed in June 1992, I might never have become so involved in A2 and A2Pro... (Although my parents weren't real happy the first few months, when my GEnie bill skyrocketed because I had not yet adjusted to hourly rates. :) GEnie has had its ups and downs since then, but the new reductions in surcharges this year and the new features such as internet access and Zmodem uploads have certainly outweighed any negative aspects of change. -- Timothy Carl Buchheim Editor, GEnieLamp A2Pro [*][*][*] Do you have something to say about GEnieLamp A2Pro? Please post any questions or comments you may have in Category 1, Topic 15 in A2Pro's BB (m530;1). Or, feel free to talk to me (A2PRO.GELAMP) anytime you see me in a Real Time Conference. Readers out there on the Internet: feel free to email me at a2pro.gelamp@genie.com When writing, please tell me where you got your copy of GEnieLamp, if it wasn't on GEnie. I'm always interested to see how many places GEnieLamp ends up :) By the way, the current issue and most back issues are available online in many places. GEnie users should check Library #2 in the DigiPub libraries (DIGIPUB, page 1395;3) Those of you not on GEnie should use gopher software to connect to gopher.genie.com for issues; all recent issues and most older ones are there. [*][*][*] //////////////////////////////////// GEnie_QWIK_QUOTE //// / / / Never attribute to conspiracy what can be adequately / / explained by simple stupidity. / / / ///////////////////////////////////////// MITCHWAGNER //// [EOA] [DIR]////////////////////////////// A2PRO ROUNDTABLE STAFF / ///////////////////////////////// By Tim Buchheim [A2PRO.GELAMP] o A2Pro STAFF LIST o SPOTLIGHT ON: Tim Buchheim >>> A2Pro STAFF LIST <<< """""""""""""""""""""""" ______________________________________________ APPLE II PROGRAMMERS & DEVELOPERS ROUNDTABLE _____ ______ ______________________________________________ /_____|/______\ /__/|__| ___|__| Head Sysop: Hangtime (HANGTIME) /__/_|__| /_____/ Your Sysops: Greg Da Costa (A2PRO.GREG) /________|/__/ __ __ __ Todd P. Whitesel (A2PRO.TODDPW) /__/ |__|__/______ /_//_// / Nathaniel Sloan (A2PRO.HELP) /__/ |__|________// / \/_/ Tim Buchheim (A2PRO.GELAMP) >>> SPOTLIGHT ON: Tim Buchheim <<< """""""""""""""""""""""""""""""""""" AND THIS MONTH... This month we take a look at me, the editor of """"""""""""""""" GEnieLamp A2Pro. I had hoped to have Sloanie write about himself this month, but he's still busy getting used to college life. And, since it's my birthday, I guess it's a good time for me to look back over my first 18 years... I guess I should start at second grade. Why? '''''''''''''' Well, that was when I first started using computers. Starting in second grade my class went to the school's computer lab once a week to learn to type. I used "MicroType: The Wonderful World of Paws" on an unenhanced Apple IIe. At the time I thought the 6 color hi-res graphics were pretty cool. :) After we all learned to type fairly well, we learned some simple LOGO programming. At the time, I didn't really understand what I was doing that much.. we only used the simple drawing commands, FD, LT, RT, etc. We never did any complicated programming, we just moved the turtle around on the screen to draw pictures. In third grade, we did some more typing practice, but mostly we used some math programs, from companies like Sunburst and MECC. In fourth and fifth grades, we used FrEdWriter. It wasn't until sixth grade that I began programming again, this time in Applesoft BASIC. During these years, I used the Apple IIgs a few times, because two of my friends had them. So around sixth grade, I got one, as did two more of my friends. (ours were ROM 3, though, which was nice. The other two had ROM 01s.:) To give you an idea of about when this was, my original system disk from Apple has System 5.0.2 on it. Nope, I never had to suffer through those ProDOS 16 years like so many of you ;) In seventh grade, I took the only computer class offered at my school. We used MicroType: The Wonderful World of Paws, FrEdWriter, and FrEdBase (a database program which I haven't seen anywhere since) during the first semester. In the second semester, we used LOGO and Applesoft.. this time I learned some of the more powerul features of LOGO (although still not that much) and did a lot with Applesoft. I was getting Nibble magazine, so I did a lot of Applesoft experimentation at home. (unfortunately, I have lost just about all those programs I wrote.. I recovered a few off some aging 5.25" floppies a few years ago, and uploaded them to GEnie, but none are worth the download time or disk space :) In eigth grade, I was a teacher's aid for the programming class. The teacher had recognized the fact that I knew more about Apple IIs than she did. I spent that class period correcting homework, writing programs, improving my typing speed, fixing broken printers and disk drives, and playing games on the brand new Mac Classics :) In ninth grade I took a BASIC programming class, but at my high school we had ancient 8088 machines with CGA monitors.. some didn't even have 640k of memory. This is where I learned to hate MS-DOS and Intel chips. :) oh, and PowerBasic sucks, too. At home I was learning to use ORCA/Pascal (v1.2, which I had gotten in 8th grade, I think, but hadn't used much). I didn't have any toolbox manuals, except TBR3, so I wasn't able to do much. :) In January of my freshman year I got a modem.. I signed up for GEnie a few days later (it was the cheapest, and the Incider/A+ had just rated it the best for Apple II support.) In 10th grade, I got ORCA/M, and finally started learning some assembly. I got my first job on GEnie as the assistant editor for GEnieLamp A2Pro. I edited the library and RTC columns. As part of my job, I attended the A2Pro RTC nearly every single night. That's when I really started programming. I picked up the GS Hardware ref and the GS/OS ref. I started to write some fairly decent programs in Pascal. Around March or so I got my first sysop position, as host of the Friday night RTC in A2Pro. [blatant plug mode on] I still host that RTC.. come visit me between 9:30 and 11:00 pm Eastern Time on Friday nights! [plug mode off] I finally got TBR 1 and 2 at the end of the school year... and during the summer I went to KansasFest '94. During 11th grade, I didn't get much programming done, because I kept spending more and more time on GEnie :) In January of this year, I took over as editor of GEnieLamp A2Pro, because Nate Trost went on a five month vacation to Europe :) I also took on some more responsibility in A2Pro, although my exact position isn't clearly defined, except for that same Friday night RTC. This summer I went to KansasFest '95 (see the August issue for the complete story!) which wasn't quite as fun as KansasFest '94, but was still pretty cool. :) Now I'm a senior in high school, taking AP Computer Science, which is much too easy for me, but it's the most difficult class they offer. It is forcing me to learn ISO Standard Pascal, though. You really appreciate ORCA/Pascal after you try to write something which meets the ISO standard! Try putting a {$ISO+} directive at the start of a program and count how many "Not ISO standard" errors you get! :) Today (October 1) is my 18th birthday.. pretty cool, I think. :) [EOA] [HEY]////////////////////////////// HEY MISTER POSTMAN / ///////////////////////////////// Is That A Letter For Me? """""""""""""""""""""""" By Tim Buchheim [A2PRO.GELAMP] o BULLETIN BOARD HOT SPOTS o PROGRAMMER'S TIPS o MESSAGE SPOTLIGHT >>> BULLETIN BOARD HOT SPOTS <<< """""""""""""""""""""""""""""""" ~ Where All the Action Is! ~ [*] CAT 3, TOP 4, MSG {108}....The Merlin 16+ Assembler [*] CAT 8, TOP 18, MSG {4}......ProDOS FST [*] CAT 9, TOP 7, MSG {206}....Applesoft BASIC help please! [*] CAT 13, TOP 4, MSG {128}....Looking for... [*] CAT 15, TOP 3, MSG {46}.....Miscellaneous Tool Set [*] CAT 15, TOP 4, MSG {144}....QuickDraw II [*] CAT 15, TOP 34, MSG {78}.....Text Edit Tool Set [*] CAT 20, TOP 17, MSG {74}.....General Apple IIgs questions >>> PROGRAMMERS' TIPS <<< """"""""""""""""""""""""" ~ Helpful Advice from the Experts ~ ZERO PAGE LABELS Now, as soon as you guys quit reading this question, the """""""""""""""" first thing you're going to say is RTFM... I've read the friendly manual and it's not making sense to me. I'm using Merlin 16+ v4.08. My serial # is 16001. So I'm writing a program in assembly, and I decide that I need a 1 byte puka to hold some value, maybe inc it at some time. The way I can do it, is to look at my zero page chart and pick out a free spot, and refer to it by memory byte number directly. I don't like this. I'd rather say "Assembler, grab me a byte of memory... call it puka1", and be able to refer to that label without knowing or caring where it actually is located. Be able to lda puka1, and dec puka1, etc... Now I've read the book on labels, and define byte, I need some clarification. Sorry for ranting. (C.OREM, CAT3, TOP4, MSG:108/M530) >>>>> Chuck O, """"" >> So I'm writing a program in assembly, and I decide that I need a 1 byte >> puka to hold some value, maybe inc it at some time. The way I can do it, >> is to look at my zero page chart and pick out a free spot, and refer to >> it by memory byte number directly. I don't like this. Sample Merlin-16+ v4.08 Source... * * My normal start of source... * case se ;all my source uses case sensitive labels tr on ;truncate generated bytes tr adr ;truncate addresses xc ;enable 65C02 mode xc ;enable 65C816 mode mx %00 ;16 bit A,X,Y rel ;this will be OMF code in the end typ S16 ;an S16 application * * Direct Page layout... * dum $0000 ;start a dummy section Pucka1 ds 2,0 ;this will be a word variable Pucka2 ds 1,0 ;this will be a byte variable Pucka3 ds 1,0 ;this will be another byte variable dend ;end the dummy section * * Here resideth some code... * phk ;stack my code bank plb ;use as my data bank * jsr GetDP ;call subroutine that gets my direct page bcs Fatal ;Oooops... tcd ;now have my direct page set up * stz Pucka1 ;zero out Pucka1 stz Pucka2 ;zero out Pucka2 and Pucka3 * inc Pucka1 ;bump the first variable sep $30 ;8 bit A,X,Y here lda #'A' ;something for the acc ldy #'B' ;and something for Y also sta Pucka2 ;setup Pucka2 sty Pucka3 ;and Pucka3 rep $30 ;back to 16 bit A,X,Y * * yada yada yada * Another approach would be to place a bunch of DS's at some place in your program (typically at the end) and use these (instead of eating up valuable bank zero space). Preferable, unless you're trying to keep close tabs on the cycle counts. Does that cover your question? -Harold (HAROLD.H, CAT3, TOP4, MSG:109/M530) >>>>> >So I'm writing a program in assembly, and I decide that I need a 1 """"" >byte puka to hold some value, maybe inc it at some time. The way I >can do it, is to look at my zero page chart and pick out a free >spot, and refer to it by memory byte number directly. I don't like >this. >I'd rather say "Assembler, grab me a byte of memory... call it >"puka1", and >be able to refer to that label without knowing or >caring where it actually is located. Be able to lda puka1, and dec >puka1, etc... Try: puka1 = $18 ;Any number between 0 and $FF Don't forget to set the computer to one byte mode if that is all you want to inc. Clay Warning! Opinions will change due to new facts. Clayburn W. Juniel, III - Effective Software Solutions clay1@primenet.com (C.JUNIEL, CAT3, TOP4, MSG:110/M530) >>>>> >So I'm writing a program in assembly, and I decide that I need a 1 """"" >byte puka to hold some value, maybe inc it at some time. The way I >can do it, is to look at my zero page chart and pick out a free >spot, and refer to it by memory byte number directly. I don't like >this. If you don't need the value to be a zero page location and you aren't being memory concious, you can do what I so often do. I place little storage areas all over my programs when I need a quick place to stash some data. For example: (in 8-bit mode) Start lda $c000 ; get keypress bne :none ; none there sta :puka1 ; hold it ; blah blah blah ; do something that destroys the accum here inc :puka1 dec :puka1 lda :puka1 ; get back that keypress rts ; return :puka1 ds 1 ; holds one byte Of course you could set up a temporary data storage in your program to look something like this: (if you're concerned about saving space) puka1 ds 1 ; temp storage area(s) puka2 ds 1 puka3 ds 3 Then reference these locations as needed. Harold's example is a good one if you need a zero page location. (R.NIELSON1, CAT3, TOP4, MSG:111/M530) <<<<< Gentlemen, """"" Thank you for the help. I'm now going to try and digest this, so I can ask more intelligent questions later. Thanks again, Chuck (C.OREM, CAT3, TOP4, MSG:112/M530) TEXT WINDOWS IN BASIC I'm having trouble getting some display windows to """"""""""""""""""""" work the way I want and I'm wondering what I'm doing wrong. My intention is to have a data entry line (Vertical line 19, for example) and after the data is entered, that the entry moves up to a Display area (lines 8 to 11, for example) which will display the just entered data line, while the cursor moves back to the Entry area for a new input line. The subsequent data lines will also be displayed in the Display area with the newest lines forcing the oldest out the top of the Display area window. I've tried the following lines: 50 V = 9: VV = 19 100 POKE 34,8 : POKE 35,11 REM: DISPLAY WINDOW 120 FOR Y = 1 TO 5 130 VTAB (VV): HTAB 1: INPUT "";A$ : REM Get Data in Data Entry Line 140 B$ = A$ 150 VTAB (V): HTAB 1: PRINT B$; : REM Print data in Display Area 160 V = V + 1 170 NEXT Y This code does display the data in the general display area, but I sometimes get double-spacing between entries, and the data just continues beyond the bottom of the Display window I've set. Any ideas on what I'm doing wrong ? I haven't done any setting up of text window areas before, but I want to use this approach now. Thanks. Stan Sztaba (S.SZTABA, CAT9, TOP7, MSG:206/M530) >>>>> Your "window" code has two problems: first, the INPUT line is below """"" the bottom window. The Monitor sees this as print below the bottom of the window and scrolls the window up at each INPUT, giving you the double-spacing. Second, once variable V exceeds the window bottom, it will print B$ below the window and won't scroll right. Try these fixes to the code you listed in msg 206: 125 POKE 35,24 145 POKE 35,11 165 IF V > 11 THEN V = 11 TomZ (A2.TOMZ, CAT9, TOP7, MSG:207/M530) >>>>> Stan, """"" What Tom posted was correct, although there is a problem with the display window not scrolling when displaying the last line. To ensure that the display window scrolls properly when displaying lines at the last line in the window, some tricks are needed. You may want to try this code: 10 TEXT : HOME 20 VT = 8: REM Display Window Top 30 VB = 11: REM Display Window Bottom 40 IL = 19: REM Input Line 50 V = VT: REM Starting Display Line 55 L$ = "----------------------------------------": REM 40 dashes 60 VTAB VT - 1: HTAB 1: PRINT L$ 61 VTAB VT - 1: HTAB 12: PRINT " Display Window "; 62 VTAB VB + 1: HTAB 1: PRINT L$ 90 V = V - 1: REM Adjust down for later 100 POKE 34,VT - 1: POKE 35,VB 120 FOR Y = 1 TO 8: REM Number of entry lines 125 POKE 35,24: REM Drop bottom window for input 130 VTAB IL: HTAB 1: INPUT "";A$: REM Get data entry line 140 B$ = A$ 145 POKE 35,VB: REM Set it back to bottom of display window 150 V = V + 1 155 IF V > VB THEN V = VB: VTAB V: HTAB 1: PRINT : REM Scroll 160 VTAB V: HTAB 1: PRINT B$; 165 IF V > VB THEN V = VB 170 NEXT Y 180 VTAB 20: POKE 34,0: POKE 35,24: REM Full screen again 190 END I have done a lot of text window managing via Applesoft. I have quite a few programs that have a display area of the screen where output from a CAT command will go while the user remains at a data entry line, just like you are trying to do. If you don't feel like typing in this whole program there is a neat trick that you can do that I always use. 1. Save the text program above to a file named SCROLL.EXEC onto a disk that has ProDOS and BASIC.SYSTEM. 2. Boot the disk and you'll be in BASIC.SYSTEM at the "]" prompt. 3. Type NEW to clear the memory. (Even though it is empty) 4. Type EXEC SCROLL.EXEC. This will take the SCROLL.EXEC text file and process it as if you are typing it in. 5. Now save the program SAVE SCROLL. 6. Do a LIST and you will see the program in memory. If you ever want to generate a text listing from an Applesoft program you can do it easily. This is what I did to get my program listed here. 1. Load the Applesoft program into memory. (i.e. LOAD PROGRAM) 2. Add this line to the end of the program: 63333 D$=CHR$(4): F$="PROGRAM.TXT": PRINT D$"OPEN"F$:PRINT D$"WRITE" F$: LIST - 63332: PRINT D$"CLOSE 3. Now type GOTO 63333 and the PROGRAM.TXT file will be generated. Now you can use this file anyway you want, like posting it to the BB. :) - Russ (R.NIELSON1, CAT9, TOP7, MSG:208/M530) CONDENSING TEXT Y'know how if Finder or Standard File doesn't have enough """"""""""""""" room to fit some text into a space, it will use that condensed-kinda font? What is that, and how can I use that font when I need it? Thank ya, Bret (B.VICTOR1, CAT15, TOP4, MSG:144/M530) >>>>> Bret: that font is Shaston 8 with CharExtra set to -1, if I'm not """"" mistaken. Sheppy [Team PPCPro] (SHEPPY, CAT15, TOP4, MSG:145/M530) >>>>> That's right - Shaston 8 with CharExtra set to -1. The toolbox """"" call DrawStringWidth will draw a string in an alloted space, and if the space isn't enough, it'll first set CharExtra to -1 (to scrunch the characters together) and then if that's still not enough space, it'll truncate the string at a place of your choosing (beginning, middle, or end) and insert an ellipsis (those three ... dots) where the truncation took place. It's a great tool call. (WANKERL, CAT15, TOP4, MSG:146/M530) >>>>> Note that DrawStringWidth is only present in System 6.0.1. (And is """"" by far the most useful of the new QuickDraw II Auxillary calls.:) It's on page 19 of the 6.0.1 docs. (A2PRO.GELAMP, CAT15, TOP4, MSG:147/M530) <<<<< DrawStringWidth -- right on! Thanks, guys! """"" -Bret (B.VICTOR1, CAT15, TOP4, MSG:148/M530) TEXTEDIT TROUBLES I'm having trouble using the Text Edit control and """"""""""""""""" could use some advice. Basically, I'm reading a file and then placing the characters it contains in to a previously reserved area of memory. This area is then used when I create the Text Edit control. During this process the colors of the characters are changed depending on certain characteristics of the original file. This is done by using an embedded change as per LETextBox2. The only change is to the foreground color. No other changes to text style are made. Everything works until there are more than approximately 1024 ($400) changes in color. When this happens, the computer freezes and requires a reboot. I have stepped through the code using GSBug and the problem occurs when the control is created. The systems does not return any error code, it just sits there. It is possible to check for the number of color changes and stop the process before the "Magic number" is reached, but I would appreciate a more elegant solution. Thanks, Bob (R.HEWITT5, CAT15, TOP34, MSG:78/M530) >>>>> I seem to remember that the LETextBox2 kind of style changes """"" doesn't work very well... but that might be in exporting text, not importing. Fuzzy memory here. :-) My advice is to try using a different style type instead of LETextBox2. I've also run into problems with TESetText not working when there are a lot of style changes, but TEInsert works fine. So, option number two would be to create an empty control and then use TEInsert to shove the text/styles in there. (WANKERL, CAT15, TOP24, MSG:79/M530) <<<<< Thanks for your suggestion of using TEInsert instead of TESetText. """"" Unfortunately it didn't help. > Everything works until there are more than approximately > 1024 ($400) changes in color. When this happens, the > computer freezes and requires a reboot. When I started this project, I was under the impression that I knew a little about the TextEdit tool set. After trying your suggestion (and a few other things) I have confirmed that I know less than I thought. I must have something seriously wrong with the way I'm setting things up. Even without the style changes, things don't act the way the manual describes. I'm going to have to go back and double check what I've done wrong. Bob (R.HEWITT5, CAT15, TOP34, MSG:80/M530) >>>>> I didn't see the original post on this, but TextEdit really weirds """"" out when you have lots of style changes -- especially if your source text is in rTextForLETextBox2 format. Sheppy [Team PPCPro] (SHEPPY, CAT15, TOP34, MSG:81/M530) >>>>> yeah, TextEdit seems to have quite a few bugs crawling around in """"" it.. (A2PRO.GELAMP, CAT15, TOP34, MSG:82/M530) NDAS WITHOUT AN APPLE MENU? Hi Everybody! """"""""""""""""""""""""""" I'm sorta new to the IIgs programming world, so here goes... I'm working on a rudimentary 'KidDesk' type project for the IIgs to keep my kids out of the Finder -- where they're extremely interested in the trash can... :) It's fairly straightforward as a program launcher, but my question is this: Is there a way to open desk accessories without having to choose them from the Apple menu? Sort of like clicking on the calculator opens the Calculator DA, notepad opens a NotePad DA, etc... I'm using ORCA/C, Genesys & a lot of code from M.Westerfield's ToolBox/C series. Also, this is my first 'real' project outside of the series. Can anyone point me in the right direction? I have all toolbox references (thru 6.0.1) plus tech notes, etc... Thanks! -- Tom Bradshaw (T.BRADSHAW4, CAT20, TOP17, MSG:74/M530) >>>>> Well, to open an NDA, call _OpenNDA (page 5-20 of Toolbox Reference """"" Volume 1) with the NDA's ID number. (The ID number is the menu ID assigned to the NDA when you use _FixAppleMenu to add NDAs to the Apple menu) I'm not sure how you'd know which ID number to use. (Unless maybe you used _FixAppleMenu to add the NDAs to a menu, then parsed the menu record.. if you really feel like doing that.. :) I'd just keep it simple and stick with the menu :) (A2PRO.GELAMP, CAT20, TOP17, MSG:76/M530) >>>>> I wrote a program called Quick DA that does just that. It'll open """"" a NDA, CDA, or CDev for you without you having to choose it from whatever place it is. :-) It has two access methods - the first is you hit a control-key-on-the-keypad key (or control-function-key) and it'll magically open a DA you have assigned. The other method is via the _SendRequest tool call... so you can request Quick DA to open a new desk accessory named "EGOed" and poof, there it is. You can probably tie the _SendRequest method into any of your program quite easily. I've even written an XCMD for Spectrum that lets you script spectrum into opening a DA for you, too. It's cool. :-) (WANKERL, CAT20, TOP17, MSG:77/M530) >>>>> Tom, """"" You may be able to avoid a lot of work if you merely hide the Trash can. There may be a utility by Snakebyte or someone else that does this. Also, Brendan Bellina wrote "No Worries" a Hypercard stack that allows easy launching of programs, calling an NDA, and really provides a LOT of security. Very much like the Mac program "At Ease". You could easily extract the scripts to learn how to launch various programs and NDAs with Simple Hypertalk commands. There is also an Init called DCP that will disable the text control panel for you, so they can't muck with your settings. Of course, you should deactivate the CDEV control panels for maximum security. In Hypercard, the command for opening NDAs is this: On mouseup domenu "calculator" end mouseup And bingo, the calculator NDA opens! You can also perform any menu selection in this manner, such as domenu "quit" or whatever. Brian Gillespie, Jaunt! Software (B.GILLESPIE3, CAT20, TOP17, MSG:86/M530) <<<<< To Tim Buchheim, """"" > Well, to open an NDA, call _OpenNDA...id number... (Slapping my forehead)...You're right! About the ID numbers though, that seems pretty messy. Although, it appears to be the same order that the NDAs are loaded in. To WANKERL [Joe], > I wrote a program called Quick DA... I never thought of that. I check it out in my back issues of GS+. I also want to incorporate some list managing routines based on your 'Things to Do' NDA (like picking different desktops based on each kid). Time to wade thru some more source code... To Brian [B.GILLESPIE3], > ...hide the trash can... ..."No Worries" Hypercard stack... etc.. Thanks for these wonderful suggestions. Again, the whole purpose of this project is to get more experience in GS programming. If I get too frustrated, I'll look into these as stopgap measures. :) --Tom (T.BRADSHAW4, CAT20, TOP17, MSG:87/M530) CHECKING THE VERSION Okay guys, one more question... :) """""""""""""""""""" What's the best way for my Finder Extention to check if it's running under system 6.0.1? (And come to think of it... what's the best way to get itself out of memory if it isn't?) Thankie, Bret (B.VICTOR1, CAT20, TOP17, MSG:78/M530) >>>>> Bret, """"" To see if the user is using System 6.0.1, call _QDVersion and see if it returns $0308. (If you check page 17 of the 6.0.1 reference, you'll see that the ONLY change in version 3.8 of QuickDraw II was the version number change. To quote the 6.0.1 ref, "QDVersion is a standard reference for distinguishing system versions, so it had to change." :) (A2PRO.GELAMP, CAT20, TOP17, MSG:79/M530) >>>>> I prefer to call VersionGS and see if the returned value is $0402 """"" (GS/OS 4.02, which is what ships with System 6.0.1). Sheppy [Team PPCPro] (SHEPPY, CAT20, TOP17, MSG:80/M530) >>>>> Sheppy, """"" yep, that works too :) I'm not sure why Apple always mentions using _QDVersion to check for what system software you're using, but they mention it in several places. Here's another one: "Assuming a correct installation, requiring QuickDraw 3.7 in effect requires System Software 6.0" (Apple IIgs Technical Note #100, June 1992 update) of course, that is "assuming a correct installation," which might be a bit much to ask.. QD 3.8 would be perfectly happy running in 6.0, so I guess some twisted individual might put QD 3.8 on his 6.0 system.. GS/OS 4.02 wouldn't work w/o the current versions of certain toolsets, so VersionGS is probably more dependable.. (A2PRO.GELAMP, CAT20, TOP17, MSG:81/M530) >>>>> Actually, what I do is load the system's rVersion resource and """"" check that for 6.0.1. Seems logical to me. Regards, Richard (RICHARD.B, CAT20, TOP17, MSG:82/M530) >>>>> Richard, """"" yes, that works. takes longer, too. :) (A2PRO.GELAMP, CAT20, TOP17, MSG:83/M530) >>>>> I just check the QuickDraw version. Apple does it that way. So I """"" do, too. If someone installs noncompatible versions of things, then they deserve to get bit. :-) (WANKERL, CAT20, TOP17, MSG:84/M530) >>>>> >If someone installs noncompatible versions of things, then they """"" >deserve to get bit. :-) right. Anyone who doesn't know what he's doing should use Apple's Installer. That's what it's for. Anyone who does know what he's doing should know not to put System 6.0.1's TS2/TS3 file (I think that's where QD currently resides) on a System 6.0 disk :) (A2PRO.GELAMP, CAT20, TOP17, MSG:85/M530) >>> MESSAGE SPOTLIGHT <<< """"""""""""""""""""""""" ~ Important or Interesting Messages ~ A PRODOS FST ODDITY Why is it that when you Open a ProDOS volume """"""""""""""""""" directory, the modDateTime field is zeroed, but when you do GetFileInfo, it's filled in? (This is using System 6.0.1.) (S.REEVES2, CAT8, TOP18, MSG:4/M530) BRAM DOCUMENTATION ERRORS Ok, I've been thru all my docs, with no luck, """"""""""""""""""""""""" so here's a chance for everyone else to check as well :) I have discovered that the listing in TBRV1 for the various BRAM locations is filled with errors, especially when dealing with BRAM from a ROM_03 machine (two examples, what location REALLY gets changed when you change the mouse resolution / scaling, or when you change the DoubleClick time (the docs are seriously wrong on these)) There are numerous other locations incorrectly documented... (many are only off by one or two locs, but that's enough to cause serious grief) The locations that are covered in the System 6.0 and System 6.0.1 refrence updates however appear to be correct for both ROM_01 and ROM_03 machines, Thank You Mike, Nice Job :) Anyway, does anyone know where I can find a =correct= listing for BRAM locations $00 thru $51 (or higher if you have the info) besides plugging away with CDevs and inspecting BRAM to see what changed each time? Does anyone know what any of the "reserved" / undocumented locations are used for? (location $81, which Apple simply noted as an "Operating System Variable", is the size of the GS/OS disk cache :) (no, I'm not writing something to permit illicit BRAM tweaking, this info would only be used for informational display at boot time should something in bram not match up with what had been previously saved to a file on disk) -Harold (HAROLD.H, CAT13, TOP4, MSG:128/M530) THE TROUBLE WITH _ALERTMESSAGE It's been awhile since I've been in this """""""""""""""""""""""""""""" topic (time wise that is) but.... I'mmmm Baaaaaaaaaaaack! :) Some nasties exist in the _AlertMessage call.... First the good news: 1) Under System 6.0.1 the Miscellaneous Toolset version is $0303 (could not find this in the 6.0.1 docs) 2) The disk based patches to the Miscellaneous toolset which update it to v3.03 are automatically loaded by the system early during the boot process, so there's no need to place a _LoadOneTool call to ensure its availability. (it's loaded by the time TIF's and PIF's are loaded) Now the bad... 1) The strings passed to _AlertMessage are supposed to be in _AlertWindow format, this means that the IconSpec must be present even if the string will be displayed on the text screen (icon info is supposed to be ignored). Passing a value of $30 (for "display no icon") should be legal, and infact is fine if the alert will be displayed on the SHR screen. But if it gets displayed on the text screen some very ugly things happen (including nasty display of the alert, trashed memory, crashing, whole bunch of uglyness...) Specifying an icon to be used clears this up. (haven't tested yet with a custom icon) 2) No length limit is specified for the text used for the button name strings, but if one uses strings too long (and they get displayed on the text screen) more nastiness as described above occurs... (not sure what the max safe char count is yet) 3) Regardless of the value passed for standard sized windows, the one that is used on the text screen is always the same size (and it's always on the 40 column screen, regardless of the control panel settings... ick!) I'm working on a small init that uses the _AlertMessage call to handle some user interaction, so I'll be wading thru all the problems with this call, and noting them here. This msg is just some preliminary findings. -Harold (HAROLD.H, CAT15, TOP3, MSG:46/M530) [*][*][*] While on GEnie, do you spend most of your time downloading files? If so, you may be missing out some excellent information in the Bulletin Board area. The messages listed above only scratch the surface of what's available and waiting for you in the bulletin board area. If you are serious about your Apple II, the GEnieLamp staff strongly urges you to give the bulletin board area a try. There are literally thousands of messages posted from people like you from around the world. [*][*][*] [EOA] [DEV]////////////////////////////// DEVELOPER'S CORNER / ///////////////////////////////// News From The A2Pro Online Developers """"""""""""""""""""""""""""""""""""" By Tim Buchheim [A2PRO.GELAMP] o ONLINE SUPPORT IN A2Pro o ORCA VERSION NUMBERS o ORCA/PASCAL QUESTIONS o KEEP YOUR COMPILERS UPDATED o PRIZM PRINTING PROBLEMS >>> ONLINE SUPPORT IN A2Pro <<< """"""""""""""""""""""""""""""" CAT TOP COMPANY === === ======= 29 INDEPENDENT DEVELOPERS ONLINE 2 DYA/DigiSoft Innovations Online 8 Simplexity Software Online 14 Quality Computers Q-LABS Online 20 DreamWorld Software Online 26 METAL/FV Software Online 32 Kitchen Sink Software Online 38 EdIt-16 (Bill Tudor) 30 PROCYON, INC. 31 SOFTDISK PUBLISHING 33 GS+ MAGAZINE 34 JEM SOFTWARE 35 PRODEV, INC. 36 THE BYTE WORKS Each month this column feature highlights and news from various developers who provide support via A2Pro. >>> ORCA VERSION NUMBERS <<< """""""""""""""""""""""""""""" SO WHICH ONE IS IT? What is the latest version of ORCA/M? My update disk """"""""""""""""""" says 2.0.3, but after installing it, the shell comes up and says it is 2.0.2. Which is it really? Joat (A2.TIM, CAT36, TOP9, MSG:205/M530) >>>>> The latest version of ORCA/M is 2.0.4. Keep in mind that ORCA is a """"" big system, and each executable file has its own independent version number. The latest version of the shell, which is what you saw the version for, is 2.0.3. The version number we list is the _disk_ version, which is contained in the Login file and printed when you boot from the original disk or from a full installation. Mike Westerfield (BYTEWORKS, CAT36, TOP9, MSG:206/M530) >>> ORCA/PASCAL QUESTIONS <<< """"""""""""""""""""""""""""""" SOME QUESTIONS I was just wondering if one of you Pascal-heads could """""""""""""" answer a couple of quick questions for me about ORCA/Pascal. I'm just not familiar enough with the product to be sure what I think is right. First, are there unsigned numbers in O/P, or are all numbers signed? Second, I'm under the impression that it is much easier for a C function to call a Pascal function that is the reverse. Looking at the calling conventions, the Pascal caller would have to reverse the order of the arguments, and the C function to be called would have to be named with all its letters in uppercase. Whereas, to call a Pascal function from C, you just stick the "pascal" qualifier in the function declaration. Is this correct? Thanks, Mike (M.HACKETT, CAT36, TOP10, MSG:362/M530) >>>>> From a technical standpoint, the Pascal language does not have (or """"" need) unsigned numbers. Of course, knowing all of the numbers are unsigned allows the code generator to create more efficient code, especially for compares. Unlike C, Pascal is a strongly typed and syntactically consistent language. As a result, in ORCA/Pascal, I was able to easily implement unsigned operations. Any time all of the arguments are declared as a subrange of positive values, ORCA/Pascal automatically shifts to unsigned operations. The gutsy details are a bit involved; I'll refer you to the manual for them. The bottom line is that it's useful to declare this type in your ORCA/Pascal programs: type unsigned: 0..maxint; Note that I did not extend the Pascal language to make this work. The programs you create using this convention will work on _any_ Pascal compiler. They will just work _better_ in ORCA/Pascal! As for whether it is easier to call C from Pascal or Pascal from C, the real answer is that it's just as easy either way. In both cases, you need to declare the C side with the pascal qualifier. Why? Because C uses parameter passing conventions that are different from any other language. From a historical and portability standpoint, keep in mind that some C compilers use a fortran qualifier instead of a pascal qualifier. It does the same thing. :) Mike Westerfield (BYTEWORKS, CAT36, TOP10, MSG:363/M530) <<<<< Thanks Mike. I wasn't aware of the optimizations done for unsigned """"" subranges in Pascal (I knew unsigned operations were faster in C). > In both cases, you need to declare the C side with the pascal qualifier. Ah, but then the function is using the Pascal calling conventions! I guess I could have been clearer. The point being a C function declared _without_ the pascal qualifier (i.e. using the C calling conventions), is not as easily accessed from Pascal as one using the Pascal calling conventions, right? Whereas, to access a Pascal-format routine from C, all you need is that pascal qualifier in the C header file. I'm just trying to confirm that I am making the right choice by using the Pascal conventions for cross-language libraries. Mike Hackett (just to be clear) (M.HACKETT, CAT36, TOP10, MSG:364/M530) >>>>> > I knew unsigned operations were faster in C. """"" Well, not compared to ORCA/Pascal. C does still have an advantage, but it's in the range of numbers. unsigned int in C ranges from 0..65535, while in Pascal, 0..maxint only goes to 32767. The same idea holds for longint. But the speed is the same. In fact, when there _is_ a difference, it's almost always Pascal that wins--the stricter type checking, and in particular the tighter for-loop rules, allow the Pascal compiler to make optimizations with unsigned that are simply not safe (or legal) in C. It is perfectly true that a C function using C calling conventions cannot be called by any language except C or assembly. Mike Westerfield (BYTEWORKS, CAT36, TOP10, MSG:365/M530) <<<<< > > I knew unsigned operations were faster in C. """"" > Well, not compared to ORCA/Pascal. [...] Oops. No, I just meant that unsigned operations were faster than signed operations in C. I wasn't comparing Orca/C to Orca/Pascal. I don't expect your Pascal to ever lag behind your C compiler. We all know how you love your Pascal! :-) > It is perfectly true that a C function using C calling conventions cannot > be called by any language except C or assembly. OK, thanks. That answers that question. Mike (M.HACKETT, CAT36, TOP10, MSG:366/M530) >>>>> Actually, the fact that Pascal can do some things faster than C has """"" to do with the design of the language, not any personal preference I have. C can also do some things faster than Pascal. For crunching numbers, integer or real, Pascal has inherent advantages C does not share. C also has some advantages Standard Pascal does not, but they generally don't apply to real- world implementations of Pascal. And interestingly enough, I _like_ C. :) The impression that I like Pascal and dislike C comes mostly from the fact that a large number of vocal people have promoted C and disparaged Pascal without knowing either language well enough to have an informed opinion, and I feel it is my moral obligation to step in. ;) Mike Westerfield P.S. You should hear what I say about languages I _don't_ like! Don't get me started on Forth... :) (BYTEWORKS, CAT36, TOP10, MSG:367/M530) >>>>> Does this mean there is not likely to be an ORCA/Forth product? :) """"" Joat (A2.TIM, CAT36, TOP10, MSG:368/M530) >>> KEEP YOUR COMPILERS UPDATED <<< """"""""""""""""""""""""""""""""""""" A BUG? YES! FIXED? YES! I think I've found a bug... """"""""""""""""""""""" the compiler says it's version "2.1 A1" .. is this current? anyway, the compiler doesn't seem to like it when no parameters are passed to the EOLN function.. here's a short test program: Program test(input,output); var a: packed array [1..10] of char; count: integer; begin a := '0123456789'; count := 0; while (not eoln) and (count < 10) do begin count := count+1; read(a[count]) end; writeln(a); end. When I compile this program, ORCA/Pascal reports that there is a total of 1 error, but it never shows where the error is. Where it should be showing an error message, it just prints a blank line (with a |, \, -, or / character at the beginning of the line) When the program is executed, eoln seems to be true at all times and the loop is never executed. As far as I can tell, it shouldn't be doing this. I discovered this when I was trying to input strings in an ISO-legal way. (for a programming project for a class at school.) I've tried this with ISO+ and ISO-, and with optimizations on and off. It never works. OTOH, it works fine in Turbo Pascal at school. (And in whatever compiler the authors of my textbook used.) (A2PRO.GELAMP, CAT36, TOP10, MSG:376/M530) >>>>> Tim, """"" > Where it should be showing an error message, it just prints a blank line > (with a |, \, -, or / character at the beginning of the line) While Pascal is compiling, these characters "|, \, -, or /" loop through to show that something is happening. I compiled the program with Pascal 2.1.1 B3 from the ORCA library. Requires BYTEWORKS access. Send email to get access. I compiled and ran the program without trouble. I have had a few programs freeze with one of the looping characters (mostly C). This one wasn't one of them. I ran my 2.0.1 version of Pascal and got your errors. Time to upgrade.:) Don't know why the program fails with the earlier versions. - James - [IMAGE] (J.GRAY38, CAT36, TOP10, MSG:377/M530) <<<<< hmm.. you know, I probably have 2.1.1 B3 on my hard drive """"" somewhere.. probably just never unpacked it. I'll give it a try.. >While Pascal is compiling, these characters "|, \, -, or /" loop through.. yeah, I know. But once for each EOLN in my program, it would fail to erase the "twirling cursor" character properly and leave junk on the screen. (A2PRO.GELAMP, CAT36, TOP10, MSG:378/M530) <<<<< oh, I did install 2.1.1 B3.. fixed everything.. and the release """"" notes for it even list my problems specifically as bugs which have been fixed in the 2.0.x -> 2.1 upgrade.. >3. Eof and eoln have not worked for the standard input file since the >switch to the .CONSOLE driver. They do, now. >5. Reading a value into an array element or a pointer, as in > > read(readValue[4]) > >did not always work correctly. I have an ORCA/Pascal 2.1 upgrade disk around here somewhere.. I guess I never got around to installing it :) (A2PRO.GELAMP, CAT36, TOP10, MSG:379/M530) >>>>> Glad it's all working, Tim. """"" Mike Westerfield (BYTEWORKS, CAT36, TOP10, MSG:380/M530) >>> PRIZM PRINTING PROBLEMS <<< """"""""""""""""""""""""""""""""" SLOW PRINTING I have been using ORCA/C a lot lately. :) And I have been """"""""""""" doing so under the Prizm shell. I cannot print to my IW LQ while in Prizm. Or rather, I can, but at a =much= reduced rate. I average about one line per minute, but only after about 5 minutes of prep time. Do I need to do something different to Prizm to get it to print properly? I find myself loading Shadowwrite to do my printing from within the shell. I am using the latest version of Prizm (2.0.2?), whatever came with ORCA/M 2.0.3 and ORCA/C 2.0.1. Joat (A2.TIM, CAT36, TOP19, MSG:87/M530) >>>>> Yes. PRIZM prints using Apple's drivers, sending formatted fonts """"" to the printer. That works great for a networked laserwriter, which is what it was designed for, but is awful on direct connect dot matrix printers. Try moving to the shell window and printing the file like this: type +t myfile.cc >.printer Be sure you set up the .printer driver first, and be _very_ sure to include the +t. Mike Westerfield (BYTEWORKS, CAT36, TOP10, MSG:88/M530) //////////////////////////////////// GEnie_QWIK_QUOTE //// / / / My memory's getting unreliable...too bad they / / don't have grey-matter SIMMs! / / / //////////////////////////////////////// KEVIN.STEELE //// [EOA] [LIB]////////////////////////////// LIBRARY BIT BONANZA / ///////////////////////////////// HOT Files You Can Download """""""""""""""""""""""""" By Tim Buchheim [A2PRO.GELAMP] o SHELL UTILITY o SOURCE CODE o GNO UTILITIES >>> SHELL UTILITY <<< """"""""""""""""""""""" File #4863 TERM.1.1.BXY (GS) Uploaded on 9/26/95 by K.FLYNN About 10K (d/l time approx. 1 minute @ 2400 baud) ReTERMinator will replace line termination characters in any text file (whether they are CR, LF, or CRLF) with either CR (carriage return - Apple standard) or LF (linefeed - Unix standard). What is unique about this utility is that it will convert whole directories at once (wild card characters are supported), files are converted in place (directory order of files is not changed) and date/time stamps are preserved. >>> SOURCE CODE <<< """"""""""""""""""""" File #4861 DOTZ.BXY (ALL) Uploaded on 9/26/95 by BRANDT About 29K (d/l time approx. 2 minutes @ 2400 baud) Here's an archive with source for the I.UM.DEFAULTS init, containing more than a dozen dot commands for UltraMacros. The files are in Merlin format, readable by AppleWorks 5. You'll need a knowledge of AW and 65C02 assembly language to do anything with this info. It's an "as is" contribution to the AW5 knowledge base. All rights are retained by JEM Software, but you may use the info to create your own commands. You'll have to hack your way through the files. Docs are not provided. Have fun! >>> GNO UTILTIES <<< """""""""""""""""""""" File #4858 AWK.BXY (GS) Uploaded on 9/15/95 by S.REEVES2 About 101K (d/l time approx. 7 minutes @ 2400 baud) This is a port of awk, the text pattern scanning and processing language, for GNO. This archive contains the executable, man page and readme files (not the source code). Ported by Jawaid Bazyar, bazyar@netcom.com. Requires an Apple IIgs and GNO/ME 2.0 or higher. File #4856 LPR3.2.BXY (GS) Uploaded on 9/14/95 by S.REEVES2 About 41K (d/l time approx. 3 minutes @ 2400 baud) This is lpr version 3.2, part of GNO/ME's print spooler package, by Jason Perez (jasonp@amcu-tx.sps.mot.com). Supports the Apple ImageWriter II and the HP Deskjet 500. Requires an Apple IIgs, GNO 2.0 or higher, and the lpd line printer daemon (which is here in this library in a nearby archive). ORCA/C source code and a man page are included. File #4855 LPDLPC.BXY (GS) Uploaded on 9/14/95 by S.REEVES2 About 60K (d/l time approx. 4 minutes @ 2400 baud) Here is lpd version 2.1 and lpc version 1.0, part of GNO/ME's print spooler package, by Phillip Vandry (vandry@cam.org). lpd is the line printer daemon used by lpr (which is here in this library in a nearby archive). lpc is a utility to control lpd's print queue. Requires an Apple IIgs and GNO 2.0 or higher. ORCA/C source code and man pages are included. //////////////////////////////////// GEnie_QWIK_QUOTE /////// / / / Heheh... And where in the IIgs Technotes does it / / say, "If you are having a problem, simply post it / / in A2Pro, and you will instantly realize what you / / are doing wrong"? :) I spotted the problem about / / ten minutes after I posted it, and went back to / / delete the message so as to spare myself / / embarrasment... :) / / / /////////////////////////////////////////////// B.VICTOR1 //// [EOA] [RTC]////////////////////////// RTC WATCH / ///////////////////////////// Bits and Pieces from A2Pro Real Time Conferences """""""""""""""""""""""""""""""""""""""""""""""" By Russ Nielson [R.NIELSON1] o A2Pro WEEKLY RTC SCHEDULE o 16-BIT PROGRAMMING vs. 8-BIT PROGRAMMING >>> A2Pro WEEKLY RTC SCHEDULE <<< """"""""""""""""""""""""""""""""" _______ __________ _________ /_______| /_________/ /________/ SEVEN days a week!! /__/__/__/ /__/ /__/ /________/ EAL /__/ IME /__/ ONFERENCES in A2Pro!! /__/ /__| /__/ /__/_____ /__/ /__/ /__/ |________/ WEEKLY SCHEDULE Stop in and say "Hi!" at one of these conferences. We've been giving away quite a few GEnie usage credits (free time) at these conferences, and you may just win the next one! :) Day Time Event Host --- --------------- ----------------------------------- ----------- Sun 8:30pm-11:00pm Weekly Programmers' RTC Sloanie Mon 9:30pm-11:00pm GS/OS and Toolbox Calls Dave Miller Tue 9:30pm-11:00pm 8-bit Programming Russ Nielson Wed 9:30pm-11:00pm HangTime's HyperBar & Grill HangTime Thu 9:30pm-??:?? Informal - Q&A, chat, whatever A2Pro Staff Fri 9:30pm-11:00pm Getting Started with Programming Tim Buchheim Sat 8:30pm-10:00pm Assembly Language Programming Brian Wells NOTE: All times are in Eastern Time. ~~~~ >>> 16-BIT PROGRAMMING vs. 8-BIT PROGRAMMING <<< """""""""""""""""""""""""""""""""""""""""""""""""" I have a GS programming technique question. Perhaps Richard can give some suggestions. I'm wandering what methods should be used to write modular code where new modules can be "dropped in" without affecting the architecture. In what environment Erick? Desktop environment where modules could be added later to implement new featuers I still need to gather my thoughts on this but I need to start doing some serious reading and studying of example code I guess it depends on what features. The ways extras and drivers usually work is your program simple walks a folder, loading every load module that matches its load criteria (filtype/auxtype etc.), and just jumps to it. The module then responds with whatever it needs to work. For example, when it should be called, and with what data. Is that the sort of stuff you're talking about? maybe, I guess I should first determine how things =could= be split out and then ask what GS mechanisms would best support it:) This would not be your typical GS application. I need to figure out if this would be a real application or a sample. For example, Finder Extras. Finder simply send out system wide IPC calls to tell everyone what it is doing or about to do. It is then up to individual modules (extras) to decide if they want to respond, and if so what they'll do. from 16-bit mode, how does one access the annunciator lines? is it 00/C058 or E0/C058 ? The actual address are in bank $E0, but they're generally shadowed into bank $00 as well in a normal desktop environment. Use $E0/C058 just to be sure. how should one reference memory for the softswitches (in 16-bit mode)? You don't. You switch to 8-bit. set emulation for 65C02 and then do 6502/65C02 instructions? No, stay in native mode, but switch to the 8 bit accumulator using SEP $20. Access your switch, and then restore 16 bit using REP $20. so in that case, I can stay in 16-bit mode and just reference $E0/C058 ? I'm twisting things around :) A lot of people get confused when they use the 816 for the first time, about emulation mode and register widths. A desktop application shouldn't really ever switch to emulation mode. so stay in native mode, but set the register widths to 8-bits? Yep. The native mode 816 can switch back and forth between 16 bit and 8 bit registers, it's a function of the chip. When you switch to emulation mode, it just happens to FORCE register widths to 8 bit. once this is done, I still reference $E0/C058, right? Right. So: SEP $20 ; switch to 8 bit accum LDA >$E0C058 ; access it REP $20 ; switch back to 16 bit accum I haven't done any annunciator stuff since before the GS, so I have no idea what you'd do between the SEP and REP. :) I'm switching to 8-bit registers, because the 65816 would attempt to read in 16-bits beginning at $E0/C058, right? Right. It would read C058 and C059. Note that SEP $20 only sets the "m" bit, so while the accumulator goes to 8 bit, the index regs stay at 16 bit. how do the index reg get switched to 8-bits? is this only via emulation mode? Nope. By setting the "x" bit. Do you have an 816 reference handy? To do this, do SEP $10. I have a lightly used copy on the bookshelf. Need to start getting my money's worth :) I have plenty of examples on how to write properly behaving $FF (.SYSTEM) files/programs. What rules do I have to follow to write .S16 files in assembler? Gee... Do you have the GS/OS reference? yeah, I have GS/OS Ref. Is this the only guide I should use? I've been thumbing thru GS/OS ref I don't see any specific rules about .sys16 files like there was for .SYSTEM ($FF) files. the 8-bit environment in P8 was probably too primitive so you had to do more. I guess the loader is smarter to help make my library searches more productive, do you know if any particular person uploaded any good samples of .SYS16 apps that were text-based? Not that I know of. You want one? I'm looking for assembler of course Of course. :) sure, just something that shows the basics (tools needed, etc.) For text you don't really need to start enything. I was thinking of using the GS/OS console driver for screen I/O The console driver is a part of GS/OS. You just open it using _Open. that's a macro? Sorry, I don't know. The GS/OS OPEN call. $2010. I don't like using macros for OS calls. Don't ask me why, I just don't. :) I just thought with the name "_Open" that it was a special macro :) I think Merlin has an _Open. I just said it like that hoping you'd know what I was talking about. :) JSL $E100A8 DA $2010 ADRL OPENPARMS BCS ERR yep, looks like P8 MLI stuff Exactly. I think that's partially why I don't use macros for it, because I never did with P8 either. did you have an app in mind as an example program? Oh I've got a dozen text based utilities that do silly little things for me. I'll just grab one of those if you like. Nothing flashy, just runs and does something and then quits. sounds great [EOA] [LOG]/////////////////////////////// LOG OFF // ////////////////////////////////// GEnieLamp Information """"""""""""""""""""" o COMMENTS: Contacting GEnieLamp o GEnieLamp STAFF: Who Are We? GEnieLamp Information GEnieLamp is published on the 1st of every month """"""""""""""""""""" on GEnie page 515. You can also find GEnieLamp on the main menus in the following computing RoundTables. RoundTable Keyword GEnie Page RoundTable Keyword GEnie Page """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" DigiPub DIGIPUB 1395 Atari ST ST 475 Macintosh MAC 605 IBM PC IBMPC 615 Apple II A2 645 Apple II Dev. A2PRO 530 Macintosh Dev. MACPRO 480 Geoworks GEOWORKS 1050 BBS BBS 610 CE Software CESOFTWARE 1005 Mini/Mainframe MAINFRAME 1145 Programming PROGRAMMING 1445 Data Comm. DATACOMM 1450 IBM PC Prog IBMPCPRO 617 PowerPC PPC 1435 PowerPCProg PPCPRO 1440 GEnieLamp is also distributed on CrossNet and many public and commercial BBS systems worldwide. o To reach GEnieLamp on Internet send mail to genielamp@genie.com o Back issues of GEnieLamp are available in the DigiPub RoundTable Library #2 on page 1395 (M1395;3). Internet users should use the GEnie gopher (gopher.genie.com) which has most back issues (but might be missing a few of them). o GEnieLamp pays for articles submitted and published with online GEnie credit time. Upload submissions in ASCII format to library #31 in the DigiPub RoundTable on page 1395 (M1395;3) or Email it to GENIELAMP. On Internet send it to: genielamp@genie.com o We welcome and respond to all E-Mail. To leave comments, suggestions or just to say hi, you can contact us in the DigiPub RoundTable (M1395) or send GE Mail to John Peters at [GENIELAMP] on page 200. o If you would like to meet the GEnieLamp staff "live" we meet every Wednesday night in the Digi*Pub Real-Time Conference at 9:00 EDT (M1395;2). o The Digital Publishing RoundTable is for people who are interested in pursuing publication of their work electronically on GEnie or via disk-based media. For those looking for online publications, the DigiPub Software Libraries offer online magazines, newsletters, short-stories, poetry and other various text oriented articles for downloading to your computer. Also available are writers' tools and 'Hyper-utilties' for text presentation on most computer systems. In the DigiPub Bulletin Board you can converse with people in the digital publishing industry, meet editors from some of the top electronic publications and get hints and tips on how to go about publishing your own digital book. The DigiPub RoundTable is the official online service for the Digital Publishing Association. To get there type DIGIPUB or M1395 at any GEnie prompt. >>> GEnieLamp STAFF <<< """"""""""""""""""""""" GEnieLamp o John Peters [GENIELAMP] Publisher """"""""" o Mike White [MWHITE] Managing Editor APPLE II o Doug Cuff [EDITOR.A2] A2 EDITOR """""""" o Gina E. Saikin [A2.GENA] A2 Staff Writer o Charlie Hartley [A2.CHARLIE] A2 Staff Writer A2Pro o Tim Buchheim [A2PRO.GELAMP] A2Pro EDITOR """"" ATARI o Sheldon H. Winick [GELAMP.ST] ATARI EDITOR """"" o Bruce Smith [B.SMITH123] EDITOR/TX2 o Mel Motogawa [M.MOTOGAWA] ST Staff Writer o Richard Brown [R.BROWN30] ST Staff Writer o Al Fasoldt [A.FASOLDT] ST Staff Writer o Timothy V. Steed [T.STEED1] ST Staff Writer IBM o Sharon La Gue [SHARON.LAMP] IBM EDITOR """ o Tika Carr [LAMP.MM] MULTIMEDIA EDITOR o David Leithauser [D.LEITHASUER] HyperRead Editor o Bob Connors [DR.BOB] IBM Staff Writer o Susan M. English [S.ENGLISH1] Multimedia Graphics Artist MACINTOSH o Richard Vega [GELAMP.MAC] MACINTOSH EDITOR """"""""" o Tom Trinko [T.TRINKO] Mac Staff Writer o Bret Fledderjohn [FLEDDERJOHN] Mac Staff Writer o Ricky J. Vega [GELAMP.MAC] Mac Staff Writer POWER PC o Ben Soulon [BEN.GELAMP] POWER PC EDITOR """""""" WINDOWS o Bruce Maples [GELAMP.WIN] WINDOWS EDITOR """"""" o Marlene Gaberel [M.GABEREL1] Windows Staff Writer ETC. o Jim Lubin [J.LUBIN] Add Aladdin Scripts """" o Scott Garrigus [S.GARRIGUS] Search-ME! o Mike White [MWHITE] (oo) / DigiPub SysOp o John Peters [GENIELAMP] DigiPub SysOp o Al Fasoldt [A.FASOLDT] Contributing Columnist o Phil Shapiro [P.SHAPIRO1] Contributing Columnist o Sandy Wolf [S.WOLF4] Contributing Columnist o Lloyd E. Pulley [LEPULLEY] Contributing Columnist \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////// Opinions expressed herein are those of the individual authors, and do not necessarily represent opinions of GEnie Information Services, GEnieLamp Online Magazines, or T/TalkNet Online Publishing. Bulletin board messages are reprinted verbatim, and are included in this publi- cation with permission from GEnie Information Services and the source RoundTable. GEnie Information Services, GEnieLamp Online Magazines, and T/TalkNet Publishing do not guarantee the accuracy or suitability of any information included herein. We reserve the right to edit all letters and copy. Material published in this edition may be reprinted under the fol- lowing terms only. Reprint permission granted, unless otherwise noted, to registered computer user groups and not for profit publications. All articles must remain unedited and include the issue number and author at the top of each article reprinted. Please include the fol- lowing at the end of all reprints: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////////////////// The preceeding article is reprinted courtesy of GEnieLamp Online Magazine. (c) Copyright 1995 T/TalkNET Publishing and GEnie Infor- mation Services. Join GEnie now and receive $50.00 worth of online credit. To join GEnie, set your modem to 9600 baud (or less) and half duplex (local echo). Have the modem dial 1-800-638-8369. At the U#= prompt, type: JOINGENIE and hit the RETURN key. When you get the prompt asking for the signup code, type DSD524 and hit RETURN. GEnie will then prompt you for your signup information. For more information call (voice) 1-800-638-9636. ////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ [EOF]