TweetFollow Us on Twitter

Knowing Date
Volume Number:1
Issue Number:2
Column Tag:BASIC SCHOOL

“Does Anybody Really Know What Date It Is?”

By Dave Kelly, Program by Michael Steiner

“Does Anybody Really Know What Date It Is?”

REAL stand alone (almost) applications can now be written in Basic. Microsoft Basic version 2.0 includes the required routines to make your Macintosh look just like those fancy assembly language application programs. This months feature includes a useful example of what Microsoft Basic 2.0 can do. After waiting months for the Mac development tools we need, we can now use them to keep track of all those months with a perpetual calendar.

The program written by Michael Steiner, will give you a quick overview of some of the features of Microsoft Basic 2.0. I found that I preferred editing the Basic listing with MacWrite and saving the file as text. Microsoft Basic will read MacWrite text files and MacWrite will read Microsoft Basic programs stored as text.

Anyone who has used the previous versions of Microsoft Basic will be glad to know that programs they have written for version 1.0 will work on version 2.0, however they won’t take advantage of the extended features without modification. The most noticeable feature is the ability to control all the pull down menus.

Type in the program and run it. The program opens a window to full screen size and then erases all the menus used by Basic. Then a second window opens up and displays instructions. The “OK” button was programmed with the one line BUTTON command. DIALOG(0) and DIALOG(1) return information about the status of the button or buttons. With a few simple lines you can design your own dialog windows and set up buttons to select various options.

After clicking the “OK” button, the program displays a set of options available using the various button styles available. If you don’t want to print a whole year you can deselect the “Entire year” option. The programmed menus let you select the beginning and ending months to print. You can program your own menus by using the MENU command. By issuing the appropriate parameters with the menu command you can enable or disable various menu option. MENU(0) and MENU(1) provide the means to poll the status of the menu selection. We will explore the MENU command in depth in future columns.

Notice that you can change the date by simply clicking and editing the date in the year box. All the Macintosh editing functions are easily invoked. In fact, the year box works just like the type and creator boxes in the Set File utility. Obviously Basic 2.0 can create applications that appear just like stand-alone programs. This language may be even more powerful than Apple’s Mac Pascal.

After selecting the options you want, click the “OK” button and the program prints each month to the screen one at a time. If you selected the “Show Julian” option, the Julian date will be printed along with the calendar. There is no option to print the calendar on the printer, however you can use the command-shift 4 option to print the window or modify the program yourself to print to the printer. Another feature you can try adding is to create another button for scrolling the calender back and forth. Be sure to share any ideas you come up with for Basic with our readers by writing me care of MacTech. Happy New Year!


‘**********************************
‘               Perpetual Calendar
‘Copyright 1984, Michael Steiner, All Commercial Rights Reserved 26 Oct 
84
‘Permission is granted to use, copy, and modify this program for your 
own personal use
‘Modified and comments by David Kelly 
‘**********************************

WINDOW 1,””,(0,12)-(512,342),3  ‘Open full screen window
sm=1:em=12  ‘Initial start and end months
oldsm=sm:oldem=em
DIM status (2,12)
FOR i = 5 TO 1 STEP -1   ‘Erase all the basic menus
  MENU i,0,0,””
NEXT i

instructions:
  WINDOW 2,””,(3,70)-(509,270),3    ‘Open 2nd window
  WIDTH 62
  PRINT
  PRINT”This program will generate a calendar for any year from 1753 
onward.”
  PRINT”You may choose whether you want to display Julian Dates as well 
as the days ofthe month.  You may select to print the whole year or you 
may choose starting   and ending months.”
  PRINT:PRINT”Click OK when you have finished reading these instructions.”
  BUTTON 1,1,”OK”,(210,150)- (250,170),1  ‘ Set up button #1
  WHILE  DIALOG(0) <>1 :WEND  ‘ Wait for button #1

setup:
  WINDOW 2,””,(50,100)-(450,200),2   ‘Change 2nd window and open it
  TEXTFACE (1)
  MOVETO 250,15:PRINT”Show Julian”:MOVETO 250,30:PRINT “Date?”
  BUTTON 1,1,”Yes”,(250,40)-(300,60),3        ‘Set up buttons
  BUTTON 2,2,”No”,(250,65)-(290,85),3
  BUTTON 3,2,”Print Entire year”, (50,60)-(200,80),2
  BUTTON 4,1,”OK”,(360,60)-(390,80),1
  MOVETO 50,40:PRINT”Year”
  TEXTFACE (0)
  EDIT FIELD 1,RIGHT$(DATE$,4), (90,30)-(130,45),2  ‘Set up Edit field 
with current year
  DATA January, February, March, April, May, June, July, August, September, 
