Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!wuarchive!uunet!mcsun!sunic!lth.se!newsuser From: qralph@dna.lth.se (Ralph Haglund) Newsgroups: comp.sys.atari.st Subject: Facts, not only talking about them. Message-ID: <1989Dec13.235549.4778@lth.se> Date: 13 Dec 89 23:55:49 GMT Sender: newsuser@lth.se (LTH network news server) Distribution: all Organization: Computer Science, Lund Institute of Technology, Sweden Lines: 248 Hi, I have spent, wasted, countless of milliseconds reading the flames, and also the comments from Ken (even sent him an e-mail or two one late night, but that's only a week or two ago so no reply yet). Instead of telling why facts shouldn't be distributed in a crisp form on this net I think it would be SHORTER to tell them! Like this, as an example: New registers in the 1040STE. From an article by Martin Backschat in ST Magazin, December 1989. Translated by Ralph Haglund, QRALPH@SELDC51, qralph@dna.lth.se. FF8204 ..........xxxxxx VCOUNTHI (R/W) FF8206 ........xxxxxxxx VCOUNTMID (R/W) FF8208 ........xxxxxxx. VCOUNTLO (R/W) The Video Address Counter is now read and write. A write effects immediately, thus be careful and use it preferably during the VBL interrupt. FF820C ........xxxxxxx. VBASELO (R/W) This register contains the low byte of the screen base address. It allows you to set the screen on a word (earlier only on a 256-byte block) to get vertical scrolling. FF820E ........xxxxxxxx LINEWID (R/W) Contain the offset to the next line. The value is the number of words that is added at the end of the screen line to get to the new line. When value = 0 (happens at reset) it works like on a ST. This allows panning of a wider image than can be seen on the screen. Ex: Write the value 20, giving, in 640x400 mode an image 640+20x16 = 960 pixels wide. To see column 20 to 670 you increase the screen base address with one (16 bits) and put a 4 in HSCROLL. FF8240- red grn blu FF825E ....032103210321 PALETTE (R/W) Palette register, now 4 bits for each colour. Observe that the least significant bit is placed highest, to retain compatibility with ST. FF8264 ............xxxx HSCROLL (R/W) This register makes horizontal bitwise scrolling possible. The value tells at which bit of the screen address VBASE the screen will start. fire button FF9200 ............3210 FIRE0-3 (R) joy3 1 2 0 FF9202 udlrudlrudlrudlr JOY0-3 (R/W) Via the fire and joy registers you inquire about the two old (joy1 and joy3) and new (joy0 and joy2). You can also write to joy0 and joy2. FF9210 ........xxxxxxxx XPAD0 (R) FF9212 ........xxxxxxxx YPAD0 (R) FF9214 ........xxxxxxxx XPAD1 (R) FF9216 ........xxxxxxxx YPAD1 (R) You can put a pair of paddles in joystick port 0 (paddle 0) and another pair in joystick port 2 (paddle 1). The registers contain the position. The fire buttons are the same as for joysticks. The trigger for the paddles is in bit 0 and 1 of the register FF9202 (right, left of joy0). FF9220 ......xxxxxxxxxx LIGHTX (R) FF9222 ......xxxxxxxxxx LIGHTY (R) Light gun/pen. This can be put in joy0. The registers contain the position. The x position changes every 4 pixels in 320x200 mode 8 640x200 16 640x400 The y resolution is exact. The x position is always shown in 320x200 resolution, thus for 640x200 you shift one bit to the left and for 640x400 two bits. FF8900 .............xcc SDMACNTR (R/W) Sound-DMA control register. cc = 00 - sound DMA switched off (after reset) cc = 01 - sound DMA on; off at frame end cc = 10 - sound DMA on; repeat each frame This last value can be used for more complex sounds. Here timer-A of the MFP in event count mode gets a signal at end of frame. If you set the data register in timer-A in event count mode to 5, the music frame will be repeated 5 times. In the interrupt routine the FRMBASE can be changed, as the old value is buffered - a new value can be written in FRMBASE while the old frame is played. In this way double buffering can be utilized. FF8902 ..........xxxxxx FRMBASEHI (R/W) FF8904 ........xxxxxxxx FRMBASEMID (R/W) FF8906 ........xxxxxxx. FRMBASELO (R/W) Frame base address. Base address of the music frame. FF8908 ..........xxxxxx FRMCNTHI (R) FF890A ........xxxxxxxx FRMCNTMID (R) FF890C ........xxxxxxx. FRMCNTLO (R) Frame address counter. The actual address of the sound DMA. This way you can find out what sample is momentarily played. FF890E ..........xxxxxx FRMENDHI (R/W) FF8910 ........xxxxxxxx FRMENDMID (R/W) FF8912 ........xxxxxxx. FRMENDLO (R/E) End address of the music frame. FF8920 ........m.....rr SMODCNTR (R/W) Sound mode control. Frequency and mode for playing the frame. rr = 00 - 6258 Hz frequency (default) rr = 01 - 12517 rr = 10 - 25033 rr = 11 - 50066 m = 0 - stereo (default) m = 1 - mono The frequency is for mono, half the value for stereo. Each sample is 8 bit, -128 to +127. In stereo, every second byte is for left, every second for right channel. FF8922 xxxxxxxxxxxxxxxx MWDATA (R/E) FF8924 xxxxxxxxxxxxxxxx MWMASK (R/W) The microwire interface for future microwire devices. Already integrated is the LMC1992 computer, that is responsible for the sound and volume of the digital sound. The LMC1992 has device address 01. To program the LMC1992 you must always set the mask register to $07FF. The control you write to the data register: xx 01 011 DDD DDD : set main volume 000 000 - -80 dB 010 100 - -40 dB 101 000 - 0 dB xx 01 101 XDD DDD : volume of left channel 00 000 - -40 dB 01 010 - -20 dB (2 dB steps) 10 100 - 0 dB xx 01 100 XDD DDD : volume of right channel 00 000 - -40 dB 01 010 - -20 dB (2 dB steps) 10 100 - 0 dB xx 01 010 XXD DDD : set treble 0 000 - -12 dB 0 110 - 0 dB (2 dB steps) 1 100 - +12 dB xx 01 001 XXD DDD : set bass 0 000 - -12 dB 0 110 - 0 dB (2 dB steps) 1 100 - +12 dB xx 01 000 XXX XDD : define mixing 00 - -12 dB 01 - mix with GI soundchip 10 - don't mix with GI soundchip 11 - reserved ------------------------------------------------------------ Just as for the TT, the old ROM address has moved from $FC0000 to $E00000. The ROMs are 256 Kbytes, with ca 30 Kbytes free. The functions Setpalette and Setcolor are changed to adapt to 4-bit colors. All trap-F accesses to AES are gone. The internal variables have also changed addresses. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ That is a better way to use the bandwith IMHO. Another way to learn facts is to subscribe on the two main German ST magazines. I have done so for two years and for sure improved my German! Let's take the December issues, here is a quick resume of their contents: ST Computer, Dec. 1989 Some stuff in this issue: New software for the PC emulator PC-Speed: runs Hercules resolution, and also support for Extended Memory Specification. New 16MHz accelerator with 16k cache, compatible with 68881 etc. 798DM Test of hard disks. BioNet 100 - Ethernet for Atari ST. Info about TOS030, like resolutions, new XBIOS calls: XBIOS 66: DMA/SCSI communication XBIOS 80: Set screen mode/resolution XBIOS 81: Get d:op XBIOS 82: Get/set screen mode only XBIOS 83: Get/set color XBIOS 84: Set range of colors from palette XBIOS 85: Get d:o XBIOS 86: Get/set bit 4 of resolution register XBIOS 87: Get/set bit 7 of resolution register And quite a bit more about the TT. Encryption systems. Details about AES and VDI in TOS 1.4 Part 11(I think) of a Modula-2 course. Numerical Math, part 4, diff. equations of 1st order. Submenus under GEM Details about loading from diskettes as fast as possible. Pictures in one of the PD TeX systems offered. More about that same TeX system. 4 pages of game tests, of 198 pages in all. December issue of ST Magazine contains, among other things: Sprite animation program in Gfa Basic (on the diskette you can buy for DM20) Info from TOS 1.4 release notes. Homemade SCSI - hardware article. New registers in STE. New file functions in TOS 1.4 3D surfaces in net graphics. Reference pages for Omikron Assembler/Debugger Part 3 or 4 of how to use Calamus. How to use resource files in Gfa Basic. 4-5 pages of game tests, 158 pages in all. Reason to start learning German??? $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ BTW - anyone besides me using Paintjet for Atari ST? I made a quick and dirty program (in Turbo-C of course) for printing GIF images on it, anyone interested? Looks nice to print 256 colors. |-------------------------------------------------------------| | Want to talk to me? Try: | | QRALPH@SELDC51 || QRALPH@SELDC52 || qralph@dna.lth.se | | My name? In official Sweden it is: 4.901.185.654 (secret) | | Anywhere else: Ralph Haglund | | Disclaimer: If it works, it's out of date. | |_____________________________________________________________|