changeset 3236:d276fe300c74

Update to level1 CoVDG to save a few bytes of code. Update to level1 VTIO to fix a SetStat call to set Lowercase Uppercase with the 6847T1 systems.
author David Ladd <drencor-xeen@users.sourceforge.net>
date Mon, 19 Feb 2018 21:06:20 -0600
parents b05e48458203
children fd4c50256e05
files level1/modules/covdg.asm level1/modules/vtio.asm
diffstat 2 files changed, 14 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/level1/modules/covdg.asm	Sat Feb 17 18:19:27 2018 -0600
+++ b/level1/modules/covdg.asm	Mon Feb 19 21:06:20 2018 -0600
@@ -76,7 +76,7 @@
          ldd   #COLSIZE*ROWSIZE+256		allocate screen + 256 bytes for now
          os9   F$SRqMem 	get it
          tfr   u,d		put ptr in D
-         tfr   u,x		and X
+         leax  ,u		and X
          bita  #$01		odd page?
          beq   L0052		branch if not
          leax  >256,x		else move X up 256 bytes
@@ -184,7 +184,7 @@
 * Write
 * Entry: A = char to write
 *        Y = path desc ptr
-Write    tsta  
+Write    tsta
          bmi   L00D0
          cmpa  #$1F		byte $1F?
          bls   Dispatch		branch if lower or same
@@ -192,7 +192,7 @@
          beq   L00B0
          cmpa  #$5E
          bne   L00A0
-         lda   #$00
+         clra
          bra   L00D0
 L00A0    cmpa  #$5F
          bne   L00A8
@@ -224,11 +224,7 @@
          cmpx  <V.ScrnE,u 	end of screen?
          bcs   L00DF		branch if not
          bsr   SScrl		else if at end of screen, scroll it
-L00DF    bsr   ShowCrsr		ends with a CLRB/RTS anyhow
-
-* no operation entry point
-NoOp     clrb  
-         rts   
+L00DF    bra   ShowCrsr		ends with a CLRB/RTS anyhow
 
 * Screen Scroll Routine
 SScrl    ldx   <V.ScrnA,u	get address of screen
@@ -298,6 +294,7 @@
          lda   <V.CColr,u 	get cursor character
          beq   L014D		branch if none
 L014B    sta   ,x		else turn on cursor
+NoOp
 L014D    clrb  
          rts   
 
--- a/level1/modules/vtio.asm	Sat Feb 17 18:19:27 2018 -0600
+++ b/level1/modules/vtio.asm	Mon Feb 19 21:06:20 2018 -0600
@@ -992,7 +992,7 @@
          beq   L05C3          if zero, do nothing
          ldb   #$01           else set display flag
 L05C3    stb   <V.CFlg1,u     save display flag
-         clrb
+NoError  clrb
          rts
 
 BadMode  comb                 Exit with Bad Mode error
@@ -1003,10 +1003,6 @@
 SetupTerm
          bita  #ModCoVDG      32x16 VDG bit flag set?
          beq   GoCoWP         No, go check next co-module type
-* NOTE: THIS CALL DOES SET UP THE FLAG PROPERLY, BUT DOES NOT CHANGE THE VIDEO MODE
-* ITSELF UNTIL A DISPLAY GRAPHICS OR DISPLAY ALPHA COMMAND IS CALLED FIRST. SHOULD
-* CHANGE TO IMMEDIATELY SWITCH TO TRUE LOWER CASE MODE IF ON HARDWARE 32X16 TEXT
-* SCREEN.
          ldb   #$10           assume true lower case TRUE 
          bita  #$01           true lowercase bit set?
          bne   GoCoVDG        Yes, branch if so
@@ -1016,7 +1012,14 @@
          ldx   #$2010         32x16
          pshs  u,y,x,a
          leax  >CoVDG,pcr
-         bra   SetupCoModule
+         bsr   LoadCoModule
+         puls  u,y,x,a
+         bcs   L0600
+         stx   <V.Col,u
+         sta   <V.CurCo,u
+         ldb   <V.Alpha,u
+         bne   NoError
+         lbra  SetDsply
 
 GoCoWP   bita  #ModCoWP       CoWP needed ?
          beq   GOCo42         No, try next co-module
@@ -1036,7 +1039,6 @@
          sta   <V.CurCo,u     current module in use? ($02=CoVDG, $04=C080, etc.)
 L0600    rts
 
-
 GOCo42   bita  #ModCo42       42x24 gfx term?
          beq   GOCoHR         No, try 51 column co-module
          ldb   #$10           Flag that we can do real lowercase