]> git.sur5r.net Git - cc65/commitdiff
Improvements by Oliver Schmidt
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 3 Jun 2004 15:05:41 +0000 (15:05 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 3 Jun 2004 15:05:41 +0000 (15:05 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@3074 b7a2c559-68d2-44c3-8de9-860c34a00d81

20 files changed:
libsrc/apple2/Makefile
libsrc/apple2/_scrsize.s
libsrc/apple2/apple2-280-192-6.s
libsrc/apple2/apple2-40-40-16.s
libsrc/apple2/apple2-stdjoy.s
libsrc/apple2/apple2.inc
libsrc/apple2/clrscr.s
libsrc/apple2/cputc.s
libsrc/apple2/rbascalc.s [new file with mode: 0644]
libsrc/apple2/rcout.s [new file with mode: 0644]
libsrc/apple2/read.s
libsrc/apple2/rhome.s [new file with mode: 0644]
libsrc/apple2/rom.s [new file with mode: 0644]
libsrc/apple2/rpread.s [new file with mode: 0644]
libsrc/apple2/rrdkey.s [new file with mode: 0644]
libsrc/apple2/rsetwnd.s [new file with mode: 0644]
libsrc/apple2/write.s
libsrc/apple2enh/Makefile
libsrc/apple2enh/_scrsize.s [new file with mode: 0644]
libsrc/apple2enh/cputc.s

index f39485b76f39177696f63c01e3fabb621be9d884..381872ed73f31ec3a90eea37b342a3076a511caf 100644 (file)
 %.o:   %.s
        @$(AS) -g -o $@ $(AFLAGS) $<
 
-%.emd: %.o ../runtime/zeropage.o
+%.emd: %.o ../runtime/zeropage.o rom.o
        @$(LD) -t module -o $@ $^
 
-%.joy: %.o ../runtime/zeropage.o
+%.joy: %.o ../runtime/zeropage.o rom.o
        @$(LD) -t module -o $@ $^
 
-%.tgi: %.o ../runtime/zeropage.o
+%.tgi: %.o ../runtime/zeropage.o rom.o
        @$(LD) -t module -o $@ $^
 
 #--------------------------------------------------------------------------
@@ -45,8 +45,15 @@ OBJS=        _scrsize.o      \
         mainargs.o      \
         oserrlist.o     \
         randomize.o     \
+        rbascalc.o      \
+        rcout.o         \
        read.o          \
        revers.o        \
+        rhome.o         \
+        rom.o           \
+        rpread.o        \
+        rrdkey.o        \
+        rsetwnd.o       \
         systime.o       \
         sysuname.o      \
         tgi_mode_table.o\
index a0be374b9452882b668edfc86b2019d27cf92b0d..269f12a27f90522683ab464ab0c630352543a9e3 100644 (file)
@@ -6,13 +6,10 @@
 
        .export         screensize
 
-        .include        "apple2.inc"
-
 .proc   screensize
 
-       ldx     WNDWDTH
-       ldy     WNDBTM
+       ldx     #40
+       ldy     #24
         rts
 
 .endproc
-
index 498a1554bd323ea10c59abed66248fc80f1c5274..2a7ddf17e445b25c999f44b291db45fa114f0cbc 100644 (file)
 
        .macpack        generic
 
+; ------------------------------------------------------------------------
+; ROM entry points
+
+TEXT    :=     $F399   ; Return to text screen
+HGR     :=     $F3E2   ; Initialize and clear hi-res page 1.
+HCLR    :=     $F3F2   ; Clear the current hi-res screen to black.
+HPOSN   :=     $F411   ; Positions the hi-res cursor without
+                        ; plotting a point.
+                        ; Enter with (A) = Y-coordinate, and
+                        ; (Y,X) = X-coordinate.
+HPLOT   :=     $F457   ; Calls HPOSN and tries to plot a dot at
+                        ; the cursor's position.  If you are
+                        ; trying to plot a non-white color at
+                        ; a complementary color position, no
+                        ; dot will be plotted.
+HLIN    :=     $F53A   ; Draws a line from the last plotted
+                        ; point or line destination to:
+                        ; (X,A) = X-coordinate, and
+                        ; (Y) = Y-coordinate.
+DRAW    :=     $F601   ; Draws a shape.  Enter with (Y,X) = the
+                        ; address of the shape table, and (A) =
+                        ; the rotation factor.  Uses the current
+                        ; color.
+SETHCOL :=     $F6EC   ; Set the hi-res color to (X), where (X)
+                        ; must be between 0 and 7.
+
 ; ------------------------------------------------------------------------
 ; Header. Includes jump table and constants.
 
index e66b6563899c563e560972a047f464a0d36d7fe7..1c50b84c75f0e8470c86ef19dff316c1ed66f829 100644 (file)
@@ -24,6 +24,13 @@ CLRTOP               = $F836
 SETCOL         = $F864
 SCRN           = $F871
 SETGR          = $FB40
+VTABZ          = $FC24
+
+; ------------------------------------------------------------------------
+; ROM entry points
+
+COUT           :=      $FDED   ; Vector to user output routine
+TEXT    :=     $F399   ; Return to text screen
 
 ; ------------------------------------------------------------------------
 ; Header. Includes jump table and constants.
index 1ab031a9a62e72b3684fb2504855aaa5e5d03878..b42876a69aaa84a892efbeb46c813131de484f36 100644 (file)
 
 OFFS            = 10
 
+; ------------------------------------------------------------------------
+; ROM entry points
+
+PREAD          :=      $FB1E   ; Read paddle in X, return AD conv. value in Y
+
 ; ------------------------------------------------------------------------
 ; Header. Includes jump table
 
index 984ed98e87431cdc009d8d795d9ee54fd1ed3c1a..4ec8c17d28743d2ad02d8cacc4e2c7a18a23975d 100644 (file)
@@ -2,10 +2,7 @@
 ;-----------------------------------------------------------------------------
 ; Zero page stuff
 
-WNDLFT :=      $20     ; Left edge of text window
 WNDWDTH        :=      $21     ; Right edge of text window
-WNDTOP :=      $22     ; Top of text window
-WNDBTM :=      $23     ; Bottom+1 of text window
 CH     :=      $24     ; Cursor horizontal position
 CV     :=      $25     ; Cursor vertical position
 BASL   :=      $28     ; Text base address
@@ -24,7 +21,7 @@ MLI   :=      $BF00   ; ProDOS Machine Language Interface
 ;-----------------------------------------------------------------------------
 ; Hardware
 
-; Keyboard entries
+; Keyboard input
 KBD    :=      $C000   ; Read keyboard
 KBDSTRB        :=      $C010   ; Clear keyboard strobe
 
@@ -43,48 +40,3 @@ HISCR        :=      $C055   ; Page 2
 ; Game controller
 BUTN0  :=      $C061   ; Open-Apple Key
 BUTN1  :=      $C062   ; Closed-Apple Key
-
-;-----------------------------------------------------------------------------
-; ROM routines
-
-PREAD  :=      $FB1E   ; Read paddle in X, return AD conv. value in Y
-RDKEY  :=      $FD0C   ; Display prompt and read key from user input routine
-
-; Text output and helpers
-VTABZ  :=      $FC24   ; Calculate screen address for row in accumulator
-HOME   :=      $FC58   ; Clear current text screen
-COUT   :=      $FDED   ; Vector to user output routine
-
-; Graphics entry points, by cbmnut (applenut??) cbmnut@hushmail.com
-TEXT    :=     $F399   ; Return to text screen
-HGR2    :=     $F3D8   ; Initialize and clear hi-res page 2.
-HGR     :=     $F3E2   ; Initialize and clear hi-res page 1.
-HCLR    :=     $F3F2   ; Clear the current hi-res screen to black.
-BKGND   :=     $F3F6   ; Clear the current hi-res screen to the
-                        ; last plotted color (from ($1C).
-HPOSN   :=     $F411   ; Positions the hi-res cursor without
-                        ; plotting a point.
-                        ; Enter with (A) = Y-coordinate, and
-                        ; (Y,X) = X-coordinate.
-HPLOT   :=     $F457   ; Calls HPOSN and tries to plot a dot at
-                        ; the cursor's position.  If you are
-                        ; trying to plot a non-white color at
-                        ; a complementary color position, no
-                        ; dot will be plotted.
-HLIN    :=     $F53A   ; Draws a line from the last plotted
-                        ; point or line destination to:
-                        ; (X,A) = X-coordinate, and
-                        ; (Y) = Y-coordinate.
-HFIND   :=     $F5CB   ; Converts the hi-res coursor's position
-                        ; back to X- and Y-coordinates; stores
-                        ; X-coordinate at $E0,E1 and Y-coordinate
-                        ; at $E2.
-DRAW    :=     $F601   ; Draws a shape.  Enter with (Y,X) = the
-                        ; address of the shape table, and (A) =
-                        ; the rotation factor.  Uses the current
-                        ; color.
-XDRAW   :=     $F65D   ; Draws a shape by inverting the existing
-                        ; color of the dots the shape draws over.
-                        ; Same entry parameters as DRAW.
-SETHCOL :=     $F6EC   ; Set the hi-res color to (X), where (X)
-                        ; must be between 0 and 7.
index c1a29938667ec1e8447dc29c78a1def4f040ac5b..b31f4cf760b8e5b36bc0130d51a66a7c25297b08 100644 (file)
@@ -4,7 +4,6 @@
        ;; void clrscr (void);
 
        .export         _clrscr
+       .import         HOME
 
-       .include        "apple2.inc"
-
-_clrscr = HOME
\ No newline at end of file
+_clrscr := HOME
index 963f6d4d3cf5bf222e2852a2491abe563e4f02db..3e70a8fcb54f87207e088f34dff11d1ec234b877 100644 (file)
        .export         _gotoxy, cputdirect
        .export         newline, putchar
 
-       .import         popa
+       .import         popa, SETWND, BASCALC
 
        .include        "apple2.inc"
 
 initconio:
        lda     #$FF            ; Normal character display mode
        sta     INVFLG
+       lda     #$00
+       jsr     SETWND          ; Reset text window to full screen
        rts
 
 ; Plot a character - also used as internal function
@@ -45,7 +47,7 @@ cputdirect:
        jsr     putchar
        inc     CH              ; Bump to next column
        lda     CH
-       cmp     WNDWDTH
+       cmp     #40
        bne     return
        lda     #$00
        sta     CH
@@ -63,19 +65,19 @@ newline:
        pha
        inc     CV
        lda     CV
-       cmp     WNDBTM
+       cmp     #24
        bne     L2
        lda     #$00
        sta     CV
 L2:
-       jsr     VTABZ
+       jsr     BASCALC
        pla
        sta     CH
        rts
                
 _gotoxy:
        sta     CV              ; Store Y
-       jsr     VTABZ
+       jsr     BASCALC
        jsr     popa            ; Get X
        sta     CH              ; Store X
        rts
diff --git a/libsrc/apple2/rbascalc.s b/libsrc/apple2/rbascalc.s
new file mode 100644 (file)
index 0000000..ffe66f0
--- /dev/null
@@ -0,0 +1,10 @@
+;
+; Ullrich von Bassewitz, 2004-06-03
+;
+; Rom BASCALC routine
+;
+
+        .export         BASCALC
+
+BASCALC        :=      $FBC1   ; Calculate screen base address for row in accumulator
+
diff --git a/libsrc/apple2/rcout.s b/libsrc/apple2/rcout.s
new file mode 100644 (file)
index 0000000..1b8cce7
--- /dev/null
@@ -0,0 +1,10 @@
+;
+; Ullrich von Bassewitz, 2004-06-03
+;
+; Rom COUT routine
+;
+
+        .export         COUT
+
+COUT           :=      $FDED   ; Vector to user output routine
+
index 6e6ddf507436115e3e306cc0400b487e18caa84a..cfabdb1329f3d8b3d6c755f80246b5a62445f685 100644 (file)
@@ -7,11 +7,9 @@
 ;
 
        .export         _read
-       .import         popax, _cputc
+       .import         popax, _cputc, RDKEY
        .importzp       ptr1, ptr2, ptr3
 
-       .include        "apple2.inc"
-
 _read: jsr     popax           ; get count
        sta     ptr2
        stx     ptr2+1          ; save it for later
diff --git a/libsrc/apple2/rhome.s b/libsrc/apple2/rhome.s
new file mode 100644 (file)
index 0000000..b32f41a
--- /dev/null
@@ -0,0 +1,10 @@
+;
+; Ullrich von Bassewitz, 2004-06-03
+;
+; Rom HOME routine
+;
+
+        .export         HOME
+
+HOME           :=      $FC58   ; Clear current text screen
+
diff --git a/libsrc/apple2/rom.s b/libsrc/apple2/rom.s
new file mode 100644 (file)
index 0000000..6d5ea5d
--- /dev/null
@@ -0,0 +1,53 @@
+;
+; Oliver Schmidt, 30.05.2004
+;
+; Apple2 ROM routines
+;
+
+       .export         TEXT
+       .export         HGR2
+       .export         HGR
+       .export         HCLR
+       .export         BKGND
+       .export         HPOSN
+       .export         HPLOT
+       .export         HLIN
+       .export         HFIND
+       .export         DRAW
+       .export         XDRAW
+       .export         SETHCOL
+
+; Graphics entry points, by cbmnut (applenut??) cbmnut@hushmail.com
+TEXT    :=     $F399   ; Return to text screen
+HGR2    :=     $F3D8   ; Initialize and clear hi-res page 2.
+HGR     :=     $F3E2   ; Initialize and clear hi-res page 1.
+HCLR    :=     $F3F2   ; Clear the current hi-res screen to black.
+BKGND   :=     $F3F6   ; Clear the current hi-res screen to the
+                        ; last plotted color (from ($1C).
+HPOSN   :=     $F411   ; Positions the hi-res cursor without
+                        ; plotting a point.
+                        ; Enter with (A) = Y-coordinate, and
+                        ; (Y,X) = X-coordinate.
+HPLOT   :=     $F457   ; Calls HPOSN and tries to plot a dot at
+                        ; the cursor's position.  If you are
+                        ; trying to plot a non-white color at
+                        ; a complementary color position, no
+                        ; dot will be plotted.
+HLIN    :=     $F53A   ; Draws a line from the last plotted
+                        ; point or line destination to:
+                        ; (X,A) = X-coordinate, and
+                        ; (Y) = Y-coordinate.
+HFIND   :=     $F5CB   ; Converts the hi-res coursor's position
+                        ; back to X- and Y-coordinates; stores
+                        ; X-coordinate at $E0,E1 and Y-coordinate
+                        ; at $E2.
+DRAW    :=     $F601   ; Draws a shape.  Enter with (Y,X) = the
+                        ; address of the shape table, and (A) =
+                        ; the rotation factor.  Uses the current
+                        ; color.
+XDRAW   :=     $F65D   ; Draws a shape by inverting the existing
+                        ; color of the dots the shape draws over.
+                        ; Same entry parameters as DRAW.
+SETHCOL :=     $F6EC   ; Set the hi-res color to (X), where (X)
+                        ; must be between 0 and 7.
+
diff --git a/libsrc/apple2/rpread.s b/libsrc/apple2/rpread.s
new file mode 100644 (file)
index 0000000..66514c2
--- /dev/null
@@ -0,0 +1,10 @@
+;
+; Ullrich von Bassewitz, 2004-06-03
+;
+; Rom PREAD routine
+;
+
+        .export         PREAD
+
+PREAD          :=      $FB1E   ; Read paddle in X, return AD conv. value in Y
+
diff --git a/libsrc/apple2/rrdkey.s b/libsrc/apple2/rrdkey.s
new file mode 100644 (file)
index 0000000..096bb75
--- /dev/null
@@ -0,0 +1,10 @@
+;
+; Ullrich von Bassewitz, 2004-06-03
+;
+; Rom RDKEY routine
+;
+
+        .export         RDKEY
+
+RDKEY          :=      $FD0C   ; Display prompt and read key from user input routine
+
diff --git a/libsrc/apple2/rsetwnd.s b/libsrc/apple2/rsetwnd.s
new file mode 100644 (file)
index 0000000..78bc2c4
--- /dev/null
@@ -0,0 +1,10 @@
+;
+; Ullrich von Bassewitz, 2004-06-03
+;
+; Rom SETWND routine
+;
+
+        .export         SETWND
+
+SETWND         :=      $FB4B   ; Set window to max width and start row in accumulator
+
index 7618bdc56d3b9e9e81184edbe9ac73dbbff8eee8..3fa48203113a444edaa0a793c0b9c2ec73d57833 100644 (file)
@@ -7,13 +7,9 @@
        ;;
 
        .export         _write
-
-       .import         popax
-
+       .import         popax, COUT
        .importzp       ptr1, ptr2, ptr3
 
-       .include        "apple2.inc"
-
 .proc   _write
 
        sta     ptr2            ; Save count for later
index 9296ba2eb4dfdbbf5cc6b0510343e6ab377ddb42..689e31aa6314c3282703547206da73c9dbd2f761 100644 (file)
@@ -26,7 +26,8 @@
 #--------------------------------------------------------------------------
 # Object files
 
-OBJS=          chline.o        \
+OBJS=          _scrsize.o      \
+       chline.o        \
        cputc.o         \
        cvline.o        \
        textframe.o
diff --git a/libsrc/apple2enh/_scrsize.s b/libsrc/apple2enh/_scrsize.s
new file mode 100644 (file)
index 0000000..d3e5808
--- /dev/null
@@ -0,0 +1,18 @@
+;
+; Ullrich von Bassewitz, 26.10.2000
+;
+; Screen size variables
+;
+
+       .export         screensize
+
+        .include        "../apple2/apple2.inc"
+
+.proc   screensize
+
+       ldx     WNDWDTH
+       ldy     #24
+        rts
+
+.endproc
+
index a88bf4b6da528c4173ca24e2c9b666da4b825596..5cfdc3a14fd1f9fb00c10e9f4cafbc50e77c8a6a 100644 (file)
@@ -10,7 +10,7 @@
        .export         _gotoxy, cputdirect
        .export         newline, putchar
 
-       .import         popa
+       .import         popa, SETWND, BASCALC
 
        .include        "../apple2/apple2.inc"
 
@@ -19,6 +19,8 @@ initconio:
        lda     #$FF            ; Normal character display mode
        sta     INVFLG
        sta     SETALTCHAR      ; Switch in alternate charset
+       lda     #$00
+       jsr     SETWND          ; Reset text window to full screen
        rts
 
 ; Plot a character - also used as internal function
@@ -82,19 +84,19 @@ newline:
        pha
        inc     CV
        lda     CV
-       cmp     WNDBTM
+       cmp     #24
        bne     L2
        lda     #$00
        sta     CV
 L2:
-       jsr     VTABZ
+       jsr     BASCALC
        pla
        sta     CH
        rts
 
 _gotoxy:
        sta     CV              ; Store Y
-       jsr     VTABZ
+       jsr     BASCALC
        jsr     popa            ; Get X
        sta     CH              ; Store X
        rts