home *** CD-ROM | disk | FTP | other *** search
- 0 REM SLIDE (AUG 25/84) :
- 1 :
- 2 REM 1 STATEMENTS, 0 FUNCTIONS
- 3 :
- 4 REM KEYWORD CHARACTERS: 5
- 5 :
- 6 REM KEYWORD ROUTINE LINE SER #
- 7 REM S/SLIDE SLID 3830 043
- 8 :
- 9 REM U/CHSSPR (3664/037)
- 10 REM U/RASCHK (3676/038)
- 11 REM U/DIRECT (3930/044)
- 12 REM D/POWERS (3694/039)
- 13 :
- 14 REM THIS MODULE ALSO CONTAINS ONE
- 15 REM LINE FROM SET SPRITES -- 3624
- 16 :
- 17 REM ===============================
- 18 :
- 110 .ASC"SLID[197]"
- 1106 .WORD DELA-1
- 3624 XS3 JMP $B248 ;'ILLEGAL QUANTITY'
- 3664 CHKSPR JSR $73 ;SKIP BYTE
- 3666 CHS1 JSR $B79E ;EVAL EXPR TO .X
- 3668 CPX #8 ;TEST VALID SPRITE
- 3670 BCS XS3 ;NO
- 3672 RTS
- 3674 ;
- 3676 RASCHK PHA
- 3678 RAS1 LDA $D012 ;GET RASTER POS'N
- 3680 SBC $D001,X ;TEST ABOVE SPRITE
- 3682 BCC RAS2 ;YES
- 3684 CMP #$2B ;TEST BELOW SPRITE
- 3686 BCC RAS1 ;NO
- 3688 RAS2 PLA
- 3690 RTS
- 3692 ;
- 3694 POWERS .BYTE 1,2,4,8,16,32,64,128
- 3696 ;
- 3830 SLID ;JSR CHS1 ;EVAL SPRITE #
- 3832 STX $14 ;SAVE
- 3834 JSR $AEFD ;CHECK COMMA
- 3836 JSR DIRECT ;GET DIRECTION
- 3838 PHA ;PUSH DIRECTION
- 3840 LDA $14 ;PUSH SPRITE #
- 3842 PHA
- 3844 LDA #1 ;SAVE DEFAULT
- 3846 STA T3 ;DISPLACEMENT
- 3848 JSR $79 ;TEST FOR COMMA
- 3850 CMP #","
- 3852 BNE SL1 ;NO
- 3854 JSR $B79B ;EVAL DISPLACEMENT
- 3856 STX T3 ;AND STORE
- 3858 SL1 PLA ;PULL SPRITE #
- 3860 TAY ;MASK INDEX .Y
- 3862 ASL ;POSITION INDEX .X
- 3864 TAX
- 3866 PLA ;PULL DIRECTION
- 3868 JSR RASCHK ;WAIT FOR RASTER
- 3870 BNE SL2 ;DIRECTION NOT UP
- 3872 LDA $D001,X ;SUBTRACT DISP
- 3874 SBC T3 ;FROM Y-POS'N
- 3876 STA $D001,X
- 3878 RTS
- 3880 SL2 CMP #2 ;TEST DIR DOWN
- 3882 BNE SL3 ;NO
- 3884 CLC ;ADD DISP
- 3886 LDA $D001,X ;TO Y-POS'N
- 3888 ADC T3
- 3890 STA $D001,X
- 3892 RTS
- 3894 SL3 CMP #1 ;TEST DIR RIGHT
- 3896 BNE SL5 ;NO
- 3898 LDA $D000,X ;ADD DISP
- 3900 CLC ;TO Y-POS'N
- 3902 ADC T3
- 3904 STA $D000,X
- 3906 BCC SL6 ;DON'T CROSS SEAM
- 3908 SL4 LDA $D010 ;TOGGLE MSB
- 3910 EOR POWERS,Y ;OF X-POS'N
- 3912 STA $D010
- 3914 RTS
- 3916 SL5 LDA $D000,X ;SUBTRACT DISP
- 3918 SEC ;FROM X-POS'N
- 3920 SBC T3
- 3922 STA $D000,X
- 3924 BCC SL4 ;CROSS SEAM
- 3926 SL6 RTS
- 3928 ;
- 3930 DIRECT JSR $AD9E ;EVAL DIRECTION
- 3932 BIT $0D ;TEST EXPR TYPE
- 3934 BMI DI1 ;STRING
- 3936 JSR $B7A1 ;EVAL NUMERIC TO .X
- 3938 CPX #4 ;TEST <4
- 3940 BCS DI5 ;NO
- 3942 TXA ;RETURN DIR IN .A
- 3944 RTS
- 3946 DI1 JSR $B6A6 ;CREATE DESCRIPTOR
- 3948 TAY ;TEST LENGTH ZERO
- 3950 BEQ DI3 ;YES
- 3952 LDY #0 ;GET FIRST CHAR
- 3954 LDA ($22),Y
- 3956 LDY #$0F ;TEST VALID DIR
- 3958 DI2 CMP DIRX,Y
- 3960 BEQ DI4 ;YES
- 3962 DEY
- 3964 BPL DI2
- 3966 DI3 JMP $AF08 ;'SYNTAX
- 3968 DI4 TYA ;REDUCE TO NUMERIC
- 3970 LSR
- 3972 LSR
- 3974 RTS
- 3976 DI5 JMP $B248 ;'ILLEGAL QUANTITY'
- 3978 ;
- 3980 DIRS .ASC "[213]U[206]N[210]R[197]E[196]D[211]S[204]L[215]W"
- 3982 ;
-