1: / unix DEC-tape time/mtrack track formatter
   2: 
   3: nword = 256.
   4: nblock = 578.
   5: endz = 7200.
   6: 
   7: ps = 177776
   8: tcst = 177340
   9: tccm = 177342
  10: tcwc = 177344
  11: tcba = 177346
  12: tcdt = 177350
  13: 
  14:         mov     r5,savr5
  15:         mov     sp,savsp
  16: 
  17: start:
  18:         mov     savr5,r5
  19:         mov     savsp,sp
  20:         jsr     pc,4(r5)
  21:                 <set up to format on drive 0\n\0>
  22:                 .even
  23: 
  24:         clr     r0
  25:         mov     $cobtab,r1
  26: 1:
  27:         jsr     pc,bcomobv
  28:         mov     r2,(r1)+
  29:         inc     r0
  30:         cmp     r0,$512.
  31:         bne     1b
  32: 
  33:         mov     $buffer,r0
  34: 1:
  35:         mov     $-1,(r0)+
  36:         cmp     r0,$buffer+nword+nword
  37:         blo     1b
  38: 
  39:         mov     savr5,r5
  40:         jsr     pc,2(r5)
  41: 
  42:         mov     $340,ps
  43:         mov     $tcdt,r5
  44:         mov     $13,tccm
  45:         jsr     pc,flag
  46: 
  47: / 8Kch for end zone
  48: 
  49:         mov     $endz,r4
  50: 1:
  51:         jsr     r0,mtrack; 101101
  52:         dec     r4
  53:         bne     1b
  54: 
  55: / foreward guard
  56: 
  57:         mov     $199.,r4
  58: 1:
  59:         jsr     r0,mtrack; 10101
  60:         dec     r4
  61:         bne     1b
  62: 
  63: / blocks
  64: 
  65:         mov     $nblock,r3
  66: 1:
  67:         jsr     r0,mtrack; 10101
  68:         jsr     r0,mtrack; 10110
  69:         jsr     r0,mtrack; 11010
  70:         jsr     r0,mtrack; 01000
  71:         jsr     r0,mtrack; 01000
  72:         jsr     r0,mtrack; 01000
  73:         jsr     r0,mtrack; 01000
  74:         mov     $nword-4,r4
  75: 2:
  76:         jsr     r0,mtrack; 111000
  77:         dec     r4
  78:         bne     2b
  79:         jsr     r0,mtrack; 111011
  80:         jsr     r0,mtrack; 111011
  81:         jsr     r0,mtrack; 111011
  82:         jsr     r0,mtrack; 111011
  83:         jsr     r0,mtrack; 101001
  84:         jsr     r0,mtrack; 100101
  85:         jsr     r0,mtrack; 10101
  86:         dec     r3
  87:         bne     1b
  88: 
  89: / rear guard
  90: 
  91:         mov     $199.,r4
  92: 1:
  93:         jsr     r0,mtrack; 10101
  94:         dec     r4
  95:         bne     1b
  96: 
  97: / rear end zone
  98: 
  99:         mov     $endz,r4
 100: 1:
 101:         jsr     r0,mtrack; 10010
 102:         dec     r4
 103:         bne     1b
 104:         clr     tccm
 105: 
 106: / end of mtrack pass
 107: / go back 12 blocks
 108: 
 109:         mov     $12.,r0
 110:         mov     $4002,tccm
 111: 1:
 112:         incb    tccm
 113:         jsr     pc,flag
 114:         dec     r0
 115:         bne     1b
 116: 
 117: / put comobv(nblock-1) in everything
 118: / up to end zone
 119: 
 120:         mov     $nblock-1,r0
 121:         mov     r0,bn
 122:         jsr     pc,comobv
 123:         mov     $17,tccm
 124:         jsr     pc,flag
 125: 1:
 126:         movb    r1,tcst
 127:         mov     r0,(r5)
 128:         jsr     pc,flag1
 129:                 br 1b
 130: 
 131: / reverse pass put in
 132: / foreward and reverse
 133: / block numbers
 134: 
 135:         mov     $4017,tccm
 136:         jsr     pc,flag
 137: 1:
 138:         mov     $nword+3.,r4
 139: 2:
 140:         clrb    tcst
 141:         clr     (r5)
 142:         jsr     pc,flag
 143:         dec     r4
 144:         bne     2b
 145: 
 146:         clrb    tcst
 147:         clr     (r5)
 148:         mov     bn,r0
 149:         jsr     pc,comobv
 150:         jsr     pc,flag
 151:         movb    r1,tcst
 152:         mov     r0,(r5)
 153:         jsr     pc,flag
 154:         dec     bn
 155:         blt     check
 156:         clrb    tcst
 157:         clr     (r5)
 158:         jsr     pc,flag
 159:         clrb    tcst
 160:         clr     (r5)
 161:         jsr     pc,flag
 162:         clrb    tcst
 163:         mov     bn,(r5)
 164:         jsr     pc,flag
 165:         clrb    tcst
 166:         clr     (r5)
 167:         jsr     pc,flag
 168:         clrb    tcst
 169:         clr     (r5)
 170:         jsr     pc,flag
 171:         br      1b
 172: 
 173: / foreward pass
 174: / confirm block numbers
 175: / write all 1's in data
 176: 
 177: check:
 178:         clrb    tcst
 179:         clr     (r5)
 180:         jsr     pc,flag1
 181:                 br check
 182:         clr     r4
 183: 1:
 184:         mov     $3,tccm
 185:         jsr     pc,flag
 186:         cmp     (r5),r4
 187:         bne     error1
 188:         mov     $-nword,tcwc
 189:         mov     $buffer,tcba
 190:         mov     $15,tccm
 191:         jsr     pc,flag
 192:         inc     r4
 193:         cmp     r4,$nblock
 194:         bne     1b
 195:         mov     $3,tccm
 196:         jsr     pc,flag1
 197:                 br error2
 198: 
 199: / reverse pass
 200: / confirm block numbers
 201: / read data and compare
 202: / to all 1's
 203: 
 204: 1:
 205:         mov     $4003,tccm
 206:         jsr     pc,flag
 207:         dec     r4
 208:         cmp     r4,(r5)
 209:         bne     error3
 210:         mov     $-nword,tcwc
 211:         mov     $buffer,tcba
 212:         mov     $4005,tccm
 213:         jsr     pc,compare
 214:         jsr     pc,flag
 215:         tst     r4
 216:         bne     1b
 217:         mov     $4003,tccm
 218:         jsr     pc,flag1
 219:                 br error4
 220:         jsr     pc,compare
 221:         jmp     start
 222: 
 223: error1:
 224:         mov     $1,r0
 225:         br      1f
 226: error2:
 227:         mov     $1,r0
 228:         br      1f
 229: error3:
 230:         mov     $3,r0
 231:         br      1f
 232: error4:
 233:         mov     $4,r0
 234:         br      1f
 235: error5:
 236:         mov     $5,r0
 237:         br      1f
 238: error6:
 239:         mov     $6,r0
 240:         br      1f
 241: error7:
 242:         mov     $7,r0
 243: 1:
 244:         add     $'0,r0
 245:         movb    r0,0f
 246:         mov     tcst,-(sp)
 247:         mov     tccm,-(sp)
 248:         mov     $1,tccm
 249:         mov     savr5,r5
 250:         jsr     pc,4(r5)
 251:                 <error>
 252: 0:
 253:                 <x\ntcst in r0; tccm in r1\n\0>
 254:                 .even
 255:         mov     (sp)+,r1
 256:         mov     (sp)+,r0
 257:         0
 258:         rts     pc
 259: 
 260: compare:
 261:         mov     r0,-(sp)
 262:         mov     $buffer,r0
 263: 1:
 264:         cmp     (r0)+,$-1
 265:         bne     error5
 266:         cmp     r0,$buffer+nword+nword
 267:         blo     1b
 268:         mov     (sp)+,r0
 269:         rts     pc
 270: 
 271: mtrack:
 272:         mov     (r0)+,(r5)
 273:         jsr     pc,flag
 274:         rts     r0
 275: 
 276: flag:
 277:         bit     $100200,tccm
 278:         beq     flag
 279:         blt     error6
 280:         rts     pc
 281: 
 282: flag1:
 283:         bit     $100200,tccm
 284:         beq     flag1
 285:         bge     1f
 286:         tst     tcst
 287:         bge     error7
 288:         add     $2,(sp)
 289: 1:
 290:         rts     pc
 291: 
 292: comobv:
 293:         mov     r0,r4
 294:         bic     $!777,r0
 295:         asl     r0
 296:         mov     cobtab(r0),r0
 297:         swab    r0
 298:         clr     r1
 299:         ror     r0
 300:         rol     r1
 301:         asl     r0
 302:         asl     r0
 303:         rol     r1
 304:         swab    r4
 305:         bic     $177401,r4
 306:         bis     cobtab(r4),r0
 307:         rts     pc
 308: 
 309: bcomobv:
 310:         mov     r0,r2
 311:         bic     $!70,r2
 312:         mov     r0,r3
 313:         mov     $6.,r4
 314: 1:
 315:         asr     r3
 316:         dec     r4
 317:         bne     1b
 318:         bic     $!7,r3
 319:         bis     r3,r2
 320:         mov     r0,r3
 321:         mov     $6.,r4
 322: 1:
 323:         asl     r3
 324:         dec     r4
 325:         bne     1b
 326:         bic     $!700,r3
 327:         bis     r3,r2
 328:         com     r2
 329:         bic     $!777,r2
 330:         rts     pc
 331: 
 332: bn:     .=.+2
 333: savr5:  .=.+2
 334: savsp:  .=.+2
 335: cobtab: .=.+1024.
 336: buffer: .=.+nword+nword

