[comp.sys.amiga] ST PROGRAMMING

dana.holt@raider.MFEE.TN.US (11/25/88)

        This reply is directed toward the cooment you made about the Atari ST 
inability to survive a ^C in any of the built-in input functions. Well, this 
message is to set that straight. I do assembly,Pascal,and 'C' on an ST and 
there are built-in functions (in the OS) to allow for input which will ignore 
the ^C keys. If you are stupid enough to write a trap handler to fix the ^C 
problem I feel sorry for you. I can write a piece of assembler off the top of 
my head to do that:
 
        
        m 


start:
        move.w  #$ff,-(sp)      ; Function value to test keyboard
        move.w  #6,-(sp)        ; function number
        trap    #1              ; call GEMDOS
        addq.l  #4,sp           ; correct stack
        tst.w   d0              ; char arrived?
        beq     start           ; not yet
        cmp.b   #3,d0           ; is it a ^C
        beq     END             ; if so then end if not go on
        move    d0,-(sp)        character for putput on the stack
        move    #6,-(sp)        ; function
        trap    #1              ; call GEMDOS
        addq.l  #4,sp
        bra     start           ; get new char
end:
        clr.w   -(sp)           ; clear stack
        trap    #1              ; call GEMDOS $00 (TERM) to exit
(end assembly)
 
        That is off the top of my head. I magine what you could do with some 
time and planning. That was using GEMDOS function $06 which is not the best but
it is the first that comes to mind as I do not have a list at this time..
 
               |||
               |||
              //|\\
            ---------
            % ATARI %
            ---------
          Dana Holt
        Rt.5 Box 119
       M'boro, Tn 37130
VOICE: 615-896-5668
DATA : 615-896-6254
                       ' Amiga? What the hell is an Amiga? '
                                - ME

peter@sugar.uu.net (Peter da Silva) (11/27/88)

In article <36@raider.MFEE.TN.US>, dana.holt@raider.MFEE.TN.US seems to
	be talking to me...
>         This reply is directed toward the cooment you made about the Atari ST 
> inability to survive a ^C in any of the built-in input functions.

No, I said that there is no way of surviving ^C using the standard I/O
functions. That is, the UNIX-style file routines directed at the console
device.

> Well, this 
> message is to set that straight. I do assembly,Pascal,and 'C' on an ST and 
> there are built-in functions (in the OS) to allow for input which will ignore 
> the ^C keys.

Yes, but as soon as you call printf() you're a dead puppy.

> If you are stupid enough to write a trap handler to fix the ^C 
> problem I feel sorry for you. I can write a piece of assembler off the top of 
> my head to do that:

And if I wanted to write assembly language and busy-wait to do something as
simple as this I'd have stuck with an IBM-PC.

>                        ' Amiga? What the hell is an Amiga? '

