Annotation of researchv9/jerq/src/mux/term/pl.s, revision 1.1

1.1     ! root        1:        .set    CONTROL_STATE, 4516
        !             2:        .text
        !             3:        .align  8
        !             4:        .globl  P
        !             5:        .globl  Sys
        !             6: P:
        !             7: Sys:
        !             8:        # start of Sys
        !             9:        .word   0       # this is really P == Sys[0]
        !            10:        .word   defont
        !            11:        .word   add
        !            12:        .word   Uaddr
        !            13:        .word   alarm
        !            14:        .word   Ualloc
        !            15:        .word   Uballoc
        !            16:        .word   bfree
        !            17:        .word   Ubitblt
        !            18:        .word   Ucursallow
        !            19:        .word   Ucursinhibit
        !            20:        .word   Ucursset
        !            21:        .word   Ucursswitch
        !            22:        .word   debug
        !            23:        .word   dellayer
        !            24:        .word   div
        !            25:        .word   eqrect
        !            26:        .word   Uexit
        !            27:        .word   free
        !            28:        .word   realgcalloc
        !            29:        .word   gcfree
        !            30:        .word   Uogetrect
        !            31:        .word   inset
        !            32:        .word   cursallow
        !            33:        .word   cursinhibit
        !            34:        .word   Ukbdchar
        !            35:        .word   lpoint
        !            36:        .word   lrectf
        !            37:        .word   lsegment
        !            38:        .word   ltexture
        !            39:        .word   menuhit
        !            40:        .word   mul
        !            41:        .word   muxnewwind
        !            42:        .word   nap
        !            43:        .word   newlayer
        !            44:        .word   Unewproc
        !            45:        .word   Unewwindow
        !            46:        .word   Uown
        !            47:        .word   Upoint
        !            48:        .word   ptinrect
        !            49:        .word   raddp
        !            50:        .word   Urcvchar
        !            51:        .word   realtime
        !            52:        .word   rectXrect
        !            53:        .word   rectclip
        !            54:        .word   Urectf
        !            55:        .word   Urequest
        !            56:        .word   rsubp
        !            57:        .word   Uscreenswap
        !            58:        .word   Usegment
        !            59:        .word   Usendchar
        !            60:        .word   sendwithdelim
        !            61:        .word   sleep
        !            62:        .word   0
        !            63:        .word   string
        !            64:        .word   strwidth
        !            65:        .word   sub
        !            66:        .word   Utexture
        !            67:        .word   tolayer
        !            68:        .word   upfront
        !            69:        .word   Uwait
        !            70:        .word   muxkill
        !            71:        .word   setmuxbuf
        !            72:        .word   getmuxbuf
        !            73:        .word   insure
        !            74:        .word   GCalloc
        !            75:        .word   movstring
        !            76:        .word   insstring
        !            77:        .word   delstring
        !            78:        .word   frselect
        !            79:        .word   fralloc
        !            80:        .word   frsetrects
        !            81:        .word   frinit
        !            82:        .word   frfree
        !            83:        .word   ptofchar
        !            84:        .word   charofpt
        !            85:        .word   border
        !            86:        .word   getproctab
        !            87:        .word   lbitblt
        !            88:        .word   getrect
        !            89:        .word   getrectb
        !            90:        .word   qputc
        !            91:        .word   qgetc
        !            92:        .word   qputstr
        !            93:        .word   qclear
        !            94:        .word   jstrwidth
        !            95:        .word   getproc
        !            96:        .word   layerop
        !            97:        .word   putname
        !            98:        .word   getname
        !            99:        .word   qpeekc
        !           100:        # end of Sys
        !           101:        .globl  _start
        !           102:        .align  8
        !           103: _start:
        !           104:        call    &0,main
        !           105:        RETPS
        !           106: 
        !           107:        .text
        !           108:        .align  8
        !           109:        .globl  msvid_int
        !           110: msvid_int:
        !           111:        SAVE    %r8
        !           112:        MOVB    0x200013,%r5
        !           113:        BITB    &0x40,%r5
        !           114:        BEB     mous_chk
        !           115:        BITB    &0x04,%r5       # update only at 60 hz. rate
        !           116:        BNEB    mous_chk        # if fall through, have a video interrupt
        !           117:        call    &0,auto1                # calls cursor update in cursor.c
        !           118:        call    &0,clockroutine
        !           119: mous_chk:
        !           120:        BITB    &0xb0,%r5
        !           121:        BEB     msvid_exit
        !           122:                                # if fall through, have a mouse interrupt
        !           123:        call    &0,auto4                # call buttons handler in buttons.c
        !           124:        orw2    &1,proctab+CONTROL_STATE
        !           125: msvid_exit:
        !           126:        RESTORE %r8
        !           127:        RETPS
        !           128: 
        !           129:        .text
        !           130:        .align  8
        !           131:        .globl  key_int
        !           132: key_int:
        !           133:        call    &0,auto2
        !           134:        RETPS
        !           135: 
        !           136:        .text
        !           137:        .align  8
        !           138:        .globl  host_int
        !           139: host_int:
        !           140:        pushw   &queues
        !           141:        andw3   0x20000c,&255,%r0
        !           142:        pushw   %r0
        !           143:        call    &2,qputc
        !           144:        orw2    &1,proctab+80
        !           145:        RETPS
        !           146: 
        !           147:        .text
        !           148:        .align  8
        !           149:        .globl  out_int
        !           150: out_int:
        !           151:        call    &0,aciatrint
        !           152:        RETPS
        !           153: 
        !           154:        .text
        !           155:        .align  8
        !           156:        .globl  pioh_int
        !           157: pioh_int:
        !           158:        TSTB    0x300003
        !           159:        RETPS
        !           160: 
        !           161:        .text
        !           162:        .align  8
        !           163:        .globl  piol_int
        !           164: piol_int:
        !           165:        TSTB    0x300003
        !           166:        RETPS
        !           167: 
        !           168:        .data
        !           169:        .globl  ticks0
        !           170:        .bss    ticks0,4,4
        !           171: 
        !           172:        .text
        !           173:        .align  8
        !           174:        .globl  realtime
        !           175: realtime: movw ticks0,%r0
        !           176:        RET
        !           177: 
        !           178: #      .globl  reboot
        !           179: #reboot:
        !           180: #exit:
        !           181: #      movaw   reset_pcb,%r0                   # when return then reboot
        !           182: #      CALLPS                          # reboot the entire system
        !           183: #      jmp     reboot                  #  boo-boo if you get here
        !           184: 
        !           185:        .globl  callps
        !           186:        .align  8
        !           187: callps:
        !           188:        movw    0(%ap), %r0
        !           189:        CALLPS
        !           190:        RET
        !           191: 
        !           192:        .globl  resume
        !           193:        .align  8
        !           194: resume:
        !           195:        movw    0(%ap), -4(%isp)
        !           196:        RETPS
        !           197: 
        !           198:        .globl  retps
        !           199:        .align  8
        !           200: retps:
        !           201:        RETPS
        !           202: 
        !           203:        .globl  spl0
        !           204:        .align  8
        !           205: spl0:  movw    %psw,%r0
        !           206:        ANDW2   &0xfffe1fff,%psw        # turn off all priority bits
        !           207:        TSTW    %r0
        !           208:        RET
        !           209: 
        !           210:        .globl  spl1
        !           211:        .globl  spl4
        !           212:        .align  8
        !           213: spl1:
        !           214: spl4:  movw    %psw,%r0
        !           215:        INSFW   &4,&13,&14,%psw
        !           216:        TSTW    %r0
        !           217:        RET
        !           218: 
        !           219:        .globl  spl5
        !           220:        .globl  spl6
        !           221:        .globl  spl7
        !           222:        .align  8
        !           223: spl5:
        !           224: spl6:
        !           225: spl7:  movw    %psw,%r0
        !           226:        ORW2    &0x1e000,%psw
        !           227:        TSTW    %r0
        !           228:        RET
        !           229:        .globl  splx
        !           230:        .align  8
        !           231: splx:
        !           232:        movw    %psw,%r0
        !           233:        LRSW3   &13,0(%ap),%r1
        !           234:        INSFW   &4,&13,%r1,%psw
        !           235:        TSTW    %r0
        !           236:        RET
        !           237: 
        !           238:        .globl  excep_norm
        !           239:        .align  8
        !           240: excep_norm:
        !           241:        ORW2    &0x281e000,%psw # IPL up to 15
        !           242:        TSTW    %r0             # let psw bits settle 
        !           243:        PUSHW   %r0             # save temporary registers 0-2
        !           244:        PUSHW   %r1
        !           245:        PUSHW   %r2
        !           246:        PUSHW   %r3             # save register variables 3-8
        !           247:        PUSHW   %r4
        !           248:        PUSHW   %r5
        !           249:        PUSHW   %r6
        !           250:        PUSHW   %r7
        !           251:        PUSHW   %r8
        !           252:        PUSHW   %r9             # save fp
        !           253:        PUSHW   %r10            # save ap
        !           254:        PUSHW   -48(%sp)        # save psw
        !           255:        PUSHAW  -56(%sp)        # save sp's value at interrupt
        !           256:        PUSHW   &3              # type = NORMAL
        !           257:        PUSHAW  -64(%sp)        # address of pc from normal gate
        !           258:        PUSHAW  -64(%sp)        # address of psw from normal gate
        !           259:        PUSHW   -68(%sp)        # psw from normal gate
        !           260:        PUSHW   %pcbp           # (not used!)
        !           261:        call    &5,trap         # trap will decide to return or not
        !           262:        POPW    %r0             # ignore saved sp/psw
        !           263:        POPW    %r0
        !           264:        POPW    %r10            # restore ap/fp
        !           265:        POPW    %r9
        !           266:        POPW    %r8             # restore register variables 3-8
        !           267:        POPW    %r7
        !           268:        POPW    %r6
        !           269:        POPW    %r5
        !           270:        POPW    %r4
        !           271:        POPW    %r3
        !           272:        POPW    %r2             # restore temporary registers 0-2
        !           273:        POPW    %r1
        !           274:        POPW    %r0
        !           275:        RETG                    # resume if trap allows (brkpt or trace)
        !           276: 
        !           277:        .globl  excep_stack
        !           278:        .align  8
        !           279: excep_stack:
        !           280:        MOVW    -0x4(%isp),%r0  # get saved %pcbp 
        !           281:        PUSHW   &2              # type = STACK
        !           282:        PUSHAW  0x4(%r0)        # push address of saved pc 
        !           283:        PUSHAW  0x0(%r0)        # push address of saved psw 
        !           284:        PUSHW   0x0(%r0)        # push saved psw 
        !           285:        PUSHW   %r0             # push saved pcbp 
        !           286:        call    &5,trap         # let trap handle the situation
        !           287:        RETPS                   # if trap returns
        !           288:        .globl  excep_int
        !           289:        .globl  excep_proc
        !           290:        .align  8
        !           291: excep_int:
        !           292: excep_proc:
        !           293:        MOVW    -0x4(%isp),%r0  # get saved %pcbp 
        !           294:        PUSHW   &1              # type = PROCESS
        !           295:        PUSHAW  0x4(%r0)        # push address of saved pc 
        !           296:        PUSHAW  0x0(%r0)        # push address of saved psw 
        !           297:        PUSHW   0x0(%r0)        # push saved psw 
        !           298:        PUSHW   %r0             # push saved pcbp 
        !           299:        call    &5,trap         # let trap handle the situation
        !           300:        RETPS                   # if trap returns
        !           301: 
        !           302: #      hacks
        !           303:        .globl  ringbell
        !           304:        .globl  test32
        !           305:        .globl  pfkey
        !           306:        .globl  curse
        !           307:        .globl  pt
        !           308:        .align  8
        !           309: ringbell:
        !           310: test32:
        !           311: pfkey:
        !           312: curse:
        !           313: pt:
        !           314:        RET
        !           315: 
        !           316:        .data
        !           317:        .comm   blocked,4
        !           318:        .comm   ublocked,4
        !           319:        .comm   cur,4

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.