home *** CD-ROM | disk | FTP | other *** search
/ ANG-Pokey Magazine 18 / ANG_Pokey_Magazine_18_1994_04_ANG_Software_nl_Side_B.atr / abra14.src < prev    next >
Text File  |  2023-02-26  |  3KB  |  196 lines

  1. **************************************
  2. *
  3. * TWO TASKS RUNNING INDEPENDANTLY
  4. *
  5. * TWOTASK.SRC
  6. *
  7. * 22 FEB 93
  8. *
  9. * YEB HAVINGA
  10. *
  11. **************************************
  12. *
  13. * WATCH THE FOLLOWING:
  14. * - $C0 IN NMIEN ONLY AFTER
  15. * INITIALISATION.
  16. * - THE TWO CONTEXT SWITCHES
  17. *
  18. **************************************
  19. *
  20. * 25 03 94 : THIS PROGRAM
  21. * ILLUSTRATES A SIMPLE CONTEXT
  22. * SWITCH. EVERYTHING WAS JUST
  23. * A TRY-OUT AND THEREFORE THE
  24. * WHOLE IS QUITE STATIC:
  25. *
  26. * - THERE ARE TWO CONTEXT SWITCHES,
  27. * INSTEAD OF ONE
  28. * - THE STACK IS NOT SAVED WITH
  29. * THE CONTEXT SWITCH.
  30. * - TASK 2 IS A SIMPLE COLOR THING
  31. * AND TASK 1 IS THE CALLING PROGRAM
  32. * - NMI'S ARE USED FOR INTERRUPT
  33. * GENERATION
  34. *
  35. *
  36. * THE FOLLOWING VARIABLES ARE
  37. * USED TO SAVE REGISTERS AND
  38. * STACKSHIT :
  39. * T-A  : accumulator
  40. * T-X  : X register
  41. * T-Y  : Y register
  42. * T-P  : statusregister
  43. * T-PC : program counter
  44. *  ^
  45. *  - is  1 or 2
  46.  
  47.     ORG $A800
  48.  
  49. *
  50. * INITIALISATION :
  51. * THE SCREEN FOR THE INTERRUPTS
  52.  
  53.     LDA #0
  54.     STA 559
  55.  
  56. * !!! 130 XE+ USERS !!!
  57. * NOTE THAT IF YOU WANT TO CONVERT
  58. * THIS SOURCE TO THE 130XE+ ASSEMBLER,
  59. * THE DL IS SOMEWHERE AT $28XX
  60.  
  61.     LDA #$82
  62.     STA $BC30
  63.     LDA #$82
  64.     STA $BC31
  65.  
  66. * THE CONTEXT SWITCHER WHICH
  67. * ACTIVATES TASK 2 AT THE NEXT
  68. * INTERRUPT
  69.  
  70.     LDA #TASK2:L
  71.     STA $200
  72.     LDA #TASK2:H
  73.     STA $201
  74.  
  75. * INITIALISATION OF TASK 2 :
  76. * DATA FROM THE CALLING PROGRAM
  77. * ARE PUT INTO T2**
  78.  
  79.     LDA #0
  80.     STA T2A        ; A
  81.     STA T2X        ; X
  82.     STA T2Y        ; Y
  83.     STA T2P        ; status reg
  84.     PLA
  85.     CLC
  86.     ADC #1
  87.     STA T2PC        ; PC lo
  88.     PLA
  89.     ADC #0
  90.     STA T2PC+1    ; PC hi
  91.  
  92. * WAIT FOR VERTICAL BLANK
  93. * HE! WE'RE SITTING HERE WITH
  94. * TWO DLI'S AND I WANT TO BE
  95. * SURE THAT THE CALLING PROGRAM
  96. * GETS THE FEW SCANLINES INSTEAD OF
  97. * THE COLOR THING
  98.  
  99.     LDA #$FF
  100.     STA 20
  101. WAIT    LDA 20
  102.     BNE WAIT
  103.  
  104. * AND GO WITH THAT BANANA
  105. * WE START THE INTERRUPTS AND
  106. * TASK 1, THE COLOR THING WILL
  107. * CONTINUE QUITELY
  108.  
  109.     LDA #$C0
  110.     STA $D40E
  111.  
  112.     LDA #34
  113.     STA 559
  114.  
  115.     JMP PROC1
  116.  
  117. *-----------------------------
  118. * PROCESSING TASK 1,
  119. * THE COLOR THING
  120.  
  121. PROC1    LDA $D20A
  122.     STA $D01A
  123.     JMP PROC1
  124.  
  125. *----------------------------
  126. * CONTEXT SWITCH TO TASK 2,
  127. * THE CALLING PROGRAM
  128. * (for comment : 'TASK1')
  129.  
  130. TASK2    STA T1A
  131.     STY T1Y
  132.     STX T1X
  133.     PLA
  134.     STA T1P
  135.     PLA
  136.     STA T1PC
  137.     PLA
  138.     STA T1PC+1
  139.  
  140.     LDA #TASK1:L
  141.     STA $200
  142.     LDA #TASK1:H
  143.     STA $201
  144.  
  145.     LDA T2P
  146.     PHA
  147.     LDA T2A
  148.     LDY T2Y
  149.     LDX T2X
  150.     PLP
  151.     JMP (T2PC)
  152.  
  153.  
  154. * ----------------------------
  155. * CONTEXT SWITCH TO TASK 1
  156.  
  157. TASK1    STA T2A       * SAVE INFO
  158.     STY T2Y         * FROM PREVIOUS
  159.     STX T2X       * TASK
  160.     PLA
  161.     STA T2P
  162.     PLA
  163.     STA T2PC
  164.     PLA
  165.     STA T2PC+1
  166.  
  167.     LDA #TASK2:L  * NEXT INT
  168.     STA $200      * TO BEGIN
  169.     LDA #TASK2:H  * OTHER TASK
  170.     STA $201
  171.  
  172.     LDA T1P       * GET INFO
  173.     PHA           * CURRENT TASK
  174.     LDA T1A
  175.     LDY T1Y
  176.     LDX T1X
  177.     PLP
  178.     JMP (T1PC)   * AND CONTINUE..
  179.  
  180.  
  181. * áשIJפחIJאכדצáקנáצIJשדáקIJציצקרההá
  182.  
  183. T1A    DFB 0
  184. T1Y    DFB 0
  185. T1X    DFB 0
  186. T1P    DFB 0
  187. T1PC     DFW 0
  188.  
  189. T2A    DFB 0
  190. T2Y    DFB 0
  191. T2X    DFB 0
  192. T2P    DFB 0
  193. T2PC     DFW 0
  194. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