*************************************** * * * Portfolio User 9 * * May 1996 * * * * The Internet Magazine For The * * ** Atari Portfolio ** * * * * Edited By: Paul Jolliffe * * paulj@jollyp.demon.co.uk * * * ***************************************
 Contents ========
 Introduction An Unusual Use For A Portfolio Programming Programming The Portfolio Setting The Alarm Portfolio On The Net New Home Page For PL/1 Permission To Post PF User On BBS PF User On Web Site Tips Parallel File Transfer Cable Pinouts What UPDATE.COM Fixes Problem Corner For Sale/Wanted
 ---------------------------------------------------------------------- Introduction ============
 Another month another news letter, what a busy month so far. I have changed job so I should be able to spend more time dealing with PF related issues. The next issue will be out in about six months, then monthly after that.
 As you most of you are aware I have finally managed to get the mail server sorted at home. Phew after a long hard slogg it works and a week or so of working at home :) 
 In simple terms the mail server will allow anyone to subscribe to the PF User letter my simply sending an email to the list manager (majordomo@jollyp.demon.co.uk). To add your name send an email containing the message: 'subscribe portfolio' to the list manager, to remove yourself send the message 'unsubscribe portfolio'.
 The mail server has extra features, this includes an archive server. Again by sending a message to the list owner you can get a list of available files, currently there are about 50 on the machine but I have a further 1,500 that need to be sorted through and added once I have checked them, which I am hoping will only take a month or so. 
 All files have been virus checked for all known viruses and once they are on the archive server they cannot be infected. To get a list of available files send the message: 'index portfolio' to the mail server manager (majordomo ...). Due to the large volume of files that will be contained on the list server in the future it would be an idea if you were to request an index listing periodically.
 My machine will contect to the internet twice a night once at midnight (GMT) then again a 06:00 (GMT) so the longest you should need to wait for a response is 24 hours. 
 As part of this upgrade to the software on my home machine, my email will be a lot more reliable and should I be away from my machine for more than 24 hours you will be sent an automatic response just letting you know that I have received your email. There will possibly be a time of bedding down, where there may be unusual things happening, if they do then let me know as soon as possible so I can correct them, this includes receiving more than one copy of the PF User.
 I notice that some people (only a few) are not happy about receiving adverts for the PF due to limitations of on-line time and mail storage areas, I am considering setting up a second list containing anybody who wants to receive the adverts and allowing any advertises password access to post to that mail list. If anyone has any comments either way then please let me know.
 I should also have a compuserve address within the next month, once I know the address I will post details about the PF User to the Portfolio Forum, which should allow a greater audience (as compuserve reckon they have over 30 millions users worldwide). Whilst trauling through compuserve with an evaluation copy of the Compuserve information manager I came accoss over 10 Megabytes of programs for the Portfolio and PC !! One of the great things I found were electronic books ffor the PF, these include Alice in Wonderland and a Star Trek Next Generation story, as a consequence I went 'surfing' and found loads and loads of ASCII versions of books so if anyone wants to embark on a conversion I can get the files and email them to you.
 I now that some of you had problems last month receiving the PF User due to its size, I keep forgetting that most mail gateways will only accept a message less than 60,000 characters. Should a future issue of PF User go over this limit I will split it d own into two or more pieces.
 I have receieved many emails asking permission to post the PF User on various bulliten boards and web pages, please distribute it to as many people you want and place it where ever you want it. Should there be enough interesst I will do a proper HTML version that Web Page owners can receive and just attach to their servers. Let me know what you think.
 I am looking for five volunteers to evaluate software for the PF user magazine. I will send each of them several files once a month via email for them to test and put a couple of sentences together about what they liked about the program or what they disliked and then to score the program on a scale for usability, presentation, documentation and functionality, if anyone is interested then please let me know.
 ---------------------------------------------------------------------- An Unusual Use For A Portfolio ==============================
 From: Lenz Grimmer <93ti016@ba-mannheim.de> Subject: Using Portfolio as a GPS-Navigation Unit.
 Hallo Paul,
 I finally made it to contact the guy who uses his PF as an GPS-Navigation-unit. I had a 30min phonecall with and asked him some questions about how he did it. He's a sailor and also an electronic wiz. In fact, he uses the PF either for navigating or receiving RTTY-Information (whatever that is-I'm not a sailor). As far as navigation is concerned, he uses the PF to display the navigation data (Actual Position, Altitude, Time, etc) that is fed into it using a serial interface. The navigation data comes from an external GPS-Receiver called Globos 3000 (?) tha t was Made by Alcatel SEL Mannheim, Germany (Yes, I do work in this company! But this product line has ben closed down an I don't know if we still sell these units. If anybody is interested, send me a mail!). He wrote the software using Borland C.
 The RTTY-receiver and the related software i not a product of his own, he said he found the information about this in a magazine called "Pocket- und Laptop-Computer" that was published by a german company called Fischel GmbH, Kaiser-Friedrich-Str. 54a, 1000 Berlin 12 (this is the old zip-code! Germany changed the numbering some time ago...) The telephone number of this company was (030) 3236029. I haven't tried to get in contact with them yet. Mr. Mindt (that's the name of the man with the GPS-PoFo) also mentioned, that this company ran a local Computer-Club called ADCC e.V..
 Well, that's all I found out so far, if anybody would like to receive more information or has specific questions, I'll ask Mr. Mindt if he would like me to spread his adress (he has no e-mail).
 Many greetings and much fun, Lenz G.
 ------------------------------------------------------------------- Lenz Grimmer Berufsakademie Mannheim e-mail: lenzg@ba-mannheim.de or lenzg@rummelplatz.uni-mannheim.de WWW: http://www.ba-mannheim.de/~lenzg ------------------------------------------------------------------- ---------------------------------------------------------------------- Programming ===========
 As promised I have written an article covering details about programming the Portofolio and the various languages that are available to do it. I make no warranty to the information supplied and I am sorry if it starts a bit non-technical for most.
 The PF is technically an IBM PC in your hand, but there are differences. The biggest is at the hardware level. When a program tells a machine what to do it can do it one of two ways, the first is at BIOS level (now I've heard of that you say to yourself) the other is via hardware calls. Now the BIOS (theres that word again) is a set of routines, written normally by the manufacturer of the motherboard. 
 These routines allow your programs to communicate with the hardware, regardless of what the hardware type is. For instance on a normal PC you could have anyone of over a hundred different makes of video card, if it wasn't for the BIOS you would have to write a routine for each one. By using a BIOS call all you need to do is put a couple of values in the processor and call a routine, the BIOS then takes care of the rest. The draw back of BIOS calls is they tend to be slow. By contrast a hardware call would involve you knowing, in great detail the internal programming of the video card. Once you have written a specific program for that video card you have a program that will only work on that particluar card, the advantage is it will run several times faster than a BIOS program.
 So you say to yourselves why don't we use software that uses hardware calls, well more often as not the PF will just laugh at you when you try to run it as its internal hardware is not IBM compatible, one example is not being able to print text on a graphics screen, the only way to do it is to draw each letter pixel by pixel.
 Even allowing for these differences in hardware there are many languages that you can use to program with. There are mainly two types of languages, high-level and low level. To understand the difference, you need to understand what actually happens when you program your machine, the machine works by using simple commands and address areas,for instance to add two numbers together you would need code similar to the following (my apologies to Assembler programmers but it has been over 10 years since I used it and it was on a 6809 processor).
 LDA 10 <-- Load register A with 10 LDB 20 <-- Load register B with 20 ADD <-- Add Together And Put The Result In D
 To the machine this (once converted to machine code) could look like:
 01 10 03 20 03
 Not many people can understand that so software designers created high level languages, these convert simple commands that you use into machine code for you, in the above example we added two numbers together, to a high level langauge you would use a command similar to:
 LET D = 10 + 20
 In this simple example you need to type more characters but you can see the difference.
 High level languages, in the main are easier to learn, most novice and budding programmers tend to use BASIC, I learn't programming from BASIC on a Sinclair ZX-81 (Timex 1000). 
 If you decide to use a high level language you need to decide on whether it should be compiled or interpretted (or what ? I hear you say). The PF has two ways of processing your programs. As I said before the PF can only understand machine code programs so your high level language needs to convert your program to machine code. In an interpretted language to PF does it a line at a time, converts to current line of code and then executes it, a compiled languge will convert your program all at one go.
 So what is the difference, which is better, well languages that create compiled executables are generally better. The reason is that they take less disk space (a priority on the PF) and execute a lot faster. The reason why they take less space is that the interpreter for the language does not need to be present, to put it in perspective, say you are using a very small language such as PBasic v 4.91 which is 43K and your program is about 20K that only leaves you a maximum of 70K on a normal PF. A compiled version might only take 20K or less.
 Next month I will review each of the various programming languages that are available for the PF and provide examples within each environment. For the time being you have to decide compiled versus interpretted ?
 ---------------------------------------------------------------------- From: "M. Bokhorst" <M.Bokhorst@ect.nl> Subject: Portfolio
 Hello Paul,
 Maybe sonething for the next PF user:
 Something which is not documented in the technical reference: it is possible to set the alarm of the Portfolio yourself.
 Set alarm:
 AH=6 (set alarm) CH=hour (BCD) CL=minute (BCD) DH=second (BCD) INT 1Ah returns carry if error (alarm already set, invalid time, etc)
 The hour, minute and second are Binary Coded Decimal (BCD).
 For example 12 o'clock should be 12 hex (simple isn't it).
 Reset alarm
 AH=7 (disable alarm) INT 1Ah no return
 The alarm itself is handled by INT 4A. By installing your own interrupt handler is it possible to replace the standard alarm.
 Kind regards, Marcel ---------------------------------------------------------------------- Portfolio On The Net ====================
 From: Marcel Bokhorst <M.Bokhorst@ect.nl> Subject: Home page for PL1
 Hello Jan,
 I made a home page for PL1. You can find it at 
 http://www.smdg.org/marcel/
 Maybe you can include a link to it.
 Kind regards, Marcel ---------------------------------------------------------------------- From: Florian Kuehn <florian@zedat.fu-berlin.de> Subject: Re: Portfolio Newsletter
 Hi Paul,
 Thanks again for adding to the mailing list...
 Now I know how to speak with majordomo... it is really great!!!!!
 I just would like to ask you, if it is allowed to upload the portfolio news as files on a bbs which is not connected to the internet in order to give also users, which have (still) no access to the Internet, the chance to read and maybe to participate ...
 Thanks in advance for an short answer
 best regards
 florian Berlin Germany
 PAULJ> If anyone wants to distribute the Portfolio User then please do, as most of you are aware it is a free 'publication' that I edit, with the help of PF fans from around the world, all that I ask is that you do not modify it in any way and tell people how you got it.
 ---------------------------------------------------------------------- From: David J Southworth <dave@xtal.demon.co.uk> Subject: Portfolio User On Web Page
 Hi Paul,
 You are doing a great job with the Portfolio Newsletter! Well done. I currently get the newsletter from a web site but the link always seems very slow, is there any way of getting the newsletter other than this way or can you recommend a fast site?
 I am thinking of adding a brief Portfolio section to my home page, would you mind if I put the newsletter there, possibly in a HTML format?
 Cheers,
 Dave -- Home Page: http:\\www.demon.co.uk\isotech\d2\ Email : dave@xtal.demon.co.uk
 ---------------------------------------------------------------------- Hints And Tips ==============
 Parallel File Transfer Cable Pinouts ====================================
 From: Lars Aschenbach <100542.3711@compuserve.com> Subject: File Transfer Cable
 Some Hardware information I found on CompuServe:
 This is the minimum configuration of a cable that will do parallel file transfers from a PC compatible to an Atari Portfolio. A 25 pin straight-through cable works, but is too bulky for travel. This minimum configuration cable needs only 6 wires. Both ends are male DB-25 connectors, and the connections are straight across.
 2 - 2 Data 0 3 - 3 Data 1 11 - 11 Busy 12 - 12 Paper Error 13 - 13 Select 25 - 25 Ground (This can be any or all pins 18 through 25. I used 18 - 18.) ---------------------------------------------------------------------- What UPDATE.COM Fixes =====================
 From: Lars Aschenbach <100542.3711@compuserve.com> Subject: UPDATE.COM 1.07 Details
 UPDATE.COM This is the latest update (version 1.07) for the Atari Portfolio 
 Size is 1664 bytes, checksum is 55fa.
 Included are all the bug fixes in previous UPDATE.COM versions and it is compatible with earlier versions of the system.
 Fixes include:
 1. Copy CON: 10 character limit. 2. Printers losing or replacing characters: 3. No power down while executing a .RUN: 4. Card removal while executing a .RUN: 5. The byte at 0:8030 being lost on power down: 6. "Space-Return" bug in the editor which is apparent only in versions 1.070 of the system and above.
 7. Alarm divide by zero.
 8. Int 24 C0 mapped out. 9. DOS error on drve B: 10. Print screen.
 11. Diary alarm problems.
 12. Empty text file.
 The latest available UPDT107.COM should be invoked from the user's AUTOEXEC.BAT.
 Atari assumes no responsibility for the incorrect usage of system software or any damages which are the result of that usage.
 ---------------------------------------------------------------------- From: Lars Aschenbach <100542.3711@compuserve.com> Subject: LCD Controller Info
 Here's some info I've figured out on the Portfolio.
 I reckon the LCD controller is a Hitachi HD61830 (which I have a manual for), or workalike. It has two ports, address and data, with a dozen or so registers:-
 R0 - mode - display on/off, blink, cursor, graphics/text bits R1 - char pitch, high nybble rows - 1, low nybble 6/7/8 dots wide - 1 R2 - chars/line 2 - 128 R3 - lines/screen 1 - 128 R4 - cursor line 1 - 16 R8,9 - display start (low, high) RA,B - crsr addr (high, low) RC - write byte RD - read byte RE - clear bit (bit # in low 3 bits, LB bit is bit 0, RH is bit 7) RF - set bit
 If you read from the address register, DB7 is a busy flag, which should be checked before doing anything. If you want to read data, you have to do a dummy read first. (ie write RA, check busy, write RB, check busy, read RD, check busy, finally read RD). (write RA means write 0AH to addr reg, value to data reg. You can set DX to 8011H, then do an OUT (DX), AX) The cursor auto-increments on a read/write (for bits also). If you want to change the cursor addr, low order byte, you must set the high order byte as well (the Hitachi manual says) (If you only change the high order byte, thats ok)
 The R/W routines in ROM looks very slow, as far as I remember (they keep on setting DX I think). The CPU runs just too quickly to not need the busy checks. You can probably find an optimum number of NOPs, I decided its easier to do the busy checks.
 If this is the right sort of info, and you'd like more details, just say. I did a couple of routines that read and wrote the whole screen in one go, disabling & re-enabling interrupts before and after. I was going to do some graphics stuff, but haven't got round to it. (I used DOS to set graphics mode etc.)
 Here's some other stuff I worked out, of varying use:-
 All ports are between 8000H & 807FH, in blocks of 10H, I think:
 8000-0F show last key pressed (bit 7 = 1 means released) see below
 8010 } LCD { data } duplicated in pairs up to 801E,1F 8011 } { address }
 8020 tone generator
 8040-4F - word - 1/4 second ticks ?
 8050-5F - word - always C202H ?
 8060-6F - byte - contrast level 8070-7F - extender Control keys ------------
 ^2 - 00 ^[ - 1B ^\ - 1C ^] - 1D ^6 - 1E ^_ - 1F ^bsp - 7F Key codes (the row value is the low order nybble I think) ---------
 (This is incomplete, )|( stands for the Atari key, <<>, <>>, <^> and <v> are the arrow keys) 0 1 2 3 0 )|( \d s \ 1 w p z 2 1 4 <sp> 3 2 g ; 4 3 r <ins> .
 5 t <v> = 6 5 \r , 7 6 y l x 8 <del> 0 9 i h v a q - j b u <ins> <<> n c o [ <>> m d 7 <^> <ins> / e <del> ' 8 f 9 ] k <esc> Hope this helps, I don't know anything about undocumented int 61s, I've done a small music program, the tone generator is fairly straight forward, also have several games programs (logical rather than arcade) if you're interested. Also a fair amount of stuff on the serial interface as I don't have a PC, only a home brew machine, so have had to do my own comms stuff. I'd be interested to know how they know how to put up a 'battery low' message (maybe something at 8020H or 8030H?)
 ----------------------------------------------------------------------
 From: Marcel Bokhorst <M.Bokhorst@ect.nl> Subject: Re: Portfolio (LCD Controller)
 Hello Jan,
 >> 1. The Portfolio contains a HD16830B LCD controller of Hitachi.
 >> I do have the specifications of it.
 > > I think it would be fine if this info was available. I think > we could put the description into our buletine or put it onto > ftp server.
 See attached file with documentation.
 >> 1. At I/O address 8040h you can find a timer, which ticks >> (increases) every 1/2 second, which is a higher resolution than >> the built-in clock.
 > > Do you know the purpose of this timer?
 > The internal clocks ticks once in 128 secs or once in 1 sec.
 I don't know, but every even tick it increments the internal clock.
 >> I have also some questions: >> 1. Does anybody know how to put the Portfolio in standby-mode?
 > > I do not know. I think it is done by stopping the clock signal to > the CPU.
 I found out myself (using the ROM-listing):
 MOV DX,8030h XOR AL,AL OUT DX,AL HLT NOP
 I'm using this code for the WAIT command of PL1.
 I've uploaded the last version of Pl1 in the marathon directory. This version is the same as the last version I sent you by mail, except for the WAIT command.
 Kind regards, Marcel
 The LCD on the Portfolio is controlled by a HD61830 of Hitachi. The I/O addresses are 8010h and 8011h.
 8010h is the data register 8011h is the control register
 To program:
 1. Write the register number to 8011h 2. Write the data to register 8010h
 For register and data value, see table below. After the data values the initial values for the Portfolio are show in hex (set during reset)
 Reg function Bits init 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+ 0 Mode control | 0 | 0 | Mode data | 38 +---+---+-------+---+-----------+ 1 Vertical/horizontal | (Vp-1) | 0 | (Hp-1) | 75 character pitch | | | | +---+-----------+---+-----------+ 2 Number of characters per | 0 | (HN-1) | 27 line/number of bytes | | | +---+---------------------------+ 3 Number of vertical dots | | (NX-1) | 3F +---+---+---+---+---------------+ 4 Cursor position | 0 | 0 | 0 | 0 | (CP-1) | 07 +---+---+---+---+---------------+ 8 Display starting address | Address data | 00 (least significant) (Lower) | | +---+---+---+---+---------------+ 9 Display starting address | 0 | 0 | 0 | 0 | Address data | 00 (most significant) (Upper) | | | | | | +---+---+---+---+---------------+ 10 Cursor address | Address data | 00 (least significant) (Lower) | | +---+---+---+---+---------------+ 11 Cursor address | 0 | 0 | 0 | 0 | Address data | 00 (most significant) (Upper) | | | | | | +---+---+---+---+---------------+ 12 Refresh memory write | Character code/bit data | +-------------------------------+ 13 Refresh memory read | Refresh memory data | +---+---+---+---+---+-----------+ 14 Bit clear | 0 | 0 | 0 | 0 | 0 | (BN) | +---+---+---+---+---+-----------+ 15 Bit set | 0 | 0 | 0 | 0 | 0 | (BN) | +---+---+---+---+---+-----------+
 Mode data:
 1 1 1 0 0 0 Initial value for Portfolio
 5 4 3 2 1 0 | | \ / | | | | | | +--- 0: Internal character generator ROM | | | | 1: External character generator ROM | | | | | | | +----- 0: Character mode | | | 1: Graphics mode | | | | | +-------- 00: Cursor OFF | | 01: Cursor ON | | 10: Cursor OFF, character blink | | 11: Cursor blink | | | +----------- 1: Master or slave (when multiple HD61830's) | +------------- 0: Display OFF (without clearing refresh memory) 1: Display ON
 ----------------------------------------------------------------------
 From: "M. Bokhorst" <M.Bokhorst@ect.nl> Subject: Re: your mail
 Hello Paul,
 > I have received a copy of PL/1 from the portfolio site in the Czech > Republic, I have a query, Is it shareware, freeware demo etc .. ?
 It is 100% freeware. It is up to the user to sent me a small donation ($5-$10) to let me see PL1 is appreciated.
 > The other thing is from the small demos you have included it looks > great, is there any chance of you throwing together some > documentation. I don't mind if it is rough, I can always pad it out > for you.
 I try to write in the next comming days some basic documentation about the backgrounds, commands and keywords.
 > Again PL/1 appears to be a small well written, flexible language for > the PF, congratulations.
 Thank you very much.
 I have one question myself: is there a easy and not dirty way to detect a PortFolio safely? (checking/calling INT 60/61 as documented in the technical reference manual is not safe). I will try to find out the ROM BIOS signature of the PortFolio to do the check, but maybe you can tell me a better/easier method.
 Kind regards, Marcel
 PAULJ> Can anyone help Marcel with his query, if so let him know or or me know so I can pass it on.
 ----------------------------------------------------------------------
 Problem Corner ==============
 From: go4tahoe@sierra.net (Charles W. Cross) Subject: Port problem
 Paul here is a tidbit for you or the "problem corner" in port user. I have 3 ports in the family, 2 are ver 1.072 and 1 is ver 1.130. In the ver 1.130 (which I understand to be a special european ver). The optrol 524k flash card won't boot up and let you access the D-drive. The A-drive is fine. This optrol card works fine on the 2 ver. 1.072 ports.
 Here's the kicker ! The atari 32K and 128K Ram Cards work fine in the ver.1.130 port.sounds like a compatability problem. Ever heard of it?
 Let me know, and thanks for all your help so far. 
 Charles W.Cross
 PAULJ> I didn't know there was a version 1.130 of the BIOS, I sent mine back to the makers (DIP) for an upgrade to the latest and they sent it back with 1.072 ROMS, has anyone else had similar problems with there machines, or if you know more about version 1.130 then let me know.
 ---------------------------------------------------------------------- For Sale / Wanted =================
 From: A.C.Mmvanden.Abeele@att.com (Bram vd Abeele +31 35 687 1898) Subject: Portfolio For Sale
 Paul,
 A friend of mine wants to sell his Portfolio. Can you place this advertisement in the coming issue of the Portfolio web magazine.
 For Sale: - Atari Portfolio HPC-004 - Portfolio Parallel Interface HPC-101 - owner's manual, software, interface cable - price: DFL 250 (250 Dutch guilders) Cheers, Bram van den Abeele The Netherlands tel. +31 35 538 7539 e-mail: abeele@lucent.com
 From: Jonathan Wildman <101461.514@compuserve.com> Subject: Wanted Parallel Or Serial Interface
 This is not an article but more of a notice , could you please include in the next edition of Portfolio user (or may be able to help yourself) the following notice.
 NEED DESPERATELY A PARALLEL OR SERIAL INTERFACE TO CONNECT PORTFOLIO TO MY PC!! ...(I AM ALSO INTERESTED IN SOLID STATE DISKS)
 AM WILLING TO PAY GOOD MONEY!!!
 PLEASE EMAIIL JONATHAN WILDMAN 101461.514@COMPUSERVE.COM OR RING (UK, ENGLAND) 0181 590 2764
 Many Thanks Jonathan WIldman 101461.514@Compuserve.com
 ---------------------------------------------------------------------- ******************************************************************** * P O R T F O L I O P R O D U C T S P R I C E L I S T * * * * valid from 10 September 1996 * ******************************************************************** Here is the price list for the products that we can offer you.
 All prices are in German Marks (DM) and all prices do not take local tax and VAT into consideration.
 ************************************** * R E G U L A R P R I C I N G * **************************************
 - 1 Original ATARI 64K Memory Card HPD-402 fuer 39 DM (+S&H)
 - PC RAM Card Drive HPC-301 (incl. ISA-Card and Software) fuer 75 DM (+S&H)
 - Parallel Interface HPC-101 (incl. PC Software) fuer 69 DM (+S&H)
 Contact: Tel./Fax 04131/406278 (Germany).
 ----------------------------------------------------------------------
 Epilogue ========
 Well thats it for this month, there was not much material for this issue so if you want to write something then please let me know.
 - Paul paulj@jollyp.demon.co.uk ----------------------------------------------------------------------