TAPE GRAPHICS MODULE
SC-3000 BASIC Level III-B — part of the SE3K documentation library, also readable inside the emulator.
20000 REM ==== MAGICAL LABYRINTH -- TAPE MASTERING (turnkey: RUN 20000) ==== 20005 PRINT "TAPE MASTERING" 20010 GOSUB 20200 20015 GOSUB 20600 20020 GOSUB 9000 20025 GOSUB 20500 20030 GOSUB 20800 20040 PRINT "DONE. Graphics saved to tape." 20050 END 20200 REM ch1 setup skipped by boot: load VRAM_WRITE + VRAM_READ 20205 AW=&H2BB3:WV=&H2BB6:DSPGRP=&H39E2:KR=&H4A00:K4=&H9464:MP=&HC880 20210 RESTORE 20215:FOR I=0 TO 12:READ B:POKE &HC070+I,B:NEXT I 20215 DATA &H2A,&H80,&HC8,&HCD,&HB3,&H2B,&H3A,&H82,&HC8,&HCD,&HB6,&H2B,&HC9 20220 RESTORE 20225:FOR I=0 TO 12:READ B:POKE &HC090+I,B:NEXT I 20225 DATA &H2A,&H80,&HC8,&HCD,&HB9,&H2B,&HCD,&HBC,&H2B,&H32,&H88,&HC8,&HC9 20230 PRINT "ch1 setup: VRAM_WRITE/READ loaded" 20240 RETURN 20500 REM load BINSAVER ($CA00) + VRAMSAVER ($CA40) 20510 RESTORE 20540:FOR I=0 TO 52:READ B:POKE &HCA00+I,B:NEXT I 20540 DATA &HCD,&H0F,&H3A,&H3A,&H80,&HC8,&HCD,&H12,&H3A,&H3A 20542 DATA &H81,&HC8,&HCD,&H12,&H3A,&H3A,&H82,&HC8,&HCD,&H12 20544 DATA &H3A,&H3A,&H83,&HC8,&HCD,&H12,&H3A,&H2A,&H80,&HC8 20546 DATA &HED,&H4B,&H82,&HC8,&H1E,&H00,&H7E,&HCD,&H12,&H3A 20548 DATA &H83,&H5F,&H23,&H0B,&H78,&HB1,&H20,&HF4,&H7B,&HCD 20550 DATA &H12,&H3A,&HC9 20560 RESTORE 20580:FOR I=0 TO 59:READ B:POKE &HCA40+I,B:NEXT I 20580 DATA &HCD,&H0F,&H3A,&H3A,&H84,&HC8,&HCD,&H12,&H3A,&H3A 20582 DATA &H85,&HC8,&HCD,&H12,&H3A,&H3A,&H82,&HC8,&HCD,&H12 20584 DATA &H3A,&H3A,&H83,&HC8,&HCD,&H12,&H3A,&H3A,&H80,&HC8 20586 DATA &HD3,&HBF,&H3A,&H81,&HC8,&HD3,&HBF,&HED,&H4B,&H82 20588 DATA &HC8,&H1E,&H00,&HDB,&HBE,&HCD,&H12,&H3A,&HAB,&H5F 20590 DATA &H0B,&H78,&HB1,&H20,&HF4,&H7B,&HCD,&H12,&H3A,&HC9 20595 PRINT "Savers loaded" 20599 RETURN 20600 REM generate font+glyphs into VRAM via LOAD_CHAR ($C0B0) 20605 GOSUB 3000 20610 RESTORE 20650 20620 FOR G=0 TO 75 20625 READ CO 20630 FOR K=0 TO 7:READ B:POKE &HC882+K,B:NEXT K 20635 POKE &HC880,CO:POKE &HC881,&HF1:CALL &HC0B0 20640 NEXT G 20645 PRINT "Font generated:";76;"glyphs" 20649 RETURN 20650 DATA 2,255,129,129,129,129,129,129,255 20651 DATA 25,0,0,0,0,0,0,0,0 20652 DATA 112,255,171,171,171,171,171,171,255 20653 DATA 113,255,147,147,147,147,147,147,255 20654 DATA 114,255,137,137,137,137,137,137,255 20655 DATA 115,255,133,133,133,133,133,133,255 20656 DATA 116,255,171,171,171,171,171,171,255 20657 DATA 117,255,129,129,255,129,129,255,255 20658 DATA 118,255,137,137,137,137,137,137,255 20659 DATA 119,255,161,137,195,145,133,161,255 20660 DATA 120,255,171,171,171,171,171,171,255 20661 DATA 121,255,201,165,147,201,165,147,255 20662 DATA 122,255,137,137,137,137,137,137,255 20663 DATA 123,255,195,161,145,137,133,195,255 20664 DATA 124,255,171,171,171,171,171,171,255 20665 DATA 125,255,147,147,147,147,147,147,255 20666 DATA 126,255,137,137,137,137,137,137,255 20667 DATA 127,255,145,195,137,161,133,145,255 20668 DATA 128,255,171,171,171,171,171,171,255 20669 DATA 129,255,129,129,255,129,129,255,255 20670 DATA 130,255,137,137,137,137,137,137,255 20671 DATA 131,255,129,129,129,129,255,129,255 20672 DATA 132,255,171,171,171,171,171,171,255 20673 DATA 133,255,201,165,147,201,165,147,255 20674 DATA 134,255,137,137,137,137,137,137,255 20675 DATA 135,255,133,133,133,133,133,133,255 20676 DATA 144,112,136,152,168,200,136,112,0 20677 DATA 145,32,96,32,32,32,32,112,0 20678 DATA 146,112,136,8,16,32,64,248,0 20679 DATA 147,248,16,32,16,8,136,112,0 20680 DATA 148,16,48,80,144,248,16,16,0 20681 DATA 149,248,128,240,8,8,136,112,0 20682 DATA 150,48,64,128,240,136,136,112,0 20683 DATA 151,248,8,16,32,64,64,64,0 20684 DATA 152,112,136,136,112,136,136,112,0 20685 DATA 153,112,136,136,120,8,16,96,0 20686 DATA 155,112,136,8,16,32,0,32,0 20687 DATA 160,112,136,136,248,136,136,136,0 20688 DATA 161,240,136,136,240,136,136,240,0 20689 DATA 162,112,136,128,128,128,136,112,0 20690 DATA 163,240,136,136,136,136,136,240,0 20691 DATA 164,248,128,128,240,128,128,248,0 20692 DATA 165,248,128,128,240,128,128,128,0 20693 DATA 166,112,136,128,184,136,136,120,0 20694 DATA 167,136,136,136,248,136,136,136,0 20695 DATA 168,112,32,32,32,32,32,112,0 20696 DATA 169,56,16,16,16,144,144,96,0 20697 DATA 170,136,144,160,192,160,144,136,0 20698 DATA 171,128,128,128,128,128,128,248,0 20699 DATA 172,136,216,168,168,136,136,136,0 20700 DATA 173,136,200,168,152,136,136,136,0 20701 DATA 174,112,136,136,136,136,136,112,0 20702 DATA 175,240,136,136,240,128,128,128,0 20703 DATA 176,112,136,136,136,168,144,104,0 20704 DATA 177,240,136,136,240,160,144,136,0 20705 DATA 178,120,128,128,112,8,8,240,0 20706 DATA 179,248,32,32,32,32,32,32,0 20707 DATA 180,136,136,136,136,136,136,112,0 20708 DATA 181,136,136,136,136,136,80,32,0 20709 DATA 182,136,136,136,168,168,216,136,0 20710 DATA 183,136,136,80,32,80,136,136,0 20711 DATA 184,136,136,80,32,32,32,32,0 20712 DATA 185,248,8,16,32,64,128,248,0 20713 DATA 192,32,112,248,32,32,32,32,0 20714 DATA 193,8,12,254,12,8,0,0,0 20715 DATA 194,32,32,32,32,248,112,32,0 20716 DATA 195,16,48,254,48,16,0,0,0 20717 DATA 196,255,198,186,186,186,130,255,0 20718 DATA 197,255,198,186,186,186,130,255,0 20719 DATA 198,255,198,186,186,186,130,255,0 20720 DATA 199,255,198,186,186,186,130,255,0 20721 DATA 200,255,255,255,255,255,255,255,255 20722 DATA 201,56,68,146,170,146,68,56,0 20723 DATA 202,255,255,255,255,255,255,255,0 20724 DATA 203,255,129,129,129,129,129,255,0 20725 DATA 204,0,0,0,255,255,0,0,0 20800 REM save 7 blocks: pattern x3 thirds, colour x3 thirds, sprite 20805 PRINT "Insert blank tape. RECORD+PLAY, then a key." 20810 IF INKEY$="" THEN 20810 20815 POKE &HC880,0:POKE &HC881,0:POKE &HC882,0:POKE &HC883,&H07 20816 POKE &HC884,0:POKE &HC885,&H00:PRINT "pattern 1/3":CALL &HCA40 20817 POKE &HC884,0:POKE &HC885,&H08:PRINT "pattern 2/3":CALL &HCA40 20818 POKE &HC884,0:POKE &HC885,&H10:PRINT "pattern 3/3":CALL &HCA40 20820 POKE &HC880,0:POKE &HC881,&H20:POKE &HC882,0:POKE &HC883,&H07 20821 POKE &HC884,0:POKE &HC885,&H20:PRINT "colour 1/3":CALL &HCA40 20822 POKE &HC884,0:POKE &HC885,&H28:PRINT "colour 2/3":CALL &HCA40 20823 POKE &HC884,0:POKE &HC885,&H30:PRINT "colour 3/3":CALL &HCA40 20825 POKE &HC880,0:POKE &HC881,&H38:POKE &HC882,&H20:POKE &HC883,0 20826 POKE &HC884,0:POKE &HC885,&H38:PRINT "sprite":CALL &HCA40 20899 RETURN 20900 REM fast-load graphics from tape (pattern,colour,sprite) 20905 GOSUB 2200 20910 PRINT "Rewind tape, press PLAY, then a key." 20915 IF INKEY$="" THEN 20915 20920 FOR BL=1 TO 7:GOSUB 2500:NEXT BL 20945 PRINT "Graphics loaded (3 thirds)." 20950 RETURN