Mercurial > hg > Members > kono > nitros9-code
changeset 398:2c1190feec28
Initial check in.
author | tlindner |
---|---|
date | Wed, 28 Aug 2002 03:04:13 +0000 |
parents | 11db60dd6366 |
children | 3ccac8049e18 |
files | 3rdparty/drivers/disto/cc3disk_sc2_slp.asm |
diffstat | 1 files changed, 565 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/3rdparty/drivers/disto/cc3disk_sc2_slp.asm Wed Aug 28 03:04:13 2002 +0000 @@ -0,0 +1,565 @@ +******************************************************************** +* CC3Disk - Disto No Halt Super Controller II disk driver +* +* $Id$ +* +* Ed. Comments Who YY/MM/DD +* ------------------------------------------------------------------ +* 02 None. + + nam CC3Disk + ttl os9 device driver + +* Disassembled 02/08/27 11:42:59 by Disasm v1.6 (C) 1988 by RML +level equ 2 + ifp1 + use defsfile + endc +tylg set Drivr+Objct +atrv set ReEnt+rev +rev set $02 + mod eom,name,tylg,atrv,start,size +u0000 rmb 1 +u0001 rmb 1 +u0002 rmb 1 +u0003 rmb 1 +u0004 rmb 1 +u0005 rmb 2 +u0007 rmb 1 +u0008 rmb 2 +u000A rmb 4 +u000E rmb 1 +u000F rmb 1 +u0010 rmb 2 +u0012 rmb 1 +u0013 rmb 31 +u0032 rmb 24 +u004A rmb 6 +u0050 rmb 47 +u007F rmb 11 +u008A rmb 28 +u00A6 rmb 1 +u00A7 rmb 10 +u00B1 rmb 13 +size equ . + fcb $FF +name equ * + fcs /CC3Disk/ + fcb $A2 " +start equ * + lbra L003C + lbra L0084 + lbra L010E + lbra L0081 + lbra L030F + leay >u00B1,u + ldx #$0000 + os9 F$VIRQ + os9 F$IRQ + clrb + stb >$FF40 + stb <u0032 + rts +L0039 fcb $00 + fcb $01 + fcb $09 +L003C clr >$FF76 + clr <u0032 + ldx #$FF48 + lda #$D0 + sta ,x + lbsr L02D9 + lda ,x + lda #$FF + sta >u00A7,u + ldb #$04 + leax u000F,u +L0057 sta ,x + sta <$15,x + leax <$26,x + decb + bne L0057 + leax >L01C0,pcr + fcb $9F Was: stx <u00FC + fcb $FC + pshs u + leau >u00A7,u + leay u000E,u + tfr y,d + leay >L0428,pcr + leax >L0039,pcr + os9 F$IRQ + puls u + bcs L0082 +L0081 clrb +L0082 rts +L0083 rts +L0084 lbsr L01E7 + clr u0003,u + ldd <u0010,u + bne L00D8 + bsr L00D8 + bcs L0083 + lda <$23,y + bita #$40 + lbne L043B + ldx $08,y + pshs y,x + ldy <$1E,y + ldb #$14 +L00A5 lda b,x + sta b,y + decb + bpl L00A5 + lda <$10,y + ldy $02,s + ldb <$24,y + bita #$02 + beq L00BD + bitb #$01 + beq L00D3 +L00BD bita #$04 + beq L00C5 + bitb #$02 + beq L00D3 +L00C5 bita #$01 + beq L00D0 + lda <$27,y + suba #$02 + bcs L00D3 +L00D0 clrb + puls pc,y,x +L00D3 comb + ldb #$F9 + puls pc,y,x +L00D8 lbsr L0257 + bcs L0083 + ldb #$80 + lda #$07 + lbsr L016C + bcc L00F6 + ldb >$FF48 + clr >$FF76 + lda u0001,u + ora #$08 + sta >$FF40 + lbra L01E3 +L00F6 ldx $08,y + ldb #$80 + tst u0003,u + bne L010B + pshs b +L0100 ldd >$FF74 + std ,x++ + dec ,s + bne L0100 + puls b +L010B andcc #$FE + rts +L010E lbsr L01E7 +L0111 bsr L0120 + bcs L011F + tst <$28,y + bne L011E + bsr L0144 + bcs L0111 +L011E clrb +L011F rts +L0120 lbsr L0257 + bcs L011F + ldx $08,y + lda #$04 + sta >$FF76 + ldb #$80 + pshs b +L0130 ldd ,x++ + std >$FF74 + dec ,s + bne L0130 + puls b + ldb #$A0 + lda #$06 + bsr L016C + lbra L01C4 +L0144 lda u0004,u + pshs a + clr u0004,u + lda #$FF + sta u0003,u + lbsr L00D8 + bcs L0167 + pshs b +L0155 ldd >$FF74 + cmpd ,x++ + bne L0163 + dec ,s + bne L0155 + bra L0165 +L0163 orcc #$01 +L0165 puls b +L0167 puls a + sta u0004,u + rts +L016C std u0008,u +L016E ldd u0008,u + bsr L018D + bcs L0179 + lbsr L01C4 + bcc L018C +L0179 lda >$FF48 + bita #$40 + bne L018B + lsr u0004,u + beq L018B + bcc L016E + lbsr L02E5 + bra L016E +L018B coma +L018C rts +L018D stb >$FF48 + sta >$FF76 + ldb #$28 + orb u0001,u + stb >$FF40 + ldb #$04 + lda #$FF + pshs x,a +L01A0 ldx #$0001 + lbsr L03C3 + dec ,s + beq L01B5 + tst >$FF76 + bmi L01A0 + stb >$FF76 + clrb + puls pc,x,a +L01B5 stb >$FF76 + lda #$D0 + sta >$FF48 + comb + puls pc,x,a +L01C0 leas $0C,s + puls y,cc +L01C4 ldb >$FF48 + clr >$FF76 + andb #$F8 + beq L01DC + pshs x + leax <L01DD,pcr +L01D3 leax $01,x + rolb + bcc L01D3 + ldb ,x + puls pc,x +L01DC clrb +L01DD rts + fcb $F6 + fcb $F2 + fcb $F5 + fcb $F7 + fcb $F3 +L01E3 fcb $53 + fcb $C6 + fcb $F4 + fcb $39 +L01E7 leau >u00A7,u + clr u0007,u + lda #$91 + sta u0004,u + tstb + bne L0203 + tfr x,d + std <u0010,u + beq L0225 + ldx <$1E,y + cmpd $01,x + bcs L0209 +L0203 comb + ldb #$F1 + leas $02,s + rts +L0209 clr ,-s + bra L020F +L020D inc ,s +L020F subd <$11,x + bcc L020D + addd <$11,x + lda <$10,x + lsra + bcc L0223 + lsr ,s + bcc L0223 + inc u0007,u +L0223 puls a +L0225 std u0005,u + clrb + rts +L0229 clr u0002,u + lda <$21,y + cmpa #$04 + bcs L0236 + comb + ldb #$F0 + rts +L0236 pshs x,b,a + cmpa ,u + beq L023E + com u0002,u +L023E sta ,u + leax <L024C,pcr + ldb a,x + stb u0001,u + lbsr L03DD + puls pc,x,b,a +L024C oim #$02,<u0004 + nega +L0250 pshs a + ldb <$15,x + bra L028E +L0257 lbsr L0229 + bcs L02B1 + ldd u0005,u + pshs a + lda u0007,u + beq L026A + lda u0001,u + ora #$40 + sta u0001,u +L026A lda <$23,y + bita #$02 + bne L0272 + incb +L0272 stb >$FF4A + ldx <$1E,y + ldb <$15,x + lda <$10,x + lsra + eora <$24,y + anda #$02 + pshs a + lda $01,s + tst ,s+ + beq L028E + lsla + lslb +L028E stb >$FF49 + tst u0002,u + bne L029C + ldb ,s + cmpb <$15,x + beq L02A8 +L029C sta >$FF4B + ldb <$22,y + andb #$03 + eorb #$1B + bsr L02B2 +L02A8 puls a + sta <$15,x + sta >$FF49 + clrb +L02B1 rts +L02B2 bsr L02D7 +L02B4 ldb >$FF48 + bitb #$01 + beq L02D9 + ldd #$00F0 + std u000A,u + pshs x + ldx #$0001 + lbsr L03C3 + puls x + bra L02B4 +L02CC lda #$08 + ora u0001,u + sta >$FF40 + stb >$FF48 + rts +L02D7 bsr L02CC +L02D9 clr <u0012,u + inc <u0012,u +L02DF rol <u0012,u + bpl L02DF + rts +L02E5 pshs x,b + lbsr L0229 + bcs L030D + ldx <$1E,y + clr <$15,x + lda #$04 +L02F4 ldb <$22,y + andb #$03 + eorb #$4B + pshs a + bsr L02B2 + puls a + deca + bne L02F4 + ldb <$22,y + andb #$03 + eorb #$0B + bsr L02B2 +L030D puls pc,x,b +L030F leau >u00A7,u + ldx $06,y + ldb $02,x + cmpb #$04 + beq L0323 + cmpb #$03 + beq L02E5 + comb + ldb #$D0 + rts +L0323 pshs u,y + ldd #$1A00 + os9 F$SRqMem + lbcs L0381 + ldx $02,s + stu <$13,x + ldx <u0050 + lda $06,x + ldb <L00D0 + ldy ,s + ldx $06,y + ldx $04,x + ldy #$1A00 + os9 F$Move + bcs L0372 + puls u,y + pshs u,y + lbsr L0229 + bcs L0372 + ldx $06,y + ldb $07,x + bitb #$01 + beq L0363 + lda u0001,u + ora #$40 + sta u0001,u + sta u0007,u +L0363 lda $09,x + ldx <$1E,y + lbsr L0250 + bcs L0372 + ldx <u0013,u + bsr L0383 +L0372 ldu $02,s + pshs b,cc + ldu <u0013,u + ldd #$1A00 + os9 F$SRtMem + puls b,cc +L0381 puls pc,u,y +L0383 pshs y,cc + orcc #$50 + ldb #$F0 + stb >$FF48 + ldy #$FFFF + ldb #$28 + orb u0001,u + stb >$FF40 + orb #$A8 + lda #$02 + lbsr L02D9 +L039E bita >$FF48 + bne L03B9 + leay -$01,y + bne L039E + lda u0001,u + ora #$08 + sta >$FF40 + lda #$D0 + sta >$FF48 + puls y,cc + comb + ldb #$F5 + rts +L03B9 lda ,x+ + sta >$FF4B + stb >$FF40 + bra L03B9 +L03C3 pshs b,a + ldd <u0050 + cmpd <u004A + puls b,a + beq L03D2 + os9 F$Sleep + rts +L03D2 ldx #$A000 +L03D5 nop + nop + nop + leax -$01,x + bne L03D5 + rts +L03DD pshs y,x,b,a + ldd #$00F0 + std u000A,u + lda u0001,u + ora #$08 + sta >$FF40 + ldx #$0028 + lda <u0032 + bmi L040A + beq L0408 + tst u0002,u + beq L040C + lda <$23,y + bita #$10 + beq L040C + bsr L03C3 + ldd #$00F0 + std u000A,u + bra L040C +L0408 bsr L03C3 +L040A bsr L040F +L040C clrb + puls pc,y,x,b,a +L040F lda #$01 + sta <u0032 + ldx #$0001 + leay u000A,u + clr $04,y + ldd #$00F0 + os9 F$VIRQ + bcc L0426 + lda #$80 + sta <u0032 +L0426 clra + rts +L0428 pshs a + lda <u008A + beq L0432 + bsr L040F + bra L0439 +L0432 sta >$FF40 + clr u000E,u + clr <u0032 +L0439 puls pc,a +L043B ldx <$1E,y + ldb #$14 +L0440 clr b,x + decb + bpl L0440 + ldb <$26,y + lda <$27,y + mul + subd #$0001 + lda <$2A,y + sta $03,x + sta <$12,x + mul + addd <$2B,y + std $01,x + lda #$07 + sta $0D,x + lda <$24,y + lsla + pshs a + lda <$27,y + deca + ora ,s+ + sta <$10,x + clrb + rts + emod +eom equ *