Jump to content

RedBaron

New Members
  • Content Count

    3
  • Joined

  • Last visited

Community Reputation

3 Neutral

About RedBaron

  • Rank
    Combat Commando
  • Birthday 12/08/1951

Contact / Social Media

Profile Information

  • Location
    Tucson, AZ

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I am trying to covert this simple program from Extended Basic into Assembly Language.  As is noted in the program I cannot figure out how to check the characters on the screen for a coincidence with a Sprite moving along.  I can do this using Extended Basic but the code to do this in Assembly alludes me.  Any help would be appreciated.   Thank you Ricki

     

    100 !*************
    110 !* BALL MAZE *
    120 !*************
    130 !This program will work with any screen created by the user
    140 !By Ricki Baron
    150 !RedBaron Software
    160 !4/26/2020 - 4/27/2020
    170 ! How do I do this in Assembly Language using a sprite to move throught the mazeand not go through the walls?
    180 X=24 :: Y=8
    190 XX=X/8
    200 YY=Y/8
    210 ! X=UP / DOWN
    220 ! Y=LEFT / RIGHT
    230 CALL CLEAR
    240 DISPLAY AT(1,10):"BALL MAZE"
    250 A$="3C4242818142423C"
    260 CALL CHAR(33,"FFFFFFFFFFFFFFFF")
    270 CALL CHAR(34,A$)
    280 CALL VCHAR(4,2,83)
    290 CALL HCHAR(3,1,33,32)
    300 CALL VCHAR(4,1,33,18)
    310 CALL HCHAR(22,1,33,32)
    320 CALL VCHAR(4,32,33,18)
    330 CALL VCHAR(4,8,33,6)
    340 CALL HCHAR(10,8,33,6)
    350 CALL VCHAR(11,11,33,10)
    360 CALL VCHAR(13,8,33,9)
    370 CALL VCHAR(21,31,70)
    380 DISPLAY AT(23,1):"USE THE ARROW KEYS TO MOVE"
    390 DISPLAY AT(24,3):"ANY OTHER KEY TO QUIT"
    400 CALL MAGNIFY(1)
    410 CALL SPRITE(#1,34,16,X+1,Y+1)
    420 CALL PATTERN(#1,34)
    430 CALL KEY(0,K,S)
    440 IF K=8 THEN 500
    450 IF K=9 THEN 670
    460 IF K=11 THEN 850
    470 IF K=10 THEN 1030
    480 IF S<>0 THEN 1220
    490 GOTO 430
    500 !************
    510 !* LEFT - S *
    520 !************
    530 XX=X/8
    540 XX=XX+1
    550 IF XX<1 THEN XX=1
    560 IF XX>24 THEN XX=24
    570 YY=Y/8
    580 IF YY<1 THEN YY=1
    590 IF Z=70 THEN 1250
    600 IF YY>32 THEN YY=32
    610 CALL GCHAR(XX,YY,Z)
    620 IF Z<>32 THEN 430
    630 Y=Y-8
    640 CALL LOCATE(#1,X+1,Y+1)
    650 CALL SCREEN(8)
    660 GOTO 430
    670 !*************
    680 !* RIGHT - D *
    690 !*************
    700 XX=X/8
    710 XX=XX+1
    720 IF XX<1 THEN XX=1
    730 IF XX>24 THEN XX=24
    740 YY=Y/8
    750 YY=YY+2
    760 IF YY<1 THEN YY=1
    770 IF YY>32 THEN YY=32
    780 CALL GCHAR(XX,YY,Z)
    790 IF Z=70 THEN 1250
    800 IF Z<>32 THEN 430
    810 Y=Y+8
    820 CALL LOCATE(#1,X+1,Y+1)
    830 CALL SCREEN(7)
    840 GOTO 430
    850 !**********
    860 !* UP - E *
    870 !**********
    880 XX=(X/8)
    890 !XX=XX-1
    900 IF XX<1 THEN XX=1
    910 IF XX>24 THEN XX=24
    920 YY=Y/8
    930 YY=YY+1
    940 IF YY<1 THEN YY=1
    950 IF YY>32 THEN YY=32
    960 CALL GCHAR(XX,YY,Z)
    970 IF Z=70 THEN 1250
    980 IF Z<>32 THEN 430
    990 X=X-8
    1000 CALL LOCATE(#1,X+1,Y+1)
    1010 CALL SCREEN(4)
    1020 GOTO 430
    1030 !************
    1040 !* DOWN - X *
    1050 !************
    1060 XX=X/8
    1070 XX=XX+2
    1080 IF XX<1 THEN XX=1
    1090 IF XX>24 THEN XX=24
    1100 YY=Y/8
    1110 YY=YY+1
    1120 IF YY<1 THEN YY=1
    1130 IF YY>32 THEN YY=32
    1140 CALL GCHAR(XX,YY,Z)
    1150 IF Z=70 THEN 1250
    1160 IF Z<>32 THEN 430
    1170 X=X+8
    1180 CALL LOCATE(#1,X+1,Y+1)
    1190 CALL SCREEN(5)
    1200 GOTO 430
    1210 !********
    1220 !* EXIT *
    1230 !********
    1240 STOP
    1250 !******************
    1260 !* FINISHED LEVEL *
    1270 !******************
    1280 CALL SCREEN(16)
    1290 DISPLAY AT(13,3):"YOU FINISHED LEVEL 1"
    1300 GOTO 430

     

    1. RedBaron

      RedBaron

      I am also including the TI994a assembly code that I have so far.

       

      ****************************
      *                          *
      * BALL MAZE By Ricki Baron *
      *                          *
      * 5/1/2020                 *
      *                          *
      * BMS = SOURCE CODE        *
      * BMO = OBJECT CODE        *
      *                          *
      ****************************
             DEF  START
             REF  VSBW,VSBR,VMBW,VMBR,KSCAN,VWTR
       
      KEYADR EQU  >8374
      KEY    EQU  >8375
      STATUS EQU  >837C
       
      ENTER  BYTE >0D
      SPACE  BYTE >20
      QKEY   BYTE >12
       
      SAVRTN BSS  >2
      WS     BSS  >20
       
      UP     BYTE >0B
      DN     BYTE >0A
      LT     BYTE >08
      RT     BYTE >09
       
      X      DATA 24
      Y      DATA 8
      XX     DATA 0
      YY     DATA 0
      EIGHT  DATA 8
       
      CHAR33 DATA >FFFF,>FFFF,>FFFF,>FFFF
      A$     DATA >3C42,>4281,>8142,>423C
       
      COLOR  DATA >1717,>1717,>1717,>1717
             DATA >1717,>1717,>1717,>1717
      COLOR1 DATA >1616,>1616,>1616,>1616
             DATA >1616,>1616,>1616,>1616
      COLOR2 DATA >1313,>1313,>1313,>1313
             DATA >1313,>1313,>1313,>1313
      COLOR3 DATA >1414,>1414,>1414,>1414
             DATA >1414,>1414,>1414,>1414
       
             EVEN
       
      *****************
      * START PROGRAM *
      *****************
      START  MOV  R11,@SAVRTN
             LWPI WS
       
      * RedBaron Software
      * How do I do this in Assembly Language using a sprite to move throught the ?
      *  X=24::Y=8
      *  XX=X/8
      *  YY=Y/8
      *  ! X=UP / DOWN
      *  ! Y=LEFT / RIGHT
      *  CALL CLEAR
      *  DISPLAY AT(1,10):"BALL MAZE"
      *  A$="3C4242818142423C"
       
      *************
      * CALL CHAR *
      *************
             LI   R0,>0908     CHAR(33)
             LI   R1,CHAR33
             LI   R2,16
             BLWP @VMBW
       
      *  CALL CHAR(33,"FFFFFFFFFFFFFFFF")
       
      *      LI   R0,>090F     CHAR(34)
      *      LI   R1,A$
      *      LI   R2,8
      *      BLWP @VMBW
       
      *  CALL CHAR(34,A$)
       
      *  CALL VCHAR(4,2,83)
      *  CALL HCHAR(3,1,33,32)
      *  CALL VCHAR(4,1,33,18)
      *  CALL HCHAR(22,1,33,32)
      *  CALL VCHAR(4,32,33,18)
      *  CALL VCHAR(4,8,33,6)
      *  CALL HCHAR(10,8,33,6)
      *  CALL VCHAR(11,11,33,10)
      *  CALL VCHAR(13,8,33,9)
      *  CALL VCHAR(21,31,70)
      *  DISPLAY AT(23,1):"USE THE ARROW KEYS TO MOVE"
      *  DISPLAY AT(24,3):"ANY OTHER KEY TO QUIT"
       
      SCRN1  TEXT '                                '
             TEXT '           BALL MAZE            '
             TEXT '                                '
             TEXT '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
             TEXT '!S     !                       !'
             TEXT '!      !                       !'
             TEXT '!      !                       !'
             TEXT '!      !                       !'
             TEXT '!      !                       !'
             TEXT '!      !                       !'
             TEXT '!      !!!!!!                  !'
             TEXT '!         !                    !'
             TEXT '!         !                    !'
             TEXT '!      !  !                    !'
             TEXT '!      !  !                    !'
             TEXT '!      !  !                    !'
             TEXT '!      !  !                    !'
             TEXT '!      !  !                    !'
             TEXT '!      !  !                    !'
             TEXT '!      !  !                    !'
             TEXT '!      !                      F!'
             TEXT '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
             TEXT '  USE THE ARROW KEYS TO MOVE    '
             TEXT '    PRESS ENTER KEY TO QUIT     '
       
      *  CALL MAGNIFY(1)
       
      *  CALL SPRITE(#1,34,16,X+1,Y+1)
      *  CALL PATTERN(#1,34)
       
      SPRT1  DATA >1F08,>800F,>D000
             LI   R0,>0400
             LI   R1,A$
             LI   R2,8
             BLWP @VMBW
       
             LI   R0,>0300
             LI   R1,SPRT1
             LI   R2,6
             BLWP @VMBW
       
      *****************
      * PUT UP SCREEN *
      *****************
             LI   R0,0
             LI   R1,SCRN1
             LI   R2,768
             BLWP @VMBW
       
      ************
      * CALL KEY *
      ************
      KK     LIMI 2
             LIMI 0
             CLR  @KEYADR
             CLR  @STATUS
             BLWP @KSCAN
             CB   @ENTER,@KEY
             JEQ  K10
             CB   @UP,@KEY
             JEQ  K1
             CB   @DN,@KEY
             JEQ  K2
             CB   @LT,@KEY
             JEQ  K3
             CB   @RT,@KEY
             JEQ  K4
             JMP  KK
      K10    B    @RETURN
      K1     MOVB @UP,@KEY
             BL   @UPD
             B    @KK
      K2     MOVB @DN,@KEY
             BL   @DND
             B    @KK
      K3     MOVB @LT,@KEY
             BL   @LTD
             B    @KK
      K4     MOVB @RT,@KEY
             BL   @RTD
             B    @KK
      *430CALL KEY(0,K,S)
       
      *  IF K=8 THEN 500
      *  IF K=9 THEN 670
      *  IF K=11 THEN 850
      *  IF K=10 THEN 1030
      *  IF S<>0 THEN 1220
      *490GOTO 430
       
      ********************
      * MOVE SPRITE LEFT *
      ********************
      LTD    LI   R0,>0301
             BLWP @VSBR
             AI   R1,>F800
             BLWP @VSBW
             LI   R15,>1000
       
      * CALL SCREEN(X)
             LI   R0,>0707
             BLWP @VWTR
      * CALL COLOR SET 1
             LI   R0,>0380
             LI   R1,COLOR
             LI   R2,16
             BLWP @VMBW
       
      LOOP3  DEC  R15
             JNE  LOOP3
             RT
      *500!************
      *   !* LEFT - S *
      *   !************
      *  XX=X/8
      *  XX=XX+1
      *  IF XX<1 THEN XX=1
      *  IF XX>24 THEN XX=24
      *  YY=Y/8
      *  IF YY<1 THEN YY=1
      *  IF Z=70 THEN 1250
      *  IF YY>32 THEN YY=32
      *  CALL GCHAR(XX,YY,Z)
      *  IF Z<>32 THEN 430
      *  Y=Y-8
      *  CALL LOCATE(#1,X+1,Y+1)
      *  CALL SCREEN(8)
      *  GOTO 430
       
      *********************
      * MOVE SPRITE RIGHT *
      *********************
      RTD    LI   R0,>0301
             BLWP @VSBR
             AI   R1,>0800
             BLWP @VSBW
       
             LI   R0,>0706
             BLWP @VWTR
             LI   R0,>0380
             LI   R1,COLOR1
             LI   R2,16
             BLWP @VMBW
       
             LI   R15,>1000
      LOOP4  DEC  R15
             JNE  LOOP4
             RT
      *670!*************
      *   !* RIGHT - D *
      *   !*************
      *  XX=X/8
      *  XX=XX+1
      *  IF XX<1 THEN XX=1
      *  IF XX>24 THEN XX=24
      *  YY=Y/8
      *  YY=YY+2
      *  IF YY<1 THEN YY=1
      *  IF YY>32 THEN YY=32
      *  CALL GCHAR(XX,YY,Z)
      *  IF Z=70 THEN 1250
      *  IF Z<>32 THEN 430
      *  Y=Y+8
      *  CALL LOCATE(#1,X+1,Y+1)
      *  CALL SCREEN(7)
      *  GOTO 430
       
      ******************
      * MOVE SPRITE UP *
      ******************
      UPD    LI   R0,>0300
             BLWP @VSBR
             AI   R1,>F800
             BLWP @VSBW
       
             LI   R0,>0703
             BLWP @VWTR
             LI   R0,>0380
             LI   R1,COLOR2
             LI   R2,16
             BLWP @VMBW
       
             LI   R15,>1000
      LOOP1  DEC  R15
             JNE  LOOP1
             RT
      *850!**********
      *   !* UP - E *
      *   !**********
      *  XX=(X/8)
      *  !XX=XX-1
      *  IF XX<1 THEN XX=1
      *  IF XX>24 THEN XX=24
      *  YY=Y/8
      *  YY=YY+1
      *  IF YY<1 THEN YY=1
      *  IF YY>32 THEN YY=32
      *  CALL GCHAR(XX,YY,Z)
      *  IF Z=70 THEN 1250
      *  IF Z<>32 THEN 430
      *  X=X-8
      *   CALL LOCATE(#1,X+1,Y+1)
      *   CALL SCREEN(4)
      *   GOTO 430
       
      ********************
      * MOVE SPRITE DOWN *
      ********************
      DND    LI   R0,>0300
             BLWP @VSBR
             AI   R1,>0800
             BLWP @VSBW
       
             LI   R0,>0704
             BLWP @VWTR
             LI   R0,>0380
             LI   R1,COLOR3
             LI   R2,16
             BLWP @VMBW
       
             LI   R15,>1000
      LOOP2  DEC  R15
             JNE  LOOP2
             RT
      *1030!************
      *    !* DOWN - X *
      *    !************
      *   XX=X/8
      *   XX=XX+2
      *   IF XX<1 THEN XX=1
      *   IF XX>24 THEN XX=24
      *   YY=Y/8
      *   YY=YY+1
      *   IF YY<1 THEN YY=1
      *   IF YY>32 THEN YY=32
      *   CALL GCHAR(XX,YY,Z)
      *   IF Z=70 THEN 1250
      *   IF Z<>32 THEN 430
      *   X=X+8
      *   CALL LOCATE(#1,X+1,Y+1)
      *   CALL SCREEN(5)
      *   GOTO 430
       
      ********
      * EXIT *
      ********
      RETURN CLR  @>837C
             CLR  @>8374
             LWPI >83E0
             MOV  @SAVRTN,R11
             RT
       
      *1210!********
      *    !* EXIT *
      *    !********
      *   STOP
      *1250!******************
      *    !* FINISHED LEVEL *
      *    !******************
      *   CALL SCREEN(16)
      *   DISPLAY AT(13,3):"YOU FINISHED LEVEL 1"
      *   GOTO 430
       
             END

       

  2. I have a lot of floppy disks for the TI994a that I would like to put on my pc and then into emulators.  I have the SW99er's library and a lot of programs in 9900 Assembly l wrote and need to transfer.  I also have the programs that my son and I wrote from "Red Baron Software", not to be confused with the Red Baron game from a company of a similar name.  I am writing some new software for the TI but need to be able to get the files transferred.  My TI computer with a disk drive was working but seems to have stopped read my disks.  I see from the posts that this was talked about a few years ago, but I don't seem to be able read any TI disks on my PC.  Any help would be appreciated.  Thank you Ricki

    1. Show previous comments  6 more
    2. RXB

      RXB

      I would use FW as that is more common

       

    3. RedBaron

      RedBaron

      I am sorry but what is FW?  I want to just give everything to the TI community.

    4. RXB

      RXB

      I would use FW as that is more common

       

      Funnel Web package it has everything on one disk. DSDD or DSQD, you can get a SSSD disk to work but totally at bare minimum.

       

  3. I just wanted to say thank you Matt for all your work on the F18A. I do agree that family comes first. Once the Video module becomes available I would be interested in buying a few. Thank You Ricki
  4. I understand that people get busy with other things. I get that way myself. I have only just recently become aware about this upgrade for the TI994a. I was just hoping that it was still available for sale. I do know that if I had 2 then I would probably order a lot more myself. If possible can someone keep me and others informed of any progress on the F18A. Thank you Ricki
  5. I would like to know if there are still F18A boards available. I would like to get 2 if possible. Thank you
×
×
  • Create New...