Yamaha Portatone PSR-6300 Demonstration Disk

Page 1/2
| 2

By encore

Supporter (9)

encore's picture

20-08-2021, 18:10

Hi folks,

I thought this might interest some of you. I have a few musical instruments, among those a Yamaha PSR-6300 keyboard and I recently bought a disk on e-bay that poked my interest. It's a demonstration disk for this keyboard. I've imaged it and uploaded it here:

https://archive.org/details/yamaha_portatone_psr-6300_demons...

At first I was unsure what kind of computer it was for (it was readable in DOS) but together with a friend I figured out that it was likely for a Yamaha-computer of the same era (1986~ish) as the keyboard, and I was able to get the software going by running it in OpenMSX, emulating a YAMAHA YIS-805/128R2 with a YAMAHA SFG-05 FM Sound Synthesizer Unit (without it, the program complains about missing FM unit).

I've also tried hooking my PC up to the PSR-6300 keyboard via a MIDI-interface and connecting it in the emulator and it sorta works. Some of the arrangements that it transfers over works fine and starts playing by themselves, but some of the others, like the cover of Miami Sound Machine's Conga sounds kind of broken in the bassline and doesn't start playing by itself. Not sure why that is, maybe it's the emulator or the MIDI-timing, I will investigate this more at some point. I could also record a video so others can see how it's supposed to be experienced, but it would be nice if the issues were solved first.

Another interesting discovery was when I looked at the disk image in a hexeditor, I could see some screen dumps of Z80-code. I'm not very acquainted with MSX-computers so you guys could probably present more findings about it than I can.

Hope you enjoy taking a look at it. :)

Login or register to post comments

By Pac

Scribe (6971)

Pac's picture

21-08-2021, 16:58

Thank you for sharing. I love to see how we are still discovering new related MSX stuff in the 21st Century. Tongue

By encore

Supporter (9)

encore's picture

22-08-2021, 10:34

Thanks! Yeah, I guess it's a niche interest to both enjoy musical keyboards and old home computers and see those two interests merge, like in this case. Smile

