! COPY this file to a empty ! disk, then type: ! CALL USER("DSK1.BATCH") ! PRESS ANY KEY CALL KEY("",O,K,S) CALL CLEAR CALL QUITON ! To follow along with this demo print it out first. ! PRESS ANY KEY TO CONTINUE ! PRESS QUIT TO EXIT USER CALL KEY("",0,K,S) CALL CLEAR ! RXB CALL KEY UPDATED ! Normal XB CALL KEY(1,A,X)::CALL KEY(2,B,Y) ! RXB UPDATE CALL KEY(1,A,X,2,B,Y) ! (HINT: press space bar) CALL KEY(" ",0,K,S) ! (HINT: press Y N y n) CALL KEY("YyNn",0,K,S) ! (HINT: press a number) CALL KEY("1234567890",0,K,S) ! (HINT: press ENTER) CALL KEY(CHR$(13),0,K,S) NEW ! RXB CALL CHAR UPDATED ! NORMAL XB FOR L=32 TO 127::CALL CHAR(L,"FF181818181818FF")::NEXT L ! RXB UPDATE CALL CHAR(ALL,"FF18181818181818FF") CALL KEY("",0,K,S) NEW ! RXB CALL COLOR UPDATED ! NORMAL XB FOR L=0 TO 14::CALL COLOR(L,2,11)::NEXT L ! RXB UPDATE CALL COLOR(ALL,2,11) CALL KEY("",0,K,S) NEW ! RXB CALL GCHAR UPDATED ! NOMAL XB CALL GCHAR(22,3,A)::CALL GCHAR(22,4,B)::CALL GCHAR(22,5,C) ! RXB UPDATE CALL GCHAR(22,3,A,22,4,B,22,5,C) CALL KEY("",0,K,S) NEW ! RXB CALL HCHAR UPDATED ALSO VCHAR UPDATED ! NORMAL XB CALL HCHAR(9,25,33,5)::CALL HCHAR(10,25,33,6)::CALL HCHAR(11,25,33,7) ! RXB UPDATE CALL HCHAR(9,25,33,5,10,25,33,6,11,25,33,7) CALL KEY("",0,K,S) NEW ! RXB CALL JOYST UPDATED ! NORMAL XB CALL JOYST(1,A,B)::CALL JOYST(2,C,D) ! RXB UPDATE CALL JOYST(1,A,B,2,C,D) CALL KEY("",0,K,S) NEW ! RXB CALL VERSION UPDATED CALL VERSION(A) :: PRINT A CALL KEY("",0,K,S) NEW ! NEW RXB SUBROUTINE CALL BEEP ! NEW RXB SUBROUTINE CALL HONK CALL KEY("",0,K,S) NEW NEW ! Now this is a RXB line? 1 PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::P RINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRIN T::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT:: PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRI NT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT: :PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PR INT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT::PRINT ! RXB Editor can accept 160 tokens per line. CALL KEY("",0,K,S) SAVE DSK1.LONGLINE LIST CALL KEY("",0,K,S) NEW ! Create a XB program. NUM 1,2 REM Test PRINT "THIS IS A TEST PROGRAM" CALL BEEP END ! SAVE THE PROGRAM SAVE DSK1.TEST CALL KEY("",0,K,S) CALL CAT("DSK1.") CALL KEY("",0,K,S) NEW ! HOW TO EDIT IN USER. OLD DSK1.TEST RES 10,10 NUM 9,10 ! REMARK HERE ! SHOW IT ! LET THEM KNOW IT ! DONE RES 100,5 LIST SAVE DSK1.TEST2 CALL KEY("",0,K,S) NEW ! RUN PROGRAMS BUT GO BACK TO USER. CALL KEY("",0,K,S) RUN "DSK1.TEST" RUN "DSK1.TEST2" ! MERGE PROGRAMS AND RUN. OLD DSK1.TEST2 SAVE DSK1.TEST3,MERGE OLD DSK1.TEST LIST MERGE "DSK1.TEST3" LIST SAVE DSK1.MPGM CALL KEY("",0,K,S) NEW ! BREAK / UNBREAK / CON OLD DSK1.MPGM LIST BREAK 5,7 CALL KEY("",0,K,S) RUN LIST CON CALL KEY("",0,K,S) LIST UNBREAK 5,7 CALL KEY("",0,K,S) RUN LIST CALL KEY("",0,K,S) NEW ! RXB SIZE IS DIFFERENT. SIZE CALL INIT SIZE CALL AMSINIT SIZE CALL KEY("",0,K,S) NEW ! TRACE FROM USER. OLD DSK1.TEST TRACE RUN UNTRACE CALL KEY("",0,K,S) NEW ! USER IGNORES ERRORS. NUM ! ERRORS IN USER GOTO 1000 RUN ! SAME AS BREAK OR FCTN4 (By the way FCTN4 does not work in USER.) CALL KEY("",0,K,S) NEW ! RENAME FILES CALL KEY("",0,K,S) CALL CAT("1") CALL RENAME("DSK1.","TEST","PGM","DSK1.","TEST2","PGM2") CALL KEY("",0,K,S) CALL CAT(1) ! PROTECT FILES CALL PROTECT("DSK1.","TEST3",255) CALL KEY("",0,K,S) CALL CAT(49) CALL KEY("",0,K,S) ! Un Protect TEST3 CALL PROTECT("DSK1.","TEST3",0) CALL KEY("",0,K,S) CALL CAT("DSK1.") CALL KEY("",0,K,S) ! COPY TEST3 CALL FCOPY("DSK1.","TEST3","DSK1.","TEST4") CALL KEY("",0,K,S) CALL CAT("DSK1.") CALL KEY("",0,K,S) ! RENAME A DISK CALL MKDIR("DSK1.","RXB-USER") CALL KEY("",0,K,S) CALL CAT("DSK1.") CALL KEY("",0,K,S) NEW ! DELETE ALL THE JUNK CALL KEY("",0,K,S) DELETE "DSK1.MPGM" DELETE "DSK1.PGM" DELETE "DSK1.PGM2" DELETE "DSK1.TEST3" DELETE "DSK1.TEST4" CALL KEY("",0,K,S) NEW ! Now catalog all drives. 100 ON ERROR 140 110 N=N+1 120 D$="DSK"&CHR$(N)&"." 130 CALL CAT(D$) 140 PRINT D$ 150 IF N<128 THEN 100 ELSE END ! SPACE BAR stops catalog and FCTN4 ends catalog. CALL KEY("",0,K,S) RUN SAVE "DSK1.CAT/ALL" NEW 100 ! RXB NEW IN PROGRAM 110 CALL NEW CALL KEY("",0,K,S) SAVE "DSK1.NEW" RUN 100 ! NORMAL XB CLOSE 110 OPEN #1:"DSK1.FILE1" 120 OPEN #2:"DSK1.FILE2" 130 CLOSE #1 140 CLOSE #2 200 ! RXB CLOSE ALL 210 OPEN #1:"DSK1.FILE1" 220 OPEN #2:"DSK1.FILE2" 230 CALL CLSALL CALL KEY("",0,K,S) SAVE "DSK1.CLSALL" RUN ! DELETE JUNK DELETE "DSK1.FILE1" DELETE "DSK1.FILE2" NEW 100 ! NORMAL XB CHARSET 110 FOR L=0 TO 255 120 PRINT CHR$(L);" "; 130 NEXT L 140 FOR L=1 TO 5 150 CALL CHAR(ALL,"4567") 160 CALL COLOR(ALL,14,10) 170 FOR D=1 TO 300::NEXT D 180 CALL CHARSET 190 FOR D=1 TO 300::NEXT D 200 NEXT L 210 ! RXB CHARSETALL 220 FOR L=1 TO 5 230 CALL CHAR(ALL,"4567") 240 CALL COLOR(ALL,14,10) 250 FOR D=1 TO 300::NEXT D 260 CALL CHARSETALL 270 FOR D=1 TO 300::NEXT D 280 NEXT L CALL KEY("",0,K,S) SAVE "DSK1.CHARSETALL" RUN NEW 100 ! NORMAL XB GCHAR/HCHAR 110 CALL CLEAR 120 CALL LDIAG(1,1,42,64) 130 FOR R=1 TO 7 140 FOR C=1 TO 32 150 CALL GCHAR(R,C,G) 160 CALL HCHAR(R+14,C,G) 170 NEXT C 180 NEXT R 190 CALL BEEP 200 ! RXB HGET/HPUT 210 CALL CLEAR 220 CALL LDIAG(1,1,42,64) 230 CALL HGET(1,1,224,G$) 240 CALL HPUT(15,1,G$) 250 CALL BEEP CALL KEY("",0,K,S) RUN SAVE "DSK1.HGET/HPUT" NEW 100 CALL CLEAR 110 CALL MAGNIFY(2) 120 CALL SCREEN(2) 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,"<<>>") 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 ! SET UP SCREEN AND BSAVE IT CALL KEY("",0,K,S) SAVE "DSK1.BSAVESCRN" RUN 100 ! RELOAD SAVED MEMORY 110 CALL BLOAD("DSK1.SCREEN") 120 ! RESET MAGNIFICATION 130 CALL MAGNIFY(2) 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 CALL KEY("",0,K,S) SAVE "DSK1.BLOADSCRN" RUN NEW 10 ! RXB EXAMPLE RXB SUBPROGRAM FINDER 100 CALL CLEAR :: ADDRESS=-24538 110 RESTORE :: FOR I=1 TO 2 :: READ X$,Y$,Z$ :: PRINT X$;TAB(11);Y$;TAB(22);Z$ : : NEXT I 120 CALL PEEKG(ADDRESS,B1,B2):: CALL HEX(B1,B1$,B2,B2$):: ADDRESS$=SEG$(B1$,3,2) &SEG$(B2$,3,2) 130 CALL PEEKG(ADDRESS+2,LENGTH) 140 CALL MOVES("G$",LENGTH,ADDRESS+3,N$) 150 CALL PEEKG(ADDRESS+3+LENGTH,S1,S2):: CALL HEX(S1,S1$,S2,S2$):: S$=SEG$(S1$,3 ,2)&SEG$(S2$,3,2) 160 CALL HEX(ADDRESS,A$):: PRINT A$;"-";ADDRESS$;" ";TAB(11);N$;" ";TAB(22);S$ : : PRINT 170 DATA HEADER,SUBPROGRAM,START,*******,**********,******* 180 CALL HEX(ADDRESS$,ADDRESS):: IF ADDRESS THEN 120 CALL KEY("",0,K,S) SAVE DSK1.SUBPGMFNDR RUN CALL KEY("",0,K,S) NEW 10 ! RXB EXAMPLE CALL LDIAG(ROW,COL,CHAR,REP)CALL RDIAG(ROW,COL,CHAR, REP) 100 CALL LDIAG(1,1,32,768) 110 FOR R=5 TO 18 :: CALL LDIAG(R,16,36,24-R) :: CALL RDIAG(R,16,36,24-R):: NEXT R 120 FOR L=1 TO 800 :: NEXT L CALL KEY("",0,K,S) SAVE DSK1.DIAG RUN NEW 10 ! RXB EXAMPLE CALL MOVES(type$,bytes,from,to) 20 ! Shows Disk controller EPROM chip memory. 100 CALL CHAR(31,"F0F0F0F0F0F0F0F0") 110 CALL IO(3,8,2176,255) 120 FOR A=16384 TO 24576 STEP 224 130 CALL MOVES("R$",224,A,T$) 140 CALL HEX(A,H$) 150 PRINT " ADDRESSS=";A;"HEX=";H$: :T$: : 160 FOR L=1 TO 400 :: NEXT L 170 NEXT A 180 CALL CHAR(31,"00") 190 CALL IO(3,8,2176,0) CALL KEY("",0,K,S) SAVE DSK1.MOVES RUN NEW 11 ! BOOT TRAKING IN RXB MERGE this program frist so your program knows wh ich drive it loaded from last. *NOTE: NO ASSEMBLY USED!! 12 CALL PEEK(-31792,R,I,C,H):: CRU=128*R+I :: CPU=256*C+H+5 :: D$="....." :: CAL L IO(3,8,CRU,255):: CALL MOVES("R$",4,CPU,D$):: CALL IO(3,8,CRU,0) 13 ! Put RXB commands here: or CALL EAPGM(D$&"PGMNAME") or CALL LOAD(D$&"OBJNAME ") or CALL EALR(D$&"OBJNAME") 14 PRINT D$&".FILENAME" CALL KEY("",0,K,S) SAVE DSK1.BOOTTRACKN RUN NEW 10 ! RXB EXAMPLE CALL POKER(register,value) 100 CALL CLEAR :: FOR I=0 TO 764 STEP 8 :: CALL POKEV(I,161,162,163,164,165,166, 167,168):: NEXT I 110 CALL CLEAR :: FOR I=0 TO 758 STEP 16 :: CALL POKEV(I,161,162,163,164,165,166 ,167,168,169,170,172,173,174,175,176):: NEXT I 120 CALL CLEAR :: FOR I=126 TO 223 :: CALL POKEV(I,I+1,I+2,I+3,I+4,I+5,I+6,I+7): : NEXT I 130 PRINT : :"SCREEN COLOR CHANGES" :: FOR T=1 TO 5 :: FOR I=0 TO 15 :: CALL POK ER(7,I):: NEXT I :: NEXT T :: CALL SCREEN(8) 140 A$="!@#$%^&*()+1234567890=-:><,.;/~_?'|{}\`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg hijklmnopqrstuvwxyz" :: FOR I=1 TO 5 :: PRINT A$ :: NEXT I 150 PRINT : :"CHARACTER COLOR CHANGES" :: FOR I=30 TO 70 :: FOR T=2063 TO 2076 : : CALL POKEV(T,I):: NEXT T :: NEXT I :: CALL CHARSET :: PRINT 160 PRINT "PRESS A KEY FOR TEXT MODE": : :: CALL BEEP 170 CALL KEY("",0,K,S):: CALL POKER(7,244):: CALL POKER(1,240) 180 PRINT " PRESS A KEY FOR MULTI COLOR MODE": : :: CALL BEEP 190 CALL KEY("",0,K,S):: CALL POKER(1,232):: GOSUB 230 :: CALL POKER(1,224) 200 PRINT "PRESS A KEY FOR BIT MAP MODE": : :: CALL BEEP 210 CALL KEY("",0,K,S):: CALL POKER(0,2):: CALL POKER(1,224) 220 GOSUB 230 :: CALL POKER(0,0):: END 230 FOR I=1 TO 800 :: NEXT I :: RETURN CALL KEY("",0,K,S) SAVE DSK1.POKER RUN NEW 10 ! RXB EXAMPLE CALL MOTION(STOP,GO) 100 CALL CLEAR :: CALL CHAR(128,RPT$("F",16)):: CALL MAGNIFY(2) 110 A$="OUT" :: GOSUB 120 :: A$="" :: GOSUB 120 :: CALL QUITON :: END 120 CALL HPUT(1,3,"MOTION WITH"&A$&" RXB"):: IF A$="" THEN CALL MOTION(STOP) 130 FOR A=1 TO 11 :: CALL SPRITE(#A,128,2,A*16-7,1,0,30):: NEXT A :: IF A$="" TH EN CALL MOTION(GO) 140 CALL HPUT(24,4,"PRESS ANY KEY TO CONTINUE."):: CALL KEY("",0,K,S):: CALL DEL SPRITE(ALL):: CALL CLEAR :: RETURN CALL KEY("",0,K,S) SAVE DSK1.MOTIONGO RUN NEW 10 ! RXB EXAMPLE CALL MOTION(GO,STOP) 100 A(0)=-1 :: A(1)=1 110 CALL CLEAR :: CALL MAGNIFY(2):: CALL SCREEN(15) 120 FOR S=1 TO 28 130 CALL SPRITE(#S,64+S,2,20+S,50+S,INT(A(RND*1))*INT(RND*127),INT(A(RND*1))*INT (RND*127)) 140 NEXT S 150 N=N+1 :: ON INT(RND*3)+1 GOSUB 160,170,180 :: IF N>50 THEN END ELSE 150 160 CALL MOTION(GO):: RETURN 170 CALL MOTION(STOP):: RETURN 180 FOR DELAY=0 TO 200 :: NEXT DELAY :: RETURN CALL KEY("",0,K,S) SAVE DSK1.MOTIONSTOP RUN NEW 10 ! RXB EXAMPLE CALL CHAR(ALL,string) 20 FOR L=0 TO 256 :: PRINT CHR$(L);:: NEXT L 30 S$="0123456789ABCDEF" 40 CALL CHAR(ALL,SEG$(S$,INT(RND*15)+1,INT(RND*15)+1)) 50 Z=Z+1 :: IF Z=50 THEN END ELSE 40 CALL KEY("",0,K,S) SAVE DSK1.CHARALL RUN NEW 10 ! RXB EXAMPLE CALL COLOR(ALL,fore,back) 20 FOR L=0 TO 256 :: PRINT CHR$(L);:: NEXT L 30 CALL COLOR(ALL,RND*15+1,RND*15+1) 40 Z=Z+1 :: IF Z=50 THEN END ELSE 30 CALL KEY("",0,K,S) SAVE DSK1.COLORALL RUN NEW 10 ! RXB EXAMPLE CALL MOTION(ALL,x,y) 100 A(0)=-127 :: A(1)=127 110 CALL CLEAR :: CALL MAGNIFY(2):: CALL SCREEN(15) 120 FOR S=1 TO 28 130 CALL SPRITE(#S,64+S,2,20+S,50+S,A(RND)*RND,A(RND)*RND) 140 NEXT S 150 CALL MOTION(ALL,A(RND)*RND,A(RND)*RND) 160 C=C+1 :: IF C<70 THEN 150 CALL KEY("",0,K,S) SAVE DSK1.MOTIONALL RUN NEW ! RXB EXAMPLE CALL HEX(number,string) 10 ! Decimal & Hexidecimal 11 FOR D=-32000 TO 30000 STEP 1000 12 CALL HEX(D,H$) 13 PRINT "DEC=";D,"HEX=";H$ 100 ! Hexidecimal to Decimal 120 CALL HEX(H$,D) 130 PRINT "HEX=";H$,"DEC=";D 140 NEXT D CALL KEY("",0,K,S) SAVE DSK1.HEX/DEC RUN NEW 10 ! RXB EXAMPLE CALL DUPCOLOR(#value,#value)CALL DUPCHAR(char,char) 100 A(0)=-1 :: A(1)=1 110 CALL CLEAR :: CALL MAGNIFY(2):: CALL SCREEN(15) 120 FOR S=1 TO 28 130 CALL SPRITE(#S,64+S,INT(RND*16)+1,20+S,50+S,INT(A(RND*1))*INT(RND*20),INT(A( RND*1))*INT(RND*20)) 140 NEXT S 150 CALL DUPCOLOR(#INT(RND*28)+1,#INT(RND*28)+1):: CALL DUPCHAR(INT(RND*28)+64,I NT(RND*28)+64) 160 Z=Z+1 :: IF Z=50 THEN END ELSE 150 CALL KEY("",0,K,S) SAVE DSK1.DUP RUN NEW 10 ! RXB EXAMPLE CALL SWAPCHAR(char,char) CALL SWAPCOLOR(#value,#v alue) 100 A(0)=-1 :: A(1)=1 110 CALL CLEAR :: CALL MAGNIFY(2):: CALL SCREEN(15) 120 FOR S=1 TO 28 130 CALL SPRITE(#S,64+S,INT(RND*16)+1,20+S,50+S,INT(A(RND*1))*INT(RND*20),INT(A( RND*1))*INT(RND*20)) 140 NEXT S 150 CALL SWAPCOLOR(#INT(RND*28)+1,#INT(RND*28)+1):: CALL SWAPCHAR(INT(RND*28)+64 ,INT(RND*28)+64) 160 Z=Z+1 :: IF Z=50 THEN END ELSE 150 CALL KEY("",0,K,S) SAVE DSK1.SWAP RUN NEW 10 ! RXB EXAMPLE CALL INVERSE(ALL) 100 CALL INVERSE(ALL) 110 A=A+1 :: IF A<8 THEN 100 CALL KEY("",0,K,S) SAVE DSK1.INVERSEALL RUN NEW 10 ! RXB EXAMPLE 100 ! This program gives the illusion of sprites that bank 90% at a time. 110 CALL MAGNIFY(2):: CALL CLEAR :: CALL SCREEN(15) 120 CALL SPRITE(#1,65,2,100,10,0,35,#2,66,16,10,140,25,0) 130 CALL COINC(ALL,V) 140 IF V THEN CALL SWAPCHAR(65,66):: CALL RMOTION(#1):: CALL SWAPCOLOR(#1,#2):: GOSUB 160 ELSE 130 150 GOTO 130 160 FOR L=1 TO 600 :: NEXT L 170 A=A+1 :: IF A<5 THEN RETURN CALL KEY("",0,K,S) SAVE DSK1.SPRITESWAP RUN NEW 10 ! RXB EXAMPLE CALL GMOTION(#sprite,x,y) 100 A(0)=-1 :: A(1)=1 :: CALL CLEAR :: CALL MAGNIFY(2):: CALL SCREEN(15) 110 FOR S=1 TO 28 120 CALL SPRITE(#S,64+S,INT(RND*16)+1,20+S,50+S,INT(A(RND*1))*INT(RND*127),INT(A (RND*1))*INT(RND*127)) 130 NEXT S 140 S=INT(RND*28)+1 :: CALL GMOTION(#S,X,Y):: CALL HPUT(24,3,"CALL GMOTION(#"&ST R$(S)&","&STR$(X)&","&STR$(Y)&") "):: FOR L=1 TO 1000 :: NEXT L 150 CALL MOTION(#S,Y,X):: Z=Z+1 :: IF Z<8 THEN 140 CALL KEY("",0,K,S) SAVE DSK1.GMOTION RUN NEW 10 ! RXB EXAMPLE CALL GMOTION/MOTION 100 A(0)=-1 :: A(1)=1 :: CALL CLEAR :: CALL MAGNIFY(2):: CALL SCREEN(15) 110 FOR S=1 TO 28 120 CALL SPRITE(#S,64+S,INT(RND*16)+1,20+S,50+S,INT(A(RND*1))*INT(RND*32),INT(A( RND*1))*INT(RND*32)) 130 NEXT S 140 S=INT(RND*28)+1 :: CALL GMOTION(#S,X,Y):: CALL MOTION(#S,Y,X) 150 Z=Z+1 :: IF Z<300 THEN 140 CALL KEY("",0,K,S) SAVE DSK1.G/MOTION RUN NEW 10 ! RXB EXAMPLE CALL RMOTION(#sprite) CALL RMOTION(ALL) 100 A(0)=-1 :: A(1)=1 :: CALL CLEAR :: CALL MAGNIFY(2):: CALL SCREEN(15) 110 FOR S=1 TO 28 120 CALL SPRITE(#S,64+S,INT(RND*16)+1,20+S,50+S,INT(A(RND*1))*INT(RND*32),INT(A( RND*1))*INT(RND*32)) 130 NEXT S 140 IF RND>.2 THEN CALL RMOTION(#INT(RND*28)+1)ELSE CALL RMOTION(ALL) 150 Z=Z+1 :: IF Z<200 THEN 140 CALL KEY("",0,K,S) SAVE DSK1.RMOTION RUN NEW 10 ! RXB EXAMPLE CALL MOVES grom to screen. 20 FOR GA=0 TO 32767 STEP 768 :: CALL MOVES("GV",768,GA,0):: NEXT GA 30 ! RXB EXAMPLE CALL MOVES (RIPPLE EXAMPLE) 40 CALL HCHAR(1,1,32) 50 CALL MOVES("VV",767,0,1) 60 ! RXB EXAMPLE CALL MOVES (SCAN VDP) 70 FOR V=0 TO 16384 STEP 28 :: CALL MOVES("VV",28,V,386):: NEXT V CALL KEY("",0,K,S) SAVE DSK1.MOVE RUN NEW 10 ! RXB EXAMPLE CALL BIAS 100 CALL MOVES("V$",255,0,V$) 110 CALL BIAS(0,V$) 120 PRINT V$ RUN CALL KEY("",0,K,S) NEW 10 ! RXB EXAMPLE CALL IO (SOUND LIST) 100 A=8191 110 DATA 5,159,191,223,255,227,1 120 DATA 9,142,1,164,2,197,1,144,182,211,6 130 DATA 3,145,183,212,5 140 DATA 3,146,184,213,4 150 DATA 5,167,4,147,176,214,5 160 DATA 3,148,177,215,6 170 DATA 3,149,178,216,7 180 DATA 5,202,2,150,179,208,6 190 DATA 3,151,180,209,5 200 DATA 3,152,181,210,4 210 DATA 5,133,3,144,182,211,5 220 DATA 3,145,183,212,6 230 DATA 3,146,184,213,7 240 DATA 5,164,2,147,176,214,6 250 DATA 3,148,177,215,5 260 DATA 3,149,178,216,4 270 DATA 5,197,1,150,179,208,5 280 DATA 3,151,180,209,6 290 DATA 3,152,181,210,7 300 DATA 3,159,191,223,0 310 A=A+1 :: READ B :: CALL POKEV(A,B) 320 IF B=0 THEN 330 ELSE 310 330 FOR L=1 TO 30 340 CALL IO(1,8192) 350 FOR D=0 TO L :: FOR E=0 TO L 360 NEXT E :: NEXT D :: NEXT L RUN SAVE DSK1.IO/CHIMES NEW 10 ! CALL EXECUTE is 5 times faster then a CALL LINK. 20 CALL INIT 30 CALL LOAD(9838,47,0,38,114,4,32,32,44,3,128) 40 CALL LOAD(12032,0,0,48,0,2,255) 50 CALL EXECUTE(9838) :: ! Save screen. 60 CALL LOAD(9838,47,0,38,114,4,32,32,36,3,128) 70 CALL LOAD(12032,0,0,48,0,2,255) 80 ! This program copies the screen then clears it. Then it repeats. 90 FOR L=1 TO 800 100 CALL EXECUTE(9838) ! Restore saved screen. 110 CALL CLEAR 120 NEXT L CALL KEY("",0,K,S) RUN SAVE DSK1.EXECUTE NEW NEW ! SECTOR DEMO 100 ! GET 32 SECTORS=DSK1 110 CALL SECTOR(1,1,32,"0") 120 FOR L=8192 TO 16255 STEP 256 130 CALL MOVES("R$",128,L,X$,"R$",128,L+128,Y$) 140 CALL HEX(L,Z$) 150 PRINT "SECTOR =";S:"DEC =";L,"HEX =";Z$:X$;Y$ 160 FOR D=1 TO 500 :: NEXT D 170 S=S+1 :: NEXT L CALL KEY("",0,K,S) SAVE "DSK1.SECTOR" RUN NEW ! CREATE A LOAD PROGRAM 10 ! USER-DEMO LOADER 20 CALL USER("DSK1.BATCH") CALL KEY("",0,K,S) SAVE DSK1.LOAD NEW ! CREATE USER FILE FROM USER. OPEN #1:"DSK1.TEST-USER",OUTPUT PRINT #1:"1 CALL CLEAR ! TEST OF USER"&CHR$(13) PRINT #1:"2 A$="&""""&" RXB USER "&""""&CHR$(13) PRINT #1:"3 B$="&""""&" DEMO "&""""&CHR$(13) PRINT #1:"4 C$="&""""&" FINISHED "&""""&CHR$(13) PRINT #1:"5 D$="&""""&"Press ENTER to exit RXB"&""""&CHR$(13) PRINT #1:"6 CALL HPUT(12,11,A$,14,11,B$,16,11,C$,24,3,D$)"&CHR$(13) PRINT #1:"7 CALL KEY("&""""&""""&",0,K,S)"&CHR$(13) PRINT #1:"8 IF K=13 THEN 9 ELSE END"&CHR$(13) PRINT #1:"9 CALL BYE"&CHR$(13) PRINT #1:"SAVE DSK1.END-DEMO"&CHR$(13) PRINT #1:"RUN"&CHR$(13) CLOSE #1 CALL CAT(1) CALL KEY("",0,K,S) ! USER CAN CALL USER FILES IF IT IS THE LAST COMMAND. CALL USER("DSK1.TEST-USER")