Page 3
From C64-Wiki
Jump to navigationJump to searchPage 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
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 |