-
Notifications
You must be signed in to change notification settings - Fork 11
/
64MAP11.TXT
2294 lines (2098 loc) · 78.4 KB
/
64MAP11.TXT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
*********
Welcome to Project 64!
The goal of Project 64 is to preserve Commodore 64 related documents
in electronic text format that might otherwise cease to exist with the
rapid advancement of computer technology and declining interest in 8-
bit computers on the part of the general population. If you would like
to help by converting C64 related hardcopy documents to electronic
texts please contact the manager of Project 64, Cris Berneburg, at
<74171.2136@compuserve.com>.
Extensive efforts were made to preserve the contents of the original
document. However, certain portions, such as diagrams, program
listings, and indexes may have been either altered or sacrificed due
to the limitations of plain vanilla text. Diagrams may have been
eliminated where ASCII-art was not feasible. Program listings may be
missing display codes where substitutions were not possible. Tables
of contents and indexes may have been changed from page number
references to section number references. Please accept our apologies
for these limitations, alterations, and possible omissions.
Document names are limited to the 8.3 file convention of DOS. The
first characters of the file name are an abbreviation of the original
document name. The version number of the etext follows next. After
that a letter may appear to indicate the particular source of the
document. Finally, the document is given a .TXT extension.
The author(s) of the original document and members of Project 64 make
no representations about the accuracy or suitability of this material
for any purpose. This etext is provided "as-is". Please refer to the
warantee of the original document, if any, that may included in this
etext. No other warantees, express or implied, are made to you as to
the etext or any medium it may be on. Neither the author(s) nor the
members of Project 64 will assume liability for damages either from
the direct or indirect use of this etext or from the distribution of
or modification to this etext.
*********
The Project 64 etext of several Commodore 64 memory maps. Converted
to etext by anonymous. The original etexts were transferred from
ftp://arnold.hiof.no/programs and concatenated into one document.
Commodore_64_IO_Maps.doc
Commodore_64_Memory_Maps.txt
Commodore_64_RAM_Memory_Map.doc
Commodore_64_ROM_Memory_Map.doc
Commodore_64_ROM_Memory_Map.txt
64MAP11.TXT etext #41. This replaces 64MAP10.TXT from June 1996.
*********
The Project 64 etext of Commodore_64_IO_Maps.doc
*********
; Commodore 64 I/O Map
; V1.1 1 Jun 1994
COMMODORE 64 INPUT/OUTPUT ASSIGNMENTS
HEX DECIMAL BITS DESCRIPTION
0000 0 7-0 MOS 6510 Data Direction
Register (xx101111)
Bit= 1: Output, Bit=0:
Input, x=Don't Care
0001 1 MOS 6510 Micro-Processor
On-Chip I/O Port
0 /LORAM Signal (0=Switch BASIC ROM Out)
1 /HIRAM Signal (0=Switch Kernal ROM Out)
2 /CHAREN Signal (0=Swith Char. ROM In)
3 Cassette Data Output Line
4 Cassette Switch Sense: 1 = Switch Closed
5 Cassette Motor Control
O = ON, 1 = OFF
6-7 Undefined
D000-D02E 53248-54271 MOS 6566 VIDEO INTERFACE CONTROLLER (VIC)
D000 53248 Sprite 0 X Pos
D001 53249 Sprite 0 Y Pos
D002 53250 Sprite 1 X Pos
D003 53251 Sprite 1 Y Pos
D004 53252 Sprite 2 X Pos
D005 53253 Sprite 2 Y Pos
D006 53254 Sprite 3 X Pos
D007 53255 Sprite 3 Y Pos
D008 53256 Sprite 4 X Pos
D009 53257 Sprite 4 Y Pos
D00A 53258 Sprite 5 X Pos
D00B 53259 Sprite 5 Y Pos
D00C 53260 Sprite 6 X Pos
D00D 53261 Sprite 6 Y Pos
D00E 53262 Sprite 7 X Pos
D00F 53263 Sprite 7 Y Pos
D010 53264 Sprites 0-7 X Pos (msb of X coord.)
D011 53265 VIC Control Register
7 Raster Compare: (Bit 8) See 53266
6 Extended Color Text Mode 1 = Enable
5 Bit Map Mode. 1 = Enable
4 Blank Screen to Border Color: 0 = Blank
3 Select 24/25 Row Text Display: 1 = 25 Rows
2-0 Smooth Scroll to Y Dot-Position (0-7)
D012 53266 Read Raster / Write Raster Value for Compare
IRQ
D013 53267 Light-Pen Latch X Pos
D014 53268 Light-Pen Latch Y Pos
D015 53269 Sprite display Enable: 1 = Enable
D016 53270 VIC Control Register
7-6 Unused
5 ALWAYS SET THIS BIT TO 0 !
4 Multi-Color Mode: 1 = Enable (Text or
Bit-Map)
3 Select 38/40 Column Text Display: 1 = 40 Cols
2-0 Smooth Scroll to X Pos
D017 53271 Sprites 0-7 Expand 2x Vertical (Y)
D018 53272 VIC Memory Control Register
7-4 Video Matrix Base Address (inside VIC)
3-1 Character Dot-Data Base Address (inside VIC)
0 Select upper/lower Character Set
D019 53273 VIC Interrupt Flag Register (Bit = 1: IRQ
Occurred)
7 Set on Any Enabled VIC IRQ Condition
3 Light-Pen Triggered IRQ Flag
2 Sprite to Sprite Collision IRQ Flag
1 Sprite to Background Collision IRQ Flag
0 Raster Compare IRQ Flag
D01A 53274 IRQ Mask Register: 1 = Interrupt Enabled
D01B 53275 Sprite to Background Display Priority:
1 = Sprite
D01C 53276 Sprites 0-7 Multi-Color Mode Select:
1 = M.C.M.
D01D 53277 Sprites 0-7 Expand 2x Horizontal (X)
D01E 53278 Sprite to Sprite Collision Detect
D01F 53279 Sprite to Background Collision Detect
D020 53280 Border Color
D021 53281 Background Color 0
D022 53282 Background Color 1
D023 53283 Background Color 2
D024 53284 Background Color 3
D025 53285 Sprite Multi-Color Register 0
D026 53286 Sprite Multi-Color Register 1
D027 53287 Sprite 0 Color
D028 53288 Sprite 1 Color
D029 53289 Sprite 2 Color
D02A 53290 Sprite 3 Color
D02B 53291 Sprite 4 Color
D02C 53292 Sprite 5 Color
D02D 53293 Sprite 6 Color
D02E 53294 Sprite 7 Color
D400-D7FF 54272-55295 MOS 6581 SOUND INTERFACE DEVICE (SID)
D400 54272 Voice 1: Frequency Control - Low-Byte
D401 54273 Voice 1: Frequency Control - High-Byte
D402 54274 Voice 1: Pulse Waveform Width - Low-Byte
D403 54275 7-4 Unused
3-0 Voice 1: Pulse Waveform Width - High-Nybble
D404 54276 Voice 1: Control Register
7 Select Random Noise Waveform, 1 = On
6 Select Pulse Waveform, 1 = On
5 Select Sawtooth Waveform, 1 = On
4 Select Triangle Waveform, 1 = On
3 Test Bit: 1 = Disable Oscillator 1
2 Ring Modulate Osc. 1 with Osc. 3 Output,
1 = On
1 Synchronize Osc. 1 with Osc. 3 Frequency,
1 = On
0 Gate Bit: 1 = Start Att/Dec/Sus,
0 = Start Release
D405 54277 Envelope Generator 1: Attack / Decay Cycle
Control
7-4 Select Attack Cycle Duration: 0-15
3-0 Select Decay Cycle Duration: 0-15
D406 54278 Envelope Generator 1: Sustain / Release Cycle
Control
7-4 Select Sustain Cycle Duration: 0-15
3-0 Select Release Cycle Duration: 0-15
D407 54279 Voice 2: Frequency Control - Low-Byte
D408 54280 Voice 2: Frequency Control - High-Byte
D409 54281 Voice 2: Pulse Waveform Width - Low-Byte
D40A 54282 7-4 Unused
3-0 Voice 2: Pulse Waveform Width - High-Nybble
D40B 54283 Voice 2: Control Register
7 Select Random Noise Waveform, 1 = On
6 Select Pulse Waveform, 1 = On
5 Select Sawtooth Waveform, 1 = On
4 Select Triangle Waveform, 1 = On
3 Test Bit: 1 = Disable Oscillator 1
2 Ring Modulate Osc. 2 with Osc. 1 Output,
1 = On
1 Synchronize Osc. 2 with Osc. 1 Frequency,
1 = On
0 Gate Bit: 1 = Start Att/Dec/Sus,
0 = Start Release
D40C 54284 Envelope Generator 2: Attack / Decay Cycle
Control
7-4 Select Attack Cycle Duration: O-15
3-0 Select Decay Cycle Duration: 0-15
D40D 54285 Envelope Generator 2: Sustain / Release Cycle
Control
7-4 Select Sustain Cycle Duration: O-15
3-0 Select Release Cycle Duration: O-15
D40E 54286 Voice 3: Frequency Control - Low-Byte
D40F 54287 Voice 3: Frequency Control - High-Byte
D410 54288 Voice 3: Pulse Waveform Width - Low-Byte
D411 54289 7-4 Unused
3-0 Voice 3: Pulse Waveform Width - High-Nybble
D412 54290 Voice 3: Control Register
7 Select Random Noise Waveform, 1 = On
6 Select Pulse Waveform, 1 = On
5 Select Sawtooth Waveform, 1 = On
4 Select Triangle Waveform, 1 = On
3 Test Bit: 1 = Disable Oscillator 1
2 Ring Modulate Osc. 3 with Osc. 2 Output,
1 = On
1 Synchronize Osc. 3 with Osc. 2 Frequency,
1 = On
0 Gate Bit: 1 = Start Att/Dec/Sus,
0 = Start Release
D413 54291 Envelope Generator 3: Attac/Decay Cycle Control
7-4 Select Attack Cycle Duration: 0-15
3-0 Select Decay Cycle Duration: 0-15
D414 54285 Envelope Generator 3: Sustain / Release Cycle
Control
7-4 Select Sustain Cycle Duration: 0-15
3-0 Select Release Cycle Duration: 0-15
D415 54293 Filter Cutoff Frequency: Low-Nybble
(Bits 2-0)
D416 54294 Filter Cutoff Frequency: High-Byte
D417 54295 Filter Resonance Control / Voice Input
Control
7-4 Select Filter Resonance: 0-15
3 Filter External Input: 1 = Yes, 0 = No
2 Filter Voice 3 Output: 1 = Yes, 0 = No
1 Filter Voice 2 Output: 1 = Yes, 0 = No
0 Filter Voice 1 Output: 1 = Yes, 0 = No
D418 54296 Select Filter Mode and Volume
7 Cut-Off Voice 3 Output: 1 = Off, 0 = On
6 Select Filter High-Pass Mode: 1 = On
5 Select Filter Band-Pass Mode: 1 = On
4 Select Filter Low-Pass Mode: 1 = On
3-0 Select Output Volume: 0-15
D419 54297 Analog/Digital Converter: Game Paddle 1
(0-255)
D41A 54298 Analog/Digital Converter Game Paddle 2
(0-255)
D41B 54299 Oscillator 3 Random Number Generator
D41C 54230 Envelope Generator 3 Output
D500-D7FF 54528-55295 SID IMAGES
D800-DBFF 55296-56319 Color RAM (Nybbles)
DC00-DCFF 56320-56575 MOS 6526 Complex Interface Adapter (CIA) #1
DC00 56320 Data Port A (Keyboard, Joystick, Paddles,
Light-Pen)
7-0 Write Keyboard Column Values for Keyboard
Scan
7-6 Read Paddles on Port A / B (01 = Port A,
10 = Port B)
4 Joystick A Fire Button: 1 = Fire
3-2 Paddle Fire Buttons
3-0 Joystick A Direction (0-15)
DC01 56321 Data Port B (Keyboard, Joystick, Paddles):
Game Port 1
7-0 Read Keyboard Row Values for Keyboard Scan
7 Timer B Toggle/Pulse Output
6 Timer A: Toggle/Pulse Output
4 Joystick 1 Fire Button: 1 = Fire
3-2 Paddle Fire Buttons
3-0 Joystick 1 Direction
DC02 56322 Data Direction Register - Port A (56320)
DC03 56323 Data Direction Register - Port B (56321)
DC04 56324 Timer A: Low-Byte
DC05 56325 Timer A: High-Byte
DC06 56326 Timer B: Low-Byte
DC07 56327 Timer B: High-Byte
DC08 56328 Time-of-Day Clock: 1/10 Seconds
DC09 56329 Time-of-Day Clock: Seconds
DC0A 56330 Time-of-Day Clock: Minutes
DC0B 56331 Time-of-Day Clock: Hours + AM/PM Flag (Bit 7)
DC0C 56332 Synchronous Serial I/O Data Buffer
DC0D 56333 CIA Interrupt Control Register (Read
IRQs/Write Mask)
7 IRQ Flag (1 = IRQ Occurred) / Set-Clear Flag
4 FLAG1 IRQ (Cassette Read / Serial Bus SRQ
Input)
3 Serial Port Interrupt
2 Time-of-Day Clock Alarm Interrupt
1 Timer B Interrupt
0 Timer A Interrupt
DC0E 56334 CIA Control Register A
7 Time-of-Day Clock Frequency: 1 = 50 Hz,
0 = 60 Hz
6 Serial Port I/O Mode Output, 0 = Input
5 Timer A Counts: 1 = CNT Signals,
0 = System 02 Clock
4 Force Load Timer A: 1 = Yes
3 Timer A Run Mode: 1 = One-Shot,
0 = Continuous
2 Timer A Output Mode to PB6: 1 = Toggle,
0 = Pulse
1 Timer A Output on PB6: 1 = Yes, 0 = No
0 Start/Stop Timer A: 1 = Start, 0 = Stop
DC0F 56335 CIA Control Register B
7 Set Alarm/TOD-Clock: 1 = Alarm, 0 = Clock
6-5 Timer B Mode Select:
00 = Count System 02 Clock Pulses
01 = Count Positive CNT Transitions
10 = Count Timer A Underflow Pulses
11 = Count Timer A Underflows While
CNT Positive
4-0 Same as CIA Control Reg. A - for Timer B
DD00-DDFF 56576-56831 MOS 6526 Complex Interface Adapter
(CIA) #2
DD00 56576 Data Port A (Serial Bus, RS-232, VIC Memory
Control)
7 Serial Bus Data Input
6 Serial Bus Clock Pulse Input
5 Serial Bus Data Output
4 Serial Bus Clock Pulse Output
3 Serial Bus ATN Signal Output
2 RS-232 Data Output (User Port)
1-0 VIC Chip System Memory Bank Select
(Default = 11)
DD01 56577 Data Port B (User Port, RS-232)
7 User / RS-232 Data Set Ready
6 User / RS-232 Clear to Send
5 User
4 User / RS-232 Carrier Detect
3 User / RS-232 Ring Indicator
2 User / RS-232 Data Terminal Ready
1 User / RS-232 Request to Send
0 User / RS-232 Received Data
DD02 56578 Data Direction Register - Port A
DD03 56579 Data Direction Register - Port B
DD04 56580 Timer A: Low-Byte
DD05 56581 Timer A: High-Byte
DD06 56582 Timer B: Low-Byte
DD07 56583 Timer B: High-Byte
DD08 56584 Time-of-Day Clock: 1/10 Seconds
DD09 56585 Time-of-Day Clock: Seconds
DD0A 56586 Time-of-Day Clock: Minutes
DD0B 56587 Time-of-Day Clock: Hours + AM/PM Flag (Bit 7)
DD0C 56588 Synchronous Serial I/O Data Buffer
DD0D 56589 CIA Interrupt Control Register (Read
NMls/Write Mask)
7 NMI Flag (1 = NMI Occurred) / Set-Clear Flag
4 FLAG1 NMI (User/RS-232 Received Data Input)
3 Serial Port Interrupt
1 Timer B Interrupt
0 Timer A Interrupt
DD0E 56590 CIA Control Register A
7 Time-of-Day Clock Frequency: 1 = 50 Hz,
0 = 60 Hz
6 Serial Port I/O Mode Output, 0 = Input
5 Timer A Counts: 1 = CNT Signals,
0 = System 02 Clock
4 Force Load Timer A: 1 = Yes
3 Timer A Run Mode: 1 = One-Shot,
0 = Continuous
2 Timer A Output Mode to PB6: 1 = Toggle,
0 = Pulse
1 Timer A Output on PB6: 1 = Yes, 0 = No
0 Start/Stop Timer A: 1 = Start, 0 = Stop
DD0F 56591 CIA Control Register B
7 Set Alarm/TOD-Clock: 1 = Alarm, 0 = Clock
6-5 Timer B Mode Select:
00 = Count System 02 Clock Pulses
01 = Count Positive CNT Transitions
10 = Count Timer A Underflow Pulses
11 = Count Timer A Underflows While
CNT Positive
4-0 Same as CIA Control Reg. A - for Timer B
DE00-DEFF 56832-57087 Reserved for Future I/O Expansion
DF00-DFFF 57088-57343 Reserved for Future I/O Expansion
*********
End of the Project 64 etext of Commodore_64_IO_Maps.doc
*********
The Project 64 etext of Commodore_64_Memory_Maps.txt
*********
COMMODORE 64 MEMORY MAPS
ADDRESS
LABEL HEX DEC DESCRIPTION
----------------------------------------------------------------------------
D6510 0000 0 6510 On-chip Data Direction Register.
R6510 0001 1 6510 On-chip 8-bit Input/Output Register.
TEMP 0002 2 Unused. Free for user programs.
ADRAY1 0003-0004 3 Jump Vector: Convert FAC to Integer in (A/Y)
($B1AA).
ADRAY2 0005-0006 5 Jump Vector: Convert Integer in (A/Y) to
Floating point in (FAC); ($B391).
CHARAC 0007 7 Search Character/Temporary Integer during INT.
ENDCHR 0008 8 Flag: Scan for Quote at end of String.
INTEGR 0007-0008 7 Temporary Integer during OR/AND.
TRMPOS 0009 9 Screen Column for last TAB.
VERCK 000A 10 Flag: 0 = Load, 1 = Verify.
COUNT 000B 11 Input Buffer Pointer/Number of Subscripts.
DIMFLG 000C 12 Flag: Default Array dimension.
VALTYP 000D 13 Data type Flag: $00 = Numeric, $FF = String.
INTFLG 000E 14 Data type Flag: $00 = Floating point, $80 =
Integer.
GARBFL 000F 15 Flag: DATA scan/List Quote/Garbage collection.
SUBFLG 0010 16 Flag: Subscript reference/User Function call.
INPFLG 0011 17 Input Flag: $00 = INPUT, $40 = GET, $98 =
READ.
TANSGN 0012 18 Flag: TAN sign/Comparative result.
CHANNL 0013 19 File number of current Input Device.
LINNUM 0014-0015 20 Temporary: Integer value.
TEMPPT 0016 22 Pointer: Temporary String Stack.
LASTPT 0017-0018 23 Last temporary String Address.
TEMPST 0019-0021 25 Stack for temporary Strings.
INDEX 0022-0025 34 Utility Pointer Area.
INDEX1 0022-0023 34 First Utility Pointer.
INDEX2 0024-0025 36 Second Utility Pointer.
RESHO 0026-002A 38 Floating point product of Multiply and
Divide.
TXTTAB 002B-002C 43 Pointer: Start of BASIC Text Area ($0801).
VARTAB 002D-002E 45 Pointer: Start of BASIC Variables.
ARYTAB 002F-0030 47 Pointer: Start of BASIC Arrays.
STREND 0031-0032 49 Pointer: End of BASIC Arrays + 1.
FRETOP 0033-0034 51 Pointer: Bottom of String space.
FRESPC 0035-0036 53 Utility String Pointer.
MEMSIZ 0037-0038 55 Pointer: Highest Address available to BASIC
($A000).
CURLIN 0039-003A 57 Current BASIC Line number.
OLDLIN 003B-003C 59 Previous BASIC Line number.
OLDTXT 003D-003E 61 Pointer: BASIC Statement for CONT.
DATLIN 003F-0040 63 Current DATA Line number.
DATPTR 0041-0042 65 Pointer: Used by READ - current DATA Item
Address.
INPPTR 0043-0044 67 Pointer: Temporary storage of Pointer during
INPUT Routine.
VARNAM 0045-0046 69 Name of Variable being sought in Variable
Table.
VARPNT 0047-0048 71 Pointer: to value of (VARNAM) if Integer, to
descriptor if String.
FORPNT 0049-004A 73 Pointer: Index Variable for FOR/NEXT loop.
VARTXT 004B-004C 75 Temporary storage for TXTPTR during READ,
INPUT and GET.
OPMASK 004D 77 Mask used during FRMEVL.
TEMPF3 004E-0052 78 Temporary storage for FLPT value.
FOUR6 0053 83 Length of String Variable during garbage
collection.
JMPER 0054-0056 84 Jump Vector used in Function Evaluation -
JMP followed by Address ($4C,$LB,$MB).
TEMPF1 0057-005B 87 Temporary storage for FLPT value.
TEMPF2 005C-0060 92 Temporary storage for FLPT value.
FAC 0061-0066 97 Main Floating point Accumulator.
FACEXP 0061 97 FAC Exponent.
FACHO 0062-0065 98 FAC Mantissa.
FACSGN 0066 102 FAC Sign.
SGNFLG 0067 103 Pointer: Series Evaluation Constant.
BITS 0068 104 Bit Overflow Area during normalisation
Routine.
AFAC 0069-006E 105 Auxiliary Floating point Accumulator.
ARGEXP 0069 105 AFAC Exponent.
ARGHO 006A-006D 106 AFAC Mantissa.
ARGSGN 006E 110 AFAC Sign.
ARISGN 006F 111 Sign of result of Arithmetic Evaluation.
FACOV 0070 112 FAC low-order rounding.
FBUFPT 0071-0072 113 Pointer: Used during CRUNCH/ASCII conversion.
CHRGET 0073-008A 115 Subroutine: Get next Byte of BASIC Text.
,0073 INC $7A ,0082 BEQ $0073
,0075 BNE $0079 ,0084 SEC
,0077 INC $7B ,0085 SBC #$30
! ,0079 LDA $0801 ,0087 SEC
,007C CMP #$3A ,0088 SBC #$D0
,007E BCS $008A ,008A RTS
,0080 CMP #$20
CHRGOT 0079 121 Entry to Get same Byte again.
TXTPTR 007A-007B 122 Pointer: Current Byte of BASIC Text.
RNDX 008B-008F 139 Floating RND Function Seed Value.
STATUS 0090 144 Kernal I/O Status Word ST.
STKEY 0091 145 Flag: $7F = STOP key.
SVXT 0092 146 Timing Constant for Tape.
VERCKK 0093 147 Flag: 0 = Load, 1 = Verify.
C3PO 0094 148 Flag: Serial Bus - Output Character buffered.
BSOUR 0095 149 Buffered Character for Serial Bus.
SYNO 0096 150 Cassette Sync. number.
TEMPX 0097 151 Temporary storage of X Register during CHRIN.
TEMPY 0097 151 Temporary storage of Y Register during RS232
fetch.
LDTND 0098 152 Number of Open Files/Index to File Table.
DFLTN 0099 153 Default Input Device (0).
DFLTO 009A 154 Default Output Device (3).
PRTY 009B 155 Parity of Byte Output to Tape.
DPSW 009C 156 Flag: Byte received from Tape.
MSGFLG 009D 157 Flag: $00 = Program mode: Suppress Error
Messages, $40 = Kernal Error Messages only,
$80 = Direct mode: Full Error Messages.
FNMIDX 009E 158 Index to Cassette File name/Header ID for
Tape write.
PTR1 009E 158 Tape Error log pass 1.
PTR2 009F 159 Tape Error log pass 2.
TIME 00A0-00A2 160 Real-time jiffy Clock (Updated by IRQ
Interrupt approx. every 1/60 of Second);
Update Routine: UDTIMK ($F69B).
TSFCNT 00A3 163 Bit Counter Tape Read or Write/Serial Bus
EOI (End Of Input) Flag.
TBTCNT 00A4 164 Pulse Counter Tape Read or Write/Serial Bus
shift Counter.
CNTDN 00A5 165 Tape Synchronising count down.
BUFPNT 00A6 166 Pointer: Tape I/O buffer.
INBIT 00A7 167 RS232 temporary for received Bit/Tape
temporary.
BITC1 00A8 168 RS232 Input Bit count/Tape temporary.
RINONE 00A9 169 RS232 Flag: Start Bit check/Tape temporary.
RIDATA 00AA 170 RS232 Input Byte Buffer/Tape temporary.
RIPRTY 00AB 171 RS232 Input parity/Tape temporary.
SAL 00AC-00AD 172 Pointer: Tape Buffer/Screen scrolling.
EAL 00AE-00AF 174 Tape End Address/End of Program.
CMPO 00B0-00B1 176 Tape timing Constants.
TAPE1 00B2-00B3 178 Pointer: Start Address of Tape Buffer ($033C).
BITTS 00B4 180 RS232 Write bit count/Tape Read timing Flag.
NXTBIT 00B5 181 RS232 Next Bit to send/Tape Read - End of
Tape.
RODATA 00B6 182 RS232 Output Byte Buffer/Tape Read Error Flag.
FNLEN 00B7 183 Number of Characters in Filename.
LA 00B8 184 Current File - Logical File number.
SA 00B9 185 Current File - Secondary Address.
FA 00BA 186 Current File - First Address (Device number).
OPEN LA,FA,SA; OPEN 1,8,15,"I0":CLOSE 1
FNADR 00BB-00BC 187 Pointer: Current File name Address.
ROPRTY 00BD 189 RS232 Output Parity/Tape Byte to be Input or
Output.
FSBLK 00BE 190 Tape Input/Output Block count.
MYCH 00BF 191 Serial Word Buffer.
CAS1 00C0 192 Tape Motor Switch.
STAL 00C1-00C2 193 Start Address for LOAD and Cassette Write.
MEMUSS 00C3-00C4 195 Pointer: Type 3 Tape LOAD and general use.
LSTX 00C5 197 Matrix value of last Key pressed; No Key = $40.
NDX 00C6 198 Number of Characters in Keyboard Buffer
queue.
RVS 00C7 199 Flag: Reverse On/Off; On = $01, Off = $00.
INDX 00C8 200 Pointer: End of Line for Input (Used to
suppress trailing spaces).
LXSP 00C9-00CA 201 Cursor X/Y (Line/Column) position at start of
Input.
SFDX 00CB 203 Flag: Print shifted Characters.
BLNSW 00CC 204 Flag: Cursor blink; $00 = Enabled, $01 =
Disabled.
BLNCT 00CD 205 Timer: Count down for Cursor blink toggle.
GDBLN 00CE 206 Character under Cursor while Cursor Inverted.
BLNON 00CF 207 Flag: Cursor Status; $00 = Off, $01 = On.
CRSW 00D0 208 Flag: Input from Screen = $03, or Keyboard =
$00.
PNT 00D1-00D2 209 Pointer: Current Screen Line Address.
PNTR 00D3 211 Cursor Column on current Line, including
Wrap-round Line, if any.
QTSW 00D4 212 Flag: Editor in Quote Mode; $00 = Not.
LNMX 00D5 213 Current logical Line length: 39 or 79.
TBLX 00D6 214 Current Screen Line number of Cursor.
SCHAR 00D7 215 Screen value of current Input Character/Last
Character Output.
INSRT 00D8 216 Count of number of inserts outstanding.
LDTB1 00D9-00F2 217 Screen Line link Table/Editor temporaries.
High Byte of Line Screen Memory Location.
USER 00F3-00F4 243 Pointer: Current Colour RAM Location.
KEYTAB 00F5-00F6 245 Vector: Current Keyboard decoding Table.
($EB81)
RIBUF 00F7-00F8 247 RS232 Input Buffer Pointer.
ROBUF 00F9-00FA 249 RS232 Output Buffer Pointer.
FREKZP 00FB-00FE 251 Free Zero Page space for User Programs.
BASZPT 00FF 255 BASIC temporary Data Area.
ASCWRK 00FF-010A 255 Assembly Area for Floating point to ASCII
conversion.
BAD 0100-013E 256 Tape Input Error log.
STACK 0100-01FF 256 6510 Hardware Stack Area.
BSTACK 013F-01FF 319 BASIC Stack Area.
BUF 0200-0258 512 BASIC Input Buffer (Input Line from Screen).
LAT 0259-0262 601 Kernal Table: Active logical File numbers.
FAT 0263-026C 611 Kernal Table: Active File First Addresses
(Device numbers).
SAT 026D-0276 621 Kernal Table: Active File Secondary
Addresses.
KEYD 0277-0280 631 Keyboard Buffer Queue (FIFO).
MEMSTR 0281-0282 641 Pointer: Bottom of Memory for Operating
System ($0800).
MEMSIZ 0283-0284 643 Pointer: Top of Memory for Operating
System ($A000).
TIMOUT 0285 645 Serial IEEE Bus timeout defeat Flag.
COLOR 0286 646 Current Character Colour code.
GDCOL 0287 647 Background Colour under Cursor.
HIBASE 0288 648 High Byte of Screen Memory Address ($04).
XMAX 0289 649 Maximum number of Bytes in Keyboard
Buffer ($0A).
RPTFLG 028A 650 Flag: Repeat keys; $00 = Cursors, INST/DEL &
Space repeat, $40 no Keys repeat, $80 all
Keys repeat ($00).
KOUNT 028B 651 Repeat Key: Speed Counter ($04).
DELAY 028C 652 Repeat Key: First repeat delay Counter ($10).
SHFLAG 028D 653 Flag: Shift Keys: Bit 1 = Shift, Bit 2 = CBM,
Bit 3 = CTRL; ($00 = None, $01 = Shift, etc.).
LSTSHF 028E 654 Last Shift Key used for debouncing.
KEYLOG 028F-0290 655 Vector: Routine to determine Keyboard table
to use based on Shift Key Pattern ($EB48).
MODE 0291 657 Flag: Upper/Lower Case change: $00 = Disabled,
$80 = Enabled ($00).
AUTODN 0292 658 Flag: Auto scroll down: $00 = Disabled ($00).
M51CTR 0293 659 RS232 Pseudo 6551 control Register Image.
M51CDR 0294 660 RS232 Pseudo 6551 command Register Image.
M51AJB 0295-0296 661 RS232 Non-standard Bits/Second.
RSSTAT 0297 663 RS232 Pseudo 6551 Status Register Image.
BITNUM 0298 664 RS232 Number of Bits left to send.
BAUDOF 0299-029A 665 RS232 Baud Rate; Full Bit time microseconds.
RIDBE 029B 667 RS232 Index to End of Input Buffer.
RIDBS 029C 668 RS232 Pointer: High Byte of Address of Input
Buffer.
RODBS 029D 669 RS232 Pointer: High Byte of Address of Output
Buffer.
RODBE 029E 670 RS232 Index to End of Output Buffer.
IRQTMP 029F-02A0 671 Temporary store for IRQ Vector during Tape
operations.
ENABL 02A1 673 RS232 Enables.
TODSNS 02A2 674 TOD sense during Tape I/O.
TRDTMP 02A3 675 Temporary storage during Tape READ.
TD1IRQ 02A4 676 Temporary D1IRQ Indicator during Tape READ.
TLNIDX 02A5 677 Temporary for Line Index.
TVSFLG 02A6 678 Flag: TV Standard: $00 = NTSC, $01 = PAL.
TEMP 02A7-02FF 679 Unused.
SPR11 02C0-02FE 704 Sprite #11 Data Area.
(SCREEN + $03F8 + SPR number)
POKE 1024+1016+0,11 to use Sprite#0 DATA
from ($02C0-$02FE).
IERROR 0300-0301 768 Vector: Indirect entry to BASIC Error
Message, (X) points to Message ($E38B).
IMAIN 0302-0303 770 Vector: Indirect entry to BASIC Input Line
and Decode ($A483).
ICRNCH 0304-0305 772 Vector: Indirect entry to BASIC Tokenise
Routine ($A57C).
IQPLOP 0306-0307 774 Vector: Indirect entry to BASIC LIST
Routine ($A71A).
IGONE 0308-0309 776 Vector: Indirect entry to BASIC Character
dispatch Routine ($A7E4).
IEVAL 030A-030B 778 Vector: Indirect entry to BASIC Token
evaluation ($AE86).
SAREG 030C 780 Storage for 6510 Accumulator during SYS.
SXREG 030D 781 Storage for 6510 X-Register during SYS.
SYREG 030E 782 Storage for 6510 Y-Register during SYS.
SPREG 030F 783 Storage for 6510 Status Register during SYS.
USRPOK 0310 784 USR Function JMP Instruction ($4C).
USRADD 0311-0312 785 USR Address ($LB,$MB).
TEMP 0313 787 Unused.
CINV 0314-0315 788 Vector: Hardware IRQ Interrupt Address ($EA31).
CNBINV 0316-0317 790 Vector: BRK Instruction Interrupt Address
($FE66).
NMINV 0318-0319 792 Vector: Hardware NMI Interrupt Address ($FE47).
IOPEN 031A-031B 794 Vector: Indirect entry to Kernal OPEN
Routine ($F34A).
ICLOSE 031C-031D 796 Vector: Indirect entry to Kernal CLOSE
Routine ($F291).
ICHKIN 031E-031F 798 Vector: Indirect entry to Kernal CHKIN
Routine ($F20E).
ICKOUT 0320-0321 800 Vector: Indirect entry to Kernal CHKOUT
Routine ($F250).
ICLRCH 0322-0323 802 Vector: Indirect entry to Kernal CLRCHN
Routine ($F333).
IBASIN 0324-0325 804 Vector: Indirect entry to Kernal CHRIN
Routine ($F157).
IBSOUT 0326-0327 806 Vector: Indirect entry to Kernal CHROUT
Routine ($F1CA).
ISTOP 0328-0329 808 Vector: Indirect entry to Kernal STOP
Routine ($F6ED).
IGETIN 032A-032B 810 Vector: Indirect entry to Kernal GETIN
Routine ($F13E).
ICLALL 032C-032D 812 Vector: Indirect entry to Kernal CLALL
Routine ($F32F).
USRCMD 032E-032F 814 User Defined Vector ($FE66).
ILOAD 0330-0331 816 Vector: Indirect entry to Kernal LOAD
Routine ($F4A5).
ISAVE 0332-0333 818 Vector: Indirect entry to Kernal SAVE
Routine ($F5ED).
TEMP 0334-033B 820 Unused.
TBUFFR 033C-03FB 828 Tape I/O Buffer.
SPR13 0340-037E 832 Sprite #13.
SPR14 0380-03BE 896 Sprite #14.
SPR15 03C0-03FE 960 Sprite #15.
TEMP 03FC-03FF 1020 Unused.
VICSCN 0400-07E7 1024 Default Screen Video Matrix.
TEMP 07E8-07F7 2024 Unused.
SPNTRS 07F8-07FF 2040 Default Sprite Data Pointers.
0800-9FFF 2048 Normal BASIC Program space.
8000-9FFF 32768 Optional Cartridge ROM space.
A000-BFFF 40960 BASIC ROM (Part) or 8 KB RAM.
C000-CFFF 49152 4 KB RAM.
D000-DFFF 53248 Input/Output Devices and Colour RAM or
4 KB RAM or Character ROM.
D000-D02E 53248 6566 Video Interface Chip, VIC II.
D400-D41C 54272 6581 Sound Interface Device, SID.
D500-D7FF 54528 SID Images.
D800-DBE7 55296 Colour RAM (Nybbles = 4 Bit RAM, LSB).
DBE8-DBFF 56296 Unused Nybbles.
DC00-DC0F 56320 6526 Complex Interface Adaptor, CIA.
DD00-DD0F 56576 6526 Complex Interface Adaptor, CIA.
E000-FFFF 57344 BASIC (Part)/Kernal ROM or 8 KB RAM.
E000-E4FF 57344 BASIC ROM (Part) or RAM.
E500-FFFF 58624 Kernal ROM or RAM.
COMMODORE 64 INPUT/OUTPUT ASSIGNMENTS
HEX DECIMAL BITS DESCRIPTION
0000 0 7-0 MOS 6510 Data Direction
Register (xx101111)
Bit= 1: Output, Bit=0:
Input, x=Don't Care
0001 1 MOS 6510 Micro-Processor
On-Chip I/O Port
0 /LORAM Signal (0=Switch BASIC ROM Out)
1 /HIRAM Signal (0=Switch Kernal ROM Out)
2 /CHAREN Signal (O=Switch Char. ROM In)
3 Cassette Data Output Line
4 Cassette Switch Sense: 1 = Switch Closed
5 Cassette Motor Control
O = ON, 1 = OFF
6-7 Undefined
D000-D02E 53248-54271 MOS 6566 VIDEO INTERFACE CONTROLLER (VIC)
D000 53248 Sprite 0 X Pos
D001 53249 Sprite 0 Y Pos
D002 53250 Sprite 1 X Pos
D003 53251 Sprite 1 Y Pos
D004 53252 Sprite 2 X Pos
D005 53253 Sprite 2 Y Pos
D006 53254 Sprite 3 X Pos
D007 53255 Sprite 3 Y Pos
D008 53256 Sprite 4 X Pos
D009 53257 Sprite 4 Y Pos
D00A 53258 Sprite 5 X Pos
D00B 53259 Sprite 5 Y Pos
D00C 53260 Sprite 6 X Pos
D00D 53261 Sprite 6 Y Pos
D00E 53262 Sprite 7 X Pos
D00F 53263 Sprite 7 Y Pos
D010 53264 Sprites 0-7 X Pos (msb of X coord.)
D011 53265 VIC Control Register
7 Raster Compare: (Bit 8) See 53266
6 Extended Color Text Mode 1 = Enable
5 Bit Map Mode. 1 = Enable
4 Blank Screen to Border Color: 0 = Blank
3 Select 24/25 Row Text Display: 1 = 25 Rows
2-0 Smooth Scroll to Y Dot-Position (0-7)
D012 53266 Read Raster / Write Raster Value for Compare
IRQ
D013 53267 Light-Pen Latch X Pos
D014 53268 Light-Pen Latch Y Pos
D015 53269 Sprite display Enable: 1 = Enable
D016 53270 VIC Control Register
7-6 Unused
5 ALWAYS SET THIS BIT TO 0 !
4 Multi-Color Mode: 1 = Enable (Text or
Bit-Map)
3 Select 38/40 Column Text Display: 1 = 40 Cols
2-0 Smooth Scroll to X Pos
D017 53271 Sprites O-7 Expand 2x Vertical (Y)
D018 53272 VIC Memory Control Register
7-4 Video Matrix Base Address (inside VIC)
3-1 Character Dot-Data Base Address (inside VIC)
0 Select upper/lower Character Set
D019 53273 VIC Interrupt Flag Register (Bit = 1: IRQ
Occurred)
7 Set on Any Enabled VIC IRQ Condition
3 Light-Pen Triggered IRQ Flag
2 Sprite to Sprite Collision IRQ Flag
1 Sprite to Background Collision IRQ Flag
0 Raster Compare IRQ Flag
D01A 53274 IRQ Mask Register: 1 = Interrupt Enabled
D01B 53275 Sprite to Background Display Priority:
1 = Sprite
D01C 53276 Sprites O-7 Multi-Color Mode Select:
1 = M.C.M.
D01D 53277 Sprites 0-7 Expand 2x Horizontal (X)
D01E 53278 Sprite to Sprite Collision Detect
D01F 53279 Sprite to Background Collision Detect
D020 53280 Border Color
D021 53281 Background Color 0
D022 53282 Background Color 1
D023 53283 Background Color 2
D024 53284 Background Color 3
D025 53285 Sprite Multi-Color Register 0
D026 53286 Sprite Multi-Color Register 1
D027 53287 Sprite 0 Color
D028 53288 Sprite 1 Color
D029 53289 Sprite 2 Color
D02A 53290 Sprite 3 Color
D02B 53291 Sprite 4 Color
D02C 53292 Sprite 5 Color
D02D 53293 Sprite 6 Color
D02E 53294 Sprite 7 Color
D400-D7FF 54272-55295 MOS 6581 SOUND INTERFACE DEVICE (SID)
D400 54272 Voice 1: Frequency Control - Low-Byte
D401 54273 Voice 1: Frequency Control - High-Byte
D402 54274 Voice 1: Pulse Waveform Width - Low-Byte
D403 54275 7-4 Unused
3-0 Voice 1: Pulse Waveform Width - High-Nybble
D404 54276 Voice 1: Control Register
7 Select Random Noise Waveform, 1 = On
6 Select Pulse Waveform, 1 = On
5 Select Sawtooth Waveform, 1 = On
4 Select Triangle Waveform, 1 = On
3 Test Bit: 1 = Disable Oscillator 1
2 Ring Modulate Osc. 1 with Osc. 3 Output,
1 = On
1 Synchronize Osc. 1 with Osc. 3 Frequency,
1 = On
0 Gate Bit: 1 = Start Att/Dec/Sus, 0 = Start
Release
D405 54277 Envelope Generator 1: Attack / Decay Cycle
Control
7-4 Select Attack Cycle Duration: 0-15
3-0 Select Decay Cycle Duration: 0-15
D406 54278 Envelope Generator 1: Sustain / Release Cycle
Control
7-4 Select Sustain Cycle Duration: 0-15
3-0 Select Release Cycle Duration: 0-15
D407 54279 Voice 2: Frequency Control - Low-Byte
D408 54280 Voice 2: Frequency Control - High-Byte
D409 54281 Voice 2: Pulse Waveform Width - Low-Byte
D40A 54282 7-4 Unused
3-0 Voice 2: Pulse Waveform Width - High-Nybble
D40B 54283 Voice 2: Control Register
7 Select Random Noise Waveform, 1 = On
6 Select Pulse Waveform, 1 = On
5 Select Sawtooth Waveform, 1 = On
4 Select Triangle Waveform, 1 = On
3 Test Bit: 1 = Disable Oscillator 1
2 Ring Modulate Osc. 2 with Osc. 1 Output,
1 = On
1 Synchronize Osc. 2 with Osc. 1 Frequency,
1 = On
0 Gate Bit: 1 = Start Att/Dec/Sus, 0 = Start
Release
D40C 54284 Envelope Generator 2: Attack / Decay Cycle
Control
7-4 Select Attack Cycle Duration: 0-15
3-0 Select Decay Cycle Duration: 0-15
D40D 54285 Envelope Generator 2: Sustain / Release Cycle Control
7-4 Select Sustain Cycle Duration: O-15
3-0 Select Release Cycle Duration: O-15
D40E 54286 Voice 3: Frequency Control - Low-Byte
D40F 54287 Voice 3: Frequency Control - High-Byte
D410 54288 Voice 3: Pulse Waveform Width - Low-Byte
D411 54289 7-4 Unused
3-0 Voice 3: Pulse Waveform Width - High-Nybble
D412 54290 Voice 3: Control Register
7 Select Random Noise Waveform, 1 = On
6 Select Pulse Waveform, 1 = On
5 Select Sawtooth Waveform, 1 = On
4 Select Triangle Waveform, 1 = On
3 Test Bit: 1 = Disable Oscillator 1
2 Ring Modulate Osc. 3 with Osc. 2 Output,
1 = On
1 Synchronize Osc. 3 with Osc. 2 Frequency,
1 = On
0 Gate Bit: 1 = Start Att/Dec/Sus, 0 = Start
Release
D413 54291 Envelope Generator 3: Attack/Decay Cycle Control
7-4 Select Attack Cycle Duration: 0-15
3-0 Select Decay Cycle Duration: 0-15
D414 54285 Envelope Generator 3: Sustain / Release Cycle Control
7-4 Select Sustain Cycle Duration: 0-15
3-0 Select Release Cycle Duration: 0-15
D415 54293 Filter Cutoff Frequency: Low-Nybble
(Bits 2-0)
D416 54294 Filter Cutoff Frequency: High-Byte
D417 54295 Filter Resonance Control / Voice Input
Control
7-4 Select Filter Resonance: 0-15
3 Filter External Input: 1 = Yes, 0 = No
2 Filter Voice 3 Output: 1 = Yes, 0 = No
Filter Voice 2 Output: 1 = Yes, 0 = No
0 Filter Voice 1 Output: 1 = Yes, 0 = No
D418 54296 Select Filter Mode and Volume
7 Cut-Off Voice 3 Output: 1 = Off, O = On
6 Select Filter High-Pass Mode: 1 = On
5 Select Filter Band-Pass Mode: 1 = On
4 Select Filter Low-Pass Mode: 1 = On
3-0 Select Output Volume: 0-15
D419 54297 Analog/Digital Converter: Game Paddle 1
(0-255)
D41A 54298 Analog/Digital Converter Game Paddle 2
(0-255)
D41B 54299 Oscillator 3 Random Number Generator
D41C 54230 Envelope Generator 3 Output
D500-D7FF 54528-55295 SID IMAGES
D800-DBFF 55296-56319 Color RAM (Nybbles)
DC00-DCFF 56320-56575 MOS 6526 Complex Interface Adapter (CIA) #1
DC00 56320 Data Port A (Keyboard, Joystick, Paddles,
Light-Pen)
7-0 Write Keyboard Column Values for Keyboard
Scan
7-6 Read Paddles on Port A / B (01 = Port A,
10 = Port B)
4 Joystick A Fire Button: 1 = Fire
3-2 Paddle Fire Buttons
3-0 Joystick A Direction (0-15)
DC01 56321 Data Port B (Keyboard, Joystick, Paddles):
Game Port 1