5 REM welcome - calls elephant 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$="WELCOME TO THE WORLD":GOSUB 60010 1202 X=125:Y=48:D$="OF THE":GOSUB 60010 1211 EC=3:OC=3:BC=4:X=24:Y=150:OS=128:D$="{}~ Personal Computer":GOSUB 60010 5000 REM this is RUNSHOW 5020 DIM FILE$(12):DIM FF(100) 5030 REM ***LOADING IN REQUIRED PICTURES*** 5050 N=10 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 DISP=1:GOSUB 6290:REM DISPLAY "SELF" 5395 SCREEN 1,0:COLOR 1,0:K=0:MN=0:Z=0 5396 DEF SEG=&HB800 5400 OS=0:EC=2:OC=2:BC=3:X=90:Y=5:D$="GREETINGS!!":GOSUB 60010 5405 EC=2:OC=2:BC=1:X=30:Y=155:D$="I AM THE IBM PERSONAL":GOSUB 60010 5410 EC=2:OC=2:BC=1:X=30:Y=175:D$=" COMPUTER ":GOSUB 60010 5415 'EC=2:OC=2:BC=1:X=30:Y=155:D$=" ":GOSUB 60010 5417 FOR PAUSE=1 TO 2500:NEXT 5420 OS=0:EC=2:OC=2:BC=1:X=30:Y=5:D$=" I MADE THIS PICTURE ":GOSUB 60010 5425 EC=2:OC=2:BC=1:X=30:Y=155:D$=" THAT YOU NOW SEE ":GOSUB 60010 5430 EC=2:OC=2:BC=1:X=30:Y=175:D$=" WITH A TV CAMERA!! ":GOSUB 60010 5432 FOR PAUSE=1 TO 2500:NEXT 5435 OS=0:EC=2:OC=2:BC=1:X=30:Y=5:D$=" LET ME SHOW YOU ":GOSUB 60010 5436 EC=2:OC=2:BC=1:X=30:Y=155:D$=" SOME OF THE PICTURES ":GOSUB 60010 5437 EC=2:OC=2:BC=1:X=30:Y=175:D$=" THAT I HAVE TAKEN ":GOSUB 60010 5438 FOR PAUSE=1 TO 2000:NEXT 5440 DISP=2:GOSUB 6290 5445 FOR PAUSE=1 TO 2500:NEXT 5450 DISP=3:GOSUB 6290 5455 FOR PAUSE=1 TO 2500:NEXT 5460 DISP=4:GOSUB 6290 5465 FOR PAUSE=1 TO 2500:NEXT 5470 DISP=5:GOSUB 6290 5475 FOR PAUSE=1 TO 2500:NEXT 5480 DISP=6:GOSUB 6290 5485 FOR N=1 TO 25 5490 DISP=5:GOSUB 6290 5495 DISP=6:GOSUB 6290 5500 FOR PAUSE=1 TO 5:NEXT 5505 NEXT 5510 FOR PAUSE=1 TO 1000:NEXT 5515 DISP=7:GOSUB 6290 5520 FOR PAUSE=1 TO 2500:NEXT 5525 DISP=8:GOSUB 6290 5530 FOR PAUSE=1 TO 2500:NEXT 5535 DISP=9:GOSUB 6290 5540 FOR PAUSE=1 TO 2500:NEXT 5545 DISP=10:GOSUB 6290 5548 FOR PAUSE=1 TO 2500:NEXT 5550 CLS 5560 OS=0:EC=2:OC=2:BC=3:X=30:Y=5:D$="I CAN ALSO DO.........":GOSUB 60010 5565 EC=2:OC=2:BC=1:X=50:Y=35:D$=" - THINGS FOR WORK":GOSUB 60010 5575 EC=2:OC=2:BC=1:X=50:Y=65:D$=" - PLAY GAMES":GOSUB 60010 5580 EC=2:OC=2:BC=1:X=50:Y=95:D$=" - ANIMATED ARTWORK":GOSUB 60010 5581 FOR PAUSE =1 TO 2000:NEXT 5582 COLOR 1,0 5583 CLS 5584 OS=0:EC=1:OC=1:BC=2:X=70:Y=80:D$=" ":GOSUB 60010 5586 EC=1:OC=1:BC=2:X=70:Y=100:D$=" WATCH ME!!!! ":GOSUB 60010 5587 EC=1:OC=1:BC=2:X=70:Y=120:D$=" ":GOSUB 60010 5595 FOR PAUSE=1 TO 2500:NEXT 5800 RUN"pictdisp 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 6030 RUN "elephant 6040 DEF SEG=MEMORY 6050 S$="d:"+FILE$(GRAB) 6060 BLOAD S$,0 6070 RETURN 6080 DATA SELF.pic,DAVIS.PIC,TK01.PIC,REDROOS.PIC,PEACOCK1.PIC,PEACOCKF.PIC,BLUEPALM.PIC,HAMMCOL.PIC,SWALLOW1.PIC,IBM.PIC 6280 GOSUB 5820:REM TURN ON COLOR SCREEN 6290 DEF SEG=&H1200 6300 KEY OFF:SCREEN 1:COLOR 1,0 6310 'FOR DISP=1 TO N 6320 MEMDEL=DISP*1024 6330 'MEMORY=8192-MEMDEL:REM 128K SYSTEM 6350 MEMORY=16384-MEMDEL:REM 256K SYSTEM 6360 A%=MEMORY 6370 B%=&HB800 6380 C%=&H4000 6390 CALL SUBRT (A%,B%,C%):RETURN:'NEXT 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