Jump to content

sup8pdct

Members
  • Content Count

    935
  • Joined

  • Last visited

Everything posted by sup8pdct

  1. It is possiable that your monintors are too smart. they see 50 hz sync so expect to see pal colour burst signal as well. Just a thought. James
  2. There are some older ones that required os rev A and/or os rev B that came with the 400/800. These can be over come with patches to the programs or translator disk or os change for xl/xe. 4 player joystick games do require a 400/800 but there are not many of those and even fewer people playing them 4 at once. James
  3. "The disk"... What disk? Do you know what's supposed to be on the disk and if it's a bootable one? ANY disk i tried to load. I tried store-bought games (like archon and the like). I also used to copy games onto formatted disks. Admittedly my memory is pretty hazy on what exactly i used to do, but i seem to remember that i'd make them bootable. I certainly dont remember having to use a boot disk each time (i cant find mine anyway). But in ALL cases, either with purchased games, or my own disks, i got boot error every time. All your disks would be quite old now and depending on how they were stored, may not work properly. Also, the drive head may be dirty. Re the option switch, it is on the power board in the 800 wherethe power,SIO etc plug in. getting to it isn't to hard. you need to remove the 2 or 3 screws that hold the power board down, the ease it off the large multi pin connector. iy will be firm. If i remember correctly, there is another 4 pin connector, this is for the consol switches Re the drive, once the lid is off, remove the brown front cover, then the mech can be lifted up. it sits on some posts. be care full of all the cables. the belt is on the under side. James
  4. I always thought that serial port 1 was fully featured, ports 2 and 3 are the same with less features then port 1, and port 4 had less again, but could be used with devices that had current loops James
  5. It all depends on what program you are using to measure rpm and weather it looks at Palflg to adjust its timing. Some do, some don't. The only thing I know of that require different versions for 50 or 60 HZ is an XF551 addon from CSS. the one that allows you to flip the disk and format it. James
  6. For anyone who is interested, I have taken a photo of the 1090xl top and bottom of the circuit board to show how little it has. www.eftel.net.au/~sup8pdct/1090xl top.jpg www.eftel.net.au/~sup8pdct/1090xl bottom.jpg Please ignore the red wire. I used it to inject 9v ac to see if it worked. I don't have any cards for it. James
  7. Another Pal from australia BZ 110353 There is a Date right at the back pressed in to the plastic ATARI / 082 There is also a long sticker but i cannot make out all the charactors. Gtia, rev A os James
  8. As I understand it, you are not getting any left,right up or down movement. If that is the case, you will need to check the pia chip (6520) it is located towards the front on the mother board of the 400. If you have asteroids cart, you can test all 4 joystick ports James Most likely GTIA chip. Are you testing in BASIC as I don't know many games that use 3rd and 4th trigger lines? Maybe your are using an XL/XE OS in your Atari 400. Thanks for the reply. Naw, just testing the joystick ports using Centipede. That's my favorite for Atari 8-bit joystick testing. I don't actually know how to test the 3rd and 4th ports. I just test the 1st and 2nd ports, and both have the same issue- Fire only response from the joysticks (which again are fully tested and work). GTIA again? B&C has them for $5. Should I go for it?
  9. This is what I have done so far. James ; ; IO EQUATES ; ICHID = $0000 ICDNO = $0001 ICCOM = $0002 ICSTA = $0003 ICBAL = $0004 ICBAH = $0005 ICPTL = $0006 ICPTH = $0007 ICBLL = $0008 ICBLH = $0009 ICAX1 = $000A ICAX2 = $000B ICAX3 = $000C ICAX4 = $000D ICAX5 = $000E ICAX6 = $000F ; ; DISPLAY LIST EQUATES ; ADLI = $0080 AVB = $0040 ALMS = $0040 AVSCR = $0020 AHSCR = $0010 AJMP = $0001 AEMPTY1 = $0000 AEMPTY2 = $0010 AEMPTY3 = $0020 AEMPTY4 = $0030 AEMPTY5 = $0040 AEMPTY6 = $0050 AEMPTY7 = $0060 AEMPTY8 = $0070 ; ; OS VARIABLES FOR XL/XE ; ; PAGE 0 ; NGFLAG = $0001 CASINI = $0002 RAMLO = $0004 TRAMSZ = $0006 CMCMD = $0007 WARMST = $0008 BOOT = $0009 DOSVEC = $000A DOSINI = $000C APPMHI = $000E POKMSK = $0010 BRKKEY = $0011 RTCLOK = $0012 BUFADR = $0015 ICCOMT = $0017 DSKFMS = $0018 DSKUTL = $001A ABUFPT = $001C ICHIDZ = $0020 ICDNOZ = $0021 ICCOMZ = $0022 ICSTAZ = $0023 ICBALZ = $0024 ICBAHZ = $0025 ICPTLZ = $0026 ICPTHZ = $0027 ICBLLZ = $0028 ICBLHZ = $0029 ICAX1Z = $002A ICAX2Z = $002B ICAX3Z = $002C ICAX4Z = $002D ICAX5Z = $002E ICAX6Z = $002F STATUS = $0030 CHKSUM = $0031 BUFRLO = $0032 BUFRHI = $0033 BFENLO = $0034 BFENHI = $0035 LTEMP = $0036 BUFRFL = $0038 RECVDN = $0039 XMTDON = $003A CHKSNT = $003B NOCKSM = $003C BPTR = $003D FTYPE = $003E FEOF = $003F FREQ = $0040 SOUNDR = $0041 CRITIC = $0042 FMSZPG = $0043 ZCHAIN = $004A DSTAT = $004C ATRACT = $004D DRKMSK = $004E COLRSH = $004F TEMP = $0050 HOLD1 = $0051 LMARGN = $0052 RMARGN = $0053 ROWCRS = $0054 COLCRS = $0055 DINDEX = $0057 SAVMSC = $0058 OLDROW = $005A OLDCOL = $005B OLDCHR = $005D OLDADR = $005E FKDEF = $0060 PALNTS = $0062 LOGCOL = $0063 ADRESS = $0064 MLTTMP = $0066 SAVADR = $0068 RAMTOP = $006A BUFCNT = $006B BUFSTR = $006C BITMSK = $006E SHFAMT = $006F ROWAC = $0070 COLAC = $0072 ENDPT = $0074 DELTAR = $0076 DELTAC = $0077 KEYDEF = $0079 SWPFLG = $007B HOLDCH = $007C INSDAT = $007D COUNTR = $007E LOMEM = $0080 ; ; PAGE 2 ; VPRCED = $0202 VIMIRQ = $0216 CDTMV1 = $0218 CDTMV2 = $021A CDTMV3 = $021C CDTMV4 = $021E CDTMV5 = $0220 VVBLKI = $0222 VVBLKD = $0224 CDTMA1 = $0226 CDTMA2 = $0228 CDTMF3 = $022A SRTIMR = $022B CDTMF4 = $022C INTEMP = $022D CDTMF5 = $022E SDMCTL = $022F SDLSTL = $0230 SDLSTH = $0231 SSKCTL = $0232 SPARE = $0233 LPENH = $0234 LPENV = $0235 BRKKY = $0236 VPIRQ = $0238 CDEVIC = $023A CCOMND = $023B CAUX1 = $023C CAUX2 = $023D TMPSIO = $023E ERRFLG = $023F DFLAGS = $0240 DBSECT = $0241 BOOTAD = $0242 COLDST = $0244 RECLEN = $0245 DSKTIM = $0246 PDVMSK = $0247 SHPDVS = $0248 PDMSK = $0249 RELADR = $024A PPTMPA = $024C PPTMPX = $024D CHSALT = $026B VSFLAG = $026C KEYDIS = $026D FINE = $026E GPRIOR = $026F HIBYTE = $0288 WMODE = $0289 BLIM = $028A IMASK = $028B JVECK = $028C NEWADR = $028E TXTROW = $0290 TXTCOL = $0291 TINDEX = $0293 TXTMSC = $0294 TXTOLD = $0296 CRETRY = $029C HOLD3 = $029D SUBTMP = $029E HOLD2 = $029F DMASK = $02A0 TMPLBT = $02A1 ESCFLG = $02A2 TABMAP = $02A3 LOGMAP = $02B2 INVFLG = $02B6 FILFLG = $02B7 TMPROW = $02B8 TMPCOL = $02B9 SCRFLG = $02BB HOLD4 = $02BC DRETRY = $02BD SHFLOC = $02BE BOTSCR = $02BF RUNADR = $02C9 HIUSED = $02CB ZHIUSE = $02CD GBYTEA = $02CF LOADAD = $02D1 ZLOADA = $02D3 DSCTLN = $02D5 ACMISR = $02D7 KRPDER = $02D9 KEYREP = $02DA NOCLIK = $02DB HELPFG = $02DC DMASAV = $02DD PBPNT = $02DE PBUFSZ = $02DF RUNAD = $02E0 INITAD = $02E2 RAMSIZ = $02E4 MEMTOP = $02E5 MEMLO = $02E7 HNDLOD = $02E9 DVSTAT = $02EA CBAUDL = $02EE CBAUDH = $02EF CRSINH = $02F0 KEYDEL = $02F1 CH1 = $02F2 CHACT = $02F3 CHBAS = $02F4 NEWROW = $02F5 NEWCOL = $02F6 ROWINC = $02F8 COLINC = $02F9 CHAR = $02FA ATACHR = $02FB CH = $02FC FILDAT = $02FD DSPFLG = $02FE SSFLAG = $02FF ; ; PAGE 3 ; DDEVIC = $0300 DUNIT = $0301 DCOMND = $0302 DSTATS = $0303 DBUFLO = $0304 DBUFHI = $0305 DTIMLO = $0306 DUNUSE = $0307 DBYTLO = $0308 DBYTHI = $0309 DAUX1 = $030A DAUX2 = $030B TIMER1 = $030C ADDCOR = $030E CASFLG = $030F TIMER2 = $0310 TEMP1 = $0312 TEMP2 = $0314 TEMP3 = $0315 SAVIO = $0316 TIMFLG = $0317 STACKP = $0318 TSTAT = $0319 HATABS = $031A PUPBT1 = $033D PUPBT2 = $033E PUPBT3 = $033F IOCB0 = $0340 IOCB1 = $0350 IOCB2 = $0360 IOCB3 = $0370 IOCB4 = $0380 IOCB5 = $0390 IOCB6 = $03A0 IOCB7 = $03B0 PRNBUF = $03C0 SUPERF = $03E8 CKEY = $03E9 CASSBT = $03EA CARTCK = $03EB DERRF = $03EC ACMVAR = $03ED BASICF = $03F8 MINTLK = $03F9 GINTLK = $03FA CHLINK = $03FB CASBUF = $03FD ; ; HARDWARE REGISTERS ; ; GTIA ; M0PF = $D000 HPOSP0 = $D000 M1PF = $D001 HPOSP1 = $D001 M2PF = $D002 HPOSP2 = $D002 M3PF = $D003 HPOSP3 = $D003 P0PF = $D004 HPOSM0 = $D004 P1PF = $D005 HPOSM1 = $D005 P2PF = $D006 HPOSM2 = $D006 P3PF = $D007 HPOSM3 = $D007 M0PL = $D008 SIZEP0 = $D008 M1PL = $D009 SIZEP1 = $D009 M2PL = $D00A SIZEP2 = $D00A M3PL = $D00B SIZEP3 = $D00B P0PL = $D00C SIZEM = $D00C P1PL = $D00D GRAFP0 = $D00D P2PL = $D00E GRAFP1 = $D00E P3PL = $D00F GRAFP2 = $D00F TRIG0 = $D010 GRAFP3 = $D010 TRIG1 = $D011 GRAFM = $D011 TRIG2 = $D012 COLPM0 = $D012 TRIG3 = $D013 COLPM1 = $D013 PAL = $D014 COLPM2 = $D014 COLPM3 = $D015 COLPF0 = $D016 COLPF1 = $D017 COLPF2 = $D018 COLPF3 = $D019 COLBK = $D01A PRIOR = $D01B VDELAY = $D01C GRACTL = $D01D HITCLR = $D01E CONSOL = $D01F ; ; POKEY ; POT0 = $D200 AUDF1 = $D200 POT1 = $D201 AUDC1 = $D201 POT2 = $D202 AUDF2 = $D202 POT3 = $D203 AUDC2 = $D203 POT4 = $D204 AUDF3 = $D204 POT5 = $D205 AUDC3 = $D205 POT6 = $D206 AUDF4 = $D206 POT7 = $D207 AUDC4 = $D207 ALLPOT = $D208 AUDCTL = $D208 KBCODE = $D209 STIMER = $D209 RANDOM = $D20A SKREST = $D20A POTGO = $D20B SERIN = $D20D SEROUT = $D20D IRQST = $D20E IRQEN = $D20E SKSTAT = $D20F SKCTL = $D20F ; ; PIA ; PORTA = $D300 PORTB = $D301 PACTL = $D302 PBCTL = $D303 ; ; ANTIC ; DMACLT = $D400 CHACTL = $D401 DLISTL = $D402 DLISTH = $D403 HSCROL = $D404 VSCROL = $D405 PMBASE = $D407 CHBASE = $D409 WSYNC = $D40A VCOUNT = $D40B PENH = $D40C PENV = $D40D NMIEN = $D40E NMIST = $D40F NMIRES = $D40F ; DSKINV = $E453 CIOV = $E456 SIOV = $E459 SETVBV = $E45C SYSVBV = $E45F XITVBV = $E462 SIOINV = $E465 SENDEV = $E468 INTINV = $E46B CIOINV = $E46E SELFSV = $E471 WARMSV = $E474 COLDSV = $E477 RBLOKV = $E47A CSOPIV = $E47D PUPDIV = $E480 SELFTSV = $E483 PENTV = $E486 PHUNLV = $E489 PHINIV = $E48C GPDVV = $E48F ; ; Code equates for consol ; L00F5 = $00F5 L0400 = $0400 L0401 = $0401 L0402 = $0402 L0403 = $0403 L0B18 = $0B18 L2045 = $2045 L2A2A = $2A2A L434F = $434F L4552 = $4552 L45CE = $45CE L4946 = $4946 L4D58 = $4D58 L4F4E = $4F4E L5245 = $5245 L52C1 = $52C1 L9B3F = $9B3F ; ; ; Code equates device ; L0001 = $0001 L0002 = $0002 L0003 = $0003 L0004 = $0004 L0005 = $0005 L0006 = $0006 L0007 = $0007 L0008 = $0008 L0009 = $0009 L000A = $000A L000B = $000B L000C = $000C L000D = $000D L000E = $000E L000F = $000F L0010 = $0010 L0011 = $0011 L0012 = $0012 L0013 = $0013 L0014 = $0014 L0015 = $0015 L0016 = $0016 L0017 = $0017 L0018 = $0018 L0019 = $0019 L001B = $001B L001C = $001C L001D = $001D L001E = $001E L001F = $001F L0020 = $0020 L0021 = $0021 L0022 = $0022 L0023 = $0023 L0024 = $0024 L0025 = $0025 L0026 = $0026 L0027 = $0027 L0028 = $0028 L0029 = $0029 L002A = $002A L002B = $002B L002C = $002C L002D = $002D L0030 = $0030 L0036 = $0036 L007F = $007F L0084 = $0084 L00CA = $00CA L00F0 = $00F0 L00F1 = $00F1 L00F2 = $00F2 L00F3 = $00F3 L00F4 = $00F4 L00F5 = $00F5 L00F6 = $00F6 L00F7 = $00F7 L00F8 = $00F8 L0200 = $0200 L0201 = $0201 L0202 = $0202 L0284 = $0284 L0285 = $0285 L0286 = $0286 L0287 = $0287 L2004 = $2004 L34F1 = $34F1 L44F1 = $44F1 L8002 = $8002 ;6850 status register L8003 = $8003 ;6850 data register L8004 = $8004 ;6850 status register L8005 = $8005 ;6850 data register L9103 = $9103 LA000 = $A000 ;port b LA001 = $A001 ;port a LA002 = $A002 ;portb data direction LA003 = $A003 ;porta data direction LA004 = $A004 LA005 = $A005 LA008 = $A008 LA009 = $A009 LA00B = $A00B LA00C = $A00C LA00D = $A00D ;interupt flag register LA00E = $A00E LF104 = $F104 LF12C = $F12C LFD80 = $FD80 LFE80 = $FE80 ; ; Start of code ; *= $F000 ; RESET: lda #$3C ldx #$00 txs cld txa LF007: sta $00,X inx bne LF007 ;blank zero page ldy #$07 sty L0003 LF010: tay LF011: sta (L0002),Y iny bne LF011 dec L0003 bne LF010 ;blank rest of ram lda #$03 sta L8002 ;reset 1st 6850 sta L8004 ;reset 2nd 6850 lda #$54 ;8bits, no parity, 1 stop bit sta L8002 ;RTS high,disable tran int logic lda #$55 ;8 bits, no parity, 1stop bit sta L8004 ; rts high disable tran int logic. /16 clock lda #$00 ;set port a to input sta LA003 ;port a data dir reg lda LA001 ;load current state of port a sta L0010 ;save sta L00F7 lda #$FF ;set port b to all output sta LA002 ;port b data dir reg lda #$01 ; sta LA000 ;6522? lda #$0C ; ca2 low. cb2 input. irq high to low cb1 sta LA00C ;irq ca1 high to low lda #$40 ;counter out pb7. one shot sta LA00B lda #$7F sta LA00E cli ldx #$06 stx L0020 jsr LF4EA LF059: lda #$00 sta L000D sta L0006 sta L0007 lda LA00C ora #$01 sta LA00C lda #$82 sta LA00E LF06E: jsr LF082 lda L0025 beq LF078 jsr LF2C5 LF078: lda L0007 beq LF06E jsr LF092 jmp LF059 LF082: lda L0029 beq LF091 inc L002A bne LF091 inc L002B bpl LF091 jsr LF3A2 LF091: rts LF092: ldx #$00 jsr LF34A cmp L00F4 bne LF101 lda L00F0 cmp #$70 bne LF0D3 lda #$01 sta L002C jsr LF37F ldx #$00 LF0AA: lda LF102,X ;load command from rom beq LF0B9 ;branch at end of commands no match cmp L00F1 ;compare with command list beq LF0C1 ;branch if equal inx ; point inx ;to next inx ;command in list jmp LF0AA ;go loop LF0B9: lda #$4E ;Error jsr LF403 jmp LF101 LF0C1: txa pha lda #$41 ;Ack jsr LF403 ; send Ack pla tax lda LF104,X pha lda LF103,X pha rts ;go to command LF0D3: ldx L002C bne LF101 cmp #$31 bne LF0FD lda L00F1 cmp #$53 bne LF0EE inc L002D ldx L002D cpx #$08 bne LF101 ldx #$00 jmp LF0C1 LF0EE: cmp #$52 bne LF0FD ldx L002D cpx #$08 bne LF0FD ldx #$03 jmp LF0C1 LF0FD: lda #$01 sta L002C LF101: rts LF102: .byte $53 ;status LF103: .WORD STATUS -1 .BYTE $44 ;D .WORD LF210 -1 .byte $57 ;W .WORD WRITE -1 .byte $52 ;R .WORD READ -1 .byte $30 ;0 .WORD LF251 -1 .BYTE $31 ;1 .WORD LF280 -1 .BYTE $33 ;3 .WORD STATUS -1 .BYTE $34 ;4 .WORD WRITE -1 .BYTE $35 ;5 .WORD READ -1 .BYTE $36 ;6 .WORD LF280 -1 .byte $00 LF121: .BYTE $05,$05,$81,$05 .BYTE $84,$84,$84,$84 .BYTE $84,$84 LF12B: .BYTE $F0 LF12C: .BYTE $00 LF12D: .BYTE $F5,$00,$03,$02 .BYTE $84,$02,$00,$02 .byte $89,$02,$0D,$03 .BYTE $91,$03,$15,$04 .byte $99,$04 STATUS: JSR LF175 ;send complete adc L00F1,X lda L0010 ldy L00F1 cpy #$33 bne LF15D ldx L0020 lda #$00 sta L00F5,X sta L0029 jsr LF4EA lda L00F6 and #$7F sta L00F6 lda L0028 LF15D: sta L00F7 ldx #$01 jsr LF34A sta (L0009),Y ldx #$01 LF168: lda L0008 beq LF168 jsr LF3DF jsr LF2C0 jmp LF101 LF175: lda #$01 jsr LF37F lda #$43 ;Complete jsr LF403 lda #$01 jsr LF389 rts WRITE: lda #$01 jsr LF37F ldx #$02 jsr LF3BE LF18F: lda L000E beq LF18F ldx #$02 jsr LF34A cmp (L0009),Y beq LF1A3 lda #$4E bne LF1C2 jmp LF101 LF1A3: lda #$41 jsr LF403 lda L0010 sta L0201 lda L001E and #$60 ora #$03 sta L0202 ldx #$04 lda L00F3 sta L0200 lda #$03 jsr LF40A LF1C2: jsr LF403 jsr LF2C0 jmp LF101 READ: jsr LF175 lda L0020 asl A tax lda LF12B,X clc adc #$02 sta L0009 sta L000B lda LF12C,X adc #$00 sta L000A sta L000C lda #$82 jsr LF35B sta (L0009),Y sty L0005 LF1EE: lda L0008 beq LF1EE jsr LF3F2 jsr LF2C0 ldy #$00 lda (L0009),Y and #$7F sta (L0009),Y sta L00F6 ldx L0020 lda #$00 sta L0029 sta L00F5,X jsr LF4EA jmp LF101 LF210: jsr LF175 dec L00F2 lda L00F2 asl A tax lda LF241,X sta L0009 sta L000B lda LF242,X sta L000A sta L000C lda #$81 jsr LF35B ;add chksum pha ;save chksum dey sty L0005 LF230: lda L0008 beq LF230 jsr LF3F2 ;send byte jsr LF2C0 pla jsr LF403 jmp LF101 LF241: .byte $00 LF242: .byte $FC,$80,$FC,$00 .BYTE $FD,$80,$FD .byte $00 .BYTE $FE,$80,$FE .byte $00,$FF,$80,$FF LF251: lda #$01 jsr LF37F lda #$43 ;Complete jsr LF403 lda L00F3 sta L0021 beq LF26E lda #$40 ora L001E sta L001E lda #$40 ora L00F6 jmp LF278 LF26E: lda L001E and #$BF sta L001E lda L00F6 and #$BF LF278: sta L00F6 jsr LF2C0 jmp LF101 LF280: lda #$01 jsr LF37F lda L00F2 sta L0287 lda L00F3 ldx #$02 ldy L00F1 cpy #$36 bne LF296 ldx #$05 LF296: jsr LF2A9 ldx #$03 lda #$03 jsr LF40A jsr LF403 jsr LF2C0 jmp LF101 LF2A9: sta L0284 lda L001E and #$60 sta L0286 txa ora L0286 sta L0286 lda L0010 sta L0285 rts LF2C0: lda L0024 bne LF2C0 rts LF2C5: lda #$01 jsr LF389 jsr LF36A cmp (L0009),Y beq LF2D9 LF2D1: ldx L001F lda #$00 sta L00F5,X beq LF32B LF2D9: ldy #$02 lda (L0009),Y and #$0F cmp #$05 bne LF2EC dey lda (L0009),Y jsr LF333 jmp LF2D1 LF2EC: lda L001F cmp #$07 bcs LF2FE ldy #$01 lda (L0009),Y ldx L0021 beq LF304 cmp L0021 beq LF304 LF2FE: jsr LF337 jmp LF2D1 LF304: sta L00F8 iny lda (L0009),Y and #$0F ora #$80 ora L001E sta L00F6 sta (L0009),Y and #$0F cmp #$02 bne LF31E iny lda (L0009),Y sta L0028 LF31E: lda L00F8 jsr LF333 jsr LF3A2 ldx L001F stx L0020 inx LF32B: jsr LF4EA lda #$00 sta L0025 rts LF333: ldx #$00 beq LF339 LF337: ldx #$01 LF339: jsr LF2A9 lda #$00 sta L0287 ldx #$03 LF343: ldy L0008 beq LF343 jmp LF40A LF34A: ldy LF121,X txa asl A tax lda LF12B,X sta L0009 lda LF12C,X sta L000A tya LF35B: tax dex lda #$00 tay clc LF361: adc (L0009),Y ;add chksum ? iny dex bne LF361 adc #$00 rts LF36A: lda L001F asl A tax lda LF12B,X sta L0009 lda LF12C,X sta L000A ldx L001F lda L00F5,X jmp LF35B LF37F: jsr LF389 LF382: lda L0008 beq LF382 dec L0008 rts LF389: php sei sta L000F lda #$80 sta LA004 lda #$07 sta LA005 lda #$C0 sta LA00E lda #$00 sta L0008 plp rts LF3A2: lda LA00C and #$F1 ora #$0E sta LA00C and #$F1 ora #$0C ldy #$02 sty L0029 ldy #$00 sty L002A sty L002B sta LA00C rts LF3BE: lda LF121,X sta L0001 txa asl A tax lda LF12B,X sta L0002 lda LF12C,X sta L0003 lda #$00 sta $00 sta L000E lda L8005 lda #$D5 sta L8004 rts LF3DF: ldy LF121,X dey sty L0005 txa asl A tax lda LF12B,X sta L000B lda LF12C,X sta L000C LF3F2: ldy #$00 lda (L000B),Y LF3F6: sty L0004 ldx #$35 stx L0024 stx L8004 sta L8005 ;send byte 6850 rts ;send on sio buss LF403: ldy #$00 sty L0005 jmp LF3F6 LF40A: sta L001D stx L001C jsr LF34A sta (L0009),Y lda L001F sta L0023 lda L0025 sta L0022 ldy #$00 lda (L0009),Y bne LF423 sta L001D LF423: ldx L001C jsr LF51F lda #$05 jsr LF389 LF42D: lda L0019 beq LF437 lda L0008 beq LF42D bne LF460 LF437: lda L001B beq LF441 jsr LF4D4 jmp LF423 LF441: lda L001D bne LF448 lda #$43 rts LF448: lda #$0A jsr LF389 LF44D: ldx #$05 lda #$00 sta L00F5,X jsr LF4EA LF456: ldx #$05 lda L00F5,X bne LF46E lda L0008 beq LF456 LF460: dec L001D bne LF423 lda L00F5 ora #$80 sta L00F5 lda #$45 bne LF4AB LF46E: jsr LF36A cmp (L0009),Y bne LF44D ldy #$00 lda (L0009),Y cmp L0010 bne LF44D iny lda (L0009),Y ldy #$00 cmp (L0017),Y bne LF44D ldy #$02 lda (L0009),Y and #$0F cmp #$01 beq LF4C2 cmp #$00 bne LF44D lda L00F5 and #$7F sta L00F5 lda L00F6 and #$DF sta L00F6 lda (L0009),Y and #$40 lsr A ora L00F6 sta L00F6 lda #$43 LF4AB: pha ldx L001F ldy #$00 sty L00F5,X ldx L0023 jsr LF4EA lda L0022 sta L0025 lda #$40 sta LA00E pla rts LF4C2: lda L00F6 and #$DF sta L00F6 lda (L0009),Y and #$40 lsr A ora L00F6 sta L00F6 jmp LF44D LF4D4: lda LA008 sta LA008 lda LA009 and #$1F sta LA009 LF4E2: lda LA00D and #$20 beq LF4E2 rts LF4EA: lda L8002 and #$04 beq LF4EA lda LA000 ora #$01 sta LA000 lda LF121,X sta L0012 stx L001F txa asl A tax lda LF12B,X sta L0013 lda LF12C,X sta L0014 ldx L001F lda L8003 lda #$00 sta L0011 lda LA000 and #$FE sta LA000 rts LF51F: lda LF121,X sta L0016 txa asl A tax lda LF12B,X sta L0017 lda LF12C,X sta L0018 ldy #$00 sty L001B sty L0027 LF537: lda L8002 and #$04 beq LF537 sei lda LA000 and #$FE tax ora #$01 sta LA000 lda (L0017),Y sta L8003 iny sty L0015 sty L0019 lda L8003 lda #$14 stx LA000 sta L8002 cli rts NMI: bit L0026 bpl LF566 rti LF566: dec L0026 pha tya pha lda L0019 beq LF5D3 LF56F: lda L8002 ror A bcs LF591 ror A bcs LF581 ror A bcs LF5A4 ror A bcc LF56F jmp LF613 LF581: ldy L0015 cpy L0016 beq LF5A6 lda (L0017),Y sta L8003 ;send byte lan inc L0015 jmp LF56F LF591: ldy L0027 lda L8003 cmp (L0017),Y bne LF5A4 cpy #$01 beq LF5B5 inc L0027 bne LF56F beq LF5A6 LF5A4: inc L001B LF5A6: ldy #$0C LF5A8: dey bne LF5A8 sty L0019 lda #$54 sta L8002 jmp LF613 LF5B5: ldy L0015 LF5B7: cpy L0016 beq LF5A6 LF5BB: lda L8002 ror A ror A bcc LF5CE lda (L0017),Y sta L8003 ;send byte lan iny sty L0015 bne LF5B7 beq LF5A6 LF5CE: ror A bcc LF5BB bcs LF5A6 LF5D3: ldy L001F lda L00F5,Y bne LF613 ldy L0011 LF5DC: lda L8002 ror A bcc LF5ED lda L8003 beq LF600 cmp L0010 beq LF600 bne LF613 LF5ED: and #$02 beq LF5DC bne LF613 LF5F3: cpy L0012 beq LF60B LF5F7: lda L8002 ror A bcc LF607 lda L8003 ;get byte from lan LF600: sta (L0013),Y iny sty L0011 bne LF5F3 LF607: and #$02 beq LF5F7 LF60B: tya ldy L001F sta L00F5,Y sta L0025 LF613: pla tay pla inc L0026 rti IRQ: pha txa pha tya pha lda LA00D bmi LF633 lda L8004 bmi LF64A lda L8002 bmi LF65C LF62D: pla tay pla tax pla rti LF633: tax and #$02 beq LF63B jmp LF662 LF63B: txa and #$40 beq LF643 jmp LF685 LF643: lda #$BD sta LA00D bne LF62D LF64A: ldx L0024 ;consol beq LF655 and #$02 beq LF62D jmp LF6B4 LF655: and #$71 beq LF62D jmp LF696 LF65C: lda L8003 ;lan jmp LF62D LF662: lda L0006 bne LF678 inc L0006 ldx #$00 jsr LF3BE lda LA00C and #$FE sta LA00C jmp LF67F LF678: inc L0007 lda #$02 sta LA00E LF67F: lda LA001 jmp LF62D LF685: dec L000F bne LF690 inc L0008 lda #$40 sta LA00E LF690: lda LA004 jmp LF62D LF696: and #$70 ;recieve sio byte beq LF69C inc L000D LF69C: lda L8005 ldy $00 sta (L0002),Y iny sty $00 cpy L0001 bne LF6B1 inc L000E lda #$55 sta L8004 LF6B1: jmp LF62D LF6B4: ldy L0004 ;send sio byte cpy L0005 beq LF6C5 iny sty L0004 lda (L000B),Y sta L8005 jmp LF6D1 LF6C5: lda #$55 sta L8004 lda #$00 sta L0024 lda L8005 LF6D1: jmp LF62D ;----------------------------------------- ; $FC00 ;consol code *= $0700 ; BEGIN .byte $00 .BYTE $05 .WORD BEGIN .WORD START clc rts START lda #$5F sta VPRCED lda #$08 sta VPRCED+1 lda #$00 sta L08BF lda PACTL ora #$01 sta PACTL lda #$2F sta DOSVEC lda #$07 sta DOSVEC+1 lda #$C9 ldy #$08 jsr L0844 rts L072F: ldx #$10 lda #$03 sta IOCB0+ICCOM,X lda #$BB sta IOCB0+ICBAL,X lda #$08 sta IOCB0+ICBAH,X lda #$04 sta IOCB0+ICAX1,X jsr CIOV L0748: lda #$C0 ldy #$08 jsr L0844 L074F: lda CH ;get key press cmp #$FF bne L075E lda L08BF ; proceed on sio flag beq L074F ;wait loop jmp L0777 ;get data from lan L075E: jsr L0827 ; keyboard input sta DAUX1 jsr L0839 lda #$9B jsr L0839 jsr L086C bpl L0777 lda #$F0 ldy #$08 bne L078E L0777: jsr L088F bmi L07B8 lda L0400 cmp #$FF bne L0794 lda L0401 cmp #$FF bne L0794 lda #$E2 ldy #$08 L078E: jsr L0844 jmp L0748 L0794: lda #$07 sta RUNAD lda #$07 sta RUNAD+1 lda #$FF sta L08BD sta L08BE ldx #$10 lda #$0C sta IOCB0+ICCOM,X jsr CIOV jmp L07C2 L07B3: jsr L088F bpl L07C2 L07B8: lda #$FE ldy #$08 jsr L0844 jmp L072F L07C2: ldx L0401 lda L0400 cmp L08BD bne L07D2 cpx L08BE beq L07B3 L07D2: sta DAUX1 sta L08BD stx L08BE lda L0402 beq L081B lda L0400 sta RAMLO lda L0401 sta RAMLO+1 lda #$07 sta INITAD lda #$07 sta INITAD+1 lda L0402 and #$7F tay tax dey L07FC: lda L0403,Y sta (RAMLO),Y dey bpl L07FC clc txa adc RAMLO sta RAMLO lda RAMLO+1 adc #$00 sta RAMLO+1 bit L0402 bpl L0818 jsr L0821 L0818: jmp L07B3 L081B: jsr L0824 jmp L072F L0821: jmp (INITAD) L0824: jmp (RUNAD) L0827: ldx #$10 lda #$00 sta IOCB0+ICBLL,X sta IOCB0+ICBLH lda #$07 sta IOCB0+ICCOM,X jmp CIOV L0839: pha ldx #$00 txa sta IOCB0+ICBLL,X pla jmp CIOV L0844: ldx #$00 sta IOCB0+ICBAL,X tya sta IOCB0+ICBAH,X lda #$09 sta IOCB0+ICCOM,X lda #$00 sta IOCB0+ICBLH,X lda #$28 sta IOCB0+ICBLL,X jmp CIOV VPROCDV inc L08BF lda PACTL ora #$01 sta PACTL pla rti L086C: jsr L087C lda #$31 ;1 sta DCOMND lda #$00 sta DSTATS jmp SIOV L087C: lda #$70 ;device id sta DDEVIC lda #$01 sta DUNIT sta DTIMLO lda #$FF sta DAUX2 rts L088F: lda L08BF beq L088F lda #$00 sta L08BF sta DBYTHI jsr L087C lda #$FF sta DBUFLO lda #$03 sta DBUFHI lda #$52 ;Read sta DCOMND lda #$40 sta DSTATS lda #$81 sta DBYTLO jmp SIOV .byte "K:" L08BD: .byte $00 L08BE: .byte $00 L08BF: .byte $00 L08C0: .BYTE "FILE # ?" .BYTE $9B .BYTE $C1 ;inverse A .byte "TARI " .BYTE $CC ;inverse L .BYTE "OCAL " .BYTE $C1 .BYTE "rea " .BYTE $CE .BYTE "ETWORK" .BYTE $9B .BYTE "** NO FILE **" .BYTE $9B .BYTE "** XMT ERR **" .byte $9B .BYTE "** READ ERR **" .BYTE $9B *=$FFFA .WORD NMI .WORD RESET .WORD IRQ
  10. Are you sure about that? The only oss cart that uses 64k is basic XE. I do believe it will still work on an 800. James Nope, double checked, Mac65 and ACTION! don't work on 800. The ROM dumps of them are 16K, I believe they use RAM under $C000,$CFFF. (I'm having trouble with this post, may get several.) Only basic XE uses ram under the roms only when extensions are loaded and the XE extra ram banks if avilable. All other oss carts don't. If they don't work, then there is a problem somewhere. There is a small timing difference between the 800 and the xl/xe with regards to the r/w signal tho that shouldn't affect the oss cart. The oss carts are bank select type. the upper 4K remains where it is, the lower 4K is switched between 3 4K banks to make up the 16K. James
  11. Are you sure about that? The only oss cart that uses 64k is basic XE. I do believe it will still work on an 800. James Nope, double checked, Mac65 and ACTION! don't work on 800. The ROM dumps of them are 16K, I believe they use RAM under $C000,$CFFF. (I'm having trouble with this post, may get several.) Only basic XE uses ram under the roms only when extensions are loaded and the XE extra ram banks if avilable. All other oss carts don't. If they don't work, then there is a problem somewhere. There is a small timing difference between the 800 and the xl/xe with regards to the r/w signal tho that shouldn't affect the oss cart. The oss carts are bank select type. the upper 4K remains where it is, the lower 4K is switched between 3 4K banks to make up the 16K. James
  12. Are you sure about that? The only oss cart that uses 64k is basic XE. I do believe it will still work on an 800. James Nope, double checked, Mac65 and ACTION! don't work on 800. The ROM dumps of them are 16K, I believe they use RAM under $C000,$CFFF. (I'm having trouble with this post, may get several.) Only basic XE uses ram under the roms only when extensions are loaded and the XE extra ram banks if avilable. All other oss carts don't. If they don't work, then there is a problem somewhere. There is a small timing difference between the 800 and the xl/xe with regards to the r/w signal tho that shouldn't affect the oss cart. The oss carts are bank select type. the upper 4K remains where it is, the lower 4K is switched between 3 4K banks to make up the 16K. James
  13. From what I have read, it sounds like the atr8000 is working. The device buffers the printer output. You will need to find some 360K 5.25 drives (like in the xf551 if you want one to quickly test) and a floppy cable. The atr does't use gold plated contacts so you may need to clean them before use. you can roll your own cables if you want . James
  14. Are you sure about that? The only oss cart that uses 64k is basic XE. I do believe it will still work on an 800. James
  15. I have replaced a broken pin with same size copper wire. Will work but copper will tarnish after a while. Try your best to round off the end of the wire. Pin 2 isn't used by any atari device that I know of. Most if not all 3rd party floppy drives don't make use of clock out either.Some of the newer 3rd party devices may use clock out. Best to try and see if sio2usb works before trying to fix the sio port. James
  16. They were never released as far as I know. Mitch Very interesting information about the Salt cart. Also confirms the fact That I have yet to find a PAL 400/800 with rev B roms. Here is the fixced (and hopefully final version) of the rev B rom. James ATARIOSBpal.zip
  17. I have checked $FCD8 and it does contain $A2. The other 2 locations however, I cannot find any referance to them in the OS Source listing (yet) so they are either chksum bytes used by Salt or id bytes. Have updated the rom file, if anyone wants a copy of it, please let me know James
  18. After much frustration and head sctatching, I finally managed to workout how to print from Syn Assembler a Listing of the code entered ,and into a text editor on the PC. I have seperated out the ramdisk routine from Superdos for others to look at as I haven't seen any other ramdisk routine from any other dos to campare with. What speed improvements (if any) can be done? Supports 5 types of ramdisk including AXLON and compatiables. James P.S I do have the full source for superdos 5.1 Got it many years ago from a co writer. 02660 BUFSET LDA DBUFLO 02670 STA BUFRLO 02680 LDA DBUFHI 02690 STA BUFRHI 02700 RTS 02840 ONOFF64 JSR ONOFFX 02850 ONOFFAX LDA #0 02860 AXBK1 .EQ *-1 02870 PHA 02880 LDA #0 02890 AXBK2 .EQ *-1 02900 STA AXBK1 02910 PLA 02920 STA AXBK2 02930 STA AXLON *$CFFF 02940 RTS 02950 ONOY STY CHKSUM 02960 ONOFFX LDA PORTB 02970 EOR CHKSUM 02980 STA PORTB 02990 RTS 03000 D1MAX .HS 01D101D101 03010 D2MAX .HS 0202040204 03020 MMSK .HS 40C060 03030 RAMDRIVE JSR BUFSET *RAMDISK entry** 03040 LDY #0 03050 RDCURS .EQ *-1 03060 BEQ .14 03070 TYA 03080 LDX DCOMND 03090 CPX #'S 03100 BEQ .15 03110 LDA D1MAX-1,Y 03120 CMP DAUX1 03130 LDA D2MAX-1,Y 03140 SBC DAUX2 03150 BCC .14 03160 LDX DAUX2 03170 LDY DAUX1 03180 DEY 03190 CPY #$FF 03200 BNE .1 03210 DEX 03220 BPL .1 03230 .14 LDA #$8B *SECTOR ERROR 03240 .15 JMP R13 03250 .1 STY BFENHI 03260 STY CHKSUM 03270 LDA #0 03280 LDY DBYTHI 03290 STY TSTAT 03300 BNE .2 03310 LSR BFENHI 03320 ROR 03330 .2 STA BFENLO 03340 TXA 03350 .4 ASL CHKSUM 03360 ROL 03370 LSR TSTAT 03380 BCS .4 03390 TAX 03400 INX 03410 INX 03420 STX AXBK1 03430 CMP #8 03440 BCC NW7 03450 ORA #0 03460 NEWELL .EQ *-1 03470 NW7 CLC 03480 ADC #0 03490 FIRST64 .EQ *-1 03500 ASL 03510 ASL 03520 PHA 03530 AND #$0C 03540 STA CHKSUM 03550 PLA 03560 ASL 03570 LDX #$0 03580 ALIEN .EQ *-1 03590 CPX #1 03600 BEQ .16 03610 ASL 03620 .16 INX 03630 AND MMSK,X 03640 ORA CHKSUM 03650 EOR #$FF 03660 AND PORTB 03670 SEI 03680 PHA 03690 JSR HARDOFF * turn off hardware interupts 03700 PLA 03710 STA PORTB 03720 LDA #$10 03730 STA CHKSUM 03740 LDA BFENHI 03750 AND #$3F 03760 ORA #$40 03770 STA BFENHI 03780 BIT DSTATS 03790 BMI .3 03800 LDX #1 03810 .9 LDA BUFRLO,X 03820 LDY BFENLO,X 03830 STY BUFRLO,X 03840 STA BFENLO,X 03850 DEX 03860 BPL .9 03870 JSR ONOFF64 03880 .3 LDY #$00 03890 .6 LDA (BUFRLO),Y 03900 PHA 03910 JSR ONOFF64 03920 PLA 03930 STA (BFENLO),Y 03940 JSR ONOFF64 03950 INY 03960 CPY DBYTLO 03970 BNE .6 03980 JSR HARDON 03990 CLI 04000 LDA BRKKEY 04010 AND #$80 04020 EOR #$80 04030 R13 STA DSTATS 04040 TAY 04050 JMP TURNON 02060 TURNON LDA PORTB 02070 ORA #$FD *ENSURE 64KRAM 02080 STA PORTB 02090 RT1 LDA #0 02100 STA AXLON 02110 STA AXBK2 02120 HARDON LDX #$40 02130 LDA POKMSK 02140 HARDSW STX NMIEN 02150 STA IRQEN 02160 RSS RTS
  19. It is an electronic spider to get rid of those annoying computer bugs. James
  20. I have actually done this many years ago while tinkering, but I also removed the internal ram to avoid conflicts.. Will need to look at schematics to which gate(s) to bridge. James
  21. No it doesn't. The 1st 16k is always internal, the rest is in the 1064. If you don't believe me, check out the schematics of both the 600xl and the 1064. James
  22. agreed... does anyone know a good how-to guide for the 64K internal mod? also, can the 1064 still work with the mod done? (i.e. still add 48K to the system?) It may, but best not to. The mod to 64k internal removes a chip that deselects the top 48K internal. The 1064 has circuitry to select the top 48K of address space for ram on the 1064. So any access to ram above 16K will be doubled up which may cause major errors. James
  23. Hi Rik, afik bug hunt requires at least 48k to run, if your 400 is standard then you only have 16k. XE is 8 bit like the 400, but with 64 or 128k as standard and a slightly different os. Bug hunt won't work on the 400 even if it was upgraded to 64K like an XL. The Light pen input is only avalible on joystick port 4. Strange but true. James
  24. Came across this today. Have yet to compare it to the NTSC version to see what is different. James
  25. It is possiable but as stated, they all have 16K of rom banked into 8k of space. As far as I know, there are 2 different versions of the oss carts and each is different with support chips and banking addresses. The first version (orange cart or label) has 2 8k roms. 2nd version has a single 16K rom (yellow label). Each has different support chips to handle the bank selection and these need to be included. What I have done is to get the 4 yellow cart versions (Basic XL, XE,action and Mac65), burn them to a single 64K rom and modded one OSS cart to have all 4 in a single cart. Is easier then wireing one into the consol. james
×
×
  • Create New...