AppleWin / AppleWin

Apple II emulator for Windows
GNU General Public License v2.0
707 stars 163 forks source link

Videx 80 column card in slot 3 for Apple][ and ][+ #105

Open tomcw opened 10 years ago

tomcw commented 10 years ago

BerliOS Feature Request #4880

Date: 2009-November-13 22:40 Submitted By: tomch Category: General Functionality Assigned To: tomch Priority: 5

Date: 2009-Nov-13 22:40 Sender: tomch Logged In: YES user_id=25188 Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)

Requested by Stanislav Georgiev (3/11/2009)

tomcw commented 10 years ago

Date: 2009-Nov-13 22:40 Sender: tomch Logged In: YES user_id=25188 Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)

Is there a standard? Videx?

tomcw commented 10 years ago

Date: 2009-Nov-23 21:54 Sender: tomch Logged In: YES user_id=25188 Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)

[From Stan - 15/11/2009]

80 column video adapter (for slot 3 in Apple ][, Apple ][+, Pravetz 82,8M and compatibles) - 1981 Videx Vterm Videoterm 80 Column Card Apple II II+ is the standard.

You surely know about them, they are text only, unlike 80 column onboard capabilities of Apple //e, Apple //c and Pravetz 8A/8C. There are many other brands, but this is the original, it is supported by CP/M, Prodos, etc. I had one about 16 years ago, on my last Pravetz 82.

It worked flawlessly with CP/M, unlike my Pravetz 8A with CP/M card - it had some troubles when scrolling after 24th line: drop to the monitor (for 6502 CPU). After some researching, I replaced the original Pravetz 8A CPU, it was 6502 compatible (CM630), probably not very well compatible when using 80 column mode in CP/M (maybe in other products as well). With original 6502 Pravetz 8A works good with CP/M. This is very strange, because Z80 must perform all operations in CP/M mode... Maybe 6502 still controls adapters in slots.

tomcw commented 9 years ago

Email from Ju-Hyun Lee: (14 Feb 2015)

Today, I would like to ask one thing if you or someone who is developing AppleWin these days. It is about Videx video card support on Apple II+ mode. I know IIe has 80 column mode and it is the standard, and videx is not the standard. However, in Korea in my age people, we didn't have formal import of Apple II series from America so that most of 8bit PC kids used the illegal copy of Apple II+ together with Videx & CP/M (maybe they were the copied ones) to learn about computers. I was one of them. I enjoyed cp/m learning a lot of computer related stuff although I was not the computer major student: learned a lot of programming languages (PL/I, Forth, Fortran, Lisp, Pascal, C, Algol, etc.) and many useful software (dBase II, Word Star, Multiplan, etc.). I think my base of computing knowledge was almost established with Apple II. Only one thing I missed with CP/M environment compared to Apple Soft Basic was graphics. I knew I could use GBASIC (by Microsoft) can handle couple of Apple Basic's graphic commands. However, in CP/M, I moved to Turbo Pascal (V3.0) as my major programming language so that I didn't want to use interpreter based programming any more.

Couple days ago, I visited Korean Apple community and found an old computer magazine's article (Korean). It is about Apple II CP/M Turbo Pascal Graphics Toolbox. One Korean programmer made the library, implementing Apple Soft Basic's graphic functions by calling the Basic interpreter's routine by inline assembly. I tried this in AppleWin. LoRes functions work greatly. I was very surprised that I learned this graphics capability of Apple II CP/M Turbo Pascal, and was really happy with the demo program. However, the hires demo didn't work. I tried even MESS. Still not working.

Later, I realized that I always chose Apple IIe mode in the emulators. I found from the article that the programmer seemed to use Apple II+ with CP/M, Videx cards. I tried to change the mode to II+ in AppleWin. I lost the 80 column text and many text characters (maybe small letters) were broken. However, HiRes demo runs !!! So I tried the same experiment with MESS. MESS 0.149 worked with videx & cp/m option. But the screen was divided into two: left side shows Hires graphics, and right side shows the 80 col text. It is similar behavior I saw from Commodore 128 emulation using MESS. I tried MESS 0.157. It didn't work with CP/M (cannot boot up the CP/M system).

So if AppleWin II+ mode can support videx video term, I guess most of old Apple II fans in Korea may get back their old Apple working environment and can enjoy their memento much better than before.

_The zip attached to the email contained these PNGs:_

ii+.png ii

ii+hidemo.png ii hidemo

iie.png iie

iie-hidemo.png iie-hidemo

lodemo.png lodemo

lodemo-inv.png lodemo-inv

mess149-a2e-cpm5-hidemo.png mess149-a2e-cpm5-hidemo

mess149-a2e-cpm5-lodemo.png mess149-a2e-cpm5-lodemo

mess149-a2p-videx3-cpm5-hidemo.png mess149-a2p-videx3-cpm5-hidemo

mess149-a2p-videx3-cpm5-lodemo.png mess149-a2p-videx3-cpm5-lodemo

