Mercurial > hg > Members > kono > nitros9-code
diff level2/modules/boot_1773.asm @ 0:6641a883d6b0
Initial revision
author | boisy |
---|---|
date | Thu, 04 Apr 2002 16:34:12 +0000 |
parents | |
children | 25c2f2c8f15f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level2/modules/boot_1773.asm Thu Apr 04 16:34:12 2002 +0000 @@ -0,0 +1,250 @@ +******************************************************************** +* Boot - WD1773 Boot module +* +* $Id$ +* +* Ed. Comments Who YY/MM/DD +* ------------------------------------------------------------------ +* 4 Original Tandy distribution version +* 6 Obtained from L2 Upgrade archive, has 6ms step BGP 98/10/12 +* rate and disk timeout changes + + nam Boot + ttl WD1773 Boot module + + ifp1 + use defsfile + endc + +* Step Rate: +* $00 = 6ms +* $01 = +* $02 = +* $03 = 30ms +STEP equ $00 + +tylg set Systm+Objct +atrv set ReEnt+rev +rev set $01 +edition set 6 + + mod eom,name,tylg,atrv,start,size + +u0000 rmb 2 +u0002 rmb 2 +u0004 rmb 1 +u0005 rmb 1 +u0006 rmb 1 +u0007 rmb 1 +u0008 rmb 1 +u0009 rmb 1 +size equ . + +name fcs /Boot/ + fcb edition + +start clra + ldb #$0A +L0015 pshs a + decb + bne L0015 + tfr s,u + ldx #$FF48 + lda #$D0 + sta ,x + lbsr L01AA + lda ,x + lda #$FF + sta u0004,u + leax >NMIRtn,pcr + stx <D.NMI + lda #$09 + sta >$FF40 + ldd #$C350 +L003A nop + nop + subd #$0001 + bne L003A + pshs u,y,x,b,a + ldd #$0001 + os9 F$SRqMem + bcs L00AA + tfr u,d + ldu $06,s + std u0002,u + clrb + ldx #$0000 + bsr L00C7 + bcs L00AA + ldd $01,y + std u0007,u + lda <$10,y + sta u0005,u + anda #$01 + sta u0008,u + lda $03,y + sta u0006,u + ldd <$18,y + std ,s + ldx <$16,y + pshs x + ldd #256 + ldu u0002,u + os9 F$SRtMem + ldd $02,s + os9 F$BtMem + puls x + bcs L00AA + stu $02,s + ldu $06,s + ldd $02,s + std u0002,u + ldd ,s + beq L00A3 +L0091 pshs x,b,a + clrb + bsr L00C7 + bcs L00A8 + puls x,b,a + inc u0002,u + leax 1,x + subd #256 + bhi L0091 +L00A3 clrb + puls b,a + bra L00AC +L00A8 leas $04,s +L00AA leas $02,s +L00AC sta >$FFD9 + puls u,y,x + leas $0A,s + clr >$FF40 + rts +L00B7 lda #$29 + sta ,u + clr u0004,u + lda #$05 + lbsr L0170 + ldb #STEP + lbra L0195 +L00C7 lda #$91 + cmpx #$0000 + bne L00DF + bsr L00DF + bcs L00D6 + ldy u0002,u + clrb +L00D6 rts +L00D7 bcc L00DF + pshs x,b,a + bsr L00B7 + puls x,b,a +L00DF pshs x,b,a + bsr L00EA + puls x,b,a + bcc L00D6 + lsra + bne L00D7 +L00EA bsr L013C + bcs L00D6 + ldx u0002,u + orcc #IntMasks + pshs y + ldy #$FFFF + ldb #$80 + stb >$FF48 + ldb ,u + orb #$30 + tst u0009,u + beq L0107 + orb #$40 +L0107 stb >$FF40 + lbsr L01AA + orb #$80 + lda #$02 +L0111 bita >$FF48 + bne L0123 + leay -$01,y + bne L0111 + lda ,u + sta >$FF40 + puls y + bra L0138 +L0123 lda >$FF4B + sta ,x+ + stb >$FF40 + bra L0123 + +NMIRtn leas $0C,s + puls y + ldb >$FF48 + bitb #$04 + beq L018F +L0138 comb + ldb #E$Read + rts +L013C lda #$09 + sta ,u + clr u0009,u + tfr x,d + cmpd #$0000 + beq L016C + clr ,-s + tst u0008,u + beq L0162 + bra L0158 +L0152 com u0009,u + bne L0158 + inc ,s +L0158 subb u0006,u + sbca #$00 + bcc L0152 + bra L0168 +L0160 inc ,s +L0162 subb u0006,u + sbca #$00 + bcc L0160 +L0168 addb #$12 + puls a +L016C incb + stb >$FF4A +L0170 ldb u0004,u + stb >$FF49 + cmpa u0004,u + beq L018D + sta u0004,u + sta >$FF4B + ldb #$10+STEP + bsr L0195 + pshs x + ldx #$222E +L0187 leax -$01,x + bne L0187 + puls x +L018D clrb + rts +L018F bitb #$98 + bne L0138 + clrb + rts +L0195 bsr L01A8 +L0197 ldb >$FF48 + bitb #$01 + bne L0197 + rts +L019F lda ,u + sta >$FF40 + stb >$FF48 + rts +L01A8 bsr L019F +L01AA lbsr L01AD +L01AD lbsr L01B0 +L01B0 rts + +* Filler to get $1D0 +Filler fcb $39,$39,$39,$39,$39,$39,$39,$39,$39,$39,$39,$39,$39,$39,$39,$39 + fcb $39,$39,$39,$39,$39,$39,$39,$39,$39,$39,$39,$39 + + emod +eom equ * + end