Return to vars.fs CVS log | Up to [gforth] / gforth |
Added options to allow good register scheduling on i386 added blocks
1: \ VARS.FS Kernal variables 2: 3: hex \ everything now hex! 11may93jaw 4: 5: \ important constants 17dec92py 6: 7: \ dpANS6 (sect 3.1.3.1) says 8: \ "a true flag ... [is] a single-cell value with all bits set" 9: \ better definition: 0 0= constant true ( no dependence on 2's compl) 10: -1 Constant true \ see starts looking for 11: \ primitives after this word! 12: 0 Constant false 13: 14: 1 cells Constant cell 15: 16: 20 Constant bl 17: 18: FF Constant /line 19: 20: 40 Constant c/l 21: 10 Constant l/s 22: 400 Constant chars/block 23: 24: \ that's enough so long 25: 26: \ User variables 13feb93py 27: 28: \ doesn't produce real user variables now, but normal variables 29: 30: Create main-task 100 cells allot 31: main-task tup H ! minimal 32: 33: Variable udp 34: 35: AUser next-task main-task next-task ! 36: AUser prev-task main-task prev-task ! 37: AUser save-task 0 save-task ! 38: AUser s0 39: AUser r0 40: AUser f0 41: AUser l0 42: AUser handler 43: \ AUser output 44: \ AUser input 45: 46: AUser errorhandler 47: 48: AUser "error 0 "error ! 49: 50: User >tib 51: User #tib 52: User >in 0 >in ! 53: User blk 0 blk ! 54: User loadfile 0 loadfile ! 55: 2User loadfilename 0 0 loadfilename 2! 56: 57: User loadline \ number of the currently interpreted 58: \ (in TIB) line if the interpretation 59: \ is in a textfile 60: \ the first line is 1 61: 62: 2User linestart \ starting file postition of 63: \ the current interpreted line (in TIB) 64: 65: User base A base ! 66: User dpl -1 dpl ! 67: 68: User state 0 state ! 69: AUser normal-dp \ the usual dictionary pointer 70: AUser dpp normal-dp dpp ! 71: \ the pointer to the current dictionary pointer 72: \ ist reset to normal-dp on (doerror) 73: \ (i.e. any throw caught by quit) 74: AUser LastCFA 75: AUser Last 76: 77: User locals-size \ this is the current size of the locals stack 78: \ frame of the current word 79: 80: