TweetFollow Us on Twitter

ZBasic 5.0
Volume Number:5
Issue Number:2
Column Tag:Basic School

Zedcor Compiler 5.0

By Dave Kelly, Editorial Board

Note: Source code files accompanying article are located on MacTech CD-ROM or source code disks.

It seems that a month doesn’t go by that we don’t see an update to BASIC. This month we will talk about what’s new with ZBasic Compiler version 5.0. After a couple of years with ZBasic in our midst, Zedcor now has a solid product and it‘s still the fastest Basic available for the Macintosh.

New Price

The worst news is that Zedcor has raised the price to $199.95. The interesting thing about the increase in price is that both Microsoft and True Basic, Inc. have adjusted their prices to be competitive with Zedcor’s ZBasic. What do you get for the price? You get the ZBasic compiler with built in editor (which now works without crashing), a new Macintosh only manual, ZConvert.BAS program for converting MSBASIC to ZBasic, “The Program Generator” used for creating program shells, ZMover Toolbox editor which is used to add or delete toolbox routines or USR routines, and dozens of usable examples and utility routines. The Program Generator program is a new rewritten product, not the old program generator which has been sold separately by Zedcor.

The Compiler

The ZBasic Compiler version 5.0 now appears to be a very solid product. It’s refreshing to be debugging my own programming errors instead of those of ZBasic. Of course, it is not possible to check every single command and toolbox call to report to you if a bomb occurred, but with those that I have tried I have had 100% success!

Zedcor’s built in editor now works, although it is not as fancy as Microsoft’s “pretty-printing” editor. The important thing is to be able to edit a program without going through the load-edit-save-compile-debug...etc. cycle. For search and replace you will have to rely on other text editors; ZBasic only has a Find command.

The Hypertext Help system is excellent if you want to look up something while using ZBasic. Clicking on keywords moves you through the Help system to find just what you are looking for. It’s like having the manual on line all the time.

The configuration options have changed only slightly from previous versions. You may now set the bundle bit of your application as it is compiled. In “Expert Programmer Mode” you can turn off the “Are you sure?” dialog boxes (Are you sure you want to turn this off?). One missing feature is the ability to automatically include a resource file in the compiled application or use the resource file when running under the ZBasic environment. Instead, Zedcor includes a copy of ResEdit (not the latest version) which you can use to move your resources to your new application.

NOTE: be sure to save any tokenized ZBasic files from previous versions as text files before throwing out the old version when you upgrade. The tokenization is different in 5.0, I’ll explain why in a few more paragraphs.

Improved Toolbox Support

The toolbox support in ZBasic is better than any Basic has ever provided before. Inside Macintosh will still be needed at your side to make sense of things. The new routines presented in Inside Macintosh vol. V are now supported. The best part of this is the examples which Bob Andrus submitted to Zedcor to demonstrate the use of Color Palette Animation, and Hierarchical and Pop up menus. Thanks Bob!

The manual which includes the toolbox calls in Appendix D, is organized much the same way as in the last version with families of toolbox commands and functions grouped together. The new toolbox commands provided in volume V of IM are grouped together on three pages in a category named ‘Color Quickdraw for Mac II and Beyond’. This list could have been sorted by functional groups to be easier to use. Also, this is the only group that does not include a brief description of what each routine does. Since you need Inside Macintosh anyway, the description is not that critical.

ZMover Toolbox Editor

ZMover is a toolbox statement editor written by Chris Stasny which will let you move statements in and out of ZBasic. The statements are manipulated in much the same way as Font/DA Mover manipulates DAs and Fonts. Any modification of ZBasic will prevent tokenized files from being properly loaded. I recommend that you always save your source code files as text, NEVER as tokenized, just in case the next version of ZBasic won’t have the same tokenization. The next version probably won’t be the same, especially if new toolbox commands are added.

The best part of ZMover is the ability to create new toolbox functions and commands and add them to your compiler. The manual gives full documentation on the code resource which stores the toolbox statements. (Andrew Gariepy promised to release this information over a year ago). The manual implies that the editor could be used to change the toolbox statements (for example change “FRAMERECT” to “MTBOX”.) I don’t recommend that anyone ever change the names of statements or functions which are documented in Inside Macintosh.

New Manual

The new ZBasic manual is exclusively for the Macintosh (no more MSDOS!!). The reference section of the manual now includes all the Mac commands; you don’t have to go to the appendix for anything except real toolbox statements.