mess157b-result.txt: softcard (cp/m) doesn't work for any slot, model (+/e), w/wo videx...

tomcw commented 9 years ago

Email from Ju-Hyun Lee: (16 Feb 2015)

(Tom wrote:) It's very interesting that MESS shows the Videx secondary display alongside the primary Apple II display. Is this the sort of Videx emulation you'd want and expect from AppleWin? Or would you want AppleWin to just show one display?

I want to show just one display, not like MESS' two separate screens when it emulates Videx (I really don't like it and I don't know why MESS does that way).

SEGStriker commented 1 year ago

Any progress with 80-column card support for Apple ][? The Videx card that is emulated and supports IIGS modes only is currently quite limited, or I don't know how to use it correctly. Do you have that Apple II CP/M Turbo Pascal Graphics Toolbox that Ju-Hyun Lee spoke about?

tomcw commented 1 year ago

Sorry - no progress.

The Videx card that is emulated and supports IIGS modes only is currently quite limited, or I don't know how to use it correctly.

AppleWin doesn't support the Videx card - so I don't know what you mean by this.

NB. Since you mention "IIGS modes" - AppleWin does partially support the VidHD card, which supports the IIGS SHR modes - perhaps you are confusing Videx and VidHD?

Do you have that Apple II CP/M Turbo Pascal Graphics Toolbox that Ju-Hyun Lee spoke about?

Yes, here it is: TURBOPGR.zip

SEGStriker commented 1 year ago

Ah, that's right, VidHD, it is different. Sorry that there isn't any progress with Videx emulation. Not sure if this could help a little:

https://wiki.mamedev.org/index.php/Driver:Apple_II

videoterm is the Videx VideoTerm 80-column card for the II and II Plus. aevm80 is the Applied Engineering ViewMaster 80 80-column card. This is their enhanced clone of the Videx VideoTerm. ap16 is a German clone of the Videx VideoTerm 80-column card. ap16alt is the same German clone of the Videx VideoTerm with a different firmware version. vtc1 is yet another VideoTerm clone, this one of unknown origin. ultraterm is the Videx UltraTerm 80 and 132-column card for the II, II Plus, and unenhanced IIe. ultratermenh is the Videx UltraTerm 80 and 132-column card with special firmware to work on the enhanced IIe.

https://github.com/mamedev/mess-svn/blob/master/src/mess/machine/a2videoterm.c

https://github.com/mamedev/mame/blob/master/src/devices/bus/a2bus/a2videoterm.cpp

https://github.com/btb/80ColumnCard

Dietrich-L commented 1 year ago

This issue is now quite old. Any intentions to support 80 col cards on the Apple II in the future?

Dietrich

tomcw commented 1 year ago

Any intentions to support 80 col cards on the Apple II in the future?

So far, I've just had a quick read of the Videx Videoterm manual to get a rough idea of what would be involved.

Here are my thoughts/ideas:

  1. PoC
    • use regular Apple II character ROM (so lacking graphics & extra chars)
    • use Videoterm's firmware
    • support Videoterm's banked 8K RAM (4x 2K)
    • minimal CRT Controller ("CRTC") support (eg. R12,R13 - Start Address Hi/Lo) via DEVICE SELECT at $C0Bx
    • don't show the video output in a 2nd window, instead reuse existing window:
    • Videoterm video on: when card selected (eg. when PR#3 or a CRTC reg is written to)
    • Videoterm video off: RESET
  2. Simple implementation
    • like PoC, but use Videoterm's char ROM
    • if Videoterm is inserted, then use 720-pixel wide display
    • save state support
  3. Second display for Videoterm
    • Consider ways to show the Videoterm's display alongside the regular Apple II's display
    • eg. very wide window like MESS/MAME, or a 2nd floating window

What happens if a Videoterm is inserted into slot 3 of an Apple //e? (with 80col card unplugged)

Ref: "Videx Videoterm - Installation and Operation Manual.pdf" (3rd Edition, Jan'82) Includes this note:

IMPORTANT NOTICE: THE VIDEOTERM MUST NOW BE PLACED only IN SLOT 3.

There are two features documented in this manual which have been removed:
* The 80 characters by 18 line format (used by the 7 x 12 character font)
* slot independence (the Videoterm MUST be placed in Slot 3)

It seems like the Videoterm uses a 9x9 character matrix size: (page 1-1)

When properly adjusted, the
interface card clearly displays upper and lower case
characters using a 7 by 9 character dot matrix size
(the full matrix is actuall 9 by 9).

So to use this char ROM, then display needs to be 80x9 = 720 dots wide.

tomcw commented 1 year ago

Dumping the char ROMs (from MAME's a2vidtrm.zip) each character is 8x16, where only the first 9 rows are used. Presumably there's an implicit 9th column as a gap between chars.

EG. from "videx videoterm character rom normal.bin", this is "p" (with bits reversed):

........
........
..#####.
.#....#.
.#....#.
.#....#.
..#####.
......#.

......#.
........
........
........
........
........
........
........