Monday, July 29, 2024

Script-Central Special Edition v9n3, Fall 2024

 Script-Central Special Edition v9n3, Fall 2024


The eighth issue of Script-Central Special Edition is now available for free download in the Apple II section of the Silverwand Software site at sites.google.com/view/silverwandsoftware. The 32 MB disk image includes several updates as well as several new HCGS stacks. For convenience the HCGS 1.1 and the 1.2 update are included on the disk image so the HyperCard IIGS application can be installed onto your own large storage device (note that while Script-Central stacks can be run from the disk image, the HCGS application must be installed onto your own storage).


The author has researched decades of materials related to HyperCard and HyperCard IIGS in order to complete this issue. One gem included is a HCGS conversion of a Find Command stack originally developed for Macintosh HyperCard for the AOL HyperCard Scripting Conference in 1995.



This issue also includes an important update to the MyPics graphics manager by Brendan Bellina, adding musical slideshow capability to any PicList. There are also updates to the Stack.Templates stack and the ReadyMade.Flds stacks, both of which are Apple stacks that were converted from Macintosh HyperCard by Brendan Bellina and released on previous issues of SC Special Edition.

All issues of Script-Central Special Edition can be downloaded for free from the Silverwand Software site.

Apple II Infinitum!

Saturday, June 1, 2024

Script-Central Special Edition v9n2, Summer 2024

Script-Central Special Edition v9n2, Summer 2024 was released June 1, 2024.  This 32 MB Disk Image for the Apple IIGS contains several new HyperCard IIGS stacks by author Brendan Bellina.

Script-Central SE v9n2 Floorplan

The issue includes all of the regular departments: Q+A, Tips & Trix, Scripter's Workshop and the Lounge.  The Lounge has been updated to include a musical slideshow inspired by the upcoming Olympic Games in Paris, France.

Updated versions of the HCGS.BugTracker stack and the HCGS.Xtras stack are included. HCGS.Xtras is the single source for all IIGS XCMDs and XFCNs.

Some of the feature stacks by Brendan Bellina include:

Light Board - a fun stack to create Lite Brite style artwork. Create pictures from templates or free-form and create a slideshow of your favorites.

Light Board - Apple template

Visisort.GS - an educational stack that demonstrates sort algorithms visually.

Visisort.GS

The Doctor Is In - an educational and interactive stack that provides historical information on one of the first applications of artificial intelligence - ELIZA - and provides a HyperTalk version of the BASIC program by Dr. Jeffrey Shrager. There is also a Macintosh HyperTalk version of this stack also by Brendan Bellina.

The Doctor Is In - Session Screen

Notable - a unique ideation stack inspired by the Medley NoteCards application (a precursor to HyperCard) that uses hypertext links to link notes to each other, documents, stacks, and applications. There is also a Macintosh HyperCard version of this stack also by Brendan Bellina.


Notable

All Script-Central Special Edition issues can be downloaded at no cost from https://sites.google.com/view/silverwandsoftware/apple-ii-forever

Wednesday, February 21, 2024

Script-Central Special Edition v9n1, Feb/March 2024

 Script-Central Special Edition v9n1 was released February 21, 2024.

The contents of the issue are:

Regular Departments

In this issue the Tips & Trix rabbits explain how to make best use of the very important idle handler and also explain how to use Poly-buttons in HCGS. A stack is included so that you can experiment with your own poly-buttons as well.

The Q+A classroom has answers to all the questions you never asked.

The Lounge has an updated Script-Central Database Complete stack. This is HangTime's stack updated from Issue #6 that now includes all information on all of the features, tips, tricks, sounds, scripts, XCMDs, etc. released in all 22 issues of Script-Central as well as all issues of Script-Central Special Edition. Use this to quickly find what issue of Script-Central or Script-Central Special Edition has the resource you are looking for.

Stop by the bathroom to read the latest news and rumors collected from various online sources.