Defined functions

bcomobv defined in line 309; used 1 times
  • in line 27
bn defined in line 332; used 4 times
buffer defined in line 336; used 6 times
check defined in line 177; used 2 times
cobtab defined in line 335; used 3 times
comobv defined in line 292; used 2 times
compare defined in line 260; used 2 times
endz defined in line 5; used 2 times
error1 defined in line 223; used 1 times
error2 defined in line 226; used 1 times
error3 defined in line 229; used 1 times
error4 defined in line 232; used 1 times
error5 defined in line 235; used 1 times
error6 defined in line 238; used 1 times
error7 defined in line 241; used 1 times
flag defined in line 276; used 18 times
flag1 defined in line 282; used 5 times
mtrack defined in line 271; used 19 times
nblock defined in line 4; used 3 times
nword defined in line 3; used 10 times
ps defined in line 7; used 1 times
  • in line 42
savr5 defined in line 333; used 4 times
savsp defined in line 334; used 2 times
start defined in line 17; used 1 times
tcba defined in line 11; used 2 times
tccm defined in line 9; used 16 times
tcdt defined in line 12; used 1 times
  • in line 43
tcst defined in line 8; used 12 times
tcwc defined in line 10; used 2 times
Last modified: 1975-06-27
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 432
Valid CSS Valid XHTML 1.0 Strict