Short program for editing the PSG (sound generator) register values.
Content
Source Code
10 REM PSG REGISTER PROGRAM 11 REM 20 REM Set up 21 REM 30 GO SUB 500 40 REM 41 REM Loop 42 REM 100 INPUT "Register?";r: IF r<0 OR r>14 THEN BEEP 1,10: GO TO 100 110 PRINT AT r+4,12; FLASH 1;r 120 INPUT "Value?";v: IF v<0 OR v>255 THEN BEEP 1,5: GO TO 110 130 OUT 245,r: OUT 246,v: GO SUB 300 140 PRINT AT r+4,12;r 150 GO TO 100 201 REM Print contents 300 REM 302 REM 310 OUT 245,r: LET mod=IN 246: LET power=128: PRINT AT r+4,17; 320 FOR x=0 TO 7: LET mod=mod-power: IF mod<0 THEN PRINT "0";: LET mod=mod+power: GO TO 340 330 PRINT "1"; 340 LET power=power/2: NEXT x 350 PRINT " ";IN 246;" ": RETURN 500 REM 501 REM Print screen 502 REM 510 PAPER 1: BORDER 1: INK 6: CLS 520 PRINT TAB 2;"PSG REGISTRS";TAB 20;"CONTENTS": PRINT AT 2,0; INVERSE 1;"Function No.";TAB 18;"Binary Dec. ": PRINT 530 FOR y=0 TO 14: READ a$: PRINT a$;AT y+4,12;y: LET r=y: GO SUB 300: NEXT y 540 RETURN 600 REM 601 REM String data 602 REM 610 DATA "Ch.A Fine"," Coarse","Ch.B Fine"," Coarse","Ch.C Fine"," Coarse","Noise" 620 DATA "Enable","Ch.A Ampl","Ch.B Ampl","Ch.C Ampl","Env.Fine"," Coarse","Env.Shape","Port"