mirror of
https://github.com/gungwald/prodos-more.git
synced 2024-06-11 11:29:28 +00:00
Attempt to fix line clipping
This commit is contained in:
parent
fc9eeda779
commit
8ace07d469
124
more.merlin.s
124
more.merlin.s
|
@ -204,6 +204,21 @@ SET23 MAC
|
||||||
STA ]1
|
STA ]1
|
||||||
<<<
|
<<<
|
||||||
|
|
||||||
|
********************************
|
||||||
|
* *
|
||||||
|
* STANDARD ASSEM LANG *
|
||||||
|
* BACKWARDS COPY OF 1 BYTE *
|
||||||
|
* A IS DESTROYED *
|
||||||
|
* ]1 DESTINATION *
|
||||||
|
* ]2 SOURCE *
|
||||||
|
* *
|
||||||
|
********************************
|
||||||
|
|
||||||
|
COPY_B MAC
|
||||||
|
LDA ]2
|
||||||
|
STA ]1
|
||||||
|
<<<
|
||||||
|
|
||||||
********************************
|
********************************
|
||||||
* *
|
* *
|
||||||
* MAIN PROGRAM *
|
* MAIN PROGRAM *
|
||||||
|
@ -485,24 +500,23 @@ PRSTRBYTES PUSHY
|
||||||
********************************
|
********************************
|
||||||
|
|
||||||
VIEWFILE
|
VIEWFILE
|
||||||
DO TRACE
|
DO TRACE
|
||||||
PUTS ENVIEW
|
PUTS ENVIEW
|
||||||
FIN
|
FIN
|
||||||
|
|
||||||
SET1 LINENUM ;INIT LINE NUMBER
|
COPY_B LINEIDX;#1 ;POSITION IN LINE
|
||||||
SET1 LINEIDX ;POSITION IN LINE
|
:LOOP JSR PRODOS_MLI ;CALL PRODOS TO READ FILE
|
||||||
:LOOP JSR PRODOS_MLI ;CALL PRODOS TO READ FILE
|
DB READ ;SPECIFY PRODOS READ COMMAND
|
||||||
DB READ ;SPECIFY PRODOS READ COMMAND
|
DA READPARMS ;READ PARAMETERS
|
||||||
DA READPARMS ;READ PARAMETERS
|
BNE :READERR
|
||||||
BNE :READERR
|
JSR WRITEBUF ;WRITE TO SCREEN WHAT WAS READ
|
||||||
JSR WRITEBUF ;WRITE TO SCREEN WHAT WAS READ
|
LDA #1 ;PREPARE FOR NEXT OP
|
||||||
LDA #1 ;PREPARE FOR NEXT OP
|
CMP USRQUIT ;IF USER WANTS TO QUIT, THEN
|
||||||
CMP USRQUIT ;IF USER WANTS TO QUIT, THEN
|
BEQ :ENDLOOP ;EXIT THE LOOP
|
||||||
BEQ :ENDLOOP ;EXIT THE LOOP
|
JMP :LOOP ;ELSE, GET THE NEXT BUFFER
|
||||||
JMP :LOOP ;ELSE, GET THE NEXT BUFFER
|
:READERR JSR ERRPROC
|
||||||
:READERR JSR ERRPROC
|
:ENDLOOP NOP
|
||||||
:ENDLOOP NOP
|
RTS
|
||||||
RTS
|
|
||||||
|
|
||||||
********************************
|
********************************
|
||||||
* *
|
* *
|
||||||
|
@ -510,39 +524,33 @@ VIEWFILE
|
||||||
* *
|
* *
|
||||||
********************************
|
********************************
|
||||||
|
|
||||||
WRITEBUF PUSHY
|
WRITEBUF PUSHY
|
||||||
LDY #0 ;INIT CHAR COUNTER VARIABLE
|
LDY #0 ;INIT CHAR COUNTER VARIABLE
|
||||||
:LOOP CPY READCNT ;COMPARE TO MAX CHARS
|
:LOOP CPY READCNT ;COMPARE TO MAX CHARS
|
||||||
BEQ :ENDLOOP
|
BEQ :ENDLOOP
|
||||||
LDA (ZP_A1L),Y ;GET CHAR FROM BUFFER
|
LDA (ZP_A1L),Y ;GET CHAR FROM BUFFER
|
||||||
ORA #%10000000 ;TURN ON HIGH BIT FOR PRINTING
|
ORA #%10000000 ;TURN ON HIGH BIT FOR PRINTING
|
||||||
JSR WRITECHAR ;COUT PRESERVES ACCUM
|
JSR WRITECHAR ;COUT PRESERVES ACCUM
|
||||||
*
|
|
||||||
* CHECK END OF LINE
|
|
||||||
*
|
|
||||||
CMP #CR_HIBIT ;COMPARE TO CARRIAGE RETURN
|
|
||||||
BNE :CONT ;IF NOT END OF LINE, NEXT CHAR
|
|
||||||
INC LINENUM ;NEXT LINE HAS BEEN REACHED
|
|
||||||
*
|
*
|
||||||
* CHECK AT END OF PAGE
|
* CHECK AT END OF PAGE
|
||||||
*
|
*
|
||||||
LDA LINENUM
|
LDA CV ;CURSOR VERTICAL SCREEN LINE
|
||||||
CMP #SCR_HGHT ;AT BOTTOM OF SCREEN?
|
CMP #SCR_HGHT ;AT BOTTOM OF SCREEN?
|
||||||
BNE :CONT ;NO? THEN NEXT CHAR
|
BNE :CONT ;NO? THEN NEXT CHAR
|
||||||
JSR STATBAR ;YES? THEN SHOW THE STATUS BAR
|
JSR STATBAR ;YES? THEN SHOW THE STATUS BAR
|
||||||
LDA #1 ;SETUP FOR NEXT LINE
|
LDA #1 ;SETUP FOR NEXT LINE
|
||||||
CMP USRQUIT ;DID USER ASK TO QUIT
|
CMP USRQUIT ;DID USER ASK TO QUIT
|
||||||
BEQ :ENDLOOP ;YES? THEN END SUB
|
BEQ :ENDLOOP ;YES? THEN END SUB
|
||||||
:CONT INY ;STATBAR HAS ADJUSTED LINENUM
|
:CONT INY ;STATBAR HAS ADJUSTED LINENUM
|
||||||
JMP :LOOP
|
JMP :LOOP
|
||||||
:ENDLOOP NOP
|
:ENDLOOP NOP
|
||||||
POPY
|
POPY
|
||||||
|
|
||||||
DO TRACE
|
DO TRACE
|
||||||
PUTS EXWRITEBUF
|
PUTS EXWRITEBUF
|
||||||
FIN
|
FIN
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
********************************
|
********************************
|
||||||
* *
|
* *
|
||||||
|
@ -551,19 +559,19 @@ WRITEBUF PUSHY
|
||||||
* PRESERVES ACCUMULATOR *
|
* PRESERVES ACCUMULATOR *
|
||||||
* *
|
* *
|
||||||
********************************
|
********************************
|
||||||
WRITECHAR STA CHAR
|
WRITECHAR STA CHAR ;DON'T LOOSE THE CHARACTER
|
||||||
LDA LINEIDX
|
CMP #CR_HIBIT ;COMPARE TO CARRIAGE RETURN
|
||||||
|
BNE :NOT_EOL ;IF NOT END OF LINE, PRINT
|
||||||
|
INC CV ;FORCE DOWN 1 LINE ON SCREEN
|
||||||
|
COPY_B LINEIDX;#1 ;RESET TO BEGINNING OF LINE
|
||||||
|
JMP :ENDSUB ;NOTHING MORE TO DO FOR EOL
|
||||||
|
:NOT_EOL LDA LINEIDX ;GET CURSOR HORIZ COL
|
||||||
CMP SCR_WDTH ;COMPARE WITH SCREEN WIDTH
|
CMP SCR_WDTH ;COMPARE WITH SCREEN WIDTH
|
||||||
BPL :OFF_SCR ;DON'T PRINT IF OFF SCREEN
|
BPL :ENDSUB ;DON'T PRINT IF OFF SCREEN
|
||||||
LDA CHAR
|
LDA CHAR ;ON SCREEN, SO PRINT IT
|
||||||
JSR COUT
|
JSR COUT
|
||||||
JMP :DONE
|
INC LINEIDX
|
||||||
:OFF_SCR INC LINEIDX ;TODO - THIS IS WRONG!
|
:ENDSUB LDA CHAR
|
||||||
LDA CHAR
|
|
||||||
CMP #CR_HIBIT
|
|
||||||
BNE :DONE
|
|
||||||
JSR CROUT
|
|
||||||
:DONE LDA CHAR
|
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
********************************
|
********************************
|
||||||
|
@ -640,7 +648,7 @@ ERASEBAR
|
||||||
JSR COUT ;WRITE TO SCREEN
|
JSR COUT ;WRITE TO SCREEN
|
||||||
INY ;MAKE PROGRESS
|
INY ;MAKE PROGRESS
|
||||||
JMP :LOOP ;LOOP TO NEXT CHAR
|
JMP :LOOP ;LOOP TO NEXT CHAR
|
||||||
:ENDLOOP SET0 OURCH ;RESET CURSON TO BEG OF LINE
|
:ENDLOOP SET0 OURCH ;RESET CURSOR TO BEG OF LINE
|
||||||
POPY
|
POPY
|
||||||
|
|
||||||
DO TRACE
|
DO TRACE
|
||||||
|
|
Loading…
Reference in New Issue
Block a user