October, November, December
  DIM month$(12)
  FOR i = 1 TO 12:READ month$(i):NEXT i  ‘Read the months
  BStatus=1:GOSUB EntireYear
  DialogActive = 1
  WHILE DialogActive
    EventType = DIALOG(0)   ‘See if a button is pressed
    IF EventType = 1 THEN GOSUB ButtonEvent
    MenuId = MENU(0)    ‘See which menu is selected
    IF MenuId THEN GOSUB ChooseMonth
  WEND
  Year = VAL(EDIT$(1)):IF Year < 1753 THEN Year = 1753  ‘Get year data
WINDOW CLOSE 2
 
calendar:
  MENU 1,0,0,””  ‘Clear menu 1
  MENU 2,0,0,””  ‘Clear meun 2
  BUTTON 1,1,”Continue”, (50,305)-(125,325),1   ‘Set up button 1
  BUTTON 2,1,”Quit”,(350,305)- (400,325),1 ‘Set up button 2
 TEXTSIZE(12):TEXTFACE(0): TEXTMODE(1)   ‘Set font attributes
  DATA 31,28,31,30,31,30,31,31,30, 31,30,31
  DIM dm(12):FOR mo=1 TO 12: READ dm(mo):NEXT mo ‘Read # of days/month
  DIM M$(12) :FOR MO=1 TO 12: M$(MO)=month$(MO) :NEXT MO
  DATA SUN,MON,TUE,WED,THU,FRI,SAT
  DIM DAY$(7):FOR DAY = 1 TO 7: READ DAY$(DAY):NEXT DAY   ‘Read days 
