home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / eric.hdv / OBJSRC / OBJSPEC.txt < prev    next >
Text File  |  2020-08-13  |  2KB  |  67 lines

  1.  
  2. USRVECT  JMP ROUTER   
  3.  
  4. INFO PASSED INTO YOU FROM CALLER:
  5. YOUROBJ  FA=YOUR OBJ #
  6. YOURADR  FB,FC=YOUR ADDRESS
  7. CALLOBJ  FF=OBJ THAT CALLED YOU
  8. CALLMSG  FD,FE=MSG PTR TO CALLER'S MESSAGE
  9.  
  10. TO SEND OUT:
  11. RECEIVER FA=OBJ # TO CALL (REQD)
  12. ADROUT   FB,FC=ADDRESS OF OBJECT (FILLED IN BY ROUTER)
  13. MSGOUT   FD,FE=MSG PTR TO SEND TO OBJECT (OPTIONAL)
  14. SENDER   FF=YOUR OBJECT # (REQD)
  15.  
  16.  
  17. OBJ1     LDA #1    -YOUR OBJECT #
  18.          STA FF     
  19.          JSR ROUTER
  20.          DFB 0     -- OBJECT TO CALL
  21.          DFB 0000  -- DUMMY MESSAGE
  22. ; OBJECT 0 NEVER RETURNS, SO NO RTS NEEDED
  23.  
  24. CODEJMP  JMP CODE
  25. SAVEAREA DFB 0,0,0,0,0,0 -- FOR ZP REGISTERS
  26.          DFB 0,0   -- FOR RETURN ADDRESS
  27.  
  28. -- INTERNAL DATA
  29.  
  30. CODE     --- YOU CAN USE DATA IN  FA-FF FOR RELOCATABILITY 
  31.  
  32.          ---TO SEND MSG TO OBJECT:
  33.          ---YOUR OBJ# SHOULD ALREADY BE IN FF
  34.          JSR ROUTER
  35.          DFB OBJ TO CALL
  36.          DW  MESSAGE PTR
  37. ;
  38.          BCC OK
  39.          JSR $FDDA
  40.          BRK
  41. OK       
  42.  
  43.          ---UPON RETURN, REGISTERS WILL HAVE BEEN RESTORED
  44.          ---SO YOU CAN LOOK AT MSG YOU SENT.  CARRY WILL BE SET IF ERROR
  45.          --- AND ACCUMULATOR WILL CONTAIN RETURN CODE
  46.  
  47.  
  48.  
  49.  
  50. ROUTER   PULL CALLER'S ADDRESS, SAVE IT AND SAVE PARMS BEING PASSED
  51.  
  52.          GET OBJ # BEING CALLED
  53.          IF OBJSETUP
  54.                    STORE CALLER'S CODEJMP ADDRESS IN OBJ TABLE 
  55.                    RTS - WILL NOT RETURN TO CALLER
  56.          ELSE
  57.              LOOK UP ADDRESS IN OBJECT TABLE
  58.              IF ZERO 
  59.                    OBJECT NOT DEFINED - RETURN TO CALLER WITH RETURN CODE 1
  60.                    BY PUSHING NEW RETURN ADDRESS ON STACK
  61.              ELSE
  62.                    SAVE CALLERS INFO IN SAVE AREA ALONG WITH RETURN ADDRESS
  63.                    CALL NEW OBJECT
  64.                    READ CALLER'S SAVE AREA & PUSH RETURN ADRS ON STACK
  65.                    RESTORE CALLER'S SAVE AREA
  66.                    RETURN TO CALLER
  67.