So What Techncial Notes
#3

Call Box
The Call Box BASIC Global Page

Written by: Eric Joham - February 5,1990

This technical note describes the Call Box BASIC driver GLOBAL PAGE. This page of memory contains important addresses for advanced programming of the Call Box BASIC driver.

Here is a more detailed description of the Call Box BASIC Driver Global Page. Reserved areas are not described in detail and should not be used as they may contain important information needed by the Driver.

    $xxOO     (+0)
      |
      |
      |
    $xx6B
BASIC Driver entry point vectors. Must not be modified! All vectors are set to the following:
jsr $xx6C
where $xx is the most significant byte of the Global Page address.
    $xx6C   (+108)
      |
      |
      |
    $xx81
Routine vector interpreter. Determines which set of calls are to be executed and jumps to high bank subroutine distributor. RESERVED!
    $xx82   (+130)
      |
    $xx8D
Firmware entry point for native mode routines. RESERVED!
    $xx8E   (+142)
Active Flag: Call Box is active if bit 15 is set.
    $xx90   (+144)
      |
    $xxB3
Reserved direct page locations. MUST not be used or modified!
    $xxB4   (+180)
User I.D.: Can be used to obtain memory but must not be changed.
    $xxB6   (+182)
      |
    $xxDl
Reserved direct page locations. MUST not be used or modified!
    $xxD2   (+210)
Stack Size: holds number of pages reserved for native mode stack.
    $xxD4   (+212)
      |
    $xxEF
Reserved direct page locations. MUST not be used or modified!
    $xxFO   (+240)
User Buffer Address: Holds location of user buffer.
    $xxF2   (+242)
User Buffer Length: Holds length of user buffer.
    $xxF4   (+244)
Direct Page Size: holds number of pages used by tools.
$xxF6-$xxFF (+246)
Remaining locations are reserved.

There may be times when you want to directly access the individual Call Box commands such as when installing an Ampersand interpreter. The entry points are in the BASIC Driver entry point vectors at the beginning of this direct page. The following list identifies these entry points. It should be noted that non-Applesoft language access to these vectors is difficult at best because the calls get their input information from the Applesoft program listing pointed to by the Applesoft line parser located at $Bl in the 0/0 page and the output is usually returned in Applesoft variables.
     +00      CALL PO      Big Poke command
     +03      CALL PE      Big Peek command
     +06      CALL QF      Shutdown Call Box BASIC command
     +09      CALL SC      Screen commands
     +12      CALL PL      Palette commands
     +15      CALL SB      Scanline Control Byte commands
     +18      CALL PN      Pen commands
     +21      CALL LN      Line command
     +24      CALL RE      Rectangle command
     +27      CALL OV      Oval command
     +30      CALL RR      Rounded Rectangle commands
     +33      CALL AR      Arc commands
     +36      CALL EV      Event commands
     +39      CALL CU      Cursor commands
     +42      CALL TX      Text commands
     +45      CALL PT      Port commands
     +48      CALL WN      Window commands
     +51      CALL ME      Menu commands
     +54      CALL DI      Dialog commands
     +57      CALL TL      Tool commands
     +60      CALL LC      Long Call command
     +63      CALL AY      Super Array commands

Further Reference
Call Box BASIC Manual V2.0


Call Box - So What Software 10221 Slater Ave. Suite 103 Fountain Valley, CA. 92708