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