## diffname gnot/l.s 1990/03091 ## diff -e /dev/null /n/bootesdump/1990/03091/sys/src/9/68020/l.s 0a #include "mem.h" /* * Boot first processor */ TEXT start(SB), $-4 MOVW $(SUPER|SPL(7)), SR MOVL $0, R0 MOVL R0, CACR MOVL R0, TACADDR MOVL $a6base(SB), A6 MOVL $mach0(SB), A0 MOVL A0, m(SB) MOVL $0, 0(A0) MOVL A0, A7 ADDL $(MACHSIZE-4), A7 MOVL $0, u(SB) MOVL $vectors(SB), A0 MOVL A0, VBR BSR main(SB) /* never returns */ dead: BRA dead /* * Take first processor into user mode */ TEXT touser(SB), $-4 MOVL $(USERADDR+BY2PG), A7 MOVW $0, -(A7) MOVL $(UTZERO+32), -(A7) /* header is in text */ MOVW $0, -(A7) MOVL $(USTKTOP-4*BY2WD), A0 MOVL A0, USP MOVW $(SUPER|SPL(0)), SR MOVL $8, R0 MOVL R0, CACR RTE TEXT splhi(SB), $0 MOVL $0, R0 MOVW SR, R0 MOVW $(SUPER|SPL(7)), SR RTS TEXT spllo(SB), $0 MOVL $0, R0 MOVW SR, R0 MOVW $(SUPER|SPL(0)), SR RTS TEXT splx(SB), $0 MOVL sr+0(FP), R0 MOVW R0, SR RTS TEXT flushcpucache(SB), $0 MOVL $(CCLEAR|CENABLE), R0 MOVL R0, CACR RTS TEXT setlabel(SB), $0 MOVL sr+0(FP), A0 MOVL A7, (A0)+ /* stack pointer */ MOVL (A7), (A0)+ /* pc of caller */ MOVW SR, (A0)+ /* status register */ CLRL R0 /* ret 0 => not returning */ RTS TEXT gotolabel(SB), $0 MOVL p+0(FP), A0 MOVW $(SUPER|SPL(7)), SR MOVL (A0)+, A7 /* stack pointer */ MOVL (A0)+, (A7) /* pc; stuff into stack frame */ MOVW (A0)+, R0 /* status register */ MOVW R0, SR MOVL $1, R0 /* ret 1 => returning */ RTS /* * Test and set, as a subroutine */ TEXT tas(SB), $0 MOVL $0, R0 MOVL a+0(FP), A0 TAS (A0) BEQ tas_1 MOVL $1, R0 tas_1: RTS TEXT illegal(SB), $0 SUBL $((8+8+1)*BY2WD), A7 MOVEM $0xFFFF, (A7) MOVL $a6base(SB), A6 MOVL USP, A0 MOVL A0, ((8+8)*BY2WD)(A7) MOVL A7, -(A7) BSR trap(SB) ADDL $4, A7 MOVL ((8+8)*BY2WD)(A7), A0 MOVL A0, USP MOVEM (A7), $0xFFFF ADDL $((8+8+1)*4), A7 RTE TEXT systrap(SB), $0 SUBL $((8+8+1)*BY2WD), A7 MOVL A6, ((8+6)*BY2WD)(A7) MOVL R0, (A7) MOVL $a6base(SB), A6 MOVL USP, A0 MOVL A0, ((8+8)*BY2WD)(A7) MOVL A7, -(A7) BSR syscall(SB) MOVL ((1+8+8)*BY2WD)(A7), A0 MOVL A0, USP MOVL ((1+8+6)*BY2WD)(A7), A6 ADDL $((1+8+8+1)*4), A7 RTE TEXT buserror(SB), $0 SUBL $((8+8+1)*BY2WD), A7 MOVEM $0xFFFF, (A7) MOVL $a6base(SB), A6 MOVL USP, A0 MOVL A0, ((8+8)*BY2WD)(A7) PEA ((8+8+1+2)*BY2WD)(A7) PEA 4(A7) BSR fault(SB) ADDL $8, A7 MOVL ((8+8)*BY2WD)(A7), A0 MOVL A0, USP MOVEM (A7), $0xFFFF ADDL $((8+8+1)*4), A7 RTE TEXT tacintr(SB), $0 /* level 1 */ MOVL R0, -(A7) MOVL TACADDR, R0 ADDL $4, A7 RTE TEXT dkintr(SB), $0 /* level 2 */ SUBL $((8+8+1)*BY2WD), A7 MOVEM $0xFFFF, (A7) MOVL $a6base(SB), A6 MOVL USP, A0 MOVL A0, ((8+8)*BY2WD)(A7) MOVL A7, -(A7) BSR inconintr(SB) ADDL $4, A7 MOVL ((8+8)*BY2WD)(A7), A0 MOVL A0, USP MOVEM (A7), $0xFFFF ADDL $((8+8+1)*4), A7 RTE TEXT mouseintr(SB), $0 /* level 4 */ MOVEM $0x8082, -(A7) /* D0, A0, A6 */ MOVL $a6base(SB), A6 MOVL $15, R0 /* mask off hex switch */ ANDB MOUSE,R0 /* clears quadrature interrupt */ LEA mousetab(SB)(R0.W*8), A0 #ifdef asdf MOVL (A0)+, R0 ADDL R0, mousedx(SB) MOVL (A0), R0 ADDL R0, mousedy(SB) ADDL $1, mousechanged(SB) ADDL $1, dotrack(SB) #endif MOVEM (A7)+, $0x4101 RTE TEXT uartintr(SB), $0 /* level 5 */ SUBL $((8+8+1)*BY2WD), A7 MOVEM $0xFFFF, (A7) MOVL $a6base(SB), A6 MOVL USP, A0 MOVL A0, ((8+8)*BY2WD)(A7) MOVL A7, -(A7) BSR duartintr(SB) ADDL $4, A7 MOVL ((8+8)*BY2WD)(A7), A0 MOVL A0, USP MOVEM (A7), $0xFFFF ADDL $((8+8+1)*4), A7 RTE TEXT syncintr(SB), $0 /* level 6 */ SUBL $((8+8+1)*BY2WD), A7 MOVEM $0xFFFF, (A7) MOVL $a6base(SB), A6 MOVL USP, A0 MOVL A0, ((8+8)*BY2WD)(A7) MOVL A7, -(A7) BSR clock(SB) ADDL $4, A7 MOVL ((8+8)*BY2WD)(A7), A0 MOVL A0, USP MOVEM (A7), $0xFFFF ADDL $((8+8+1)*4), A7 RTE GLOBL mousetab(SB), $128 DATA mousetab+ 0(SB)/4, -1 /* x down, */ DATA mousetab+ 4(SB)/4, 1 /* y up */ DATA mousetab+ 8(SB)/4, 0 /* x - */ DATA mousetab+ 12(SB)/4, 1 /* y up */ DATA mousetab+ 16(SB)/4, 1 /* x up */ DATA mousetab+ 20(SB)/4, 1 /* y up */ DATA mousetab+ 24(SB)/4, 0 /* x - */ DATA mousetab+ 28(SB)/4, 1 /* y up */ DATA mousetab+ 32(SB)/4, -1 /* x down */ DATA mousetab+ 36(SB)/4, 0 /* y - */ DATA mousetab+ 40(SB)/4, 0 /* x - */ DATA mousetab+ 44(SB)/4, 0 /* y - */ DATA mousetab+ 48(SB)/4, 1 /* x up, */ DATA mousetab+ 52(SB)/4, 0 /* y - */ DATA mousetab+ 56(SB)/4, 0 /* x - */ DATA mousetab+ 60(SB)/4, 0 /* y - */ DATA mousetab+ 64(SB)/4, -1 /* x down */ DATA mousetab+ 68(SB)/4, -1 /* y down */ DATA mousetab+ 72(SB)/4, 0 /* x - */ DATA mousetab+ 76(SB)/4, -1 /* y down */ DATA mousetab+ 80(SB)/4, 1 /* x up */ DATA mousetab+ 84(SB)/4, -1 /* y down */ DATA mousetab+ 88(SB)/4, 0 /* x - */ DATA mousetab+ 92(SB)/4, -1 /* y down */ DATA mousetab+ 96(SB)/4, -1 /* x down */ DATA mousetab+100(SB)/4, 0 /* y - */ DATA mousetab+104(SB)/4, 0 /* x - */ DATA mousetab+108(SB)/4, 0 /* y - */ DATA mousetab+112(SB)/4, 1 /* x up */ DATA mousetab+116(SB)/4, 0 /* y - */ DATA mousetab+120(SB)/4, 0 /* x - */ DATA mousetab+124(SB)/4, 0 /* y - */ GLOBL mach0+0(SB), $MACHSIZE GLOBL u(SB), $4 GLOBL m(SB), $4 . ## diffname gnot/l.s 1990/0504 ## diff -e /n/bootesdump/1990/03091/sys/src/9/68020/l.s /n/bootesdump/1990/0504/sys/src/9/68020/l.s 190,194c ADDL R0, (A1)+ /* dy */ ADDL $1, (A1) /* track */ MOVEM (A7)+, $0x4301 . 188c ADDL R0, (A1)+ /* dx */ . 186c LEA mouse(SB), A1 . 181c MOVEM $0x80C2, -(A7) /* D0, A0, A1, A6 */ . ## diffname gnot/l.s 1990/0705 ## diff -e /n/bootesdump/1990/0504/sys/src/9/68020/l.s /n/bootesdump/1990/0705/sys/src/9/68020/l.s 160c MOVL (A7)+, R0 . 18c ADDL $(MACHSIZE-4), A7 /* start stack under machine struct */ . 11,12c MOVL R0, TACADDR /* zero tac counter (cause an intr?) */ . 8a MOVL $a6base(SB), A6 . ## diffname gnot/l.s 1990/0816 ## diff -e /n/bootesdump/1990/0705/sys/src/9/68020/l.s /n/bootesdump/1990/0816/sys/src/9/68020/l.s 106a TEXT rfnote(SB), $0 MOVL uregpp+0(FP), A0 MOVL (A0), A7 MOVL A7, -(A7) MOVL ((1+8+8)*BY2WD)(A7), A0 MOVL A0, USP MOVL ((1+8+6)*BY2WD)(A7), A6 ADDL $((1+8+8+1)*4), A7 RTE . ## diffname gnot/l.s 1990/08163 ## diff -e /n/bootesdump/1990/0816/sys/src/9/68020/l.s /n/bootesdump/1990/08163/sys/src/9/68020/l.s 106a /* * Floating point */ TEXT fpsave(SB), $0 FSAVE (fp+0(FP)) RTS TEXT fprestore(SB), $0 FRESTORE (fp+0(FP)) RTS TEXT fpregsave(SB), $0 FMOVEM $0xFF, (3*4)(fr+0(FP)) FMOVEMC $0x7, (fr+0(FP)) RTS TEXT fpregrestore(SB), $0 FMOVEMC (fr+0(FP)), $0x7 FMOVEM (3*4)(fr+0(FP)), $0xFF RTS TEXT fpcr(SB), $0 MOVL new+0(FP), R1 MOVL FPCR, R0 MOVL R1, FPCR RTS . ## diffname gnot/l.s 1990/08272 ## diff -e /n/bootesdump/1990/08163/sys/src/9/68020/l.s /n/bootesdump/1990/08272/sys/src/9/68020/l.s 268c MOVEM (A7), $0x7FFF . 259c MOVEM $0x7FFF, (A7) . 252c MOVEM (A7), $0x7FFF . 243c MOVEM $0x7FFF, (A7) . 220c MOVEM (A7), $0x77FFF . 211c MOVEM $0x7FFF, (A7) . 197c MOVEM (A7), $0x7FFF . 187c MOVEM $0x7FFF, (A7) . 164,165c MOVEM (A7), $0x7FFF ADDL $((8+8+1)*BY2WD), A7 . 155c MOVEM $0x7FFF, (A7) . 148,149c MOVEM (A7), $0x7FFF ADDL $((8+8+1)*BY2WD), A7 . 145,146c MOVL ((8+8)*BY2WD)(A7), A0 . ## diffname gnot/l.s 1990/0902 ## diff -e /n/bootesdump/1990/08272/sys/src/9/68020/l.s /n/bootesdump/1990/0902/sys/src/9/68020/l.s 72a TEXT cacrtrap(SB), $0 /* user entry point to control cache, e.g. flush */ MOVL R0, CACR RTE . ## diffname gnot/l.s 1990/1004 ## diff -e /n/bootesdump/1990/0902/sys/src/9/68020/l.s /n/bootesdump/1990/1004/sys/src/9/68020/l.s 65a TEXT spldone(SB), $0 RTS . 47a MOVL m(SB), A0 MOVL (A7), 4(A0) . ## diffname gnot/l.s 1990/1113 ## diff -e /n/bootesdump/1990/1004/sys/src/9/68020/l.s /n/bootesdump/1990/1113/sys/src/9/68020/l.s 158a MOVL $-1, R0 /* note causes error in sys call */ . ## diffname gnot/l.s 1990/1212 ## diff -e /n/bootesdump/1990/1113/sys/src/9/68020/l.s /n/bootesdump/1990/1212/sys/src/9/68020/l.s 203c BSR fault68020(SB) . ## diffname gnot/l.s 1991/0112 ## diff -e /n/bootesdump/1990/1212/sys/src/9/68020/l.s /n/bootesdump/1991/0112/sys/src/9/68020/l.s 217a #ifdef asdf TEXT portintr(SB), $0 /* level 2 */ SUBL $((8+8+1)*BY2WD), A7 MOVEM $0x7FFF, (A7) MOVL $a6base(SB), A6 MOVL USP, A0 MOVL A0, ((8+8)*BY2WD)(A7) MOVL A7, -(A7) BSR devportintr(SB) ADDL $4, A7 MOVL ((8+8)*BY2WD)(A7), A0 MOVL A0, USP MOVEM (A7), $0x7FFF ADDL $((8+8+1)*BY2WD), A7 RTE #endif . ## diffname gnot/l.s 1991/0115 ## diff -e /n/bootesdump/1991/0112/sys/src/9/68020/l.s /n/bootesdump/1991/0115/sys/src/9/68020/l.s 234d 218d ## diffname gnot/l.s 1991/0319 ## diff -e /n/bootesdump/1991/0201/sys/src/9/68020/l.s /n/bootesdump/1991/0319/sys/src/9/gnot/l.s 295c ADDL $((8+8+1)*BY2WD+BY2WD), A7 . 283a MOVL $DBMAGIC, -(A7) . 279c ADDL $((8+8+1)*BY2WD+BY2WD), A7 . 267a MOVL $DBMAGIC, -(A7) . 247c ADDL $((8+8+1)*BY2WD+BY2WD), A7 . 235a MOVL $DBMAGIC, -(A7) . 231c ADDL $((8+8+1)*BY2WD+BY2WD), A7 . 219a MOVL $DBMAGIC, -(A7) . 208c ADDL $((8+8+1)*BY2WD+BY2WD), A7 . 201c PEA ((8+8+1+3)*BY2WD)(A7) . 195a MOVL $DBMAGIC, -(A7) . 191c ADDL $((1+8+8+1)*BY2WD+BY2WD), A7 . 179a MOVL $DBMAGIC, -(A7) . 175c ADDL $((8+8+1)*BY2WD+BY2WD), A7 . 163a MOVL $DBMAGIC, -(A7) . 158c ADDL $((8+8+1)*BY2WD+BY2WD), A7 . 2a #define DBMAGIC 0xBADC0C0A . ## diffname gnot/l.s 1991/0423 ## diff -e /n/bootesdump/1991/0319/sys/src/9/gnot/l.s /n/bootesdump/1991/0423/sys/src/9/gnot/l.s 305a GLOBL duarttimer+0(SB),$4 TEXT duartreadtimer+0(SB), $0 MOVW SR, R1 /* spl7() */ MOVW $0x2700, SR MOVL $0x40100000, A0 CLRL R0 TSTB 15(A0) /* stop timer */ MOVW 6(A0), R0 /* read hi,lo */ TSTB 14(A0) /* restart timer */ NOTW R0 /* timer counts down from 0xffff */ ADDL duarttimer(SB), R0 MOVL R0, duarttimer(SB) MOVW R1, SR RTS . 299a /* fall through */ retintr: BSR mousetry(SB) . 283,288c BRA retintr . 250,255c BRA retintr . 240c TEXT dkintr(SB), $0 /* level 3 */ . 233,238c BRA retintr . 56a TEXT splduart(SB), $0 MOVL $0, R0 MOVW SR, R0 MOVW $(SUPER|SPL(5)), SR RTS . ## diffname gnot/l.s 1991/0503 ## diff -e /n/bootesdump/1991/0423/sys/src/9/gnot/l.s /n/bootesdump/1991/0503/sys/src/9/gnot/l.s 167c ADDL $((8+8+1+1)*BY2WD), A7 . 162,163c MOVL uregp+0(FP), A7 . ## diffname gnot/l.s 1991/0608 ## diff -e /n/bootesdump/1991/0503/sys/src/9/gnot/l.s /n/bootesdump/1991/0608/sys/src/9/gnot/l.s 47a TEXT firmware(SB), $0 MOVL $0x40000090, A0 JMP (A0) . ## diffname gnot/l.s 1991/0719 ## diff -e /n/bootesdump/1991/0608/sys/src/9/gnot/l.s /n/bootesdump/1991/0719/sys/src/9/gnot/l.s 41c MOVL $(USTKTOP-6*BY2WD), A0 /* MAXSYSARG=6 */ . 37c MOVL $(USERADDR+BY2PG-UREGVARSZ), A7 . 32c * Take first processor into user mode. Leave enough room on the stack * for a full-sized Ureg (including long bus error format) to fit . ## diffname gnot/l.s 1991/0725 ## diff -e /n/bootesdump/1991/0719/sys/src/9/gnot/l.s /n/bootesdump/1991/0725/sys/src/9/gnot/l.s 173d ## diffname gnot/l.s 1991/1102 ## diff -e /n/bootesdump/1991/0725/sys/src/9/gnot/l.s /n/bootesdump/1991/1102/sys/src/9/gnot/l.s 86a TEXT spl1(SB), $0 MOVL $0, R0 MOVW SR, R0 MOVW $(SUPER|SPL(1)), SR RTS . ## diffname gnot/l.s 1992/0301 ## diff -e /n/bootesdump/1991/1102/sys/src/9/gnot/l.s /n/bootesdump/1992/0301/sys/src/9/gnot/l.s 310c ADDL $((8+8+1)*BY2WD), A7 MOVL $0, (A7)+ . 231c ADDL $((8+8+1)*BY2WD), A7 MOVL $0, (A7)+ . 213c ADDL $((1+8+8+1)*BY2WD), A7 MOVL $0, (A7)+ . 196c ADDL $((8+8+1)*BY2WD), A7 MOVL $0, (A7)+ . ## diffname gnot/l.s 1992/0318 ## diff -e /n/bootesdump/1992/0301/sys/src/9/gnot/l.s /n/bootesdump/1992/0318/sys/src/9/gnot/l.s 42d 37a MOVL usp+0(FP), A0 . 36c TEXT touser(SB), $0 . 33a * - argument is stack pointer to user . 32c * Take first processor into user mode. Leave enough room on the kernel stack . ## diffname gnot/l.s 1992/0806 ## diff -e /n/bootesdump/1992/0318/sys/src/9/gnot/l.s /n/bootesdump/1992/0806/sys/src/9/gnot/l.s 173d ## diffname gnot/l.s 1992/0914 ## diff -e /n/bootesdump/1992/0806/sys/src/9/gnot/l.s /n/bootesdump/1992/0914/sys/src/9/gnot/l.s 332a TEXT getsr+0(SB), $0 MOVL $0, R0 MOVW SR, R0 RTS . ## diffname gnot/l.s 1993/0226 ## diff -e /n/bootesdump/1992/0914/sys/src/9/gnot/l.s /n/bootesdump/1993/0226/sys/src/9/gnot/l.s 308d ## diffname gnot/l.s 1993/0501 # deleted ## diff -e /n/bootesdump/1993/0226/sys/src/9/gnot/l.s /n/fornaxdump/1993/0501/sys/src/brazil/gnot/l.s 1,373d