home *** CD-ROM | disk | FTP | other *** search
RISC OS BBC BASIC V Source | 1994-09-10 | 1.1 KB | 50 lines |
- Adhesive from BASIC
- Author: George Taylor, george@tardis.ed.ac.uk
- _AdhesivePreInit
- _AssembleAdhesiveHandlers
- AdhesiveInitHandlers,A%
- _AdhesiveInit(n$)
- !AdhesiveHandle<>0
- a 64
- a!0=0
- a!4=a+8
- $(a+8)=
- n$,52)
- ($(a+8))+8)=0
- "Adhesive_Register",a
- !AdhesiveHandle
- _AdhesiveRequest(r)
- !AdhesiveHandle=0
- "Adhesive_Request",!AdhesiveHandle,r
- _AdhesiveClose
- !AdhesiveHandle<>0
- "Adhesive_Deregister",!AdhesiveHandle
- !AdhesiveHandle=0
- _AssembleAdhesiveHandlers
- p,b,P%,exit,restore,oldExit,stack
- b 256
- p=0
- [ OPT p
- .AdhesiveHandle
- EQUD 0
- .AdhesiveInitHandlers
- MOV R0,#11
- ADR R1,exit
- *" SWI "OS_ChangeEnvironment"
- ADR R0,oldExit
- STMIA R0,{R1,R2,R3}
- MOVS pc,R14
- . .exit
- ADR R0,oldExit
- LDMIA R0,{R1,R2,R3}
- MOV R0,#11
- 2" SWI "OS_ChangeEnvironment"
- LDR R0,AdhesiveHandle
- CMP R0,#0
- 5" SWINE "XAdhesive_Deregister"
- SWI "OS_Exit"
- .oldExit
- EQUD 0
- EQUD 0
- EQUD 0
-