home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / canada-remote-systems / cpower / peekpoke.asm < prev    next >
Assembly Source File  |  2019-04-13  |  4KB  |  129 lines

  1. ;
  2. ;
  3. ;  PEEKPOKE128.A
  4. ;
  5. ;   A FIX FOR THE ╨OWER ├ PEEK.OBJ FILE
  6. ;   THIS FIX HAS TO DO WITH THE RELOCATED ZERO PAGE ON THE 128
  7. ;   THE ORIGINAL VERSION ON THE LIBRARY DISKS FAILED TO RESTORE 
  8. ;   IT CORRECTLY ON EXIT. THIS LED TO UNPREDICTABLE RESULTS WHEN USED
  9. ;   THE FIX WAS SIMPLE WHEN I FOUND IT JUST A LDX #7 ┬┼╞╧╥┼ LDA #13 
  10. ;   JSR C$MEM.
  11. ;   
  12. ;   C$MEM IS A ROUTINE PLACED AT $0135 BY THE C$START MODULE ON ENTERY
  13. ;   TO A PROGRAM AND HAS TWO RELATED ROUTINES AT $0124 AND $0148 C$MEM
  14. ;   IS USED TO ALTER PAGE-ZERO POINTERS AND $0124(C$JSRñFAR) IS A 
  15. ;   DISPATCH POINT FOR ╙┘╙() ╨┼┼╦() ╨╧╦┼() AND C$KERNOUT (IN KERNAL.OBJ)
  16. ;   AND BY STUDING THIS AND THE ABOVE IT CAN BEE USED BY CUSTOM ML/├
  17. ;   FUNCTIONS.
  18. ;
  19. ;   ─ENNY FIGUERRES  12/22/87  ╙TOCKTON ├A  08:44:00 ╨M
  20. ;       ═ERRY ╪-═AS ╚APPY ╬EW ┘EAR!
  21. ;
  22. ;
  23. ;--------------------
  24. C$PARMSIZE   = $00FB
  25. C$PARAMPTR   = $0086
  26. C$LOCAL      = $00A0
  27. C$PARMS      = $0400 ;----- ╬╧╘┼ WAS $033├ ON ├=64
  28. C$JSRñFAR    = $0124 ;      BANK TO BANK DISPATCH
  29. C$MEM        = $0135 ;      ══╒ ACCESS  ╪ = ══╒ ╥EG# (STA ══╒ñ╥EGS,X)
  30. ╙╘┴╓┼├       = $02B9 ;ññññññFOR STAñFAR
  31. ┴ñ╥EG        = $0006
  32. ╪ñ╥EG        = $0007
  33. ┘ñ╥EG        = $0008
  34. ┬ANK         = $0002
  35. ╙ñ╥EG        = $0005
  36. ╨├ñ╚IGH      = $0003
  37. ╨├ñ╠OW       = $0004
  38. ══╒ñ╥EGS     = $D500
  39. ══╒ñ├╥       = $FF00
  40. ;
  41. ;
  42. ;
  43.          .REF C$FUNCTñINIT
  44.          .DEF PEEK, POKE
  45. ;                        C =  ╨┼┼╦(BANK,ADDRR)
  46. PEEK     JSR C$FUNCTñINIT   ; PICK UP ┴RGñ╙TACK ╨TR
  47.          STX C$LOCAL    
  48.          TXA 
  49.          PHA                ; STASH PTR ON STACK
  50.          LDX #$07           ; ══╒ ╨AGE ┌ERO ╨TR ╥EGISTER -----FIX
  51.          LDA #$00           ; ══╒ ╨TR ╓ALUE 
  52.          JSR C$MEM          ; SWAP EM
  53.          PLA                ; ╨╧╨ ┴RGñ╨TR
  54.          TAX                ; MOVE TO ╪
  55.          LDA C$PARMS+2,╪    ; TARGET ADDRESS LOWBYTE
  56.          STA C$PARMSIZE+1   
  57.          LDA C$PARMS+3,╪    ; HIBYTE
  58.          STA C$PARMSIZE+2
  59.          LDA #$0F           ; SET BANK15 
  60.          STA ┬ANK
  61.          LDA #$FF
  62.          STA ╨├ñ╚IGH
  63.          LDA #$74
  64.          STA ╨├ñ╠OW         ; CALL $╞╞74 - ╠─┴ñ╞┴╥(C$PARAMSIZE),Y    
  65.          PHP 
  66.          PLA 
  67.          STA ╙ñ╥EG
  68.          LDA #$FC
  69.          STA ┴ñ╥EG
  70.          LDA C$PARMS,╪      ; GET BANK TO LOAD BYTE FROM
  71.          STA ╪ñ╥EG
  72.          LDA #$00
  73.          STA ┘ñ╥EG          ; SET ┘ TO ┌┼╥╧ SEE ABOVE ^
  74.          JSR C$JSRñFAR      ; CALL ╩╙╥ñ╞┴╥ ╔╬─ñ╞┼╘ (  ^ )
  75.          LDA ┴ñ╥EG          ; GET RETURNED VALUE
  76.          PHA                ; ╨╒╙╚ ON STACK
  77.          LDX #$07           ; ╥┼╙╘╧╥┼ ┌ERO ╨AGE -------FIX
  78.          LDA #$13           ; FOR ╨OWER ├
  79.          JSR C$MEM          ; SWAP
  80.          PLA                ; ╨╧╨ VALUE
  81.          LDX C$LOCAL        ; GET ╥┼╘╒╥╬ PARAMITER 
  82.          STA C$PARMS,╪      ; 
  83.          LDA #$00           ; ALWAYS SET HIBYTE 0
  84.          STA C$PARMS+1,╪
  85.          RTS                ; RETURN
  86. ;
  87. ;     ╬╧╘┼:  RETURN VALUE IS PLACED AT SAME LOCATION AS FUNCTION 
  88. ;            ARGUMENT#1. (?)
  89. ;
  90.  
  91. ;
  92. ;
  93. ;
  94. ;                         ╨╧╦┼(BANK,ADDRESS,VALUE)
  95. POKE     JSR C$FUNCTñINIT   ; SEE COMMANTS ABOVE FOR DETAILS
  96.          STX C$LOCAL
  97.          TXA 
  98.          PHA 
  99.          LDX #$07  ;-----FIX
  100.          LDA #$00
  101.          JSR C$MEM
  102.          PLA 
  103.          TAX 
  104.          LDA C$PARMS+2,╪
  105.          STA C$PARMSIZE+1
  106.          LDA C$PARMS+3,╪
  107.          STA C$PARMSIZE+2
  108.          LDA #$FC
  109.          STA ╙╘┴╓┼├
  110.          LDA #$0F
  111.          STA ┬ANK
  112.          LDA #$FF
  113.          STA ╨├ñ╚IGH
  114.          LDA #$77
  115.          STA ╨├ñ╠OW
  116.          PHP 
  117.          PLA 
  118.          STA ╙ñ╥EG
  119.          LDA C$PARMS+4,╪
  120.          STA ┴ñ╥EG
  121.          LDA C$PARMS,╪
  122.          STA ╪ñ╥EG
  123.          LDA #$00
  124.          STA ┘ñ╥EG
  125.          JSR C$JSRñFAR
  126.          LDX #$07     ;---------FIX
  127.          LDA #$13
  128.          JMP C$MEM
  129.