Added some system constants

This commit is contained in:
Bill Chatfield 2024-10-17 12:35:09 -04:00
parent b13e02601b
commit 52d4a452d1
4 changed files with 166 additions and 121 deletions

3
.idea/.gitignore generated vendored Normal file
View File

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

6
.idea/misc.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/classes" />
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -85,8 +85,12 @@ KBD EQU $C000 ;KEYBOARD DATA AND STROBE
CXROMOFF EQU $C006 ;SELECT SLOT ROMS
CXROMON EQU $C007 ;SELECT INTERNAL ROM
KBDSTRB EQU $C010 ;CLEAR KEYBOARD STROBE
MIXED EQU $C01B ;R7=1 MIXED, R7=0 FULL GR
PAGE2 EQU $C01C ;R7-1 PAGE ACTIVE (OR AUX)
ALTCHAR EQU $C01E ;CHARACTER SET STATUS
RD80VID EQU $C01F ;<=128->40COL, >128->80COL
PAGE2OFF EQU $C054 ;SEL PG1 (RW)
PAGE2ON EQU $C055 ;SEL PG2 (RW)
INVERT EQU $CEDD ;INVERT CHARACTER ON SCREEN
PICK EQU $CF01 ;PICK CHARACTER OFF SCREEN
*
@ -108,6 +112,10 @@ CLOSEPARMCNT EQU 1
*
CR_CHAR EQU $0D ;ASCII CARRIAGE RETURN
CR_HIBIT EQU $8D ;CARRIAGE RET WITH HIGH BIT SET
RIGHT_ARROW EQU $15
RIGHT_HIBIT EQU $95
LEFT_ARROW EQU $08
LEFT_HIBIT EQU $88
*
* CONSTANTS
*
@ -353,7 +361,7 @@ MAIN CLD ;CLEAR DECIMAL FLG, AVOID CRASH
GET_SCRN_WDTH LDA #%10000000 ;USE ALTCHARSET STATUS TO
BIT ALTCHAR ;SEE IF 80-COL CARD TURNED ON
BMI :CARD_ACTIVE ;BIT 7 ON = NEG & CARD ACTIVE
JMP :FORTY_COLUMNS ;INACTIVE CARD IS 40-COL
JMP :FORTY_COLUMNS ;INACTIVE = DEFLT 40-COL MODE
:CARD_ACTIVE LDA #%10000000 ;SEE IF CARD IS IN 40/80 MODE
BIT RD80VID ;BIT 7 OFF = 0 OR >0 & 40-COL
BMI :EIGHTY_COLUMNS ;BIT 7 ON = NEG & 80-COL MODE
@ -608,6 +616,15 @@ DOWN1LINE INC SCRNLINE ;KEEP TRACK OF LINE NUMBER
JSR CROUT ;LINE DOWN & SCROLL IF NEEDED
RTS
********************************
* *
* WRITE CHAR TO PAGE2 *
* CLIPS TO SCREEN WIDTH *
* *
********************************
WRITECHAR2
RTS
********************************
* *
* PRINT ASCII IN HEX *
@ -631,8 +648,7 @@ PRASCII PHA
* *
********************************
STATBAR
DO TRACE
STATBAR DO TRACE
PUTS ENSTATB
FIN
@ -645,12 +661,15 @@ STATBAR
JMP :ENDLOOP ;PROCESSED SPACE SO DONE
:CHKCR CMP #CR_HIBIT ;CHECK FOR CARRIAGE RETURN
BNE :CHKQUIT
SET23 SCRNLINE
COPY_B SCRNLINE;#23
JMP :ENDLOOP
:CHKQUIT CMP #"Q" ;USER WANTS TO QUIT
BEQ :QUITTING ;NO RECOGNIZED INPUT
CMP #"q"
BEQ :QUITTING
CMP RIGHT_HIBIT
BNE :ENDLOOP
JSR PAGE_RIGHT
JMP :LOOP
:QUITTING SET1 USRQUIT
:ENDLOOP JSR ERASEBAR
@ -674,7 +693,8 @@ ERASEBAR
FIN
PUSHY
SET0 OURCH ;RESET CURSOR TO BEG OF LINE
COPY_B OURCH;#0 ;CURSOR TO BEG OF LINE, 80-COL
COPY_B CH;#0 ;CURSOR TO BEG OF LINE, 40-COL
LDY #0 ;INIT COUNTER FOR SPACES
:LOOP CPY BAR ;FIRST BYTE IS LENGTH
BEQ :ENDLOOP ;IF Y=LEN THEN DONE
@ -682,7 +702,8 @@ ERASEBAR
JSR COUT ;WRITE TO SCREEN
INY ;MAKE PROGRESS
JMP :LOOP ;LOOP TO NEXT CHAR
:ENDLOOP SET0 OURCH ;RESET CURSOR TO BEG OF LINE
:ENDLOOP COPY_B OURCH;#0 ;RESET CURSOR TO BEG OF LINE
COPY_B CH;#0 ;CURSOR TO BEG OF LINE, 40-COL
POPY
DO TRACE
@ -691,6 +712,14 @@ ERASEBAR
RTS
********************************
* *
* PAGE 2 ON *
* *
********************************
PAGE_RIGHT STA PAGE2ON
RTS
********************************
* *
* ERROR HANDLER *
@ -887,6 +916,7 @@ BUFCHAR DS 1
USRCHAR DS 1
SCR_WDTH DS 1
SCR_WDTH_TXT STR "SCREEN WIDTH="
TEXTPAGE DS 1
PREFIXMSG STR "THE PREFIX IS "
WARNING STR 'WARNING'
@ -965,7 +995,7 @@ CLOSFNUM DS 1
* BUFFERS
*
* CONSUME ALL BYTES UP TO THE NEXT PAGE BOUNDRY
FILLER DS \,$00
*FILLER DS \,$00
* MUST START ON PAGE BOUNDRY
*OPENBUF DS 1024
*READBUF DS BUFSIZE