.globl _copyrigh .data _copyrigh: .dc.b 67,111,112,121,114,105,103,104,116,32,49,57,56,50,44,32,68,105,103,105,116,97,108,32,82,101,115,101,97,114,99,104,0 .even .globl _dirbuf .comm _dirbuf,128 .globl _csv0 .comm _csv0,16 .globl _csv1 .comm _csv1,16 .globl _csv2 .comm _csv2,16 .globl _alv0 .comm _alv0,32 .globl _alv1 .comm _alv1,32 .globl _alv2 .comm _alv2,2002 .globl _dpb0 .data _dpb0: .dc.w 26 .dc.w 775 .dc.w 0 .dc.w 242 .dc.w 63 .dc.w -16384 .dc.w 16 .dc.w 2 .globl _dpb1 .data _dpb1: .dc.w 26 .dc.w 1039 .dc.w 0 .dc.w 242 .dc.w 63 .dc.w -16384 .dc.w 16 .dc.w 2 .globl _dpb2 .data _dpb2: .dc.w 26 .dc.w 775 .dc.w 0 .dc.w 16008 .dc.w 63 .dc.w -16384 .dc.w 16 .dc.w 2 .globl _xlt .data _xlt: .dc.b 1 .dc.b 7 .dc.b 13 .dc.b 19 .dc.b 25 .dc.b 5 .dc.b 11 .dc.b 17 .dc.b 23 .dc.b 3 .dc.b 9 .dc.b 15 .dc.b 21 .dc.b 2 .dc.b 8 .dc.b 14 .dc.b 20 .dc.b 26 .dc.b 6 .dc.b 12 .dc.b 18 .dc.b 24 .dc.b 4 .dc.b 10 .dc.b 16 .dc.b 22 .globl _dphtab .data _dphtab: .dc.l _xlt .dc.w 0 .dc.w 0 .dc.w 0 .dc.l _dirbuf .dc.l _dpb0 .dc.l _csv0 .dc.l _alv0 .dc.l _xlt .dc.w 0 .dc.w 0 .dc.w 0 .dc.l _dirbuf .dc.l _dpb0 .dc.l _csv1 .dc.l _alv1 .dc.w 0,0 .dc.w 0 .dc.w 0 .dc.w 0 .dc.l _dirbuf .dc.l _dpb2 .dc.l _csv2 .dc.l _alv2 .dc.w 0,0 .dc.w 0 .dc.w 0 .dc.w 0 .dc.l _dirbuf .dc.l _dpb2 .dc.l _csv2 .dc.l _alv2 .globl _memtab .data _memtab: .dc.w 1 .dc.w 0 .dc.w 1024 .dc.w 1 .dc.w 31744 .globl _iobyte .comm _iobyte,2 .globl _settrk .comm _settrk,2 .globl _setsec .comm _setsec,2 .globl _setdsk .comm _setdsk,2 .globl _setdma .comm _setdma,4 .globl _trkbuf .comm _trkbuf,3328 .globl _tbvalid .data _tbvalid: .dc.w 0 .globl _tbdirty .data _tbdirty: .dc.w 0 .globl _tbtrk .comm _tbtrk,2 .globl _tbdsk .comm _tbdsk,2 .globl _hmpack .data _hmpack: .dc.w 512 .dc.w 1792 .dc.w 0 .dc.w 768 .globl _rwpack .data _rwpack: .dc.w 512 .dc.w 5376 .dc.w 4097 .dc.w 13 .dc.w 256 .dc.w 0 .dc.w 0 .dc.w 0 .dc.w 0 .dc.w 0 .dc.w 768 .globl _cnvdsk .data _cnvdsk: .dc.b 4 .dc.b 5 .dc.b 0 .dc.b 1 .globl _dskstate .data _dskstate: .dc.w 0 .globl _portinit .text _portinit: ~~portinit: ~port=R13 link R14,#0 movem.l R7-R7/R13-R13,-(sp) move.l 8(R14),R13 move.b #3,(R13) move.b #17,(R13) L2:tst.l (sp)+ movem.l (sp)+,R13-R13 unlk R14 rts .globl _portstat .text _portstat: ~~portstat: ~port=R13 link R14,#0 movem.l R7-R7/R13-R13,-(sp) move.l 8(R14),R13 btst #0,(R13) bne L10000 clr R0 bra L10001 L10000:move #1,R0 L10001:bra L3 L3:tst.l (sp)+ movem.l (sp)+,R13-R13 unlk R14 rts .globl _portin .text _portin: ~~portin: ~port=R13 link R14,#0 movem.l R7-R7/R13-R13,-(sp) move.l 8(R14),R13 L6: move.l R13,(sp) jsr _portstat tst R0 bne L5 bra L6 L5: move.b 2(R13),R0 ext.w R0 bra L4 L4:tst.l (sp)+ movem.l (sp)+,R13-R13 unlk R14 rts .globl _portout .text _portout: ~~portout: ~ch=R7 ~port=R13 link R14,#0 movem.l R6-R7/R13-R13,-(sp) move.l 8(R14),R13 move.b 13(R14),R7 L9: btst #1,(R13) bne L8 bra L9 L8: move.b R7,2(R13) L7:tst.l (sp)+ movem.l (sp)+,R7-R7/R13-R13 unlk R14 rts .globl _bioserr .text _bioserr: ~~bioserr: ~errmsg=R13 link R14,#0 movem.l R7-R7/R13-R13,-(sp) move.l 8(R14),R13 move.l #L11,(sp) jsr _printstr move.l R13,(sp) jsr _printstr move.l #L12,(sp) jsr _printstr L14: bra L14 L13:L10:tst.l (sp)+ movem.l (sp)+,R13-R13 unlk R14 rts .globl _printstr .text _printstr: ~~printstr: ~s=R13 link R14,#0 movem.l R7-R7/R13-R13,-(sp) move.l 8(R14),R13 L17: tst.b (R13) beq L16 move.b (R13),R0 ext.w R0 move R0,(sp) move.l #$ffee011,-(sp) jsr _portout add #4,sp add.l #1,R13 bra L17 L16:L15:tst.l (sp)+ movem.l (sp)+,R13-R13 unlk R14 rts .globl _dskia .globl _setimask .globl _dskic .text _dskic: ~~dskic: link R14,#-4 move _dskstate,R0 bra L20 L21:L22:L23: cmp.b #6,$ff0183 beq L10002 cmp.b #21,$ff0183 bne L24 L10002:clr.b $ff0183 L24: cmp.b #128,$ff0181 bne L25 move.b #6,$ff0103 clr.b $ff0181 clr.b $ff000d L25:bra L19 L26: cmp.b #6,$ff0183 bne L27 clr.b $ff0183 move #3,_dskstate bra L28 L27: cmp.b #21,$ff0183 bne L29 clr.b $ff0183 move #2,_dskstate bra L30 L29: move.l #L31,(sp) jsr _bioserr L30:L28: cmp.b #128,$ff0181 bne L32 move #4,_dskstate L32:bra L19 L33: cmp.b #128,$ff0181 beq L34 move.l #L35,(sp) jsr _bioserr L34: move #4,_dskstate clr.b $ff0181 move.b #6,$ff0103 clr.b $ff000d bra L19 bra L19 L20:cmp #4,R0 bhi L19 asl #2,R0 move R0,R8 add.l #L36,R8 move.l (R8),R8 jmp (R8) .data L36:.dc.l L21 .dc.l L26 .dc.l L23 .dc.l L33 .dc.l L22 .text L19:L18:unlk R14 rts .globl _sendpkt .text _sendpkt: ~~sendpkt: ~imsave=R6 ~pktadr=R13 ~iopackp=R12 ~pktsize=R7 link R14,#0 movem.l R5-R7/R12-R13,-(sp) move.l 8(R14),R13 move 12(R14),R7 L39: tst.b $ff0101 beq L38 bra L39 L38: cmp.b #21,$ff0183 bne L40 move.l #L41,(sp) jsr _bioserr L40: clr.b $ff0183 clr.b $ff0181 move.l #$ff0105,R12 L44: move.b (R13)+,(R12) add.l #2,R12 sub #1,R7 L43: tst R7 bne L44 L42: move.b #128,$ff0101 move #7,(sp) jsr _setimask move R0,R6 move #1,_dskstate clr.b $ff000d move R6,(sp) jsr _setimask L37:tst.l (sp)+ movem.l (sp)+,R6-R7/R12-R13 unlk R14 rts .globl _dskxfer .text _dskxfer: ~~dskxfer: ~cmd=R5 ~dsk=R7 ~trk=R6 ~bufp=R13 link R14,#0 movem.l R4-R7/R13-R13,-(sp) move 8(R14),R7 move 10(R14),R6 move.l 12(R14),R13 move 16(R14),R5 move R7,R0 ext.l R0 add.l #_cnvdsk,R0 move.l R0,R8 move.b (R8),3+_rwpack move.l R13,10+_rwpack move R6,R0 muls #13,R0 move.l R0,16+_rwpack move.b R5,4+_rwpack move #21,(sp) move.l #_rwpack,-(sp) jsr _sendpkt add #4,sp L47: cmp #1,_dskstate bne L46 bra L47 L46: cmp #2,_dskstate bne L48 move.l #L49,(sp) jsr _bioserr L48:L51: cmp #3,_dskstate bne L50 bra L51 L50:L45:tst.l (sp)+ movem.l (sp)+,R5-R7/R13-R13 unlk R14 rts .globl _flush .text _flush: ~~flush: link R14,#-4 tst _tbvalid beq L53 move #32,(sp) move.l #_trkbuf,-(sp) move _tbtrk,-(sp) move _tbdsk,-(sp) jsr _dskxfer add #8,sp L53: clr _tbdirty clr R0 bra L52 L52:unlk R14 rts .globl _filltb .text _filltb: ~~filltb: link R14,#-4 tst _tbvalid beq L55 tst _tbdirty beq L55 jsr _flush L55: move #16,(sp) move.l #_trkbuf,-(sp) move _settrk,-(sp) move _setdsk,-(sp) jsr _dskxfer add #8,sp move #1,_tbvalid clr _tbdirty move _settrk,_tbtrk move _setdsk,_tbdsk L54:unlk R14 rts .globl _read .text _read: ~~read: ~i=R7 ~p=R13 ~q=R12 link R14,#0 movem.l R6-R7/R12-R13,-(sp) tst _tbvalid beq L10003 move _tbtrk,R0 cmp _settrk,R0 bne L10003 move _tbdsk,R0 cmp _setdsk,R0 beq L57 L10003:jsr _filltb L57: move _setsec,R0 sub #1,R0 asl #7,R0 ext.l R0 move.l R0,R13 add.l #_trkbuf,R13 move.l _setdma,R12 move #128,R7 L60: move.b (R13)+,(R12)+ sub #1,R7 L59: tst R7 bne L60 L58: clr R0 bra L56 L56:tst.l (sp)+ movem.l (sp)+,R7-R7/R12-R13 unlk R14 rts .globl _write .text _write: ~~write: ~i=R7 ~p=R13 ~q=R12 ~mode=9 link R14,#0 movem.l R6-R7/R12-R13,-(sp) tst _tbvalid beq L10004 move _tbtrk,R0 cmp _settrk,R0 bne L10004 move _tbdsk,R0 cmp _setdsk,R0 beq L62 L10004:jsr _filltb L62: move _setsec,R0 sub #1,R0 asl #7,R0 ext.l R0 move.l R0,R13 add.l #_trkbuf,R13 move.l _setdma,R12 move #128,R7 L65: move.b (R12)+,(R13)+ sub #1,R7 L64: tst R7 bne L65 L63: move #1,_tbdirty cmp.b #1,9(R14) bne L66 jsr _flush L66: clr R0 bra L61 L61:tst.l (sp)+ movem.l (sp)+,R7-R7/R12-R13 unlk R14 rts .globl _sectran .text _sectran: ~~sectran: ~s=8 ~xp=10 link R14,#-4 move 8(R14),R8 move.l 10(R14),R9 move.b 0(R8,R9.l),R0 ext.w R0 bra L67 L67:unlk R14 rts .globl _setxvect .text _setxvect: ~~setxvect: ~oldval=R7 ~vloc=R13 ~vval=10 ~vnum=8 link R14,#0 movem.l R6-R7/R13-R13,-(sp) move 8(R14),R0 ext.l R0 asl.l #2,R0 move.l R0,R13 move.l (R13),R7 move.l 10(R14),(R13) move.l R7,R0 bra L68 L68:tst.l (sp)+ movem.l (sp)+,R7-R7/R13-R13 unlk R14 rts .globl _seldsk .text _seldsk: ~~seldsk: ~logged=11 ~dsk=R7 ~dphp=R13 ~check=R6 link R14,#0 movem.l R5-R7/R13-R13,-(sp) move.b 9(R14),R7 cmp.b #3,R7 ble L70 move.l #$0,R0 bra L69 L70: move.b R7,R0 ext.w R0 move R0,_setdsk move.b R7,R0 ext.w R0 muls #26,R0 move.l R0,R13 add.l #_dphtab,R13 tst.b 11(R14) bne L71 move.l #_cnvdsk,R0 move _setdsk,R1 ext.l R1 add.l R1,R0 move.l R0,R8 move.b (R8),3+_hmpack move.b #48,4+_hmpack move.b #2,5+_hmpack move.b #6,$ff0183 tst.b $ff0101 beq L72 move.l #L73,(sp) jsr _bioserr bra L74 L72: move #7,(sp) move.l #_hmpack,-(sp) jsr _sendpkt add #4,sp L74:L76: cmp #1,_dskstate bne L75 bra L76 L75: cmp #2,_dskstate bne L77 move.l #L78,(sp) jsr _bioserr L77:L80: cmp #3,_dskstate bne L79 bra L80 L79: move.b $ff019d,R6 move.b R6,R0 ext.w R0 bra L82 L83: move.l #_dpb0,14(R13) bra L81 L84: move.l #_dpb1,14(R13) bra L81 L85: move.l #L86,(sp) jsr _bioserr bra L81 bra L81 L82:cmp #3,R0 beq L83 cmp #7,R0 beq L84 bra L85 L81:L71: move.l R13,R0 bra L69 L69:tst.l (sp)+ movem.l (sp)+,R6-R7/R13-R13 unlk R14 rts .globl _biosinit .text _biosinit: ~~biosinit: link R14,#-4 move.l #$ffee011,(sp) jsr _portinit move.l #$ffee015,(sp) jsr _portinit L87:unlk R14 rts .globl _bios .text _bios: ~~bios: ~d0=8 ~d1=10 ~d2=14 link R14,#-4 move 8(R14),R0 bra L90 L91: jsr _init bra L89 L92: jsr _wboot bra L89 L93: move.l #$ffee011,(sp) jsr _portstat ext.l R0 bra L88 bra L89 L94: move.l #$ffee011,(sp) jsr _portin ext.l R0 bra L88 bra L89 L95: move.l 10(R14),R0 move R0,(sp) move.l #$ffee011,-(sp) jsr _portout add #4,sp bra L89 L96:L97: move.l 10(R14),R0 move R0,(sp) move.l #$ffee015,-(sp) jsr _portout add #4,sp bra L89 L98: move.l #$ffee015,(sp) jsr _portin ext.l R0 bra L88 bra L89 L99: clr _settrk bra L89 L100: move.l 14(R14),R0 move R0,(sp) move.l 10(R14),R0 move R0,-(sp) jsr _seldsk add #2,sp bra L88 bra L89 L101: move.l 10(R14),R0 move R0,_settrk bra L89 L102: move.l 10(R14),R0 move R0,_setsec bra L89 L103: move.l 10(R14),_setdma bra L89 L104: jsr _read ext.l R0 bra L88 bra L89 L105: move.l 10(R14),R0 move R0,(sp) jsr _write ext.l R0 bra L88 bra L89 L106: move.l #$ffee015,(sp) jsr _portstat ext.l R0 bra L88 bra L89 L107: move.l 14(R14),(sp) move.l 10(R14),R0 move R0,-(sp) jsr _sectran add #2,sp ext.l R0 bra L88 bra L89 L108: move.l #_memtab,R0 bra L88 bra L89 L109: move _iobyte,R0 ext.l R0 bra L88 bra L89 L110: move.l 10(R14),R0 move R0,_iobyte bra L89 L111: jsr _flush ext.l R0 bra L88 bra L89 L112: move.l 14(R14),(sp) move.l 10(R14),R0 move R0,-(sp) jsr _setxvect add #2,sp bra L88 bra L89 bra L89 L90:cmp #22,R0 bhi L89 asl #2,R0 move R0,R8 add.l #L113,R8 move.l (R8),R8 jmp (R8) .data L113:.dc.l L91 .dc.l L92 .dc.l L93 .dc.l L94 .dc.l L95 .dc.l L96 .dc.l L97 .dc.l L98 .dc.l L99 .dc.l L100 .dc.l L101 .dc.l L102 .dc.l L103 .dc.l L104 .dc.l L105 .dc.l L106 .dc.l L107 .dc.l L89 .dc.l L108 .dc.l L109 .dc.l L110 .dc.l L111 .dc.l L112 .text L89:L88:unlk R14 rts .data L11:.dc.b 10,13,66,73,79,83,32,69,82,82,79,82,32,45,45,32,0 L12:.dc.b 46,10,13,0 L31:.dc.b 69,120,112,101,99,116,101,100,32,65,67,75,32,111,114,32,78,65,75,0 L35:.dc.b 69,120,112,101,99,116,101,100,32,115,116,97,116,117,115,32,112,97,99,107,101,116,32,102,114,111,109,32,73,80,67,0 L41:.dc.b 78,65,75,32,102,114,111,109,32,73,80,67,0 L49:.dc.b 78,65,75,32,102,114,111,109,32,73,80,67,0 L73:.dc.b 69,82,82,32,54,0 L78:.dc.b 78,65,75,32,102,114,111,109,32,73,80,67,0 L86:.dc.b 69,82,82,32,55,0