1: /
   2: /
   3: 
   4: / a6 -- pdp-11 assembler pass 2
   5: 
   6: opline:
   7:         mov     r4,r0
   8:         jsr     r5,betwen; 0; 177
   9:                 br 2f
  10:         cmp     r4,$5
  11:         beq     opeof
  12:         cmp     r4,$'<
  13:         bne     xpr
  14:         jmp     opl17
  15: xxpr:
  16:         tst     (sp)+
  17: xpr:
  18:         jsr     pc,expres
  19:         jsr     pc,outw
  20:         rts     pc
  21: 2:
  22:         movb    (r4),r0
  23:         cmp     r0,$24          /reg
  24:         beq     xpr
  25:         cmp     r0,$33          /est text
  26:         beq     xpr
  27:         cmp     r0,$34          / est data
  28:         beq     xpr
  29:         jsr     r5,betwen; 5; 36
  30:                 br xpr
  31:         mov     2(r4),-(sp)
  32:         mov     r0,-(sp)
  33:         jsr     pc,readop
  34:         mov     (sp)+,r0
  35:         asl     r0
  36:         mov     $adrbuf,r5
  37:         clr     swapf
  38:         mov     $-1,rlimit
  39:         jmp     *1f-10.(r0)
  40: 
  41: 1:
  42:         opl5
  43:         opl6
  44:         opl7
  45:         opl10
  46:         opl11
  47:         opl12
  48:         opl13
  49:         opl14
  50:         opl15
  51:         opl16
  52:         opl17
  53:         opl20
  54:         opl21
  55:         opl22
  56:         opl23
  57:         xxpr
  58:         opl25
  59:         opl26
  60:         opl27
  61:         opl30
  62:         opl31
  63:         opl32
  64:         xxpr
  65:         xxpr
  66:         opl35
  67:         opl36
  68: 
  69: opeof:
  70:         mov     $1,line
  71:         mov     $20,-(sp)
  72:         mov     $argb,r1
  73: 1:
  74:         jsr     pc,getw
  75:         tst     r4
  76:         bmi     1f
  77:         movb    r4,(r1)+
  78:         dec     (sp)
  79:         bgt     1b
  80:         tstb    -(r1)
  81:         br      1b
  82: 1:
  83:         movb    $'\n,(r1)+
  84:         clrb    (r1)+
  85:         tst     (sp)+
  86:         rts     pc
  87: 
  88: opl30:  / mpy, dvd etc
  89:         inc     swapf
  90:         mov     $1000,rlimit
  91:         br      opl13
  92: 
  93: opl14:          / flop freg,fsrc
  94:         inc     swapf
  95: 
  96: opl5:           / flop src,freg
  97:         mov     $400,rlimit
  98: 
  99: /double
 100: opl13:
 101:         jsr     pc,addres
 102: op2a:
 103:         mov     r2,-(sp)
 104:         jsr     pc,readop
 105: op2b:
 106:         jsr     pc,addres
 107:         tst     swapf
 108:         beq     1f
 109:         mov     (sp),r0
 110:         mov     r2,(sp)
 111:         mov     r0,r2
 112: 1:
 113:         swab    (sp)
 114:         asr     (sp)
 115:         asr     (sp)
 116:         cmp     (sp),rlimit
 117:         blo     1f
 118:         jsr     r5,error; 'x
 119: 1:
 120:         bis     (sp)+,r2
 121:         bis     (sp)+,r2
 122:         clr     r3
 123:         jsr     pc,outw
 124:         mov     $adrbuf,r1
 125: 1:
 126:         cmp     r1,r5
 127:         bhis    1f
 128:         mov     (r1)+,r2
 129:         mov     (r1)+,r3
 130:         mov     (r1)+,xsymbol
 131:         jsr     pc,outw
 132:         br      1b
 133: 1:
 134:         rts     pc
 135: 
 136: opl15:          / single operand
 137:         clr     -(sp)
 138:         br      op2b
 139: 
 140: opl12:          / movf
 141:         mov     $400,rlimit
 142:         jsr     pc,addres
 143:         cmp     r2,$4           / see if source is fregister
 144:         blo     1f
 145:         inc     swapf
 146:         br      op2a
 147: 1:
 148:         mov     $174000,(sp)
 149:         br      op2a
 150: 
 151: / jbr
 152: opl35:
 153: / jeq, jne, etc
 154: opl36:
 155:         jsr     pc,expres
 156:         tstb    passno
 157:         bne     1f
 158:         mov     r2,r0
 159:         jsr     pc,setbr
 160:         tst     r2
 161:         beq     2f
 162:         cmp     (sp),$br
 163:         beq     2f
 164:         add     $2,r2
 165: 2:
 166:         add     r2,dot          / if doesn't fit
 167:         add     $2,dot
 168:         tst     (sp)+
 169:         rts     pc
 170: 1:
 171:         jsr     pc,getbr
 172:         bcc     dobranch
 173:         mov     (sp)+,r0
 174:         mov     r2,-(sp)
 175:         mov     r3,-(sp)
 176:         cmp     r0,$br
 177:         beq     2f
 178:         mov     $402,r2
 179:         xor     r0,r2           / flip cond, add ".+6"
 180:         mov     $1,r3
 181:         jsr     pc,outw
 182: 2:
 183:         mov     $1,r3
 184:         mov     $jmp+37,r2
 185:         jsr     pc,outw
 186:         mov     (sp)+,r3
 187:         mov     (sp)+,r2
 188:         jsr     pc,outw
 189:         rts     pc
 190: 
 191: /sob
 192: opl31:  / sob
 193:         jsr     pc,expres
 194:         jsr     pc,checkreg
 195:         swab    r2
 196:         asr     r2
 197:         asr     r2
 198:         bis     r2,(sp)
 199:         jsr     pc,readop
 200:         jsr     pc,expres
 201:         tstb    passno
 202:         beq     3f
 203:         sub     dot,r2
 204:         neg     r2
 205:         mov     r2,r0
 206:         jsr     r5,betwen; -2; 175
 207:                 br 2f
 208:         add     $4,r2
 209:         br      1f
 210: 
 211: /branch
 212: opl6:
 213:         jsr     pc,expres
 214:         tstb    passno
 215:         beq     3f
 216: dobranch:
 217:         sub     dot,r2
 218:         mov     r2,r0
 219:         jsr     r5,betwen; -254.; 256.
 220:                 br 2f
 221: 1:
 222:         bit     $1,r2
 223:         bne     2f
 224:         cmp     r3,dot-2        / same relocation as .
 225:         bne     2f
 226:         asr     r2
 227:         dec     r2
 228:         bic     $177400,r2
 229: 3:
 230:         bis     (sp)+,r2
 231:         clr     r3
 232:         jsr     pc,outw
 233:         rts     pc
 234: 2:
 235:         jsr     r5,error; 'b
 236:         clr     r2
 237:         br      3b
 238: 
 239: /jsr
 240: opl7:
 241:         jsr     pc,expres
 242:         jsr     pc,checkreg
 243:         jmp     op2a
 244: 
 245: / rts
 246: opl10:
 247:         jsr     pc,expres
 248:         jsr     pc,checkreg
 249:         br      1f
 250: 
 251: / sys, emt etc
 252: opl11:
 253:         jsr     pc,expres
 254:         cmp     r2,$256.
 255:         bhis    0f
 256:         cmp     r3,$1
 257:         ble     1f
 258: 0:
 259:         jsr     pc,errora
 260: 1:
 261:         bis     (sp)+,r2
 262:         jsr     pc,outw
 263:         rts     pc
 264: 
 265: / .byte
 266: opl16:
 267:         jsr     pc,expres
 268:         jsr     pc,outb
 269:         cmp     r4,$',
 270:         bne     1f
 271:         jsr     pc,readop
 272:         br      opl16
 273: 1:
 274:         tst     (sp)+
 275:         rts     pc
 276: 
 277: / < (.ascii)
 278: opl17:
 279:         jsr     pc,getw
 280:         mov     $1,r3
 281:         mov     r4,r2
 282:         bmi     2f
 283:         bic     $!377,r2
 284:         jsr     pc,outb
 285:         br      opl17
 286: 2:
 287:         jsr     pc,getw
 288:         rts     pc
 289: 
 290: /.even
 291: opl20:
 292:         bit     $1,dot
 293:         beq     1f
 294:         cmp     dot-2,$4
 295:         beq     2f              / bss mode
 296:         clr     r2
 297:         clr     r3
 298:         jsr     pc,outb
 299:         br      1f
 300: 2:
 301:         inc     dot
 302: 1:
 303:         tst     (sp)+
 304:         rts     pc
 305: opl21:  /if
 306:         jsr     pc,expres
 307: opl22:
 308: oplret:
 309:         tst     (sp)+
 310:         rts     pc
 311: 
 312: 
 313: /.globl
 314: opl23:
 315:         cmp     r4,$200
 316:         blo     1f
 317:         bisb    $40,(r4)
 318:         jsr     pc,readop
 319:         cmp     r4,$',
 320:         bne     1f
 321:         jsr     pc,readop
 322:         br      opl23
 323: 1:
 324:         tst     (sp)+
 325:         rts     pc
 326: 
 327: / .text, .data, .bss
 328: opl25:
 329: opl26:
 330: opl27:
 331:         inc     dot
 332:         bic     $1,dot
 333:         mov     r0,-(sp)
 334:         mov     dot-2,r1
 335:         asl     r1
 336:         mov     dot,savdot-4(r1)
 337:         tstb    passno
 338:         beq     1f
 339:         jsr     r5,flush; txtp
 340:         jsr     r5,flush; relp
 341:         mov     (sp),r2
 342:         asl     r2
 343:         add     $txtseek-[4*25],r2
 344:         mov     r2,tseekp
 345:         mov     (r2),r0
 346:         mov     2(r2),r1
 347:         jsr     r5,oset; txtp
 348:         add     $trelseek-txtseek,r2
 349:         mov     (r2),r0
 350:         mov     2(r2),r1
 351:         mov     r2,rseekp
 352:         jsr     r5,oset; relp
 353: 1:
 354:         mov     (sp)+,r0
 355:         mov     savdot-[2*25](r0),dot
 356:         asr     r0
 357:         sub     $25-2,r0
 358:         mov     r0,dot-2        / new . relocation
 359:         tst     (sp)+
 360:         rts     pc
 361: 
 362: opl32:
 363:         cmp     r4,$200
 364:         blo     1f
 365:         mov     r4,-(sp)
 366:         jsr     pc,readop
 367:         jsr     pc,readop
 368:         jsr     pc,expres
 369:         mov     (sp)+,r0
 370:         bit     $37,(r0)
 371:         bne     1f
 372:         bis     $40,(r0)
 373:         mov     r2,2(r0)
 374: 1:
 375:         tst     (sp)+
 376:         rts     pc
 377: 
 378: addres:
 379:         clr     -(sp)
 380: 4:
 381:         cmp     r4,$'(
 382:         beq     alp
 383:         cmp     r4,$'-
 384:         beq     amin
 385:         cmp     r4,$'$
 386:         beq     adoll
 387:         cmp     r4,$'*
 388:         bne     getx
 389:         jmp     astar
 390: getx:
 391:         jsr     pc,expres
 392:         cmp     r4,$'(
 393:         bne     2f
 394:         jsr     pc,readop
 395:         mov     r2,(r5)+
 396:         mov     r3,(r5)+
 397:         mov     xsymbol,(r5)+
 398:         jsr     pc,expres
 399:         jsr     pc,checkreg
 400:         jsr     pc,checkrp
 401:         bis     $60,r2
 402:         bis     (sp)+,r2
 403:         rts     pc
 404: 
 405: 2:
 406:         cmp     r3,$24
 407:         bne     1f
 408:         jsr     pc,checkreg
 409:         bis     (sp)+,r2
 410:         rts     pc
 411: 1:
 412:         mov     r3,-(sp)
 413:         bic     $40,r3
 414:         mov     (sp)+,r3
 415:         bis     $100000,r3
 416:         sub     dot,r2
 417:         sub     $4,r2
 418:         cmp     r5,$adrbuf
 419:         beq     1f
 420:         sub     $2,r2
 421: 1:
 422:         mov     r2,(r5)+                / index
 423:         mov     r3,(r5)+                / index reloc.
 424:         mov     xsymbol,(r5)+           / index global
 425:         mov     $67,r2                  / address mode
 426:         bis     (sp)+,r2
 427:         rts     pc
 428: 
 429: alp:
 430:         jsr     pc,readop
 431:         jsr     pc,expres
 432:         jsr     pc,checkrp
 433:         jsr     pc,checkreg
 434:         cmp     r4,$'+
 435:         beq     1f
 436:         tst     (sp)+
 437:         beq     2f
 438:         bis     $70,r2
 439:         clr     (r5)+
 440:         clr     (r5)+
 441:         mov     xsymbol,(r5)+
 442:         rts     pc
 443: 2:
 444:         bis     $10,r2
 445:         rts     pc
 446: 1:
 447:         jsr     pc,readop
 448:         bis     $20,r2
 449:         bis     (sp)+,r2
 450:         rts     pc
 451: 
 452: amin:
 453:         jsr     pc,readop
 454:         cmp     r4,$'(
 455:         beq     1f
 456:         mov     r4,savop
 457:         mov     $'-,r4
 458:         br      getx
 459: 1:
 460:         jsr     pc,readop
 461:         jsr     pc,expres
 462:         jsr     pc,checkrp
 463:         jsr     pc,checkreg
 464:         bis     (sp)+,r2
 465:         bis     $40,r2
 466:         rts     pc
 467: 
 468: adoll:
 469:         jsr     pc,readop
 470:         jsr     pc,expres
 471:         mov     r2,(r5)+
 472:         mov     r3,(r5)+
 473:         mov     xsymbol,(r5)+
 474:         mov     (sp)+,r2
 475:         bis     $27,r2
 476:         rts     pc
 477: 
 478: astar:
 479:         tst     (sp)
 480:         beq     1f
 481:         jsr     r5,error; '*
 482: 1:
 483:         mov     $10,(sp)
 484:         jsr     pc,readop
 485:         jmp     4b
 486: 
 487: errora:
 488:         jsr     r5,error; 'a
 489:         rts     pc
 490: 
 491: checkreg:
 492:         cmp     r2,$7
 493:         bhi     1f
 494:         cmp     r1,$1
 495:         blos    2f
 496:         cmp     r3,$5
 497:         blo     1f
 498: 2:
 499:         rts     pc
 500: 1:
 501:         jsr     pc,errora
 502:         clr     r2
 503:         clr     r3
 504:         rts     pc
 505: 
 506: errore:
 507:         jsr     r5,error; 'e
 508:         rts     pc
 509: 
 510: checkrp:
 511:         cmp     r4,$')
 512:         beq     1f
 513:         jsr     r5,error; ')
 514:         rts     pc
 515: 1:
 516:         jsr     pc,readop
 517:         rts     pc
 518: 
 519: setbr:
 520:         mov     brtabp,r1
 521:         cmp     r1,$brlen
 522:         blt     1f
 523:         mov     $2,r2
 524:         rts     pc
 525: 1:
 526:         inc     brtabp
 527:         clr     -(sp)
 528:         sub     dot,r0
 529:         ble     1f
 530:         sub     brdelt,r0
 531: 1:
 532:         jsr     r5,betwen; -254.; 256.
 533:                 br 1f
 534:         br      2f
 535: 1:
 536:         mov     r1,-(sp)
 537:         bic     $!7,(sp)
 538:         mov     $1,r0
 539:         ash     (sp)+,r0
 540:         ash     $-3,r1
 541:         bisb    r0,brtab(r1)
 542:         mov     $2,(sp)
 543: 2:
 544:         mov     (sp)+,r2
 545:         rts     pc
 546: 
 547: getbr:
 548:         mov     brtabp,r1
 549:         cmp     r1,$brlen
 550:         blt     1f
 551:         sec
 552:         rts     pc
 553: 1:
 554:         mov     r1,-(sp)
 555:         bic     $!7,(sp)
 556:         neg     (sp)
 557:         inc     brtabp
 558:         ash     $-3,r1
 559:         movb    brtab(r1),r1
 560:         ash     (sp)+,r1
 561:         ror     r1              / 0-bit into c-bit
 562:         rts     pc

