home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
program
/
books
/
68k_book
/
arp_src
/
prg_5ap.s
< prev
next >
Wrap
Text File
|
1985-11-20
|
3KB
|
80 lines
; Program Name: PRG_5AP.S
; Version 1.003
; Assembly Instructions:
; Assemble in PC-relative mode and save with a TOS extension.
; Execution Note:
; This program invokes custom traps which must be installed by
; TRAPS.PRG prior to its execution.
; Program Function:
; This program illustrates the use of custom traps #3, #6 and #8.
; If the program is executed from the desktop, trap #8 will execute the
; wait_for_keypress algorithm, then, when a key is pressed it will execute
; GEMDOS function 0.
; If, instead, this program is executed by typing its name on
; SPEEDTST.TTP's input parameter line, trap #8 will not execute the
; wait_for_keypress algorithm, but it will immediately execute GEMDOS
; function $4C.
; Trap #3 returns, in D0, the value of the system clock as it is
; immediately after this program has been loaded. The value in D0 is not
; corrupted before trap #6 is invoked, therefore, it is still valid when
; the trap #6 routine begins to execute. Trap #6 saves the "after-load"
; value of the system clock in its own local variable, where it is available
; for processing during the execution of trap #8.
; Trap #6 also calculates the memory occupied by this program and releases
; the memory not occupied by this program to the operating system.
fetch_load_time:
trap #3 ; Returns value of system clock in D0.
release_excess_memory: ; Also stores after-load time in TRAPS bss.
lea program_end, a0 ; Put "end of program" address in A0.
movea.l 4(a7), a1 ; Put "basepage" address in A1.
trap #6 ; Calculate program size and release memory.
waste_time:
move.l #$1, d0
outer_loop:
move.l #$FDE8, d1
inner_loop:
move.l #$FDE8, d2
dbra d1, inner_loop
dbra d0, outer_loop
lea heading, a0
bsr.s print_string
lea string, a0
bsr.s print_string
trap #8 ; Terminate.
print_string:
pea (a0)
move.w #9, -(sp)
trap #1
addq.l #6, sp
rts
data
heading: dc.b 'PRG_5AP.TOS Execution Results',$D,$A,$D,$A,0
string: dc.b ' When executed from the desktop, this program will print '
dc.b 'this string on the',$D,$A
dc.b ' video screen and pause for a keypress. But, when this '
dc.b 'program is spawned by',$D,$A
dc.b ' SPEED_1, SPEED_2, SPEED_3 or SPEEDTST, the string will '
dc.b 'be stored in a file ',$D,$A
dc.b ' named PRG_5AP.DAT and the program will not pause for a '
dc.b ' keypress.',$D,$A,0
bss
align
program_end: ds.l 0
end ; Assembler pseudo-op.