The version 5.0 manual is organized in much the same way as the previous version with the addition of new toolbox calls and documentation for the Toolbox statement mover and ZConvert Utility. There is also documentation for Ztree, for fast operation of large data files in ZBasic. Ztree is a complete tree indexing subroutine which can be used to index up to 65,535 records (or it can be modified using long integers to index up to 2,147,483,647 records). This is an excellent utility which some ZBasic users have been asking for.

Toolbox documentation is good when used with Inside Macintosh. However, the documentation for Appletalk commands needs more examples or explanation. The structure of the AppleTalk commands deviates from Inside Macintosh. Since there are two versions of AppleTalk released (the preferred and the original AppleTalk) more clarification is needed.

The Program Generator

This program written by Chris Stasny is included on the ZBasic master disk. It will let you create a simple shell, or skeleton, of your program in just a few minutes. It can take a lot of tedious work to line up windows, buttons, edit fields and other controls in order to make a window ‘look good.’ The program generator will let you use draw type tools to place objects on your window. In addition, you may add up to 48 subroutines to your program. A few subroutines are included such as screen size, alerts, frame button, and reading the clipboard. You may add your own favorites as needed. This is a nice touch, but you could always append your own routines to the end via traditional cut/paste methods with about the same effort.

The documentation explains the generator’s use and limitations. A program like this is not meant to do all the work for you, only simplify the work so you can spend your time doing programming instead of illustrating your windows. The generator could be a big help to you depending on what kind of program you are writing. Any program that will need to have windows formatted can be off to a good start with the generator.

There are a few limitations which can be easily overcome with some programming, but at least it’s a start. The four basic types of Edit Fields are supported, but you will have to add the code to retrieve the contents of the fields. Buttons are fully supported in the event loop. A menu editor is provided in the generator which will let you set up simple non-heirarchical menus. Font, Style, and Size menus will be automatically created by simply typing in the menu title. Using and setting up menus is usually not too difficult anyway, so there isn’t too much savings here. Window types are selected from a dialog which displays the window types available. Only one window can be edited at a time. In order to do more windows, you must save the program source code (i.e. generate the new program) and open the source code for append (an option in the File menu). This is somewhat tedious, but still better than illustrating windows by brute force. You will need to plan out what you want the window to be like since the generator doesn’t let you resize anything. If you make a mistake, you have to delete the object and start over. Be sure to give your text enough width or it will wrap to the next line when you don’t want it to. It would be nice to have the text edit fields and buttons as part of the palette since they are just objects like everything else.

There are mixed thoughts about the usefulness of a program generator. For quick and dirty programs it is ideal to have the event loop already in place and an easy way to create windows, etc. It would be ideal in some cases to have the generator automatically create resource files for menus and windows created. You may just want to use ResEdit or Prototyper™ to create the resource files. I highly recommend Prototyper™ especially if you do any Pascal or C programming too. You will have to decide how useful the generator is for your own uses. I ask, is it worth the extra price of ZBasic? Probably not. The dozens of example programs included with ZBasic are worth much more than the program generator.

Z Best Basic?

At the moment, there are three major Basic products on the market which each have their own niche. True Basic has the most structured, strongest scientific language. QuickBASIC comes from the largest company which has supported MSBasic for many years and a nice programming environment. ZBasic is the fastest compiler and generates the smallest application code. It includes the most examples and utilities with the compiler. The price is a killer, but Zedcor has shown that they intend to continue supporting ZBasic for years to come. I’ll have to say that each time a new version of Basic is released, the newest released has been the best product at the time for various reasons. That being the case, ZBasic is best until one of the competition comes out with their next new version.

The following program is a variation of one printed in MacTutor vol. 4 No. 4 (April, 1988) in which you can see by comparison that the addition of just a few toolbox calls to ZBasic’s set of toolbox calls can simplify the programming effort considerably:

‘Color Picking with ZBasic 5.0
‘©MacTutor 1989
‘By Dave Kelly

WINDOW OFF
COORDINATE WINDOW
DIM Colorbox%(3),inColor%(3),outColor%(3),Point%(2),AlertText$(4)
DIM RGB1%(3),PaletteRect%(3)
red&=65535
green&=0
blue&=0

DEF MOUSE=-1
false%=0:true%=NOT(false)

