home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-03-09 | 18.3 KB | 1,284 lines |
-
- org $40000
- load $40000
-
- j move.w #$4000,$dff09a
- bsr.b c128
- move.w #$c000,$dff09a
- move.l #$c80000,a0
- move.l a0,a1
- add.l len(pc),a1
- rts
- len dc.l 0
- ; to read formatted tracks
- ;d0 = 4
- ;d1 = start trk
- ;d2 = length
- ;d3 = data adr
- ; to write formatted tracks
-
- ;d0 = 2
- ;d1 = start trk
- ;d2 = length
- ;d3 = data adr
-
-
-
- writeit moveq #2,d0 ;2,5 write
- move.l #[$1858*1],d1
- move.l #[$1858*121],d2
- move.l #$c70000,d3
- moveq #0,d4 ;drive
- BSR.B C146
- rts
-
- readit moveq #4,d0
- move.l #[$1600*1],d1
- move.l #[$1858*1],d2
- move.l #$c70000,d3
- moveq #0,d4 ;drive
- BSR.B C146
- rts
-
-
- C128 lea buf(pc),a0
- MOVE.L #3,D0
- MOVE.L #'PLIB',D1
- MOVE.L #'PD2A',D2
- BSR.B C146
- rts
-
- ostack dc.l 0
- tu dc.l buf
-
- c146 move.l tu(pc),a0
- lea -$30(a0),a0
- move.l a0,tu
- MOVEM.L D1-d7/a1-A6,-(SP)
- MOVEM.L L106C,A1/A5/A6
- MOVE.W #$8210,$96(A5)
- CMP.B #$FF,(A1)
- BNE.S C170
- CLR.B (A1)
- MOVE.L D0,-(SP)
- MOVEQ #0,D0
- BSR.B C146
- MOVE.L (SP)+,D0
- C170 CLR.W -12(A0)
- CLR.B -$1D(A0)
- CLR.B $36(A1)
- CLR.B -$1E(A0)
- MOVE.L $100.w,$2A(A1)
- MOVE.W #$1600,-10(A0)
- CMP.W #8,D0
- BCS.S C198
- MOVEQ #7,D0
- BRA.S C1B2
-
- C198 LEA W01BE,A2
- ADD.W D0,D0
- MOVE.W 0(A2,D0.W),D0
- PEA C1B2
- PEA 0(A2,D0.W)
- MOVEQ #0,D0
- RTS
-
- C1B2 ST $32(A1)
- MOVEM.L (SP)+,D1-d7/a1-A6
- lea $30(a0),a0
- move.l a0,tu
- rts
-
-
- W01BE dc.w C1CC-W01BE,C258-W01BE
- dc.w C29A-W01BE,C3C0-W01BE
- dc.w C1F6-W01BE,C300-W01BE
- dc.w C362-W01BE
-
- C1CC BSR.W CD50
- BRA.S C1E0
-
- C1D4 BSR.W CDDC
- TST.W -2(A0)
- BEQ.S C1F4
- C1E0 BSR.W CC00
- BSR.W CAC8
- BSR.W CC16
- BRA.S C1D4
-
- C1F4 RTS
-
- C1F6 DIVU -10(A0),D1
- MOVE.W D1,-8(A0)
- SWAP D1
- AND.W #$FFFE,D1
- MOVE.W D1,-6(A0)
- MOVE.L D2,$16(A1)
- MOVE.L D3,-$1C(A0)
- CMP.L #3,D4
- BLS.S C228
- MOVE.L D4,-$14(A0)
- BSR.W CDF2
- TST.L D0
- BNE.S C256
- BRA.S C22C
-
- C228 MOVE.W D4,-2(A0)
- C22C CLR.B -$1D(A0)
- BSR.W CC00
- BSR.W CB0C
- BSR.W CC34
- MOVEQ #0,D0
- MOVE.W #5,-12(A0)
- BSR.W C50C
- BSR.W CC16
- C256 RTS
-
- C258 MOVE.L D1,-$10(A0)
- MOVE.L D2,-$14(A0)
- MOVE.L D3,-$1C(A0)
- BSR.W CDF2
- BSR.W CCB6
- TST.L D0
- BNE.S C298
- CLR.B -$1D(A0)
- BSR.W CC00
- BSR.W CB0C
- BSR.W CC34
- MOVEQ #0,D0
- BSR.W C41C
- BSR.W CC16
- C298 RTS
-
- C29A DIVU -10(A0),D1
- MOVE.W D1,-8(A0)
- SWAP D1
- TST.W D1
- BNE.S C2FC
- MOVE.L D2,$16(A1)
- MOVE.L D3,$1A(A1)
- CMP.L #3,D4
- BLS.S C2C8
- MOVE.L D4,-$14(A0)
- BSR.W CDF2
- TST.L D0
- BNE.S C2FE
- BRA.S C2CC
-
- C2C8 MOVE.W D4,-2(A0)
- C2CC BSR.W CC00
- BSR.W CA38
- BSR.W CC00
- BSR.W CB0C
- BSR.W CC34
- MOVEQ #0,D0
- BSR.W C728
- BNE.S C2FE
- BSR.W CC16
- RTS
-
- C2FC MOVEQ #1,D0
- C2FE RTS
-
- C300 DIVU -10(A0),D1
- MOVE.W D1,-8(A0)
- SWAP D1
- TST.W D1
- BNE.S C2FC
- MOVE.L D2,$16(A1)
- CMP.L #3,D4
- BLS.S C32A
- MOVE.L D4,-$14(A0)
- BSR.W CDF2
- TST.L D0
- BNE.S C2FE
- BRA.S C32E
-
- C32A MOVE.W D4,-2(A0)
- C32E BSR.W CC00
- BSR.W CA38
- BSR.W CC00
- BSR.W CB0C
- BSR.W CC34
- MOVEQ #0,D0
- ST $36(A1)
- BSR.W C728
- BNE.S C2FE
- BSR.W CC16
- RTS
-
- C362 ST -$1E(A0)
- DIVU -10(A0),D1
- MOVE.W D1,-8(A0)
- SWAP D1
- AND.W #$FFFE,D1
- MOVE.W D1,-6(A0)
- MOVE.L D2,$16(A1)
- CMP.L #3,D4
- BLS.S C394
- MOVE.L D4,-$14(A0)
- BSR.W CDF2
- TST.L D0
- BNE.S C3BE
- BRA.S C398
-
- C394 MOVE.W D4,-2(A0)
- C398 BSR.W CC00
- BSR.W CB0C
- BSR.W CC34
- MOVEQ #0,D0
- MOVE.W #5,-12(A0)
- BSR.W C50C
- BSR.W CC16
- C3BE RTS
-
- C3C0 MOVE.L D1,-$10(A0)
- CMP.L #$4449534B,D1
- BEQ.S C3EC
- CMP.L #$524F4F54,D1
- BEQ.S C3EC
- MOVE.L D2,-$14(A0)
- BSR.W CC88
- TST.B -$1D(A0)
- BNE.S C3FA
- BSR.W CDF2
- BRA.S C3F0
-
- C3EC MOVE.W D2,-2(A0)
- C3F0 BSR.W CCB6
- TST.L D0
- BNE.S C41A
- C3FA BSR.W CC00
- BSR.W CB0C
- BSR.W CC34
- MOVEQ #0,D0
- BSR.W C50C
- BSR.W CC16
- C41A RTS
-
- C41C TST.L D0
- BNE.W C4D2
- C422 MOVE.W -12(A0),D2
- BNE.S C442
- MOVE.L #2,$16(A1)
- BSR.W C698
- MOVE.L -$1C(A0),A2
- MOVE.W -2(A2),-12(A0)
- BRA.S C422
-
- C442 CMP.W #8,D2
- BCC.B C4D0
- CMP.W #4,D2
- BEQ.S C48E
- CMP.W #6,D2
- BEQ.S C49E
- LSL.W #3,D2
- LEA L04D4,A3
- MOVE.L 0(A3,D2.W),$16(A1)
- MOVE.L -$1C(A0),A2
- MOVEM.L D2/A2/A3,-(SP)
- BSR.W C698
- MOVEM.L (SP)+,D2/A2/A3
- MOVE.L 4(A3,D2.W),D2
- BMI.S C488
- MOVE.L 0(A2,D2.W),$16(A1)
- BSR.W C698
- C488 CLR.W -12(A0)
- BRA.S C41C
-
- C48E MOVE.L #4,$16(A1)
- BSR.W C698
- RTS
-
- C49E MOVE.L -$1C(A0),A2
- MOVE.L #8,$16(A1)
- BSR.W C698
- C4B0 MOVE.L #8,$16(A1)
- BSR.W C698
- CMP.L #$FFFFFFFF,-8(A2)
- BNE.S C4B0
- CLR.W -12(A0)
- BRA.W C41C
-
- C4D0 MOVEQ #8,D0
- C4D2 RTS
-
- L04D4 dc.l 2,$FFFFFFFF,8,4,8,$FFFFFFFF,4,$FFFFFFFF,4
- dc.l $FFFFFFFF,8,$FFFFFFFF,8,$FFFFFFFF
-
- C50C TST.L D0
- BNE.S C532
- MOVE.W -12(A0),D2
- CMP.W #8,D2
- BCC.S C530
- ADD.W D2,D2
- LEA W0534,A3
- MOVE.W 0(A3,D2.W),D2
- PEA C50C
- JMP 0(A3,D2.W)
-
- C530 MOVEQ #8,D0
- C532 RTS
-
- W0534 dc.w C544-W0534,C55A-W0534
- dc.w C596-W0534,C606-W0534
- dc.w C63C-W0534,C660-W0534
- dc.w C66A-W0534,C5B6-W0534
-
- C544 MOVE.L #2,$16(A1)
- PEA -12(A0)
- MOVE.L (SP)+,-$1C(A0)
- JMP C698
-
- C55A MOVE.L #8,$16(A1)
- PEA $1E(A1)
- MOVE.L (SP)+,-$1C(A0)
- BSR.W C698
- MOVE.L $1E(A1),-$1C(A0)
- BCLR #7,$1E(A1)
- BEQ.S C586
- MOVE.L $2A(A1),D1
- ADD.L D1,-$1C(A0)
- C586 MOVE.L $22(A1),$16(A1)
- CLR.W -12(A0)
- ;move.l #$c80000,-$1c(a0)
- ;move.l $16(a1),len
- JMP C698
-
- C596 MOVE.L #8,$16(A1)
- PEA $1E(A1)
- MOVE.L (SP)+,-$1C(A0)
- PEA CF0A
- CLR.W -12(A0)
- JMP C698
-
- C5B6 MOVE.L #8,$16(A1)
- PEA $1E(A1)
- MOVE.L (SP)+,-$1C(A0)
- BSR.W C698
- CLR.W -12(A0)
- LEA L10AC,A2
- MOVEQ #7,D1
- C5D8 ADDQ.L #4,A2
- MOVE.L #8,$16(A1)
- MOVE.L A2,-$1C(A0)
- MOVEM.L D1/A2,-(SP)
- BSR.W C698
- MOVEM.L (SP)+,D1/A2
- CMP.L #$FFFFFFFF,(A2)+
- DBEQ D1,C5D8
- PEA CF44
- RTS
-
- C606 MOVE.L #4,$16(A1)
- PEA $1E(A1)
- MOVE.L (SP)+,-$1C(A0)
- BSR.W C698
- MOVEM.L D0-D7/A0-A6,-(SP)
- MOVE.L $1E(A1),A0
- JSR (A0)
- MOVEM.L (SP)+,D0-D7/A0-A6
- BSR.W CAC8
- BSR.W CB0C
- CLR.W -12(A0)
- RTS
-
- C63C MOVE.L #4,$16(A1)
- ADDQ.L #4,SP
- PEA $1E(A1)
- MOVE.L (SP)+,-$1C(A0)
- BSR.B C698
- MOVE.L $1E(A1),D0
- BEQ.S C65E
- MOVE.L D0,4(A0)
- C65E RTS
-
- C660 BSR.B C698
- ADDQ.L #4,a7
- RTS
-
- C66A MOVE.L #4,$16(A1)
- PEA $1E(A1)
- MOVE.L (SP)+,-$1C(A0)
- BSR.B C698
- movem.l d0-d2,-(A7)
- moveq #0,d0
- moveq #0,d2
- move.w $1e(a1),d2
- subq.w #1,d2
- mulu #$1858,d2
- move.w $20(a1),d0
- add.l d0,d2
- divu #$1600,d2
- addq.w #1,d2
- move.w d2,-8(a0)
- swap d2
- move.w d2,-6(a0)
- movem.l (A7)+,d0-d2
- ;MOVE.W $1E(A1),-8(A0)
- ;MOVE.W $20(A1),-6(A0)
- CLR.W -12(A0)
- BSR.W CB0C
- RTS
-
- C698 TST.B -$1D(A0)
- BNE.B C710
- MOVE.W #2,$14(A1)
- TST.B $32(A1)
- BEQ.S C6C4
- C6AC MOVEQ #0,D0
- BSR.W C952
- BSR.W C970
- BSR.W CA06
- TST.L D0
- BNE.S C6F6
- C6C4 BSR.W C76C
- TST.L D0
- BNE.S C6F6
- CLR.B $32(A1)
- TST.L $16(A1)
- BEQ.S C70A
- MOVE.W -10(A0),D1
- CMP.W -6(A0),D1
- BCS.S C6F0
- BSR.W CBB8
- ADDQ.W #1,-8(A0)
- CLR.W -6(A0)
- C6F0 MOVE.L A2,-$1C(A0)
- BRA.S C698
-
- C6F6 BSR.W CAC8
- BSR.W CB0C
- SUBQ.W #1,$14(A1)
- BPL.S C6AC
- RTS
-
- C70A MOVE.L A2,-$1C(A0)
- RTS
-
- C710 MOVEQ #0,D0
- MOVE.L -$18(A0),A2
- MOVE.L -$1C(A0),A3
- C71A MOVE.B (A2)+,(A3)+
- SUBQ.L #1,$16(A1)
- BNE.S C71A
- MOVE.L A2,-$18(A0)
- RTS
-
- C728 MOVEQ #0,D0
- BSR.W C952
- BSR.W C844
- BSR.W C9AA
- BSR.W CA06
- TST.L D0
- BNE.S C76A
- MOVEQ #0,D1
- MOVE.W -10(A0),D1
- SUB.L D1,$16(A1)
- BMI.S C76A
- BEQ.S C76A
- BSR.W CBB8
- ADDQ.W #1,-8(A0)
- TST.B $36(A1)
- BNE.S C768
- MOVE.L A4,$1A(A1)
- C768 BRA.S C728
-
- C76A RTS
-
- oe dc.w 0
-
- C76C move.l #$55555555,d5
- move.l -$1c(a0),a3
- move.w -2(a3),oe
- decode_loop1a moveq #10,d0
- lea $7c000,a2
- decode_loop1 cmp.l #$7c000+[$1b00*2],a2
- bge.w error3
- cmp.w #$4489,(a2)+
- bne.s decode_loop1
- cmp.w #$4489,(a2)+
- beq.s cont
- subq.w #2,a2
- cont: bsr.w Checksuma
- bne.w Error3
- tst.b -$1e(a0)
- bne.w uji1
- movem.l (a2),d2/d7
- bsr.w convbit
- and.w #$ff00,d2
- add.w d2,d2
- add.w #$38,a2
- move.w -6(a0),d1
- and.w #$fe00,d1
- cmp.w d1,d2
- bne.s noconv
- move.w -6(a0),d2
- and.w #$1fe,d2
- bne.s .t
- moveq #$7f,d1
- bra.s .w
- .t move.w d2,d1
- and.w #$fffc,d1
- lea (a2,d1.w),a2
- move.w #$200,d7
- sub.w d1,d7
- move.w d7,d1
- lsr.w #2,d1
- subq.w #1,d1
- .t1 and.w #$2,d2
- beq.s .w
- subq.w #2,-6(a0)
- addq.l #2,$16(a1)
- subq.w #2,a3
- .w
- decode_loop2 move.l 512(a2),d7
- move.l (a2)+,d2
- bsr.b convbit
- SWAP D2
- MOVE.W D2,(A3)+
- addq.w #2,-6(a0)
- SUBQ.L #2,$16(A1)
- BEQ.S exi
- SWAP D2
- MOVE.W D2,(A3)+
- addq.w #2,-6(a0)
- SUBQ.L #2,$16(A1)
- BEQ.S exi
- dbf d1,decode_loop2
- bra.w decode_loop1a
- noconv: add.w #$1f8,a2
- dbf d0,decode_loop1
- cmp.w #$1600,-6(a0)
- bne.w decode_loop1a
- exi move.l a3,a2
- move.l -$1c(a0),a3
- move.w oe,-2(A3)
- moveq #0,d0
- rts
-
- uji1 sub.l #$1600,$16(a1)
- moveq #0,d0
- rts
- error3 moveq #3,d0
- rts
- error11 moveq #11,d0
- rts
-
- checksuma move.l a2,-(A7)
- lea 48(a2),a2
- movem.l (A2)+,d2/d7
- bsr.b convbit
- moveq #0,d6
- move.w #$ff,d1
- checksum_loop1: move.l (a2)+,d7
- eor.l d7,d6
- dbf d1,checksum_loop1
- and.l d5,d6
- move.l (A7)+,a2
- cmp.l d2,d6
- rts
- convbit: and.l d5,d2
- and.l d5,d7
- asl.l #1,d2
- or.l d7,d2
- rts
-
-
- C844
- code_track: movem.l d0-d3/a2/a3,-(a7)
- lea $7c000,a2
- move.w #$38c0/4-1,d0
- fill_loop: move.l #$aaaaaaaa,(a2)+
- dbf d0,fill_loop
- lea $7c000,a2
- add.w #$340,a2
- move.l $1a(a1),a3
- moveq #11,d0
- moveq #0,d1
- move.w -8(a0),d2
- moveq #0,d4
- sf wtdat
- code_loop tst.b wtdat
- bne.s .t
- move.w -10(a0),d5
- and.w #$fe00,d5
- cmp.w d5,d4
- blt.s .t
- st wtdat
- .t move.w #$ff00,d3
- or.w d2,d3
- swap d3
- move.b d1,d3
- lsl.w #8,d3
- move.b d0,d3
- bsr.s code_sector
- add.w #$440,a2
- add.w #$200,d4
- addq.w #1,d1
- subq.w #1,d0
- bne.s code_loop
- movem.l (a7)+,d0-d3/a2/a3
- rts
- rest dc.w 0
- wtdat dc.w 0
-
-
- code_sector: movem.l d0/d1/d4/a0/a3/a4,-(a7)
- move.l #$44894489,4(a2)
- lea 8(a2),a0
- move.l d3,d0
- bsr.w to_MFM
- lea 8(a2),a0
- moveq #9,d1
- bsr.s checksum
- lea 48(a2),a0
- bsr.s to_MFM
- lea buffer(pc),a0
- lea 64(a2),a4
- moveq #$7f,d1
- MFM_loop moveq #0,d0
- tst.b wtdat
- beq.s .tr
- move.l (a3)+,d0
- .tr bsr.s to_MFM
- lea buffer(pc),a0
- move.l (a0),(a4)
- move.l 4(a0),$200(a4)
- addq.w #4,a4
- dbf d1,MFM_loop
- lea 64(a2),a0
- move.w #$ff,d1
- check_loop: bsr.s check_next
- addq.w #4,a0
- dbf d1,check_loop
- lea 64(a2),a0
- move.w #$ff,d1
- bsr.s checksum
- lea 56(a2),a0
- bsr.s to_MFM
- movem.l (a7)+,d0/d1/d4/a0/a3/a4
- rts
- dc.l 0
- buffer dc.l 0,0
-
- checksum: move.l d2,-(a7)
- moveq #0,d0
- checksum_loop: move.l (a0)+,d2
- eor.l d2,d0
- dbf d1,checksum_loop
- and.l #$55555555,d0
- move.l (a7)+,d2
- rts
-
- to_MFM: movem.l d0-d3,-(a7)
- move.l d0,d3
- lsr.l #1,d0
- bsr.s get_taktbits
- move.l d3,d0
- bsr.s get_taktbits
- movem.l (a7)+,d0-d3
- rts
- get_taktbits: and.l d5,d0
- move.l d0,d2
- eor.l d5,d2
- move.l d2,d1
- lsl.l #1,d2
- lsr.l #1,d1
- bset #31,d1
- and.l d2,d1
- or.l d1,d0
- btst #0,-1(a0)
- beq.s its_a_zero
- bclr #31,d0
- its_a_zero: move.l d0,(a0)+
- rts
-
- check_next: move.b (a0),d0
- btst #0,-1(a0)
- bne.s clear_7
- btst #6,d0
- bne.s ok
- bset #7,d0
- bra.s write_d0
- clear_7: bclr #7,d0
- write_d0: move.b d0,(a0)
- ok: rts
-
-
-
- C952 MOVE.W #$4489,-4(A0)
- RTS
-
- C970 MOVE.L #$7C000,$20(A5)
- MOVE.W #$4000,$24(A5)
- MOVE.W #$7F00,$9E(A5)
- MOVE.W #$9500,$9E(A5)
- MOVE.W #$4489,$7E(A5)
- MOVE.W #2,$9C(A5)
- btst #4,$bfdd00
- .r btst #4,$bfdd00
- beq.s .r
- ;BSR.W CC34
- MOVE.W #$9b00,D1
- MOVE.W D1,$24(A5)
- MOVE.W D1,$24(A5)
- RTS
-
- C9AA MOVE.W #2,$9C(A5)
- MOVE.L #$7C000,$20(A5)
- MOVE.W #$7F00,$9E(A5)
- MOVE.W #$4000,$24(A5)
- MOVE.W #$9100,$9E(A5)
- BSR.W CC34
- MOVE.W #$D902,D1
- MOVE.W D1,$24(A5)
- MOVE.W D1,$24(A5)
- RTS
-
- CA06 MOVE.L #$61A80,D0
- CA0C SUBQ.L #1,D0
- BNE.S CA14
- MOVEQ #2,D0
- BRA.S CA20
-
- CA14 MOVE.W $1E(A5),D2
- BTST #1,D2
- BEQ.S CA0C
- MOVEQ #0,D0
- CA20 MOVE.W #2,$9C(A5)
- MOVE.W #$4000,$24(A5)
- MOVE.W #$53B,D7
- BSR.W CC3E
- RTS
-
- CA38 BTST #6,$1001(A6)
- BEQ.S CA62
- BTST #3,$1001(A6)
- BNE.S CA4A
- BRA.S CA38
-
- CA4A BSR.B CA66
- MOVEQ #14,D7
- BSR.W CC6C
- BTST #3,$1001(A6)
- BNE.S CA64
- BRA.S CA38
-
- CA62 MOVEQ #9,D0
- CA64 RTS
-
- CA66 MOVEQ #0,D2
- BRA.S CA72
-
- CA6A BSR.W CC16
- NOT.B D2
- CA72 BSR.W CC00
- TST.B D2
- BEQ.S CAA0
- BSR.W CBB8
- BSR.W CC16
- MOVEQ #$1D,D7
- BSR.W CC6C
- BSR.W CC00
- BTST #2,$1001(A6)
- BNE.S CAC6
- BRA.S CA6A
-
- CAA0 BSR.W CB58
- BSR.W CC16
- MOVEQ #14,D7
- BSR.W CC6C
- BSR.W CC00
- BTST #2,$1001(A6)
- BNE.S CAC6
- BRA.B CA6A
-
- CAC6 RTS
-
- CAC8 BSET #2,$100(A6)
- BSET #1,$100(A6)
- CAD4 BTST #4,$1001(A6)
- BEQ.S CAF6
- BCLR #0,$100(A6)
- NOP
- NOP
- BSET #0,$100(A6)
- MOVE.W #$7C4,D7
- BSR.W CC3E
- BRA.S CAD4
-
- CAF6 MOVE.W #$3A98,D7
- BSR.W CC3E
- MOVE.W -2(A0),D6
- CLR.B 0(A1,D6.W)
- ST $32(A1)
- RTS
-
- CB0C MOVE.W -8(A0),D3
- MOVE.W -2(A0),D6
- CMP.B 0(A1,D6.W),D3
- BEQ.S CB3A
- CB1A PEA CB1A
- MOVE.W -2(A0),D6
- CMP.B 0(A1,D6.W),D3
- BHI.W CBB8
- BCS.S CB58
- ADDQ.L #4,SP
- CB30 MOVE.W #$3A98,D7
- BSR.W CC3E
- RTS
-
- CB3A MOVE.W -2(A0),D6
- MOVE.B 0(A1,D6.W),D3
- BTST #0,D3
- BEQ.S CB50
- BCLR #2,$100(A6)
- BRA.S CB30
-
- CB50 BSET #2,$100(A6)
- BRA.S CB30
-
- CB58 MOVE.W -2(A0),D6
- BTST #4,$1001(A6)
- BEQ.S CBA8
- SUBQ.B #1,0(A1,D6.W)
- MOVE.B 0(A1,D6.W),D7
- BTST #0,D7
- BEQ.S CB94
- BSET #1,$100(A6)
- NOP
- NOP
- BCLR #0,$100(A6)
- NOP
- NOP
- BSET #0,$100(A6)
- BCLR #2,$100(A6)
- BRA.S CB9A
-
- CB94 BSET #2,$100(A6)
- CB9A MOVE.W #$9C4,D7
- BSR.W CC3E
- ST $32(A1)
- RTS
-
- CBA8 BSET #2,$100(A6)
- CLR.B 0(A1,D6.W)
- ST $32(A1)
- RTS
-
- CBB8 MOVE.W -2(A0),D6
- ADDQ.B #1,0(A1,D6.W)
- MOVE.B 0(A1,D6.W),D7
- BTST #0,D7
- BNE.S CBEC
- BCLR #1,$100(A6)
- NOP
- NOP
- BCLR #0,$100(A6)
- NOP
- NOP
- BSET #0,$100(A6)
- BSET #2,$100(A6)
- BRA.S CBF2
-
- CBEC BCLR #2,$100(A6)
- CBF2 MOVE.W #$9C4,D7
- BSR.B CC3E
- ST $32(A1)
- RTS
-
- CC00 MOVE.W -2(A0),D7
- ADDQ.W #3,D7
- MOVE.B #$79,$100(A6)
- NOP
- NOP
- BCLR D7,$100(A6)
- RTS
-
- CC16 MOVE.W -2(A0),D7
- ADDQ.W #3,D7
- MOVE.B #$F9,$100(A6)
- NOP
- NOP
- BCLR D7,$100(A6)
- NOP
- NOP
- BSET D7,$100(A6)
- RTS
-
- CC34 BTST #5,$1001(A6)
- BNE.S CC34
- RTS
-
- CC3E MOVE.B #$7F,$D00(A6)
- MOVE.B D7,$400(A6)
- LSR.W #8,D7
- MOVE.B D7,$500(A6)
- MOVE.B #$81,$D00(A6)
- MOVE.B #$11,$E00(A6)
- CC5A BTST #0,$D00(A6)
- BEQ.S CC5A
- MOVE.B #$7F,$D00(A6)
- RTS
-
- MOVEQ #$18,D7
- CC6C LEA $DFF000,A5
- CC72 CMP.B #$A0,6(A5)
- BNE.S CC72
- CC7A CMP.B #$A0,6(A5)
- BEQ.S CC7A
- DBRA D7,CC72
- RTS
-
- CC88 LEA L1200,A2
- MOVE.L -$10(A0),D1
- MOVE.L -$14(A0),D2
- CC96 TST.L (A2)
- BEQ.S CCB4
- CMP.L (A2),D1
- BNE.S CCA4
- CMP.L 4(A2),D2
- BEQ.S CCAA
- CCA4 LEA 12(A2),A2
- BRA.S CC96
-
- CCAA ST -$1D(A0)
- MOVE.L 8(A2),-$18(A0)
- CCB4 RTS
-
- CCB6 LEA L1100,A2
- MOVE.L -$10(A0),D1
- CMP.L #$4449534B,D1
- BEQ.S CCFC
- CMP.L #$524F4F54,D1
- BEQ.S CCDE
- CCD0 TST.L (A2)
- BEQ.W CD2C
- CMP.L (A2),D1
- BEQ.S CD1E
- LEA 8(A2),A2
- BRA.S CCD0
-
- CCDE LEA ROOT,A2
- MOVE.L #L1100,-$1C(A0)
- MOVE.L #$100,$16(A1)
- MOVE.W #5,-12(A0)
- BRA.S CD1E
-
- CCFC LEA DISK,A2
- MOVE.W -2(A0),D2
- LSL.W #2,D2
- PEA 4(A1,D2.W)
- MOVE.L (SP)+,-$1C(A0)
- MOVE.L #4,$16(A1)
- MOVE.W #5,-12(A0)
- CD1E cmp.w #1,4(a2)
- beq.s .t
- movem.l d0-d2,-(A7)
- moveq #0,d0
- moveq #0,d2
- move.w 4(a2),d2
- subq.w #1,d2
- mulu #$1858,d2
- move.w 6(a2),d0
- add.l d0,d2
- divu #$1600,d2
- add.w #1,d2
- move.w d2,-8(a0)
- swap d2
- move.w d2,-6(a0)
- movem.l (A7)+,d0-d2
- RTS
- .t MOVE.W 4(A2),-8(A0)
- MOVE.W 6(A2),-6(A0)
- rts
- CD2C MOVEQ #4,D0
- RTS
-
- CD30 MOVEM.L D0-D2,-(SP)
- MOVE.L #3,D0
- MOVE.L #$4449534B,D1
- MOVE.W -2(A0),D2
- BSR.W C146
- MOVEM.L (SP)+,D0-D2
- RTS
-
- CD50 MOVE.B #1,$33(A1)
- MOVE.W #0,-2(A0)
- MOVEQ #4,D6
- BSR.B CDAC
- ADDQ.W #1,-2(A0)
- CMP.W #$FFFF,D1
- BNE.S CD74
- BSET #1,$33(A1)
- CD74 MOVEQ #5,D6
- BSR.B CDAC
- ADDQ.W #1,-2(A0)
- CMP.W #$FFFF,D1
- BNE.S CD8C
- BSET #2,$33(A1)
- CD8C MOVEQ #6,D6
- BSR.B CDAC
- ADDQ.W #1,-2(A0)
- CMP.W #$FFFF,D1
- BNE.S CDA4
- BSET #3,$33(A1)
- CDA4 MOVE.W #0,-2(A0)
- RTS
-
- CDAC BSR.W CC00
- BSR.W CC16
- MOVEQ #0,D1
- MOVEQ #15,D2
- CDBC LSL.W #1,D1
- BCLR D6,$100(A6)
- NOP
- NOP
- BTST #5,$1001(A6)
- BNE.S CDD2
- OR.B #1,D1
- CDD2 BSET D6,$100(A6)
- DBRA D2,CDBC
- RTS
-
- CDDC ADDQ.W #1,-2(A0)
- AND.W #3,-2(A0)
- MOVE.W -2(A0),D2
- BTST D2,$33(A1)
- BEQ.S CDDC
- RTS
-
- CDF2 ST $34(A1)
- CLR.B $35(A1)
- MOVE.L -$14(A0),D1
- MOVEQ #0,D2
- CLR.W -2(A0)
- BRA.S CE24
-
- CE06 BSR.W CC16
- BSR.B CDDC
- TST.W -2(A0)
- BNE.S CE24
- NOT.B D2
- MOVE.B $34(A1),$35(A1)
- ST $34(A1)
- CE24 BSR.W CC00
- TST.B D2
- BEQ.S CE60
- BSR.W CBB8
- BSR.W CC16
- MOVEQ #14,D7
- BSR.W CC6C
- BSR.W CC00
- BTST #2,$1001(A6)
- BNE.S CE94
- MOVE.W -2(A0),D3
- BCLR D3,$34(A1)
- LSL.W #2,D3
- CLR.L 4(A1,D3.W)
- BRA.S CE06
-
- CE60 BSR.W CB58
- BSR.W CC16
- MOVEQ #7,D7
- BSR.W CC6C
- BSR.W CC00
- BTST #2,$1001(A6)
- BNE.S CE94
- MOVE.W -2(A0),D3
- BCLR D3,$34(A1)
- LSL.W #2,D3
- CLR.L 4(A1,D3.W)
- BRA.B CE06
-
- CE94 MOVE.W -2(A0),D3
- BTST D3,$35(A1)
- BNE.B CE06
- BSR.W CD30
- LSL.W #2,D3
- CMP.L 4(A1,D3.W),D1
- BNE.W CE06
- CMP.L $26(A1),D1
- BEQ.S CED8
- MOVEM.L D0-D2,-(SP)
- MOVE.L #3,D0
- MOVE.L #$524F4F54,D1
- MOVE.W -2(A0),D2
- BSR.W C146
- TST.L D0
- BNE.S CEDE
- MOVEM.L (SP)+,D0-D2
- CED8 MOVE.L D1,$26(A1)
- RTS
-
- CEDE MOVEM.L (SP)+,D0-D2
- MOVE.L D1,$26(A1)
- MOVEQ #10,D0
- RTS
-
- CF0A BSR.W CC16
- MOVEM.L D0-D7/A0-A6,-(SP)
- MOVE.L $1E(A1),D0
- BPL.S CF22
- BCLR #$1F,D0
- ADD.L $2A(A1),D0
- CF22 MOVE.L D0,A2
- MOVE.L $22(A1),D1
- LEA 4(A2),A5
- LEA 8(A2),A3
- LEA 0(A2,D1.L),A0
- BSR.W CFCC
- MOVEM.L (SP)+,D0-D7/A0-A6
- BSR.W CC00
- RTS
-
- CF44 BSR.W CC16
- MOVEM.L D0-D7/A0-A6,-(SP)
- MOVE.L $1E(A1),A2
- MOVE.L $22(A1),D1
- LEA 4(A2),A5
- LEA 8(A2),A3
- LEA 0(A2,D1.L),A0
- LEA L10B0,A4
- BSR.S CF76
- MOVEM.L (SP)+,D0-D7/A0-A6
- BSR.W CC00
- RTS
-
- CF76 MOVEQ #3,D6
- MOVEQ #7,D7
- MOVEQ #1,D5
- MOVE.L -(A0),D1
- TST.B D1
- BEQ.S CF8A
- BSR.W C100A
- SUBQ.B #1,D1
- LSR.L D1,D5
- CF8A LSR.L #8,D1
- MOVE.L D1,$2E(A1)
- MOVE.L A3,-(SP)
- LEA CFE4,A6
- CF98 PEA CF98
- MOVE.L (A4)+,A2
- MOVE.L (A4)+,A3
- CMP.L #$FFFFFFFF,A2
- BEQ.S CFBC
- MOVEM.L D0/A3,-(SP)
- SUB.L A2,A3
- MOVE.L A3,D0
- SUB.L D0,$2E(A1)
- MOVEM.L (SP)+,D0/A3
- JMP (A6)
-
- CFBC ADDQ.L #4,SP
- MOVE.L (SP)+,A2
- ADD.L $2A(A1),A2
- MOVE.L A2,A3
- ADD.L $2E(A1),A3
- JMP (A6)
-
- CFCC MOVEQ #3,D6
- MOVEQ #7,D7
- MOVE.L A3,A2
- MOVEQ #1,D5
- MOVE.L -(A0),D1
- TST.B D1
- BEQ.S CFE0
- BSR.S C100A
- SUBQ.B #1,D1
- LSR.L D1,D5
- CFE0 LSR.L #8,D1
- ADD.L D1,A3
- CFE4 BSR.S C100A
- BCS.S C102C
- MOVEQ #0,D2
- CFEA MOVEQ #1,D0
- BSR.S C1018
- ADD.W D1,D2
- CMP.W D6,D1
- BEQ.S CFEA
- CFF4 MOVEQ #7,D0
- BSR.S C1018
- MOVE.B D1,-(A3)
- DBRA D2,CFF4
- CMP.L A3,A2
- BCS.S C102C
- MOVE.L #C102C,A6
- RTS
-
- C100A LSR.L #1,D5
- BEQ.S C1010
- RTS
-
- C1010 MOVE.L -(A0),D5
- ROXR.L #1,D5
- RTS
-
- C1016 SUBQ.W #1,D0
- C1018 MOVEQ #0,D1
- C101A LSR.L #1,D5
- BEQ.S C1026
- C101E ROXL.L #1,D1
- DBRA D0,C101A
- RTS
-
- C1026 MOVE.L -(A0),D5
- ROXR.L #1,D5
- BRA.S C101E
-
- C102C MOVEQ #1,D0
- BSR.S C1018
- MOVEQ #0,D0
- MOVE.B 0(A5,D1.W),D0
- MOVE.W D1,D2
- CMP.W D6,D2
- BNE.S C1052
- BSR.S C100A
- BCS.S C1042
- MOVEQ #7,D0
- C1042 BSR.S C1016
- MOVE.W D1,D3
- C1046 MOVEQ #2,D0
- BSR.S C1018
- ADD.W D1,D2
- CMP.W D7,D1
- BEQ.S C1046
- BRA.S C1056
-
- C1052 BSR.S C1016
- MOVE.W D1,D3
- C1056 ADDQ.W #1,D2
- C1058 MOVE.B 0(A3,D3.W),-(A3)
- DBRA D2,C1058
- CMP.L A3,A2
- BCS.S CFE4
- MOVE.L #CFE4,A6
- RTS
- blk.b $f0,0
- buf dc.l 0,0,0
-
- L106C dc.l L1078,$DFF000,$BFD000
- L1078 dc.l $FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF
- dc.l $FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF
- dc.l $FFFFFFFF,$FFFFFFFF,$FFFFFFFF
- L10AC dc.l $FFFFFFFF
- L10B0 dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
- ROOT dc.b 'ROOT'
- dc.w 1
- dc.w 4
- DISK dc.b 'DISK'
- dc.w 1
- dc.w 0
-
- L1100 dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0
- L1200 dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- L1380 dc.w 0
- jend
-