| Address | Output | Source |
| D:\My Documents\Visual Studio 2005\Projects\Latenite\Latenite\bin\Projects\Multithread\Multithread\Library\Interrupt.asm |
| Page 0 |
| 9898 | D9 | exx |
| 9899 | E1 | pop hl |
| 989A | ED 73 AE 98 | ld (OldSP),sp |
| 989E | 22 B2 98 | ld (OldPC),hl |
| 98A1 | 31 00 00 | StoreOldRegisters = $+1 \ ld sp,0 |
| 98A4 | D9 | exx |
| 98A5 | FD E5 | push iy |
| 98A7 | DD E5 | push ix |
| 98A9 | E5 | push hl |
| 98AA | D5 | push de |
| 98AB | C5 | push bc |
| 98AC | F5 | push af |
| 98AD | 21 00 00 E5 | OldSP = $+1 \ ld hl,0 \ push hl |
| 98B1 | 21 00 00 E5 | OldPC = $+1 \ ld hl,0 \ push hl |
| 98B5 | D9 | exx |
| 98B6 | 08 | ex af,af' |
| 98B7 | 21 00 00 | CurrentThreadStore = $+1 \ ld hl,0 |
| 98BA | 5E 23 | ld e,(hl) \ inc hl |
| 98BC | 56 23 | ld d,(hl) \ inc hl |
| 98BE | 22 B8 98 | ld (CurrentThreadStore),hl |
| 98C1 | 7A | ld a,d |
| 98C2 | B3 | or e |
| 98C3 | 20 09 | jr nz,FoundOutNextThread |
| 98C5 | 21 EC 86 | ld hl,Parent.ThreadStores |
| 98C8 | 22 B8 98 | ld (CurrentThreadStore),hl |
| 98CB | 5E 23 | ld e,(hl) \ inc hl |
| 98CD | 56 | ld d,(hl) |
| 98CE | ED 53 D5 98 | ld (NextThreadToRun),de |
| 98D2 | D9 | exx |
| 98D3 | 08 | ex af,af' |
| 98D4 | 31 00 00 | NextThreadToRun = $+1 \ ld sp,0 |
| 98D7 | E1 22 F2 98 | pop hl \ ld (NewPC),hl |
| 98DB | E1 22 EF 98 | pop hl \ ld (NewSP),hl |
| 98DF | F1 | pop af |
| 98E0 | C1 | pop bc |
| 98E1 | D1 | pop de |
| 98E2 | E1 22 F6 98 | pop hl \ ld (NewHL),hl |
| 98E6 | DD E1 | pop ix |
| 98E8 | FD E1 | pop iy |
| 98EA | ED 73 A2 98 | ld (StoreOldRegisters),sp |
| 98EE | 31 00 00 | NewSP = $+1 \ ld sp,0 |
| 98F1 | 21 00 00 E5 | NewPC = $+1 \ ld hl,0 \ push hl |
| 98F5 | 21 00 00 | NewHL = $+1 \ ld hl,0 |
| 98F8 | D9 | exx |
| 98F9 | 08 | ex af,af' |
| 98FA | C3 3A 00 | jp $3A |
| D:\My Documents\Visual Studio 2005\Projects\Latenite\Latenite\bin\Projects\Multithread\Includes\Headers.asm |
| Skipped 1174 bytes |
| 9D93 | BB 6D | .db $BB,$6D |
| 9D95 | C9 30 0C | ret \ jr nc,Program.Main |
| 9D98 | 4D 75 6C 74 69 74 68 72 65 61 64 00 | .asc "Multithread", 0 |
| D:\My Documents\Visual Studio 2005\Projects\Latenite\Latenite\bin\Projects\Multithread\Multithread\Multithread.asm |
| 9DA4 | C3 CC 9E | jp SkipThisInclude |
| 9DA7 | F3 | di |
| 9DA8 | ED 56 | im 1 |
| 9DAA | 21 67 9E | ld hl,Interrupt.InterruptCode |
| 9DAD | 11 98 98 | ld de,Interrupt.Location |
| 9DB0 | 01 65 00 | ld bc,Interrupt.InterruptCodeEnd - Interrupt.InterruptCode |
| 9DB3 | ED B0 | ldir |
| 9DB5 | 21 00 9A | ld hl,Interrupt.Table |
| 9DB8 | 3E 98 | ld a,Interrupt.Base |
| 9DBA | 77 | ld (hl),a |
| 9DBB | 54 5D | ld d,h \ ld e,l |
| 9DBD | 13 | inc de |
| 9DBE | 01 00 01 | ld bc,256 |
| 9DC1 | ED B0 | ldir |
| 9DC3 | 3E 9A | ld a,Interrupt.Table >> 8 |
| 9DC5 | ED 47 | ld i,a |
| 9DC7 | 21 EC 86 | ld hl,ThreadStores |
| 9DCA | 22 B8 98 | ld (Interrupt.CurrentThreadStore),hl |
| 9DCD | 11 ED 86 | ld de,ThreadStores+1 |
| 9DD0 | 36 00 | ld (hl),0 |
| 9DD2 | 01 3F 00 | ld bc,sizeof(ThreadStores)-1 |
| 9DD5 | ED B0 | ldir |
| 9DD7 | 21 2C 87 | ld hl,MasterThreadRegisters |
| 9DDA | 22 EC 86 | ld (ThreadStores),hl |
| 9DDD | 21 3C 87 | ld hl,MasterThreadRegisters+16 |
| 9DE0 | 22 A2 98 | ld (Interrupt.StoreOldRegisters),hl |
| 9DE3 | ED 5E | im 2 |
| 9DE5 | FB | ei |
| 9DE6 | 76 | halt |
| 9DE7 | C9 | ret |
| 9DE8 | F3 | di |
| 9DE9 | ED 56 | im 1 |
| 9DEB | FB | ei |
| 9DEC | C9 | ret |
| D:\My Documents\Visual Studio 2005\Projects\Latenite\Latenite\bin\Projects\Multithread\Multithread\Library\NewThread.asm |
| 9DED | F3 | di |
| 9DEE | E5 | push hl |
| 9DEF | 21 20 00 | ld hl,32 |
| 9DF2 | 09 | add hl,bc |
| 9DF3 | 44 4D | ld b,h \ ld c,l |
| 9DF5 | C5 | push bc |
| 9DF6 | EF E5 42 | rst rBR_CALL\ .dw _MemChk |
| 9DF9 | B7 | or a |
| 9DFA | ED 42 | sbc hl,bc |
| 9DFC | DA 05 9E | jp c,EnoughRamForThread |
| 9DFF | E1 | pop hl |
| 9E00 | E1 | pop hl |
| 9E01 | F6 01 | or 1 |
| 9E03 | FB | ei |
| 9E04 | C9 | ret |
| 9E05 | 21 61 9E | ld hl,MemName |
| 9E08 | 11 78 84 | ld de,OP1 |
| 9E0B | 01 05 00 | ld bc,5 |
| 9E0E | ED B0 | ldir |
| 9E10 | 21 7D 84 | ld hl,OP1+5 |
| 9E13 | 06 04 | ld b,4 |
| 9E15 | C5 E5 | push bc \ push hl |
| 9E17 | 06 0A | ld b,10 |
| 9E19 | CD C1 96 | call ionRandom |
| 9E1C | E1 C1 | pop hl \ pop bc |
| 9E1E | C6 30 | add a,'0' |
| 9E20 | 77 | ld (hl),a |
| 9E21 | 23 | inc hl |
| 9E22 | 10 F1 | djnz {-} |
| 9E24 | EF F1 42 | rst rBR_CALL\ .dw _ChkFindSym |
| 9E27 | 30 E7 | jr nc,{--} |
| 9E29 | E1 | pop hl |
| 9E2A | E5 | push hl |
| 9E2B | EF 6D 4E | rst rBR_CALL\ .dw _CreateProtProg |
| 9E2E | 13 | inc de |
| 9E2F | 13 | inc de |
| 9E30 | E1 | pop hl |
| 9E31 | D5 | push de |
| 9E32 | DD E1 | pop ix |
| 9E34 | 19 | add hl,de |
| 9E35 | DD 74 03 | ld (ix+3),h |
| 9E38 | DD 75 02 | ld (ix+2),l |
| 9E3B | E1 | pop hl |
| 9E3C | DD 74 01 | ld (ix+1),h |
| 9E3F | DD 75 00 | ld (ix+0),l |
| 9E42 | FD 7C DD 77 0F | ld a,iyh \ ld (ix+15),a |
| 9E47 | FD 7D DD 77 0E | ld a,iyl \ ld (ix+14),a |
| 9E4C | 21 EC 86 | ld hl,Parent.ThreadStores |
| 9E4F | 7E 23 | - ld a,(hl) \ inc hl |
| 9E51 | B6 | or (hl) |
| 9E52 | 28 03 | jr z,FoundThreadSlot |
| 9E54 | 23 | inc hl |
| 9E55 | 18 F8 | jr {-} |
| 9E57 | 2B | dec hl |
| 9E58 | DD E5 D1 | push ix \ pop de |
| 9E5B | 73 | ld (hl),e |
| 9E5C | 23 | inc hl |
| 9E5D | 72 | ld (hl),d |
| 9E5E | B7 | or a |
| 9E5F | FB | ei |
| 9E60 | C9 | ret |
| 9E61 | 06 54 68 72 64 | .asc ProtProgObj, "Thrd" |
| D:\My Documents\Visual Studio 2005\Projects\Latenite\Latenite\bin\Projects\Multithread\Multithread\Library\EndThread.asm |
| 9E66 | C9 | ret |
| D:\My Documents\Visual Studio 2005\Projects\Latenite\Latenite\bin\Projects\Multithread\Program.asm |
| Skipped 101 bytes |
| 9ECC | CD A7 9D | call Multithread.Init |
| 9ECF | 06 08 | ld b,8 |
| 9ED1 | CD C1 96 | call ionRandom |
| 9ED4 | 32 4C 84 | ld (curCol),a |
| 9ED7 | 06 08 | ld b,8 |
| 9ED9 | CD C1 96 | call ionRandom |
| 9EDC | 32 4B 84 | ld (curRow),a |
| 9EDF | 06 00 | ld b,0 |
| 9EE1 | CD C1 96 | call ionRandom |
| 9EE4 | EF 01 45 | rst rBR_CALL\ .dw _PutMap |
| 9EE7 | EF 18 40 | rst rBR_CALL\ .dw _getCSC |
| 9EEA | FE 36 | cp sk2nd |
| 9EEC | 20 0A | jr nz,{+} |
| 9EEE | 21 00 9F | ld hl,SecondaryThread |
| 9EF1 | 01 90 01 | ld bc,400 |
| 9EF4 | CD ED 9D | call Multithread.Thread.Start |
| 9EF7 | AF | xor a |
| 9EF8 | FE 0F | cp skClear |
| 9EFA | 20 D3 | jr nz,{-} |
| 9EFC | CD E8 9D | call Multithread.End |
| 9EFF | C9 | ret |
| 9F00 | F3 | di |
| 9F01 | 06 40 | ld b,64 |
| 9F03 | CD C1 96 | call ionRandom |
| 9F06 | C6 80 | add a,$80 |
| 9F08 | F5 | push af |
| 9F09 | D3 10 | out ($10),a |
| 9F0B | 06 30 | ld b,48 |
| 9F0D | CD C1 96 | call ionRandom |
| 9F10 | C6 30 | add a,48 |
| 9F12 | 47 | ld b,a |
| 9F13 | CB 3F | srl a |
| 9F15 | CB 3F | srl a |
| 9F17 | CB 3F | srl a |
| 9F19 | C6 20 | add a,$20 |
| 9F1B | D3 10 | out ($10),a |
| 9F1D | 78 | ld a,b |
| 9F1E | E6 07 | and 7 |
| 9F20 | 0E 80 | ld c,%10000000 |
| 9F22 | 28 05 | jr z,{+} |
| 9F24 | 47 | ld b,a |
| 9F25 | CB 39 | - srl c |
| 9F27 | 10 FC | djnz {-} |
| 9F29 | DB 11 | in a,($11) |
| 9F2B | CD 41 9F | call LcdBusy |
| 9F2E | DB 11 | in a,($11) |
| 9F30 | A9 | xor c |
| 9F31 | 4F | ld c,a |
| 9F32 | CD 41 9F | call LcdBusy |
| 9F35 | F1 | pop af |
| 9F36 | D3 10 | out ($10),a |
| 9F38 | CD 41 9F | call LcdBusy |
| 9F3B | 79 | ld a,c |
| 9F3C | D3 11 | out ($11),a |
| 9F3E | FB | ei |
| 9F3F | 18 BF | jr SecondaryThread |
| 9F41 | F5 | push af |
| 9F42 | 23 | inc hl |
| 9F43 | 2B | dec hl |
| 9F44 | F1 | pop af |
| 9F45 | C9 | ret |
| Program.Multithread.ThreadStores | 86EC |
| Program.Multithread.ThreadStores[0] | 86EC |
| Program.Multithread.ThreadStores[1] | 86EE |
| Program.Multithread.ThreadStores[2] | 86F0 |
| Program.Multithread.ThreadStores[3] | 86F2 |
| Program.Multithread.ThreadStores[4] | 86F4 |
| Program.Multithread.ThreadStores[5] | 86F6 |
| Program.Multithread.ThreadStores[6] | 86F8 |
| Program.Multithread.ThreadStores[7] | 86FA |
| Program.Multithread.ThreadStores[8] | 86FC |
| Program.Multithread.ThreadStores[9] | 86FE |
| Program.Multithread.ThreadStores[10] | 8700 |
| Program.Multithread.ThreadStores[11] | 8702 |
| Program.Multithread.ThreadStores[12] | 8704 |
| Program.Multithread.ThreadStores[13] | 8706 |
| Program.Multithread.ThreadStores[14] | 8708 |
| Program.Multithread.ThreadStores[15] | 870A |
| Program.Multithread.ThreadStores[16] | 870C |
| Program.Multithread.ThreadStores[17] | 870E |
| Program.Multithread.ThreadStores[18] | 8710 |
| Program.Multithread.ThreadStores[19] | 8712 |
| Program.Multithread.ThreadStores[20] | 8714 |
| Program.Multithread.ThreadStores[21] | 8716 |
| Program.Multithread.ThreadStores[22] | 8718 |
| Program.Multithread.ThreadStores[23] | 871A |
| Program.Multithread.ThreadStores[24] | 871C |
| Program.Multithread.ThreadStores[25] | 871E |
| Program.Multithread.ThreadStores[26] | 8720 |
| Program.Multithread.ThreadStores[27] | 8722 |
| Program.Multithread.ThreadStores[28] | 8724 |
| Program.Multithread.ThreadStores[29] | 8726 |
| Program.Multithread.ThreadStores[30] | 8728 |
| Program.Multithread.ThreadStores[31] | 872A |
| Program.Multithread.MasterThreadRegisters | 872C |