Re: BASIC for the CBM-II/8088

From: Michał Pleban <lists_at_michau.name>
Date: Tue, 10 Jul 2018 12:22:05 +0200
Message-ID: <5B4488CD.20602@michau.name>
Hello!

Baltissen, GJPAA (Ruud) wrote:

> Strange, are you sure? 

Yes - I wrote the functions so I am pretty sure that I didn't write this
one ;-)

> You said you tried BASIC under DOS 1.25. I haven't run any BASIC under DOS the last 15 years so I'm not quite sure of it behavior anymore. But IIRC it behaves just like BASIC on any 8-bits Commodore (= Microsoft as well). If this BASIC is not using function 8 (indirectly through DOS), how does it keep track of changes? 

You don't need to read anything from the screen to allow the user to
input lines of text. You just need a text buffer in memory where you
store the characters the user typed, and output them to the screen using
INT 10,0E. The buffer does not need to be limited to 80 characters.

You are probably thinking in terms of full-screen BASIC editor like on
Commodores. That's not how MS-DOS, MBASIC EDLIN and other CP/M era
programs handle text input; generally, they don't have full-screen
editors at all, they just allow entering one line at a time. When you go
into territory of full-screen editors, then you really need direct video
memory access because reading individual chars with INT 10 will be too
slow anyway.

> Then what about other programs needing this function? (none comes to my mind right now)

I haven't come up with any so far. If a program needs to read characters
from the screen, it generally accesses the video memory directly instead
of bothering with INT 10.

> IMHO every INT function that is supported by the original IBM BIOS and can be supported, should be supported by the BIOS of the 8088 card as well. Should be doable with the new card with its 64 KB EPROM.

The two main problems with "reading" characters from the screen is that
the screen is really on the 6509 side. That means that:

* The screen is in PETSCII; you would need to convert it back to IBM
which means you need another conversion table somewhere.

* There are 256 IBM characters but only 128 PETSCII characters so the
conversion IBM->PETSCII is lossy. Therefore, if you read back a
character, you will not always get back what you wrote.

All this can be done, but I focused my efforts on functions which were
really used by some software I tried.

> A possible solution (for the moment ?) is reserving memory which serves as a copy of the screen. Every movement of the cursor and key input is stored here before being sent to the computer itself. So when an "Enter" is detected, the actual line is read from memory rather then being read form the screen using function 8. But I'm not happy about that.

This can be done, but seems lots of effort to support a function that
nobody is using. I'd rather wait till me have the proper video memory
emulation on the card.

Regards,
Michau.
Received on 2018-07-10 13:00:05

Archive generated by hypermail 2.2.0.