finish lock.s work! lock.s is now 100% compatible with the kernelfile

This commit is contained in:
Oliver Lehmann 2015-11-21 00:32:44 +01:00
parent e5861960ff
commit 0be2fb0265
9 changed files with 52 additions and 1516 deletions

View File

@ -1,16 +1,20 @@
# WEGA
aktuell sind hier lediglich die WEGA Kernel-Quellen zu finden. Diese sind teilweise aus zur Verfügung stehenden Original-Quellen von WEGA entstanden, und teilweise durch Disassemblierung der Original-Objects und "Rückwärtsübersetzung" in C-Code unter Zuhilfnahme der im Netz verfügbaren Quellen von V7, SYSIII und Plexis.
Hier sind die WEGA Kernel-Quellen zu finden. Diese sind teilweise aus zur Verfügung stehenden Original-Quellen von WEGA entstanden, und teilweise durch Disassemblierung der Original-Objects und "Rückwärtsübersetzung" in C-Code unter Zuhilfnahme der im Netz verfügbaren Quellen von V7, SYSIII und Plexis.
In seinem aktuellen Zustand kann der Kernel vollständig compiliert werden und ist von seiner Lauffähigkeit kompatibel zu dem original ausgelieferten WEGA-Kernel.
In seinem aktuellen Zustand kann der Kernel vollständig compiliert werden und ist von seiner Lauffähigkeit her kompatibel zu dem original ausgelieferten WEGA-Kernel.
Folgende Objekte haben Abweichungen zum Originalkernel und werden deshalb direkt als Objekt verwendet und nicht compiliert:
Folgende Objekte haben Abweichungen zum Originalkernel und werden deshalb entweder direkt als Object verwendet, oder abweichend zum Originalkernel aus Assembler-Code erzeugt da keine Rueckuebersetzung in die Originalquelle moeglich war.
## ``sys/u.s``
Das Array "u" (wird für den user-Struct verwendet) muss auf der Adresse 0xf600 im Segment 62 (0x3e) liegen. Leider ist es mir aktuell nicht möglich dies so zu vereinbaren. Die Assemblerdirektive $ABS kann nur im Segment 1 arbeiten, und ich habe noch nicht rausgefunden, wie ich den Assembler überreden kann, sich auf das Segment 62 absolut zu beziehen.
## ``sys/lock.c``
Das Object wurde disassembliert und steht zummindest als Assembler-Quelle zur Verfuegung welche ein mit dem Originalkernel 100% identisches Objekt erzeugt.
Stand der Migration nach C:
```
0000 T _lkdata not existing
0282 T _unlk not existing

View File

@ -52,7 +52,7 @@ udev5.o:
udev6.o:
$(AS) -u -o $@ $*.d.s
# this files are written in plain ASM
# this files are written in C-ASM
clist.o:
$(CAS) -u -o $@ $*.s

View File

@ -26,9 +26,9 @@ install: LIB1
LIB1: $(OBJ)
ar cr LIB1 $(OBJ)
# No source available for this files
# this files are written in C-ASM
lock.o:
cp lock.obj lock.o
$(CAS) -u -o $@ $*.s
clean:
rm -f $(OBJ) LIB1

View File

@ -1,618 +0,0 @@
? 0x000/i
<<%0>>%0000: sub sp,#%001e
<<%0>>%0004: ldm <<%0>>%0012(sp),r8,#6
<<%0>>%000c: ldl rr2,<<%0>>%0024
<<%0>>%0012: ldl |<<%0>>%000c|(sp),rr2
<<%0>>%0016: ldl rr4,#%00000004
<<%0>>%001c: add r5,sp
<<%0>>%001e: ldl rr2,#%00000008
<<%0>>%0024: add r3,sp
<<%0>>%0026: ldl rr6,|<<%0>>%000c|(sp)
<<%0>>%002a: calr _lkfront
<<%0>>%002c: ldl rr12,rr2
<<%0>>%002e: testl rr2
<<%0>>%0030: jp z/eq,<<%0>>%0274
<<%0>>%0036: ldl rr2,|<<%0>>%0008|(sp)
<<%0>>%003a: ldl |<<%0>>%0000|(sp),rr2
<<%0>>%003e: ldl rr4,|<<%0>>%000c|(sp)
<<%0>>%0042: ld r7,rr4(#%0002)
<<%0>>%0046: bit r7,#2
<<%0>>%0048: jr z/eq,_lkdata+%50
<<%0>>%004a: ld r7,#%0080
<<%0>>%004e: jr _lkdata+%52
<<%0>>%0050: sub r7,r7
<<%0>>%0052: ldl rr4,rr12
<<%0>>%0054: ldl rr2,|<<%0>>%0004|(sp)
<<%0>>%0058: calr _locked
<<%0>>%005a: test r2
<<%0>>%005c: jp nz/ne,<<%0>>%0274
<<%0>>%0062: ldl rr2,rr12
<<%0>>%0064: add r3,#%004a
<<%0>>%0068: ldl rr10,rr2
<<%0>>%006a: ldl rr2,|<<%0>>%000c|(sp)
<<%0>>%006e: ld r4,rr2(#%0002)
<<%0>>%0072: bit r4,#0
<<%0>>%0074: jr z/eq,_lkdata+%7a
<<%0>>%0076: sub r4,r4
<<%0>>%0078: jr _lkdata+%7e
<<%0>>%007a: ld r4,#%0100
<<%0>>%007e: ld |<<%0>>%0010|(sp),r4
<<%0>>%0082: jp <<%0>>%0256
<<%0>>%0088: ldl rr2,rr8
<<%0>>%008a: inc r3,#10
<<%0>>%008c: ldl rr4,|<<%0>>%0008|(sp)
<<%0>>%0090: cpl rr4,@rr2
<<%0>>%0092: jp lt,<<%0>>%0260
<<%0>>%0098: ldl rr2,rr8(#%0006)
<<%0>>%009c: cpl rr2,<<%0>>%0020
<<%0>>%00a2: jp nz/ne,<<%0>>%0242
<<%0>>%00a8: ldl rr4,rr8(#%000a)
<<%0>>%00ac: cpl rr4,|<<%0>>%0004|(sp)
<<%0>>%00b0: jr gt,_lkdata+%b6
<<%0>>%00b2: ldk r3,#1
<<%0>>%00b4: jr _lkdata+%b8
<<%0>>%00b6: sub r3,r3
<<%0>>%00b8: ldl rr4,rr8(#%000e)
<<%0>>%00bc: cpl rr4,|<<%0>>%0004|(sp)
<<%0>>%00c0: jr gt,_lkdata+%c6
<<%0>>%00c2: ldk r4,#2
<<%0>>%00c4: jr _lkdata+%c8
<<%0>>%00c6: sub r4,r4
<<%0>>%00c8: add r3,r4
<<%0>>%00ca: ldl rr4,rr8(#%000a)
<<%0>>%00ce: cpl rr4,|<<%0>>%0008|(sp)
<<%0>>%00d2: jr gt,_lkdata+%d8
<<%0>>%00d4: ldk r4,#4
<<%0>>%00d6: jr _lkdata+%da
<<%0>>%00d8: sub r4,r4
<<%0>>%00da: add r3,r4
<<%0>>%00dc: ldl rr4,rr8(#%000e)
<<%0>>%00e0: cpl rr4,|<<%0>>%0008|(sp)
<<%0>>%00e4: jr gt,_lkdata+%ea
<<%0>>%00e6: ldk r4,#8
<<%0>>%00e8: jr _lkdata+%ec
<<%0>>%00ea: sub r4,r4
<<%0>>%00ec: add r3,r4
<<%0>>%00ee: ld r4,rr8(#%0004)
<<%0>>%00f2: and r4,#%0100
<<%0>>%00f6: cp r4,|<<%0>>%0010|(sp)
<<%0>>%00fa: jr nz/ne,<<%0>>%0102
<<%0>>%00fc: ld r4,#%0010
<<%0>>%0100: jr <<%0>>%0104
<<%0>>%0102: sub r4,r4
<<%0>>%0104: add r3,r4
<<%0>>%0106: ld r2,r3
<<%0>>%0108: dec r2,#4
<<%0>>%010a: cp r2,#%001b
<<%0>>%010e: jp ugt,<<%0>>%0256
<<%0>>%0114: rl r2,#2
<<%0>>%0116: ldl rr4,_lockwstr+%2a(r2)
<<%0>>%011c: jp @rr4
<<%0>>%011e: test |<<%0>>%0010|(sp)
<<%0>>%0122: jr z/eq,<<%0>>%0132
<<%0>>%0124: ldl rr4,rr8(#%000a)
<<%0>>%0128: ldl |<<%0>>%0000|(sp),rr4
<<%0>>%012c: jp <<%0>>%0268
<<%0>>%0132: ldl rr2,|<<%0>>%0008|(sp)
<<%0>>%0136: ldl |<<%0>>%0000|(sp),rr2
<<%0>>%013a: ldl rr6,rr10
<<%0>>%013c: ld r5,|<<%0>>%0010|(sp)
<<%0>>%0140: ldl rr2,|<<%0>>%0004|(sp)
<<%0>>%0144: calr _lockadd
<<%0>>%0146: test r2
<<%0>>%0148: jr z/eq,<<%0>>%01e6
<<%0>>%014a: test |<<%0>>%0010|(sp)
<<%0>>%014e: jp nz/ne,<<%0>>%0274
<<%0>>%0154: ldl rr2,rr8(#%000a)
<<%0>>%0158: cpl rr2,|<<%0>>%0004|(sp)
<<%0>>%015c: jr ge,<<%0>>%01d0
<<%0>>%015e: ldl rr2,|<<%0>>%0004|(sp)
<<%0>>%0162: ldl |<<%0>>%0000|(sp),rr2
<<%0>>%0166: ldl rr2,rr8(#%000a)
<<%0>>%016a: ld r5,#%0100
<<%0>>%016e: ldl rr6,rr10
<<%0>>%0170: calr _lockadd
<<%0>>%0172: test r2
<<%0>>%0174: jr z/eq,<<%0>>%01b0
<<%0>>%0176: test |<<%0>>%0010|(sp)
<<%0>>%017a: jr z/eq,<<%0>>%024e
<<%0>>%017c: ldl rr2,rr8(#%000a)
<<%0>>%0180: ldl |<<%0>>%0000|(sp),rr2
<<%0>>%0184: ldl rr6,rr10
<<%0>>%0186: ld r5,|<<%0>>%0010|(sp)
<<%0>>%018a: ldl rr2,|<<%0>>%0004|(sp)
<<%0>>%018e: calr _lockadd
<<%0>>%0190: test r2
<<%0>>%0192: jr nz/ne,<<%0>>%0202
<<%0>>%0194: ldl rr2,<<%0>>%0000
<<%0>>%019a: testl rr2
<<%0>>%019c: jr nz/ne,<<%0>>%01f2
<<%0>>%019e: ldl rr4,@rr8
<<%0>>%01a0: ldl @rr10,rr4
<<%0>>%01a2: ldl rr6,@rr10
<<%0>>%01a4: calr _lockfree
<<%0>>%01a6: ldb <<%0>>%0015,#%23
<<%0>>%01ae: jr <<%0>>%0274
<<%0>>%01b0: ldl rr2,|<<%0>>%0008|(sp)
<<%0>>%01b4: ldl |<<%0>>%0000|(sp),rr2
<<%0>>%01b8: ldl rr6,@rr10
<<%0>>%01ba: sub r5,r5
<<%0>>%01bc: ldl rr2,|<<%0>>%0004|(sp)
<<%0>>%01c0: calr _lockadd
<<%0>>%01c2: test r2
<<%0>>%01c4: jr z/eq,<<%0>>%01e6
<<%0>>%01c6: ldl rr2,@rr8
<<%0>>%01c8: ldl @rr10,rr2
<<%0>>%01ca: ldl rr6,@rr10
<<%0>>%01cc: calr _lockfree
<<%0>>%01ce: jr <<%0>>%0274
<<%0>>%01d0: ldl rr2,|<<%0>>%0008|(sp)
<<%0>>%01d4: ldl |<<%0>>%0000|(sp),rr2
<<%0>>%01d8: ldl rr2,rr8(#%000a)
<<%0>>%01dc: sub r5,r5
<<%0>>%01de: ldl rr6,rr10
<<%0>>%01e0: calr _lockadd
<<%0>>%01e2: test r2
<<%0>>%01e4: jr nz/ne,<<%0>>%0274
<<%0>>%01e6: ldl rr2,rr8
<<%0>>%01e8: inc r3,#10
<<%0>>%01ea: ldl rr4,|<<%0>>%0008|(sp)
<<%0>>%01ee: ldl @rr2,rr4
<<%0>>%01f0: jr <<%0>>%0274
<<%0>>%01f2: ldl rr2,rr8(#%000e)
<<%0>>%01f6: ldl |<<%0>>%0004|(sp),rr2
<<%0>>%01fa: cpl rr2,|<<%0>>%0008|(sp)
<<%0>>%01fe: jr nz/ne,<<%0>>%0256
<<%0>>%0200: jr <<%0>>%0274
<<%0>>%0202: test |<<%0>>%0010|(sp)
<<%0>>%0206: jr z/eq,<<%0>>%0218
<<%0>>%0208: ldl rr2,rr8(#%000e)
<<%0>>%020c: ldl |<<%0>>%0004|(sp),rr2
<<%0>>%0210: cpl rr2,|<<%0>>%0008|(sp)
<<%0>>%0214: jr nz/ne,<<%0>>%0256
<<%0>>%0216: jr <<%0>>%0274
<<%0>>%0218: ldl rr2,rr8(#%000a)
<<%0>>%021c: cpl rr2,|<<%0>>%0004|(sp)
<<%0>>%0220: jr ge,<<%0>>%024e
<<%0>>%0222: ldl rr2,rr8
<<%0>>%0224: inc r3,#14
<<%0>>%0226: ldl rr4,|<<%0>>%0004|(sp)
<<%0>>%022a: ldl @rr2,rr4
<<%0>>%022c: jr <<%0>>%0256
<<%0>>%022e: ldl rr2,rr8
<<%0>>%0230: inc r3,#10
<<%0>>%0232: ldl rr4,|<<%0>>%0004|(sp)
<<%0>>%0236: jr <<%0>>%01ee
<<%0>>%0238: ldl rr2,rr8(#%000e)
<<%0>>%023c: cpl rr2,|<<%0>>%0004|(sp)
<<%0>>%0240: jr z/eq,<<%0>>%0246
<<%0>>%0242: ldl rr10,rr8
<<%0>>%0244: jr <<%0>>%0256
<<%0>>%0246: ldl rr2,rr8(#%000a)
<<%0>>%024a: ldl |<<%0>>%0004|(sp),rr2
<<%0>>%024e: ldl rr2,@rr8
<<%0>>%0250: ldl @rr10,rr2
<<%0>>%0252: ldl rr6,rr8
<<%0>>%0254: calr _lockfree
<<%0>>%0256: ldl rr8,@rr10
<<%0>>%0258: testl rr8
<<%0>>%025a: jp nz/ne,_lkdata+%88
<<%0>>%0260: ldl rr2,|<<%0>>%0008|(sp)
<<%0>>%0264: ldl |<<%0>>%0000|(sp),rr2
<<%0>>%0268: ldl rr6,rr10
<<%0>>%026a: ld r5,|<<%0>>%0010|(sp)
<<%0>>%026e: ldl rr2,|<<%0>>%0004|(sp)
<<%0>>%0272: calr _lockadd
<<%0>>%0274: ldm r8,<<%0>>%0012(sp),#6
<<%0>>%027c: add sp,#%001e
<<%0>>%0280: ret
<<%0>>%0282: sub sp,#%001c
<<%0>>%0286: ldm <<%0>>%0010(sp),r8,#6
<<%0>>%028e: ldl rr2,<<%0>>%0024
<<%0>>%0294: ldl |<<%0>>%000c|(sp),rr2
<<%0>>%0298: ldl rr4,#%00000004
<<%0>>%029e: add r5,sp
<<%0>>%02a0: ldl rr2,#%00000008
<<%0>>%02a6: add r3,sp
<<%0>>%02a8: ldl rr6,|<<%0>>%000c|(sp)
<<%0>>%02ac: calr _lkfront
<<%0>>%02ae: ldl rr12,rr2
<<%0>>%02b0: testl rr2
<<%0>>%02b2: jr z/eq,<<%0>>%0384
<<%0>>%02b4: add r3,#%004a
<<%0>>%02b8: ldl rr10,rr2
<<%0>>%02ba: jr _unlk+%fc
<<%0>>%02bc: ld r2,rr8(#%0004)
<<%0>>%02c0: bit r2,#4
<<%0>>%02c2: jr z/eq,_unlk+%50
<<%0>>%02c4: ldl rr2,rr8
<<%0>>%02c6: inc r3,#4
<<%0>>%02c8: res @rr2,#4
<<%0>>%02ca: ldl rr6,rr8
<<%0>>%02cc: call _lkdata
<<%0>>%02d2: ldl rr2,rr8(#%000a)
<<%0>>%02d6: cpl rr2,|<<%0>>%0004|(sp)
<<%0>>%02da: jr ge,_unlk+%8a
<<%0>>%02dc: ldl rr2,rr8
<<%0>>%02de: inc r3,#14
<<%0>>%02e0: ldl rr4,|<<%0>>%0008|(sp)
<<%0>>%02e4: cpl rr4,@rr2
<<%0>>%02e6: jr ge,_unlk+%8a
<<%0>>%02e8: ldl rr2,rr8(#%000e)
<<%0>>%02ec: ldl |<<%0>>%0000|(sp),rr2
<<%0>>%02f0: ld r5,rr8(#%0004)
<<%0>>%02f4: ldl rr6,rr8
<<%0>>%02f6: ldl rr2,|<<%0>>%0008|(sp)
<<%0>>%02fa: calr _lockadd
<<%0>>%02fc: test r2
<<%0>>%02fe: jr nz/ne,<<%0>>%0384
<<%0>>%0300: ldl rr2,rr8
<<%0>>%0302: inc r3,#14
<<%0>>%0304: ldl rr4,|<<%0>>%0004|(sp)
<<%0>>%0308: ldl @rr2,rr4
<<%0>>%030a: jr <<%0>>%0384
<<%0>>%030c: ldl rr2,rr8
<<%0>>%030e: inc r3,#10
<<%0>>%0310: ldl rr4,|<<%0>>%0004|(sp)
<<%0>>%0314: cpl rr4,@rr2
<<%0>>%0316: jr gt,_unlk+%ae
<<%0>>%0318: ldl rr2,rr8
<<%0>>%031a: inc r3,#14
<<%0>>%031c: ldl rr6,|<<%0>>%0008|(sp)
<<%0>>%0320: cpl rr6,@rr2
<<%0>>%0322: jr ge,_unlk+%ae
<<%0>>%0324: ldl rr2,rr8
<<%0>>%0326: inc r3,#10
<<%0>>%0328: ldl rr0,|<<%0>>%0008|(sp)
<<%0>>%032c: ldl @rr2,rr0
<<%0>>%032e: jr <<%0>>%0384
<<%0>>%0330: ldl rr2,rr8
<<%0>>%0332: inc r3,#14
<<%0>>%0334: ldl rr4,|<<%0>>%0004|(sp)
<<%0>>%0338: ldl @rr2,rr4
<<%0>>%033a: ldl rr10,rr8
<<%0>>%033c: jr _unlk+%fc
<<%0>>%033e: ldl rr2,rr8(#%0006)
<<%0>>%0342: cpl rr2,<<%0>>%0020
<<%0>>%0348: jr nz/ne,_unlk+%b8
<<%0>>%034a: ldl rr2,rr8
<<%0>>%034c: inc r3,#10
<<%0>>%034e: ldl rr4,|<<%0>>%0008|(sp)
<<%0>>%0352: cpl rr4,@rr2
<<%0>>%0354: jr le,<<%0>>%0384
<<%0>>%0356: ldl rr2,rr8(#%000e)
<<%0>>%035a: cpl rr2,|<<%0>>%0004|(sp)
<<%0>>%035e: jr le,_unlk+%b8
<<%0>>%0360: ldl rr2,rr8
<<%0>>%0362: inc r3,#10
<<%0>>%0364: ldl rr4,|<<%0>>%0004|(sp)
<<%0>>%0368: cpl rr4,@rr2
<<%0>>%036a: jr gt,_unlk+%3a
<<%0>>%036c: ldl rr2,rr8(#%000e)
<<%0>>%0370: cpl rr2,|<<%0>>%0008|(sp)
<<%0>>%0374: jr gt,_unlk+%3a
<<%0>>%0376: ldl rr2,@rr8
<<%0>>%0378: ldl @rr10,rr2
<<%0>>%037a: ldl rr6,rr8
<<%0>>%037c: calr _lockfree
<<%0>>%037e: ldl rr8,@rr10
<<%0>>%0380: testl rr8
<<%0>>%0382: jr nz/ne,_unlk+%bc
<<%0>>%0384: ldm r8,<<%0>>%0010(sp),#6
<<%0>>%038c: add sp,#%001c
<<%0>>%0390: ret
<<%0>>%0392: sub sp,#%001e
<<%0>>%0396: ldm <<%0>>%0012(sp),r8,#6
<<%0>>%039e: ld |<<%0>>%000a|(sp),r7
<<%0>>%03a2: ldl rr8,<<%0>>%0022(sp)
<<%0>>%03a8: ldl rr10,rr2
<<%0>>%03aa: ldl rr12,rr4
<<%0>>%03ac: ldl rr2,rr12(#%004a)
<<%0>>%03b0: ldl |<<%0>>%000c|(sp),rr2
<<%0>>%03b4: jr _locked+%a0
<<%0>>%03b6: ldl rr2,|<<%0>>%000c|(sp)
<<%0>>%03ba: ldl rr4,@rr2
<<%0>>%03bc: ldl |<<%0>>%000c|(sp),rr4
<<%0>>%03c0: jr _locked+%a0
<<%0>>%03c2: inc r3,#10
<<%0>>%03c4: cpl rr8,@rr2
<<%0>>%03c6: jr le,_locked+%a8
<<%0>>%03c8: ldl rr2,|<<%0>>%000c|(sp)
<<%0>>%03cc: ldl rr4,rr2(#%0006)
<<%0>>%03d0: cpl rr4,<<%0>>%0020
<<%0>>%03d6: jr z/eq,_locked+%24
<<%0>>%03d8: inc r3,#14
<<%0>>%03da: cpl rr10,@rr2
<<%0>>%03dc: jr ge,_locked+%24
<<%0>>%03de: ldl rr2,|<<%0>>%000c|(sp)
<<%0>>%03e2: inc r3,#4
<<%0>>%03e4: ld r4,|<<%0>>%000a|(sp)
<<%0>>%03e8: and r4,#%0100
<<%0>>%03ec: and r4,@rr2
<<%0>>%03ee: jr nz/ne,_locked+%24
<<%0>>%03f0: bit |<<%0>>%000a|(sp),#7
<<%0>>%03f4: jr z/eq,_locked+%70
<<%0>>%03f6: ldb <<%0>>%0015,#%0d
<<%0>>%03fe: ldk r2,#1
<<%0>>%0400: jr _locked+%aa
<<%0>>%0402: ldl rr6,|<<%0>>%000c|(sp)
<<%0>>%0406: calr _deadlock
<<%0>>%0408: test r2
<<%0>>%040a: jr nz/ne,_locked+%6c
<<%0>>%040c: ldl rr2,|<<%0>>%000c|(sp)
<<%0>>%0410: inc r3,#4
<<%0>>%0412: set @rr2,#4
<<%0>>%0414: ldl rr6,|<<%0>>%000c|(sp)
<<%0>>%0418: ld r5,#%0028
<<%0>>%041c: call _lkdata
<<%0>>%0422: ldl rr2,rr12(#%004a)
<<%0>>%0426: ldl |<<%0>>%000c|(sp),rr2
<<%0>>%042a: testb <<%0>>%0015
<<%0>>%0430: jr nz/ne,_locked+%6c
<<%0>>%0432: ldl rr2,|<<%0>>%000c|(sp)
<<%0>>%0436: testl rr2
<<%0>>%0438: jr nz/ne,_locked+%30
<<%0>>%043a: sub r2,r2
<<%0>>%043c: ldm r8,<<%0>>%0012(sp),#6
<<%0>>%0444: add sp,#%001e
<<%0>>%0448: ret
<<%0>>%044a: sub sp,#%0012
<<%0>>%044e: ldm <<%0>>%000a(sp),r10,#4
<<%0>>%0456: ldl rr12,rr6
<<%0>>%0458: jr _deadlock+%52
<<%0>>%045a: ldl rr2,rr12(#%0006)
<<%0>>%045e: ldl rr4,rr2(#%0016)
<<%0>>%0462: ldl rr10,rr4
<<%0>>%0464: cpl rr4,#%00000000
<<%0>>%046a: jr c/ult,_deadlock+%5c
<<%0>>%046c: ld r3,<<%0>>%0000
<<%0>>%0472: mult rr2,#%0012
<<%0>>%0476: ldl rr4,#%00000000
<<%0>>%047c: add r5,r3
<<%0>>%047e: cpl rr10,rr4
<<%0>>%0480: jr nc/uge,_deadlock+%5c
<<%0>>%0482: ldl rr2,rr10(#%0006)
<<%0>>%0486: cpl rr2,<<%0>>%0020
<<%0>>%048c: jr nz/ne,_deadlock+%50
<<%0>>%048e: ldb <<%0>>%0015,#%23
<<%0>>%0496: ldk r2,#1
<<%0>>%0498: jr _deadlock+%5e
<<%0>>%049a: ldl rr12,rr10
<<%0>>%049c: ldl rr2,rr12(#%0006)
<<%0>>%04a0: cpb @rr2,#%01
<<%0>>%04a4: jr z/eq,_deadlock+%10
<<%0>>%04a6: sub r2,r2
<<%0>>%04a8: ldm r10,<<%0>>%000a(sp),#4
<<%0>>%04b0: add sp,#%0012
<<%0>>%04b4: ret
<<%0>>%04b6: sub sp,#%001c
<<%0>>%04ba: ldm <<%0>>%0010(sp),r8,#6
<<%0>>%04c2: ldl rr12,rr6
<<%0>>%04c4: ldl rr2,rr12(#%004a)
<<%0>>%04c8: testl rr2
<<%0>>%04ca: jr z/eq,_unlock+%82
<<%0>>%04cc: ldl rr2,rr6
<<%0>>%04ce: add r3,#%004a
<<%0>>%04d2: ldl rr8,rr2
<<%0>>%04d4: clr |<<%0>>%000e|(sp)
<<%0>>%04d8: clr |<<%0>>%000c|(sp)
<<%0>>%04dc: ld r2,|<<%0>>%000c|(sp)
<<%0>>%04e0: sla r2,#2
<<%0>>%04e4: ldl rr4,<<%0>>%0068(r2)
<<%0>>%04ea: testl rr4
<<%0>>%04ec: jr z/eq,_unlock+%50
<<%0>>%04ee: ld r2,|<<%0>>%000c|(sp)
<<%0>>%04f2: sla r2,#2
<<%0>>%04f6: ldl rr4,<<%0>>%0068(r2)
<<%0>>%04fc: inc r5,#2
<<%0>>%04fe: cpl rr12,@rr4
<<%0>>%0500: jr nz/ne,_unlock+%50
<<%0>>%0502: inc |<<%0>>%000e|(sp)
<<%0>>%0506: inc |<<%0>>%000c|(sp)
<<%0>>%050a: cp |<<%0>>%000c|(sp),#%0014
<<%0>>%0510: jr lt,_unlock+%26
<<%0>>%0512: test |<<%0>>%000e|(sp)
<<%0>>%0516: jr z/eq,_unlock+%7c
<<%0>>%0518: jr _unlock+%82
<<%0>>%051a: ldl rr2,@rr10
<<%0>>%051c: ldl @rr8,rr2
<<%0>>%051e: ldl rr6,rr10
<<%0>>%0520: calr _lockfree
<<%0>>%0522: jr _unlock+%7c
<<%0>>%0524: ldl rr2,rr10(#%0006)
<<%0>>%0528: cpl rr2,<<%0>>%0020
<<%0>>%052e: jr z/eq,_unlock+%64
<<%0>>%0530: ldl rr8,rr10
<<%0>>%0532: ldl rr10,@rr8
<<%0>>%0534: testl rr10
<<%0>>%0536: jr nz/ne,_unlock+%6e
<<%0>>%0538: ldm r8,<<%0>>%0010(sp),#6
<<%0>>%0540: add sp,#%001c
<<%0>>%0544: ret
<<%0>>%0546: dec sp,#12
<<%0>>%0548: ldm <<%0>>%0004(sp),r10,#4
<<%0>>%0550: ldl rr12,#%00000000
<<%0>>%0556: ldl rr2,rr12(#%0006)
<<%0>>%055a: testl rr2
<<%0>>%055c: jr nz/ne,_lockalloc+%4a
<<%0>>%055e: ldl rr2,rr12
<<%0>>%0560: inc r3,#6
<<%0>>%0562: ldl rr4,#%00000000
<<%0>>%0568: ldl @rr2,rr4
<<%0>>%056a: ldl rr10,#%00000012
<<%0>>%0570: jr _lockalloc+%34
<<%0>>%0572: ldl rr6,rr10
<<%0>>%0574: calr _lockfree
<<%0>>%0576: add r11,#%0012
<<%0>>%057a: ld r3,<<%0>>%0000
<<%0>>%0580: mult rr2,#%0012
<<%0>>%0584: ldl rr4,#%00000000
<<%0>>%058a: add r5,r3
<<%0>>%058c: cpl rr10,rr4
<<%0>>%058e: jr c/ult,_lockalloc+%2c
<<%0>>%0590: ldl rr10,@rr12
<<%0>>%0592: testl rr10
<<%0>>%0594: jr nz/ne,_lockalloc+%5c
<<%0>>%0596: ldb <<%0>>%0015,#%23
<<%0>>%059e: subl rr2,rr2
<<%0>>%05a0: jr _lockalloc+%66
<<%0>>%05a2: ldl rr2,@rr10
<<%0>>%05a4: ldl @rr12,rr2
<<%0>>%05a6: subl rr2,rr2
<<%0>>%05a8: ldl @rr10,rr2
<<%0>>%05aa: ldl rr2,rr10
<<%0>>%05ac: ldm r10,<<%0>>%0004(sp),#4
<<%0>>%05b4: inc sp,#12
<<%0>>%05b6: ret
<<%0>>%05b8: dec sp,#12
<<%0>>%05ba: ldm <<%0>>%0004(sp),r10,#4
<<%0>>%05c2: ldl rr12,rr6
<<%0>>%05c4: ldl rr10,#%00000000
<<%0>>%05ca: ld r2,rr12(#%0004)
<<%0>>%05ce: bit r2,#4
<<%0>>%05d0: jr z/eq,_lockfree+%28
<<%0>>%05d2: ldl rr2,rr6
<<%0>>%05d4: inc r3,#4
<<%0>>%05d6: res @rr2,#4
<<%0>>%05d8: ldl rr6,rr12
<<%0>>%05da: call _lkdata
<<%0>>%05e0: ldl rr2,@rr10
<<%0>>%05e2: ldl @rr12,rr2
<<%0>>%05e4: ldl @rr10,rr12
<<%0>>%05e6: ldm r10,<<%0>>%0004(sp),#4
<<%0>>%05ee: inc sp,#12
<<%0>>%05f0: ret
<<%0>>%05f2: sub sp,#%001e
<<%0>>%05f6: ldm <<%0>>%0012(sp),r8,#6
<<%0>>%05fe: ldl rr8,rr2
<<%0>>%0600: ld r11,r5
<<%0>>%0602: ldl rr12,rr6
<<%0>>%0604: calr _lockalloc
<<%0>>%0606: ldl |<<%0>>%000c|(sp),rr2
<<%0>>%060a: testl rr2
<<%0>>%060c: jr nz/ne,_lockadd+%28
<<%0>>%060e: ldb <<%0>>%0015,#%23
<<%0>>%0616: ldk r2,#1
<<%0>>%0618: jr _lockadd+%64
<<%0>>%061a: ldl rr2,|<<%0>>%000c|(sp)
<<%0>>%061e: ldl rr4,@rr12
<<%0>>%0620: ldl @rr2,rr4
<<%0>>%0622: ldl rr4,|<<%0>>%000c|(sp)
<<%0>>%0626: ldl @rr12,rr4
<<%0>>%0628: ldl rr2,|<<%0>>%000c|(sp)
<<%0>>%062c: inc r3,#6
<<%0>>%062e: ldl rr4,<<%0>>%0020
<<%0>>%0634: ldl @rr2,rr4
<<%0>>%0636: ldl rr2,|<<%0>>%000c|(sp)
<<%0>>%063a: inc r3,#10
<<%0>>%063c: ldl @rr2,rr8
<<%0>>%063e: ldl rr2,|<<%0>>%000c|(sp)
<<%0>>%0642: inc r3,#14
<<%0>>%0644: ldl rr4,<<%0>>%0022(sp)
<<%0>>%064a: ldl @rr2,rr4
<<%0>>%064c: ldl rr2,|<<%0>>%000c|(sp)
<<%0>>%0650: inc r3,#4
<<%0>>%0652: ld @rr2,r11
<<%0>>%0654: sub r2,r2
<<%0>>%0656: ldm r8,<<%0>>%0012(sp),#6
<<%0>>%065e: add sp,#%001e
<<%0>>%0662: ret
<<%0>>%0664: sub sp,#%0030
<<%0>>%0668: ldm <<%0>>%0024(sp),r8,#6
<<%0>>%0670: ldl rr8,rr2
<<%0>>%0672: ldl rr10,rr4
<<%0>>%0674: ldl rr12,rr6
<<%0>>%0676: ld r7,@rr12
<<%0>>%0678: call _lkdata
<<%0>>%067e: ldl |<<%0>>%0016|(sp),rr2
<<%0>>%0682: testl rr2
<<%0>>%0684: jr nz/ne,_lkfront+%60
<<%0>>%0686: jr _lkfront+%c2
<<%0>>%0688: ldl rr6,#%0100009a
<<%0>>%068e: call _lkdata
<<%0>>%0694: jr _lkfront+%c2
<<%0>>%0696: ldl rr6,|<<%0>>%001a|(sp)
<<%0>>%069a: ld r5,#%0080
<<%0>>%069e: call _lkdata
<<%0>>%06a4: test r2
<<%0>>%06a6: jr z/eq,_lkfront+%80
<<%0>>%06a8: ldb <<%0>>%0015,#%0d
<<%0>>%06b0: jr _lkfront+%c2
<<%0>>%06b2: ld r4,rr2(#%0006)
<<%0>>%06b6: bit r4,#12
<<%0>>%06b8: jr z/eq,_lkfront+%44
<<%0>>%06ba: ldb <<%0>>%0015,#%1d
<<%0>>%06c2: jr _lkfront+%c2
<<%0>>%06c4: ldl rr2,|<<%0>>%0016|(sp)
<<%0>>%06c8: ldl rr4,rr2(#%0002)
<<%0>>%06cc: ldl |<<%0>>%001a|(sp),rr4
<<%0>>%06d0: testl rr4
<<%0>>%06d2: jr z/eq,_lkfront+%24
<<%0>>%06d4: ldl rr2,|<<%0>>%0016|(sp)
<<%0>>%06d8: ldb rl4,@rr2
<<%0>>%06da: extsb r4
<<%0>>%06dc: and r4,#%0002
<<%0>>%06e0: test r4
<<%0>>%06e2: jr z/eq,_lkfront+%32
<<%0>>%06e4: ld |<<%0>>%001e|(sp),#%7000
<<%0>>%06ea: ldl rr2,|<<%0>>%001a|(sp)
<<%0>>%06ee: ld r4,rr2(#%0006)
<<%0>>%06f2: and r4,#%f000
<<%0>>%06f6: and r4,|<<%0>>%001e|(sp)
<<%0>>%06fa: jr nz/ne,_lkfront+%4e
<<%0>>%06fc: ldl rr6,rr12(#%0004)
<<%0>>%0700: ldl rr4,#%0000000c
<<%0>>%0706: add r5,sp
<<%0>>%0708: ldk r3,#10
<<%0>>%070a: call _lkdata
<<%0>>%0710: test r2
<<%0>>%0712: jr z/eq,_lkfront+%c6
<<%0>>%0714: ldb <<%0>>%0015,#%0e
<<%0>>%071c: jr _lkfront+%c2
<<%0>>%071e: ldb <<%0>>%0015,#%16
<<%0>>%0726: subl rr2,rr2
<<%0>>%0728: jr <<%0>>%07ae
<<%0>>%072a: ld r2,rr12(#%0002)
<<%0>>%072e: cp r2,#%0000
<<%0>>%0732: jr lt,_lkfront+%ba
<<%0>>%0734: cp r2,#%0007
<<%0>>%0738: jr gt,_lkfront+%ba
<<%0>>%073a: bit r2,#1
<<%0>>%073c: jr z/eq,<<%0>>%0770
<<%0>>%073e: cp |<<%0>>%0014|(sp),#%0001
<<%0>>%0744: jr nz/ne,_lkfront+%ec
<<%0>>%0746: ldl rr2,|<<%0>>%0016|(sp)
<<%0>>%074a: ldl rr4,rr2(#%0006)
<<%0>>%074e: jr _lkfront+%fc
<<%0>>%0750: cp |<<%0>>%0014|(sp),#%0002
<<%0>>%0756: jr nz/ne,<<%0>>%0768
<<%0>>%0758: ldl rr2,|<<%0>>%001a|(sp)
<<%0>>%075c: ldl rr4,rr2(#%000e)
<<%0>>%0760: addl rr4,|<<%0>>%0010|(sp)
<<%0>>%0764: ldl |<<%0>>%0010|(sp),rr4
<<%0>>%0768: ldl rr2,|<<%0>>%0010|(sp)
<<%0>>%076c: ldl @rr10,rr2
<<%0>>%076e: jr <<%0>>%077a
<<%0>>%0770: ldl rr2,|<<%0>>%0016|(sp)
<<%0>>%0774: ldl rr4,rr2(#%0006)
<<%0>>%0778: ldl @rr10,rr4
<<%0>>%077a: ldl rr2,@rr10
<<%0>>%077c: cpl rr2,#%00000000
<<%0>>%0782: jr lt,_lkfront+%ba
<<%0>>%0784: ldl rr2,|<<%0>>%000c|(sp)
<<%0>>%0788: testl rr2
<<%0>>%078a: jr z/eq,<<%0>>%0794
<<%0>>%078c: ldl rr2,@rr10
<<%0>>%078e: addl rr2,|<<%0>>%000c|(sp)
<<%0>>%0792: jr <<%0>>%079a
<<%0>>%0794: ldl rr2,#%40000000
<<%0>>%079a: ldl @rr8,rr2
<<%0>>%079c: ldl rr2,@rr10
<<%0>>%079e: cpl rr2,@rr8
<<%0>>%07a0: jr ge,_lkfront+%ba
<<%0>>%07a2: ldl rr2,@rr10
<<%0>>%07a4: ldl <<%0>>%0028,rr2
<<%0>>%07aa: ldl rr2,|<<%0>>%001a|(sp)
<<%0>>%07ae: ldm r8,<<%0>>%0024(sp),#6
<<%0>>%07b6: add sp,#%0030
<<%0>>%07ba: ret

View File

@ -1,658 +0,0 @@
fp := fp
_lkdata::
! U _stkseg !
! U _u !
! U _locklist !
{
0000 030f0014 sub fp,#%001e
0004 5cf9080580000012 ldm <<%0>>%0012(fp),r8,#6
000c 540280000024 ldl rr2,<<%0>>%0024
0012 5df2000c ldl |<<%0>>%0c|(fp),rr2
0016 140400000004 ldl rr4,#%00000004
001c 81f5 add r5,fp
001e 140200000008 ldl rr2,#%00000008
0024 81f3 add r3,fp
0026 54f6000c ldl rr6,|<<%0>>%0c|(fp)
002a dce4 calr _lkfront
002c 942c ldl rr12,rr2
002e 9c28 testl rr2
0030 5e0680000274 jp z,<<%0>>%0274
0036 54f20008 ldl rr2,|<<%0>>%08|(fp)
003a 5df20000 ldl |<<%0>>%00|(fp),rr2
003e 54f4000c ldl rr4,|<<%0>>%0c|(fp)
0042 31470002 ld r7,rr4(#%0002)
0046 a772 bit r7,#2
0048 e603 jr z,%0050
004a 21070080 ld r7,#%0080
004e e801 jr %0052
0050 8377 sub r7,r7
0052 94c4 ldl rr4,rr12
0054 54f20004 ldl rr2,|<<%0>>%04|(fp)
0058 de64 calr _locked
005a 8d24 test r2
005c 5e0e80000274 jp nz,<<%0>>%0274
0062 94c2 ldl rr2,rr12
0064 0103004a add r3,#%004a
0068 942a ldl rr10,rr2
006a 54f2000c ldl rr2,|<<%0>>%0c|(fp)
006e 31240002 ld r4,rr2(#%0002)
0072 a740 bit r4,#0
0074 e602 jr z,%007a
0076 8344 sub r4,r4
0078 e802 jr %007e
007a 21040100 ld r4,#%0100
007e 6ff40010 ld |<<%0>>%10|(fp),r4
0082 5e0880000256 jp <<%0>>%0256
0088 9482 ldl rr2,rr8
008a a939 inc r3,#10
008c 54f40008 ldl rr4,|<<%0>>%08|(fp)
0090 1024 cpl rr4,@rr2
0092 5e0180000260 jp lt,<<%0>>%0260
0098 35820006 ldl rr2,rr8(#%0006)
009c 500280000020 cpl rr2,<<%0>>%0020
00a2 5e0e80000242 jp nz,<<%0>>%0242
00a8 3584000a ldl rr4,rr8(#%000a)
00ac 50f40004 cpl rr4,|<<%0>>%04|(fp)
00b0 ea02 jr gt,%00b6
00b2 bd31 ldk r3,#1
00b4 e801 jr %00b8
00b6 8333 sub r3,r3
00b8 3584000e ldl rr4,rr8(#%000e)
00bc 50f40004 cpl rr4,|<<%0>>%04|(fp)
00c0 ea02 jr gt,%00c6
00c2 bd42 ldk r4,#2
00c4 e801 jr %00c8
00c6 8344 sub r4,r4
00c8 8143 add r3,r4
00ca 3584000a ldl rr4,rr8(#%000a)
00ce 50f40008 cpl rr4,|<<%0>>%08|(fp)
00d2 ea02 jr gt,%00d8
00d4 bd44 ldk r4,#4
00d6 e801 jr %00da
00d8 8344 sub r4,r4
00da 8143 add r3,r4
00dc 3584000e ldl rr4,rr8(#%000e)
00e0 50f40008 cpl rr4,|<<%0>>%08|(fp)
00e4 ea02 jr gt,%00ea
00e6 bd48 ldk r4,#8
00e8 e801 jr %00ec
00ea 8344 sub r4,r4
00ec 8143 add r3,r4
00ee 31840004 ld r4,rr8(#%0004)
00f2 07040100 and r4,#%0100
00f6 4bf40010 cp r4,|<<%0>>%10|(fp)
00fa ee03 jr nz,%0102
00fc 21040010 ld r4,#%0010
0100 e801 jr %0104
0102 8344 sub r4,r4
0104 8143 add r3,r4
0106 a132 ld r2,r3
0108 ab23 dec r2,#4
010a 0b02001b cp r2,#%001b
010e 5e0b80000256 jp ugt,<<%0>>%0256
0114 b322 rl r2,#2
0116 54248100002a ldl rr4,<<%1>>%002a(r2) ! ldl rr4,_lockwstr+%2a(r2) !
011c 1e48 jp @rr4
011e 4df40010 test |<<%0>>%10|(fp)
0122 e607 jr z,%0132
0124 3584000a ldl rr4,rr8(#%000a)
0128 5df40000 ldl |<<%0>>%00|(fp),rr4
012c 5e0880000268 jp <<%0>>%0268
0132 54f20008 ldl rr2,|<<%0>>%08|(fp)
0136 5df20000 ldl |<<%0>>%00|(fp),rr2
013a 94a6 ldl rr6,rr10
013c 61f50010 ld r5,|<<%0>>%10|(fp)
0140 54f20004 ldl rr2,|<<%0>>%04|(fp)
0144 ddaa calr _lockadd
0146 8d24 test r2
0148 e64e jr z,%01e6
014a 4df40010 test |<<%0>>%10|(fp)
014e 5e0e80000274 jp nz,<<%0>>%0274
0154 3582000a ldl rr2,rr8(#%000a)
0158 50f20004 cpl rr2,|<<%0>>%04|(fp)
015c e939 jr ge,%01d0
015e 54f20004 ldl rr2,|<<%0>>%04|(fp)
0162 5df20000 ldl |<<%0>>%00|(fp),rr2
0166 3582000a ldl rr2,rr8(#%000a)
016a 21050100 ld r5,#%0100
016e 94a6 ldl rr6,rr10
0170 ddc0 calr _lockadd
0172 8d24 test r2
0174 e61d jr z,%01b0
0176 4df40010 test |<<%0>>%10|(fp)
017a e669 jr z,%024e
017c 3582000a ldl rr2,rr8(#%000a)
0180 5df20000 ldl |<<%0>>%00|(fp),rr2
0184 94a6 ldl rr6,rr10
0186 61f50010 ld r5,|<<%0>>%10|(fp)
018a 54f20004 ldl rr2,|<<%0>>%04|(fp)
018e ddcf calr _lockadd
0190 8d24 test r2
0192 ee37 jr nz,%0202
0194 540280000000 ldl rr2,<<%0>>%0000
019a 9c28 testl rr2
019c ee2a jr nz,%01f2
019e 1484 ldl rr4,@rr8
01a0 1da4 ldl @rr10,rr4
01a2 14a6 ldl rr6,@rr10
01a4 ddf7 calr _lockfree
01a6 4c05800000152323 ldb <<%0>>%0015,#%15
01ae e862 jr %0274
01b0 54f20008 ldl rr2,|<<%0>>%08|(fp)
01b4 5df20000 ldl |<<%0>>%00|(fp),rr2
01b8 14a6 ldl rr6,@rr10
01ba 8355 sub r5,r5
01bc 54f20004 ldl rr2,|<<%0>>%04|(fp)
01c0 dde8 calr _lockadd
01c2 8d24 test r2
01c4 e610 jr z,%01e6
01c6 1482 ldl rr2,@rr8
01c8 1da2 ldl @rr10,rr2
01ca 14a6 ldl rr6,@rr10
01cc de0b calr _lockfree
01ce e852 jr %0274
01d0 54f20008 ldl rr2,|<<%0>>%08|(fp)
01d4 5df20000 ldl |<<%0>>%00|(fp),rr2
01d8 3582000a ldl rr2,rr8(#%000a)
01dc 8355 sub r5,r5
01de 94a6 ldl rr6,rr10
01e0 ddf8 calr _lockadd
01e2 8d24 test r2
01e4 ee47 jr nz,%0274
01e6 9482 ldl rr2,rr8
01e8 a939 inc r3,#10
01ea 54f40008 ldl rr4,|<<%0>>%08|(fp)
01ee 1d24 ldl @rr2,rr4
01f0 e841 jr %0274
01f2 3582000e ldl rr2,rr8(#%000e)
01f6 5df20004 ldl |<<%0>>%04|(fp),rr2
01fa 50f20008 cpl rr2,|<<%0>>%08|(fp)
01fe ee2b jr nz,%0256
0200 e839 jr %0274
0202 4df40010 test |<<%0>>%10|(fp)
0206 e608 jr z,%0218
0208 3582000e ldl rr2,rr8(#%000e)
020c 5df20004 ldl |<<%0>>%04|(fp),rr2
0210 50f20008 cpl rr2,|<<%0>>%08|(fp)
0214 ee20 jr nz,%0256
0216 e82e jr %0274
0218 3582000a ldl rr2,rr8(#%000a)
021c 50f20004 cpl rr2,|<<%0>>%04|(fp)
0220 e916 jr ge,%024e
0222 9482 ldl rr2,rr8
0224 a93d inc r3,#14
0226 54f40004 ldl rr4,|<<%0>>%04|(fp)
022a 1d24 ldl @rr2,rr4
022c e814 jr %0256
022e 9482 ldl rr2,rr8
0230 a939 inc r3,#10
0232 54f40004 ldl rr4,|<<%0>>%04|(fp)
0236 e8db jr %01ee
0238 3582000e ldl rr2,rr8(#%000e)
023c 50f20004 cpl rr2,|<<%0>>%04|(fp)
0240 e602 jr z,%0246
0242 948a ldl rr10,rr8
0244 e808 jr %0256
0246 3582000a ldl rr2,rr8(#%000a)
024a 5df20004 ldl |<<%0>>%04|(fp),rr2
024e 1482 ldl rr2,@rr8
0250 1da2 ldl @rr10,rr2
0252 9486 ldl rr6,rr8
0254 de4f calr _lockfree
0256 14a8 ldl rr8,@rr10
0258 9c88 testl rr8
025a 5e0e80000088 jp nz,<<%0>>%0088
0260 54f20008 ldl rr2,|<<%0>>%08|(fp)
0264 5df20000 ldl |<<%0>>%00|(fp),rr2
0268 94a6 ldl rr6,rr10
026a 61f50010 ld r5,|<<%0>>%10|(fp)
026e 54f20004 ldl rr2,|<<%0>>%04|(fp)
0272 de41 calr _lockadd
0274 5cf1080580000012 ldm r8,<<%0>>%0012(fp),#6
027c 010f001e add fp,#%001e
0280 9e08 ret
}
_unlk::
{
0282 030f001c sub fp,#%001c
0286 5cf9080580000010 ldm <<%0>>%0010(fp),r8,#6
028e 540280000024 ldl rr2,<<%0>>%0024
0294 5df2000c ldl |<<%0>>%0c|(fp),rr2
0298 140400000004 ldl rr4,#%00000004
029e 81f5 add r5,fp
02a0 140200000008 ldl rr2,#%00000008
02a6 81f3 add r3,fp
02a8 54f6000c ldl rr6,|<<%0>>%0c|(fp)
02ac de25 calr _lkfront
02ae 942c ldl rr12,rr2
02b0 9c28 testl rr2
02b2 e668 jr z,%0384
02b4 0103004a add r3,#%004a
02b8 942a ldl rr10,rr2
02ba e861 jr %037e
02bc 31820004 ld r2,rr8(#%0004)
02c0 a724 bit r2,#4
02c2 e607 jr z,%02d2
02c4 9482 ldl rr2,rr8
02c6 a933 inc r3,#4
02c8 2324 res @rr4,#4
02ca 9486 ldl rr6,rr8
02cc 5f0080000000 call _lkdata ! beachte lock.nm - ?????????????????????????? _wakeup?!
02d2 3582000a ldl rr2,rr8(#%000a)
02d6 50f20004 cpl rr2,|<<%0>>%04|(fp)
02da e918 jr ge,%030c
02dc 9482 ldl rr2,rr8
02de a93d inc r3,#14
02e0 54f40008 ldl rr4,|<<%0>>%08|(fp)
02e4 1024 cpl rr4,@rr2
02e6 e912 jr ge,%030c
02e8 3582000e ldl rr2,rr8(#%000e)
02ec 5df20000 ldl |<<%0>>%00|(fp),rr2
02f0 31850004 ld r5,rr8(#%0004)
02f4 9486 ldl rr6,rr8
02f6 54f20008 ldl rr2,|<<%0>>%08|(fp)
02fa de85 calr _lockadd
02fc 8d24 test r2
02fe ee42 jr nz,%0384
0300 9482 ldl rr2,rr8
0302 a93d inc r3,#14
0304 54f40004 ldl rr4,|<<%0>>%04|(fp)
0308 1d24 ldl @rr2,rr4
030a e83c jr %0384
030c 9482 ldl rr2,rr8
030e a939 inc r3,#10
0310 54f40004 ldl rr4,|<<%0>>%04|(fp)
0314 1024 cpl rr4,@rr2
0316 ea0c jr gt,%0330
0318 9482 ldl rr2,rr8
031a a93d inc r3,#14
031c 54f60008 ldl rr6,|<<%0>>%08|(fp)
0320 1026 cpl rr6,@rr2
0322 e906 jr ge,%0330
0324 9482 ldl rr2,rr8
0326 a939 inc r3,#10
0328 54f00008 ldl rr0,|<<%0>>%08|(fp)
032c 1d20 ldl @rr2,rr0
032e e82a jr %0384
0330 9482 ldl rr2,rr8
0332 a93d inc r3,#14
0334 54f40004 ldl rr4,|<<%0>>%04|(fp)
0338 1d24 ldl @rr2,rr4
033a 948a ldl rr10,rr8
033c e820 jr %037e
033e 35820006 ldl rr2,rr8(#%0006)
0342 500280000020 cpl rr2,<<%0>>%0020
0348 eef8 jr nz,%033a
034a 9482 ldl rr2,rr8
034c a939 inc r3,#10
034e 54f40008 ldl rr4,|<<%0>>%08|(fp)
0352 1024 cpl rr4,@rr2
0354 e217 jr le,%0384
0356 3582000e ldl rr2,rr8(#%000e)
035a 50f20004 cpl rr2,|<<%0>>%04|(fp)
035e e2ed jr le,%033a
0360 9482 ldl rr2,rr8
0362 a939 inc r3,#10
0364 54f40004 ldl rr4,|<<%0>>%04|(fp)
0368 1024 cpl rr4,@rr2
036a eaa8 jr gt,%02bc
036c 3582000e ldl rr2,rr8(#%000e)
0370 50f20008 cpl rr2,|<<%0>>%08|(fp)
0374 eaa3 jr gt,%02bc
0376 1482 ldl rr2,@rr8
0378 1da2 ldl @rr10,rr2
037a 9486 ldl rr6,rr8
037c dee3 calr _lockfree
037e 14a8 ldl rr8,@rr10
0380 9c88 testl rr8
0382 eedd jr nz,%033e
0384 5cf1080580000010 ldm r8,<<%0>>%0010(fp),#6
038c 010f001c add fp,#%001c
0390 9e08 ret
}
_locked::
{
0392 030f001e sub fp,#%001e
0396 5cf9080580000012 ldm <<%0>>%0012(fp),r8,#6
039e 6ff7000a ld |<<%0>>%0a|(fp),r7
03a2 54f880000022 ldl rr8,<<%0>>%0022(fp)
03a8 942a ldl rr10,rr2
03aa 944c ldl rr12,rr4
03ac 35c2004a ldl rr2,rr12(#%004a)
03b0 5df2000c ldl |<<%0>>%0c|(fp),rr2
03b4 e83e jr %0432
03b6 54f2000c ldl rr2,|<<%0>>%0c|(fp)
03ba 1424 ldl rr4,@rr2
03bc 5df4000c ldl |<<%0>>%0c|(fp),rr4
03c0 e838 jr %0432
03c2 a939 inc r3,#10
03c4 1028 cpl rr8,@rr2
03c6 e239 jr le,%043a
03c8 54f2000c ldl rr2,|<<%0>>%0c|(fp)
03cc 35240006 ldl rr4,rr2(#%0006)
03d0 500480000020 cpl rr4,<<%0>>%0020
03d6 e6ef jr z,%03b6
03d8 a93d inc r3,#14
03da 102a cpl rr10,@rr2
03dc e9ec jr ge,%03b6
03de 54f2000c ldl rr2,|<<%0>>%0c|(fp)
03e2 a933 inc r3,#4
03e4 61f4000a ld r4,|<<%0>>%0a|(fp)
03e8 07040100 and r4,#%0100
03ec 0724 and r4,@rr2
03ee eee3 jr nz,%03b6
03f0 67f7000a bit |<<%0>>%0a|(fp),#7
03f4 e606 jr z,%0402
03f6 4c05800000150d0d ldb <<%0>>%0015,#%15
03fe bd21 ldk r2,#1
0400 e81d jr %043c
0402 54f6000c ldl rr6,|<<%0>>%0c|(fp)
0406 dfdf calr _deadlock
0408 8d24 test r2
040a eef9 jr nz,%03fe
040c 54f2000c ldl rr2,|<<%0>>%0c|(fp)
0410 a933 inc r3,#4
0412 2524 set @rr4,#4
0414 54f6000c ldl rr6,|<<%0>>%0c|(fp)
0418 21050028 ld r5,#%0028
041c 5f0080000000 call _lkdata ! beachte lock.nm - ?????????????????????????? _sleep?!
0422 35c2004a ldl rr2,rr12(#%004a)
0426 5df2000c ldl |<<%0>>%0c|(fp),rr2
042a 4c0480000015 testb <<%0>>%0015
0430 eee6 jr nz,%03fe
0432 54f2000c ldl rr2,|<<%0>>%0c|(fp)
0436 9c28 testl rr2
0438 eec4 jr nz,%03c2
043a 8322 sub r2,r2
043c 5cf1080580000012 ldm r8,<<%0>>%0012(fp),#6
0444 010f001e add fp,#%001e
0448 9e08 ret
}
_deadlock::
! U _Nflock!
{
044a 030f0012 sub fp,#%0012
044e 5cf90a038000000a ldm <<%0>>%000a(fp),r10,#4
0456 946c ldl rr12,rr6
0458 e821 jr %049c
045a 35c20006 ldl rr2,rr12(#%0006)
045e 35240016 ldl rr4,rr2(#%0016)
0462 944a ldl rr10,rr4
0464 100400000000 cpl rr4,#%00000000
046a e71d jr c,%04a6
046c 610380000000 ld r3,<<%0>>%0000
0472 19020012 mult rr2,#%0012
0476 140400000000 ldl rr4,#%00000000
047c 8135 add r5,r3
047e 904a cpl rr10,rr4
0480 ef12 jr nc,%04a6
0482 35a20006 ldl rr2,rr10(#%0006)
0486 500280000020 cpl rr2,<<%0>>%0020
048c ee06 jr nz,%049a
048e 4c05800000152323 ldb <<%0>>%0015,#%15
0496 bd21 ldk r2,#1
0498 e807 jr %04a8
049a 94ac ldl rr12,rr10
049c 35c20006 ldl rr2,rr12(#%0006)
04a0 0c210101 cpb @rr2,#%01
04a4 e6da jr z,%045a
04a6 8322 sub r2,r2
04a8 5cf10a038000000a ldm r10,<<%0>>%000a(fp),#4
04b0 010f0012 add fp,#%0012
04b4 9e08 ret
}
_unlock::
{
04b6 030f001c sub fp,#%001c
04ba 5cf9080580000010 ldm <<%0>>%0010(fp),r8,#6
04c2 946c ldl rr12,rr6
04c4 35c2004a ldl rr2,rr12(#%004a)
04c8 9c28 testl rr2
04ca e636 jr z,%0538
04cc 9462 ldl rr2,rr6
04ce 0103004a add r3,#%004a
04d2 9428 ldl rr8,rr2
04d4 4df8000e clr |<<%0>>%0e|(fp)
04d8 4df8000c clr |<<%0>>%0c|(fp)
04dc 61f2000c ld r2,|<<%0>>%0c|(fp)
04e0 b3290002 sla r2,#2
04e4 542480000068 ldl rr4,<<%0>>%0068(r2)
04ea 9c48 testl rr4
04ec e60c jr z,%0506
04ee 61f2000c ld r2,|<<%0>>%0c|(fp)
04f2 b3290002 sla r2,#2
04f6 542480000068 ldl rr4,<<%0>>%0068(r2)
04fc a951 inc r5,#2
04fe 104c cpl rr12,@rr4
0500 ee02 jr nz,%0506
0502 69f0000e inc |<<%0>>%0e|(fp),#1
0506 69f0000c inc |<<%0>>%0c|(fp),#1
050a 4df1000c0014 cp |<<%0>>%0c|(fp),#%0014
0510 e1e5 jr lt,%04dc
0512 4df4000e test |<<%0>>%0e|(fp)
0516 e60d jr z,%0532
0518 e80f jr %0538
051a 14a2 ldl rr2,@rr10
051c 1d82 ldl @rr8,rr2
051e 94a6 ldl rr6,rr10
0520 dfb5 calr _lockfree
0522 e807 jr %0532
0524 35a20006 ldl rr2,rr10(#%0006)
0528 500280000020 cpl rr2,<<%0>>%0020
052e e6f5 jr z,%051a
0530 94a8 ldl rr8,rr10
0532 148a ldl rr10,@rr8
0534 9ca8 testl rr10
0536 eef6 jr nz,%0524
0538 5cf1080580000010 ldm r8,<<%0>>%0010(fp),#6
0540 010f001c add fp,#%001c
0544 9e08 ret
}
_lockalloc::
{
0546 abfb dec fp,#12
0548 5cf90a0380000004 ldm <<%0>>%0004(fp),r10,#4
0550 140c00000000 ldl rr12,#%00000000
0556 35c20006 ldl rr2,rr12(#%0006)
055a 9c28 testl rr2
055c ee19 jr nz,%0590
055e 94c2 ldl rr2,rr12
0560 a935 inc r3,#6
0562 140400000000 ldl rr4,#%00000000
0568 1d24 ldl @rr2,rr4
056a 140a00000012 ldl rr10,#%00000012
0570 e804 jr %057a
0572 94a6 ldl rr6,rr10
0574 dfdf calr _lockfree
0576 010b0012 add r11,#%0012
057a 610380000000 ld r3,<<%0>>%0000
0580 19020012 mult rr2,#%0012
0584 140400000000 ldl rr4,#%00000000
058a 8135 add r5,r3
058c 904a cpl rr10,rr4
058e e7f1 jr c,%0572
0590 14ca ldl rr10,@rr12
0592 9ca8 testl rr10
0594 ee06 jr nz,%05a2
0596 4c05800000152323 ldb <<%0>>%0015,#%15
059e 9222 subl rr2,rr2
05a0 e805 jr %05ac
05a2 14a2 ldl rr2,@rr10
05a4 1dc2 ldl @rr12,rr2
05a6 9222 subl rr2,rr2
05a8 1da2 ldl @rr10,rr2
05aa 94a2 ldl rr2,rr10
05ac 5cf10a0380000004 ldm r10,<<%0>>%0004(fp),#4
05b4 a9fb inc fp,#12
05b6 9e08 ret
}
_lockfree::
{
05b8 abfb dec fp,#12
05ba 5cf90a0380000004 ldm <<%0>>%0004(fp),r10,#4
05c2 946c ldl rr12,rr6
05c4 140a00000000 ldl rr10,#%00000000
05ca 31c20004 ld r2,rr12(#%0004)
05ce a724 bit r2,#4
05d0 e607 jr z,%05e0
05d2 9462 ldl rr2,rr6
05d4 a933 inc r3,#4
05d6 2324 res @rr4,#4
05d8 94c6 ldl rr6,rr12
05da 5f0080000000 call _lkdata ! beachte lock.nm - ?????????????????????????? _wakeup?!
05e0 14a2 ldl rr2,@rr10
05e2 1dc2 ldl @rr12,rr2
05e4 1dac ldl @rr10,rr12
05e6 5cf10a0380000004 ldm r10,<<%0>>%0004(fp),#4
05ee a9fb inc fp,#12
05f0 9e08 ret
}
_lockadd::
{
05f2 030f001e sub fp,#%001e
05f6 5cf9080580000012 ldm <<%0>>%0012(fp),r8,#6
05fe 9428 ldl rr8,rr2
0600 a15b ld r11,r5
0602 946c ldl rr12,rr6
0604 d060 calr _lockalloc
0606 5df2000c ldl |<<%0>>%0c|(fp),rr2
060a 9c28 testl rr2
060c ee06 jr nz,%061a
060e 4c05800000152323 ldb <<%0>>%0015,#%15
0616 bd21 ldk r2,#1
0618 e81e jr %0656
061a 54f2000c ldl rr2,|<<%0>>%0c|(fp)
061e 14c4 ldl rr4,@rr12
0620 1d24 ldl @rr2,rr4
0622 54f4000c ldl rr4,|<<%0>>%0c|(fp)
0626 1dc4 ldl @rr12,rr4
0628 54f2000c ldl rr2,|<<%0>>%0c|(fp)
062c a935 inc r3,#6
062e 540480000020 ldl rr4,<<%0>>%0020
0634 1d24 ldl @rr2,rr4
0636 54f2000c ldl rr2,|<<%0>>%0c|(fp)
063a a939 inc r3,#10
063c 1d28 ldl @rr2,rr8
063e 54f2000c ldl rr2,|<<%0>>%0c|(fp)
0642 a93d inc r3,#14
0644 54f480000022 ldl rr4,<<%0>>%0022(fp)
064a 1d24 ldl @rr2,rr4
064c 54f2000c ldl rr2,|<<%0>>%0c|(fp)
0650 a933 inc r3,#4
0652 2f2b ld @rr2,r11
0654 8322 sub r2,r2
0656 5cf1080580000012 ldm r8,<<%0>>%0012(fp),#6
065e 010f001e add fp,#%001e
0662 9e08 ret
}
_lkfront::
{
0664 030f0030 sub fp,#%0030
0668 5cf9080580000024 ldm <<%0>>%0024(fp),r8,#6
0670 9428 ldl rr8,rr2
0672 944a ldl rr10,rr4
0674 946c ldl rr12,rr6
0676 21c7 ld r7,@rr12
0678 5f0080000000 call _lkdata ! beachte lock.nm - ?????????????????????????? _getf?!
067e 5df20016 ldl |<<%0>>%16|(fp),rr2
0682 9c28 testl rr2
0684 ee1f jr nz,%06c4
0686 e84f jr %0726
0688 14060100009a ldl rr6,#%0100009a
068e 5f0080000000 call _lkdata ! beachte lock.nm - ?????????????????????????? _printf?!
0694 e848 jr %0726
0696 54f6001a ldl rr6,|<<%0>>%1a|(fp)
069a 21050080 ld r5,#%0080
069e 5f0080000000 call _lkdata ! beachte lock.nm - ?????????????????????????? _access?!
06a4 8d24 test r2
06a6 e61e jr z,%06e4
06a8 4c05800000150d0d ldb <<%0>>%0015,#%15
06b0 e83a jr %0726
06b2 31240006 ld r4,rr2(#%0006)
06b6 a74c bit r4,#12
06b8 e6f7 jr z,%06a8
06ba 4c05800000151d1d ldb <<%0>>%0015,#%15
06c2 e831 jr %0726
06c4 54f20016 ldl rr2,|<<%0>>%16|(fp)
06c8 35240002 ldl rr4,rr2(#%0002)
06cc 5df4001a ldl |<<%0>>%1a|(fp),rr4
06d0 9c48 testl rr4
06d2 e6da jr z,%0688
06d4 54f20016 ldl rr2,|<<%0>>%16|(fp)
06d8 202c ldb rl4,@rr2
06da b140 extsb r4
06dc 07040002 and r4,#%0002
06e0 8d44 test r4
06e2 e6d9 jr z,%0696
06e4 4df5001e7000 ld |<<%0>>%1e|(fp),#%7000
06ea 54f2001a ldl rr2,|<<%0>>%1a|(fp)
06ee 31240006 ld r4,rr2(#%0006)
06f2 0704f000 and r4,#%f000
06f6 47f4001e and r4,|<<%0>>%1e|(fp)
06fa eedb jr nz,%06b2
06fc 35c60004 ldl rr6,rr12(#%0004)
0700 14040000000c ldl rr4,#%0000000c
0706 81f5 add r5,fp
0708 bd3a ldk r3,#10
070a 5f0080000000 call _lkdata ! beachte lock.nm - ?????????????????????????? _copyin?!
0710 8d24 test r2
0712 e60b jr z,%072a
0714 4c05800000150e0e ldb <<%0>>%0015,#%15
071c e804 jr %0726
071e 4c05800000151616 ldb <<%0>>%0015,#%15
0726 9222 subl rr2,rr2
0728 e842 jr %07ae
072a 31c20002 ld r2,rr12(#%0002)
072e 0b020000 cp r2,#%0000
0732 e1f5 jr lt,%071e
0734 0b020007 cp r2,#%0007
0738 eaf2 jr gt,%071e
073a a721 bit r2,#1
073c e619 jr z,%0770
073e 4df100140001 cp |<<%0>>%14|(fp),#%0001
0744 ee05 jr nz,%0750
0746 54f20016 ldl rr2,|<<%0>>%16|(fp)
074a 35240006 ldl rr4,rr2(#%0006)
074e e808 jr %0760
0750 4df100140002 cp |<<%0>>%14|(fp),#%0002
0756 ee08 jr nz,%0768
0758 54f2001a ldl rr2,|<<%0>>%1a|(fp)
075c 3524000e ldl rr4,rr2(#%000e)
0760 56f40010 addl rr4,|<<%0>>%10|(fp)
0764 5df40010 ldl |<<%0>>%10|(fp),rr4
0768 54f20010 ldl rr2,|<<%0>>%10|(fp)
076c 1da2 ldl @rr10,rr2
076e e805 jr %077a
0770 54f20016 ldl rr2,|<<%0>>%16|(fp)
0774 35240006 ldl rr4,rr2(#%0006)
0778 1da4 ldl @rr10,rr4
077a 14a2 ldl rr2,@rr10
077c 100200000000 cpl rr2,#%00000000
0782 e1cd jr lt,%071e
0784 54f2000c ldl rr2,|<<%0>>%0c|(fp)
0788 9c28 testl rr2
078a e604 jr z,%0794
078c 14a2 ldl rr2,@rr10
078e 56f2000c addl rr2,|<<%0>>%0c|(fp)
0792 e803 jr %079a
0794 140240000000 ldl rr2,#%40000000
079a 1d82 ldl @rr8,rr2
079c 14a2 ldl rr2,@rr10
079e 1082 cpl rr2,@rr8
07a0 e9be jr ge,%071e
07a2 14a2 ldl rr2,@rr10
07a4 5d0280000028 ldl <<%0>>%0028,rr2
07aa 54f2001a ldl rr2,|<<%0>>%1a|(fp)
07ae 5cf1080580000024 ldm r8,<<%0>>%0024(fp),#6
07b6 010f0030 add fp,#%0030
07ba 9e08 ret
}

View File

@ -1,154 +0,0 @@
File lock.obj
Image size: 2160
Bss size: 0
Entry point: 0x0
Segment 0
Text size: 1980
Data size: 0
Bss size: 0
Text+Data......
0000: 030f 001e 5cf9 0805 8000 0012 5402 8000
0010: 0024 5df2 000c 1404 0000 0004 81f5 1402
0020: 0000 0008 81f3 54f6 000c dce4 942c 9c28
0030: 5e06 8000 0274 54f2 0008 5df2 0000 54f4
0040: 000c 3147 0002 a772 e603 2107 0080 e801
0050: 8377 94c4 54f2 0004 de64 8d24 5e0e 8000
0060: 0274 94c2 0103 004a 942a 54f2 000c 3124
0070: 0002 a740 e602 8344 e802 2104 0100 6ff4
0080: 0010 5e08 8000 0256 9482 a939 54f4 0008
0090: 1024 5e01 8000 0260 3582 0006 5002 8000
00a0: 0020 5e0e 8000 0242 3584 000a 50f4 0004
00b0: ea02 bd31 e801 8333 3584 000e 50f4 0004
00c0: ea02 bd42 e801 8344 8143 3584 000a 50f4
00d0: 0008 ea02 bd44 e801 8344 8143 3584 000e
00e0: 50f4 0008 ea02 bd48 e801 8344 8143 3184
00f0: 0004 0704 0100 4bf4 0010 ee03 2104 0010
0100: e801 8344 8143 a132 ab23 0b02 001b 5e0b
0110: 8000 0256 b322 5424 8100 002a 1e48 4df4
0120: 0010 e607 3584 000a 5df4 0000 5e08 8000
0130: 0268 54f2 0008 5df2 0000 94a6 61f5 0010
0140: 54f2 0004 ddaa 8d24 e64e 4df4 0010 5e0e
0150: 8000 0274 3582 000a 50f2 0004 e939 54f2
0160: 0004 5df2 0000 3582 000a 2105 0100 94a6
0170: ddc0 8d24 e61d 4df4 0010 e669 3582 000a
0180: 5df2 0000 94a6 61f5 0010 54f2 0004 ddcf
0190: 8d24 ee37 5402 8000 0000 9c28 ee2a 1484
01a0: 1da4 14a6 ddf7 4c05 8000 0015 2323 e862
01b0: 54f2 0008 5df2 0000 14a6 8355 54f2 0004
01c0: dde8 8d24 e610 1482 1da2 14a6 de0b e852
01d0: 54f2 0008 5df2 0000 3582 000a 8355 94a6
01e0: ddf8 8d24 ee47 9482 a939 54f4 0008 1d24
01f0: e841 3582 000e 5df2 0004 50f2 0008 ee2b
0200: e839 4df4 0010 e608 3582 000e 5df2 0004
0210: 50f2 0008 ee20 e82e 3582 000a 50f2 0004
0220: e916 9482 a93d 54f4 0004 1d24 e814 9482
0230: a939 54f4 0004 e8db 3582 000e 50f2 0004
0240: e602 948a e808 3582 000a 5df2 0004 1482
0250: 1da2 9486 de4f 14a8 9c88 5e0e 8000 0088
0260: 54f2 0008 5df2 0000 94a6 61f5 0010 54f2
0270: 0004 de41 5cf1 0805 8000 0012 010f 001e
0280: 9e08 030f 001c 5cf9 0805 8000 0010 5402
0290: 8000 0024 5df2 000c 1404 0000 0004 81f5
02a0: 1402 0000 0008 81f3 54f6 000c de25 942c
02b0: 9c28 e668 0103 004a 942a e861 3182 0004
02c0: a724 e607 9482 a933 2324 9486 5f00 8000
02d0: 0000 3582 000a 50f2 0004 e918 9482 a93d
02e0: 54f4 0008 1024 e912 3582 000e 5df2 0000
02f0: 3185 0004 9486 54f2 0008 de85 8d24 ee42
0300: 9482 a93d 54f4 0004 1d24 e83c 9482 a939
0310: 54f4 0004 1024 ea0c 9482 a93d 54f6 0008
0320: 1026 e906 9482 a939 54f0 0008 1d20 e82a
0330: 9482 a93d 54f4 0004 1d24 948a e820 3582
0340: 0006 5002 8000 0020 eef8 9482 a939 54f4
0350: 0008 1024 e217 3582 000e 50f2 0004 e2ed
0360: 9482 a939 54f4 0004 1024 eaa8 3582 000e
0370: 50f2 0008 eaa3 1482 1da2 9486 dee3 14a8
0380: 9c88 eedd 5cf1 0805 8000 0010 010f 001c
0390: 9e08 030f 001e 5cf9 0805 8000 0012 6ff7
03a0: 000a 54f8 8000 0022 942a 944c 35c2 004a
03b0: 5df2 000c e83e 54f2 000c 1424 5df4 000c
03c0: e838 a939 1028 e239 54f2 000c 3524 0006
03d0: 5004 8000 0020 e6ef a93d 102a e9ec 54f2
03e0: 000c a933 61f4 000a 0704 0100 0724 eee3
03f0: 67f7 000a e606 4c05 8000 0015 0d0d bd21
0400: e81d 54f6 000c dfdf 8d24 eef9 54f2 000c
0410: a933 2524 54f6 000c 2105 0028 5f00 8000
0420: 0000 35c2 004a 5df2 000c 4c04 8000 0015
0430: eee6 54f2 000c 9c28 eec4 8322 5cf1 0805
0440: 8000 0012 010f 001e 9e08 030f 0012 5cf9
0450: 0a03 8000 000a 946c e821 35c2 0006 3524
0460: 0016 944a 1004 0000 0000 e71d 6103 8000
0470: 0000 1902 0012 1404 0000 0000 8135 904a
0480: ef12 35a2 0006 5002 8000 0020 ee06 4c05
0490: 8000 0015 2323 bd21 e807 94ac 35c2 0006
04a0: 0c21 0101 e6da 8322 5cf1 0a03 8000 000a
04b0: 010f 0012 9e08 030f 001c 5cf9 0805 8000
04c0: 0010 946c 35c2 004a 9c28 e636 9462 0103
04d0: 004a 9428 4df8 000e 4df8 000c 61f2 000c
04e0: b329 0002 5424 8000 0068 9c48 e60c 61f2
04f0: 000c b329 0002 5424 8000 0068 a951 104c
0500: ee02 69f0 000e 69f0 000c 4df1 000c 0014
0510: e1e5 4df4 000e e60d e80f 14a2 1d82 94a6
0520: dfb5 e807 35a2 0006 5002 8000 0020 e6f5
0530: 94a8 148a 9ca8 eef6 5cf1 0805 8000 0010
0540: 010f 001c 9e08 abfb 5cf9 0a03 8000 0004
0550: 140c 0000 0000 35c2 0006 9c28 ee19 94c2
0560: a935 1404 0000 0000 1d24 140a 0000 0012
0570: e804 94a6 dfdf 010b 0012 6103 8000 0000
0580: 1902 0012 1404 0000 0000 8135 904a e7f1
0590: 14ca 9ca8 ee06 4c05 8000 0015 2323 9222
05a0: e805 14a2 1dc2 9222 1da2 94a2 5cf1 0a03
05b0: 8000 0004 a9fb 9e08 abfb 5cf9 0a03 8000
05c0: 0004 946c 140a 0000 0000 31c2 0004 a724
05d0: e607 9462 a933 2324 94c6 5f00 8000 0000
05e0: 14a2 1dc2 1dac 5cf1 0a03 8000 0004 a9fb
05f0: 9e08 030f 001e 5cf9 0805 8000 0012 9428
0600: a15b 946c d060 5df2 000c 9c28 ee06 4c05
0610: 8000 0015 2323 bd21 e81e 54f2 000c 14c4
0620: 1d24 54f4 000c 1dc4 54f2 000c a935 5404
0630: 8000 0020 1d24 54f2 000c a939 1d28 54f2
0640: 000c a93d 54f4 8000 0022 1d24 54f2 000c
0650: a933 2f2b 8322 5cf1 0805 8000 0012 010f
0660: 001e 9e08 030f 0030 5cf9 0805 8000 0024
0670: 9428 944a 946c 21c7 5f00 8000 0000 5df2
0680: 0016 9c28 ee1f e84f 1406 0100 009a 5f00
0690: 8000 0000 e848 54f6 001a 2105 0080 5f00
06a0: 8000 0000 8d24 e61e 4c05 8000 0015 0d0d
06b0: e83a 3124 0006 a74c e6f7 4c05 8000 0015
06c0: 1d1d e831 54f2 0016 3524 0002 5df4 001a
06d0: 9c48 e6da 54f2 0016 202c b140 0704 0002
06e0: 8d44 e6d9 4df5 001e 7000 54f2 001a 3124
06f0: 0006 0704 f000 47f4 001e eedb 35c6 0004
0700: 1404 0000 000c 81f5 bd3a 5f00 8000 0000
0710: 8d24 e60b 4c05 8000 0015 0e0e e804 4c05
0720: 8000 0015 1616 9222 e842 31c2 0002 0b02
0730: 0000 e1f5 0b02 0007 eaf2 a721 e619 4df1
0740: 0014 0001 ee05 54f2 0016 3524 0006 e808
0750: 4df1 0014 0002 ee08 54f2 001a 3524 000e
0760: 56f4 0010 5df4 0010 54f2 0010 1da2 e805
0770: 54f2 0016 3524 0006 1da4 14a2 1002 0000
0780: 0000 e1cd 54f2 000c 9c28 e604 14a2 56f2
0790: 000c e803 1402 4000 0000 1d82 14a2 1082
07a0: e9be 14a2 5d02 8000 0028 54f2 001a 5cf1
07b0: 0805 8000 0024 010f 0030 9e08
Segment 1
Text size: 0
Data size: 180
Bss size: 0
Text+Data......
0000: 405b 245d 6c6f 636b 2e63 0909 5265 7620
0010: 3a20 342e 3120 0930 382f 3237 2f38 3320
0020: 3131 3a35 353a 3134 0000 0000 011e 0000
0030: 014a 0000 0256 0000 0256 0000 0256 0000
0040: 0256 0000 0256 0000 0256 0000 0176 0000
0050: 0202 0000 0256 0000 0242 0000 0256 0000
0060: 0256 0000 0256 0000 0256 0000 022e 0000
0070: 0274 0000 0256 0000 0256 0000 0256 0000
0080: 0256 0000 0256 0000 0256 0000 024e 0000
0090: 0246 0000 0256 0000 0238 5041 4e49 4320
00a0: 6970 206e 756c 6c20 696e 206c 6b66 726f
00b0: 6e74 0a00

View File

@ -1,63 +0,0 @@
01000000 D _lockwstr
U _buffer1
U _buffer2
U _buffer3
U _buffer4
U _buffer5
U _canonb
0004 C _rootdir
0004 C _runq
0002 C _lbolt
0004 C _lifetime
0004 C _time
0002 C _nblkdev
0002 C _nchrdev
0002 C _mpid
0001 C _runin
0001 C _runout
0001 C _runrun
0001 C _curpri
0002 C _maxmem
0002 C _umemory
0004 C _swplo
0002 C _nswap
0002 C _updlock
0004 C _rablock
0080 C _msgbuf
0002 C _rootdev
0002 C _swapdev
0002 C _pipedev
0004 C _serial
0002 C _numterm
0002 C _manboot
0002 C _blkacty
0002 C _cputype
0070 C _sysinfo
0006 C _syswait
0002 C _dk_busy
0080 C _dk_time
000c C _dk_numb
000c C _dk_wds
0004 C _tk_nin
0004 C _tk_nout
00c8 C _callout
0000 T _lkdata
U _stkseg
U _u
U _locklist
0282 T _unlk
U _wakeup
0392 T _locked
U _sleep
044a T _deadlock
U _Nflock
04b6 T _unlock
0546 T _lockalloc
U _proc
05b8 T _lockfree
05f2 T _lockadd
0664 T _lkfront
U _getf
U _printf
U _access
U _copyin

Binary file not shown.

View File

@ -91,22 +91,6 @@ _lockwstr::
.comm 4, _tk_nout;
.comm 200, _callout;
.even
L6000:
.byte %00,%00,%01,%1e,%00,%00,%01,%4a
.byte %00,%00,%02,%56,%00,%00,%02,%56
.byte %00,%00,%02,%56,%00,%00,%02,%56
.byte %00,%00,%02,%56,%00,%00,%02,%56
.byte %00,%00,%01,%76,%00,%00,%02,%02
.byte %00,%00,%02,%56,%00,%00,%02,%42
.byte %00,%00,%02,%56,%00,%00,%02,%56
.byte %00,%00,%02,%56,%00,%00,%02,%56
.byte %00,%00,%02,%2e,%00,%00,%02,%74
.byte %00,%00,%02,%56,%00,%00,%02,%56
.byte %00,%00,%02,%56,%00,%00,%02,%56
.byte %00,%00,%02,%56,%00,%00,%02,%56
.byte %00,%00,%02,%4e,%00,%00,%02,%46
.byte %00,%00,%02,%56,%00,%00,%02,%38
.even
/*~~lkdata:*/
.psec
@ -114,6 +98,41 @@ L6000:
_lkdata::
{
.psec data
.data
.even
L6000:
.long L6001
.long L6002
.long L1010
.long L1010
.long L1010
.long L1010
.long L1010
.long L1010
.long L6003
.long L1080
.long L1010
.long L1140
.long L1010
.long L1010
.long L1010
.long L1010
.long L6004
.long L1000
.long L1010
.long L1010
.long L1010
.long L1010
.long L1010
.long L1010
.long L1040
.long L1020
.long L1010
.long L6005
.even
.psec
.code
sub fp,#~L2
ldm _stkseg+~L1+%0012(fp),r8,#6
ldl rr2,_u+%0024
@ -218,6 +237,7 @@ L1130:
rl r2,#2
ldl rr4,L6000(r2)
jp @rr4
L6001:
test |_stkseg+~L1+%0010|(fp)
jr z,L1120
ldl rr4,rr8(#%000a)
@ -232,6 +252,7 @@ L1120:
calr _lockadd
test r2
jr z,L1060
L6002:
test |_stkseg+~L1+%0010|(fp)
jp nz,L1000
ldl rr2,rr8(#%000a)
@ -245,6 +266,7 @@ L1120:
calr _lockadd
test r2
jr z,L1100
L6003:
test |_stkseg+~L1+%0010|(fp)
jr z,L1040
ldl rr2,rr8(#%000a)
@ -317,10 +339,12 @@ L1050:
ldl rr4,|_stkseg+~L1+%0004|(fp)
ldl @rr2,rr4
jr L1010
L6004:
ldl rr2,rr8
inc r3,#10
ldl rr4,|_stkseg+~L1+%0004|(fp)
jr L1030
L6005:
ldl rr2,rr8(#%000e)
cpl rr2,|_stkseg+~L1+%0004|(fp)
jr z,L1020
@ -617,6 +641,7 @@ _unlock::
ldl rr8,rr2
clr |_stkseg+~L1+%000e|(fp)
clr |_stkseg+~L1+%000c|(fp)
L450:
ld r2,|_stkseg+~L1+%000c|(fp)
sla r2,#2
ldl rr4,_u+%0068(r2)
@ -632,7 +657,7 @@ _unlock::
L410:
inc |_stkseg+~L1+%000c|(fp),#1
cp |_stkseg+~L1+%000c|(fp),#%0014
jr lt,_unlock+%26
jr lt,L450
test |_stkseg+~L1+%000e|(fp)
jr z,L420
jr L400