home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
eric.hdv
/
OBJSRC
/
OBJSPEC.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
2KB
|
67 lines
USRVECT JMP ROUTER
INFO PASSED INTO YOU FROM CALLER:
YOUROBJ FA=YOUR OBJ #
YOURADR FB,FC=YOUR ADDRESS
CALLOBJ FF=OBJ THAT CALLED YOU
CALLMSG FD,FE=MSG PTR TO CALLER'S MESSAGE
TO SEND OUT:
RECEIVER FA=OBJ # TO CALL (REQD)
ADROUT FB,FC=ADDRESS OF OBJECT (FILLED IN BY ROUTER)
MSGOUT FD,FE=MSG PTR TO SEND TO OBJECT (OPTIONAL)
SENDER FF=YOUR OBJECT # (REQD)
OBJ1 LDA #1 -YOUR OBJECT #
STA FF
JSR ROUTER
DFB 0 -- OBJECT TO CALL
DFB 0000 -- DUMMY MESSAGE
; OBJECT 0 NEVER RETURNS, SO NO RTS NEEDED
CODEJMP JMP CODE
SAVEAREA DFB 0,0,0,0,0,0 -- FOR ZP REGISTERS
DFB 0,0 -- FOR RETURN ADDRESS
-- INTERNAL DATA
CODE --- YOU CAN USE DATA IN FA-FF FOR RELOCATABILITY
---TO SEND MSG TO OBJECT:
---YOUR OBJ# SHOULD ALREADY BE IN FF
JSR ROUTER
DFB OBJ TO CALL
DW MESSAGE PTR
;
BCC OK
JSR $FDDA
BRK
OK
---UPON RETURN, REGISTERS WILL HAVE BEEN RESTORED
---SO YOU CAN LOOK AT MSG YOU SENT. CARRY WILL BE SET IF ERROR
--- AND ACCUMULATOR WILL CONTAIN RETURN CODE
ROUTER PULL CALLER'S ADDRESS, SAVE IT AND SAVE PARMS BEING PASSED
GET OBJ # BEING CALLED
IF OBJSETUP
STORE CALLER'S CODEJMP ADDRESS IN OBJ TABLE
RTS - WILL NOT RETURN TO CALLER
ELSE
LOOK UP ADDRESS IN OBJECT TABLE
IF ZERO
OBJECT NOT DEFINED - RETURN TO CALLER WITH RETURN CODE 1
BY PUSHING NEW RETURN ADDRESS ON STACK
ELSE
SAVE CALLERS INFO IN SAVE AREA ALONG WITH RETURN ADDRESS
CALL NEW OBJECT
READ CALLER'S SAVE AREA & PUSH RETURN ADRS ON STACK
RESTORE CALLER'S SAVE AREA
RETURN TO CALLER