Page 3
From C64-Wiki
Jump to navigationJump to search
Page 3 covers the memory locations 768-1023 ($0300-03FF). This page area, like Page 2, stores information for use by the Operating System and BASIC; including pointers for BASIC and KERNAL routines. There is also buffer space in this page for the tape I/O, BASIC text input, the keyboard queue, and a small space for user-defined data.
Addresses[edit | edit source]
RAM[edit | edit source]
| Hex Address | Dec Address | Type | Contents |
|---|---|---|---|
| $0300 | 768 | Pointer | Low Byte address of the Print BASIC Error Message Routine |
| $0301 | 769 | Pointer | High byte address of the Print BASIC Error Message Routine |
| $0302 | 770 | Pointer | Low Byte address of the Main BASIC Program Loop |
| $0303 | 771 | Pointer | High byte address of the Main BASIC Program Loop |
| $0304 | 772 | Pointer | Low Byte address of the routine That Crunches the ASCII Text of Keywords into Tokens |
| $0305 | 773 | Pointer | High byte address of the routine That Crunches the ASCII Text of Keywords into Tokens |
| $0306 | 774 | Pointer | Low Byte address of the routine That Lists BASIC Program Token as ASCII Text |
| $0307 | 775 | Pointer | High byte address of the routine That Lists BASIC Program Token as ASCII Text |
| $0308 | 776 | Pointer | Low Byte address of the routine That Executes the Next BASIC Program Token |
| $0309 | 777 | Pointer | High byte address of the routine That Executes the Next BASIC Program Token |
| $030A | 778 | Pointer | Low Byte address of the routine That Evaluates a Single-Term Arithmetic Expression |
| $030B | 779 | Pointer | High byte address of the routine That Evaluates a Single-Term Arithmetic Expression |
| $030C | 780 | Value | Storage Area for .A Register (Accumulator) |
| $030D | 781 | Value | Storage Area for .X Index Register |
| $030E | 782 | Value | Storage Area for .Y Index Register |
| $030F | 783 | Value | Storage Area for .P (Status) Register |
| Bit 0 - Carry | |||
| Bit 1 - Zero | |||
| Bit 2 - Interrupt Disable | |||
| Bit 3 - Decimal | |||
| Bit 4 - Break | |||
| Bit 5 - Unused | |||
| Bit 6 - Overflow | |||
| Bit 7 - Negative | |||
| $0310 | 784 | Value | Machine code, 76 ($4C), for assembler command JMP |
| $0311 | 785 | Pointer | Low Byte address of USR routine |
| $0312 | 786 | Pointer | High byte address of USR Routine |
| $0313 | 787 | Unused | |
| $0314 | 788 | Pointer | Low Byte address of the interrupt service routine |
| $0315 | 789 | Pointer | High byte address of the interrupt service routine |
| $0316 | 790 | Pointer | Low Byte address of the BRK instruction interrupt |
| $0317 | 791 | Pointer | High byte address of the BRK instruction interrupt |
| $0318 | 792 | Pointer | Low Byte address of the routine that follows a non-maskable interrupt |
| $0319 | 793 | Pointer | High byte address of the routine that follows a non-maskable interrupt |
| $031A | 794 | Pointer | Low Byte address of the KERNAL OPEN routine |
| $031B | 795 | Pointer | High byte address of the KERNAL OPEN routine |
| $031C | 796 | Pointer | Low Byte address of the KERNAL CLOSE routine |
| $031D | 797 | Pointer | High byte address of the KERNAL CLOSE routine |
| $031E | 798 | Pointer | Low Byte address of the KERNAL CHKIN routine |
| $031F | 799 | Pointer | High byte address of the KERNAL CHKIN routine |
| $0320 | 800 | Pointer | Low Byte address of the KERNAL CKOUT routine |
| $0321 | 801 | Pointer | High byte address of the KERNAL CKOUT routine |
| $0322 | 802 | Pointer | Low Byte address of the KERNAL CLRCHN routine |
| $0323 | 803 | Pointer | High byte address of the KERNAL CLRCHN routine |
| $0324 | 804 | Pointer | Low Byte address of the KERNAL CHRIN routine |
| $0325 | 805 | Pointer | High byte address of the KERNAL CHRIN routine |
| $0326 | 806 | Pointer | Low Byte address of the KERNAL CHROUT routine |
| $0327 | 807 | Pointer | High byte address of the KERNAL CHROUT routine |
| $0328 | 808 | Pointer | Low Byte address of the KERNAL STOP routine |
| $0329 | 809 | Pointer | High byte address of the KERNAL STOP routine |
| $032A | 810 | Pointer | Low Byte address of the KERNAL GETIN routine |
| $032B | 811 | Pointer | High byte address of the KERNAL GETIN routine |
| $032C | 812 | Pointer | Low Byte address of the KERNAL CLALL routine |
| $032D | 813 | Pointer | High byte address of the KERNAL CLALL routine |
| $032E | 814 | Pointer | Low Byte address of the user-defined routine |
| $032F | 815 | Pointer | High byte address of the user-defined routine |
| $0330 | 816 | Pointer | Low Byte address of the LOAD routine |
| $0331 | 817 | Pointer | High byte address of the LOAD routine |
| $0332 | 818 | Pointer | Low Byte address of the SAVE routine |
| $0333 | 819 | Pointer | High byte address of the SAVE routine |
| $0334-$033B | 820-827 | Unused | |
| $033C-$03FB | 828-1019 | Datasette I/O buffer | |
| $03FC-$03FF | 1020-1023 | Unused | |