EDP record 0,INCR D0 ds.l 1 ; 000 ; r8 D1 ds.l 1 ; 004 ; r9 D2 ds.l 1 ; 008 ; r10 D3 ds.l 1 ; 00c ; r11 D4 ds.l 1 ; 010 ; r12 D5 ds.l 1 ; 014 ; r13 D6 ds.l 1 ; 018 ; r14 D7 ds.l 1 ; 01c ; r15 A0 ds.l 1 ; 020 ; r16 A1 ds.l 1 ; 024 ; r17 A2 ds.l 1 ; 028 ; r18 A3 ds.l 1 ; 02c ; r19 A4 ds.l 1 ; 030 ; r20 A5 ds.l 1 ; 034 ; r30 A6 ds.l 1 ; 038 ; r31 A7 ds.l 1 ; 03c ; r1 (PowerPC SP) SR ds.l 1 ; 040 PC ds.l 1 ; 044 USP ds.l 1 ; 048 ISP ds.l 1 ; 04c MSP ds.l 1 ; 050 VBR ds.l 1 ; 054 SFC ds.l 1 ; 058 DFC ds.l 1 ; 05c ds.l 1 ; 060 ; these four are 'cac-ar,instr,trc_pc' ds.l 1 ; 064 ds.l 1 ; 068 ds.l 1 ; 06c INTM_L ds.l 1 ; 070 ; interrupt level or -1 (halfword) DISP ds.l 1 ; 074 CODE ds.l 1 ; 078 SP ds.l 1 ; 07c ds.l 1 ; 080 ; these four are 'ctxflg,info-adr,uea' ds.l 1 ; 084 ds.l 1 ; 088 ds.l 1 ; 08c ds.l 1 ; 090 ; these four are 'data_h-l,data,imm_d' ds.l 1 ; 094 ds.l 1 ; 098 ds.l 1 ; 09c B_DSP ds.l 1 ; 0a0 SR_FLG ds.l 1 ; 0a4 CTR ds.l 1 ; 0a8 LR ds.l 1 ; 0ac NIA ds.l 1 ; 0b0 XER ds.l 1 ; 0b4 CRL_VFL ds.l 1 ; 0b8 SSW ds.l 1 ; 0bc org 0x100 ContextBlock ds.b 768 ; 100:300 ; Emulator Context Block, ECB; NKv2 ties this to blue task EmuControlRegisters org 0x740 Reg0 ds.l 1 ; 740 Reg1 ds.l 1 ; 744 Reg2 ds.l 1 ; 748 Reg3 ds.l 1 ; 74c Reg8 ds.l 1 ; 750 Reg9 ds.l 1 ; 754 Reg10 ds.l 1 ; 758 Reg11 ds.l 1 ; 75c Reg4 ds.l 1 ; 760 Reg5 ds.l 1 ; 764 Reg6 ds.l 1 ; 768 Reg7 ds.l 1 ; 76c Reg12 ds.l 1 ; 770 Reg13 ds.l 1 ; 774 Reg14 ds.l 1 ; 778 org 0xf00 BootstrapVersion ds.b 16 ; f00:f10 ; Bootstrap loader version info, from ConfigInfo endr ; Move this! CB record 0,INCR Flags ds.l 1 ; 000 ; (SPAC) copied from kdp by CreateTask Enables ds.l 1 ; 004 ds.l 1 ; 008 ds.l 1 ; 00c ds.l 1 ; 010 ds.l 1 ; 014 ds.l 1 ; 018 ds.l 1 ; 01c ds.l 1 ; 020 LowSave17 ds.l 1 ; 024 LowSave20 ds.l 1 ; 028 LowSave21 ds.l 1 ; 02c ds.l 1 ; 030 LowSave19 ds.l 1 ; 034 ds.l 1 ; 038 LowSave18 ds.l 1 ; 03c ExceptionOriginFlags ds.l 1 ; 040 ; from before exception ExceptionOriginEnables ds.l 1 ; 044 ; from before exception ds.l 1 ; 048 ExceptionHandler ds.l 1 ; 04c ds.l 1 ; 050 ExceptionHandlerR4 ds.l 1 ; 054 ds.l 1 ; 058 ExceptionHandlerRetAddr ds.l 1 ; 05c ds.l 1 ; 060 PropagateR17 ds.l 1 ; 064 PropagateR20 ds.l 1 ; 068 PropagateR21 ds.l 1 ; 06c ds.l 1 ; 070 PropagateR19 ds.l 1 ; 074 ds.l 1 ; 078 PropagateR18 ds.l 1 ; 07c ds.l 1 ; 080 ExceptionOriginAddr ds.l 1 ; 084 ; Entry pt of emulator; set by NK Init.s ds.l 1 ; 088 ExceptionOriginLR ds.l 1 ; 08c ds.l 1 ; 090 ExceptionOriginR3 ds.l 1 ; 094 ds.l 1 ; 098 ExceptionOriginR4 ds.l 1 ; 09c ds.l 1 ; 0a0 MSR ds.l 1 ; 0a4 ; (SPAC) copied from kdp by CreateTask ds.l 1 ; 0a8 ds.l 1 ; 0ac ds.l 1 ; 0b0 ds.l 1 ; 0b4 ds.l 1 ; 0b8 ds.l 1 ; 0bc ds.l 1 ; 0c0 MQ ds.l 1 ; 0c4 ; 601 only EDPOffsetSWIRelated ds.l 1 ; 0c8 PriorityShifty ds.l 1 ; 0cc ; if low nybble is empty, SchInit sets this to 2 SWIEventGroupID ds.l 1 ; 0d0 ; what? XER ds.l 1 ; 0d4 VectorSaveArea ds.l 1 ; 0d8 ; AltiVec hack: vector registers don't fit in CB! CR ds.l 1 ; 0dc ; from heartbeat code, unsure of meaning (ANDed with PostIntMaskInit) r13 PageInSystemHeap ds.l 1 ; 0e0 ; these are set by StartInit.a:FiddleWithEmulator OtherPageInSystemHeap ds.l 1 ; 0e4 FE000000 ds.l 1 ; 0e8 ; also LR? LR ds.l 1 ; 0ec CTR ds.l 1 ; 0f0 KernelCTR ds.l 1 ; 0f4 ds.l 1 ; 0f8 CodePtr ds.l 1 ; 0fc ; probably goes in SRR0? ds.l 1 r0 ds.l 1 ; 104 ds.l 1 r1 ds.l 1 ; 10c ds.l 1 r2 ds.l 1 ; 114 ds.l 1 r3 ds.l 1 ; 11c ds.l 1 r4 ds.l 1 ; 124 ds.l 1 r5 ds.l 1 ; 12c ds.l 1 r6 ds.l 1 ; 134 ds.l 1 r7 ds.l 1 ; 13c ds.l 1 r8 ds.l 1 ; 144 ds.l 1 r9 ds.l 1 ; 14c ds.l 1 r10 ds.l 1 ; 154 ds.l 1 r11 ds.l 1 ; 15c ds.l 1 r12 ds.l 1 ; 164 ds.l 1 r13 ds.l 1 ; 16c ds.l 1 r14 ds.l 1 ; 174 ds.l 1 r15 ds.l 1 ; 17c ds.l 1 r16 ds.l 1 ; 184 ds.l 1 r17 ds.l 1 ; 18c ds.l 1 r18 ds.l 1 ; 194 ds.l 1 r19 ds.l 1 ; 19c ds.l 1 r20 ds.l 1 ; 1a4 ds.l 1 r21 ds.l 1 ; 1ac ds.l 1 r22 ds.l 1 ; 1b4 ds.l 1 r23 ds.l 1 ; 1bc ds.l 1 r24 ds.l 1 ; 1c4 ds.l 1 r25 ds.l 1 ; 1cc ds.l 1 r26 ds.l 1 ; 1d4 ds.l 1 r27 ds.l 1 ; 1dc ds.l 1 r28 ds.l 1 ; 1e4 ds.l 1 r29 ds.l 1 ; 1ec ds.l 1 r30 ds.l 1 ; 1f4 ds.l 1 r31 ds.l 1 ; 1fc FloatRegisters ds.d 32 ; 200:300 endr