of week
  DM(2) =DM(2) -(YEAR/4 =INT(YEAR/4)) +(YEAR/100= INT(YEAR/100)) -(YEAR/400= 
INT(YEAR/400))   ‘Add a day for leap year
  DIM jd(12)
  FOR i= 1 TO 12: jd(i)=jd(i-1)+ dm(i-1):NEXT I
  Y= INT(((365.25*YEAR+jd(sm))/7- INT((365.25*YEAR+jd(sm))/7))*7- 1.2499999#)
  IF Y<0 THEN Y=Y+7
  CALL PENSIZE (3,3)
  FOR M=sm TO em
    dy=jd(m)
    CLS’  Draw the calendar
    FOR I = 1 TO 7:LINE (5,I*40+10)- (481,I*40+10):NEXT I
    FOR I = 0 TO 7:LINE (I*68+5,50)- (I*68+5,290):NEXT I
    TEXTSIZE (24): TEXTFACE (17)’  Set calendar font attributes
    CALL MOVETO (130,34): PRINT M$(M);”   “;YEAR;
    TEXTSIZE (12):TEXTFACE(1)
    FOR I= 0 TO 6: CALL MOVETO (I*68+10,49): PRINT DAY$(I+1):NEXT I
    FOR DM = 1 TO DM(M)
      TEXTFACE(9):TEXTSIZE(18)
      CALL MOVETO (Y*68,X+71):PRINT DM: IF JU THEN GOSUB JulianPrint
      Y=Y+1:IF Y>6 THEN Y=0:X = X+40
    NEXT dm
    WHILE DIALOG(0) <> 1 :WEND   ‘Wait for button press
      IF DIALOG(1)=2 THEN M=em
      X=0
  NEXT M
 
EndRoutine:              ‘Set up End menu
 WINDOW CLOSE 1
  MENU 1,0,1,”Options”
  MENU 1,1,1,”Re-run Program”
  MENU 1,2,1,”Exit to Finder”
  WHILE MENU(0) = 0:WEND   ‘Wait till selection is made
IF MENU(1)=1 THEN RUN : ELSE SYSTEM  ‘Return to Finder
 
ButtonEvent:
  ButtonId = DIALOG(1)
  IF ButtonId=4 THEN DialogActive=0
  ON ButtonId GOSUB Julian, NoJulian, EntireYear
RETURN

Julian:   ‘Set button for Julian year print
    BUTTON 1,2
    BUTTON 2,1
    JU=-1
RETURN
 
NoJulian:  ‘Set button for Julian no print 
    BUTTON 1,1
    BUTTON 2,2
    JU=0
RETURN
 
EntireYear:  ‘Set beginning month to Jan. & Ending month to Dec.
  IF BStatus = 1 THEN BStatus =2:sm=1:em=12:ELSE BStatus = 1
  FOR ms = 1 TO 2:FOR st= 0 TO 12: status(ms,st)=ABS((BStatus=1)): NEXT 
st,ms
  BUTTON 3,BStatus
  MENU 1,0,status(1,0),”Starting Month”
  FOR i= 1 TO 12
    MENU 1,i,status (1,i),month$(i)
  NEXT i
  MENU 1,sm,2,month$(sm)
 
Endmonth:
  MENU 2,0,status(2,0),”Ending Month”
   FOR i = 1 TO 12
      MENU 2,i,ABS(sm<(i+1)),month$(i)
   NEXT i
   IF em >= sm THEN MENU 2,em,2,month$(em)
RETURN
 
ChooseMonth:
  ItemId = MENU(1)
  IF MenuId=1 THEN oldsm=sm: sm=ItemId:MENU 1,0,1: MENU 1,sm,2,month$(sm): 
IF oldsm<>sm THEN MENU 1,oldsm,1,month$(oldsm)
  IF MenuId=1 THEN GOSUB EndMonth
  IF MenuId=2 THEN oldem=em: em=ItemId: MENU 2,0,1: MENU 2,em,2,month$(em):IF 
oldem<>em OR oldem> sm THEN MENU 2,oldem, ABS(oldem>=sm),month$(oldem)
  IF em<sm THEN em=sm: MENU 2,em, 2,month$(em)
RETURN
 
JulianPrint:    ‘Print Julian year
    dy=dy+1
    dy$=RIGHT$(STR$(year),1)+ RIGHT$(“00”+MID$(STR$(dy),2),3)
    dy=VAL(dy$)
    TEXTSIZE (12):TEXTFACE (0)
    CALL MOVETO (Y*68+10,X+85)
    PRINT dy$;
RETURN


 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Logic Pro X 10.1.1 - Music creation and...
Apple Logic Pro X is the most advanced version of Logic ever. Sophisticated new tools for professional songwriting, editing, and mixing are built around a modern interface that's designed to get... Read more
VLC Media Player 2.2.0 - Popular multime...
VLC Media Player is a highly portable multimedia player for various audio and video formats (MPEG-1, MPEG-2, MPEG-4, DivX, MP3, OGG, ...) as well as DVDs, VCDs, and various streaming protocols. It... Read more
Sound Studio 4.7.8 - Robust audio record...
Sound Studio lets you easily record and professionally edit audio on your Mac. Easily rip vinyls and digitize cassette tapes, or record lectures and voice memos. Prepare for live shows with live... Read more
LibreOffice 4.4.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
Freeway Pro 7.0.3 - Drag-and-drop Web de...
Freeway Pro lets you build websites with speed and precision... without writing a line of code! With its user-oriented drag-and-drop interface, Freeway Pro helps you piece together the website of... Read more
Cloud 3.3.0 - File sharing from your men...
Cloud is simple file sharing for the Mac. Drag a file from your Mac to the CloudApp icon in the menubar and we take care of the rest. A link to the file will automatically be copied to your clipboard... Read more
Cyberduck 4.6.5 - FTP and SFTP browser....
Cyberduck is a robust FTP/FTP-TLS/SFTP browser for the Mac whose lack of visual clutter and cleverly intuitive features make it easy to use. Support for external editors and system technologies such... Read more
Firefox 36.0 - Fast, safe Web browser. (...
Firefox for Mac offers a fast, safe Web browsing experience. Browse quickly, securely, and effortlessly. With its industry-leading features, Firefox is the choice of Web development professionals and... Read more
Thunderbird 31.5.0 - Email client from M...
As of July 2012, Thunderbird has transitioned to a new governance model, with new features being developed by the broader free software and open source community, and security fixes and improvements... Read more
VOX 2.4 - Music player that supports man...
VoxIt just sounds better! The beauty is in its simplicity, yet behind the minimal exterior lies a powerful music player with a ton of features & support for all audio formats you should ever need... Read more

Get The Whole Story – Lone Wolf Complete...
Get The Whole Story – Lone Wolf Complete is Now Available and On Sale Posted by Jessica Fisher on February 27th, 2015 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Who Wore it Best? The Counting Dead vs....
Like it or not, the “clicker” genre, popularized by cute distractions like Candy Box and Cookie Clicker, seems like it’s here to stay. So Who Wore it Best? takes a look at two recent examples: The Counting Dead and AdVenture Capitalist. | Read more »
Card Crawl, the Mini Deck Building Game,...
Card Crawl, the Mini Deck Building Game, is Coming Soon Posted by Jessica Fisher on February 27th, 2015 [ permalink ] Tinytouchtales and Mexer have announced their new game, | Read more »
Witness an all new puzzle mechanic in Bl...
Well, BlastBall MAX is not one of those games and is bucking trends such as timers, elements of randomness, and tacked-on mechanics in favor of pure puzzle gameplay. When you first boot up the game you’ll see a grid made up of squares that are each... | Read more »
This Princess Has a Dragon and She isn’t...
This Princess Has a Dragon and She isn’t Afraid to Useit. | Read more »
Mecha Showdown Review
Mecha Showdown Review By Lee Hamlet on February 27th, 2015 Our Rating: :: IN A SPINUniversal App - Designed for iPhone and iPad Mecha Showdown replaces traditional buttons with a slot machine mechanic in this robot fighting game,... | Read more »
Reliance Games and Dreamworks Unveil Rea...
Reliance Games and Dreamworks Unveil Real Steel Champions Posted by Ellis Spice on February 27th, 2015 [ permalink ] Reliance Games and Dreamworks have announced that a third game in | Read more »
Sum Idea Review
Sum Idea Review By Jennifer Allen on February 27th, 2015 Our Rating: :: TAXING NUMBERSUniversal App - Designed for iPhone and iPad Sum Idea is a fairly charming but taxing puzzle game.   | Read more »
A New Badland Update Brings Daydream Lev...
A New Badland Update Brings Daydream Levels to Co-Op Posted by Ellis Spice on February 27th, 2015 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Slashing Demons Review
Slashing Demons Review By Lee Hamlet on February 27th, 2015 Our Rating: :: IT'S A LONG WAY TO THE TOPUniversal App - Designed for iPhone and iPad Slashing Demons lacks the depth or scope to take it beyond the point of being just... | Read more »

Price Scanner via MacPrices.net

Apple CEO Tim Cook to Deliver 2015 George Was...
Apple CEO Tim Cook will deliver the George Washington University’s Commencement address to GWU grads on May 17, at which time he will also be awarded an honorary doctorate of public service from the... Read more
Apple restocks refurbished Mac minis for up t...
The Apple Store has restocked Apple Certified Refurbished 2014 Mac minis, with models available starting at $419. Apple’s one-year warranty is included with each mini, and shipping is free: - 1.4GHz... Read more
Save up to $50 on iPad Air 2s, NY tax only, f...
 B&H Photo has iPad Air 2s on sale for $50 off MSRP including free shipping plus NY sales tax only: - 16GB iPad Air 2 WiFi: $469.99 $30 off - 64GB iPad Air 2 WiFi: $549 $50 off - 128GB iPad Air 2... Read more
16GB iPad Air 2 on sale for $447, save $52
Walmart has the 16GB iPad Air 2 WiFi on sale for $446.99 on their online store for a limited time. Choose free shipping or free local store pickup (if available). Sale price for online orders only,... Read more
iMacs on sale for up to $205 off MSRP
B&H Photo has 21″ and 27″ iMacs on sale for up to $205 off MSRP including free shipping plus NY sales tax only: - 21″ 1.4GHz iMac: $1029 $70 off - 21″ 2.7GHz iMac: $1199 $100 off - 21″ 2.9GHz... Read more
Apple Takes 89 Percent Share of Global Smartp...
According to the latest research from Strategy Analytics, global smartphone operating profit reached US$21 billion in Q4 2014. The Android operating system captured a record-low 11 percent global... Read more
New Travel Health App “My Travel Health” iOS...
Rochester, Minnesota based Travel Health and Wellness LLC has announced that its new iOS app help safeguard the user’s health when traveling abroad — “My Travel Health” is now available on the Apple... Read more
Sale! MacBook Airs for up to $115 off MSRP
B&H Photo has MacBook Airs on sale for up to $100 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 11″ 128GB MacBook Air: $799 100 off MSRP - 11″ 256GB MacBook Air: $999 $100... Read more
15-inch 2.0GHz Retina MacBook Pro (refurbishe...
The Apple Store has Apple Certified Refurbished previous-generation 15″ 2.0GHz Retina MacBook Pros available for $1489 including free shipping plus Apple’s standard one-year warranty. Their price is... Read more
Wither The iPad mini? End Of The Road Imminen...
AppleDailyReport’s Dennis Sellers predicts that the iPad mini is going to be left to wither on the vine, as it were, and then just allowed to fade away — a casualty of the IPhone 6 Plus and other... Read more

Jobs Board

Sr. Technical Services Consultant, *Apple*...
**Job Summary** Apple Professional Services (APS) has an opening for a senior technical position that contributes to Apple 's efforts for strategic and transactional Read more
Event Director, *Apple* Retail Marketing -...
…This senior level position is responsible for leading and imagining the Apple Retail Team's global engagement strategy and team. Delivering an overarching brand Read more
*Apple* Pay - Site Reliability Engineer - Ap...
**Job Summary** Imagine what you could do here. At Apple , great ideas have a way of becoming great products, services, and customer experiences very quickly. Bring Read more
*Apple* Solutions Consultant - Retail Sales...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
*Apple* Solutions Consultant - Retail Sales...
**Job Summary** As an Apple Solutions Consultant (ASC) you are the link between our customers and our products. Your role is to drive the Apple business in a retail Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.