10 DEFINT A-Z:KEY OFF:K=0:MN=0:Z=0 15 DEF SEG=&HB800 1100 GOSUB 60140 1200 SCREEN 1,0:COLOR 8,1:CLS 1201 EC=2:OC=2:X=20:Y=23:D$=" THANKS FOR VISITING":GOSUB 60010 1202 X=20:Y=68:D$=" THE WORLD OF THE":GOSUB 60010 1211 EC=3:OC=3:BC=4:X=24:Y=150:OS=128:D$="{}~ Personal Computer":GOSUB 60010 1215 FOR PAUSE=1 TO 500:PAUSE=PAUSE+0:NEXT PAUSE 1220 CLS 1221 OS=0:EC=2:OC=2:X=20:Y=23:D$="HAVE A NICE DAY !!!":GOSUB 60010 1300 ' ROUTINE TO SIGN SCREEN WITH MIKE DUFFY'S SIGNATURE 1310 PSET (41,131),0 1320 DRAW "C3" 1330 A$="FDDFDDDDDDDDDDGDDDDDDDGDDDDDDDDGDDDDDDDGDDDDGDDDDRUUUEUUUUE" 1332 GOSUB 4000 1334 A$="UUUUEUUUUEUUEUUEUUUEUUUEUUUEUUEUUEUEUEERFFDDDDFDDDDDDDDGDDDDDDDDDD" 1336 GOSUB 4000 1338 A$="GDDDDDDDDDDGDDDDDDDGDDDRUUUEUUUUUUUEUUUUEUUUUEUUUEUUUEUUUEUUUEUUUE" 1348 GOSUB 4000 1358 A$="UUUEUUEUEUEUEEFDDDDGDDDDDGDDDDDGDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDD" 1368 GOSUB 4000 1378 A$="RUEUEUEUEUEUEUEUEUEUEUEURDGDGDDGDDDGDDDDDFREUEEUEEUEEUEEUEEUEUE" 1388 GOSUB 4000 1398 A$="UEUEUEUUEUEUUEUEUUUUUHLLGGGDGDDGDDGDDGDDDGDDDGDDDDEREREEEERERER" 1408 GOSUB 4000 1418 A$="FFFDFDDDDDDDGDGDGGLHUUEUEEERRRFFRFRFRFREREREREREEEEEUEUEUEUUEUU" 1428 GOSUB 4000 1438 A$="UEUUUUHHLLLGLGLGGDGDGDGDDDGDDDDDDGDDDDDFDDDFFRREREE" 1448 GOSUB 4000 1450 FOR PAUSE=1 TO 200:NEXT PAUSE 1455 DRAW "BE28BU31" 1500 A$="UFDFDDDFDDDDDDDDDDDDGDDDDDDGDDDDDDGDDDGDDDGDDGDGDGDGDGDGLHHHH" 1505 GOSUB 4000 1510 A$="UHUHUUHUUEERFFFFFFRFFRFRRRFRRRRRERRRERRRERREEREEEEUEEUEUEUEUE" 1515 GOSUB 4000 1520 A$="UUUUUUUUUHUUHUHUHHHHHHHHLHHHLHHHLHHLHLLHLLHLLLHLLLLLLGLLLLG" 1525 GOSUB 4000 1530 A$="LLLGLLGLLGLLGLGLGLGLGGGGGGGDGDGDDGDDDFDFDFFRRRRRERRRRRRERRRRERRRE" 1535 GOSUB 4000 1540 A$="RRERRERRERRERRERERERERERERERERERERERERERERERERERERERERERERERERE" 1545 GOSUB 4000 1550 A$="RERERERERERERERE" 1555 GOSUB 4000 1560 FOR PAUSE=1 TO 200:NEXT PAUSE 1565 DRAW "BG43BD20" 1570 A$="DEREREEEEEUEEUEEUEUEUUEUUEUUUEUUEUUEURDGDDGDDDGDDDGDDDDDGDFFREEEU" 1575 GOSUB 4000 1580 A$="EEUEUUEUUUEUUUEUUUEDDDDGDDDGDDDFFRRRREEEUEEEUEEUEUEUEUUEUUEUUEUE" 1585 GOSUB 4000 1590 A$="UUEUEUUEUUEUUUEUHLGDGDGDDGDDDGDDDGDDDDGDDDDDDGDDDDDDGDDDDDDDDDDDG" 1595 GOSUB 4000 1600 A$="DDDDDDDDDDDDDDGDDDDDDDDDDDDDFFREUUUUUUUEUUUUUUUUUUUUUUUUUE" 1605 GOSUB 4000 1610 A$="UUUUUUUUUUUUEUUUUUUUUHUUURDDDFDDDFDFFRREEEEUEEEUEEEUEUEUEUEU" 1615 GOSUB 4000 1620 A$="EUEUEUUEUEUUEUEUUEUUUUUUUUHHLGGGDGDGDDGDDDDDGDDDDDDGDDDDDDG" 1625 GOSUB 4000 1630 A$="DDDGDDDGDDDGDDDDDDDDDDGDDDDDDDDDDDDGDDDDDDDDDDDDDFDDFDDFDDF" 1635 GOSUB 4000 1640 A$="DFRREUUUUUUUHUUUUUUUUUUUUUUUUUUUUHUUUUUUUUUUUUUUUUUUEUUUUUEUUUUUR" 1645 GOSUB 4000 1650 A$="DDDDDDDDDDFDFFREEEEEEEUEEEEEEEUERGDGGGDGDGDDFRREEREFEFDFDDDF" 1655 GOSUB 4000 1660 A$="DDDDDDDFDDDDDDDDDGDDDDDDDDDGDDDDDGDDDDDGDDDGDGDGDGDGGLLH" 1665 GOSUB 4000 1670 A$="LHLHHUREREEEUEEEUEUEUEUEUEUUEUUEUEUEUEUEUEUEUEU" 1675 GOSUB 4000 1700 SYSTEM 4000 FOR I=1 TO LEN(A$) 4002 DRAW MID$(A$,I,1)+"NR1" 4004 NEXT I 4006 RETURN 5000 REM this is RUNSHOW 5010 REM "GOTO 1050" TO PICSAVE 5020 DIM FILE$(12):DIM FF(100) 5030 DIM LEM1(1000):DIM XX(200):DIM YY(200) 5040 KEY 9,"gosub 890"+CHR$(13):KEY 10,"gosub 970"+CHR$(13) 5050 N=1 5060 FOR GRAB=1 TO N 5070 READ FILE$(GRAB) 5080 MEMDEL=GRAB*1024 5090 MEMORY=8192-MEMDEL:REM 128K SYSTEM 5100 'MEMORY=16384-MEMDEL:REM 256K SYSTEM 5110 GOSUB 6030 :REM LOAD FILE$(N) INTO LOCATION "MEMORY" 5120 NEXT 5130 RESTORE 5140 REM this is BASICMOV 5150 ' BASIC DEMO TO USE CALL FUNCTION 5160 ' USES AN ASSEMBLER SUBROUTINE TO MOVE 5170 ' UP TO 65535 BYTES IN MEMORY 5180 '****** 5190 KEY OFF 5200 'DEFINE SEGMENT TO PLACE THE ASSEMBLER CODE 5210 DEF SEG=&H1200 5220 ' THIS TEST IF IT IS ALREADY LOADED, IF NOT IT LOADS IT 5230 BLOAD"mcode.%%%",0 5240 SUBRT = 0 5250 ' A% = THE FROM ADDRESS 5260 ' B% = THE TO ADDRESS 5270 ' C% = THE LENGTH TO MOVE 5280 GOSUB 5820:REM TURN ON COLOR SCREEN 5290 DEF SEG=&H1200 5300 KEY OFF:SCREEN 1:COLOR 1,0 5310 FOR DISP=1 TO N 5320 MEMDEL=DISP*1024 5330 MEMORY=8192-MEMDEL:REM 128K SYSTEM 5340 PRINT MEMORY 5350 'MEMORY=16384-MEMDEL:REM 256K SYSTEM 5360 A%=MEMORY 5370 B%=&HB800 5380 C%=&H4000 5390 CALL SUBRT (A%,B%,C%) 5400 NEXT 5420 REM AT COMPLETION OF THIS LOOP, N FRAMES HAVE BEEN LOADED 5430 REM ********************SEQUENCING SETUP************************* 5440 REM ******OPTION TO STEP THRU SEQUENCE (1,2....N) BY HITTING ANY KEY****** 5450 PRINT "TO STEP THRU IN CONSECUTIVE SEQUENCE,I.E. FROM 1,2,.....N" 5460 INPUT "ENTER 'SS' FOR SINGLE STEP OPTION ";SS$:PRINT 5470 IF SS$="SS" THEN PRINT "CURRENT SEQUENCE IS 1,2,.......N" 5480 IF SS$="SS" THEN GOTO 5310 5490 REM ********************SELECTING DESIRED SEQUENCE************** 5500 PRINT "ENTER FRAME SEQUENCE NUMBERS ONE AT A TIME" 5510 FF=0:N=0 5520 INPUT "ENTER FRAME NUMBER ";FRAME$ 5530 PRINT "TO QUIT, HIT RETURN" 5540 IF FRAME$="" THEN GOTO 5590 5550 FRAME=VAL(FRAME$) 5560 N=N+1 5570 FF(N)=FRAME 5580 GOTO 5520 5590 PRINT "SEQUENCE IS":PRINT 5600 FOR SEQ=1 TO N:PRINT FF(SEQ):NEXT 5610 INPUT "SET PAUSE ";P 5620 PRINT "HIT ANY KEY TO RUN SEQUENCE" 5630 A$=INPUT$(1) 5640 DEF SEG=&H1200 5650 BLOAD"mcode.%%%",0 5660 SUBRT = 0 5670 GOSUB 5820:REM TURN ON COLOR SCREEN 5680 DEF SEG=&H1200 5690 KEY OFF:SCREEN 1:COLOR 1,0 5700 FOR SHOW=1 TO N 5710 MEMDEL=FF(SHOW)*1024 5720 MEMORY=8192-MEMDEL:REM 128K SYSTEM 5730 'MEMORY=16384-MEMDEL:REM 256K SYSTEM 5740 A%=MEMORY 5750 B%=&HB800 5760 C%=&H4000 5770 CALL SUBRT (A%,B%,C%) 5780 FOR N=1 TO P:NEXT 5790 NEXT 5800 END 5810 REM switch to color/graphics adapter 5820 DEF SEG=0 5830 POKE &H410,(PEEK(&H410) AND &HCF) OR &H20 5840 DEF SEG 5850 LOCATE ,,1,6,7 5860 SCREEN 0 5870 WIDTH 40 5880 RETURN 5890 REM switch to monochrome adapter 5900 DEF SEG=0 5910 POKE &H410,(PEEK(&H410) OR &H30) 5920 DEF SEG 5930 LOCATE ,,1,12,13 5940 SCREEN 0 5950 WIDTH 80 5960 RETURN 5970 REM this is PICSAVE 5980 INPUT "WHAT IS THE NAME YOU WANT TO SAVE UNDER ",A$ 5990 DEF SEG=&HB800 6000 BSAVE A$,0,16384 6010 PRINT "SAVING ",A$ 6020 END 6030 'PRINT "LOADING ";FILE$(GRAB);" STARTING AT ";MEMORY*16 6040 DEF SEG=MEMORY 6050 S$=FILE$(GRAB) 6060 BLOAD S$,0 6070 RETURN 6080 DATA SELF.pic 60000 'SAVE"GCS",A 'GRAPHICS CHARACTER SUBROUTINES 60010 'DISPLAY STRING 60020 FOR I=1 TO LEN(D$):A=ASC(MID$(D$,I,1)) 60030 IF OS=128 THEN IF A<>32 THEN A=A+128 60040 'DISPLAY CHARACTER 60050 LX=X+W(A):IF LX>WID THEN X=0:Y=Y+SH:GOTO 60050 60060 LY=Y+H(A):IF LY>200 THEN Y=0:X=0:GOTO 60050 60070 IF (X AND 1)=0 THEN SWAP EC,OC 60080 IF BC<4 THEN LINE(X,Y)-(LX-1,LY-1),BC,BF 60090 K=POINT(X,Y):PSET(X,Y),K:FOR K=0 TO 2:IF CHAR$(A,K)<>"" THEN DRAW CHAR$(A,K) 60100 NEXT K:IF (X AND 1)=0 THEN SWAP EC,OC 60110 X=LX:IF X+SW>WID THEN X=0:Y=Y+SH:IF Y+SH>200 THEN Y=0 60120 NEXT I:RETURN 60130 ' 60140 'INITIALIZATION 60145 'GOSUB 5000:REM LOAD IN VIDEO IMAGES OF SELF,....... 60150 A=0:X=0:Y=0:LX=0:LY=0:EC=3:OC=3:BC=4:D$="":K=0:WID=320 60160 DIM CHAR$(255,2),H(255),W(255) 60170 'GET CHARACTER SET 60180 OPEN "ELEPH.EXE" FOR INPUT AS #1 60190 INPUT #1,DEC,H,W,K:IF DEC=0 THEN 60220 60200 FOR I=0 TO K-1:INPUT #1,D$:IF H(DEC)<>99 THEN CHAR$(DEC,I)=D$ 60210 NEXT I:H(DEC)=H:W(DEC)=W:GOTO 60190 60220 CLOSE #1:SH=H:SW=W:H(32)=SH:W(32)=SW:RETURN