| 5850 | } |
| 5851 | |
| 5852 | static void show_exec_lists (TCHAR *t) |
| 5853 | { |
| 5854 | uaecptr execbase = get_long_debug (4); |
| 5855 | uaecptr list = 0, node; |
| 5856 | TCHAR c = t[0]; |
| 5857 | |
| 5858 | if (c == 'o' || c == 'O') { // doslist |
| 5859 | uaecptr dosbase = get_base ("dos.library", 378); |
| 5860 | if (dosbase) { |
| 5861 | uaecptr rootnode = get_long_debug (dosbase + 34); |
| 5862 | uaecptr dosinfo = get_long_debug (rootnode + 24) << 2; |
| 5863 | console_out_f (_T("ROOTNODE: %08x DOSINFO: %08x\n"), rootnode, dosinfo); |
| 5864 | uaecptr doslist = get_long_debug (dosinfo + 4) << 2; |
| 5865 | while (doslist) { |
| 5866 | int type = get_long_debug (doslist + 4); |
| 5867 | uaecptr msgport = get_long_debug (doslist + 8); |
| 5868 | uaecptr lock = get_long_debug(doslist + 12); |
| 5869 | TCHAR *name = getfrombstr(get_long_debug(doslist + 40)); |
| 5870 | console_out_f(_T("%08x: Type=%d Port=%08x Lock=%08x '%s'\n"), doslist, type, msgport, lock, name); |
| 5871 | if (type == 0) { |
| 5872 | uaecptr fssm = get_long_debug(doslist + 28) << 2; |
| 5873 | console_out_f (_T(" - H=%08x Stack=%5d Pri=%2d Start=%08x Seg=%08x GV=%08x\n"), |
| 5874 | get_long_debug (doslist + 16) << 2, get_long_debug (doslist + 20), |
| 5875 | get_long_debug (doslist + 24), fssm, |
| 5876 | get_long_debug (doslist + 32) << 2, get_long_debug (doslist + 36)); |
| 5877 | if (fssm >= 0x100 && (fssm & 3) == 0) { |
| 5878 | TCHAR *unitname = getfrombstr(get_long_debug(fssm + 4)); |
| 5879 | console_out_f (_T(" %s:%d %08x\n"), unitname, get_long_debug(fssm), get_long_debug(fssm + 8)); |
| 5880 | uaecptr de = get_long_debug(fssm + 8) << 2; |
| 5881 | if (de) { |
| 5882 | int size = get_long_debug(de + 0); |
| 5883 | console_out_f (_T(" TableSize %u\n"), size); |
| 5884 | console_out_f (_T(" SizeBlock %u\n"), get_long_debug(de + 4)); |
| 5885 | console_out_f (_T(" SecOrg %u\n"), get_long_debug(de + 8)); |
| 5886 | console_out_f (_T(" Surfaces %u\n"), get_long_debug(de + 12)); |
| 5887 | console_out_f (_T(" SectorPerBlock %u\n"), get_long_debug(de + 16)); |
| 5888 | console_out_f (_T(" BlocksPerTrack %u\n"), get_long_debug(de + 20)); |
| 5889 | console_out_f (_T(" Reserved %u\n"), get_long_debug(de + 24)); |
| 5890 | console_out_f (_T(" PreAlloc %u\n"), get_long_debug(de + 28)); |
| 5891 | console_out_f (_T(" Interleave %u\n"), get_long_debug(de + 32)); |
| 5892 | console_out_f (_T(" LowCyl %u\n"), get_long_debug(de + 36)); |
| 5893 | console_out_f (_T(" HighCyl %u (Total %u)\n"), get_long_debug(de + 40), get_long_debug(de + 40) - get_long_debug(de + 36) + 1); |
| 5894 | console_out_f (_T(" NumBuffers %u\n"), get_long_debug(de + 44)); |
| 5895 | console_out_f (_T(" BufMemType 0x%08x\n"), get_long_debug(de + 48)); |
| 5896 | console_out_f (_T(" MaxTransfer 0x%08x\n"), get_long_debug(de + 52)); |
| 5897 | console_out_f (_T(" Mask 0x%08x\n"), get_long_debug(de + 56)); |
| 5898 | console_out_f (_T(" BootPri %d\n"), get_long_debug(de + 60)); |
| 5899 | console_out_f (_T(" DosType 0x%08x\n"), get_long_debug(de + 64)); |
| 5900 | if (size >= 17) { |
| 5901 | console_out_f (_T(" Baud 0x%08x\n"), get_long_debug(de + 68)); |
| 5902 | if (size >= 18) { |
| 5903 | console_out_f (_T(" Control 0x%08x\n"), get_long_debug(de + 72)); |
| 5904 | if (size >= 19) { |
| 5905 | console_out_f (_T(" BootBlocks 0x%08x\n"), get_long_debug(de + 76)); |
| 5906 | } |
| 5907 | } |
| 5908 | } |
| 5909 | } |
no test coverage detected