Simply the only personal computer on the market with a modern operating system
as the standard user environment.
-- 
		    Peter da Silva  `-_-'  peter@sugar.uu.net
		     Have you hugged  U  your wolf today?

	          Disclaimer: My typos are my own damn busines#!rne

martens@lyre.cis.ohio-state.edu (Jeff Martens) (11/28/88)

This may be of interest to those with STs, but what does it have to do
with the Amiga? 

-- Jeff

dana.holt@raider.MFEE.TN.US (11/30/88)

        I was simply making a reply to someone that was talking about ST 
PROGRAMMING..
                                                Dana
        Dana Holt
         Box 119
           Rt5
       Murfreesboro, Tn
              37130
VOICE: 615-896-5668
DATA : 615-896-6254

crewman@bucsb.UUCP (11/30/88)

In article <3028@sugar.uu.net> peter@sugar.uu.net (Peter da Silva) writes:
>In article <36@raider.MFEE.TN.US>, dana.holt@raider.MFEE.TN.US seems to
>>      This reply is directed toward the cooment you made about the Atari ST 
>> inability to survive a ^C in any of the built-in input functions.
>
>No, I said that there is no way of surviving ^C using the standard I/O
>functions. That is, the UNIX-style file routines directed at the console
>device.
>

Is that supposed to be undesirable?  After all, as you say yourself, these are
UNIX-style routines which act just like UNIX does in case of ^C.  These 
routines are there for the console device - a text-based shell, not some
fancy graphics-based input filter.  It's not that there is no way to survive
^C; the ^C exit was put in deliberately to resemble UNIX!

>
>Yes, but as soon as you call printf() you're a dead puppy.
>

Don't use printf().  Use sprintf() followed by one of the ROM string output
routines.  Again, printf() works just like it should -- just like in UNIX.

>
>>    'Amiga!? What the hell is an Amiga?'
>
>Simply the only personal computer on the market with a modern operating system
>as the standard user environment.
>

This must be a joke.  I have an Amiga, an ST, and I use Macs and PC's at work,
among others, and I have come to realize this:  I prefer *ancient* UNIX on my
Sun 3/50 at work to the toy OS on my Amiga anyday!  I even like the ST OS
better than the Amiga's.  It's simple, it has all the graphics one needs, and
it's compatible with MS/DOS.  What the hell is a modern operating system?  How
long does an OS stay modern?

			-- JJS

dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) (11/30/88)

	Before Pete comes on with a huge flame against you, because in this
case he would be completely justified, I would like to give you a medium
flame (to prepare you for Pete's flame which will no doubt occur the moment
he reads the message, eh? (-:).

	What you are saying below in your response is, essentially, that if a 
person wants to disable break he cannot perform certain useful system calls
and library functions on the ST because they catch ^C and kill the program.
You say that this is not necessarily a bad thing.

	(1) ?!?!@ Hogwash.  That makes no sense at all.  And, since you are 
	    so fond of quoting UNIX, I would like to point out that it is
	    a very simple matter to disable INTR (^C) .. a single line of
	    C in fact on UNIX systems.

	(2) I was under the impression that you could disable ^C for these
	    functions on the Atari.  Anybody know for sure?

	(3) I mean, your response *really* makes no sense at all.. just
	    read it over again!  Give me a break!

					-Matt

From: crewman@bucsb.UUCP -- JJS Writes:
:In article <3028@sugar.uu.net> peter@sugar.uu.net (Peter da Silva) writes:
:>In article <36@raider.MFEE.TN.US>, dana.holt@raider.MFEE.TN.US seems to
:>>      This reply is directed toward the cooment you made about the Atari ST 
:>> inability to survive a ^C in any of the built-in input functions.
:>
:>No, I said that there is no way of surviving ^C using the standard I/O
:>functions. That is, the UNIX-style file routines directed at the console
:>device.
:>
:
:Is that supposed to be undesirable?  After all, as you say yourself, these are
:UNIX-style routines which act just like UNIX does in case of ^C.  These 
:routines are there for the console device - a text-based shell, not some
:fancy graphics-based input filter.  It's not that there is no way to survive
:^C; the ^C exit was put in deliberately to resemble UNIX!
:
:>
:>Yes, but as soon as you call printf() you're a dead puppy.
:>
:
:Don't use printf().  Use sprintf() followed by one of the ROM string output
:routines.  Again, printf() works just like it should -- just like in UNIX.

	One last comment:  Don't use printf() ???? THAT IS YOUR SOLUTION??!
Great, Just what I needed to hear.  What?  Oh yah, I was going to keep this
a medium flame ...

						-Matt

martens@dinghy.cis.ohio-state.edu (Jeff Martens) (11/30/88)

In article <2231@bucsb.UUCP> crewman@bucsb.UUCP writes:
>In article <3028@sugar.uu.net> peter@sugar.uu.net (Peter da Silva) writes:
>>In article <36@raider.MFEE.TN.US>, dana.holt@raider.MFEE.TN.US seems to

	[lotsa stuff tossed out]

>>>    'Amiga!? What the hell is an Amiga?'
>>
>>Simply the only personal computer on the market with a modern operating system
>>as the standard user environment.
>>
>
>This must be a joke.  I have an Amiga, an ST, and I use Macs and PC's at work,
>among others, and I have come to realize this:  I prefer *ancient* UNIX on my
>Sun 3/50 at work to the toy OS on my Amiga anyday!  I even like the ST OS
>better than the Amiga's.  It's simple, it has all the graphics one needs, and
>it's compatible with MS/DOS.  What the hell is a modern operating system?  How
>long does an OS stay modern?
>
>			-- JJS

I doubt it was meant to be a joke, but rather a harmless exaggeration.
I myself have an Amiga and a Kaypro, and use Macs and Suns at work and
have used PCs a lot in the past.  Whether AmigaDOS is modern is
debateable, and, all-in-all I probably do prefer Unix to AmigaDOS, but
my Amiga multitasks, which is something VERY important to me that Mac
and ST afficionados can't claim for their machines, and PC people
couldn't claim until fairly recently (I really am not up-to-date with
MS-DOS developments :-).  Also, the Amiga gives me a whole lot more
flexibility than the Mac, simply by virtue of the CLI.  

AmigaDOS isn't perfect, and some people may not like it, but it is a
fairly unique offering on an affordable machine.

-- Jeff

peter@sugar.uu.net (Peter da Silva) (11/30/88)

In article <2231@bucsb.UUCP>, crewman@bucsb.UUCP writes:
> In article <3028@sugar.uu.net> peter@sugar.uu.net (Peter da Silva) writes:
> >In article <36@raider.MFEE.TN.US>, dana.holt@raider.MFEE.TN.US seems to
> >>      This reply is directed toward the cooment you made about the Atari ST 
> >> inability to survive a ^C in any of the built-in input functions.

> >No, I said that there is no way of surviving ^C using the standard I/O
> >functions. That is, the UNIX-style file routines directed at the console
> >device.

> Is that supposed to be undesirable?  After all, as you say yourself, these are
> UNIX-style routines which act just like UNIX does in case of ^C.

They act like UNIX does on a ^C?

As shipped, UNIX ignores ^C... DEL is the default interrupt character. Strike
one: you can't change ^C.

In UNIX a program can easily tell the system to ignore or let you catch the
interrupt character. In a high level language. Strikes two and three: you
can't ignore it and to catch it you have to write an assembly interrupt
routine.

In UNIX you can even turn interrupt processing off globally. Strike four. What
sort of crazy game is this anyway?

> These 
> routines are there for the console device - a text-based shell, not some
> fancy graphics-based input filter.

The console device is a simple terminal emulator. There is no text-based
shell delivered with the ST at all. At the time, there wasn't one available
for third parties. That was what I was trying to write.

> It's not that there is no way to survive
> ^C; the ^C exit was put in deliberately to resemble UNIX!

The ^C handling is put in deliberately to resemble MS-DOS, actually. What they
call the "UNIX-style" calls are actually bug-for-bug compatible with what
Microsoft calls the "UNIX-style" calls in MS-DOS. The major difference between
MS-DOS and TOS is that in MS-DOS you can disable ^C, and there's a shell
(COMMAND.COM) shipped with the thing.

> >Yes, but as soon as you call printf() you're a dead puppy.

> Don't use printf().  Use sprintf() followed by one of the ROM string output
> routines.

This sounds like that joke... "Doctor, it hurts when I do this" "So don't do
that". Sorry, doc, I need to be able to do that.

> Again, printf() works just like it should -- just like in UNIX.

Again, this is complete BS.

> >>    'Amiga!? What the hell is an Amiga?'

> >Simply the only personal computer on the market with a modern operating
> >system as the standard user environment.

> This must be a joke.  I have a [bunch of computers and] I prefer *ancient*
> UNIX on my Sun 3/50 at work to the toy OS on my Amiga anyday!

Well, UNIX is a modern operating system. MS-DOS, MacOS, and TOS are simple
program loaders and file servers that would be quite up-to-date in the early
'60s. TOS has a decent graphics library, and the Mac's toolkit is the best
graphics library for pixel-based graphics I've seen... but there's nothing
but dust, cobwebs, and an old '60s style monitor underneath them.

> I even like the ST OS better than the Amiga's.  It's simple, it has all the
> graphics one needs, and it's compatible with MS/DOS.

No scheduler, no shell, no virtual devices, won't run on a 68020,... simple,
yes. Compatibility with MS-DOS is a major count against it.

> What the hell is a modern operating system?

I don't have Douglas Comer's XINU book here. I'd suggest you have a look at
it...  it's got the best description of what a modern operating system is,
and what it is not, that I've ever seen. Basically a modern operating system
consists of a small number of functional parts: a scheduler, a file system,
a program loader, a memory manager, and a device manager. Each of these parts
can be considered a resource manager, where a resource is something like CPU
time (scheduler) or disk space (file system) that the manager administers.

Since the book, an additional resource... the display... has become a fairly
common subsystem. Without multitasking, though, windowing is a fairly useless
tool.

> How long does an OS stay modern?

Some never make it in the first place. I guess you could say "until the point
where it's missing major subsystems that have become common". CP/M and its
derivitives don't rate. Microsoft Windows is a very good attempt, though. It's
a pity it's suffering so badly from politics. Multifinder... well... the less
I say of THAT the better.
-- 
		    Peter da Silva  `-_-'  peter@sugar.uu.net
		     Have you hugged  U  your wolf today?

	          Disclaimer: My typos are my own damn busines#!rne

