Jump to content
IGNORED

RXB 2015 E XB Contest


RXB

Recommended Posts

Not a lot of you know RXB routines so I thought this might spur some thought:

 

This one RXB program is called BSAVE from a RXB routine CALL BSAVE("DSK#.FILENAME")

100 CALL CLEAR
110 CALL MAGNIFY(2)
120 CALL SCREEN(15)
130 CALL COLOR(1,1,15)
140 FOR S=2 TO 8
150 CALL COLOR(S,2,15)
160 NEXT S
170 CALL SPRITE(#1,87,13,84,26)
180 CALL SPRITE(#2,73,13,58,58)
190 CALL SPRITE(#3,78,13,32,90)
200 CALL SPRITE(#4,68,13,58,122)
210 CALL SPRITE(#5,89,13,32,154)
220 CALL SPRITE(#6,88,13,58,186)
230 CALL SPRITE(#7,66,13,84,218)
240 CALL SPRITE(#8,51,12,128,90)
250 CALL SPRITE(#9,46,12,128,122)
260 CALL SPRITE(#10,48,12,128,154)
270 CALL SPRITE(#11,42,5,1,1,0,127)
280 CALL SPRITE(#12,42,5,1,243,127,0)
290 CALL SPRITE(#13,42,5,176,243,0,-127)
300 CALL SPRITE(#14,42,5,176,1,-127,0)
310 CALL SPRITE(#15,42,16,1,128,0,111)
320 CALL SPRITE(#16,42,16,96,243,111,0)
330 CALL SPRITE(#17,42,16,176,128,0,-111)
340 CALL SPRITE(#18,42,16,96,1,-111,0)
350 CALL SPRITE(#19,42,7,1,1,0,99)
360 CALL SPRITE(#20,42,7,1,243,99,0)
370 CALL SPRITE(#21,42,7,176,243,0,-99)
380 CALL SPRITE(#22,42,7,176,1,-99,0)
390 FOR R=3 TO 21
400 CALL HPUT(R,3,RPT$("a",28))
410 NEXT R
420 CALL CHAR(97,"00FF00FF00FF00FF")
430 ! THIS IS HOW THE TITLE SCREEN WAS CREATED AND WAS  SAVED.
440 CALL HCHAR(3,3,96,28)
450 CALL VCHAR(3,3,96,20)
460 CALL HCHAR(22,3,96,28)
470 CALL VCHAR(3,30,96,20)
480 CALL HPUT(15,5,"RICHARD LYNN GILBERTSON")
490 CALL HPUT(20,9,"<<<PUSH A KEY>>>")
500 ! LOOP HERE FOR MOVEMENT
510 CALL CHAR(96,"FF818181818181FF")
520 IF RND>.5 THEN CALL COLOR(9,RND*15+1,15)
530 CALL CHAR(96,"00E7E7E7E7E7E700")
540 CALL KEY(0,K,S) :: IF S=0 THEN 510
550 ! GET SPRITE MOTION IN N
560 CALL PEEK(-31878,N)
570 ! MOVE VDP TO LOW 8K RAM
580 CALL MOVES("VR",2079,0,8192)
590 ! SAVE RAM TO DISK
600 CALL BSAVE("DSK1.SCREEN")
610 CALL NEW

To explain the program for those that never used RXB:

 

400 CALL HPUT(R,3,RPT$("a",28)) ! HPUT is like DISPLAY AT(row,col) but uses row and col like HCHAR does 32 columns wide, unlike DISPLAY only 28 wide.

 

580 CALL MOVES("VR",2079,0,8192) ! V means VDP Memory and R means RAM Memory, 2079 is number of bytes to move, 0 is screen address, 8192 is lower 8K

 

600 CALL BSAVE("DSK1.SCREEN") ! Saves the entire lower 8K as a Program Image Format file that can be loaded with CALL BLOAD("DSK1.SCREEN")

 

610 CALL NEW ! Works just like NEW in XB, but in RXB from program mode

 

 

  • Like 2
Link to comment
Share on other sites

Well without this routine the previous routine does not appear to do much, so this is CALL BLOAD("DSK1.SCREEN")

 

100 ! RELOAD SAVED MEMORY
110 CALL BLOAD("DSK1.SCREEN")
120 ! RESET MAGNIFICATION
130 CALL MAGNIFY(2) :: CALL SCREEN(15)
140 ! MOVE FROM RAM TO VDP
150 CALL MOVES("RV",2079,8192,0)
160 ! RESET SPRITE MOTION
170 CALL LOAD(-31878,22)
180 ! LOOP HERE FOR MOVEMENT
190 CALL CHAR(96,"FF818181818181FF")
200 IF RND>.5 THEN CALL COLOR(9,RND*15+1,15)
210 CALL CHAR(96,"00E7E7E7E7E7E700")
220 CALL KEY(0,K,S) :: IF S=0 THEN 190

To explain:

 

110 CALL BLOAD("DSK1.SCREEN") ! Loads the previous saves Program Image File into the Lower 8K

 

150 CALL MOVES("RV",2079,8192,0) ! Moves the RAM "R" from VDP "V", length 2079 bytes, from Lower 8K 8192 address to VDP address 0

Link to comment
Share on other sites

If you save the first program example (ABOVE) as BSAVESCRN and the second example (ABOVE) as BLOADSCRN then you can change line 610 in first program to:

 

610 CALL XBPGM("DSK1.BLOADSCRN",3) ! This is like a XB command like RUN "DSK1.BLOADSCRN" but also does a CALL FILES(3) and NEW before loading BLOADSCRN XB program and running it.

Edited by RXB
  • Like 1
Link to comment
Share on other sites

Just to show how smart RXB is compared to other XB out there using CALL CAT for a cataloger.

 

CALL CAT("DSK1.") ! Same as any other XB

or

CALL CAT(1) ! Same as "DSK1." in RXB

or

CALL CAT(49) ! Same as "DSK1." as 49 is 1 in ASCII format in RXB

 

10 X$="DSK4."

20 CALL CAT(X$) ! RXB supports variable strings or numeric variables, other XB do not support them.

 

CALL CAT(3,2) ! In RXB same as "DSK3." then will catalog "DSK2." and the spacebar will pause and restart the catalog as it progresses.

 

10 Y=3

20 CALL CAT(Y) ! will catalog "DSK3." thus RXB supports Numeric and String Variables.

 

CALL CAT("SCS.HD1.XBGAMES.") ! Will catalog SCSI drive named HD1 subdirectory XBGAMES

 

CALL CAT("DSKA.")! Catalog "DSKA." RAMDISK A drive.

or

CALL CAT(65) ! Catalog "DSKA." as A is 65 in ASCII so useful for RAMDISK drives.

or

CALL CAT("DSK.RD1.") ! Catalog RAMDISK named RD1

 

Oh and RXB also has the same thing CALL DIR does the same as CALL CAT in case you prefer that name instead.

 

I call RXB cataloger a smart cataloger as it figures out what you want to catalog.

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...