Curt Vendel Posted February 8, 2008 Share Posted February 8, 2008 Here is the BIOS Listing for the Atari 1600XL - IBM PC Computer System: I've spoken with Jim Tittsler the other night regarding the 1600XL and he remember's very little and unfortunately retained nothing, so I'm afraid that for the time being what I'm able to salvage from the mainframe restores currently appears to be all that there is so far of the elusive and now - no longer mythical - Atari 1600XL PC Computer. Curt The IBM Personal Computer MACRO Assembler 08-18-83 PAGE 1-1 BIOS for Atari Shakti 18Aug83 1 PAGE ,132 2 TITLE BIOS for Atari Shakti 18Aug83 3 ;; 4 ; BIOS -- RAM-based I/O system for Version 2.0 of MS-DOS 5 ; 6 ; Copyright 1983 Atari, Inc. 7 ; All rights reserved. 8 ; 9 ; Atari, Inc. 10 ; 60 East Plumeria Drive 11 ; San Jose, CA 95134 12 ; (408) 942-6655 13 14 ; 18Jul83 JWTittsler 15 ; 16 17 DATE MACRO 18 DB '18Aug83' 19 ENDM 20 21 ; This BIOS designed to be linked with the SYSINIT and SYSIMES modules 22 ; provided by Microsoft 23 24 = 0000 FALSE EQU 0 25 = FFFF TRUE EQU NOT FALSE 26 27 = VERBOSE EQU FALSE ;messages at strategy, and int entry and exit 28 = DSKVERB EQU FALSE ;lots of messages for disk debugging 29 = DSKERRM EQU TRUE ;detailed disk error messages 30 31 = ANSI EQU TRUE ;ANSI switch 32 33 = 0003 RETRIES EQU 3 ;number of tries for disk operations 34 35 = 0060 BIOSSEG EQU 060H ;I/O system segment 36 37 = 0010 ROM_VID EQU 10H 38 = 0011 ROM_EQU EQU 11H 39 = 0012 ROM_MEM EQU 12H 40 = 0013 ROM_DSK EQU 13H 41 = 0014 ROM_AUX EQU 14H 42 = 0016 ROM_KBD EQU 16H 43 = 0017 ROM_PRT EQU 17H 44 = 001A ROM_TIM EQU 1AH 45 46 = 0000 VID_MDE EQU 0 ;Set video MoDE 47 = 0002 VID_SCP EQU 2 ;Set Cursor Position 48 = 0003 VID_GCP EQU 3 ;Get Cursor Position 49 = 0006 VID_SCR EQU 6 ;SCRoll active page up 50 = 0009 VID_WCA EQU 9 ;Write Character & Attribute 51 = 000E VID_TTY EQU 14 52 = 0002 DSK_RD EQU 2 53 = 0003 DSK_WR EQU 3 The IBM Personal Computer MACRO Assembler 08-18-83 PAGE 1-2 BIOS for Atari Shakti 18Aug83 54 = 0001 AUX_PUT EQU 1 55 = 0002 AUX_GET EQU 2 56 = 0003 AUX_STA EQU 3 57 = 0000 KBD_RD EQU 0 58 = 0001 KBD_STAT EQU 1 59 = 0000 PRT_PUT EQU 0 60 = 0000 TIM_GET EQU 0 61 = 0001 TIM_SET EQU 1 62 63 = 0040 TIMER EQU 40H 64 = 0061 PORT_B EQU 61H 65 66 = 0007 BELL EQU 07H 67 = 0008 BS EQU 08H 68 = 000A LF EQU 0AH 69 = 000D CR EQU 0DH 70 = 001B ESC EQU 1BH 71 72 ; SYSINIT communication 73 74 EXTRN SYSINIT:FAR ;the entry point of SYSINIT 75 EXTRN CURRENT_DOS_LOCATION:WORD ;where the DOS is when SYSINIT called 76 EXTRN FINAL_DOS_LOCATION:WORD ;where I want SYSINIT to put the DOS 77 EXTRN DEVICE_LIST:DWORD ;pointer to the DEVICE list 78 EXTRN MEMORY_SIZE:WORD ;size in paragraphs of Physical memory 79 EXTRN DEFAULT_DRIVE:BYTE ;default Drive to use when system booted 80 EXTRN BUFFERS:BYTE ;number of default buffers 81 ; leave as is and SYSINIT uses only 2 82 PUBLIC RE_INIT ;re-entered after SYSINT 83 84 0000 IVEC SEGMENT AT 0H 85 = 001E DSK_PARAM_INT EQU 1EH ;INT used to point to disk parameters 86 = 0029 SPEC_INT EQU 29H ;INT used for SPECIAL Console output 87 88 0078 ORG DSK_PARAM_INT*4 89 0078 ???????? DSKPARMV DD ? 90 91 00A4 ORG SPEC_INT*4 92 00A4 ???????? CONSV DD ? 93 94 7E00 ORG 07E00H 95 7E00 0200 [ BOOTFAT DB 512 DUP (?) ;FAT buffer used by boot process 96 ?? 97 ] 98 99 8000 IVEC ENDS 100 101 0000 CODE SEGMENT 102 ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE 103 104 0000 ORG 0 ;starts at an offset of zero 105 106 0000 E9 08A7 R INIT: JMP HWINIT The IBM Personal Computer MACRO Assembler 08-18-83 PAGE 1-3 BIOS for Atari Shakti 18Aug83 107 108 SUBTTL Device driver tables The IBM Personal Computer MACRO Assembler 08-18-83 PAGE 1-4 BIOS for Atari Shakti 18Aug83 Device driver tables 109 PAGE 110 ;-----------------------------------------------+ 111 ; DWORD pointer to next device | 1 word offset 112 ; (-1,-1 if last device) | 1 word segement 113 ;-----------------------------------------------+ 114 ; Device attribute WORD ; 1 word 115 ; Bit 15 = 1 for character devices ; 116 ; 0 for Block devices ; 117 ; ; 118 ; Character devices (Bit 15=1) ; 119 ; Bit 0 = 1 current sti device ; 120 ; Bit 1 = 1 current sto device ; 121 ; Bit 2 = 1 current NUL device ; 122 ; Bit 3 = 1 current Clock device ; 123 ; Bit 4 = 1 SPECIAL Console output ; 124 ; ; 125 ; Bit 13 = 1 for non IBM machines ; 126 ; 0 for IBM machines only ; 127 ; Bit 14 = 1 IOCTL control bit ; 128 ;-----------------------------------------------+ 129 ; Device strategy pointer ; 1 word offset 130 ;-----------------------------------------------+ 131 ; Device interrupt pointer ; 1 word offset 132 ;-----------------------------------------------+ 133 ; Device name field ; 8 bytes 134 ; Character devices are any valid name ; 135 ; left justified, in a space filled ; 136 ; field ; 137 ; Block devices contain # of units in ; 138 ; the first byte ; 139 ;-----------------------------------------------+ 140 141 0003 DEVSTART LABEL WORD 142 0003 CONDEV: ;header for device CON 143 0003 0016 R 0060 DW AUXDEV,BIOSSEG ;link to next device 144 0007 8013 DW 8013H ;attributes - console input 145 ; console output 146 ; SPECIAL console output avail 147 0009 00E4 R DW STRATEGY ;srategy entry point 148 000B 00EF R DW CON_INT ;interrupt entry point 149 000D 43 4F 4E 20 20 20 DB "CON " ;device name 150 20 20 20 151 152 0016 AUXDEV: ;header for device AUX 153 0016 0028 R 0060 DW PRNDEV,BIOSSEG 154 001A 8000 DW 8000H 155 001C 00E4 R DW STRATEGY 156 001E 00F6 R DW AUX_INT 157 0020 41 55 58 20 20 20 DB "AUX " 158 20 20 159 160 0028 PRNDEV: ;header for device PRN 161 0028 003A R 0060 DW TIMDEV,BIOSSEG The IBM Personal Computer MACRO Assembler 08-18-83 PAGE 1-5 BIOS for Atari Shakti 18Aug83 Device driver tables 162 002C 8000 DW 8000H 163 002E 00E4 R DW STRATEGY 164 0030 00FC R DW PRN_INT 165 0032 50 52 4E 20 20 20 DB "PRN " 166 20 20 167 168 003A TIMDEV: ;header for device CLOCK 169 003A 004C R 0060 DW DSKDEV,BIOSSEG 170 003E 8008 DW 8008H 171 0040 00E4 R DW STRATEGY 172 0042 0102 R DW TIM_INT 173 0044 43 4C 4F 43 4B 20 DB "CLOCK " 174 20 20 175 176 004C DSKDEV: ;header for disk devices 177 004C FFFF FFFF DW -1,-1 ;last device 178 0050 0000 DW 0000H 179 0052 00E4 R DW STRATEGY 180 0054 0108 R DW DSK_INT 181 0056 02 DRVMAX DB 2 ;number of units 182 0057 07 [ DB 7 DUP (?) 183 ?? 184 ] 185 186 187 SUBTTL Dispatch tables for each device The IBM Personal Computer MACRO Assembler 08-18-83 PAGE 1-6 BIOS for Atari Shakti 18Aug83 Dispatch tables for each device 188 PAGE 189 005E 05F0 R DSKTBL: DW DSK_INIT ;0 - Initialize Driver 190 0060 061F R DW MEDIAC ;1 - Return current media code 191 0062 0632 R DW GET_BPB ;2 - Get Bios Parameter Block 192 0064 0140 R DW CMDERR ;3 - IOCTL Input 193 0066 0673 R DW DSK_RED ;4 - Block read 194 0068 013C R DW BUS_EXIT ;5 - (Not used, return busy flag) 195 006A 0147 R DW EXIT ;6 - Return status (Not used) 196 006C 0147 R DW EXIT ;7 - Flush input buffer (Not used) 197 006E 066C R DW DSK_WRT ;8 - Block write 198 0070 066C R DW DSK_WRT ;DSK_WRV ;9 - Block write with verify 199 0072 0147 R DW EXIT ;10 - Return output status 200 0074 0147 R DW EXIT ;11 - Flush output buffer (Not used) 201 0076 0147 R DW EXIT ;12 - IOCTL Output 202 203 0078 0147 R CONTBL: DW EXIT ;0 - Init (Not used) 204 007A 0147 R DW EXIT ;1 - Media check (Not used) 205 007C 0147 R DW EXIT ;2 - Get Bios Parameter Block (Not used) 206 007E 0140 R DW CMDERR ;3 - IOCTL Input 207 0080 016E R DW CON_READ ;4 - Character read (Destructive) 208 0082 015C R DW CON_RDND ;5 - Character read (Non-destructive) 209 0084 0147 R DW EXIT ;6 - Return status (Not used) 210 0086 0177 R DW CON_FLSH ;7 - Flush Input buffer 211 0088 0187 R DW CON_WRIT ;8 - Character write 212 008A 0187 R DW CON_WRIT ;9 - Character write with Verify 213 008C 0185 R DW CON_WRST ;10 - Character write status 214 008E 0147 R DW EXIT ;11 - Flush output buffer (Not used) 215 0090 0147 R DW EXIT ;12 - IOCTL Output 216 217 0092 0147 R AUXTBL: DW EXIT ;0 - Init (Not used) 218 0094 0147 R DW EXIT ;1 - Media check (Not used) 219 0096 0147 R DW EXIT ;2 - Get Bios Parameter Block (Not used) 220 0098 0140 R DW CMDERR ;3 - IOCTL Input 221 009A 0496 R DW AUX_READ ;4 - Character read (Destructive) 222 009C 048B R DW AUX_RDND ;5 - Character read (Non-destructive) . . . . . . . . . . . . . . . . 1 Symbol Cross Reference (# is definition) Cref-1 Quote Link to comment Share on other sites More sharing options...
Curt Vendel Posted February 8, 2008 Author Share Posted February 8, 2008 Added this listing and also a Boot listing as well into a zip file and updated the Atari 1600XL section on Atarimuseum.com http://www.atarimuseum.com/computers/8BITS...0xl/1600xl.html Curt Quote Link to comment Share on other sites More sharing options...
peteym5 Posted February 9, 2008 Share Posted February 9, 2008 Very interesting stuff. I knew they were planning on using a 68000 or 80186 based processor into a 1600XL or 1800XL, but top management at Atari was going weary. Would have been interesting to see a PC that could run 6502 based programs that were possibly on the 800XL. It was not clear what this system would have been compatible with, 800XL, IBM PC, or both. Combining a 6502 and a 80186 would have made a good duel processing computer for that time. Quote Link to comment Share on other sites More sharing options...
Math You Posted February 9, 2008 Share Posted February 9, 2008 I always thought that the 1600XL case would have been used for the Atari 1850XL (Amiga). Quote Link to comment Share on other sites More sharing options...
mos6507 Posted February 9, 2008 Share Posted February 9, 2008 Bah, I'm glad Atari Inc never released an x86 box. Quote Link to comment Share on other sites More sharing options...
carmel_andrews Posted February 11, 2008 Share Posted February 11, 2008 I'd be interested in finding out how close the atari version of the 'lorraine' chip set was to what commodore eventually released Also, just out of curiousity, was the proposed 'Gaza' Project/chipset and the 'lorraine' chip set one of the same thing Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.