home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / canada-remote-systems / c64 / utils / tbasic.arc / TB / SLIDE (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  2.7 KB  |  117 lines

  1. 0 REM SLIDE  (AUG 25/84)       :
  2. 1 :
  3. 2 REM 1 STATEMENTS, 0 FUNCTIONS
  4. 3 :
  5. 4 REM KEYWORD CHARACTERS: 5
  6. 5 :
  7. 6 REM KEYWORD     ROUTINE  LINE  SER #
  8. 7 REM S/SLIDE     SLID     3830   043
  9. 8 :
  10. 9 REM U/CHSSPR (3664/037)
  11. 10 REM U/RASCHK (3676/038)
  12. 11 REM U/DIRECT (3930/044)
  13. 12 REM D/POWERS (3694/039)
  14. 13 :
  15. 14 REM THIS MODULE ALSO CONTAINS ONE
  16. 15 REM LINE FROM SET SPRITES -- 3624
  17. 16 :
  18. 17 REM ===============================
  19. 18 :
  20. 110 .ASC"SLID[197]"
  21. 1106 .WORD DELA-1
  22. 3624 XS3 JMP $B248  ;'ILLEGAL QUANTITY'
  23. 3664 CHKSPR JSR $73 ;SKIP BYTE
  24. 3666 CHS1 JSR $B79E ;EVAL EXPR TO .X
  25. 3668 CPX #8         ;TEST VALID SPRITE
  26. 3670 BCS XS3        ;NO
  27. 3672 RTS
  28. 3674 ;
  29. 3676 RASCHK PHA
  30. 3678 RAS1 LDA $D012 ;GET RASTER POS'N
  31. 3680 SBC $D001,X    ;TEST ABOVE SPRITE
  32. 3682 BCC RAS2       ;YES
  33. 3684 CMP #$2B       ;TEST BELOW SPRITE
  34. 3686 BCC RAS1       ;NO
  35. 3688 RAS2 PLA
  36. 3690 RTS
  37. 3692 ;
  38. 3694 POWERS .BYTE 1,2,4,8,16,32,64,128
  39. 3696 ;
  40. 3830 SLID ;JSR CHS1 ;EVAL SPRITE #
  41. 3832 STX $14        ;SAVE
  42. 3834 JSR $AEFD      ;CHECK COMMA
  43. 3836 JSR DIRECT     ;GET DIRECTION
  44. 3838 PHA            ;PUSH DIRECTION
  45. 3840 LDA $14        ;PUSH SPRITE #
  46. 3842 PHA
  47. 3844 LDA #1         ;SAVE DEFAULT
  48. 3846 STA T3         ;DISPLACEMENT
  49. 3848 JSR $79        ;TEST FOR COMMA
  50. 3850 CMP #","
  51. 3852 BNE SL1        ;NO
  52. 3854 JSR $B79B      ;EVAL DISPLACEMENT
  53. 3856 STX T3         ;AND STORE
  54. 3858 SL1 PLA        ;PULL SPRITE #
  55. 3860 TAY            ;MASK INDEX .Y
  56. 3862 ASL            ;POSITION INDEX .X
  57. 3864 TAX
  58. 3866 PLA            ;PULL DIRECTION
  59. 3868 JSR RASCHK    ;WAIT FOR RASTER
  60. 3870 BNE SL2        ;DIRECTION NOT UP
  61. 3872 LDA $D001,X    ;SUBTRACT DISP
  62. 3874 SBC T3         ;FROM Y-POS'N
  63. 3876 STA $D001,X
  64. 3878 RTS
  65. 3880 SL2 CMP #2     ;TEST DIR DOWN
  66. 3882 BNE SL3        ;NO
  67. 3884 CLC            ;ADD DISP
  68. 3886 LDA $D001,X    ;TO Y-POS'N
  69. 3888 ADC T3
  70. 3890 STA $D001,X
  71. 3892 RTS
  72. 3894 SL3 CMP #1     ;TEST DIR RIGHT
  73. 3896 BNE SL5        ;NO
  74. 3898 LDA $D000,X    ;ADD DISP
  75. 3900 CLC            ;TO Y-POS'N
  76. 3902 ADC T3
  77. 3904 STA $D000,X
  78. 3906 BCC SL6        ;DON'T CROSS SEAM
  79. 3908 SL4 LDA $D010  ;TOGGLE MSB
  80. 3910 EOR POWERS,Y   ;OF X-POS'N
  81. 3912 STA $D010
  82. 3914 RTS
  83. 3916 SL5 LDA $D000,X ;SUBTRACT DISP
  84. 3918 SEC             ;FROM X-POS'N
  85. 3920 SBC T3
  86. 3922 STA $D000,X
  87. 3924 BCC SL4         ;CROSS SEAM
  88. 3926 SL6 RTS
  89. 3928 ;
  90. 3930 DIRECT JSR $AD9E ;EVAL DIRECTION
  91. 3932 BIT $0D        ;TEST EXPR TYPE
  92. 3934 BMI DI1        ;STRING
  93. 3936 JSR $B7A1      ;EVAL NUMERIC TO .X
  94. 3938 CPX #4         ;TEST <4
  95. 3940 BCS DI5        ;NO
  96. 3942 TXA            ;RETURN DIR IN .A
  97. 3944 RTS
  98. 3946 DI1 JSR $B6A6  ;CREATE DESCRIPTOR
  99. 3948 TAY            ;TEST LENGTH ZERO
  100. 3950 BEQ DI3        ;YES
  101. 3952 LDY #0         ;GET FIRST CHAR
  102. 3954 LDA ($22),Y
  103. 3956 LDY #$0F       ;TEST VALID DIR
  104. 3958 DI2 CMP DIRX,Y
  105. 3960 BEQ DI4 ;YES
  106. 3962 DEY
  107. 3964 BPL DI2
  108. 3966 DI3 JMP $AF08 ;'SYNTAX
  109. 3968 DI4 TYA       ;REDUCE TO NUMERIC
  110. 3970 LSR
  111. 3972 LSR
  112. 3974 RTS
  113. 3976 DI5 JMP $B248 ;'ILLEGAL QUANTITY'
  114. 3978 ;
  115. 3980 DIRS .ASC "[213]U[206]N[210]R[197]E[196]D[211]S[204]L[215]W"
  116. 3982 ;
  117.