5 DIM SHIP(430),SHIP1(430) 10 CLS:KEY OFF:SCREEN 1:COLOR 1,0 50 LINE (50,181)-(270,199),1,BF 52 LINE (185,55)-(210,180),1,B 54 LINE (185,80)-(210,105),1,B 56 LINE (185,130)-(210,155),1,B 58 LINE (185,30)-(210,55),1,B 60 LINE (185,30)-(210,55),1 62 LINE (185,55)-(210,30),1 64 LINE (185,55)-(210,80),1 66 LINE (185,80)-(210,55),1 68 LINE (185,80)-(210,105),1 70 LINE (185,105)-(210,80),1 72 LINE (185,105)-(210,130),1 74 LINE (185,130)-(210,105),1 76 LINE (185,130)-(210,155),1 78 LINE (185,155)-(210,130),1 80 LINE (185,155)-(210,180),1 82 LINE (185,180)-(210,155),1 100 CIRCLE (185,100),60,3,3.14-.75,3.14,1.5 110 CIRCLE (125,100),60,3,0,.75,1.5 120 LINE(145,100)-(145,170),3 130 LINE(165,100)-(165,170),3 140 LINE(145,170)-(165,170),3 145 PAINT (146,169),2,3 150 LINE (145,140)-(135,150),3 152 LINE (135,150)-(135,180),3 154 LINE (135,180)-(145,170),3 155 PAINT (136,170),2,3 160 LINE (165,140)-(175,150),3 162 LINE (175,150)-(175,180),3 164 LINE (175,180)-(165,170),3 165 PAINT (166,170),2,3 200 A=11:B=20 201 LOCATE A,B:PRINT"I" 202 LOCATE A+1,B:PRINT"B" 203 LOCATE A+2,B:PRINT"M" 204 LOCATE A+3,B:PRINT" " 205 LOCATE A+4,B:PRINT"S" 206 LOCATE A+5,B:PRINT"H" 207 LOCATE A+6,B:PRINT"U" 208 LOCATE A+7,B:PRINT"T" 209 LOCATE A+8,B:PRINT"T" 210 LOCATE A+9,B:PRINT"L" 211 LOCATE A+10,B:PRINT"E" 490 II=0:FOR I=1 TO 100:II=II+1:NEXT I 491 LINE (50,181)-(270,199),0,BF 492 LINE (145,170)-(155,198),3 494 LINE (165,170)-(155,198),3 496 PAINT (155,190),3,3 500 GET (132,58)-(179,199),SHIP 504 PUT(132,58),SHIP,XOR 505 LINE (50,181)-(270,199),1,BF 506 PUT(132,58),SHIP,XOR 507 A=58:K=0 508 FOR I=1 TO 63 510 B=INT((I/10)^3)-INT(((I-1)/10)^3) 511 IF I<16 THEN GOSUB 600 512 IF (A-B)<0 THEN GOSUB 530:GOTO 517 515 GOSUB 520 517 NEXT I 518 GOTO 700 520 PUT(132,A),SHIP,XOR 523 PUT(132,A-B),SHIP,XOR 525 A=A-B 526 RETURN 530 IF (K MOD 2)=0 GOTO 542 532 GET (132,B-A)-(179,B-A+142),SHIP 534 PUT (132,A),SHIP1,XOR 536 PUT (132,0),SHIP,XOR 538 GOTO 550 542 GET (132,B-A)-(179,B-A+142),SHIP1 544 PUT (132,A),SHIP,XOR 546 PUT (132,0),SHIP1,XOR 550 A=0:K=K+1 552 RETURN 600 ON I GOTO 601,602,603,604,605,606,607,608,609,610,611,612,613,614,615 601 X=15:Y=193:R=6:GOTO 698 602 X=22:Y=190:R=9:GOTO 698 603 X=32:Y=190:R=9:GOTO 698 604 X=42:Y=185:R=11:GOTO 698 605 X=54:Y=185:R=11:GOTO 698 606 X=66:Y=185:R=11:GOTO 698 607 X=60:Y=170:R=11:GOTO 698 608 X=71:Y=165:R=15:GOTO 698 609 X=90:Y=185:R=14:GOTO 698 610 X=90:Y=155:R=13:GOTO 698 611 X=100:Y=168:R=16:GOTO 698 612 X=115:Y=185:R=11:GOTO 698 613 X=115:Y=155:R=25:GOTO 698 614 X=128:Y=185:R=11:GOTO 698 615 X=133:Y=135:R=15:GOTO 698 698 CIRCLE (155-X,Y),R,3,,,1:CIRCLE (155+X,Y),R,3,,,1:PAINT(155-X,Y),3,3:PAINT(155+X,Y),3,3 699 RETURN 700 REM this is BASICMOV 710 ' BASIC DEMO TO USE CALL FUNCTION 720 ' USES AN ASSEMBLER SUBROUTINE TO MOVE 730 ' UP TO 65535 BYTES IN MEMORY 740 N=10:REM number of frames to show, starting at highmemory(256k) 750 KEY OFF 760 'DEFINE SEGMENT TO PLACE THE ASSEMBLER CODE 770 DEF SEG=&H1200 780 ' THIS TEST IF IT IS ALREADY LOADED, IF NOT IT LOADS IT 790 BLOAD"mcode.%%%",0 800 SUBRT = 0 810 ' A% = THE FROM ADDRESS 820 ' B% = THE TO ADDRESS 830 ' C% = THE LENGTH TO MOVE 840 GOSUB 980:REM TURN ON COLOR SCREEN 850 DEF SEG=&H1200 860 KEY OFF:SCREEN 1:COLOR 1,0 870 FOR DISP=1 TO N 880 MEMDEL=DISP*1024 890 MEMORY=16384-MEMDEL 900 A%=MEMORY 910 B%=&HB800 920 C%=&H4000 930 CALL SUBRT (A%,B%,C%) 940 FOR PAUSE=1 TO 1000:NEXT 950 NEXT 952 GOSUB 1100 955 LOCATE 25,1:FOR EARTHMOVE=1 TO 25:PRINT " ":FOR PAUSE=1 TO 700:NEXT 956 FOR STAR=1 TO 6:PSET(RND*320,180) 957 NEXT STAR 958 NEXT EARTHMOVE 960 RUN"flyby 970 REM switch to color/graphics adapter 980 DEF SEG=0 990 POKE &H410,(PEEK(&H410) AND &HCF) OR &H20 1000 DEF SEG 1010 LOCATE ,,1,6,7 1020 SCREEN 0 1030 WIDTH 40 1040 RETURN 1100 CIRCLE(160,1),225 1105 COLOR 8, 1150 RETURN