mirror of
https://github.com/RevCurtisP/C02.git
synced 2024-11-28 10:51:14 +00:00
Added BFRLO and BFRHI to header files
This commit is contained in:
parent
5a50fc4b89
commit
8aa2c972a7
@ -14,6 +14,8 @@ BLKLO EQU $26 ;Block Pointer LSB [Floating Point Work Area]
|
|||||||
BLKHI EQU $27 ;Block Pointer MSB [Floating Point Work Area]
|
BLKHI EQU $27 ;Block Pointer MSB [Floating Point Work Area]
|
||||||
STKLO EQU $28 ;Stack Pointer LSB [Floating Point Work Area]
|
STKLO EQU $28 ;Stack Pointer LSB [Floating Point Work Area]
|
||||||
STKHI EQU $29 ;Stack Pointer MSB [Floating Point Work Area]
|
STKHI EQU $29 ;Stack Pointer MSB [Floating Point Work Area]
|
||||||
|
BFRLO EQU $35 ;Buffer Pointer LSB [Temporary String Pointer]
|
||||||
|
BFRHI EQU $36 ;Buffer Pointer MSB [Temporary String Pointer]
|
||||||
RDSEED EQU $A2 ;Random Seed [Software Jiffy Clock (Low Byte)]
|
RDSEED EQU $A2 ;Random Seed [Software Jiffy Clock (Low Byte)]
|
||||||
TEMP0 EQU $FB ;Temporary Variable [Unused Byte]
|
TEMP0 EQU $FB ;Temporary Variable [Unused Byte]
|
||||||
TEMP1 EQU $FC ;Temporary Variable [Unused Byte]
|
TEMP1 EQU $FC ;Temporary Variable [Unused Byte]
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
/* Standard Library Pointers */
|
/* Standard Library Pointers */
|
||||||
char srclo,srchi; //Source String Pointer for Library Functions
|
char srclo,srchi; //Source String Pointer for Library Functions
|
||||||
char dstlo,dsthi; //Destination String Pointer for Library Functions
|
char dstlo,dsthi; //Destination String Pointer for Library Functions
|
||||||
|
char bfrlo,bfrhi; //Buffer Pointer for Library Functions
|
||||||
char blklo,blkhi; //Block Segment Pointer
|
char blklo,blkhi; //Block Segment Pointer
|
||||||
char stklo,stkhi; //Stack Pointer
|
char stklo,stkhi; //Stack Pointer
|
||||||
|
|
||||||
|
@ -8,10 +8,12 @@ RTNKEY EQU $0D ;Return/Enter Key ($0D=Carriage Return)
|
|||||||
NULKEY EQU $00 ;No Key was Pressed ($00=Null)
|
NULKEY EQU $00 ;No Key was Pressed ($00=Null)
|
||||||
|
|
||||||
;Zero Page Locations
|
;Zero Page Locations
|
||||||
SRCLO EQU $00 ;Source String Pointer (stdio.asm)
|
SRCLO EQU $00 ;Source String/Array Pointer
|
||||||
SRCHI EQU $01
|
SRCHI EQU $01
|
||||||
DSTLO EQU $02 ;Destination String Pointer (string.asm)
|
DSTLO EQU $02 ;Destination String/Array Pointer
|
||||||
DSTHI EQU $03
|
DSTHI EQU $03
|
||||||
|
BFRLO EQU $04 ;Work Buffer Pointer
|
||||||
|
BFRHI EQU $05
|
||||||
|
|
||||||
STKSAV EQU $0D ;Stack Pointer Storage
|
STKSAV EQU $0D ;Stack Pointer Storage
|
||||||
RDSEED EQU $0E ;Pseudo-RANDOM Seed
|
RDSEED EQU $0E ;Pseudo-RANDOM Seed
|
||||||
|
@ -6,23 +6,35 @@ ESCKEY EQU $1B ;Escape/Stop Key (Escape)
|
|||||||
RTNKEY EQU $0D ;Return/Enter Key ($0D=Carriage Return)
|
RTNKEY EQU $0D ;Return/Enter Key ($0D=Carriage Return)
|
||||||
|
|
||||||
;Zero Page Locations
|
;Zero Page Locations
|
||||||
SRCLO EQU $00 ;Source String Pointer (stdio.asm)
|
SRCLO EQU $10 ;Source String Pointer (stdio.asm)
|
||||||
SRCHI EQU $01
|
SRCHI EQU $11
|
||||||
DSTLO EQU $02 ;Destination String Pointer (string.asm)
|
DSTLO EQU $12 ;Destination String Pointer (string.asm)
|
||||||
DSTHI EQU $03
|
DSTHI EQU $13
|
||||||
|
BFRLO EQU $14 ;Work Buffer Pointer
|
||||||
|
BFRHI EQU $15
|
||||||
|
|
||||||
RDSEED EQU $04 ;Pseudo-RANDOM Seed
|
TEMP0 EQU $16 ;Temporary Storage
|
||||||
RANDOM EQU $05 ;Pseudo-RANDOM Number Storage
|
TEMP1 EQU $17
|
||||||
|
TEMP2 EQU $18
|
||||||
|
TEMP3 EQU $19
|
||||||
|
|
||||||
TEMP0 EQU $06 ;Temporary Storage
|
RDSEED EQU $1A ;Pseudo-RANDOM Seed
|
||||||
TEMP1 EQU $07
|
RANDOM EQU $1B ;Pseudo-RANDOM Number Storage
|
||||||
TEMP2 EQU $08
|
|
||||||
TEMP3 EQU $09
|
; EQU $1C ;Unused
|
||||||
|
; EQU $1D ;Unused
|
||||||
|
|
||||||
|
BLKLEN EQU $1F ;Block Length
|
||||||
|
BLKSLO EQU $20 ;Block Start Address
|
||||||
|
BLKSHI EQU $21
|
||||||
|
BLKELO EQU $22 ;Block End Address
|
||||||
|
BLKEHI EQU $23
|
||||||
|
|
||||||
|
STKSLO EQU $24 ;Stack Start LSB
|
||||||
|
STKSHI EQU $25 ;Stack Start MSB
|
||||||
|
STKELO EQU $26 ;Stack End LSB
|
||||||
|
STKEHI EQU $27 ;Stack End MSB
|
||||||
|
|
||||||
BLKSLO EQU $0A ;Block Start Address
|
|
||||||
BLKSHI EQU $0B
|
|
||||||
BLKELO EQU $0C ;Block End Address
|
|
||||||
BLKEHI EQU $0D
|
|
||||||
|
|
||||||
;Oric-1 Tape images have the file extension ".tap"
|
;Oric-1 Tape images have the file extension ".tap"
|
||||||
;and have the following header prepended to the code
|
;and have the following header prepended to the code
|
||||||
|
@ -8,14 +8,16 @@
|
|||||||
/* Zero Page Variables used as Pointers */
|
/* Zero Page Variables used as Pointers */
|
||||||
char srclo,srchi; //String pointer for String and I/O functions
|
char srclo,srchi; //String pointer for String and I/O functions
|
||||||
char dstlo,dsthi; //Secondary string pointer for String functions
|
char dstlo,dsthi; //Secondary string pointer for String functions
|
||||||
|
char bfrlo,bfrhi; //Buffer Pointer for Library Functions
|
||||||
|
|
||||||
char temp0,temp1,temp2,temp3; //Temporary variables
|
/* Temporary Variables */
|
||||||
|
char temp0,temp1,temp2,temp3;
|
||||||
|
|
||||||
/* Static Library Variables */
|
/* Static Library Variables */
|
||||||
char random; //Last Result of Pseudo-Random Number Generator
|
char random; //Last Result of Pseudo-Random Number Generator
|
||||||
char rdseed; //System Seed for Pseudo-Random Number Generator
|
char rdseed; //System Seed for Pseudo-Random Number Generator
|
||||||
|
|
||||||
//System Subroutines
|
/* System Subroutines */
|
||||||
char polkey(); //Poll Console for character
|
char polkey(); //Poll Console for character
|
||||||
char getchr(); //Wait for character from Console
|
char getchr(); //Wait for character from Console
|
||||||
char getkey(); //Read ASCII character from Console
|
char getkey(); //Read ASCII character from Console
|
||||||
@ -23,4 +25,3 @@ void newlin(); //Advance cursor to beginning of next line
|
|||||||
char putchr(); //Print ASCII character to Console
|
char putchr(); //Print ASCII character to Console
|
||||||
void prbyte(); //Print Accumulator as Hexadadecimal number
|
void prbyte(); //Print Accumulator as Hexadadecimal number
|
||||||
void prhex(); //Print Low Nybble of Accumulator as Hex Digit
|
void prhex(); //Print Low Nybble of Accumulator as Hex Digit
|
||||||
|
|
||||||
|
@ -1,295 +0,0 @@
|
|||||||
; c02 Program Initialization Code for Commodore Plus/4
|
|
||||||
|
|
||||||
;System Specific ASCII Key Mappings
|
|
||||||
DELKEY EQU $7F ;Delete/Backspace Key (Delete)
|
|
||||||
ESCKEY EQU $03 ;Escape/Stop Key (RUN/STOP)
|
|
||||||
RTNKEY EQU $0D ;Return/Enter Key (RETURN)
|
|
||||||
|
|
||||||
;Zero Page Locations
|
|
||||||
pdir EQU $00 ;7501 on-chip data-direction register
|
|
||||||
port EQU $01 ;7501 on-chip 8-bit Input/Output register
|
|
||||||
srchtk EQU $02 ;Token 'search' looks for (run-time stack)
|
|
||||||
zpvec1 EQU $03 ;Temp (renumber)
|
|
||||||
zpvec2 EQU $05 ;Temp (renumber)
|
|
||||||
charac EQU $07 ;Search Character for Scanning BASIC Text Input
|
|
||||||
endchr EQU $08 ;Search Character for Statement Terminator or Quote
|
|
||||||
trmpos EQU $09 ;Column Position of Cursor before Last SPC or TAB
|
|
||||||
verckb EQU $0A ;Flag: Load or Verify (BASIC)
|
|
||||||
count EQU $0B ;Index into Text Input Buffer/Number of Array Subscripts
|
|
||||||
dimflg EQU $0C ;Flags for Routines that Locate or Build an Array
|
|
||||||
valtyp EQU $0D ;Type of Data (String or Numeric)
|
|
||||||
intflg EQU $0E ;Type of Numeric Data (Integer or Floating Point)
|
|
||||||
garbfl EQU $0F ;Flag for LIST, Garbage Collection, and Program Terminators
|
|
||||||
subflg EQU $10 ;Subscript Reference to Array or User Defined Function Call
|
|
||||||
inpflg EQU $11 ;Is Data Input to GET, READ, or INPUT?
|
|
||||||
tansgn EQU $12 ;Sign of Result of TAN or SIN Function
|
|
||||||
channl EQU $13 ;Current I/O Channel (CMD Logical File) Number
|
|
||||||
linnum EQU $14 ;Integer Line Number Value
|
|
||||||
temppt EQU $16 ;Pointer to Next Availabale Space in Temporary String Stack
|
|
||||||
lastpt EQU $17 ;Pointer to Address of Last String in Temporary String Stack
|
|
||||||
tempst EQU $19 ;Descriptor Stack for Temporary Strings
|
|
||||||
index1 EQU $22 ;Miscellaneous Temporary Pointers and Save Area
|
|
||||||
index2 EQ4 $24
|
|
||||||
resho EQU $26 ;Floating Point Multiplication Work Area
|
|
||||||
txttab EQU $2B ;Pointer to Start of BASIC Program Text
|
|
||||||
vartab EQU $2D ;Pointer to Start of BASIC Variable Storage Area
|
|
||||||
arytab EQU $2F ;Pointer to Start of BASIC Array Storage Area
|
|
||||||
strend EQU $31 ;Pointer to Start of Free RAM
|
|
||||||
fretop EQU $33 ;Pointer to Bottom of String Text Storage Area
|
|
||||||
frespc EQU $35 ;Temporary Pointer for Strings
|
|
||||||
memsiz EQU $37 ;Pointer to Highest Address Used by BASIC
|
|
||||||
curlin EQU $39 ;Current BASIC Line Number
|
|
||||||
oldlin EQU $3B ;Previous BASIC Line Number
|
|
||||||
oldtxt EQU $3D ;Pointer to Address of Current BASIC Statement
|
|
||||||
datlin EQU $3F ;Current DATA Line Number
|
|
||||||
datptr EQU $41 ;Pointer to Address of Current DATA Item
|
|
||||||
inpptr EQU $43 ;Pointer to Source of GET, READ, or INPUT Information
|
|
||||||
varnam EQU $45 ;Current Variable Name
|
|
||||||
varpnt EQU $47 ;Pointer to Current BASIC Variable Value
|
|
||||||
forpnt EQU $49 ;Temporary Pointer to Index Variable Used by FOR
|
|
||||||
opptr EQU $4B ;Math Operator Table Displacement
|
|
||||||
opmask EQU $4D ;Mask for Comparison Operator
|
|
||||||
defpnt EQU $4E ;Pointer to Current FN Descriptor
|
|
||||||
dscpnt EQU $50 ;Temporary Pointer to Current String Descriptor
|
|
||||||
; $52 ;current string length
|
|
||||||
four6 EQU $53 ;Constant for Garbage Collection
|
|
||||||
jmper EQU $54 ;Jump to Function Instruction
|
|
||||||
; $57 ;BASIC Numeric Work Area
|
|
||||||
fac1 EQU $61 ;Floating Point Accumulator #1
|
|
||||||
facexp EQU $61 ;Floating Point Accumulator #1: Exponent
|
|
||||||
facho EQU $62 ;Floating Point Accumulator #1: Mantissa
|
|
||||||
facsgn EQU $66 ;Floating Point Accumulator #1: Sign
|
|
||||||
sgnflg EQU $67 ;Number of Terms in Series Evaluation
|
|
||||||
bits EQU $68 ;Floating Point Accumulator #1: Overflow Digit
|
|
||||||
fac2 EQU $69 ;Floating Point Accumulator #2
|
|
||||||
argexp EQU $69 ;Floating Point Accumulator #2: Exponent
|
|
||||||
argho EQU $6E ;Floating Point Accumulator #2: Mantissa
|
|
||||||
argsgn EQU $6F ;Floating Point Accumulator #2: Sign
|
|
||||||
facov EQU $70 ;Low Order Mantissa Byte of Floating Point Accumulator #1
|
|
||||||
fbufpt EQU $71 ;Series Evaluation Pointer
|
|
||||||
chrget EQU $73 ;Subroutine: Get Next BASIC Text Character
|
|
||||||
chrgot EQU $79 ;Entry Point: Get Current BASIC Text Character
|
|
||||||
txtptr EQU $7A ;Pointer to Current BASIC Text Character
|
|
||||||
pointb EQU $7C ;Entry Point: Test Character in Accumulator
|
|
||||||
exit EQU $8A ;RTS at end of CHRGET, CHRGOT, and POINTB Routines
|
|
||||||
rndx EQU $8B ;RND Function Seed Value
|
|
||||||
status EQU $90 ;Kernal I/O Status Word
|
|
||||||
stkey EQU $91 ;Flag: Was STOP Key Pressed
|
|
||||||
svxt EQU $92 ;Timing Constant for Tape Reads
|
|
||||||
verck EQU $93 ;Flag: Load or Verify (Kernal)
|
|
||||||
c3po EQU $94 ;Flag: Serial Bus - Output Character was Buffered
|
|
||||||
bsour EQU $95 ;Buffered Character for Serial Bus
|
|
||||||
syno EQU $96 ;Cassette Block Synchronization Number
|
|
||||||
xsav EQU $97 ;Temporary .X Register Save Area
|
|
||||||
ldtnd EQU $98 ;Number of Open I/O Files, Index to End of File Tables
|
|
||||||
dfltn EQU $99 ;Default Input Device (Set to 0 for Keyboard)
|
|
||||||
dflto EQU $9A ;Default Output (CMD) Device (Set to 3 for Screen)
|
|
||||||
prty EQU $9B ;Tape Character Parity
|
|
||||||
dpsw EQU $9C ;Flag: Tape Byte Received
|
|
||||||
msflg EQU $9D ;Flag: Kernal Message Control
|
|
||||||
ptr1 EQU $9E ;Tape Pass 1 Error Log Index
|
|
||||||
ptr2 EQU $9F ;Tape Pass 2 Error Log Correction Index
|
|
||||||
time EQU $A0 ;Software Jiffy Clock
|
|
||||||
; EQU $A3 ;Temporary Data Storage Area
|
|
||||||
cntdn EQU $A5 ;Cassette Synchronization Character Countdown
|
|
||||||
bufpnt EQU $A6 ;Count of Characters in Tape I/O Buffer
|
|
||||||
inbit EQU $A7 ;RS-232 Input Bits/Tape I/O Miscellaneous Flag
|
|
||||||
bitci EQU $A8 ;RS-232 Input Bit Count/Tape Error Flag
|
|
||||||
rinone EQU $A9 ;RS-232 Flag: Check for Start Bit/Tape Character Type Flag
|
|
||||||
ridata EQU $AA ;RS-232 Input Byte Buffer
|
|
||||||
riprty EQU $AB ;RS-232 Input Parity/Cassette Leader Counter
|
|
||||||
sal EQU $AC ;Pointer to Starting Address of Load/Screen Scrolling
|
|
||||||
eal EQU $AE ;Pointer to Ending Address of Load (End of Program)
|
|
||||||
cmp0 EQU $B0 ;Used to Determine Value of SVXT
|
|
||||||
; EQU $B1 ;Used in Timing of Tape Reads
|
|
||||||
tape1 EQU $B2 ;Pointer: Start of Tape Buffer
|
|
||||||
bitts EQU $B4 ;RS-232 Output Bit Count/Tape Load Receive Flag
|
|
||||||
nxtbit EQU $B5 ;RS-232 Next Bit to Send/Tape EOT Flag
|
|
||||||
rodata EQU $B6 ;RS-232 Output Byte Buffer
|
|
||||||
fnlen EQU $B7 ;Length of Current Filename
|
|
||||||
la EQU $B8 ;Current Logical File Number
|
|
||||||
sa EQU $B9 ;Current Secondary Address
|
|
||||||
fa EQU $BA ;Current Device Number
|
|
||||||
fnadr EQU $BB ;Pointer: Current Filename
|
|
||||||
roprt EQU $BD ;RS-232 Output Parity/Tape Character Being Read or Sent
|
|
||||||
fsblk EQU $BE ;Cassette Read/Write Block Count
|
|
||||||
mych EQU $BF ;Tape Input Byte Buffer
|
|
||||||
cas1 EQU $C0 ;Tape Motor Interlock
|
|
||||||
stal EQU $C1 ;I/O Start Address
|
|
||||||
memuss EQU $C3 ;Tape Load Temporary Address
|
|
||||||
lste EQU $C5 ;Matrix Coordinate of Last Key Pressed
|
|
||||||
ndx EQU $C6 ;Number of Characters in Keyboard Buffer
|
|
||||||
rvs EQU $C7 ;Flag: Print Reverse Characters
|
|
||||||
indx EQU $C8 ;Pointer: End of Logical Line for Input
|
|
||||||
lxsp EQU $C9 ;Cursor X.Y Position at Start of Input
|
|
||||||
sfdx EQU $CB ;Matrix Coordinate of Current Key Pressed
|
|
||||||
blnsw EQU $CC ;Cursor Blink Enable
|
|
||||||
blnct EQU $CD ;Timer Countdown to Blink Cursor
|
|
||||||
gdbln EQU $CE ;Character Under Cursor
|
|
||||||
blnon EQU $CF ;Flag: Was Last Cursor Blink On or Off
|
|
||||||
crsw EQU $D0 ;Flag: Input from Keyboard or Screen
|
|
||||||
pnt EQU $D1 ;Pointer to Address of Current Screen Line
|
|
||||||
pntr EQU $D3 ;Cursor Column on Current Line
|
|
||||||
qtsw EQU $D4 ;Flag: Editor in Quote Mode?
|
|
||||||
lnmx EQU $D5 ;Maximum Length of Physical Screen Line
|
|
||||||
tblx EQU $D6 ;Current Cursor Physical Line Number
|
|
||||||
; EQU $D7 ;Temporary Storage for ASCII Value of Last Character Printed
|
|
||||||
insrt EQU $D8 ;Insert Mode (Number of Inserts)
|
|
||||||
ldtb1 EQU $D9 ;Screen Line Link Table
|
|
||||||
user EQU $F3 ;Pointer to Address of Current Screen Color RAM Location
|
|
||||||
keytab EQU $F5 ;Vector: Keyboard Decode Table
|
|
||||||
ribuf EQU $F7 ;Pointer: RS-232 Input Buffer
|
|
||||||
robuf EQU $F8 ;Pointer: RS-232 Output Buffer
|
|
||||||
frekzp EQU $FB ;Four Free Bytes of Zero Page for User Programs
|
|
||||||
baszpt EQU $FF ;BASIC Temporary Data for Floating Point to ASCII Conversion
|
|
||||||
|
|
||||||
;Page 1 Locations
|
|
||||||
bad EQU $0100 ;Tape Input Error Log
|
|
||||||
; EQU $013F ;Microprocessor Stack
|
|
||||||
|
|
||||||
;Basic and Kernal Working Storage
|
|
||||||
buf EQU $0200 ;BASIC Line Editor Input Buffer
|
|
||||||
lat EQU $0259 ;Kernal Table of Active Logical File Numbers
|
|
||||||
fat EQU $0263 ;Kernal Table of Device Numbers for Each Logical File
|
|
||||||
sat EQU $026D ;Kernal Table of Secondary Addressed for Each Logical File
|
|
||||||
keyd EQU $0277 ;Keyboard Buffer (Queue)
|
|
||||||
memstr EQU $0281 ;Pointer: Operating System Start of Memory
|
|
||||||
memsiz EQU $0283 ;Pointer: Operating System End of Memory
|
|
||||||
timout EQU $0285 ;Flag: Kernal Variable for IEEE Timeout
|
|
||||||
color EQU $0286 ;Current Foreground Color Text
|
|
||||||
gdcol EQU $0287 ;Color of Character Under Cursor
|
|
||||||
hibase EQU $0288 ;Top Page of Screen Memory
|
|
||||||
xmax EQU $0289 ;Maximum Keyboard Buffer Size
|
|
||||||
rptflg EQU $028A ;Flag: Which Key Will Repeat?
|
|
||||||
kount EQU $028B ;Counter for Timing Delay Between Key Repeats
|
|
||||||
delay EQU $028C ;Counter for Timing Delay Until First Key Repeat Begins
|
|
||||||
shflag EQU $028D ;Flag: SHIFT/CTRL/Logo Keypress
|
|
||||||
lstshf EQU $028E ;Last Pattern SHIFT/CTRL/Logo Keypress
|
|
||||||
keylog EQU $028F ;Vector to Keyboard Table Setup Routine
|
|
||||||
mode EQU $0291 ;Flag: Change Character Sets with SHIFT/Logo Keypress
|
|
||||||
autodn EQU $0292 ;Flag: Screen Scroll Enabled
|
|
||||||
m51ctr EQU $0293 ;RS-232: Mock 6551 Control Register
|
|
||||||
m51cdr EQU $0294 ;RS-232: Mock 6551 Command Register
|
|
||||||
m51adj EQU $0295 ;RS-232: Non-Standard Bit Timing (Not Implemented)
|
|
||||||
rsstat EQU $0297 ;RS-232: Mock 6551 Status Register
|
|
||||||
bitnum EQU $0298 ;RS-232: Number of Bits Left to be Sent/Received
|
|
||||||
baudof EQU $0299 ;RS-232: Time Required to Send a Bit
|
|
||||||
ridbe EQU $029B ;RS-232: Index to End of Receive Buffer
|
|
||||||
ridbs EQU $029C ;RS-232: Index to Start of Receive Buffer
|
|
||||||
rodbs EQU $029D ;RS-232: Index to Start of Transmit Buffer
|
|
||||||
rodbe EQU $029E ;RS-232: Index to End of Transmit Buffer
|
|
||||||
irqtmp EQU $029F ;Save Area for IRQ Vector During Cassette I/O
|
|
||||||
enabl EQU $02A1 ;RS-232 Interrupts Enabled
|
|
||||||
; EQU $02A2 ;CIA #1 Control Register B Activity During Cassette I/O
|
|
||||||
; EQU $02A3 ;Save Area for CIA #1 Interrupt Control Register
|
|
||||||
; EQU $02A4 ;Save Area for CIA #1 Control Register A
|
|
||||||
; EQU $02A5 ;Temporary Index to Next Line for Screen Scrolling
|
|
||||||
; EQU $02A6 ;PAL/NTSC Flag
|
|
||||||
; EQU $02A7 ;Unused
|
|
||||||
; EQU $02C0 ;Sprite 11
|
|
||||||
|
|
||||||
;BASIC Indirect Vector Table
|
|
||||||
ierror EQU $0300 ;Vector to Print BASIC Error Message Routine
|
|
||||||
imain EQU $0302 ;Vector to Main BASIC Program Loop
|
|
||||||
icrnch EQU $0304 ;Vector to Crunch ASCII Keyword into Tokens
|
|
||||||
iqplop EQU $0306 ;Vector to List BASIC Token as ASCII Text
|
|
||||||
igone EQU $0308 ;Vector to Execute Next BASIC Token
|
|
||||||
ieval EQU $030A ;Vector to Evaluate Single-Term Arithmetic Expression
|
|
||||||
|
|
||||||
;Register Storage Area
|
|
||||||
sareg EQU $030C ;Storage Area for .A Register (Accumulator)
|
|
||||||
sxreg EQU $030D ;Storage Area for .X Index Register
|
|
||||||
syreg EQU $030E ;Storage Area for .Y Index Register
|
|
||||||
spreg EQU $030F ;Storage Area for .P (Status) Register
|
|
||||||
|
|
||||||
;Miscellaneous Vectors
|
|
||||||
usrpok EQU $0310 ;JMP Instruction for User Function
|
|
||||||
usradd EQU $0311 ;Address of USR Routine
|
|
||||||
; EQU $0313 ;Unused
|
|
||||||
cinv EQU $0314 ;Vector to IRQ Interrupt Routine
|
|
||||||
cbinv EQU $0316 ;Vector: BRK Instruction Interrupt
|
|
||||||
nminv EQU $0318 ;Vector: Non-Maskabke Interrupt
|
|
||||||
|
|
||||||
;Kernal Indirect Vectors
|
|
||||||
iopen EQU $031A ;Vector to Kernal OPEN Routine
|
|
||||||
iclose EQU $031C ;Vector to Kernal CLOSE Routine
|
|
||||||
ichkin EQU $031E ;Vector to Kernal CHKIN Routine
|
|
||||||
ickout EQU $0320 ;Vector to Kernal CKOUT Routine
|
|
||||||
iclrch EQU $0322 ;Vector to Kernal CLRCHN Routine
|
|
||||||
ibasin EQU $0324 ;Vector to Kernal CHRIN Routine
|
|
||||||
ibsout EQU $0326 ;Vector to Kernal CHROUT Routine
|
|
||||||
istop EQU $0328 ;Vector to Kernal STOP Routine
|
|
||||||
igetin EQU $032A ;Vector to Kernal GETIN Routine
|
|
||||||
iclall EQU $032C ;Vector to Kernal CLALL Routine
|
|
||||||
usrcmd EQU $032E ;Vector to User Defined Command (Unused)
|
|
||||||
iload EQU $0330 ;Vector to Kernal LOAD Routine
|
|
||||||
isave EQU $0332 ;Vector to Kernal SAVE Routine
|
|
||||||
|
|
||||||
; $0334 ;Unused
|
|
||||||
tbuffer EQU $033C ;Cassette I/O Buffer
|
|
||||||
; $03FC ;Unused
|
|
||||||
|
|
||||||
vicscn EQU $0400 ;Video Screen Memory Area
|
|
||||||
; $07F8 ;Sprite Shape Data Pointers
|
|
||||||
; $0800 ;BASIC Program Text
|
|
||||||
; $8000 ;Autostart ROM Cartridge
|
|
||||||
|
|
||||||
vicclr EQU $D800 ;Color RAM
|
|
||||||
|
|
||||||
;Kernal Routines
|
|
||||||
chrin EQU $FFCF ;Input Character to Channel
|
|
||||||
chrout EQU $FFD2 ;Output Character to Channel
|
|
||||||
getin EQU $FFE4 ;Read Character from Keyboard Buffer
|
|
||||||
|
|
||||||
;Machine Language Basic Stub
|
|
||||||
ORG $1001 ;Start Directly Above Stack
|
|
||||||
basic: DC $0C, $10 ; Pointer to Next Line (4109)
|
|
||||||
DC $00, $00 ; Line Number (0)
|
|
||||||
DC $9E ; SYS
|
|
||||||
DC $20 ; ' '
|
|
||||||
DC $34, $31, $31 ,$30 ; "4110"
|
|
||||||
DC $00 ;End of Line Marker
|
|
||||||
DC $00, $00 ;End of Basic Program
|
|
||||||
|
|
||||||
JMP main ;Execute Program
|
|
||||||
|
|
||||||
;Poll Keyboard for Character
|
|
||||||
plkey EQU getin ;Read Character from Keyboard Buffer
|
|
||||||
|
|
||||||
;Read Character from Console
|
|
||||||
|
|
||||||
|
|
||||||
;Wait for Character from Console
|
|
||||||
getkey: JSR plkey ;Poll Keyboard
|
|
||||||
BEQ getkey ;If No Key, Loop
|
|
||||||
RTS
|
|
||||||
|
|
||||||
;Delete Previous Character
|
|
||||||
delchr: RTS
|
|
||||||
|
|
||||||
;Advance Character to Next line
|
|
||||||
newlin: LDA #$0D ;Load C/R into Accumulator
|
|
||||||
|
|
||||||
;Print Character to Console
|
|
||||||
prchr EQU chrout ;
|
|
||||||
|
|
||||||
;Print Byte as Two-Digit Hex Number to Console
|
|
||||||
prbyte: PHA ;Save Accumulater
|
|
||||||
LSR ;Shift Hi Nybble to Low Nybble
|
|
||||||
LSR
|
|
||||||
LSR
|
|
||||||
LSR
|
|
||||||
JSR prhex ; and Print it
|
|
||||||
PLA ;Restore Accumulator
|
|
||||||
; and fall into prhex
|
|
||||||
|
|
||||||
;Print Low Nybble as Hex Digit to Console
|
|
||||||
prhex: AND #$0F ;Strip High Nybble
|
|
||||||
CMP #$0A ;If Low Nybble >= 10
|
|
||||||
BCC prhexc ;
|
|
||||||
ADC #$06 ; Convert ':' to 'A'...
|
|
||||||
prhexc: ADC #$30 ;Convert to ASCII Character
|
|
||||||
JMP prchr ;Print Hex Digit and Return
|
|
||||||
|
|
||||||
exit: RTS ;Return to Monitor
|
|
||||||
|
|
@ -10,10 +10,12 @@ SRCLO EQU $30 ;Source String Pointer (stdio.a02)
|
|||||||
SRCHI EQU $31
|
SRCHI EQU $31
|
||||||
DSTLO EQU $32 ;Destination String Pointer (string.a02)
|
DSTLO EQU $32 ;Destination String Pointer (string.a02)
|
||||||
DSTHI EQU $33
|
DSTHI EQU $33
|
||||||
BLKLO EQU $34 ;Block Segment Pointer (block.a02)
|
BFRLO EQU $34 ;Work Buffer Pointer
|
||||||
BLKHI EQU $35
|
BFRHI EQU $35
|
||||||
STKLO EQU $36 ;Stack Pointer (stack.a02)
|
BLKLO EQU $36 ;Block Segment Pointer (block.a02)
|
||||||
STKHI EQU $37
|
BLKHI EQU $37
|
||||||
|
STKLO EQU $38 ;Stack Pointer (stack.a02)
|
||||||
|
STKHI EQU $39
|
||||||
|
|
||||||
RDSEED EQU $3E ;Pseudo-RANDOM Seed
|
RDSEED EQU $3E ;Pseudo-RANDOM Seed
|
||||||
RANDOM EQU $3F ;Pseudo-RANDOM Number Storage
|
RANDOM EQU $3F ;Pseudo-RANDOM Number Storage
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
//Library Pointer Variables
|
//Library Pointer Variables
|
||||||
char srclo,srchi; //Source String Pointer for Library Functions
|
char srclo,srchi; //Source String Pointer for Library Functions
|
||||||
char dstlo,dsthi; //Destination String Pointer for Library Functions
|
char dstlo,dsthi; //Destination String Pointer for Library Functions
|
||||||
|
char bfrlo,bfrhi; //Buffer Pointer for Library Functions
|
||||||
char blklo,blkhi; //Block Segment Pointer
|
char blklo,blkhi; //Block Segment Pointer
|
||||||
char stklo,stkhi; //Stack Pointer
|
char stklo,stkhi; //Stack Pointer
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ C02 Header File for py65mon
|
|||||||
|
|
||||||
At the beginning of the program use the directive
|
At the beginning of the program use the directive
|
||||||
|
|
||||||
#include <py65,h02>
|
#include <py65.h02>
|
||||||
|
|
||||||
This must be the first include directive.
|
This must be the first include directive.
|
||||||
|
|
||||||
|
@ -14,7 +14,9 @@ BLKLO EQU $26 ;Block Pointer LSB [Floating Point Work Area]
|
|||||||
BLKHI EQU $27 ;Block Pointer MSB [Floating Point Work Area]
|
BLKHI EQU $27 ;Block Pointer MSB [Floating Point Work Area]
|
||||||
STKLO EQU $28 ;Stack Pointer LSB [Floating Point Work Area]
|
STKLO EQU $28 ;Stack Pointer LSB [Floating Point Work Area]
|
||||||
STKHI EQU $29 ;Stack Pointer MSB [Floating Point Work Area]
|
STKHI EQU $29 ;Stack Pointer MSB [Floating Point Work Area]
|
||||||
RDSEED EQU $A2 ;Random Seed [Software Jiffy Clock (Low Byte)]
|
BFRLO EQU $35 ;Buffer Pointer LSB [Temporary String Pointer]
|
||||||
|
BFRHI EQU $36 ;Buffer Pointer MSB [Temporary String Pointer]
|
||||||
|
RDSEED EQU $A2 ;Random Seed [Software Jiffy Clock (Low Byte)
|
||||||
TEMP0 EQU $FB ;Temporary Variable [Unused Byte]
|
TEMP0 EQU $FB ;Temporary Variable [Unused Byte]
|
||||||
TEMP1 EQU $FC ;Temporary Variable [Unused Byte]
|
TEMP1 EQU $FC ;Temporary Variable [Unused Byte]
|
||||||
TEMP2 EQU $FD ;Temporary Variable [Unused Byte]
|
TEMP2 EQU $FD ;Temporary Variable [Unused Byte]
|
||||||
@ -84,7 +86,7 @@ GETCHR: JSR GETKEY ;Poll Keyboard
|
|||||||
|
|
||||||
;Print Character to Console
|
;Print Character to Console
|
||||||
;uses direct call to SCRNOUT instead of CHROUT
|
;uses direct call to SCRNOUT instead of CHROUT
|
||||||
PUTCHR EQU $E742 ;Aliased to SRCNOUT Routine
|
PUTCHR EQU $E742 ;Aliased to SRCOUT Routine
|
||||||
|
|
||||||
;Delete Previous Character
|
;Delete Previous Character
|
||||||
DELCHR: LDA #DELKEY ;Load Delete Character
|
DELCHR: LDA #DELKEY ;Load Delete Character
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
/* Standard Library Pointers */
|
/* Standard Library Pointers */
|
||||||
char srclo,srchi; //Source String Pointer for Library Functions
|
char srclo,srchi; //Source String Pointer for Library Functions
|
||||||
char dstlo,dsthi; //Destination String Pointer for Library Functions
|
char dstlo,dsthi; //Destination String Pointer for Library Functions
|
||||||
|
char bfrlo,bfrhi; //Buffer Pointer for Library Functions
|
||||||
char blklo,blkhi; //Block Segment Pointer
|
char blklo,blkhi; //Block Segment Pointer
|
||||||
char stklo,stkhi; //Stack Pointer
|
char stklo,stkhi; //Stack Pointer
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user