[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Yay! Version 1 of the Sabine 9-Bit Text System is complete!! This post tells ALLL about it. (was: Re: Scrolling HGR Screen Up 8 Lines)



Thanks! It worked perfectly. I used the labels when I relocated it; no
address recalculation was necessary because the Big Mac assembler did it
for me! Using it is sooo much better than typing hex codes into the System
Monitor.

My Sabine 9-Bit Text System's machine language routine file is now complete!

PR#A$409C now will copy character output to the high resolution screen in
the Sabine font. Anything you type and any response you get will be in the
Sabine font (if you are in high-resolution graphics mode). Text mode is
still completely functional! This is what I needed the scrolling thing
for; before it all the text piled up at the bottom.

CALL 16544,X,Y,C will now put Sabine character C on the high resolution
screen at Sabine coordinates X and Y (eight high resolution graphics
coordinates to a Sabine coordinate). This is why I asked if the FRMNUM
($DD67) routine stopped at commas (it did).

EB:XX <return> EC:YY <return> ED:CH <return> EE:CL <return> 4090G <return>
will now put Sabine character CH/CL (low byte first) on the high
resolution screen at Sabine coordinates XX and YY. This is how it is used
from assembly language. Store the horizontal coordinate at $EB, the
vertical coordinate at $EC, and so on, then JSR $4090. This is what I
needed the multiplication routines for.

My painting program, ColorDraw, now has Sabine text added. The current
version of ColorDraw is now 6.0. Press D for drawing commands, T <return>
for the text option, click at the place in your picture where you would
like to place the text, and then type in the text to place into the
picture and press Return. 

The character output routine, and the text routine in ColorDraw, do not,
however, take advantage of all 9 bits (only the 7 bits used in standard
ASCII). There is more to it than meets the eye. Run the Sabine demo
program (SABINE.DEMO) and see what I mean. In a future version, I may add
a way to do this (I would need to back-up the two extra bits to preserve
it though).

The two files that you need to use Sabine are called SABINE.ML and
SABINE.FONT. They are binary files that load at $4090 and $5000,
respectively. They can't be relocated without some reprogramming. Just
BLOAD these files and the above commands will work. If you are using
Sabine in an Applesoft program, I'd suggest to set LOMEM: to 24576 before
assigning any variables so that your variables and string data don't
overwrite high resolution graphics or Sabine's routines and font table.
The program staying at $800 is OK because it's size doesn't change and it
can be as big as 6K (that's big for a tokenized BASIC proggie, and
besides, it's more space than what you would have if the variables were
right after it). That's 13 blocks on a ProDOS disk (12 x 512 is 6144, or
6K, plus 1 for the index block).

The next assembly language project would possibly be the Sabine word
processor, Sabine's Notebook. I might prototype it in BASIC first, like I
did with the Sabine routine itself. If it's fast enough, maybe I'll keep
it BASIC.

This is indeed my finest achievement. It's the first time I've written
more than 50 bytes of assembly language on my own without it failing
miserably!

I already have a copy of Sabine for the Mac (it's currently only in
HyperCard). On my desktop right now there's a HyperCard stack called
Cloud9. If I can do this Sabine thing in Applesoft, I'm sure I can get it
onto a PC with QuickBASIC. After that I'll have the 3 most important
platforms (in my opinion) covered!

The current version of Jon Relay's Desktop, version 4.0, will soon be
uploaded to my web site and the Asimov archives. It will contain the
Sabine files mentioned and the new version of ColorDraw.

Just so you know in advance, typing CALL6 will no longer work starting
with version 4.0 of Jon Relay's Desktop. PR#7 is much more effective, plus
you don't have to store the routine that CALL6 jumps to in some location
that will get erased. Also, Sabine's custom character output routine uses
the locations occupied by the CALL6 routine for saving register values
when it needs to scroll the high resolution screen up.

Well, that's all for now. Be sure to check my website every once in a
while. This (next?) week I hope to get some more stuff on it. I'm going to
upload some more programs, the new version of Jon Relay's Desktop, some
more Mylar City scripts, and whatever else I can think of.


In article <1e7m1xy.1xt42n21usiwsgN%dempson@actrix.gen.nz>,
dempson@actrix.gen.nz (David Empson) wrote:

> Here is a self-contained assembly language routine I've just whipped up
> which will do this.  I've tested it, and (after a few minor corrections)
> it appears to work correctly.
> 
> It fits in $0300-$03CF.  Note the use of internal JSRs in three places,
> so the destinations would need to be modified if you want to relocate
> this code to run elsewhere.  The zero page locations used are monitor
> scratch variables, so there should be no side effects.
> 
> I'd strongly suggest saving any Applesoft program (or other data) before
> testing your transcription of this routine, in case of typos.  It does a
> lot of fiddly calculations, and a minor error could easily destroy
> memory contents.
> 
> MOVEUP8...

-- 
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
Heads  up!  Really  really  long  signature  coming  your  way!
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
My E-mail: jonrelay@napanet.net
My Web Page: http://tammynet.cjb.net (as well as others)
My Chat Room: http://tamchelchat.cjb.net
My Simpsons Geek Code: S0.5 LIS+++ Suzy+++ M1987
My Mylar City Geek Code: MC1.0 TAM+++ CHL+++ JOA+++ KYN++
My Quote: "Something Great is out there. The world just needs
someone to find it."                                    -- Me

+-------------------------------------------------------------+
| *_    Syntax Error: an error on a criminal's tax record.    |
|   |   Bad Subscript: a criminal reading a book on a subway. |
|  ---  Unimplemented Trap: when a bear trap isn't set up     |
| |' ,| properly and thus does not work.                      |
|  ---  Overflow: too many ice cubes.      <Can't Restart>    |
+-------------------------------------------------------------+
  Figure 1.1: Most Applications Crash - If Not, The Operating
                          System Hangs

          +-----------------------------------------+
          | Building Assembly Language for Sabine   |
          | 9-Bit Text System. Please Wait...       |
          |                                         |
          |  +-----------------------------------+  |
          |  |***************[96%]***********    |  |
          |  +-----------------------------------+  |
          +-----------------------------------------+
    Figure 1.2: The current status of my current programming
                            project.

   _________                         __      __       __
  /___  ___/ __ _ _  __ _ _  __   __/  \    / /__  __/ /__
     / /__ \/ // / \/ // / \/ /  / / /\ \  / / o \/__  __/
    / / o  /       /       /  \_/ / /  \ \/ /  __/  / /
   /_/\___/_//_//_/_//_//_/ \___ /_/    \__/\___/  /_/
                            /___/
        Figure 1.3: If you squint your eyes a little...

           Don't forget: Tammy Day on February 15th!
Please remove capital letters from my e-mail address to respond.