4 PRINT CHR$(27);"*" 5 CLEAR ,32766! 6 LET DRAW= &H8033 7 LET INIT= &H800A 8 LET MOVEIT= &H8033 9 LET P5= 32768! 10 PRINT "RLE VIDEO DUMP UTILITY Version 1.0 for TeleVideo TPC-1 and TS-803" 11 PRINT "Created: 07/11/87 by DAVE CLIFFORD":PRINT "TIME-==-CHANGE MBBS-RCP/M (213) 329-3922":PRINT :PRINT 12 LET MARGIN=80 13 POKE P5,MARGIN 14 POKE P5+1,0 28 LET GRAPH= &H805A 29 LET ALPHA= &H8066 30 LET P1= 32770! 31 LET P2= 32772! 32 LET P3= 32774! 33 LET P4= 32776! 34 POKE P1,0 35 POKE P1+1,0 36 POKE P2,239 37 POKE P2+1,0 38 POKE P3,0 39 POKE P3+1,0 40 POKE P4,239 41 POKE P4+1,0 42 RESTORE 43 LET INVERT=0 45 GOSUB 1000 46 GOSUB 5000 47 GOSUB 1500 48 PRINT "SYNTAX = filename.RLE" 50 INPUT "FILENAME ";F$ 51 GOSUB 1250 52 PRINT 53 PRINT "Decoding--> ";F$;" and sending to the CRT..." 54 LET B= INVERT 56 LET T=0 58 '**** OPEN THE FILE AND STRIP THE FIRST 3 (USUALLY) BYTES **** 100 OPEN "I",1,F$ 102 LET C=(ASC(INPUT$(1,#1))) 103 PRINT "TRASH==>";C; 104 IF C=27 THEN PRINT "<== DENOTES ESCAPE CODE" 105 IF C=71 THEN PRINT "<== (G) GRAPHICS ENABLE FLAG" 106 IF C=72 THEN PRINT "<== (H)= HIGH REZ (M)= MED REZ PIC" 107 '**** GO SETUP THE SYSTEM AND DUMP THE PIC 108 IF C=72 THEN PRINT : PRINT "OK... GO GET COFFEE I'M BUSY....":GOTO 185 109 GOTO 102 150 LET R=(ASC(INPUT$(1,#1))) 152 LET R=R-32 154 IF R<0 THEN LET R=0 156 LET T=T+R 158 LET TIC=R 160 GOSUB 7000 165 GOSUB 6000 170 IF EOF(1)=-1 THEN CLOSE #1:GOTO 1102 180 GOTO 150 185 CALL INIT 190 GOTO 180 999 '**************************************************************** 1000 FOR MCP= 32778! TO 32887! 1005 READ HPD 1010 POKE MCP,HPD 1015 NEXT MCP 1018 '******************* TPC-1 CRT GRAPHICS DRIVER MODULE ****************** 1020 DATA &HC5,&HD5,&HE5,&H0E,&H01,&HCD,&H5E,&H80,&H0E,&H02,&HCD,&H5E,&H80,&H0E,&H0B,&H21 1025 DATA &H01,&H00,&HCD,&H5E,&H80,&H0E,&H0C,&H21,&H01,&H00,&HCD,&H5E,&H80,&H0E,&H0E,&H21 1030 DATA &H01,&H00,&HCD,&H5E,&H80,&HE1,&HD1,&HC1,&HC9,&HD5,&HE5,&H0E,&H04,&H2A,&H02,&H80 1035 DATA &HC5,&HED,&H4B,&H00,&H80,&H09,&HC1,&HED,&H5B,&H04,&H80,&HCD,&H5E,&H80,&H0E,&H05 1040 DATA &H2A,&H06,&H80,&HC5,&HED,&H4B,&H00,&H80,&H09,&HC1,&HED,&H5B,&H08,&H80,&HCD,&H5E 1045 DATA &H80,&HE1,&HD1,&HC9,&HEF,&HC9,&HC5,&HD5,&HE5,&H0E,&H01,&HCD,&H5E,&H80,&HE1,&HD1 1050 DATA &HC1,&HC9,&HC5,&HD5,&HE5,&H0E,&H00,&HCD,&H5E,&H80,&HE1,&HD1,&HC1,&HC9 1099 RETURN 1100 '***************************************************************** 1102 '****** RESET COUNTERS FOR NEXT PIC SO EVERYTHINGS STRAIGHT ****** 1103 '***************************************************************** 1105 LET B=INVERT 1106 LET LFEED=239 1107 LET LTOG=0 1108 LET LMAX=0 1110 GOTO 1500 1250 FOR ZZ=1 TO LEN(F$):MID$(F$,ZZ,1)=CHR$(ASC(MID$(F$,ZZ,1))+32*(ASC(MID$(F$,ZZ,1)) > 96)) 1255 NEXT ZZ 1260 RETURN 1500 PRINT:PRINT "NOTE: Use CAP-SHIFT and ALT / MODE keys to toggle GRAPHICS/ALPHA displays.": PRINT "----------------------------":PRINT " COMMAND MENU":PRINT 1505 PRINT " I = INVERT for PUDD ( See DUMP.DOC for more information.)" 1507 PRINT 1510 PRINT " D = DUMP a file to the CRT" 1512 PRINT 1515 PRINT " L = List *.RLE files" 1517 PRINT 1520 PRINT " E = EXIT to CP/M" 1525 PRINT 1527 PRINT CHR$(7) 1530 INPUT "COMMAND ";F$ 1535 GOSUB 1250 1537 IF F$= "I" THEN LET INVERT=1 1540 IF F$= "D" THEN GOTO 48 1545 IF F$= "L" THEN GOTO 8000 1550 IF F$= "E" THEN GOTO 1700 1555 GOTO 1500 1700 SYSTEM 1999 '***** CRT GRAPHICS MODULE DRIVE ROUTINES ******** 2000 FOR POFF=1 TO TIC 2010 LET LMAX=LMAX+2 2020 IF LMAX>255 THEN LET LMAX=LMAX-256:GOSUB 9500 2022 POKE P1,LMAX 2024 POKE P3,LMAX 2025 POKE P5+1,LTOG 2030 NEXT POFF 2032 LET B=1 2040 RETURN 3000 FOR PON=1 TO TIC 3005 CALL DRAW 3010 LET LMAX=LMAX+2 3020 IF LMAX>255 THEN LET LMAX=LMAX-256:GOSUB 9500 3022 POKE P1,LMAX 3024 POKE P3,LMAX 3025 POKE P5+1,LTOG 3030 NEXT PON 3032 LET B=0 3040 RETURN 5000 '******* PROGRAM EQUATES ********* 5010 LET PTOG=0 5015 LET LTOG=0 5020 LET TIC=0 5030 LET L=1 5040 LET LMAX=0 5050 LET LFEED= 239 5052 POKE P2,LFEED 5054 POKE P4,LFEED 5060 LET B=INVERT 5065 RETURN 5999 '******* PIXEL LOGIC AND TOGGLE ROUTINES ****** 6000 IF PTOG=1 THEN GOSUB 3000 6010 IF PTOG=0 THEN GOSUB 2000 6999 RETURN 7000 LET PTOG=B 7999 RETURN 8000 FILES "*.RLE" 8002 GOTO 1500 8999 '****** DO CRT LINEFEED AND LINE LENGTH TOGGLE ******** 9000 LET LFEED= LFEED-1 9002 LET LTOG=0 9005 POKE P2,LFEED 9010 POKE P4,LFEED 9015 RETURN 9500 IF LTOG=1 THEN GOTO 9000 9510 IF LTOG=0 THEN LET LTOG=1 9515 RETURN