Defined functions

addres defined in line 378; used 3 times
adoll defined in line 468; used 1 times
alp defined in line 429; used 1 times
amin defined in line 452; used 1 times
astar defined in line 478; used 1 times
checkreg defined in line 491; used 7 times
checkrp defined in line 510; used 3 times
dobranch defined in line 216; used 1 times
errora defined in line 487; used 2 times
errore defined in line 506; never used
getbr defined in line 547; used 1 times
getx defined in line 390; used 2 times
op2a defined in line 102; used 3 times
op2b defined in line 105; used 1 times
opeof defined in line 69; used 1 times
  • in line 11
opl10 defined in line 246; used 1 times
  • in line 45
opl11 defined in line 252; used 1 times
  • in line 46
opl12 defined in line 140; used 1 times
  • in line 47
opl13 defined in line 100; used 2 times
opl14 defined in line 93; used 1 times
  • in line 49
opl15 defined in line 136; used 1 times
  • in line 50
opl16 defined in line 266; used 2 times
opl17 defined in line 278; used 3 times
opl20 defined in line 291; used 1 times
  • in line 53
opl21 defined in line 305; used 1 times
  • in line 54
opl22 defined in line 307; used 1 times
  • in line 55
opl23 defined in line 314; used 2 times
opl25 defined in line 328; used 1 times
  • in line 58
opl26 defined in line 329; used 1 times
  • in line 59
opl27 defined in line 330; used 1 times
  • in line 60
opl30 defined in line 88; used 1 times
  • in line 61
opl31 defined in line 192; used 1 times
  • in line 62
opl32 defined in line 362; used 1 times
  • in line 63
opl35 defined in line 152; used 1 times
  • in line 66
opl36 defined in line 154; used 1 times
  • in line 67
opl5 defined in line 96; used 1 times
  • in line 42
opl6 defined in line 212; used 1 times
  • in line 43
opl7 defined in line 240; used 1 times
  • in line 44
opline defined in line 6; never used
oplret defined in line 308; never used
setbr defined in line 519; used 1 times
xpr defined in line 17; used 5 times
xxpr defined in line 15; used 3 times
Last modified: 1981-07-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 520
Valid CSS Valid XHTML 1.0 Strict