GOSUB “GetColorMode”
IF ColorMode%>256 THEN ColorMode%=256 
LONG IF ColorMode%<16
AlertText$(1)=””
AlertText$(2)=”This Demo must be run on a”
AlertText$(3)=” Mac ][ in 16 or 256 colors”
AlertText$(4)=””
CALL PARAMTEXT(AlertText$(1), AlertText$(2), AlertText$(3), AlertText$(4))
AlertAns%=FN NOTEALERT(1,0)
GOTO “Quit”
END IF

MENU 1,0,1,”File”
MENU 1,1,1,”Select Color”
MENU 1,2,1,”Quit”
EDIT MENU 2

‘Find out screen size.
CALL GETWMGRPORT(WMgrPort&)
PortTop=PEEK WORD(WMgrPort&+8)
PortLeft=PEEK WORD(WMgrPort&+10)
PortBottom=PEEK WORD(WMgrPort&+12)
PortRight=PEEK WORD(WMgrPort&+14)

WINDOW 1,”Main Window”,(10,44)-(PortRight-4,PortBottom-4),5
GET WINDOW #1, WindowPtr&
TEXT ,,,0
BUTTON #6,1,”Quit”,(20,WINDOW(3)-50)-(85,WINDOW(3)-30),1
BUTTON #7,1,”Pick Color”,(120,WINDOW(3)-50)-(195,WINDOW(3)-30),1
CALL SETRECT(Colorbox%(0), 10,10,WINDOW(2)-10,
 WINDOW(3)-215)
PICTURE ON
LONG COLOR blue&,green&,red&
CALL PAINTRECT(Colorbox%(0))
COLOR=7
CALL FRAMERECT(Colorbox%(0))
CALL MOVETO(20,WINDOW(3)-100)
PRINT “Red:”;red&;” Green:”;green&;” Blue:”;blue&;SPACE$(10)
PICTURE OFF,Pic1&
PICTURE, Pic1&
WINDOW PICTURE #1,Pic1&

ON DIALOG GOSUB “Event”
ON MENU GOSUB “MenuEvent”
DIALOG ON:MENU ON
“Loop”
GOTO “Loop”
DIALOG STOP:MENU STOP

“MenuEvent”
Menunumber=MENU(0)
Menuitem=MENU(1)
MENU
IF Menunumber<>1 THEN RETURN
SELECT Menuitem
 CASE 1
 GOSUB “ColorPick”
 CASE 2
 GOSUB “Quit”
END SELECT
RETURN

“Quit”
WINDOW PICTURE #1,0
KILL PICTURE Pic1&
END

“ColorPick”:’A Color Selection routine
inColor%(0)=red&
inColor%(1)=green&
inColor%(2)=blue&
Result=FN GETCOLOR(Point%(0),”Choose the best
 color!”,inColor%(0),outColor%(0))
LONG IF Result<>0
 red&=outColor%(0)
 green&=outColor%(1)
 blue&=outColor%(2)
 IF red&<0 THEN red&=65536+red&
 IF green&<0 THEN green&=65536+green&
 IF blue&<0 THEN blue&=65536+blue&
 PICTURE ON
 LONG COLOR blue&,green&,red&
 CALL SETRECT(Colorbox%(0), 10,10,WINDOW(2)-10,
 WINDOW(3)-215)
 CALL PAINTRECT(Colorbox%(0))
 COLOR=7
 CALL FRAMERECT(Colorbox%(0))
 CALL MOVETO(20,WINDOW(3)-100)
 PRINT “Red:”;red&;” Green:”;green&;” Blue:”;blue&;SPACE$(10)
 PICTURE OFF,Pic1&
 PICTURE, Pic1&
 WINDOW PICTURE #1,Pic1&
END IF
RETURN

“Event”
 D=DIALOG(0)
SELECT D
 CASE 1
 GOSUB “ButtonEvent”
 CASE 4
 GOSUB “Quit”:’if close box selected
END SELECT
RETURN

“ButtonEvent”
Buttonpressed=DIALOG(1)
IF Buttonpressed=6 THEN “Quit”
IF Buttonpressed=7 THEN “ColorPick”
RETURN

REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
REM
“GetColorMode” ‘With thanks to Zedcor and Bob Andrus
REM
REM  SUBROUTINE TO GET THE B&W/COLOR MODE
REM
REM  ROM85=&H028E
REM
REM  RomTypeW& = -1    FOR 128K OR 512K
REM  RomTypeW& = 32767 FOR PLUS OR SE
REM  RomTypeW& = 16383 FOR ][
REM
 ROM85&=&H028E
 RomTypeW&=PEEK WORD(ROM85&)
REM
REM  TheGDevice=&H0CC8
REM
REM  gdMode& = 128 FOR   2 B&W OR COLORS
REM  gdMode& = 129 FOR   4 B&W OR COLORS
REM  gdMode& = 130 FOR  16 B&W OR COLORS
REM  gdMode& = 131 FOR 256 B&W OR COLORS
REM
 TheGDevice&=&H0CC8
 GDHandle&=PEEK LONG(TheGDevice&)
 GDPtr&=PEEK LONG(GDHandle&)
 gdMode&=PEEK LONG(GDPtr&+42)
REM
REM  GET THE B&W/COLOR MODE
REM
 IF RomTypeW&<>16383 THEN ColorMode%=2
 IF RomTypeW&<>16383 THEN RETURN
 IF gdMode&=128 THEN ColorMode%=2
 IF gdMode&=129 THEN ColorMode%=4
 IF gdMode&=130 THEN ColorMode%=16
 IF gdMode&=131 THEN ColorMode%=256
 RETURN

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

OmniGraffle 6.3 - Create diagrams, flow...
OmniGraffle helps you draw beautiful diagrams, family trees, flow charts, org charts, layouts, and (mathematically speaking) any other directed or non-directed graphs. We've had people use Graffle to... Read more
PDFKey Pro 4.3.2 - Edit and print passwo...
PDFKey Pro can unlock PDF documents protected for printing and copying when you've forgotten your password. It can now also protect your PDF files with a password to prevent unauthorized access and/... Read more
Ableton Live 9.2.2 - Record music using...
Ableton Live lets you create and record music on your Mac. Use digital instruments, pre-recorded sounds, and sampled loops to arrange, produce, and perform your music like never before. Ableton Live... Read more
Macs Fan Control 1.3.1.0 - Monitor and c...
Macs Fan Control allows you to monitor and control almost any aspect of your computer's fans, with support for controlling fan speed, temperature sensors pane, menu-bar icon, and autostart with... Read more
NetShade 6.3.1 - Browse privately using...
NetShade is an anonymous proxy and VPN app+service for Mac. Unblock your Internet through NetShade's high-speed proxy and VPN servers spanning seven countries. NetShade masks your IP address as you... Read more
Dragon Dictate 4.0.7 - Premium voice-rec...
With Dragon Dictate speech recognition software, you can use your voice to create and edit text or interact with your favorite Mac applications. Far more than just speech-to-text, Dragon Dictate lets... Read more
Persecond 1.0.2 - Timelapse video made e...
Persecond is the easy, fun way to create a beautiful timelapse video. Import an image sequence from any camera, trim the length of your video, adjust the speed and playback direction, and you’re done... Read more
GIMP 2.8.14p2 - Powerful, free image edi...
GIMP is a multi-platform photo manipulation tool. GIMP is an acronym for GNU Image Manipulation Program. The GIMP is suitable for a variety of image manipulation tasks, including photo retouching,... Read more
Sandvox 2.10.2 - Easily build eye-catchi...
Sandvox is for Mac users who want to create a professional looking website quickly and easily. With Sandvox, you don't need to be a Web genius to build a stylish, feature-rich, standards-compliant... Read more
LibreOffice 5.0.1.2 - Free, open-source...
LibreOffice is an office suite (word processor, spreadsheet, presentations, drawing tool) compatible with other major office suites. The Document Foundation is coordinating development and... Read more

ReBoard: Revolutionary Keyboard (Utilit...
ReBoard: Revolutionary Keyboard 1.0 Device: iOS Universal Category: Utilities Price: $1.99, Version: 1.0 (iTunes) Description: Do everything within the keyboard without switching apps! If you are in WhatsApp, how do you schedule a... | Read more »
Tiny Empire (Games)
Tiny Empire 1.1.3 Device: iOS Universal Category: Games Price: $2.99, Version: 1.1.3 (iTunes) Description: Launch cannonballs and blow tiny orcs into thousands of pieces in this intuitive fantasy-themed puzzle shooter! Embark on an... | Read more »
Astropad Mini (Productivity)
Astropad Mini 1.0 Device: iOS iPhone Category: Productivity Price: $4.99, Version: 1.0 (iTunes) Description: *** 50% off introductory price! ​*** Get the high-end experience of a Wacom tablet at a fraction of the price with Astropad... | Read more »
Emo Chorus (Music)
Emo Chorus 1.0.0 Device: iOS Universal Category: Music Price: $1.99, Version: 1.0.0 (iTunes) Description: Realistic Choir simulator ranging from simple Chorus emulation to full ensemble Choir with 128 members. ### introductory offer... | Read more »
Forest Spirit (Games)
Forest Spirit 1.0.5 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0.5 (iTunes) Description: | Read more »
Ski Safari 2 (Games)
Ski Safari 2 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: The world's most fantastical, fun, family-friendly skiing game is back and better than ever! Play as Sven's sister Evana, share... | Read more »
Lara Croft GO (Games)
Lara Croft GO 1.0.47768 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.47768 (iTunes) Description: Lara Croft GO is a turn based puzzle-adventure set in a long-forgotten world. Explore the ruins of an ancient... | Read more »
Whispering Willows (Games)
Whispering Willows 1.23 Device: iOS Universal Category: Games Price: $4.99, Version: 1.23 (iTunes) Description: **LAUNCH SALE 50% OFF** - Whispering Willows is on sale for 50% off ($4.99) until September 9th. | Read more »
Calvino Noir (Games)
Calvino Noir 1.1 Device: iOS iPhone Category: Games Price: $3.99, Version: 1.1 (iTunes) Description: The film noir stealth game. Calvino Noir is the exploratory, sneaking adventure through the 1930s European criminal underworld.... | Read more »
Angel Sword (Games)
Angel Sword 1.0 Device: iOS Universal Category: Games Price: $6.99, Version: 1.0 (iTunes) Description: Prepare to adventure in the most epic full scale multiplayer 3D RPG for mobile! Experience amazing detailed graphics in full HD.... | Read more »

Price Scanner via MacPrices.net

Apple offering refurbished 2015 13-inch Retin...
The Apple Store is offering Apple Certified Refurbished 2015 13″ Retina MacBook Pros for up to $270 (15%) off the cost of new models. An Apple one-year warranty is included with each model, and... Read more
Apple refurbished 2015 MacBook Airs available...
The Apple Store has Apple Certified Refurbished 2015 11″ and 13″ MacBook Airs (the latest models), available for up to $180 off the cost of new models. An Apple one-year warranty is included with... Read more
21-inch iMacs on sale for up to $120 off MSRP
B&H Photo has 21″ iMacs on sale for up to $120 off MSRP including free shipping plus NY sales tax only: - 21″ 1.4GHz iMac: $999.99 $100 off - 21″ 2.7GHz iMac: $1199.99 $100 off - 21″ 2.9GHz iMac... Read more
5K iMacs on sale for up to $150 off MSRP, fre...
B&H Photo has the 27″ 3.3GHz 5K iMac on sale for $1899.99 including free shipping plus NY tax only. Their price is $100 off MSRP. They have the 27″ 3.5GHz 5K iMac on sale for $2149.99 $2199.99, $... Read more
1.4GHz Mac mini, refurbished, available for $...
The Apple Store has Apple Certified Refurbished 1.4GHz Mac minis available for $419. Apple’s one-year warranty is included, and shipping is free. Their price is $80 off MSRP, and it’s the lowest... Read more
iPad Air 2 on sale for up to $100 off MSRP
Best Buy has iPad Air 2s on sale for up to $100 off MSRP on their online store for a limited time. Choose free shipping or free local store pickup (if available). Sale prices available for online... Read more
MacBook Airs on sale for $100 off MSRP
Best Buy has MacBook Airs on sale for $100 off MSRP on their online store. Choose free shipping or free local store pickup (if available). Sale prices for online orders only, in-store prices may vary... Read more
Big Grips Lift Handle For iPad Air and iPad A...
KEM Ventures, Inc. which pioneered the extra-large, super-protective iPad case market with the introduction of Big Grips Frame and Stand in 2011, is launching Big Grips Lift featuring a new super-... Read more
Samsung Launches Galaxy Tab S2, Its Most Powe...
Samsung Electronics America, Inc. has announced the U.S. release of the Galaxy Tab S2, its thinnest, lightest, ultra-fast tablet. Blending form and function, elegant design and multitasking power,... Read more
Tablet Screen Sizes Expanding as iPad Pro App...
Larger screen sizes are gaining favor as the tablet transforms into a productivity device, with shipments growing 185 percent year-over-year in 2015. According to a new Strategy Analytics’ Tablet... Read more

Jobs Board

*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Desktop Analyst - KDS Staffing (Unit...
…field and consistent professional recruiting achievement. Job Description: Title: Apple Desktop AnalystPosition Type: Full-time PermanentLocation: White Plains, NYHot Read more
*Apple* Systems Engineer (Mclean, VA and NYC...
Title: Apple Systems Engineer (Mclean, VA and NYC) Location: United States-New York-New York-200 Park Ave (22005) Other Locations: United States-Virginia-Vienna-Towers Read more
*Apple* Systems Engineer (Mclean, VA and NYC...
…Assist in providing strategic direction and technical leadership within the Apple portfolio, including desktops, laptops, and printing environment. This person will Read more
*Apple* Subject Matter Expert - Experis (Uni...
We are seeking an Apple Subject Matter Expert to assist in developing the architecture, support and services for integration of Apple devices into the company's Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.