home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
genie-commodore-file-library
/
GEOSApps
/
GEOSTECHREF3.ARC
/
PAGE77-89
< prev
Wrap
Text File
|
2019-04-13
|
37KB
|
859 lines
═EMORY ═AP 6-3
$8╞ ┴ COPY OF LOCATION $8┼ WITH THE CLOCK
AND DATA LINES SET.
$6000-$7╞3╞ ╙├╥┼╬2 ╙ECONDARY HIRES SCREEN, USED AS A BACKUP
FOR ERASING MENUS AND WINDOWS.
$7900-$7╞╞╞ ╨RINTER DRIVER ADDRESS; SEE PRINTER
DRIVER DEFINITIONS
$7900 ═ASTER RESET FOR A PRINTER DRIVER
$7903 ╙ELECT PRINTER TO BEGIN TO PRINT AN
IMAGE
$7906 ╧UTPUT LINE OF IMAGE
$7909 ├LOSE PRINTER, END AN IMAGE
$790├ ╥ETURN HEIGHT AND WIDTH OF PRINTED PAGE
$790╞ ╨RINTER DRIVER'S NAME AS A TEXT STRING
$8000-$80╞╞ ┬╒╞0 ─ISK BUFFER #0
$8100-$81╞╞ ┬╒╞1 ─ISK BUFFER #1, ╔NFO SECTOR
$8200-$82╞╞ ┬╒╞2 ─ISK BUFFER #2, ─IRECTORY WORK AREA
$8300-$83╞╞ ┬╒╞3 ─ISK BUFFER #3, ╘ABLE OF TRACKS AND
SECTORS
$8400-$841─ ─┼╬╘╥┘ ├URRENT DIRECTORY ENTRY, SET UP BY
╠╧╧╦╒╨
$841┼-$842╞ ─╬┴═┼0 ╬AME OF DISK IN DRIVE 0 (DEVICE 8)
$8430-$8441 ─╬┴═┼1 ╬AME OF DISK IN DRIVE 1 (DEVICE 9)
$8442-$8453 ─╬┴═┼2 ╬AME OF DISK IN DRIVE 2 (DEVICE 10)
$8454-$8465 ─╬┴═┼3 ╬AME OF DISK IN DRIVE 3 (DEVICE 11)
$8466-$8488 ╒NUSED
$8486 ┬╧╧╘─╓ ╨OINT TO INDEX FROM TO REACH $848┼
$8489 ├╒╥─╥╓ ├URRENT DRIVE'S DEVICE NUMBER
$848┴ ─╥╓╞╠╟ ╨OINT TO INDEX FROM TO REACH $8492
$848┬ ╞╧╥═┴╘ ╞ORMAT FLAG OF CURRENT DISK,
$00 - ╟┼╧╙ FORMAT
$╞╞ - ╬ON-╟┼╧╙ DISKETTE
$848├ ╙╦┼╫ ╙KEW FACTOR FOR DISKETTE OPERATIONS
$848─ ╬╒═─╥╓ ╬UMBER OF DRIVE IN THE SYSTEM
$848┼-$8491 ╟┼╧╙ USES THIS TABLE TO DESIGNATE THE
BOOT DRIVE, BY PLACING A $01 IN THE
LOCATION CORRESPONDING TO THE BOOT
DRIVE. ╘HIS TABLE IS REACHED BY INDEXING
OFF OF $8486 WITH THE DEVICE NUMBER.
$8492-$8495 ─RIVE STATUS BYTES, INDEXED FROM $848┴
WITH THE DEVICE NUMBER.
┬IT 7 - ╘URBODOS IS LOADED
┬IT 6 - ╘URBODOS IS RUNNING
$8496 ├╚┴╔╬ ├URRENT ╓╠╔╥ CHAIN NUMBER
$8497 ╬├╚┴╔╬ ╬UMBER OF ╓╠╔╥ CHAINS IN THE OPEN FILE
$8498 ═╧─╞╠╟ ═ODIFIED FLAG, SET TO $╞╞ IF THE OPEN
╓╠╔╥ FILE HAS BEEN CHANGED; $00
OTHERWISE
$8499-$849┴ ╓╙╔┌┼ ╓╠╔╥ FILE SIZE
$849┬-$849├ ╔═┴╔╬ ╓ECTOR FOR USER ADDITIONS TO THE ╟┼╧╙
MAIN LOOP
$849─-$849┼ ╔╟╔╥╤ ╓ECTOR FOR ╟┼╧╙'S ╔╥╤ ROUTINE
$849╞-$84┴0 ╔╒╔╥╤ ╓ECTOR FOR A USER'S ADDITIONS TO THE ╔╥╤
ROUTINE
$84┴1-$84┴2 ╔┬╒╘╧╬ ╓ECTOR FOR BUTTON STATUS CHANGES
═EMORY ═AP 6-4
$84┴3-$84┴4 ╔├╥╚╔╘ ╓ECTOR FOR CARRIAGE RETURN ENTERED FROM
THE KEYBOARD
$84┴5-$84┴6 ╔═╙─╔╥ ╓ECTOR FOR MOUSE DIRECTION CHANGE
$84┴7-$84┴8 ╔├╠╙═╬ ╓ECTOR TO CLOSE A MENU
$84┴9-$84┴┴ ╔┴├╘╧╬ ╘HIS VECTOR IS USED FOR A LOT OF THINGS
THAT REQUIRE AN ACTION TO BE PERFORMED.
╘HESE ITEMS INCLUDE: A CHARACTER WAS
TYPED, THE BUTTON WAS RELEASED, THE
BUTTON WAS PRESSED AND EITHER THE MOUSE
WAS VISIBLE OR ┬IT 5 OF ═╙╞╠┴╟ (LOCATION
$30) WAS SET.
$84┴┬-$84┴├ ╔═┴╥╟╬ ╓ECTOR FOR MARGINS EXCEEDED
$84┴─-$84┴┼ ╔┴╠┴╥═ ╓ECTOR FOR THE ALARM CLOCK ROUTINE
$84┴╞-$84┬0 ╔┬╥╦ ╓ECTOR FOR THE ┬╥╦ INSTRUCTION,
INITIALLY THIS IS SET TO ╙┘╙┼╥╥
$84┬1-$84┬2 ╔├╠┼┴╥ ╓ECTOR FOR A ROUTINE TO CLEAR A REGION
OF THE SCREEN, INITIALLY SET TO ├╧╨┘┬3
$84┬3 ─╞╘╔═┼ ─EFAULT DELAY VALUE FOR FLASHING BOXES
$84┬4 ├╒╥╞╠╟ ╘EXT CURSOR CONTROL FLAG
┬IT 7 - ┬LINK THE CURSOR
┬IT 6 - ├URSOR IS TURNED ON
┬ITS 0-5 - ┬LINK RATE
$84┬5 ├┬╞╠┴╟ ├ONTROL FLAG FOR CLICK BOX
┬IT 7 - ╞LASH THE BOX
┬IT 6 - ╧NLY INVERT THE BOX
$84┬6 ╨╧╙╞╠╟ ═OUSE POSITION FLAG, SET BY ╔╥╤╥╘╬
┬IT 7 - ═OUSE IS BELOW THE BOTTOM
OF THE WINDOW, ╫╬┬╧╘, $84┬9
┬IT 6 - ═OUSE IS ABOVE THE TOP OF
THE WINDOW, ╫╬╘╧╨, $84┬8
┬IT 5 - ═OUSE IS TO THE LEFT OF THE
WINDOW, ╫╬╠┼╞╘, $84┬┴-$84┬┬
┬IT 4 - ═OUSE IS TO THE RIGHT OF
THE WINDOW, ╫╬╥╔╘┼, $84┬├-
$84┬─
┬IT 3 - ═OUSE IS OUTSIDE THE MENU,
═╬╘╧╨, ═╬┬╧╘, ═╬╠┼╞╘,
═╬╥╔╘┼, $86├1-$86├6
$84┬7 ╬╒═┼╬╒ ╬UMBER OF MENU LEVELS
$84┬8-$84┬─ ╫INDOW SIZE DESCRIPTION
$84┬8 ╫╬╘╧╨ ╘OP ROW OF WINDOW
$84┬9 ╫╬┬╧╘ ┬OTTOM ROW OF WINDOW
$84┬┴-$84┬┬ ╫╬╠┼╞╘ ╠EFT MARGIN OF WINDOW
$84┬├-$84┬─ ╫╬╥╔╘┼ ╥IGHT MARGIN OF WINDOW
$84┬┼-$84┬╞ ├╒╥╙╪ ╘EXT CURSOR'S ╪ POSITION
$84├0 ├╒╥╙┘ ╘EXT CURSOR'S ┘ POSITION
$84├1-$84╞╞ ─═╧╒╙┼ ╙PRITE DATA FOR DEFAULT MOUSE
$8500 ╒NUSED
$8501 ═┴╪╙╨─ ═AXIMUM MOUSE SPEED
$8502 ═╔╬╙╨─ ═INIMUM MOUSE SPEED
$8503 ┴├├┼╠ ═OUSE'S ACCELERATION RATE
$8504 ╦┼┘ ╬EXT KEY FROM KEYBOARD BUFFER, SET BY
╟┼╘╔╬
═EMORY ═AP 6-5
$8505 ┬╒╘╘╧╬ ├URRENT BUTTON STATUS
$00 - ╨RESSED
$╞╞ - ╥ELEASED
$8506 ═╙─╔╥ ═OUSE'S CURRENT DIRECTION, 0-7,$╞╞
3 2 1
4 * 0
5 6 7
$8507 ═╙╨┼┼─ ├URRENT MOUSE SPEED
$8508-$8509 ╒NUSED
$850┴-$850┬ ╥╬─╬╒═ ╥ANDOM NUMBER GENERATOR VALUE
$850├-$8514 ╘═╨╞╬╘ ╘EMPORARY STORAGE FOR FONT DATA DURING
MENU PROCESSING, COPY OF ╞╧╬╘─╘,
LOCATIONS $26-$2┼
$8515 ┴ COUNTER USED BY THE CLICK BOX ROUTINE,
WHICH IS DECREMENTED BY THE ╔╥╤ SERVICE
ROUTINE IF IT IS NONZERO. ╙EE ┴PPENDIX
╔╓.
$8516 ┘┼┴╥ ├URRENT YEAR (0-99)
$8517 ═╧╬╘╚ ├URRENT MONTH
$8518 ─┴┘ ├URRENT DAY OF THE MONTH
$8519 ╚╧╒╥ ├URRENT HOUR
$851┴ ═╔╬╒╘┼ ├URRENT MINUTE OF THE HOUR
$851┬ ╙┼├╧╬─ ├URRENT SECOND OF THE MINUTE
$851├ ╘┼╬╘╚╙ ├URRENT TENTHS OF THE SECOND
$851─ ╫╔╬├═─ ├OMMAND BYTE RETURNED BY THE WINDOW
PROCESSOR
$851┼ ╨├╧╠╧╥ ╨REFERRED COLORS; HIGH NIBBLE FOR THE
FOREGROUND COLOR AND LOW NIBBLE FOR THE
BACKGROUND COLOR
$851╞-$8697 ╙┴╓┬╒╞ ╘EMPORARY STORAGE BUFFER FOR THE WINDOW
PROCESSOR; SEE ╫╔╬─╧╫ FOR MORE
INFORMATION
$8698-$86┬┬ ╒NUSED
$86├0 ╬╒═╧╨╘ ╬UMBER OF OPTIONS IN THE CURRENT MENU
$86├1-$86├6 ├URRENT MENU SIZE DESCRIPTION
$86├1 ═╬╘╧╨ ╘OP ROW OF MENU
$86├2 ═╬┬╧╘ ┬OTTOM ROW OF MENU
$86├3-$86├4 ═╬╠┼╞╘ ╠EFT MARGIN OF MENU
$86├5-$86├6 ═╬╥╔╘┼ ╥IGHT MARGIN OF MENU
$86├7-$86├┼ ═╙╘┴├╦ ╙TACK FOR MENU DESCRIPTORS
$86├╞-$86─2 ╧╨╘╔╧╬ ═ENU OPTION THAT WAS CLICKED ON, INDEXED
BY MENU LEVEL (0-3)
$86─3-$86┼1 ╠╔═╔╘╚ ═ENU OPTION BOX LIMITS, EITHER ROW
VALUES OR COLUMN HIGH BYTES
$86┼2-$86╞0 ╠╔═╔╘╠ ═ENU OPTION BOX LIMITS, COLUMN LOW BYTES
$86╞1-$8718 ╘╔═┼╥╙ ╘ABLE OF RUNNING TIMERS, SEE $8755
$8719-$872├ ╘╔═├═─ ╘IMER COMMAND BYTES
┬IT 7 - ┼XECUTE ROUTINE, TIMER
REACHED ZERO
┬IT 6 - ─ISABLE ROUTINE EXECUTION,
LEAVE TIMER RUNNING
┬IT 5 - ╙TOP TIMER
┬IT 4 - ╙TOP TIMER
═EMORY ═AP 6-6
$872─-$8754 ╘╔═╥╘╬ ╙UBROUTINE ADDRESSES ASSOCIATED WITH
EACH TIMER
$8755-$877├ ╘╔═╓┴╠ ╔NITIAL VALUES FOR TIMERS, COPIED TO
$86╞1 WHEN THE TIMER REACHES ZERO
$877─ ╬╒═╘╔═ ╬UMBER OF TIMERS IN TABLE
$877┼ ─╠┘╙╨ ╙TACK POINTER FOR DELAY STACK
$877╞-$87┴6 ─╠┘╓┴╠ ╘IME DELAY VALUES
$87┴7-$87├┼ ─╠┘╥╘╬ ╥ETURN ADDRESSES FOR WHEN THE DELAY TIME
HAS EXPIRED
$87├╞ ╔╬╨╠┼╬ ╠ENGTH OF USER ENTRY
$87─0 ═┴╪╠┼╬ ═AXIMUM LENGTH OF USER ENTRY
$87─1-$87─2 ╘═╨╓┼├ ├OPY OF ╔═┴╥╟╬, LOCATIONS $84┴3-$84┴4
$87─3 ═┴╥╞╠╟ ═ARGIN CONTROL FLAG,
┬IT 7 - ╒SER SUPPLIES THE MARGIN
EXCEEDED ROUTINE FOR THE
WINDOW WITH A LINE OF TEXT,
╔╬╨╒╘ OR WINDOW COMMAND 13
$87─4-$87─6 ├OLUMN AND ROW VARIABLES FOR ╟╥╨╚╔├
PROCESSOR
$87─7 ╚┼┴─ ╚EAD OF KEYBOARD QUEUE
$87─8 ╘┴╔╠ ╘AIL OF KEYBOARD QUEUE
$87─9 ╤╞╠┴╟ ╔F THIS FLAG IS ZERO, THEN THE VALUE OF
╬╪╘╦┼┘, LOCATION $87┼┴, IS PLACED IN THE
KEYBOARD QUEUE
$87─┴-$87┼9 ╤╒┼╒┼ ╦EYBOARD QUEUE
$87┼┴ ╬╪╘╦┼┘ ╬EXT KEY TO BE PLACED IN THE KEYBOARD
BUFFER
$87┼┬-$87╞2 ╒SED BY KEYBOARD SCAN ROUTINE FOR
DEBOUNCING THE KEYBOARD
$87╞3-$87╞┴ ╒SED BY KEYBOARD SCAN ROUTINE TO PREVENT
MULTIPLE KEY HITS
$87╞┬-$8806 ╒SED BY ─╥┴╫├╚ TO MANIPULATE THE FONT
BIT STREAMS
$8807 ─╫╔─╘╚ ╫IDTH OF PREVIOUS CHARACTER FOR DELETE
CHARACTER
$8808 ╘EMPORARY STORAGE USED BY THE CLICK BOX
ROUTINE
$8809 ╘EMPORARY STORAGE USED BY THE CLICK BOX
ROUTINE
$880┴ ┬┼╠╞╠╟ ┴ NON-ZERO VALUE DISABLES ALARM CHIMES
$880┬ ╘EMPORARY STORAGE USED BY THE ╔╥╤
ROUTINE
$880├-$884╞ ├┬╘┬╠ ─EFAULT CLICK BOX TABLE USED BY THE
WINDOW PROCESSOR; SEE ALSO ├┬╧╪┼╙
$880├ ╬╒═├┬ ╬UMBER OF CLICK BOXES (8 MAXIMUM)
$880─-$880┼ ├┬═╙╪ ╪ POSITION OF MOUSE AFTER CLICK BOXES
HAVE BEEN DRAWN
$880╞ ├┬═╙┘ ┘ POSITION OF MOUSE AFTER CLICK BOXES
HAVE BEEN DRAWN
$8810-$884╞ ├┬─┼╞╙ ├LICK BOX DEFINITIONS; SEE ├┬╧╪┼╙
$8850-$8851 ╥ETURN ADDRESS OF CALLER TO ╠╧┴─╙╫
$8852 ├OPY OF THE ╙╨ REGISTER FROM ╠╧┴─╙╫
$8853-$8854 ╥ETURN ADDRESS OF CALLER TO ╫╔╬─╧╫
$8855 ├OPY OF THE ╙╨ REGISTER FROM ╫╔╬─╧╫
═EMORY ═AP 6-7
$8856-$885├ ╒SED BY COMMAND 16 IN ╫╔╬─╧╫
$8856 ╬╒═╞╔╠ ╬UMBER OF FILES FOUND
$8857 ╧╞╙┼╘╠ ╠EFT INDENT OF FILE SUBWINDOW
$8858 ╧╞╙┼╘─ ─OWN INDENT OF FILE SUBWINDOW
$8859-$885┴ ╘┬╠╨╬╘ ╨OINTER TO FILENAME TABLE
$885┬ ╞╙╘╞╔╠ ╔NDEX OF FIRST FILE IN THE SUBWINDOW
$885├ ╙┼╠╞╔╠ ╔NDEX ON SELECTED FILE
$885─ ╨ARAMETER PASSED TO A PROGRAM, COPY OF
─╨┴╟┼, LOCATION $16
$885┼ ├OPY OF THE STATUS REGISTER DURING
SERIAL COMMUNICATIONS
$885╞ ├OPY OF LOCATION $─01┴ DURING SERIAL
COMMUNICATIONS
$8860 ├OPY OF ╥6510, LOCATION $01, DURING
SERIAL COMMUNICATIONS
$8861 ├OPY OF LOCATION $─015 DURING SERIAL
COMMUNICATION
$8862 ├OPY OF LOCATION $──00 BEFORE SENDING
╘URBODOS
$8863-$8866 ├OMMAND BUFFER FOR ╘URBODOS
$8867 ├OPY OF LOCATION $──00 WITH SERIAL LINES
CLEARED
$8868 ├OPY OF LOCATION $──00 WITH CLOCK LINE
SET
$8869 ╘╥┘1 ╘RY COUNTER FOR DISK READ/WRITE
OPERATIONS
$886┴ ─╙╘┴╘ ─ISK STATUS BYTE READ BY ╘URBODOS
$886┬ ╠─╞╠┴╟ ╠OAD FLAG
┬IT 0 - ─O NOT RUN THE APPLICATION
BEING LOADED; USE ╠─┴─╥╙
LOCATIONS $886├-$886─ AS
LOAD ADDRESS
$886├-$886─ ╠─┴─╥╙ ┴LTERNATE FILE LOAD ADDRESS
$886┼ ╥EPORTS WHICH DRIVE IS BEING SEARCHED
$00 - LOGGED DISK
$╞╞ - CHECKING OTHER DRIVE
$886╞-$8874 ╒SED BY ╓╠╔╥ FILE ROUTINES
$886╞ ─╘╥┴├╦ ╘RACK NUMBER OF ╓╠╔╥ FILE DIRECTORY
ENTRY
$8870 ─╙┼├╘╥ ╙ECTOR NUMBER OF ╓╠╔╥ FILE DIRECTORY
ENTRY
$8871-$8872 ╓─╔╥╨╘ ╔NDEX INTO DIRECTORY SECTOR TO ╓╠╔╥ FILE
DIRECTORY ENTRY
$8873 ╓╘╥┴├╦ ╘RACK NUMBER OF ╓╠╔╥ SECTOR
$8874 ╓╙┼├╘╥ ╙ECTOR NUMBER OF ╓╠╔╥ SECTOR
$8875 ╘╥┘2 ╘RY COUNTER USED BY ├╫╥╔╘┼
$8876 ╓┼╥╞╠╟ ╓ERIFY FLAG; $00=╬╧, $╞╞=┘┼╙
$8877-$89╞╞ ╒NUSED
$8┴00-$8┴3┼ ╙PRITE DATA BLOCK #40, ╟┼╧╙ SPRITE 0
$8┴40-$8┴7┼ ╙PRITE DATA BLOCK #41, ╟┼╧╙ SPRITE 1
$8┴80-$8┴┬┼ ╙PRITE DATA BLOCK #42, ╟┼╧╙ SPRITE 2
$8┴├0-$8┴╞┼ ╙PRITE DATA BLOCK #43, ╟┼╧╙ SPRITE 3
$8┬00-$8┬3┼ ╙PRITE DATA BLOCK #44, ╟┼╧╙ SPRITE 4
$8┬40-$8┬7┼ ╙PRITE DATA BLOCK #45, ╟┼╧╙ SPRITE 5
═EMORY ═AP 6-8
$8┬80-$8┬┬┼ ╙PRITE DATA BLOCK #46, ╟┼╧╙ SPRITE 6
$8┬├0-$8┬╞┼ ╙PRITE DATA BLOCK #47, ╟┼╧╙ SPRITE 7
$8├00-$8╞┼7 ├╧╠─┴╘ ├OLOR RAM FOR HIRES SCREEN
$8╞┼8-$8╞╞╞ ╙PRITE POINTERS; USUALLY SET TO 40 TO 47
$9000-$9╞╞╞ ╞IRST SECTION OF THE ╟┼╧╙ ╦ERNAL
$┴000-$┬╞3╞ ╙├╥┼╬1 ╨RIMARY HIRES SCREEN
$┬╞40-$╞┼7╞ ╙ECOND SECTION OF THE ╟┼╧╙ ╦ERNAL
$╞┼80-$╞╞╞9 ╔NPUT DRIVER
$╞┼80 ═ASTER RESET FOR THE INPUT DRIVER
$╞┼83 ╙ET MOUSE SPEED TO ZERO
$╞┼86 ╥EAD INPUT DEVICE
$╞╞╞┴-$╞╞╞┬ ╬═╔ VECTOR
$╞╞╞├-$╞╞╞─ ╨OWER UP RESET VECTOR
$╞╞╞┼-$╞╞╞╞ ╔╥╤ VECTOR
┴PPENDIX ╔ : ╟┼╧╙ ┼RRORS ╔-1
╟┼╧╙ SUBROUTINES THAT ARE ABLE TO RETURN ERRORS, RETURN ONE OF
THE FOLLOWING ERROR NUMBERS IN THE ╪ REGISTER.
2 ╔LLEGAL TRACK OR SECTOR.
3 ─ISK FULL.
5 ╞ILE NOT FOUND.
6 ┴TTEMPT TO DEALLOCATE AN UNALLOCATED BLOCK.
7 ╔LLEGAL ╓╠╔╥ CHAIN NUMBER.
8 ╓╠╔╥ FILE ERROR; ILLEGAL TRACK OR SECTOR SPECIFIED.
9 ╘OO MANY ╓╠╔╥ CHAINS.
10 ╞ILE IS NOT A ╓╠╔╥ FILE.
11 ┼ND OF FILE, FILE TOO LONG.
13 ─EVICE NOT PRESENT.
31 ╫RITE PROTECT IS ON.
32 ╥EAD ERROR, NO SYNC CHARACTER.
35 ─ISK DRIVE ╞─├ ERRORS:
2 ╚EADER BLOCK NOT FOUND.
7 ╓ERIFY ERROR AFTER WRITE.
9 ╚EADER BLOCK CHECKSUM ERROR.
10 ─ATA BLOCK TOO LONG.
11 ╔─ MISMATCH ERROR.
38 ─ISK DRIVE ╞─├ ERRORS:
4 ─ATA BLOCK NOT FOUND.
5 ─ATA BLOCK CHECKSUM ERROR.
39 ╫RITE ERROR. ╙EE ├╫╥╔╘┼.
┴PPENDIX ╔╔ : ╟LOSSARY ╔╔-1
╘HIS IS A SIMPLE GLOSSARY FOR SOME OF THE TERMS USED IN THIS
MANUAL.
┬╧╪ : ┴ RECTANGULAR REGION ON THE HIRES GRAPHIC SCREEN.
├╠╔├╦ : ╘O PRESS THE BUTTON. ╒SUALLY USED TO SELECT THE OPTION
BEING POINTED TO BY THE MOUSE.
├╠╔├╦ ┬╧╪ : ┴ SPECIAL CONTROL STRUCTURE THAT APPEARS AS A BOX ON
THE SCREEN. ╘HIS BOX IS CAPABLE OF BEING CLICKED ON WITH THE
MOUSE. ╫HEN THE BOX IS CLICKED ON, SOME OPERATION OCCURS.
├╒╥╙╧╥ : ╘HE TEXT CURSOR THAT APPEARS WHEN THE USER IS ASKED TO
TYPE SOMETHING IN ON THE KEYBOARD. ╔T APPEARS AS A THIN VERTICAL
BAR.
─╧╒┬╠┼ ├╠╔├╦ : ╘O CLICK TWICE ON AN OPTION. ╘HIS IS USED AS A
VERIFICATION METHOD, MAKING SURE THAT THE USER WISHES TO PERFORM
THAT OPERATION.
╞╧╬╘ : ─ATA THAT REPRESENTS THE GRAPHICAL IMAGE OF A CHARACTER
SET.
╔╬╞╧ ╙┼├╘╧╥ (╔╬╞╧╥═┴╘╔╧╬ ╙┼├╘╧╥) : ┴ SECTOR ON THE DISK
ASSOCIATED WITH A FILE. ╘HIS CONTAINS SOME INFORMATION ABOUT THE
ASSOCIATED FILE, IE. ICON IMAGE, LOAD ADDRESS, CLASS, AUTHOR AND
TEXT FIELD. ╙EE CHAPTER 5.
╔╬╠╔╬┼ ─┴╘┴ : ╘HIS RELATES TO DATA THAT IS IN THE MIDDLE OF A
REGION OF MACHINE CODE. ╘HE DATA IMMEDIATELY FOLLOWS THE
SUBROUTINE CALL AND CONTROL RETURNS TO THE INSTRUCTION FOLLOWING
THE DATA. ╘HIS RELIEVES THE USER OF THE BURDEN OF SETTING UP THE
INPUT PARAMETERS TO A SUBROUTINE THAT IS SELDOMLY CALLED OR WHOSE
DATA DOES NOT CHANGE. ╙EE ╨╞╔╠╠2 FOR AN EXAMPLE OF INLINE DATA.
╔╬╓┼╥╘ : ╘O CHANGE THE PIXELS ON THE HIRES SCREEN FROM BACKGROUND
TO FOREGROUND, OR FROM FOREGROUND TO BACKGROUND.
═┼═╧╥┘ ╙╫┴╨╨╔╬╟ : ╒SED BY DESK ACCESSORIES TO SAVE THE MEMORY
THAT THEY WOULD NORMALLY RESIDE IN. ╘HIS ALLOWS THEM TO BE USED
FROM WITHIN APPLICATIONS BECAUSE THE APPLICATION'S MEMORY IS
RESTORED WHEN THE DESK ACCESSORY IS FINISHED.
═┼╬╒ : ┴ LIST OF OPTIONS FOR THE USER TO SELECT FROM. ┴ MENU CAN
BE EITHER HORIZONTAL OR VERTICAL. ╟ENERALLY, THE MAIN MENU IS
HORIZONTAL AND THE SUBMENUS ARE VERTICAL.
═╧╒╙┼ : ╘HE LITTLE ARROW THAT IS CONTROLLED BY THE JOYSTICK OR
OTHER INPUT DEVICE.
╥┼├╒╥╥╔╬╟ ╘╔═┼─ ┼╓┼╬╘ : ╘HIS IS A SUBROUTINE THAT IS TO BE
EXECUTED EVERY SO OFTEN. ╘HE AMOUNT OF TIME BETWEEN EXECUTIONS IS
STORED. ╘HE INTERRUPT ROUTINES DECREMENT THE TIMERS EVERY
SIXTIETH OF A SECOND. ╫HEN THE TIMER REACHES ZERO, THE ╟┼╧╙ MAIN
┴PPENDIX ╔╔ : ╟LOSSARY ╔╔-2
LOOP CALLS THE APPROPRIATE ROUTINE. ╘HIS ALLOWS SEVERAL THINGS TO
SEEM TO HAPPEN SIMULTANEOUSLY. ╔T IS THE BEGINNINGS OF
MULTITASKING.
╙╦┼╫ ╞┴├╘╧╥ : ╘HIS IS THE NUMBER OF SECTOR TO SKIP OVER WHEN
LOOKING FOR CONSECUTIVE SECTORS FOR A FILE. ╔T IS 8 FOR ╘URBODOS
AND 10 FOR ─╧╙. ╘HE REASON FOR USING A SKEW FACTOR IS EFFICIENCY.
╔F PHYSICALLY CONSECUTIVE SECTORS WERE USED, THE DISK DRIVE WOULD
HAVE TO WAIT FOR A COMPLETE REVOLUTION OF THE DISK BETWEEN EACH
SECTOR READ. ╘HE SKEW FACTOR IS SET SO THAT THIS IS NOT
NECESSARY. ┴ SKEW FACTOR IS SET TO A VALUE SUCH THAT BY THE TIME
THE COMPUTER HAS PROCESSED A SECTOR, THE NEXT SECTOR IS ON
POSITION TO BE READ.
╙╘╥╔╬╟ : ┴ SEQUENCE OF BYTES TERMINATED BY A ZERO BYTE. ╒SUALLY
USED FOR REPRESENTING TEXT.
╘╒╥┬╧─╧╙ : ╘HE SPECIAL DISK ROUTINES USED BY ┬ERKELEY ╙OFTWORKS
TO SPEED UP DISK ACCESS.
╓╠╔╥ : ╓ARIABLE ╠ENGTH ╔NDEX ╥ECORD, A TREE STRUCTURED FILE
STRUCTURE. ╨RESENTLY ╟┼╧╙ LIMITS FILES TO 127 OF THESE RECORDS.
╫╔╬─╧╫ : ┴ SPECIAL CONTROL STRUCTURE THAT APPEARS AS A LARGE BOX
ON THE SCREEN, USUALLY WITH A SHADOW. ╘HIS CONTROL STRUCTURE IS
USED TO ELICIT SOME FORM OF USER INPUT OR SELECTION.
┌┼╥╧ ┬┘╘┼ : ┴ SINGLE BYTE WITH THE VALUE OF ZERO.
┴PPENDIX ╔╔╔ : ╞ILL ╨ATTERNS ╔╔╔-1
0 1 2 3
---------- ---------- ---------- ----------
╔ ╔ ╔********╔ ╔* * * * ╔ ╔* ** *╔
╔ ╔ ╔********╔ ╔ * * * *╔ ╔ * * ╔
╔ ╔ ╔********╔ ╔* * * * ╔ ╔ * * ╔
╔ ╔ ╔********╔ ╔ * * * *╔ ╔* ** *╔
╔ ╔ ╔********╔ ╔* * * * ╔ ╔* ** *╔
╔ ╔ ╔********╔ ╔ * * * *╔ ╔ * * ╔
╔ ╔ ╔********╔ ╔* * * * ╔ ╔ * * ╔
╔ ╔ ╔********╔ ╔ * * * *╔ ╔* ** *╔
---------- ---------- ---------- ----------
4 5 6 7
---------- ---------- ---------- ----------
╔***** **╔ ╔* * ╔ ╔ *** ***╔ ╔* * ╔
╔**** * *╔ ╔ * * ╔ ╔** *** *╔ ╔ ╔
╔***** **╔ ╔* * ╔ ╔ *** ***╔ ╔ * * ╔
╔**** * *╔ ╔ * * ╔ ╔** *** *╔ ╔ ╔
╔***** **╔ ╔* * ╔ ╔ *** ***╔ ╔* * ╔
╔**** * *╔ ╔ * * ╔ ╔** *** *╔ ╔ ╔
╔***** **╔ ╔* * ╔ ╔ *** ***╔ ╔ * * ╔
╔**** * *╔ ╔ * * ╔ ╔** *** *╔ ╔ ╔
---------- ---------- ---------- ----------
8 9 10 11
---------- ---------- ---------- ----------
╔ *** ***╔ ╔********╔ ╔ * * * *╔ ╔ *╔
╔********╔ ╔ ╔ ╔ * * * *╔ ╔ * ╔
╔** *** *╔ ╔********╔ ╔ * * * *╔ ╔ * ╔
╔********╔ ╔ ╔ ╔ * * * *╔ ╔ * ╔
╔ *** ***╔ ╔********╔ ╔ * * * *╔ ╔ * ╔
╔********╔ ╔ ╔ ╔ * * * *╔ ╔ * ╔
╔** *** *╔ ╔********╔ ╔ * * * *╔ ╔ * ╔
╔********╔ ╔ ╔ ╔ * * * *╔ ╔* ╔
---------- ---------- ---------- ----------
12 13 14 15
---------- ---------- ---------- ----------
╔* ╔ ╔******* ╔ ╔ *******╔ ╔********╔
╔ * ╔ ╔****** *╔ ╔* ******╔ ╔* * ╔
╔ * ╔ ╔***** **╔ ╔** *****╔ ╔* * ╔
╔ * ╔ ╔**** ***╔ ╔*** ****╔ ╔* * ╔
╔ * ╔ ╔*** ****╔ ╔**** ***╔ ╔********╔
╔ * ╔ ╔** *****╔ ╔***** **╔ ╔* * ╔
╔ * ╔ ╔* ******╔ ╔****** *╔ ╔* * ╔
╔ *╔ ╔ *******╔ ╔******* ╔ ╔* * ╔
---------- ---------- ---------- ----------
┴PPENDIX ╔╔╔ : ╞ILL ╨ATTERNS ╔╔╔-2
16 17 18 19
---------- ---------- ---------- ----------
╔********╔ ╔********╔ ╔ * ╔ ╔* * ╔
╔* ╔ ╔* ╔ ╔ *** ╔ ╔ * * ╔
╔* ╔ ╔* ╔ ╔ * * ╔ ╔ * * ╔
╔* ╔ ╔* ╔ ╔** *╔ ╔ * *╔
╔* ╔ ╔********╔ ╔* ╔ ╔* * ╔
╔* ╔ ╔ *╔ ╔ *╔ ╔ ╔
╔* ╔ ╔ *╔ ╔ * ╔ ╔* * * * ╔
╔* ╔ ╔ *╔ ╔ * ╔ ╔ ╔
---------- ---------- ---------- ----------
20 21 22 23
---------- ---------- ---------- ----------
╔* ╔ ╔ * ╔ ╔* * ╔ ╔ **╔
╔ * ╔ ╔* * ╔ ╔ * * ╔ ╔* * ╔
╔ * ╔ ╔ ╔ ╔ *** *╔ ╔ * * ╔
╔ ╔ ╔ ╔ ╔ * * ╔ ╔ ** ╔
╔ * ╔ ╔ * ╔ ╔* * ╔ ╔ ** ╔
╔ * ╔ ╔ * * ╔ ╔ *╔ ╔ * ╔
╔ * ╔ ╔ ╔ ╔ *╔ ╔ *╔
╔ ╔ ╔ ╔ ╔ *╔ ╔ *╔
---------- ---------- ---------- ----------
24 25 26 27
---------- ---------- ---------- ----------
╔***** ╔ ╔* ╔ ╔ * * * *╔ ╔ * ╔
╔ *** * ╔ ╔* ╔ ╔* * * * ╔ ╔ * ╔
╔ * * ╔ ╔ * *╔ ╔ * ╔ ╔ * * * ╔
╔ * ***╔ ╔ ***** ╔ ╔ * ╔ ╔* * * * ╔
╔* ****╔ ╔ * ╔ ╔ * * * *╔ ╔********╔
╔ * ***╔ ╔ * ╔ ╔ * * ╔ ╔ * ╔
╔ * * ╔ ╔ * * ╔ ╔ * ╔ ╔ * ╔
╔ *** *╔ ╔*** **╔ ╔ * ╔ ╔ * ╔
---------- ---------- ---------- ----------
28 29 30 31
---------- ---------- ---------- ----------
╔ * ╔ ╔ *** ***╔ ╔* ******╔ ╔ ╔
╔ * * ╔ ╔* * *╔ ╔ ╔ ╔ * ╔
╔* * ╔ ╔* ****╔ ╔* ******╔ ╔ * * ╔
╔* * ╔ ╔* ****╔ ╔* ******╔ ╔ * * * ╔
╔* * ╔ ╔ *** ***╔ ╔* ** ╔ ╔ * * * *╔
╔* * ╔ ╔* ** ╔ ╔* ** ╔ ╔ * * * ╔
╔ * *╔ ╔***** ╔ ╔* ** ╔ ╔ * * ╔
╔ * ╔ ╔***** ╔ ╔* ** ╔ ╔ * ╔
---------- ---------- ---------- ----------
┴PPENDIX ╔╓ : ╨ROGRAMMING ╬OTES ╔╓-1
╘HIS SECTION CONTAINS SOME INFORMATION ON WRITING PROGRAMS
UNDER THE ╟┼╧╙ OPERATING SYSTEM.
╔T IS IMPORTANT THAT ALL ╟┼╧╙ PROGRAMS HAVE AN INFORMATION
SECTOR. ╔F ONE IS MISSING, THEN ─┼╙╦╘╧╨ WILL NOT ALLOW YOU TO
OPEN THE DISK (╔T NEEDS THE ICON DATA). ╘HEREFORE, TO CREATE ╟┼╧╙
PROGRAMS, IT IS SUGGESTED THAT A SMALL ┬┴╙╔├-┴SSEMBLY LANGUAGE
SHELL BE ADDED TO THE BEGINNING OF A USER'S PROGRAM. ╘HIS SHELL
WILL CONSIST OF A ┬┴╙╔├ ╙┘╙ STATEMENT AND SOME ASSEMBLY CODE TO
DELETE THE FILE (╒SE ─┼╠┼╘┼) AND RESAVE THE FILE AS A ╟┼╧╙ FILE
(╒SE ╙┴╓┼). ┴FTER HAVING DONE THIS, FOR COMPLETENESS, THE INFO
SECTOR THAT IS IN MEMORY SHOULD BE REWRITTEN BECAUSE ╙┴╓┼ WILL
CLEAR THE TEXT FIELD. ┴LSO THE DIRECTORY SHOULD BE MODIFIED TO
INCLUDE THE PROPER TIME AND DATE OF FILE CREATION (╒SE ╠╧╧╦╒╨ AND
╫╥╔╘┼). ┴FTER ALL THIS HAS BEEN DONE, A CALL TO ╔╬╔╘01 AND ╥┼╙╘╥╘
WILL RESTART ╟┼╧╙. ╘HE ├╧╬╓┼╥╘ PROGRAM BY ┬╙╫ DOES NOT CONVERT
ITSELF IN THIS WAY. ╔T IS DESIGNED SO THAT THE INFORMATION SECTOR
IS EXACTLY IN THE LAST DISK SECTOR OF THE FILE. ╔T THEN MODIFIES
THE SECTOR LINKS OF THE LAST TWO SECTORS AND CHANGES THE
DIRECTORY ENTRY FOR CONVERT. ╘HIS LEAVES THE CONVERSION CODE AS
PART OF THE FINAL PROGRAM; THE METHOD OUTLINED ABOVE DOES NOT.
┴NOTHER POSSIBILITY IS TO USE THE SAME METHOD AS ┬╙╫, BUT TO MAKE
THE INFO SECTOR THE FIRST SECTOR AFTER THE INITIAL SHELL. ╘HEN
ONLY 1 SECTOR AND THE DIRECTORY NEED BE MODIFIED, AND SECTORS FOR
THE SHELL PROGRAM CAN BE FREED UP. ╘HIS IS ALL UP TO A USER'S
DISCRETION.
╔F A PROGRAM WITH A ┬┴╙╔├ START (10 ╙┘╙2061), IS TO USE ╟┼╧╙
IT MUST FIRST DISABLE INTERRUPTS (╙┼╔) AND THEN SET THE SYSTEM TO
ALL ╥┴═ BY LOADING LOCATION $01 WITH A VALUE OF $30. ╘HIS IS
IMPORTANT BECAUSE ╟┼╧╙ RESIDES BENEATH THE ├OMMODORE'S ╥╧═S AND
╔/╧ SECTION. ╫HEN ╟┼╧╙ NEEDS TO DO ╔/╧, IT SWITCHES IN THE ╔/╧
PORTS, RELIEVING THE USER OF THIS BURDEN. ┴LSO A CALL TO ╔╬╔╘01
WILL SET THINGS UP SO THAT THE ╟┼╧╙ GRAPHIC SCREEN IS DISPLAYED.
┴PPLICATION PROGRAMS HAVE EVERYTHING SET UP FOR THEM BEFORE
THEY ARE RUN. ╘O TERMINATE AN APPLICATION PROPERLY, A ╩═╨ ╥┼╙╘╥╘
IS MADE AT SOME POINT. ╔F THE PROGRAM IS SIMPLY A MENU, LIKE
├ONVERT, THEN A CALL TO ═┼╬╒ AND AN ╥╘╙ IS SUFFICIENT TO BE THE
MAIN BODY OF CODE. ╧NE OF THE MENU OPTIONS SHOULD MAKE THE JUMP
TO ╥┼╙╘╥╘. ═ORE ON THAT ╥╘╙ LATER.
─ESK ┴CCESSORIES ARE SIMILAR TO APPLICATIONS EXCEPT THAT
THEY HAVE THE MEMORY THAT THEY RESIDE IN SAVED TO DISK FIRST.
╘HIS MEANS THAT THEY SHOULD BE RELATIVELY SHORT PROGRAMS. ╘O
DECIDE WHETHER SOMETHING SHOULD BE A DESK ACCESSORY OR AN
APPLICATION, ONE NEED ONLY DETERMINE WHETHER IT IS NECESSARY TO
BE ABLE TO RUN THE PROGRAM FROM WITHIN ANOTHER APPLICATION (IE.
LIKE RUNNING ╨HOTO ═ANAGER FROM ╟┼╧PAINT). ─ESK ACCESSORIES ALSO
HAVE SOME RESTRICTIONS THAT DO NOT APPLY TO APPLICATIONS. ╔N
ORDER FOR A DESK ACCESSORY TO OPEN A WINDOW, THE WINDOW STORAGE
AREA ╙┴╓┬╒╞ MUST BE SAVED AND LATER RESTORED. ╘HIS IS BECAUSE
╟┼╧╙ SAVED EVERYTHING BEFORE EXECUTING THE DESK ACCESSORY. ╘O
TERMINATE A DESK ACCESSORY, THE VECTOR ╔═┴╔╬ SHOULD BE LOADED
WITH ╠─╙╫┴╨ AND AN ╥╘╙ SHOULD BE MADE. ═ORE ON THE ╥╘╙ IN A
MOMENT. ┴NOTHER MEANS OF TERMINATING A DESK ACCESSORY IS SIMPLY
TO JUMP TO ╠─╙╫┴╨. ╔T IS THE DESK ACCESSORY'S RESPONSIBILITY TO
CLEAN UP AFTER ITSELF AND TO TAKE ITSELF OUT OF MEMORY.
┴PPENDIX ╔╓ : ╨ROGRAMMING ╬OTES ╔╓-2
╘HE ╥╘╙ MENTIONED IN THE PREVIOUS PARAGRAPHS CAUSES ╟┼╧╙ TO
RETURN TO ITS MAIN ROUTINE (═┴╔╬). ╘HIS IS A SIMPLE POLLING LOOP
THAT LOOKS FOR THINGS TO DO. ╚ALF OF ╟┼╧╙ IS INTERRUPT DRIVEN AND
HALF OF IT IS POLLED. ╔T FIRST CHECKS IF THE USER HAS DONE
ANYTHING, IN THE FOLLOWING ORDER:
1) ═OUSE DIRECTION CHANGE, JUMP THROUGH ╔═╙─╔╥
2) ┬UTTON STATUS CHANGE, JUMP THROUGH ╔┬╒╘╧╬
3) ╦EY ENTERED FROM KEYBOARD, JUMP THROUGH ╔├╥╚╔╘
4) ═OUSE OUTSIDE MENU, JUMP THROUGH ╔├╠╙═╬
╘HEN THE MAIN LOOP LOOKS FOR SOMETHING TO DO BY CHECKING THE
RECURRING TIMED EVENTS AND THE DELAYED ROUTINES, EXECUTING THOSE
THAT ARE READY. ╘HE MAIN LOOP THEN MAINTAINS THE MEMORY IMAGE OF
THE TIME AND DATE AND HANDLES THE ALARM CLOCK. ╞INALLY, IF THERE
IS SOMETHING AT ╔═┴╔╬, IT IS CALLED AND THE LOOP STARTS OVER.
╘HE ╔╥╤ INTERRUPT ROUTINE DOES MAINLY ╔/╧ OPERATIONS. ╞IRST
IT DECREMENTS LOCATION $8515 IF IT IS NON-ZERO (COUNTER FOR CLICK
BOX HANDLER). ╘HEN IT SCANS THE KEYBOARD AND ENTERS ANY DEPRESSED
KEYS INTO THE KEYBOARD BUFFER. ╠OCATION $880┴ IS THEN DECREMENTED
IF IT IS NON-ZERO (CHIME COUNTER). ╬EXT, A JUMP THROUGH ╔╟╔╥╤ IS
MADE TO ╔╥╤╥╘╬. ┴FTER WHICH, A JUMP IS MADE THROUGH ╔╒╔╥╤ TO
PROCESS ANY USER ADDITIONS TO THE ╔╥╤ SERVICE ROUTINE. ╘HESE
ADDITIONS SHOULD BE FAIRLY SHORT SO AS NOT TO MAKE THE INTERRUPT
TAKE TOO LONG. ╞INALLY THE STATUS QUO IS RESTORED AND THINGS GO
ON THEIR MERRY WAY.
╘HIS SPECIAL ╨┼╘╙├╔╔ ┴╥├ED VERSION OF THIS ═ANUAL WAS EDITED AND CREATED
BY ┼ARL ╟OLDBERG OF THE ├OMMODORE ╒SERS ╟ROUP OF ╦ANSAS ├ITY. 03-─EC-86