home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Brotikasten
/
BROTCD01.iso
/
geos
/
geos59.d64
/
page12-25
< prev
next >
Wrap
Text File
|
1995-08-05
|
28KB
|
925 lines
╟┼╧╙ ╦ERNAL ╥OUTINES 1-9
╞UNCTION ╬AME: ┴┬╙16
╨URPOSE: 16 BIT ABSOLUTE VALUE.
├ALL ADDRESS: $├16╞
╔NPUT REQUIREMENTS:
╪ ╘HE ADDRESS OF THE 16 BIT INTEGER.
╧UTPUT:
╪ ╘HE ADDRESS A POSITIVE 16 BIT INTEGER.
─ESCRIPTION: ╘HIS ROUTINE IS ONE OF THE ╟┼╧╙ MATH ROUTINES. ╪
POINTS TO A 16 BIT VALUE WHICH IF FOUND TO BE NEGATIVE, ╬┼╟16 IS
CALLED TO MAKE IT POSITIVE.
╞UNCTION ╬AME: ┴╠╠╧├
╨URPOSE: ┴LLOCATE A BLOCK ON THE DISK.
├ALL ADDRESS: $├292
╔NPUT REQUIREMENTS:
$08 ╘RACK TO START SCANNING FROM.
$09 ╙ECTOR TO START SCANNING FROM.
$8200-$82╞╞ ╘RACK 18 SECTOR 0, ┬┴═.
$849├ ╙KEW FACTOR (DEFAULT IS 8).
╧UTPUT:
$08 ╬EW TRACK NUMBER.
$09 ╬EW SECTOR NUMBER.
┼RRORS: ╙EE APPENDIX ╔.
─ESCRIPTION: ╘HIS ROUTINE EXPECTS THAT THE ┬┴═ IS ALREADY IN
MEMORY. ╔T SCANS THE ┬┴═ STARTING AT A SPECIFIED LOCATION,
LOOKING FOR A FREE SECTOR. ╔F ONE IS FOUND IT IS RETURNED,
OTHERWISE AN ERROR RESULTS. ╘HE SECTOR IS ALLOCATED IN THE ┬┴═,
AND THE ┬┴═ MUST BE UPDATED TO DISK AFTERWARDS IN ORDER FOR THE
SECTOR TO REMAIN ALLOCATED.
╞UNCTION ╬AME: ┴╨╨┼╬─
╨URPOSE: ┴PPEND A NEW CHAIN IN A ╓╠╔╥ FILE.
├ALL ADDRESS: $├289
╔NPUT REQUIREMENTS:
$8496 ├URRENT CHAIN NUMBER.
╧UTPUT:
$8496 ╔NCREMENTED BY 1.
$8497 ╔NCREMENTED BY 1.
╨REPARATORY ROUTINES: ╓╧╨┼╬
┼RRORS: ╙EE APPENDIX ╔.
─ESCRIPTION: ┴ HOLE IS OPENED UP IN THE ╓╠╔╥ SECTOR IMMEDIATELY
FOLLOWING THE CURRENT CHAIN. ╘HE HOLE IS FILLED WITH $00,$╞╞.
╘HIS REPRESENTS A NULL CHAIN. ╘HIS HOLE BECOMES THE CURRENT
CHAIN.
╟┼╧╙ ╦ERNAL ╥OUTINES 1-10
╞UNCTION ╬AME: ┬┴╙╔├
╨URPOSE: ╥ESTART ┬┴╙╔├ WITH OPTIONAL PROGRAM LOAD.
├ALL ADDRESS: $├241
╔NPUT REQUIREMENTS:
$02-$03 ╨OINTER TO 40 CHARACTERS OF TEXT.
$0├-$0─ ╨OINTER TO FILE'S DIRECTORY ENTRY.
$10-$11 ╠OAD ADDRESS.
╨REPARATORY ROUTINES: ╠╧╧╦╒╨
─ESCRIPTION: ╘HE 40 CHARACTERS POINTED TO BY $02-$03 ARE SAVED IN
A BUFFER. ╔F $0├-$0─ IS NON-ZERO, THE FILE IS LOADED INTO MEMORY
AT THE ADDRESS SPECIFIED BY $10-$11. ┬┴╙╔├ IS RESTARTED WITH AN
INTERRUPT VECTOR. ╘HIS INTERRUPT IS SET UP TO GIVE ┬┴╙╔├ A CHANCE
TO START UP. ┴FTER THE TIME HAS ELAPSED, THE 40 CHARACTERS IN THE
BUFFER ARE COPIED TO THE SCREEN AND A ├╥ IS PLACED IN THE
KEYBOARD BUFFER. ╘HE INTERRUPT VECTOR IS THEN REMOVED, BUT THE
╬═╔ VECTOR IS SET UP TO REBOOT ╟┼╧╙. ╘HE REBOOT CODE IS AT $├000-
$├037.
╞UNCTION ╬AME: ┬╠╦├═╨
╨URPOSE: ├OMPARES TWO BLOCKS OF MEMORY FOR A FIXED LENGTH.
├ALL ADDRESS: $├26┼
╔NPUT REQUIREMENTS:
┴ ┬YTE COUNT.
╪ ┴DDRESS OF ZERO PAGE SOURCE POINTER.
┘ ┴DDRESS OF ZERO PAGE DESTINATION POINTER.
╧UTPUT:
┌ FLAG ╙ET ACCORDINGLY.
─ESCRIPTION: ╘HE ╪ AND ┘ REGISTERS POINT TO ZERO PAGE POINTERS. ┴
HAS THE NUMBER OF BYTES TO BE COMPARED (1-255). ╔F ┴ IS ZERO,
THIS ROUTINE WILL COMPARE UP TO AND INCLUDING A ZERO BYTE. ╘HE ┌
FLAG IS SET ACCORDINGLY. ╙EE ╙╘╥├═╨.
╞UNCTION ╬AME: ┬╠╦╞╔╠
╨URPOSE: ╞ILLS A MEMORY REGION WITH A SPECIFIED BYTE.
├ALL ADDRESS: $├17┬
╔NPUT REQUIREMENTS:
$02-$03 ╘HE LENGTH OF THE REGION.
$04-$05 ╘HE ADDRESS OF THE REGION.
$06 ╘HE BYTE TO FILL THE REGION WITH.
─ESCRIPTION: ┴ SIMPLE LOOP FILLS MEMORY WITH THE SPECIFIED BYTE.
╟┼╧╙ ╦ERNAL ╥OUTINES 1-11
╞UNCTION ╬AME: ┬╠╦╞╠2
╨URPOSE: ╔DENTICAL TO ┬╠╦╞╔╠, BUT WITH INLINE DATA.
├ALL ADDRESS: $├1┬4
─ESCRIPTION: ╘HIS ROUTINE TAKES THE INLINE DATA AND SETS
EVERYTHING UP BEFORE CALLING ┬╠╦╞╔╠. ╞OR EXAMPLE:
╩╙╥ ┬╠╦╞╠2
.╫╧╥─ ╠ENGTH OF REGION
.╫╧╥─ ┴DDRESS OF REGION
.┬┘╘┼ ┬YTE TO FILL MEMORY WITH
├ONTROL RETURNS HERE UPON COMPLETION.
╞UNCTION ╬AME: ┬╠╦═╧╓
╨URPOSE: ├OPY A BLOCK OF MEMORY.
├ALL ADDRESS: $├268
╔NPUT REQUIREMENTS:
┴ ┬YTE COUNT.
╪ ┴DDRESS OF ZERO PAGE SOURCE POINTER.
┘ ┴DDRESS OF ZERO PAGE DESTINATION POINTER.
─ESCRIPTION: ╘HE ╪ AND ┘ REGISTERS POINT TO ZERO PAGE POINTERS.
┴ HAS THE NUMBER OF BYTES TO BE TRANSFERRED (1-255). ╔F ┴ IS
ZERO, THIS ROUTINE WILL COPY UP TO AND INCLUDING A ZERO BYTE. ╙EE
╙╘╥├╨┘.
╞UNCTION ╬AME: ┬╠╦╙┼╘
╨URPOSE: ╒SES A TABLE TO SET VARIOUS MEMORY LOCATIONS IN A
UNIFORM MANNER.
├ALL ADDRESS: $├181
╔NPUT REQUIREMENTS:
$02-$03 ┴DDRESS OF A DATA TABLE.
─ESCRIPTION: ╘HIS ROUTINE ALLOWS MANY MEMORY LOCATIONS TO BE
SPECIFIED AND SET IN AN ORDERLY MANNER. ╘HE FORMAT OF THE DATA
TABLE IS AS FOLLOWS:
#BYTES ─ESCRIPTION
2 ┴DDRESS TO STORE VALUES AT.
1 # OF VALUES THAT FOLLOW.
? ╓ALUES TO BE STORED AT THE DESIGNATED MEMORY
REGION.
... ═ORE DEFINITIONS.
2 ┴N ADDRESS OF $0000 ENDS THE TABLE.
╟┼╧╙ ╦ERNAL ╥OUTINES 1-12
╞UNCTION ╬AME: ├┬╧╪
╨URPOSE: ─RAWS A CLICK BOX ON THE SCREEN.
├ALL ADDRESS: $├142
╔NPUT REQUIREMENTS:
$02-$03 ╨OINTER TO THE GRAPHIC DATA.
$04 ├OLUMN IN CHARACTERS.
$05 ╘HE ROW IN PIXELS.
$06 ╘HE WIDTH IN BYTES.
$07 ╘HE HEIGHT IN PIXELS.
─ESCRIPTION: ╘HIS ROUTINE DRAWS A CLICK BOX ON THE SCREEN. ┴
CLICK BOX IS A BOX LIKE ╧K, ╧PEN, ETC. ╘HESE BOXES ARE GENERALLY
PART OF A WINDOW DESCRIPTION. ╘HE GRAPHIC DATA IS IN A CODED
FORMAT. ╘HIS FORMAT CONSISTS OF A CODE BYTE FOLLOWED BY 1 OR MORE
DATA BYTES.
1) ├ODE BYTES LESS THAN 128 MEAN THAT THE FOLLOWING BYTE IS
TO BE REPEATED THAT MANY TIMES.
2) ├ODE BYTES RANGING FROM 128 TO 219 MEAN THAT IF 128 IS
SUBTRACTED FROM THE CODE BYTE, THEN THE RESULT IS THE
NUMBER OF DATA BYTES THAT FOLLOW.
3) ├ODE BYTES RANGING FROM 220 TO 225 ARE SPECIAL. ╞IRST 219
IS SUBTRACTED FROM THE CODE BYTE, THE RESULT IS THE
NUMBER OF BYTES IN THE PATTERN. ╞OLLOWING THIS CODE BYTE
IS A REPETITION COUNT FOR THE PATTERN. ╞OLLOWING THIS ARE
THE BYTES THAT CONSTITUTE THE PATTERN. ╘HESE COULD
INCLUDE EITHER OF THE PREVIOUS TWO CODE TYPES.
╞UNCTION ╬AME: ├┬╧╪2
╨URPOSE: ╔DENTICAL TO ├┬╧╪, BUT WITH INLINE DATA.
├ALL ADDRESS: $├1┴┬
─ESCRIPTION: ╘HIS ROUTINE TAKES A CLICK BOX DESCRIPTOR FROM
INLINE DATA AND DRAWS IT. ╘HE INLINE DATA DOES ╬╧╘ INCLUDE THE
PROCESSING VECTOR, IE.
╩╙╥ ─╥╫├┬2
.╫╧╥─ ADDRESS OF GRAPHIC IMAGE
.┬┘╘┼ START COLUMN IN BYTES
.┬┘╘┼ START MARGIN IN PIXELS
.┬┘╘┼ WIDTH OF BOX IN BYTES
.┬┘╘