The Scripter's Workshop includes the HyperSonic sound deck, useful functions in Scripter's Corner, and more. This issue includes an updated version of the HCGS.BugTracker stack and a new command called findFont which can be used to determine where a font is being used in a stack by either font name or ID.(One of this issue's feature stacks: HCGSBtnFldProbe can also be used to find a font by name.)


Features

This issue's feature stacks included some unique to HCGS and some converted from or inspired by Macintosh HyperCard stacks.

The Apple Guidelines stack is a Macintosh conversion by Brendan Bellina. The source stack was developed by Apple for internal use to provide guidance for using HyperCard for internal presentations.The converted stack has been enhanced to include HCGS related content.

The Missing Icons stack by Brendan Bellina provides a collection of standard Mac HyperCard icons that are not included in the HCGS application. Many of these icons can be found in other Apple HCGS stacks. HyperMover does its best to replace standard Mac icons with standard HCGS icons, but still fails on many. This icon stack allows searching by Mac icon ID and name which can be useful when converting Mac stacks to HCGS using HyperMover.

The SC Clip Art stack by Brendan Bellina combines all of the clip art that was released on Script-Central issues #1-22 into a single stack.

HC.Word.2023 is a multi-document word processor stack by Brendan Bellina based on the HC.Word stack.

Stormy Night is one of the HyperHack stacks released by Apple. This version has been slightly enhanced by Brendan Bellina.  The original version can be found in this issue's Extras folder along with all of the other HyperHack stacks that were released.

MyPics is an image management stack developed by Brendan Bellina that allows the display of image thumbnails, custom tagging, searching, and list generation so that regardless of where your AFP and SHR images are located or how poorly they are named you can easily categorize and find the images you are searching for.  This stack is processing intensive and works best on a highly accelerated IIGS or IIGS emulator.

The HCGS Button Field Probe stack is a tool developed by Brendan Bellina that can be used to identify buttons and fields in a stack by their properties. A Macintosh version of this stack is available in the Extras folder to aid in the conversion of Macintosh stacks to HCGS since there as some object properties (like family) that HyperMover does not handle.

FreeSource v4.01 is a resource management stack with features similar to HyperUtility.

XCMDMaker 1.0 is a stack that aids to the development of HCGS XCMDs and XFCNs. This is a shareware stack developed by David Empson in 1991.


GraphMaker GS is an enhanced conversion by Brendan Bellina of Apple's GraphMaker stack. Apple's stack facilitates creating graphs that could be copied and pasted into presentations.GraphMaker GS adds color support, the ability to import and export table data, and the ability to create full screen graphs and export them as images.

HCGS.Xtras is a stack by Brendan Bellina that collects over 100 HCGS XCMDs and XFCNs from a variety of sources including Script-Central, Hyper-Quarterly, Apple released stacks, 3rd party HCGS stacks, and HCGS extensions that were released online on the AOL, Delphi, and GEnie services. All extensions are described and many include example code and demonstrations.


Also included with Script-Central Special Edition

DIYScriptCentrl - This Do It Yourself Script-Central text file documents everything I learned while dissecting Script-Central #22 and creating the Script-Central Special Editions.

The Extras folder contains utilities and tools that I have found useful in HCGS development and many are mentioned in Script-Central SE issues.

The Fonts folder contains all of the fonts used by stacks from this issue (installation of these fonts is not required for the stacks unless otherwise mentioned thanks to the use of the FontZ XCmd by Richard Bennett).

The Sounds folder includes the sounds from the Macintosh OS Platinum theme converted to rSounds for use with the System 6 Sound Control Panel.  These sounds are also included in this issue's HyperSonic stack so they can be used within HyperCard stacks as well.

The Applications subfolder includes a program shipped with the ByteWorks Talking Tools that can be used to read text out loud.

Stacks folders contains Mac HyperCard versions of the HC Button Field Probe tool and the original version of the Apple Guidelines stack as well as all of the HyperHack stacks that were released by Apple.

The issue can be downloaded for free from the Silverwand Software site at:

https://sites.google.com/view/silverwandsoftware/apple-ii-forever

Script-Central Special Edition v8n1

Script-Central Special Edition v8n1 for the Apple IIGS was released in December 2023.


This is the fifth issue of Script-Central Special Edition. It was distributed as a 32 MB ProDOS volume and includes new HyperCard IIGS stacks and updated versions of GSOS SplashColor, Xmas Display '23, the Apple II Technical Notes stack, HyperTuneMaker, and Word.Fu.

 Highlights of the issue, which had a heavy focus on fonts, include:

- An updated version of GSOS Splash Color, a stack that allows the splash screen of System 5.04, 6.0.1 and 6.0.4 to be set to different colors than the default periwinkle blue.

- Words games Word.Fu and GuessWords

- Updated versions of the Xmas.Display and HyperTuneMaker stacks with a number of new features.

- An Apple II Technotes stack that is modeled after Apple's Mac Technotes stack but includes all Apple II technical notes, file type notes, and Human Interface Notes.

- Useful font stacks Font Viewer 3.0 and ShowFont, and an improved version of the List.Fonts command

- Apple's TrueType Info stack converted from Mac HyperCard and enhanced.

- An American Sign Language stack converted from HyperStudio (IIGS)

- Instructions for converting HyperStudio (IIGS) stacks to HyperCard, including graphics and sound effects

- A new stack for documenting and demonstrating HCGS bugs - BugTracker

- Many TrueType fonts that Apple originally released only for the Mac are included in the issue's Extras folder.

It can be downloaded for free from the Silverwand Software site at https://sites.google.com/view/silverwandsoftware/apple-ii-forever

Sunday, December 31, 2023

Summary of 2023

 It is the end of 2023 and I failed to create any new blog posts this year. This is not because I wasn't busy working on things though, I just failed to report on them.

When Script-Central Special Edition v7n2 was published in 2022 I thought I was finished with Script-Central issues. I had completed most of what I had set out to do and was running short on ideas. So while I continued to work on a few things I planned to release them as isolated updates rather than combining them into another Script-Central issue.

I released updated versions of the HyperCard IIGS stacks Word Fu (a Wordle clone for English and French speakers),  HyperTuneMaker (create tunes using a piano style keyboard), and Xmas Display '23 (songs and graphics displays for the Christmas season).

I created new IIGS Finder trash icons based on the Mac HiTech 3 theme.



I converted the MacOS 8/9 Platinum Theme Sound set to Apple IIGS rSnds that can be used with the Sound Control Panel or Sonics to liven up the IIGS Finder.

A new program I worked on was A2.Jukebox, an Applesoft BASIC program that uses a newly written machine language routine by Micah Cowan to play simple tunes written in Script Notation Language and display Apple II Hi-res graphics. The connection of this to my work in HyperCard IIGS is that the Xmas.Display.23 stack songbook can be exported to be used as input, which when paired with some holiday hi-res art created a nice Apple II Christmas slideshow that would work on any ProDOS capable Apple II. Both A2.Jukebox and Xmas.Jukebox were released on 3.5" and 5.25" disk images just prior to KansasFest.



By the fall though it was clear that I had more than enough content for another issue of Script-Central and so Script-Central Special Edition v8n1 was released in December as a 32 MB ProDOS disk image. Highlights of the issue, which had a heavy focus on fonts, include:

- An updated version of GSOS Splash Color, a stack that allows the splash screen of System 5.04, 6.0.1 and 6.0.4 to be set to different colors than the default periwinkle blue.

- Words games Word.Fu and GuessWords

- Updated versions of the Xmas.Display and HyperTuneMaker stacks with a number of new features.


- An Apple II Technotes stack that is modeled after Apple's Mac Technotes stack but includes all Apple II technical notes, file type notes, and Human Interface Notes.

- Useful font stacks Font Viewer 3.0 and ShowFont, and an improved version of the List.Fonts command

- Apple's TrueType Info stack converted from Mac HyperCard and enhanced.

- An American Sign Language stack converted from HyperStudio (IIGS)

- Instructions for converting HyperStudio (IIGS) stacks
HyperCard, including graphics and sound effects

- A new stack for documenting and demonstrating HCGS bugs - BugTracker

- Many TrueType fonts that Apple originally released only for the Mac are included in the issue's Extras folder.

Plans for a spring issue are underway and many of the stacks are already completed, including a word processor and a pair of HyperCard stacks for examining buttons and fields in a stack (both a Mac and a HCGS version).





The year ended with a bang as the 2018 MacMini I use for my IIGS development crashed along with its external backup partition. Even as I write this, recovery is underway.

Wishing everyone a wonderful 2024.

Tuesday, November 8, 2022

Enhancing the Arrow buttons in the Macintosh HyperCard 2.4.1 Home stack

HyperCard 2.4.1 Home stack changes for enhanced left/right arrow buttons

by Brendan Bellina 11/2022


Benefits of these changes

~~~~~~~~~~~~~~~~~~~~


Unenhanced the Home stack allows 5 Home Card cards to be displayed along the bottom. Additional cards can be created via the New Card menu option and accessed via the arrow buttons, but their names will not be displayed along the bottom of the Home card. When enhanced any added cards will scroll along the bottom when the arrow buttons are used to navigate. This encourages spreading QuickLinks across multiple cards rather than crowding them all onto the five standard Home cards.


Unenhanced the left/right arrow buttons in the Home stack cycle through all cards in the stack, not just the Home Card background. When enhanced the buttons advance only through the Home Cards. The User Preference cards remain accessible via the Home menu.


Holding down the option key while clicking on an enhanced left/right arrow button  will execute their original unenhanced logic.


Known issues

~~~~~~~~~~


The enhanced buttons require Home cards to be uniquely named.


When creating new Home Cards, if a name is not specified for the new card then standard behavior is that it is defaulted to "Untitled Card" which can lead to duplicate card names. For this reason if an "Untitled Card" button is scrolled off the screen and then back onto the screen its name will be changed to its unique card id.


When deleting the last Home card some Home menu options will be incorrectly disabled. To reenable them select Preferences from the Home menu and then return to the Home cards. This is a bug in the unmodified Home stack code that is more noticable since the enhanced left/right arrow buttons make adding more Home cards a more reasonable thing to do than crowding all QuickLinks on the five standard Home cards.


The Home Card title buttons are not defined in a button family, so it is possible for multiple of them to be hilited at the same time or none hilited. While this should not happen, if it does then use the arrow buttons to scroll through the cards and the hiliting will be corrected.


Applying these Enhancements

~~~~~~~~~~~~~~~~~~~~~~~


1. Add the following to the "Home Cards" background script":


---

Message Handlers added to this script by B Bellina 11/2022:

openCard, resetToFirstCard


on openCard -- added by B Bellina 11/2022

  -- required for enhanced "left arrow" "right arrow" buttons

  put ((number of bg btn id 169) - 1) into homeCardBtnCnt

  -- Determine which btn to hilite

  get the short name of this card

  put false into foundIt

  repeat with i = 1 to homeCardBtnCnt

    if short name of bg btn i is it then

      put true into foundIt

      exit repeat

    end if

  end repeat

  if foundIt then

    put i into foundCardNum

    repeat with i = 1 to homeCardBtnCnt

      set hilite of bg btn i to (i = foundCardNum)

    end repeat

  else

    -- failed to find so reset to first card (normally Welcome to...)

    resetToFirstCard

  end if

  pass openCard -- so others can use it

end openCard


on resetToFirstCard -- added by B Bellina 11/2022

  -- required for enhanced "left arrow" "right arrow" buttons

  if short name of this card is not short name of cd 1 then go cd 1

  put ((number of bg btn id 169) - 1) into homeCardBtnCnt

  repeat with i = 1 to homeCardBtnCnt

    set name of bg btn i to short name of cd i

    set hilite of bg btn i to false

  end repeat

  set hilite of bg btn 1 to true

end resetToFirstCard

---


2. Replace the mouseUp handler of the "left arrow" button with the following:


on mouseUp

  -- enhanced "left arrow" button logic

  -- by Brendan Bellina 11/2022

  -- also requires openCard and resetToFirstCard handlers in the

  -- background script

  if the optionKey is down then

    -- original logic for the button

    visual effect wipe right

    go prev card

  else -- enhanced logic

    lock screen

    set cursor to watch

    -- how many buttons along the bottom, typically 5

    put ((number of bg btn id 169) - 1) into homeCardBtnCnt

    -- how many home cards (they are cards 1...n)

    put number of cards of this bg into homeCardCnt

    if homeCardBtnCnt = homeCardCnt then

      go to prev card of this bg

      unlock screen with visual effect wipe right

    else -- more cards than buttons

      -- determine which button is hilited

      put 0 into fromCdBtnNum

      put short name of this cd into thisCd

      repeat with i = 1 to homeCardBtnCnt

        if hilite of bg btn i is true or ¬

        short name of bg btn i is thisCd then

          put i into fromCdBtnNum

          exit repeat

        end if

      end repeat

      if fromCdBtnNum = 0 then -- messed up so do default action

        go to prev card of this bg

        unlock screen with visual effect wipe right

        exit mouseUp

      end if

      if fromCdBtnNum is 1 then

        -- scroll all of the buttons except the rightmost to the right

        repeat with i = (homeCardBtnCnt - 1) down to 1

          set name of bg btn (i + 1) to short name of bg btn i

        end repeat

        put number of prev cd of this bg into prevCdNum

        get short name of cd prevCdNum

        if it is empty or it is "Untitled Card" then -- no dups allowed

          put id of cd prevCdNum into it

          set name of cd prevCdNum to it

        end if

        set name of bg btn 1 to short name of cd prevCdNum

        go to prev cd of this bg

        repeat with i = 1 to homeCardBtnCnt

          set hilite of bg btn i to (i = 1)

        end repeat

        unlock screen with visual effect wipe right

      else

        go to prev cd of this bg

        repeat with i = 1 to homeCardBtnCnt

          set hilite of bg btn i to (i = fromCdBtnNum - 1)

        end repeat

        unlock screen with visual effect wipe right

      end if

    end if

  end if

end mouseUp


3. Replace the mouseUp handler of the "right arrow" button with the following:


on mouseUp

  -- enhanced "right arrow" button logic

  -- by Brendan Bellina 11/2022

  -- also requires openCard and resetToFirstCard handlers in the

  -- background script

  if the optionKey is down then

    -- original logic for the button

    visual effect wipe left

    go next card

  else -- enhanced logic

    lock screen

    set cursor to watch

    -- how many buttons along the bottom, typically 5

    put ((number of bg btn id 169) - 1) into homeCardBtnCnt

    -- how many home cards (they are cards 1...n)

    put number of cards of this bg into homeCardCnt

    if homeCardBtnCnt = homeCardCnt then

      go to next card of this bg

      unlock screen with visual effect wipe left

    else -- more cards than buttons

      -- determine which button is hilited

      put 0 into fromCdBtnNum

      put short name of this cd into thisCd

      repeat with i = 1 to homeCardBtnCnt

        if hilite of bg btn i is true or ¬

        short name of bg btn i is thisCd then

          put i into fromCdBtnNum

          exit repeat

        end if

      end repeat

      if fromCdBtnNum = 0 then -- messed up so do default action

        go to next card of this bg

        unlock screen with visual effect wipe left

        exit mouseUp

      end if

      if fromCdBtnNum is homeCardBtnCnt then

        -- scroll all of the buttons except the leftmost to the left

        repeat with i = 2 to homeCardBtnCnt

          set name of bg btn (i - 1) to short name of bg btn i

        end repeat

        put number of next cd of this bg into nextCdNum

        get short name of cd nextCdNum

        if it is empty or it is "Untitled Card" then -- no dups allowed

          put id of cd nextCdNum into it

          set name of cd nextCdNum to it

        end if

        set name of bg btn homeCardBtnCnt to short name of cd nextCdNum

        go to next cd of this bg

        repeat with i = 1 to homeCardBtnCnt

          set hilite of bg btn i to (i = homeCardBtnCnt)

        end repeat

        unlock screen with visual effect wipe left

      else

        go to next cd of this bg

        repeat with i = 1 to homeCardBtnCnt

          set hilite of bg btn i to (i = fromCdBtnNum + 1)

        end repeat

        unlock screen with visual effect wipe left

      end if

    end if

  end if

end mouseUp



Thursday, November 3, 2022

Enabling Function Keys in HyperCard IIGS stacks



The Home Improvement stack by Brendan Bellina released on Script-Central v7n2 includes 20 ways to enhance the HyperCard IIGS Home stack.

One of these includes adding Function Key preference settings to the Home stack. This allows function keys F1-F4 to perform undo, cut, copy, paste, and F5-F15 to be user defined handlers or HyperTalk commands. These mappings can be defined regardless of whether a keyboard with function keys is attached to the IIGS or not.


Because the IIGS keyboard did not have function keys the ability of HyperCard IIGS to respond to function key presses is generally unused. If an Apple Extended Keyboard II is connected to the IIGS then its functions keys F1-F15 can be used and F1-F4 will perform undo, cut, copy, and paste, but without a stack or the Home stack having a functionkey handler the other function keys will serve no function.

When using a IIGS emulator it may not even be possible to send the function keys from the host computer keyboard through to the emulated IIGS, so the mappings preferences will also have no effect and even F1-F4 will not perform the built-in undo, cut, copy, and paste functions.

If you want to use the function key mappings preferences on a real IIGS that does not have an Apple Extended Keyboard II, or on an emulated IIGS with an emulator that eats the function key presses, then you have to have another way to indicate to HyperCard that a function key has been pressed.

Enter the Fn Key menu.

The Fn Key menu is a menu that can be added to HyperCard IIGS that can be used within any stack to send a function key signal to HyperCard as if a function key had been pressed.

Here are the steps to enable this menu.

1. Make a copy of your Home stack for safe keeping just in case you mess this up and need to revert.

2. You may want to follow the instructions in the Home Improvement stack to install the HC Extras menu. This menu adds significant functionality to HCGS and adds the addMenu and deleteMenu commands to the Home stack that are also required for the Fn Key menu.

3. If you choose not to use HC Extras then you will need to install the AddMenu XFCN and DeleteMenu XCMD from Apple's Scripter's Tools stack into your Home stack. Since you cannot install these into the active Home stack you will need to duplicate your Home stack, install them into the duplicate, and then rename or delete your original Home stack, and finally rename the duplicate to Home.

4. Make the following changes to your Home stack script:

4.1. In the startUp handler AND in the resume handler, after the line getHomeInfo add a new line
DrawHCFkeyMenu

If you have installed HCExtras then put the new line after the line
DrawHCExtrasMenu

4.2. In the quit handler AND in the suspend handler, after the line setHomeInfo add a new line

UnDrawHCFKeyMenu

4.3. Add the following two handlers: DrawHCFKeyMenu and UnDrawHCFKeyMenu

   on DrawHCFKeyMenu -- FKey Menu by BTB 10/31/2022

  global HCFKeyMenu

  if HCFKeyMenu is not empty then

    deleteMenu HCFKeyMenu

    put empty into HCFKeyMenu

  end if

  put return into r

  put empty into FKeyList

  repeat with i = 1 to 15

    put "F" & i after FKeyList

    if i < 5 then put space & item i of "Undo,Cut,Copy,Paste" after FKeyList

    put r after FKeyList

  end repeat

  put addMenu(" Fn Key  ", FKeyList & "-" &r ¬

  & "About the Fn Keys menu..." &r ¬

  & "Refresh the Fn Keys menu...") ¬

  into HCFKeyMenu

  show menubar

end DrawHCFKeyMenu


on UnDrawHCFKeyMenu

  global HCFKeyMenu

  deleteMenu HCFKeyMenu

  put empty into HCFKeyMenu

  show menubar

end UnDrawHCFKeyMenu

4.4. Add the following code to your doMenu handler. Note that these should come before the final "else pass doMenu" in the handler.  If there is no doMenu handler in your Home script then create one with "on doMenu whichItem" and "end doMenu"

  else if whichItem is "About the Fn Keys menu..." then
    answer "           *  *  *     FN KEYS  M E N U ™   *  *  *" & return &¬
    return & "Author:   B. Bellina                 Vsn: 1.0" &¬
    return & return &¬
    "Send function keys without an extended keyboard"
    
  else if whichItem is "Refresh the Fn Keys menu..." then
    UnDrawHCFKeyMenu
    DrawHCFKeyMenu
    
  else if "*" & word 1 of whichItem & "*" is in ¬
  "*F1*F2*F3*F4*F5*F6*F7*F8*F9*F10*F11*F12*F13*F14*F15*" then
    delete char 1 of whichItem
    functionKey (word 1 of whichItem)

5. After these changes then you restart HCGS you should see a new menu "Fn Keys" that you can use to send the F1-F15 keys to HyperCard IIGS.