106 lines
3.9 KiB
Plaintext
106 lines
3.9 KiB
Plaintext
10 rem video modes - c64
|
|
15 rem rosetta code
|
|
20 print chr$(147);chr$(14):poke 53280,0:poke 53281,0:poke 646,1
|
|
25 poke 53282,2:poke 53283,11:poke 53284,9:rem set extended and multi colors
|
|
30 if peek(12288)=60 and peek(12289)=102 then goto 100
|
|
35 poke 52,32:poke 56,32:clr
|
|
40 print "Initializing - Please wait..."
|
|
45 poke 56334,peek(56334) and 254:poke1,peek(1) and 251
|
|
50 for i=0 to 4096:poke i+12288,peek(i+53248):next
|
|
55 poke1,peek(1) or 4:poke56334,peek(56334) or 1
|
|
60 for i=0 to 31:read d:poke 15368+i,d:next i
|
|
65 x=0:for i=8192 to 10239:poke i,2^x:x=(x+1) and 7:next
|
|
70 for i=10240 to 12287:poke i,228:next
|
|
100 data 60,66,165,129,165,153,66,60
|
|
105 data 60,66,165,129,153,165,66,60
|
|
110 data 245,245,245,245,10,10,10,10
|
|
115 data 10,10,10,10,245,245,245,245
|
|
480 print chr$(147);"Demonstration of Video Modes"
|
|
485 print
|
|
490 print "The video modes described at Rosetta "
|
|
495 print "Code will be demonstrated in order. "
|
|
500 print "Simply press a key to advance to the"
|
|
505 print "next video mode."
|
|
510 print
|
|
515 print "See rosettacode.org for description."
|
|
516 print
|
|
517 print "http://www.rosettacode.org/wiki/";
|
|
518 print "Video";chr$(164);"display";chr$(164);"modes#";
|
|
519 print "Commodore";chr$(164);"BASIC"
|
|
520 print
|
|
525 print "Press any key to begin."
|
|
530 gosub 9010
|
|
600 print chr$(147);"Standard Character Mode"
|
|
605 print " - ROM Characters"
|
|
610 print:gosub 1000:print:gosub 9000:print chr$(147)
|
|
615 gosub 1210
|
|
620 print chr$(147);"Multicolor Character Mode"
|
|
625 print " - ROM Characters"
|
|
630 print:gosub 1000:print:gosub 9000:print chr$(147)
|
|
635 gosub 1220
|
|
640 gosub 1310
|
|
645 print chr$(147);"Extended Color Character Mode"
|
|
650 print " - ROM Characters"
|
|
655 print:gosub 1000:print:gosub 9000:print chr$(147)
|
|
660 gosub 1320
|
|
665 gosub 1100
|
|
670 print chr$(147);"Standard Character Mode"
|
|
675 print " - Programmed Characters"
|
|
680 print:gosub 1000:print:gosub 9000:print chr$(147)
|
|
685 gosub 1210
|
|
690 print chr$(147);"Multicolor Character Mode"
|
|
695 print " - Programmed Characters"
|
|
700 print:gosub 1000:print:gosub 9000:print chr$(147)
|
|
705 gosub 1220
|
|
710 gosub 1310
|
|
715 print chr$(147);"Extended Color Character Mode"
|
|
720 print " - Programmed Characters"
|
|
725 print:gosub 1000:print:gosub 9000:print chr$(147)
|
|
730 gosub 1320
|
|
735 print chr$(147);"The next screen will be the"
|
|
740 print "High Resolution Bit Map Mode"
|
|
745 print
|
|
750 gosub 9000
|
|
755 gosub 1430:gosub 1410
|
|
760 print:gosub 1050:print:gosub 9010:print chr$(147)
|
|
765 gosub 1420:gosub 1120
|
|
770 print chr$(147);"The next screen will be the"
|
|
775 print "Multicolor High Resolution Bit Map Mode"
|
|
780 print
|
|
785 gosub 9000
|
|
790 gosub 1430:gosub 1410:gosub 1210
|
|
795 print:gosub 1050:print:gosub 9010:print chr$(147)
|
|
800 gosub 1420:gosub 1220:gosub 1120
|
|
805 print chr$(147);"End of demonstration."
|
|
810 end
|
|
1000 rem put some characters up for demo
|
|
1005 for i=0 to 15:poke 646,i
|
|
1010 print" a b c d ";
|
|
1011 print chr$(160);"A";chr$(160);"B";chr$(160);"C";chr$(160);"D";chr$(160);
|
|
1012 print chr$(18);" a b c d ";
|
|
1013 print chr$(160);"A";chr$(160);"B";chr$(160);"C";chr$(160);"D";chr$(160);
|
|
1014 print chr$(146)
|
|
1015 next i:poke 646,1
|
|
1020 return
|
|
1050 rem show color variety for hi-res modes
|
|
1051 print chr$(147)
|
|
1055 for i=0 to 255:poke 1024+i,i:poke 55296+i,1:next
|
|
1060 for i=0 to 255:poke 1280+i,i:poke 55552+i,int(rnd(1)*16):next
|
|
1065 return
|
|
1100 rem programmable character mode
|
|
1110 poke 53272,(peek(53272) and 240)+14:return:rem on
|
|
1120 poke 53272,(peek(53272) and 240)+6:return:rem off
|
|
1200 rem multicolor mode
|
|
1210 poke 53270,peek(53270) or 16:return:rem on
|
|
1220 poke 53270,peek(53270) and 239:return:rem off
|
|
1300 rem extended color mode
|
|
1310 poke 53265,peek(53265) or 64:return:rem on
|
|
1320 poke 53265,peek(53265) and 191:return:rem off
|
|
1400 rem hi res mode
|
|
1410 poke 53265,(peek(53265) or 32):return:rem on
|
|
1420 poke 53265,(peek(53265) and 223):return:rem off
|
|
1430 poke 53272,peek(53272) or 8:return:rem place bitmap at 8192
|
|
9000 print "Press any key for next screen.";
|
|
9010 get k$:if k$="" then 9010
|
|
9020 return
|