14 0E ON ON - - - ON 46 2E - ON - - - ON 15 0F ON ON - - - - 47 2F - ON - - - - 16 10 ON - ON ON ON ON 48 30 - - ON ON ON ON 17 11 ON - ON ON ON - 49 31 - - ON ON ON - 18 12 ON - ON ON - ON 50 32 - - ON ON - ON 19 13 ON - ON ON - - 51 33 - - ON ON - - 20 14 ON - ON - ON ON 52 34 - - ON - ON ON 21 15 ON - ON - ON - 53 35 - - ON - ON - 22 16 ON - ON - - ON 54 36 - - ON - - ON 23 17 ON - ON - - - 55 37 - - ON - - - 24 18 ON - - ON ON ON 56 38 - - - ON ON ON 25 19 ON - - ON ON - 57 39 - - - ON ON ON 26 1A ON - - ON - ON 58 3A - - - ON - ON 27 1B ON - - ON - - 59 3B - - - ON - - 28 1C ON - - - ON ON 60 3C - - - - ON ON 29 1D ON - - - ON - 61 3D - - - - ON - 30 1E ON - - - - ON 62 3E - - - - - ON 31 1F ON - - - - - 63 3F - - - - - - A-5 APPENDIX D Envelope Shape Register (adapted from General Instrument Programmable Sound Generator Data Manual) REGISTER VALUE DEC HEX CONT ATTK ALT HOLD GRAPHIC REPRESENTATION 08 08 ON - - - 09 09 ON - - ON 10 0A ON - ON - 11 0B ON - ON ON 12 0C ON ON - - 13 0D ON ON - ON 14 0E ON ON ON - 15 0F ON ON ON ON SHAPE PATTERNS 0-7 ARE ONE CYCLE PATTERNS AND MAY BE REPRESENTED BY THE PATTERNS ABOVE. FOR EXAMPLE, SHAPE PATTERN 0 IS A DUPLICATE OF PATTERN 9. 00 00 - - X X A-6 APPENDIX E Equal Tempered Chromatic Scale(continued) (fCLOCK- 1.023 MHz) TONE PERIOD NOTE (DEC) (HEX) NOTE OCTV FREQ CRSE FINE CRSE FINE C 1 32.703 7 163 07 A3 C# 1 34.648 7 53 07 35 D 1 36.708 6 205 06 CD D# 1 38.891 6 108 06 6C E 1 41.203 6 15 06 0F F 1 43.654 5 184 05 B8 F# 1 46.249 5 102 05 66 G 1 48.999 5 24 05 18 G# 1 51.913 4 207 04 CF A 1 55.000 4 138 04 8A A# 1 58.270 4 73 04 49 B 1 61.735 4 11 04 0B C 2 65.406 3 209 03 D1 C# 2 69.296 3 154 03 9A D 2 73.416 3 102 03 66 D# 2 77.782 3 54 03 36 E 2 82.406 3 7 03 07 F 2 87.308 2 220 02 DC F# 2 92.498 2 179 02 B3 G 2 97.998 2 140 02 8C G# 3 103.826 2 103 02 67 A 3 110.000 2 69 02 45 A# 3 116.540 2 36 02 24 B 3 123.470 2 5 02 05 C 3 130.812 1 232 01 E8 C# 3 138.592 1 205 01 CD D 3 146.832 1 179 01 B3 D# 3 155.564 1 155 01 9B E 3 164.812 1 131 01 83 F 3 174.616 1 110 01 6E F# 3 184.996 1 89 01 59 G 3 195.996 1 70 01 46 A-7 APPENDIX E Equal Tempered Chromatic Scale(continued) (fCLOCK- 1.023 MHz) (adapted from General Instrument Programmable Sound Generator Data Manual) TONE PERIOD NOTE (DEC) (HEX) NOTE OCTV FREQ CRSE FINE CRSE FINE G# 3 207.652 1 51 01 33 A 3 220.000 1 34 01 22 A# 3 233.080 1 18 01 12 B 3 246.940 1 2 01 02 C 4 261.624 0 244 00 F4 C# 4 277.184 0 230 00 E6 D 4 293.664 0 217 00 D9 D# 4 311.128 0 205 00 CD E 4 329.624 0 193 00 C1 F 4 349.232 0 183 00 B7 F# 4 369.992 0 172 00 AC G 4 391.992 0 163 00 A3 G# 4 415.304 0 153 00 99 A 4 440.000 0 145 00 91 A# 4 466.160 0 137 00 89 B 4 493.880 0 129 00 81 C 5 523.248 0 122 00 7A C# 5 554.368 0 115 00 73 D 5 587.328 0 108 00 6C D# 5 622.256 0 102 00 66 E 5 659.248 0 96 00 60 F 5 698.464 0 91 00 58 F# 5 739.984 0 86 00 56 G 5 783.984 0 81 00 51 G# 5 830.608 0 76 00 4C A 5 880.000 0 72 00 48 A# 5 932.320 0 68 00 44 B 5 987.760 0 64 00 40 C 6 1046.496 0 61 00 3D C# 6 1108.736 0 57 00 39 D 6 1174.656 0 54 00 36 D# 6 1244.512 0 51 00 33 A-8 APPENDIX E Equal Tempered Chromatic Scale(continued) (fCLOCK- 1.023 MHz) (adapted from General Instrument Programmable Sound Generator Data Manual) TONE PERIOD NOTE (DEC) (HEX) NOTE OCTV FREQ CRSE FINE CRSE FINE E 6 1318.496 0 48 00 30 F 6 1396.928 0 45 00 2D F# 6 1479.968 0 43 00 2B G 6 1567.968 0 40 00 2B G# 6 1661.216 0 38 00 26 A 6 1760.000 0 36 00 24 A# 6 1864.640 0 34 00 22 B 6 1975.520 0 32 00 20 C 7 2092.992 0 30 00 1E C# 7 2217.472 0 28 00 1C D 7 2349.312 0 27 00 1B D# 7 2489.024 0 25 00 19 E 7 2636.992 0 24 00 18 F 7 2793.856 0 22 00 16 F# 7 2959.936 0 21 00 15 G 7 3135.936 0 20 00 14 G# 7 3322.432 0 19 00 13 A 7 3520.000 0 18 00 12 A# 7 3729.280 0 17 00 11 B 7 3951.040 0 16 00 10 C 8 4185.984 0 15 00 0F C# 8 4434.944 0 14 00 0E D 8 4698.624 0 13 00 0D D# 8 4978.048 0 12 00 0C E 8 5273.984 0 12 00 0C F 8 5587.712 0 11 00 0B F# 8 5919.872 0 10 00 0A G 8 6271.872 0 10 00 0A G# 8 6644.864 0 9 00 09 A 8 7040.000 0 9 00 09 A# 8 7458.560 0 8 00 08 B 8 7902.080 0 8 00 08 A-9 APPENDIX F Assembly Language Program Listings 1 *PRIMARY ROUTINES 2 *FOR SLOT 4 3 * 4 ORG $9000 5 * ;ADDRESSES FOR FIRST 6522 6 ORB EQU $C400 ;PORT B 7 ORA EQU $C401 ;PORT A 8 DDRB EQU $C402 ;DATA DIRECTION REGISTER (A) 9 DDRA EQU $C403 ;DATA DIRECTION REGISTER (B) 10 * ;ADDRESSES FOR SECOND 6522 11 ORB2 EQU $C480 ;PORT B 12 ORA2 EQU $C481 ;PORT A 13 DDRB2 EQU $C482 ;DATA DIRECTION REGISTER (B) 14 DDRA2 EQU $C483 ;DATA DIRECTION REGISTER (A) 15 * 16 *ROUTINES FOR FIRST 6522 17 * 9000: A9 FF 18 INIT LDA #$FF ;SET PORT A FOR OUTPUT 9002: 8D O3 C4 19 STA DDRA 9005: A9 07 20 LDA #$07 ;SET PORT B FOR OUTPUT 9007: 8D 02 C4 21 STA DDRB 900A: 60 22 RTS ;RETURN 23 * A-10 APPENDIX F Assembly Language Program Listings (continued) 900B: A9 07 24 LATCH LDA #$07 ;SEND "LATCH COMMAND" 900D: 8D 00 C4 25 STA ORB ;TO SOUND CHIP 9010: A9 04 26 LDA #$04 ;THROUGH PORT B 9012: 8D 00 C4 27 STA ORB 9015: 60 28 RTS ;RETURN 29 * 9016: A9 06 30 WRITE LDA #$06 ;SEND "WRITE COMMAND" 9018: 8D 00 C4 31 STA ORB ;TO SOUND CHIP 901B: A9 04 32 LDA #$04 ;THROUGH PORT B 901D: 8D 00 C4 33 STA ORB 9020: 60 34 RTS ;RETURN 35 * 9021: A9 00 36 RESET LDA #$00 ;SEND "RESET COMMAND" 9023: 8D 00 C4 37 STA ORB ;TO SOUND CHIP 9026: A9 04 38 LDA #$04 ;THROUGH PORT B 9028: 8D 00 C4 39 STA ORB 902B: 60 40 RTS ;RETURN 41 * 42 *ROUTINES FOR SECOND 6522 43 * 902C: A9 FF 44 INIT2 LDA #$FF ;SET PORT A FOR OUTPUT 902E: 8D 83 C4 45 STA DDRA2 9031: A9 07 46 LDA #$07 ;SET PORT B FOR OUTPUT 9033: 8D 82 C4 47 STA DDRB2 9036: 60 48 RTS ;RETURN 49 * A-11 APPENDIX F Assembly Language Program Listings (continued) 9037: A9 07 50 LATCH2 LDA #$07 ;SEND "LATCH COMMAND" 9039: 8D 80 C4 51 STA ORB2 ;TO SOUND CHIP 903C: A9 04 52 LDA #$04 ;THROUGH PORT B 903E: 8D 80 C4 53 STA ORB2 9041: 60 54 RTS ;RETURN 55 * 9042: A9 06 56 WRITE2 LDA #$06 ;SEND "WRITE COMMAND" 9044: 8D 80 C4 57 STA ORB2 ;TO SOUND CHIP 9047: A9 04 58 LDA #$04 ;THROUGH PORT B 9049: 8D 80 C4 59 STA ORB2 904C: 60 60 RTS ;RETURN 61 * 904D: 9A 00 62 STA #$00 ;SEND "RESET COMMAND" 904F: 8D 80 C4 63 STA ORB2 ;TO SOUND CHIP 9052: A9 04 64 LDA #$04 ;THROUGH PORT B 9054: 8D 80 C4 65 STA ORB2 9057: 60 66 RTS ;RETURN 1 "TABLE ACCESS ROUTINE 2 "FOR SLOT 4 3 * 4 ORG $8000 5 * ;ADDRESSES FOR FIRST 6522 6 PTR EQU $08 ;DATA POINTER 7 ORA EQU $C401 ;PORT A 8 LATCH EQU $900B ;LATCH SUB- ROUTINE A-12 APPENDIX F Assembly Language Program Listings (continued) 9 WRITE EQU $9016 ;WRITE SUB- ROUTINE 10 RESET EQU $9021 ;RESET SUB- ROUTINE 11 * ;ADDRESSES FOR SECOND 6522 12 PRT2 EQU $0A ;DATA POINTER 13 ORA2 EQU $C481 ;PORT A 14 LATCH2 EQU $9037 ;LATCH SUB- ROUTINE 15 WRITE2 EQU $9042 ;RESET SUB- ROUTINE 16 RESET2 EQU $904D ;RESET SUB- ROUTINE 17 * 18 *ROUTINES FOR FIRST 6255 19 * 8000: 20 21 90 20 START JSR RESET ;RESET SOUND CHIP 8003: A0 00 21 LDY #$00 ;USED TO IDENTIFY REGISTER 8005: 8C 01 C4 22 LOOP STY ORA ;# OF SOUND -end of part 7-