SE3K Survivors Experience 3000

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