I also have a Yamaha PSR-70 and I would love to see the PS-Editor ( http://www.generation-msx.nl/software/yamaha/ps-editor/833/ ) cartridge for that keyboard surface on the web one day as well!

Can anyone tell me more about how this demonstration disk was put together? Something told me (when I scanned through the files) that it was a combination of BASIC and assembler-code? Are the demo-effects handcoded routines or are they just using BASIC-routines?

By Manuel

Ascended (19310)

Manuel's picture

23-08-2021, 01:28

I took a look at the program. At first sight, It seems to run on any MSX with the SFG-01 or 05 unit, with floppy drive (you can add a Yamaha FD-05 for instance). Although it uses MSX1 screen mode 2, it does seem to use the palette features of the MSX2 video chip (V9938). So, it is meant to run on MSX machines with a V9938, but doesn't require more than 16kB VRAM. And it also doesn't require more than SFG-01 and 32kB RAM.
In other words, machines like the Yamaha CX11, CX5MII, but it will also run on a Spectravideo SVI-738 with the SFG-01/05 unit plugged in (if that machine would have had a double sided disk drive...)

It does make excellent use of the V9938's palette options on the screen 2 mode! There's some awesome graphics on that disk.

The programs are a mix of MSX-BASIC and machine language.

Part of the machine language source code is indeed on the disk. At least there is a file called 'konomi.mac' that contains about 7kB of Z80 assembly language.

It has some protection features... like the AUTOEXEC.BAS, if you try to list it, it yields nothing. But if you first RENUM, you get this:

10 SCREEN0:WIDTH40:COLOR15,0,0:CLS:KEYOFF
20 LOCATE7,11:PRINT"PLEASE WAIT FOR LOADING"
30 RUN"A"+CHR$(&H7F)

So, it runs a file with a non-listable filename at it contains a DEL character at the end... nice trick, Yamaha!

That program loads a machine language routine and several files and then the next hidden file:

10 '---"A"+chr$(&h7f)---
20 'SCREEN2,2:COLOR15,0,0:CLS
30 CLEAR200,&H8BFF:BLOAD"psr6301s.com"
31 ONSTOPGOSUB32:STOPON:GOTO40
32 RETURN
40 DEFUSR0=&H8C00:'ini0
50 DEFUSR1=&H8C03:'playst
60 DEFUSR2=&H8C06:'cmpdts
70 DEFUSR3=&H8C09:'entry
80 DEFUSR4=&H8C0C:'entry2
90 I=USR0(0)
100 BLOAD"ORIG11.PSR":I=USR2(0)
110 BLOAD"ORIG12.PSR":I=USR4(0)
120 BLOAD"ORIG13.PSR":I=USR4(0)
130 RUN"B"+CHR$(&H7F)

That B program loads a 'hidden' machine language file, graphics and whatnot and then runs another hidden BASIC program:

10 '----"B"+CHR$(&H7F)-----
20 SCREEN2,2:COLOR15,0,0:CLS
30 CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
40 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&D00F:DEFUSR6=&HD013:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
50 ONSTOPGOSUB60:STOPON:GOTO70
60 RETURN
70 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:OUT&H9A,0:NEXT:NEXT
80 BLOAD"2AB.GRP",S
90 BLOAD"1AB.GRP",&H9000:I=USR0(0)
100 I$="":CT=0
110 RESTORE150:FORT=0TO3:CT=CT+1:IFCT>290THEN190ELSE120
120 I$=INKEY$:IFI$=""THEN130ELSE190
130 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:NEXT
140 GOTO110
150 DATA &H00,0,&H77,7,&H77,7,&H66,6,&H55,5,&H44,4,&H33,3,&H22,2,&H00,0,&H70,7,&H70,6,&H70,5,&H70,4,&H60,3,&H50,2,&H40,2
160 DATA &H00,0,&H77,7,&H07,7,&H07,5,&H07,4,&H27,2,&H37,0,&H25,0,&H00,0,&H70,7,&H70,6,&H70,5,&H70,4,&H60,3,&H50,2,&H40,2
170 DATA &H00,0,&H77,7,&H77,3,&H77,2,&H76,0,&H75,0,&H73,0,&H72,0,&H00,0,&H70,7,&H70,6,&H70,5,&H70,4,&H60,3,&H50,2,&H40,2
180 DATA &H00,0,&H77,7,&H53,7,&H42,7,&H00,7,&H10,6,&H00,4,&H10,3,&H00,0,&H70,7,&H70,6,&H70,5,&H70,4,&H60,3,&H50,2,&H40,2
190 '
200 RESTORE220
210 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT
220 DATA &H00,0,&H77,7,&H73,7,&H70,7,&H70,6,&H70,5,&H60,4,&H50,3,&H40,2,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0
230 I=USR0(0)
240 RUN"C"+CHR$(&H7F)

this one is similar to the "A" program:

1 '---"C"+chr$(&h7f)--
10 CLEAR200,&H8BFF:BLOAD"PSR6301S.COM"
11 ONSTOPGOSUB12:STOPON:GOTO30
12 RETURN
30 DEFUSR0=&H8C00:'ini0
40 DEFUSR1=&H8C03:'playst
50 DEFUSR2=&H8C06:'cmpdts
60 DEFUSR3=&H8C09:'entry
70 DEFUSR4=&H8C0C:'entry2
80 I=USR0(0)
120 I=USR1(0)
130 RUN"D"+CHR$(&H7F)

Then D:

10 '---"D"+chr$(&h7f)--
20 'SCREEN2,2:COLOR15,0,0:CLS
30 CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
40 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&HD00F:DEFUSR6=&HD013:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
50 ONSTOPGOSUB60:STOPON:GOTO70
60 RETURN
70 FORT=0TO1000:NEXT:RESTORE140:GOSUB150:FORT=0TO3000:NEXT
80 BLOAD"3AB.GRP",&H9000:GOSUB180:I=USR0(0):RESTORE130:GOSUB150:FORT=0TO5000:NEXT:RESTORE140:GOSUB150:FORT=0TO3000:NEXT
90 BLOAD"4AB.GRP",&H9000:GOSUB180:I=USR0(0):RESTORE130:GOSUB150:FORT=0TO5000:NEXT:RESTORE140:GOSUB150:FORT=0TO3000:NEXT
100 BLOAD"PS21.GRP",&H9000:GOSUB180:I=USR0(0):RESTORE160:GOSUB150:FORT=0TO3000:NEXT
110 BLOAD"HI1.GRP",&H9000:GOSUB180:I=USR0(0):RESTORE170:GOSUB150
120 RUN"11"+CHR$(&H7F)
130 DATA &H00,0,&H77,7,&H73,7,&H70,7,&H70,6,&H70,5,&H60,4,&H50,3,&H40,2,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0
140 DATA &H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H57,7,&H07,7,&H07,6,&H07,5,&H07,4,&H07,3,&H07,2
150 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:RETURN
160 DATA &H37,0,&H77,7,&H33,3,&H00,0,&H11,1,&H55,5,&H70,7,&H00,0,&H06,7,&H73,3,&H70,0,&H64,6,&H11,4,&H00,0,&H55,5,&H70,0
170 DATA &H00,0,&H77,7,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3,&H27,0,&H37,0,&H00,0,&H00,0,&H00,0
180 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:OUT&H9A,0:NEXT:NEXT:RETURN

As you see in line 120, that one runs '11':

10 '---"11"+chr$(&h7f)---
20 'SCREEN2,2:COLOR15,0,0:CLS
21 OPEN"GRP:"FOROUTPUTAS#1:COLOR1:DRAW"BM35,135":PRINT#1,"PLEASE WAIT FOR LOADING"
30 CLEAR200,&H8BFF:BLOAD"psr6301s.com"
31 ONSTOPGOSUB32:STOPON:GOTO40
32 RETURN
40 DEFUSR0=&H8C00:'ini0
50 DEFUSR1=&H8C03:'playst
60 DEFUSR2=&H8C06:'cmpdts
70 DEFUSR3=&H8C09:'entry
80 DEFUSR4=&H8C0C:'entry2
90 I=USR0(0)
100 BLOAD"CONGA1.PSR":I=USR2(0)
110 BLOAD"CONGA2.PSR":I=USR4(0)
120 BLOAD"CONGA3.PSR":I=USR4(0)
130 I=USR1(0)
131 LINE(35,135)-(219,143),0,BF
140 CLEAR200,&H9FFF:RUN"12"+CHR$(&H7F)

which runs 12:

10 '----"12"+CHR$(&H7F)-----
20 'SCREEN2:COLOR15,0,0:CLS
30 'BLOAD"HI1.GRP",S
40 CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
41 ONSTOPGOSUB42:STOPON:GOTO50
42 RETURN
50 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&HD00F:DEFUSR6=&HD013:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
60 FORT=0TO6:RESTORE90:FORG=0TO21
70 FORA=0TO12:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:NEXT:NEXT
80 RUN"13"+CHR$(&H7F)
90 DATA &H00,0,&H77,7,&H70,6,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3,&H37,1
100 DATA &H00,0,&H77,7,&H70,5,&H70,6,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3
110 DATA &H00,0,&H77,7,&H70,4,&H70,5,&H70,6,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4
120 DATA &H00,0,&H77,7,&H70,3,&H70,4,&H70,5,&H70,6,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6
130 DATA &H00,0,&H77,7,&H70,2,&H70,3,&H70,4,&H70,5,&H70,6,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7
140 DATA &H00,0,&H77,7,&H70,1,&H70,2,&H70,3,&H70,4,&H70,5,&H70,6,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7
150 DATA &H00,0,&H77,7,&H73,0,&H70,1,&H70,2,&H70,3,&h70,4,&H70,5,&H70,6,&H70,7,&H50,7,&H20,7,&H03,7
160 DATA &H00,0,&H77,7,&H75,0,&H73,0,&H70,1,&H70,2,&H70,3,&H70,4,&H70,5,&H70,6,&H70,7,&H50,7,&H20,7
170 DATA &H00,0,&H77,7,&H77,0,&H75,0,&H73,0,&H70,1,&H70,2,&H70,3,&H70,4,&H70,5,&H70,6,&H70,7,&H50,7
180 DATA &H00,0,&H77,7,&H67,0,&H77,0,&H75,0,&H73,0,&H70,1,&H70,2,&H70,3,&H70,4,&H70,5,&H70,6,&H70,7
190 DATA &H00,0,&H77,7,&H57,0,&H67,0,&H77,0,&H75,0,&H73,0,&H70,1,&H70,2,&H70,3,&H70,4,&H70,5,&H70,6
200 DATA &H00,0,&H77,7,&H37,0,&H57,0,&H67,0,&H77,0,&H75,0,&H73,0,&H70,1,&H70,2,&H70,3,&H70,4,&H70,5
210 DATA &H00,0,&H77,7,&H37,1,&H37,0,&H57,0,&H67,0,&H77,0,&H75,0,&H73,0,&H70,1,&H70,2,&H70,3,&H70,4
220 DATA &H00,0,&H77,7,&H07,3,&H37,1,&H37,0,&H57,0,&H67,0,&H77,0,&H75,0,&H73,0,&H70,1,&H70,2,&H70,3
230 DATA &H00,0,&H77,7,&H07,4,&H07,3,&H37,1,&H37,0,&H57,0,&H67,0,&H77,0,&H75,0,&H73,0,&H70,1,&H70,2
240 DATA &H00,0,&H77,7,&H07,6,&H07,4,&H07,3,&H37,1,&H37,0,&H57,0,&H67,0,&H77,0,&H75,0,&H73,0,&H70,1
250 DATA &H00,0,&H77,7,&H07,7,&H07,6,&H07,4,&H07,3,&H37,1,&H37,0,&H57,0,&H67,0,&H77,0,&H75,0,&H73,0
260 DATA &H00,0,&H77,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3,&H37,1,&H37,0,&H57,0,&H67,0,&H77,0,&H75,0
270 DATA &H00,0,&H77,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3,&H37,1,&H37,0,&H57,0,&H67,0,&H77,0
280 DATA &H00,0,&H77,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3,&H37,1,&H37,0,&H57,0,&H67,0
290 DATA &H00,0,&H77,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3,&H37,1,&H37,0,&H57,0
300 DATA &H00,0,&H77,7,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3,&H37,1,&H37,0

which runs 13:

0 '----"13"+CHR$(&H7F)---
20 'SCREEN2:COLOR15,0,0:CLS
30 CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
40 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&HD00F:DEFUSR6=&HD013:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
41 ONSTOPGOSUB42:STOPON:GOTO50
42 RETURN
50 BLOAD"KI5.GRP",&H9000:I=USR0(0)
60 RESTORE120:GOSUB100
70 RESTORE130:GOSUB100
80 RESTORE140:GOSUB100
90 GOTO150
100 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT
110 FORT=0TO3000:NEXT:RETURN
120 DATA &H00,0,&H00,0,&H65,5,&H42,3,&H07,0,&H31,2,&H51,1,&H27,6,&H00,5,&H27,0,&H40,7,&H07,1,&H11,4,&H27,2,&H11,3,&H37,4
130 DATA &H00,0,&H00,0,&H65,5,&H41,2,&H70,5,&H30,1,&H51,1,&H27,6,&H00,1,&H70,7,&H20,4,&H70,5,&H00,4,&H70,5,&H00,3,&H70,4
140 DATA &H00,0,&H00,0,&H65,5,&H41,2,&H70,0,&H30,1,&H51,1,&H27,6,&H00,2,&H70,1,&H20,4,&H70,4,&H00,4,&H60,7,&H10,6,&H70,4
150 BLOAD"YAMA1.GRP",&H9000:I=USR0(0)
160 RESTORE220:GOSUB200
70 RESTORE230:GOSUB200
180 RESTORE240:GOSUB200
190 GOTO250
200 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT
210 FORT=0TO3000:NEXT:RETURN
220 DATA &H00,0,&H20,7,&H74,7,&H70,7,&H70,3,&H20,0,&H70,7,&H27,6,&H71,1,&H60,4,&H50,7,&H70,4,&H33,7,&H00,7,&H55,5,&H70,5
230 DATA &H00,0,&H70,6,&H76,5,&H70,7,&H70,6,&H20,0,&H76,4,&H27,6,&H70,0,&H75,0,&H73,7,&H70,7,&H33,7,&H70,6,&H55,5,&H73,6
240 DATA &H00,0,&H70,6,&H76,7,&H70,6,&H05,0,&H20,0,&H70,7,&H27,6,&H70,0,&H60,5,&H72,7,&H26,1,&H33,7,&H70,6,&H55,5,&H37,2
250 BLOAD"TORI1.GRP",&H9000:I=USR0(0)
260 RESTORE300:GOSUB280
270 GOTO310
280 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT
290 FORT=0TO2000:NEXT:RETURN
300 DATA &H47,4,&h00,0,&H64,7,&H54,6,&H65,7,&H44,6,&H42,4,&H67,7,&H42,4,&H23,5,&H43,5,&H32,3,&H11,4,&H65,2,&H55,5,&H77,7
310 BLOAD"TORI2.GRP",&H9000:I=USR0(0)
320 FORT=0TO2000:NEXT
321 FORT=0TO9:I=USR0(0):NEXT
330 RUN"14"+CHR$(&H7F)

so, which runs 14:

10 '----"14"+CHR$(&H7F)-----
20 'SCREEN2:COLOR15,0,0:CLS
30 'BLOAD"HI1.GRP",S
40 'CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
50 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&HD00F:DEFUSR6=&HD013:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
51 ONSTOPGOSUB52:STOPON:GOTO60
52 RETURN
60 BLOAD"HI1.GRP",&H9000:RESTORE140:GOSUB110:I=USR0(0)
70 FORT=0TO6:RESTORE150:FORG=0TO21
80 FORA=0TO12:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:NEXT:NEXT
90 BLOAD"TOU1.GRP",&H9000:RESTORE140:GOSUB110:I=USR0(0)
100 RESTORE130:GOSUB110:GOTO120
110 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:RETURN
120 RUN"21"+CHR$(&H7F)
130 DATA &H00,0,&H77,7,&H66,6,&H55,5,&H44,4,&H33,3,&H22,2,&H11,1,&H60,7,&H50,6,&H40,5,&H30,4,&H20,3,&H10,2,&H00,1,&H77,7
140 DATA &H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0
150 DATA &H00,0,&H77,7,&H70,6,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3,&H37,1
160 DATA &H00,0,&H77,7,&H70,5,&H70,6,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3
170 DATA &H00,0,&H77,7,&H70,4,&H70,5,&H70,6,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4
180 DATA &H00,0,&H77,7,&H70,3,&H70,4,&H70,5,&H70,6,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6
190 DATA &H00,0,&H77,7,&H70,2,&H70,3,&H70,4,&H70,5,&H70,6,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7
200 DATA &H00,0,&H77,7,&H70,1,&H70,2,&H70,3,&H70,4,&H70,5,&H70,6,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7
210 DATA &H00,0,&H77,7,&H73,0,&H70,1,&H70,2,&H70,3,&h70,4,&H70,5,&H70,6,&H70,7,&H50,7,&H20,7,&H03,7
220 DATA &H00,0,&H77,7,&H75,0,&H73,0,&H70,1,&H70,2,&H70,3,&H70,4,&H70,5,&H70,6,&H70,7,&H50,7,&H20,7
230 DATA &H00,0,&H77,7,&H77,0,&H75,0,&H73,0,&H70,1,&H70,2,&H70,3,&H70,4,&H70,5,&H70,6,&H70,7,&H50,7
240 DATA &H00,0,&H77,7,&H67,0,&H77,0,&H75,0,&H73,0,&H70,1,&H70,2,&H70,3,&H70,4,&H70,5,&H70,6,&H70,7
250 DATA &H00,0,&H77,7,&H57,0,&H67,0,&H77,0,&H75,0,&H73,0,&H70,1,&H70,2,&H70,3,&H70,4,&H70,5,&H70,6
260 DATA &H00,0,&H77,7,&H37,0,&H57,0,&H67,0,&H77,0,&H75,0,&H73,0,&H70,1,&H70,2,&H70,3,&H70,4,&H70,5
270 DATA &H00,0,&H77,7,&H37,1,&H37,0,&H57,0,&H67,0,&H77,0,&H75,0,&H73,0,&H70,1,&H70,2,&H70,3,&H70,4
280 DATA &H00,0,&H77,7,&H07,3,&H37,1,&H37,0,&H57,0,&H67,0,&H77,0,&H75,0,&H73,0,&H70,1,&H70,2,&H70,3
290 DATA &H00,0,&H77,7,&H07,4,&H07,3,&H37,1,&H37,0,&H57,0,&H67,0,&H77,0,&H75,0,&H73,0,&H70,1,&H70,2
300 DATA &H00,0,&H77,7,&H07,6,&H07,4,&H07,3,&H37,1,&H37,0,&H57,0,&H67,0,&H77,0,&H75,0,&H73,0,&H70,1
310 DATA &H00,0,&H77,7,&H07,7,&H07,6,&H07,4,&H07,3,&H37,1,&H37,0,&H57,0,&H67,0,&H77,0,&H75,0,&H73,0
320 DATA &H00,0,&H77,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3,&H37,1,&H37,0,&H57,0,&H67,0,&H77,0,&H75,0
330 DATA &H00,0,&H77,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3,&H37,1,&H37,0,&H57,0,&H67,0,&H77,0
340 DATA &H00,0,&H77,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3,&H37,1,&H37,0,&H57,0,&H67,0
350 DATA &H00,0,&H77,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3,&H37,1,&H37,0,&H57,0
360 DATA &H00,0,&H77,7,&H70,7,&H50,7,&H20,7,&H03,7,&H05,7,&H07,7,&H07,6,&H07,4,&H07,3,&H37,1,&H37,0

which on its turn runs '21':

10 '---"21"+chr$(&h7f)---
20 'SCREEN2,2:COLOR15,0,0:CLS
21 OPEN"GRP:"FOROUTPUTAS#1:COLOR15:DRAW"BM35,5":PRINT#1,"PLEASE WAIT FOR LOADING
"
30 CLEAR200,&H8BFF:BLOAD"psr6301s.com"
31 ONSTOPGOSUB32:STOPON:GOTO40
32 RETURN
40 DEFUSR0=&H8C00:'ini0
50 DEFUSR1=&H8C03:'playst
60 DEFUSR2=&H8C06:'cmpdts
70 DEFUSR3=&H8C09:'entry
80 DEFUSR4=&H8C0C:'entry2
90 I=USR0(0)
100 BLOAD"T&M1.PSR":I=USR2(0)
110 BLOAD"T&M2.PSR":I=USR4(0)
120 BLOAD"T&M3.PSR":I=USR4(0)
130 I=USR1(0)
131 LINE(35,5)-(219,13),0,BF
140 CLEAR200,&H9FFF:RUN"22"+CHR$(&H7F)

which runs 22:

10 '----"22"+CHR$(&H7F)-----
20 'SCREEN2:COLOR15,0,0:CLS
30 'BLOAD"TOU1.GRP",S
40 CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
50 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&HD00F:DEFUSR6=&HD013:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
51 ONSTOPGOSUB52:STOPON:GOTO60
52 RETURN
60 FORW=0TO1
70 FORK=0TO3:RESTORE150:FORQ=0TO1:GOSUB120:NEXT:NEXT
80 FORK=0TO3:RESTORE170:FORQ=0TO1:GOSUB120:NEXT:NEXT
90 FORK=0TO3:RESTORE190:FORQ=0TO1:GOSUB120:NEXT:NEXT
100 FORK=0TO3:RESTORE210:FORQ=0TO1:GOSUB120:NEXT:NEXT:NEXT
110 GOTO140
120 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT
130 FORT=0TO200:NEXT:RETURN
140 RUN"23"+CHR$(&H7F)
150 DATA &H00,0,&H77,7,&H66,6,&H55,5,&H44,4,&H33,3,&H22,2,&H11,1,&H60,7,&H50,6,&H40,5,&H30,4,&H20,3,&H10,2,&H00,1,&H77,7:'GLAY-YELL
160 DATA &H00,0,&H60,7,&H50,6,&H40,5,&H30,4,&H20,3,&H10,2,&H00,1,&H77,7,&H66,6,&H55,5,&H44,4,&H33,3,&H22,2,&H11,1,&H77,7:'YELL-GLAY
170 DATA &H00,0,&H77,4,&H77,3,&H77,2,&H76,0,&H74,0,&H63,0,&H52,0,&H75,7,&H74,7,&H72,7,&H70,7,&H60,6,&H50,5,&H40,4,&H77,7:'PINK-KIIRO
180 DATA &H00,0,&H75,7,&H74,7,&H72,7,&H70,7,&H60,6,&H50,5,&H40,4,&H77,4,&H77,3,&H77,2,&H76,0,&H74,0,&H63,0,&H52,0,&H77,7:'PINK-KIIRO
190 DATA &H00,0,&H07,7,&H06,6,&H05,5,&H04,4,&H03,3,&H02,2,&H01,1,&H75,7,&H74,7,&H72,7,&H70,7,&H60,6,&H50,5,&H40,4,&H77,7:'MIZU-KIIRO
200 DATA &H00,0,&H75,7,&H74,7,&H72,7,&H70,7,&H60,6,&H50,5,&H40,4,&H07,7,&H06,6,&H05,5,&H04,4,&H03,3,&H02,2,&H01,1,&H77,7:'MIZU-KIIRO
210 DATA &H00,0,&H47,5,&H37,4,&H27,3,&H17,2,&H06,1,&H05,0,&H03,0,&H75,7,&H74,7,&H72,7,&H70,7,&H60,6,&H50,5,&H40,4,&H77,7:'BLUE-KIIRO
220 DATA &H00,0,&H75,7,&H74,7,&H72,7,&H70,7,&H60,6,&H50,5,&H40,4,&H47,5,&H37,4,&H27,3,&H17,2,&H06,1,&H05,0,&H03,0,&H77,7:'BLUE-KIIRO

and that one runs '23':

10 '----"23"+CHR$(&H7F)---
20 'SCREEN2:COLOR15,0,0:CLS
30 CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
40 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&HD00F:DEFUSR6=&HD013:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
41 ONSTOPGOSUB42:STOPON:GOTO50
42 RETURN
50 BLOAD"HANA3.GRP",&H9000:GOSUB240:I=USR0(0)
60 RESTORE130:GOSUB110
70 BLOAD"HANA5.GRP",&H9000:I=USR0(0)
80 FORT=0TO3000:NEXT
90 FORT=0TO5:I=USR0(0):NEXT
100 GOTO140
110 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT
120 FORT=0TO3000:NEXT:RETURN
130 DATA &H46,4,&H00,0,&H11,6,&H33,7,&H30,2,&H71,2,&H51,1,&H70,7,&H70,4,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0
140 BLOAD"PLANE1.GRP",&H9000:GOSUB240:I=USR0(0)
150 RESTORE210:GOSUB190
160 RESTORE220:GOSUB190
170 RESTORE230:GOSUB190
180 RUN"24"+CHR$(&H7F)
190 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT
200 FORT=0TO3000:NEXT:RETURN
210 DATA &H00,0,&H77,7,&H47,7,&H07,3,&H07,5,&H07,6,&H37,0,&H67,7,&H57,7,&H07,4,&H07,7,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0
220 DATA &H00,0,&H77,7,&H77,4,&H73,0,&H75,0,&H76,0,&H74,0,&H77,6,&H77,5,&H74,0,&H77,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0
230 DATA &H00,0,&H77,7,&H74,7,&H30,7,&H50,7,&H60,7,&H03,7,&H76,7,&H75,7,&H40,7,&H70,7,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0
240 RESTORE260
250 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:RETURN
260 DATA &H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0

which then runs '24':

10 '----"24"+CHR$(&H7F)-----
20 'SCREEN2:COLOR15,0,0:CLS
30 'CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
40 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&HD00F:DEFUSR6=&HD013:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
41 ONSTOPGOSUB42:STOPON:GOTO50
42 RETURN
50  BLOAD"TOU1.GRP",&H9000:GOSUB260:I=USR0(0)
60 FORW=0TO1
70 FORK=0TO3:RESTORE190:FORQ=0TO1:GOSUB140:NEXT:NEXT
80 FORK=0TO1:RESTORE170:FORQ=0TO1:GOSUB140:NEXT:NEXT
90 FORK=0TO3:RESTORE210:FORQ=0TO1:GOSUB140:NEXT:NEXT
100 FORK=0TO3:RESTORE230:FORQ=0TO1:GOSUB140:NEXT:NEXT:NEXT
110 BLOAD"SAVIN.GRP",&H9000:GOSUB260:I=USR0(0)
120 RESTORE250:GOSUB140
130 GOTO160
140 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT
150 FORT=0TO200:NEXT:RETURN
160 RUN"31"+CHR$(&H7F)
170 DATA &H00,0,&H77,7,&H66,6,&H55,5,&H44,4,&H33,3,&H22,2,&H11,1,&H60,7,&H50,6,&H40,5,&H30,4,&H20,3,&H10,2,&H00,1,&H77,7:'GLAY-YELL
180 DATA &H00,0,&H60,7,&H50,6,&H40,5,&H30,4,&H20,3,&H10,2,&H00,1,&H77,7,&H66,6,&H55,5,&H44,4,&H33,3,&H22,2,&H11,1,&H77,7:'YELL-GLAY
190 DATA &H00,0,&H77,4,&H77,3,&H77,2,&H76,0,&H74,0,&H63,0,&H52,0,&H75,7,&H74,7,&H72,7,&H70,7,&H60,6,&H50,5,&H40,4,&H77,7:'PINK-KIIRO
200 DATA &H00,0,&H75,7,&H74,7,&H72,7,&H70,7,&H60,6,&H50,5,&H40,4,&H77,4,&H77,3,&H77,2,&H76,0,&H74,0,&H63,0,&H52,0,&H77,7:'PINK-KIIRO
210 DATA &H00,0,&H07,7,&H06,6,&H05,5,&H04,4,&H03,3,&H02,2,&H01,1,&H75,7,&H74,7,&H72,7,&H70,7,&H60,6,&H50,5,&H40,4,&H77,7:'MIZU-KIIRO
220 DATA &H00,0,&H75,7,&H74,7,&H72,7,&H70,7,&H60,6,&H50,5,&H40,4,&H07,7,&H06,6,&H05,5,&H04,4,&H03,3,&H02,2,&H01,1,&H77,7:'MIZU-KIIRO
230 DATA &H00,0,&H47,5,&H37,4,&H27,3,&H17,2,&H06,1,&H05,0,&H03,0,&H75,7,&H74,7,&H72,7,&H70,7,&H60,6,&H50,5,&H40,4,&H77,7:'BLUE-KIIRO
240 DATA &H00,0,&H75,7,&H74,7,&H72,7,&H70,7,&H60,6,&H50,5,&H40,4,&H47,5,&H37,4,&H27,3,&H17,2,&H06,1,&H05,0,&H03,0,&H77,7:'BLUE-KIIRO
250 DATA &H00,0,&H37,0,&H07,3,&H07,4,&H07,5,&H07,6,&H07,7,&H05,7,&H03,7,&H02,7,&H40,7,&H70,7,&H70,4,&H70,0,&H05,0,&H77,7
260 RESTORE280
270 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:RETURN
280 DATA &H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0

which continues with 31:

10 '---"31"+chr$(&h7f)---
20 'SCREEN2,2:COLOR15,0,0:CLS
21 OPEN"GRP:"FOROUTPUTAS#1:COLOR15:DRAW"BM90,0":PRINT#1,"NOW LOADING"
30 CLEAR200,&H8BFF:BLOAD"psr6301s.com"
31 ONSTOPGOSUB32:STOPON:GOTO40
32 RETURN
40 DEFUSR0=&H8C00:'ini0
50 DEFUSR1=&H8C03:'playst
60 DEFUSR2=&H8C06:'cmpdts
70 DEFUSR3=&H8C09:'entry
80 DEFUSR4=&H8C0C:'entry2
90 I=USR0(0)
100 BLOAD"SAVIN1.PSR":I=USR2(0)
110 BLOAD"SAVIN2.PSR":I=USR4(0)
120 BLOAD"SAVIN3.PSR":I=USR4(0)
130 I=USR1(0)
131 LINE(90,0)-(178,8),0,BF
140 CLEAR200,&H9FFF:RUN"32"+CHR$(&H7F)

and that one runs 32:

10 '----"32"+CHR$(&H7F)-----
20 'SCREEN2:COLOR15,0,0:CLS
30 CLEAR200,&H9FFF:BLOAD"KONOMI.COM"
40 DEFUSR0=&HA000:DEFUSR1=&HA003:DEFUSR2=&HA006:DEFUSR3=&HA009:DEFUSR4=&HA00C:DE
FUSR5=&HA00F:DEFUSR6=&HA012:DEFUSR7=&HA015:DEFUSR8=&HA018:DEFUSR9=&HA01B
41 ONSTOPGOSUB42:STOPON:GOTO50
42 RETURN
50 FORA=0TO8:FORT=0TO31:I=USR0(0):I=USR3(0):I=USR0(0):FORW=0TO20:NEXT:NEXT:NEXT
60 RUN"33"+CHR$(&H7F)

which runs 33:

10 '----"33"+CHR$(&H7F)---
20 'SCREEN2:COLOR15,0,0:CLS
30 CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
40 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&HD00F:DEFUSR6=&HD013:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
41 ONSTOPGOSUB42:STOPON:GOTO50
42 RETURN
50 BLOAD"KAWA1.GRP",&H9000:GOSUB330:I=USR0(0)
60 RESTORE120:GOSUB100
70 RESTORE130:GOSUB100
80 RESTORE140:GOSUB100
90 GOTO150
100 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT
110 FORT=0TO3000:NEXT:RETURN
120 DATA &H00,0,&H00,0,&H00,0,&H70,3,&H70,4,&H70,5,&H70,7,&H56,0,&H60,7,&H70,4,&H77,0,&H76,0,&H74,0,&H70,0,&H70,0,&H77,7
130 DATA &H00,0,&H00,0,&H00,0,&H70,4,&H70,5,&H70,5,&H70,7,&H60,0,&H60,7,&H70,4,&H70,0,&H60,0,&H70,0,&H70,3,&H70,3,&H77,7
140 DATA &H00,0,&H00,0,&H00,0,&H57,0,&H67,0,&H67,0,&H76,0,&H25,0,&H75,0,&H57,0,&H36,0,&H25,0,&H36,0,&H47,0,&H47,0,&H77,7
150 BLOAD"SORA2.GRP",&H9000:GOSUB330:I=USR0(0)
160 RESTORE260:GOSUB100
170 RESTORE270:GOSUB100
180 RESTORE280:GOSUB100
190 RESTORE290:GOSUB100
200 RESTORE300:GOSUB100
210 RESTORE310:GOSUB100
220 BLOAD"SAVIN.GRP",&H9000:GOSUB330:I=USR0(0)
230 RESTORE320:GOSUB250
240 RUN"34"+CHR$(&H7F)
250 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:RETURN
260 DATA &H00,0,&H70,6,&H70,4,&H70,3,&H70,4,&H70,7,&H74,0,&H70,5,&H71,1,&H73,3,&H70,1,&H70,4,&H75,3,&H70,3,&H70,7,&H70,3
270 DATA &H00,0,&H75,7,&H53,0,&H63,3,&H74,7,&H77,7,&H72,5,&H72,7,&H73,6,&H71,1,&H72,6,&H73,4,&H72,4,&H73,5,&H64,2,&H74,6
280 DATA &H00,0,&H75,6,&H54,0,&H63,3,&H74,6,&H77,7,&H72,4,&H72,6,&H74,5,&H71,1,&H72,5,&H73,3,&H72,3,&H73,4,&H73,3,&H74,5
290 DATA &H00,0,&H75,7,&H66,0,&H63,3,&H74,6,&H74,7,&H73,3,&H72,5,&H74,5,&H71,1,&H72,4,&H73,3,&H73,2,&H73,4,&H74,0,&H74,5
300 DATA &H00,0,&H75,6,&H56,0,&H64,3,&H74,5,&H74,6,&H73,3,&H72,4,&H74,5,&H72,1,&H72,3,&H73,3,&H72,2,&H73,3,&H74,3,&H74,5
310 DATA &H00,0,&H75,5,&H37,0,&H66,3,&H74,4,&H77,5,&H75,3,&H76,2,&H75,4,&H77,1,&H74,2,&H75,3,&H77,2,&H74,3,&H67,3,&H75,4
320 DATA &H00,0,&H37,0,&H07,3,&H07,4,&H07,5,&H07,6,&H07,7,&H05,7,&H03,7,&H02,7,&H40,7,&H70,7,&H70,4,&H70,0,&H05,0,&H77,7
330 RESTORE350
340 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:RETURN
350 DATA &H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0

and then 34:

10 '----"34"+CHR$(&H7F)-----
20 'SCREEN2:COLOR15,0,0:CLS
30 CLEAR200,&H9FFF:BLOAD"KONOMI.COM"
40 DEFUSR0=&HA000:DEFUSR1=&HA003:DEFUSR2=&HA006:DEFUSR3=&HA009:DEFUSR4=&HA00C:DEFUSR5=&HA00F:DEFUSR6=&HA012:DEFUSR7=&HA015:DEFUSR8=&HA018:DEFUSR9=&HA01B
41 ONSTOPGOSUB42:STOPON:GOTO50
42 RETURN
50 FORA=0TO9:FORT=0TO31:I=USR0(0):I=USR3(0):I=USR0(0):FORW=0TO20:NEXT:NEXT:NEXT
60 CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
70 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&HD00F:DEFUSR6=&HD012:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
71 ONSTOPGOSUB72:STOPON:GOTO80
72 RETURN
80 BLOAD"PSRHOSI.GRP",&H9000:RESTORE120:GOSUB110:I=USR0(0)
90 RESTORE130:GOSUB110
100  RUN"41"+CHR$(&H7F)
110 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORB=0TO1:READC:OUT&H9A,C:NEXT:NEXT:RETURN
120 DATA &H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0
130 DATA &H00,0,&H77,7,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H00,0,&H00,0

That program seems to load the assembled code from the konomi.mac file (konomi.com) and at the end continue with 41:

10 '---"41"+chr$(&h7f)---
20 'SCREEN2,2:COLOR15,0,0:CLS
21 OPEN"GRP:"FOROUTPUTAS#1:COLOR1:DRAW"BM80,140":PRINT#1,"NOW LOADING"
30 CLEAR200,&H8BFF:BLOAD"psr6301s.com"
31 ONSTOPGOSUB32:STOPON:GOTO40
32 RETURN
40 DEFUSR0=&H8C00:'ini0
50 DEFUSR1=&H8C03:'playst
60 DEFUSR2=&H8C06:'cmpdts
70 DEFUSR3=&H8C09:'entry
80 DEFUSR4=&H8C0C:'entry2
90 I=USR0(0)
100 BLOAD"VENUS1.PSR":I=USR2(0)
110 BLOAD"VENUS2.PSR":I=USR4(0)
120 BLOAD"VENUS3.PSR":I=USR4(0)
130 I=USR1(0)
131 LINE(80,140)-(168,148),0,BF
140 CLEAR200,&H9FFF:RUN"42"+CHR$(&H7F)

which runs 42:

10 '----"42"+CHR$(&H7F)---
20 'SCREEN2,2:COLOR15,0,0:CLS
30 CLEAR200,&H9FFF:BLOAD"KONOMI.COM"
40 DEFUSR0=&HA000:DEFUSR1=&HA003:DEFUSR2=&HA006:DEFUSR3=&HA009:DEFUSR4=&HA00C:DEFUSR5=&HA00F:DEFUSR6=&HA012:DEFUSR7=&HA015:DEFUSR8=&HA018:DEFUSR9=&HA01B
41 ONSTOPGOSUB42:STOPON:GOTO50
42 RETURN
50 FORT=0TO31:X=RND(1)*255:Y=RND(1)*255:C=RND(1)*15:P=RND(1)*9:PUTSPRITET,(X,Y),C,P:NEXT
60 FORQ=0TO1
70 RESTORE240:GOSUB230
80 RESTORE250:GOSUB230
90 RESTORE260:GOSUB230
100 RESTORE270:GOSUB230
110 RESTORE280:GOSUB230
120 RESTORE290:GOSUB230
130 RESTORE300:GOSUB230
140 RESTORE310:GOSUB230
150 RESTORE320:GOSUB230
160 RESTORE330:GOSUB230
170 RESTORE340:GOSUB230
180 RESTORE350:GOSUB230
190 NEXT
200 RESTORE240:GOSUB230
210 FORT=0TO31:PUTSPRITET,(255,209),0,T:NEXT
220 RUN"43"+CHR$(&H7F)
230 FORA=0TO15:I=USR0(0):I=USR6(0):OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:RETURN
240 DATA &H00,0,&H77,7,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H00,0,&H00,0
250 DATA &H00,0,&H77,7,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H00,0,&H00,0
260 DATA &H00,0,&H77,7,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H00,0,&H00,0
270 DATA &H00,0,&H77,7,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H00,0,&H00,0
280 DATA &H00,0,&H77,7,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H00,0,&H00,0
290 DATA &H00,0,&H77,7,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H00,0,&H00,0
300 DATA &H00,0,&H77,7,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H00,0,&H00,0
310 DATA &H00,0,&H77,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H00,0,&H00,0
320 DATA &H00,0,&H77,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H00,0,&H00,0
330 DATA &H00,0,&H77,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H00,0,&H00,0
340 DATA &H00,0,&H77,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H00,0,&H00,0
350 DATA &H00,0,&H77,7,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H00,0,&H00,0

and then continues with 43:

10 '----"43"+CHR$(&H7F)---
20 'SCREEN2:COLOR15,0,0:CLS
30 CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
40 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&HD00F:DEFUSR6=&HD013:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
41 ONSTOPGOSUB42:STOPON:GOTO50
42 RETURN
50 BLOAD"LINE3.GRP",&H9000:GOSUB280:I=USR0(0)
60 RESTORE260:GOSUB250
70 CLEAR200,&H9FFF:BLOAD"scroll.com"
80 DEFUSR0=&HA000:DEFUSR1=&HA003:DEFUSR2=&HA006:DEFUSR3=&HA009:DEFUSR4=&HA00C:DEFUSR5=&HA00F:DEFUSR6=&HA013:DEFUSR7=&HA015:DEFUSR8=&HA018:DEFUSR9=&HA01B
81 ONSTOPGOSUB82:STOPON:GOTO90
82 RETURN
90 RESTORE270:GOSUB250
100 FORA=0TO4:FORB=0TO31:I=USR4(0):NEXT:NEXT
110 RESTORE260:GOSUB250
120 CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
130 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&HD00F:DEFUSR6=&HD013:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
131 ONSTOPGOSUB132:STOPON:GOTO140
132 RETURN
140 BLOAD"LINE4.GRP",&H9000:I=USR0(0)
150 CLEAR200,&H9FFF:BLOAD"scroll.com"
160 DEFUSR0=&HA000:DEFUSR1=&HA003:DEFUSR2=&HA006:DEFUSR3=&HA009:DEFUSR4=&HA00C:DEFUSR5=&HA00F:DEFUSR6=&HA013:DEFUSR7=&HA015:DEFUSR8=&HA018:DEFUSR9=&HA01B
161 ONSTOPGOSUB162:STOPON:GOTO170
162 RETURN
170 FORB=0TO31:I=USR3(0):NEXT:FORT=0TO1000:NEXT
180 FORB=0TO31:I=USR4(0):NEXT:FORT=0TO1000:NEXT
190 FORB=0TO31:I=USR3(0):NEXT:FORT=0TO1000:NEXT
200 CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
210 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&HD00F:DEFUSR6=&HD013:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
220 BLOAD"PSRHOSI.GRP",&H9000:I=USR0(0)
230 RESTORE310:GOSUB290
240 RUN"44"+CHR$(&H7F)
250 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:RETURN
260 DATA &H01,0,&H07,7,&H07,4,&H27,0,&H14,0,&H13,0,&H12,0,&H07,7,&H07,4,&H27,0,&H14,0,&H13,0,&H12,0,&H00,0,&H00,0,&H00,0
270 DATA &H01,0,&H07,7,&H07,4,&H27,0,&H14,0,&H13,0,&H12,0,&H60,7,&H70,4,&H70,2,&H70,0,&H50,0,&H30,0,&H00,0,&H00,0,&H00,0
280 RESTORE300
290 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:RETURN
300 DATA &H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0
310 DATA &H00,0,&H77,7,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H00,0,&H00,0

which then continues with 44:

10 '----"44"+CHR$(&H7F)---
20 'SCREEN2,2:COLOR15,0,0:CLS
30 CLEAR200,&H9FFF:BLOAD"KONOMI.COM"
40 DEFUSR0=&HA000:DEFUSR1=&HA003:DEFUSR2=&HA006:DEFUSR3=&HA009:DEFUSR4=&HA00C:DEFUSR5=&HA00F:DEFUSR6=&HA012:DEFUSR7=&HA015:DEFUSR8=&HA018:DEFUSR9=&HA01B
41 ONSTOPGOSUB42:STOPON:GOTO50
42 RETURN
50 FORT=0TO31:X=RND(1)*255:Y=RND(1)*255:C=RND(1)*15:P=RND(1)*9:PUTSPRITET,(X,Y),C,P:NEXT
60 RESTORE270:GOSUB240
70 RESTORE280:GOSUB240
80 RESTORE290:GOSUB240
90 RESTORE300:GOSUB240
100 RESTORE310:GOSUB240
110 RESTORE320:GOSUB240
120 RESTORE330:GOSUB240
130 RESTORE340:GOSUB240
140 RESTORE350:GOSUB240
150 RESTORE360:GOSUB240
160 RESTORE370:GOSUB240
170 RESTORE380:GOSUB240
180 RESTORE270:GOSUB240
190 FORT=0TO31:PUTSPRITET,(255,209),0,T:NEXT
200 CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
210 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&HD00F:DEFUSR6=&HD012:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
211 ONSTOPGOSUB212:STOPON:GOTO220
212 RETURN
220 BLOAD"PSR3.GRP",&H9000:RESTORE260:GOSUB250:I=USR0(0)
230 RUN"51"+CHR$(&H7F)
240 FORA=0TO15:I=USR0(0):I=USR6(0):OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:RETURN
250 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:RETURN
260 DATA &H00,0,&H77,7,&H11,1,&H22,2,&H33,3,&H44,4,&H55,5,&H66,6,&H77,7,&H77,7,&H07,7,&H06,7,&H04,7,&H01,7,&H60,7,&H70,7
270 DATA &H00,0,&H77,7,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H00,0,&H00,0
280 DATA &H00,0,&H77,7,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H00,0,&H00,0
290 DATA &H00,0,&H77,7,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H00,0,&H00,0
300 DATA &H00,0,&H77,7,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H00,0,&H00,0
310 DATA &H00,0,&H77,7,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H00,0,&H00,0
320 DATA &H00,0,&H77,7,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H00,0,&H00,0
330 DATA &H00,0,&H77,7,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H00,0,&H00,0
340 DATA &H00,0,&H77,7,&H05,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H00,0,&H00,0
350 DATA &H00,0,&H77,7,&H02,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H00,0,&H00,0
360 DATA &H00,0,&H77,7,&H70,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H00,0,&H00,0
370 DATA &H00,0,&H77,7,&H70,4,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H00,0,&H00,0
380 DATA &H00,0,&H77,7,&H70,2,&H72,0,&H75,0,&H67,0,&H47,0,&H07,3,&H07,5,&H07,7,&H05,7,&H02,7,&H70,7,&H70,4,&H00,0,&H00,0
390 RESTORE410
400 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORC=0TO1:READB:OUT&H9A,B:NEXT:NEXT:RETURN
410 DATA &H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0

which at the end moves to part 51:

10 '---"51"+chr$(&h7f)---
20 'SCREEN2,2:COLOR15,0,0:CLS
21 OPEN"GRP:"FOROUTPUTAS#1:COLOR1:DRAW"BM85,139":PRINT#1,"NOW LOADING"
30 CLEAR200,&H8BFF:BLOAD"psr6301s.com"
31 ONSTOPGOSUB32:STOPON:GOTO40
32 RETURN
40 DEFUSR0=&H8C00:'ini0
50 DEFUSR1=&H8C03:'playst
60 DEFUSR2=&H8C06:'cmpdts
70 DEFUSR3=&H8C09:'entry
80 DEFUSR4=&H8C0C:'entry2
90 I=USR0(0)
100 BLOAD"ORIG21.PSR":I=USR2(0)
110 BLOAD"ORIG22.PSR":I=USR4(0)
120 BLOAD"ORIG23.PSR":I=USR4(0)
130 I=USR1(0)
131 LINE(85,139)-(173,147),0,BF
140 CLEAR200,&H9FFF:RUN"52"+CHR$(&H7F)

and as you see there, then 52:

10 '----"52"+CHR$(&H7F)-----
20 'SCREEN2:COLOR15,0,0:CLS
30 'BLOAD"PSR3.GRP",S
40 CLEAR200,&H9FFF:BLOAD"KONOMI.COM"
50 DEFUSR0=&HA000:DEFUSR1=&HA003:DEFUSR2=&HA006:DEFUSR3=&HA009:DEFUSR4=&HA00C:DEFUSR5=&HA00F:DEFUSR6=&HA012:DEFUSR7=&HA015:DEFUSR8=&HA018:DEFUSR9=&HA01B
51 ONSTOPGOSUB52:STOPON:GOTO60
52 RETURN
60  POKE&HA681,&H1:POKE&HA68E,&H1
70 RESTORE160:GOSUB150:GOSUB210
80 RESTORE170:GOSUB150:GOSUB210
90 RESTORE180:GOSUB150:GOSUB210
100 CLEAR200,&H9000:BLOAD"Y"+CHR$(&H7F)
110 DEFUSR0=&HD000:DEFUSR1=&HD003:DEFUSR2=&HD006:DEFUSR3=&HD009:DEFUSR4=&HD00C:DEFUSR5=&HD00F:DEFUSR6=&HD012:DEFUSR7=&HD015:DEFUSR8=&HD018:DEFUSR9=&HD01B
111 ONSTOPGOSUB112:STOPON:GOTO120
112 RETURN
120 BLOAD"YAMAHA5.GRP",&H9000:RESTORE190:GOSUB150:I=USR0(0)
130 RESTORE200:GOSUB150
140 FORT=0TO10000:NEXT:GOTO250
150 FORA=0TO15:OUT&H99,A:OUT&H99,&H90:FORB=0TO1:READC:OUT&H9A,C:NEXT:NEXT:RETURN
160 DATA &H00,0,&H77,7,&H11,1,&H22,2,&H33,3,&H44,4,&H55,5,&H66,6,&H77,7,&H77,7,&H07,7,&H06,7,&H04,7,&H01,7,&H60,7,&H70,7
170 DATA &H00,0,&H77,7,&H37,0,&H27,0,&H07,2,&H07,3,&H07,4,&H07,5,&H07,6,&H07,7,&H07,7,&H06,7,&H04,7,&H01,7,&H60,7,&H70,7
180 DATA &H00,0,&H77,7,&H30,3,&H40,4,&H50,5,&H60,6,&H70,7,&H71,7,&H73,7,&H74,7,&H07,7,&H06,7,&H04,7,&H01,7,&H60,7,&H70,7
190 DATA &H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0,&H00,0
200 DATA &H00,0,&H20,1,&H30,1,&H40,2,&H50,3,&H60,4,&H70,5,&H70,6,&H70,7,&H72,7,&H73,7,&H75,7,&H00,0,&H00,0,&H00,0,&H00,0
210 FORA=0TO6:FORB=0TO31
220 POKE&HA67B,&H18:I=USR0(0):POKE&HA68B,&H18:I=USR3(0):I=USR0(0)
230 POKE&HA67B,&H1A:I=USR0(0):POKE&HA68B,&H1A:I=USR4(0):I=USR0(0)
240 NEXT:NEXT:RETURN
250 RUN"AUTOEXEC.BAS"

and that was the last part, as it is now looping back to AUTOEXEC.BAS.

For completeness sake, this is the content of konomi.mac:

.z80
CALATR	EQU	0087H		;SPRITE
RDVRM	EQU	004AH			
WRTVRM	EQU	004DH	
CHSNS	EQU	009CH
MAPXYC	EQU	0111H

	Jp	LOOP0
	JP	LXY
	JP	STAR
	JP	RIGHT0
	JP	LEFT0
	JP	FONT
	JP	krukru
	JP	CHANGE	
	JP	kenji
	JP	KAITEN
;
KONOMI::
	DB	22	
COLOR::	DB	50H
YPLOT::	DW	0064
WORK1::	DS	1
WORK2::	DS	1
IXBAS::	DS	110H
DEST::	DS	2
WORK::	DS	300H


;START:	LD	A,50H
;	LD	(COLOR),A
;	LD	DE,64
;	LD	(YPLOT),DE

LOOP0:	LD	A,0
LOOP1:	PUSH	AF
	CALL	CALATR
	CALL	RDVRM
	LD	B,1
	ADD	A,B		;YPOSITION
	CP	192
	JR	NZ,LOOP2
	LD	A,0
LOOP2:	CALL	WRTVRM
	
	
	INC	HL
	INC	HL
	INC	HL
	CALL	RDVRM
	INC	A		;COLOR
	CP	16
	JR	NZ,LOOP3
	LD	A,0
LOOP3:	CALL	WRTVRM
	
	
	POP	AF
	INC	A
	CP	16
	JR	NZ,LOOP1
;
;


LOOP5:	PUSH	AF
	CALL	CALATR
	CALL	RDVRM
	LD	B,2
	ADD	A,B		;YPOSITION
	CP	192
	JR	NZ,LOOP6
	LD	A,0
LOOP6:	CALL	WRTVRM
	
	
	INC	HL
	INC	HL
	INC	HL
	CALL	RDVRM
	INC	A		;COLOR
	CP	16
	JR	NZ,LOOP7
	LD	A,0
LOOP7:	CALL	WRTVRM
	
	
	POP	AF	
	INC	A
	CP	32
	JR	NZ,LOOP5
;	LD	HL,0001H
;	LD	B,1
;DELAY:	DEC	HL
;	LD	A,L
;	OR	H
;	JR	NZ,DELAY
;	LD	HL,0001H
;	DJNZ	DELAY
;	CALL	LXY
;	JR	LOOP0
;LOOPED:	POP	AF
	RET
	
LXY:	LD	DE,(YPLOT)
	LD	BC,32
	CALL	MAPXYC
	LD	DE,2000H
	ADD	HL,DE
		;
LX:	LD	B,24
L0:	PUSH	BC
	LD	B,4

L1:	CALL	RDVRM
	AND	0FH
	PUSH	AF
	LD	A,(COLOR)
	LD	C,A
	POP	AF
	OR	C
	CALL	WRTVRM
	INC	HL
		;	CALL	CHSNS	
		;	JR	NZ,LOOPBC
	DJNZ	L1	
	INC	HL
	INC	HL
	INC	HL
	INC	HL
	POP	BC
	DJNZ	L0		
	LD	DE,(YPLOT)
	INC	DE
	INC	DE
	INC	DE
	INC	DE
	LD	(YPLOT),DE
	LD	HL,111
	AND	A
	SBC	HL,DE
	JR	C,L4
;
	LD	A,(COLOR)
	CP	50H
	JR	Z,B70
	CP	70H
	JR	Z,S30
	CP	30H
	JR	Z,GA0
	CP	0A0H
	JR	Z,R90
	CP	90H
	JR	Z,MD0
 	LD	A,50H
	JR	L3
B70:	LD	A,70H
	JR	L3
S30:	LD	A,30H
	JR	L3
GA0:	LD	A,0A0H
	JR	L3
R90:	LD	A,90H
	JR	L3
MD0:	LD	A,0D0H
L3:	LD	(COLOR),A
L2:	RET
L4:	LD	DE,64
	LD	(YPLOT),DE
	JR	L2
LOOPBC:	POP	BC
	RET
	



X004A	EQU	0004AH
X004D	EQU	0004DH
STAR::	LD	IX,IXBAS
	LD	IY,01B00H
	LD	B,020H
ST1:	LD	H,(IX+000H)
	LD	L,(IX+001H)
	LD	D,(IX+002H)
	LD	E,(IX+003H)
	BIT	7,D
	JR	Z,ST2
	XOR	A
	RES	7,D
	SBC	HL,DE
	JR	C,ST7
	JR	ST3
;
ST2:	ADD	HL,DE
	JR	C,ST7
ST3:	LD	C,H
	LD	(IX+000H),H
	LD	(IX+001H),L
	LD	H,(IX+004H)
	LD	L,(IX+005H)
	LD	D,(IX+006H)
	LD	E,(IX+007H)
	BIT	7,D
	JR	Z,ST4
	XOR	A
	RES	7,D
	SBC	HL,DE
	JR	C,ST7
	JR	ST5
;
ST4:	ADD	HL,DE
	PUSH	HL
	XOR	A
	LD	DE,0BF00H
	SBC	HL,DE
	POP	HL
	JR	NC,ST7
ST5:	LD	A,H
	LD	(IX+004H),H
	LD	(IX+005H),L
	CALL	STA
	CALL	X004D
	INC	HL
	LD	A,C
	CALL	X004D
	INC	HL
	INC	HL
	INC	HL
	PUSH	HL
	POP	IY
ST6:	LD	DE,00008H
	ADD	IX,DE
	DJNZ	ST1
	RET
;
; >> NO EXECUTION PATH TO HERE <<
	ADD	A,(HL)
ST7:	CALL	ST8
	LD	A,(WORK1)
	AND	081H
	LD	(IX+002H),A
	LD	A,(WORK2)
	OR	010H
	LD	(IX+003H),A
	CALL	ST8
	LD	A,(WORK1)
	AND	081H
	LD	(IX+006H),A
	LD	A,(WORK2)
	OR	010H
	LD	(IX+007H),A
	LD	A,07FH
	LD	(IX+000H),A
	LD	A,05EH
	LD	(IX+004H),A
	CALL	ST9
	ADD	IY,DE
	JR	ST6
;
ST8:	PUSH	HL
	LD	HL,(WORK1)
	ADD	HL,HL
	LD	A,R
	RLA
	RLA
	XOR	L
	RLA
	XOR	L
	RRA
	RRA
	RRA
	CPL
	AND	001H
	OR	L
	LD	L,A
	LD	(WORK1),HL
	POP	HL
	RET
;
ST9:	XOR	A
	PUSH	IY
	POP	HL
	INC	HL
	INC	HL
	CALL	X004D
	LD	DE,00004H
	RET
;
STA:	PUSH	AF
	LD	D,(IX+002H)
	LD	E,(IX+003H)
	PUSH	DE
	POP	HL
	RES	7,D
	XOR	A
	SRL	D
	RR	E
	SRL	D
	RR	E

	SRL	D
	RR	E
	SRL	D
	RR	E
	ADD	HL,DE
	LD	(IX+002H),H
	LD	(IX+003H),L
	LD	D,(IX+006H)
	LD	E,(IX+007H)
	PUSH	DE
	POP	HL
	RES	7,D
	XOR	A
	SRL	D
	RR	E
	SRL	D
	RR	E
	SRL	D
	RR	E
	SRL	D
	RR	E
	ADD	HL,DE
	LD	(IX+006H),H
	LD	(IX+007H),L
	PUSH	IY
	POP	HL
	INC	HL
	INC	HL
	CALL	X004A
	ADD	A,(IX+002H)
	ADD	A,(IX+006H)
	AND	07FH
	SRL	A
	CALL	X004D
	PUSH	IY
	POP	HL
	POP	AF
	RET



LDIRMV	EQU	0059H
LDIRVM	EQU	005CH
;RIGHT
;RIGHT::	
;	JR	RIGHT0
;LEFT
;LEFT::	
;	JR	LEFT0
;RIGHT0
RIGHT0	EQU	$
	CALL	FRVRM	;READ VRAM
	LD	HL,WORK-1
	LD	(DEST),HL
	LD	B,24
RIGHT1:	CALL	LINE
	DEC	HL
	LDDR		;MOVE TO RIGHT
	LD	(DE),A
	EXX	
	DJNZ	RIGHT1
	CALL	TOVRM	;WRITE VRAM
	RET
;LEFT0
LEFT0	EQU	$
	CALL	FRVRM	;READ VRAM
	LD	HL,WORK-32
	LD	(DEST),HL
	LD	B,24
LEFT1:	CALL	LINE
	INC	HL
	LDIR		;MOVE TO LEFT
	LD	(DE),A
	EXX
	DJNZ	LEFT1
	CALL	TOVRM	;WRITE VRAM
	RET
;LINE
LINE	EQU	$
	EXX
	LD	BC,31
	LD	HL,(DEST)
	LD	DE,32
	ADD	HL,DE
	LD	(DEST),HL
	LD	E,L
	LD	D,H
	LD	A,(DE)
	RET
;FRVRM
FRVRM	EQU	$
	LD	HL,1A00H;SET PATTERN ID TABLE
	LD	DE,WORK	
	LD	BC,0100H;SET LENGTH OF WORK
	CALL	LDIRMV
	RET 
;TOVRM
TOVRM	EQU	$
	LD	HL,WORK
	LD	DE,1A00H;SET PATTERN ID TABLE	
	LD	BC,0100H
	CALL	LDIRVM	;SET WORK LENGTH OF WORK
	RET
;VAR


RSLREG	EQU	0138H
FONT::	CALL	RSLREG
	AND	0C0H
	JR	Z,MIT
	CPL
	LD	(0F91FH),A
MIT:	LD	DE,0B5F8H
	LD	(0F920H),DE
	RET
;
;
;
SPRHED	EQU	1B00H
;	RDVRM	EQU	0174H
;	WRTVRM	EQU	0177H
	;
	;
krukru:	LD	HL,SPRHED
	LD	(SPRDT),HL
	LD	HL,AXYHED
	LD	(AXYDT),HL
	LD	B,20H
LOP1:	PUSH	BC
	CALL	SUB1
	INC	HL
	LD	A,(HL)
	CP	1
	JR	Z,QCARA
	LD	A,C
	CP	0
	JR	NZ,ZRSHRI
	INC 	B
	LD	A,B
	CP	176
	JR	NZ,MIX
	LD	HL,(AXYDT)
	LD	(HL),1
	JR	MIX
ZRSHRI:	DEC	B
	LD	A,B
	CP	0
	JR	NZ,MIX
	CALL	SUB3
MIX:	CALL	SUB2
XCARA:	CALL	SUB4
;
	CALL	SUB1
	LD	A,(HL)
	CP	2
	JR	Z,QCARA
	LD	A,C
	CP	0
	JR	NZ,ZRSHR2
	INC	B
	LD	A,B
	CP	240
	JR	NZ,MIX1
	LD	HL,(AXYDT)
	LD	(HL),1
	JR	MIX1
ZRSHR2:	DEC	B
	LD	A,B
	CP	0
	JR	NZ,MIX1
	CALL	SUB3
MIX1:	CALL	SUB2
	;
QCARA:	CALL	SUB4
	LD	HL,(AXYDT)
	INC	HL
	LD	(AXYDT),HL
	LD	HL,(SPRDT)
	CALL	RDVRM
	CP	40
	JR	Z,ELEV
	INC	A
	INC	A
	INC	A
	INC	A
	JR	MIX2
ELEV:	LD	A,0
MIX2:	PUSH	HL
	CALL	WRTVRM
	POP	HL
	INC	HL
	INC	HL
	LD	(SPRDT),HL
	POP	BC
	;	DEC	B
	DJNZ	LOP1
	;	LD	A,B
	;	LD	HL,BPOINT
	;	LD	(HL),A
	;	CP	0
	;	P	Z,LOP1
	RET
	;
SUB1:	LD	HL,(SPRDT)
	CALL	RDVRM
	LD	B,A
	LD	HL,(AXYDT)
	LD	C,(HL)
	INC	HL
	RET
;
SUB2:	LD	HL,(SPRDT)
	CALL	WRTVRM
	RET
SUB4:	LD	HL,(AXYDT)
	INC	HL
	LD	(AXYDT),HL
	LD	HL,(SPRDT)
	INC	HL
	LD	(SPRDT),HL
	RET
SUB3:	LD	HL,(AXYDT)
	LD	(HL),0
	RET
	;
AXYHED:	DB	0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0
	;	
SPRDT:	DB	0,0
AXYDT:	DB	0,0
BPOINT:	DB	0,0
;
;

KENJI::	LD	HL,2800H
	LD	DE,V_WORK
	LD	BC,800H
	CALL	LDIRMV
	LD	A,28H
	LD	(LINENO),A
	RET

CHANGE::
	LD	HL,V_WORK-2800H
	LD	A,(LINENO)
	LD	D,A
	LD	E,0
	ADD	HL,DE
	INC	A
	CP	30H
	JR	NZ,CHANGL
	LD	A,28H
CHANGL:	LD	(LINENO),A
	PUSH	HL
	PUSH	DE
	LD	B,0
CHANGM:	LD	A,(HL)
	ADD	A,10H
	LD	C,A
	AND	0F0H
	JR	NZ,CHANGN
	LD	A,C
	ADD	A,0A0H
	LD	C,A
CHANGN:	LD	(HL),C
	INC	HL
	DJNZ	CHANGM
	POP	DE
	POP	HL
	LD	BC,100H
	CALL	LDIRVM
	RET

V_WORK:	DS	800H
LINENO:	DS	1

KAITEN::LD	HL,1B00H
	LD	B,32
IIWA:	PUSH	BC
	INC	HL
	INC	HL
	PUSH	HL
	CALL	RDVRM
	POP	HL
	CP	60
	JP	Z,MIX11
	INC	A
	INC	A
	INC	A
	INC	A
	JP	MIX22
MIX11:	LD	A,0
MIX22:	PUSH	HL
	CALL	WRTVRM
	POP	HL
	INC	HL
	PUSH	HL
	CALL	RDVRM
	POP	HL
	CP	15
	JP	Z,MIX33
	INC	A
	JP	MIX44
MIX33:	LD	A,1
MIX44:	PUSH	HL
	CALL	WRTVRM
	POP	HL
	INC	HL
	POP	BC
	DJNZ	IIWA
	RET
	
	END

By Manuel

Ascended (19310)

Manuel's picture

23-08-2021, 01:24

That was very interesting to look at! I wonder if there are more of these MSX-based demonstration disks by Yamaha! Do you know of any?

By Manuel

Ascended (19310)

Manuel's picture

23-08-2021, 01:31

encore wrote:

I've also tried hooking my PC up to the PSR-6300 keyboard via a MIDI-interface and connecting it in the emulator and it sorta works. Some of the arrangements that it transfers over works fine and starts playing by themselves, but some of the others, like the cover of Miami Sound Machine's Conga sounds kind of broken in the bassline and doesn't start playing by itself. Not sure why that is, maybe it's the emulator or the MIDI-timing, I will investigate this more at some point. I could also record a video so others can see how it's supposed to be experienced, but it would be nice if the issues were solved first.

Not sure what's going on there. I don't have the synth nor a suitable soft synth (only the Munt MT32 one), so I can't really test it.
It might be good to check if the emulation speed remains constant (e.g. check with pressing F10, then type toggle_info_panel, and then pressing F10 again and then monitor the values of the speed). But perhaps there is also something wrong with the emulation somewhere. If you find out more, please do let me/us know.

By Pencioner

Scribe (1546)

Pencioner's picture

23-08-2021, 14:36

Does it require Portatone PSR-6300 connected to SFG module for this demonstration? Would it work without MIDI or with another MIDI device?

By Manuel

Ascended (19310)

Manuel's picture

23-08-2021, 14:41

There is no music without MIDI. And the program seems to send a lot of Yamaha system exclusive messages. I get no sound from an MT-32 softsynth.

By Pencioner

Scribe (1546)

Pencioner's picture

23-08-2021, 14:48

ok so until somebody dumps the MIDI data from PSR-6300 to catch those SYSEX events, no way to try it on a real SFG?
i'm soooo saaaad... Sad

By Manuel

Ascended (19310)

Manuel's picture

23-08-2021, 16:11

The program doesn't use the FM synth of the SFG, only the MIDI out to control the PSR.

By Pencioner

Scribe (1546)

Pencioner's picture

23-08-2021, 16:16

So basically this demo just plays some midi to PSR ? And to start playing it does wait for some control SYSEX message from keybpard?
Now i understand... then it is not what i expected Smile I was looking for some OPM tunes btw...

Page 1/2
| 2