Renamed Apple 2 standard header files

This commit is contained in:
Curtis F Kaylor 2018-02-17 13:52:13 -05:00
parent 45cead9330
commit dfedddab72
5 changed files with 110 additions and 91 deletions

View File

@ -1,6 +1,6 @@
/* C02 Apple II Test Program */
#include <apple2.h02>
#include <appl2std.h02>
char i;
@ -10,3 +10,4 @@ main:
prchr(i);
}
goto exit;

View File

@ -1,5 +1,16 @@
@ECHO Compiling File %1.c02
..\c02.exe %1
@echo Compiling File %1.c02
..\c02.exe %1 >%1.out
@if ERRORLEVEL 1 exit /b
@ECHO Assembling File %1.asm
C:\Programs\dasm %1.asm -f3 -o%1.bin -l%1.lst -s%1.sym
@echo Assembling File %1.asm
dasm %1.asm -f3 -o%1.bin -l%1.lst -s%1.sym
@if ERRORLEVEL 1 exit /b
@echo Building Disk Image
copy /Y boot.dsk %1.dsk
echo BRUN %1 |a2tools in t %1.dsk command
a2tools in b.0C00 %1.dsk %1 %1.bin
@if ERRORLEVEL 1 exit /b
@echo Starting Emulator
start C:\Programs\AppleWin\applewin -d1 %1.dsk

View File

@ -1,83 +1,89 @@
System Specific Header File Specification
The very first directive of the program must be
#include <header.h02>
where header.h02 is the system specific header file, (e.g. apple1.h02,
vic20.h02, etc.).
Note: This will probably be replaced with a command line parameter
(e.g. '-s apple1', '-s vic20', etc...) to allow program portability.
If compatibility with the C02 Standard Libraries is needed, the following
functions must be defined:
c = plkey(); Polls keyboard and returns raw ASCII character
corresponding to last/current pressed key.
Returns constant NULKEY (usually 0) if no key was
pressed.
c = rdkey(); Waits for a keypress and returns the raw ASCII
character corresponding to the pressed key.
Note: Usually a loop that calls plkey(), but may
also directly call a system subroutine.
c = getkey(); Waits for a keypress and returns the cleaned
ASCII value corresponding to the pressed key.
Note: Calls rdkey() followed by any necessary
character code conversions. This can be due to
high-bit being set by keyboard decoder,
non-standard key mappings, keys that generate
escape sequences, etc...
newlin(); Advances the cursor to the beginning of then
next line.
Note: Depending on the system, this will usually
output a Carriage Return, Line Feed, both.
prchr(c); Writes character c to the screen.
Note: May directly access memory-mapped I/O
or may call a system subroutine.
setdst(&s): Stores pointer to &s in dstlo and dsthi.
setsrc(&s): Stores pointer to &s in srclo and srchi and
initializes Y register to 0.
along with the Zero Page locations (each pair of which must be sequential)
srclo, srchi Spurce String Pointer
dstlo, dsthi Destination String Pointer
the following locations that may be Zero Page, but don't have to before
temp0 Temporary variables used by stdlib.asm
temp1
temp2
and the following locations that must be preserved between function calls
random Storage for the Random Number Generator
Contains the last number generated and is used to
generate the next number in the sequence
rdseed Seed for Pseudo-Random Number Generator
Usually a counter or timer. If one is not provided
by the system, should be generated by incrementing
in the plkey(), rdkey() functions.
and the constants
DELKEY ASCII code for Delete/Backspace key (usually DEL or BS)
ESCKEY ASCII code for Escape/Abort key (usually ESC)
NULKEY Returned if no Key was Pressed
RTNKEY ASCII code for Return/Enter key (usually CR)
System Specific Header File Specification
The very first directive of the program must be
#include <header.h02>
where header.h02 is the system specific header file, (e.g. apple1.h02,
vic20.h02, etc.).
Note: This will probably be replaced with a command line parameter
(e.g. '-s apple1', '-s vic20', etc...) to allow program portability.
If compatibility with the C02 Standard Libraries is needed, the following
functions must be defined:
c = plkey(); Polls keyboard and returns raw ASCII character
corresponding to last/current pressed key.
Returns constant NULKEY (usually 0) if no key was
pressed.
c = rdkey(); Waits for a keypress and returns the raw ASCII
character corresponding to the pressed key.
Note: Usually a loop that calls plkey(), but may
also directly call a system subroutine.
c = getkey(); Waits for a keypress and returns the cleaned
ASCII value corresponding to the pressed key.
Note: Calls rdkey() followed by any necessary
character code conversions. This can be due to
high-bit being set by keyboard decoder,
non-standard key mappings, keys that generate
escape sequences, etc...
newlin(); Advances the cursor to the beginning of then
next line.
Note: Depending on the system, this will usually
output a Carriage Return, Line Feed, both.
echo(c); Writes character c to the screen without any
translation.
Note: May directly access memory-mapped I/O
or may call a system subroutine.
prchr(c); Writes character c to the screen.
Note: Does any needed ACSII conversions, then calls
echo().
setdst(&s): Stores pointer to &s in dstlo and dsthi.
setsrc(&s): Stores pointer to &s in srclo and srchi and
initializes Y register to 0.
along with the Zero Page locations (each pair of which must be sequential)
srclo, srchi Spurce String Pointer
dstlo, dsthi Destination String Pointer
the following locations that may be Zero Page, but don't have to before
temp0 Temporary variables used by stdlib.asm
temp1
temp2
and the following locations that must be preserved between function calls
random Storage for the Random Number Generator
Contains the last number generated and is used to
generate the next number in the sequence
rdseed Seed for Pseudo-Random Number Generator
Usually a counter or timer. If one is not provided
by the system, should be generated by incrementing
in the plkey(), rdkey() functions.
and the constants
DELKEY ASCII code for Delete/Backspace key (usually DEL or BS)
ESCKEY ASCII code for Escape/Abort key (usually ESC)
NULKEY Returned if no Key was Pressed
RTNKEY ASCII code for Return/Enter key (usually CR)

View File

@ -71,6 +71,7 @@ PLKEYR: RTS
;Read Keyboard
GETKEY EQU KEYIN ;Alias to Monitor Routine
;Print Character to Screen
PRCHR: ORA #$80 ;Set High Bit
CMP #$E0 ;

View File

@ -1,4 +1,4 @@
/* Apple 1 Header File */
/* Apple ][ Header File */
/* Monitor Variables */
@ -18,8 +18,8 @@ char temp0, temp1, temp2, temp3; //Temporary Variables
char invflg; //Video Invert Mask
//Keyboard I/O
char kbd; //Keyboard Data
char abd; //Keyboard Strobe
char kbd; //Keyboard Data Register
char abd; //Keyboard Strobe Register
//Monitor Subroutines
void echo(); //Print Character in Accumulator