对于nc3000的lava解释器的研究成果



掌叔
2008-06-16 11:13:14

摘自:bbs.emsky.net
作者:玄狼剑

代码 地址在内存中的位置 代码开始地址(内存地址与文件地址的转换方式为:文件地址=内存地址-0x8000+0x100)

0x01 88B2 846E
0x02 88B4 8488
0x03 88B6 84A9
0x04 88B8 84D0
0x05 88BA 84DC
0x06 88BC 84EB
0x07 88BE 8506
0x08 88C0 8512
0x09 88C2 8521
0x0A 88C4 853F
0x0B 88C6 8551
0x0C 88C8 8563
0x0D 88CA 8266
0x0E 88CC 84CA
0x0F 88CE 84D6
0x10 88D0 84E5
0x11 88D2 8500
0x12 88D4 850C
0x13 88D6 851B
0x14 88D8 8536
0x15 88DA 8548
0x16 88DC 855A
0x17 88DE 856C
0x18 88E0 8575
0x19 88E2 857E
0x1A 88E4 859E
0x1B 88E6 85AF
0x1C 88E8 85D8
0x1D 88EA 881F
0x1E 88EC 8849
0x1F 88EE 8855
0x20 88F0 8861
0x21 88F2 831F
0x22 88F4 8328
0x23 88F6 83C7
0x24 88F8 83D0
0x25 88FA 85E1
0x26 88FC 83D9
0x27 88FE 83F4
0x28 8900 8404
0x29 8902 8414
0x2A 8904 82B5
0x2B 8906 82C8
0x2C 8908 82DB
0x2D 890A 83E2
0x2E 890C 83EB
0x2F 890E 8440
0x30 8910 8463
0x31 8912 8456
0x32 8914 844B
0x33 8916 841F
0x34 8918 8435
0x35 891A 87B9
0x36 891C 87FF
0x37 891E 8811
0x38 8920 8AE1
0x39 8922 8609
0x3A 8924 8661
0x3B 8926 8617
0x3C 8928 866F
0x3D 892A 867A
0x3E 892C 86C0
0x3F 892E 8715
0x40 8930 876C
0x41 8932 873C
0x42 8934 85C0
0x43 8936 85D1
0x44 8938 81D9
0x45 893A 8331
0x46 893C 833D
0x47 893E 8349
0x48 8940 8352
0x49 8942 835B
0x4A 8944 8364
0x4B 8946 8370
0x4C 8948 837C
0x4D 894A 8385
0x4E 894C 838E
0x4F 894E 8397
0x50 8950 83A0
0x51 8952 83A9
0x52 8954 88A7
0x53 8956 88A7
//NC3000的LAVA的基本伪指令只从0x01-0x53
//0x43,0x52,0x53的作用未知


代码 地址在内存中的位置 代码开始地址(内存地址与文件地址的转换方式为:文件地址=内存地址-0x8000+0x100)
0x80(putchar) 8958 9734
0x81(getchar) 895A 9A1A
0x82(printf) 895C 97EC
0x83(strcpy) 895E A029
0x84(strlen) 8960 A041
0x85(SetScreen) 8962 96C4
0x86(UpdataLCD) 8964 9724
0x87(Delay) 8966 A35B
0x88(WriteBlock) 8968 A9A7
0x89(Refresh) 896A A6F9
0x8A(TextOut) 896C A73A
0x8B(Block) 896E A883
0x8C(Rectangle) 8970 A889
0x8D(exit) 8972 876C
0x8E(ClearScreen) 8974 A6DA
0x8F(abs) 8976 8F93
0x90(rand) 8978 8FA0
0x91(srand) 897A 8FED
0x92(Locate) 897C 96E8
0x93(Inkey) 897E A3BB
0x94(Point) 8980 A5DF
0x95(GetPoint) 8982 A6B3
0x96(Line) 8984 B1A4
0x97(Box) 8986 A673
0x98(Circle) 8988 A605
0x99(Ellipse) 898A A638
0x9A(Beep) 898C 8B8F
0x9B(isalnum) 898E A17C
0x9C(isalpha) 8990 A172
0x9D(iscntrl) 8992 A190
0x9E(isdigit) 8994 A168
0x9F(isgraph) 8996 A1A6
0xA0(islower) 8998 A15E
0xA1(isprint) 899A A19A
0xA2(ispunct) 899C A1C0
0xA3(isspace) 899E A1B6
0xA4(isupper) 89A0 A14B
0xA5(isxdigit) 89A2 A186
0xA6(strcat) 89A4 A05E
0xA7(strchr) 89A6 A08D
0xA8(srrcmp) 89A8 A0BD
0xA9(strstr) 89AA A0EE
0xAA(tolower) 89AC A1DE
0xAB(toupper) 89AE A1F5
0xAC(memset) 89B0 A20C
0xAD(memcpy) 89B2 A236
0xAE(fopen) 89B4 9B1D
0xAF(fclose) 89B6 9BBF
0xB0(fread) 89B8 9DEB
0xB1(fwrite) 89BA 9DA3
0xB2(fseek) 89BC 9BE9
0xB3(ftell) 89BE 9CC5
0xB4(feof) 89C0 9BD0
0xB5(rewind) 89C2 9CEA
0xB6(getc) 89C4 9D1C
0xB7(putc) 89C6 9D5A
0xB8(sprintf) 89C8 9923
0xB9(MakeDir) 89CA 9B01
0xBA(DeleteFile) 89CC 9B0F
0xBB(Getms) 89CE A34D
0xBC(CheckKey) 89D0 A542
0xBD(memmove) 89D2 A26A
0xBE(Crc16) 89D4 BA07
0xBF(Secret) 89D6 BA5C
0xC0(ChDir) 89D8 9AD2
0xC1(FileList) 89DA 9ADB
0xC2(GetTime) 89DC A3D5
0xC3(SetTime) 89DE A450
0xC4(GetWord) 89E0 9A2A
0xC5(XDraw) 89E2 B0BF
0xC6(ReleaseKey) 89E4 A4FB
0xC7(GetBlock) 89E6 A8E9
0xC8(Sin) 89E8 90E2
0xC9(Cos) 89EA 9138
0xCA(FillArea) 89EC AF87
0xCB(PutKek) 89EE A3CB
0xCC(??) 89F0 0000 //这里可以用汇编添加一个新函数
0xCD(PlayInit) 89F2 BCF6
0xCE(PlayFile) 89F4 BD16
0xCF(PlayStop) 89F6 BC65
0xD0(SetVolunme) 89F8 BCE6
0xD1(PlaySleep) 89FA BCFA
//NC3000的全部函数就这么多