mp1u+@andrew.cmu.edu (Michael Portuesi) (12/01/88)

crewman@bucsb.UUCP writes:
> This must be a joke.  I have an Amiga, an ST, and I use Macs and PC's at work,
> among others, and I have come to realize this:  I prefer *ancient* UNIX on my
> Sun 3/50 at work to the toy OS on my Amiga anyday!  I even like the ST OS
> better than the Amiga's.  It's simple, it has all the graphics one needs, and
> it's compatible with MS/DOS.  What the hell is a modern operating system?  How
> long does an OS stay modern?
> 
>                         -- JJS

Get out of this newsgroup.  You're begging for a flame war.


--
Michael Portuesi / Information Technology Center / Carnegie Mellon University
INET:   mp1u+@andrew.cmu.edu / BITNET: mp1u+%andrew.cmu.edu@cmccvb
UUCP:   ...harvard!andrew.cmu.edu!mp1u+

"my friends say she's a dumb blonde, but they don't know she dyes her hair"

space@sns.UUCP (Lars Soltau) (12/05/88)

In article <3036@sugar.uu.net> peter@sugar.uu.net (Peter da Silva) writes:
[lotsa text deleted]
>As shipped, UNIX ignores ^C... DEL is the default interrupt character.

Well, only if you regard AT&T Unix as "*the* Unix". BSD has ^C as its default
interrupt character.

>Since the book, an additional resource... the display... has become a fairly
>common subsystem. Without multitasking, though, windowing is a fairly useless
>tool.

I'd even go so far as to say that multitasking without windows doesn't make me
very happy any more, either. Unless it has at least the BSD job control. You
know, ^Z and so on.
Boy, am I lucky that I have both. :-)
-- 
Lars Soltau	UUCP: ...uunet!unido!sns!space		BIX: -- no bucks --

Here's looking at you, kid!
		-- the Medusa