home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 16 / 16.iso / w / w048 / 2.ddi / MSSRC.ARC / MSSPELL.ASM < prev    next >
Encoding:
Assembly Source File  |  1987-12-21  |  13.6 KB  |  588 lines

  1.  
  2. ;
  3. ;       MSSPELL.ASM
  4. ;       MS 4.0
  5. ;       Copyright (c) 1985, 87 by Borland International, Inc.
  6. ;
  7. ;       Assembler routines for MicroStar spell checking
  8. ;
  9.  
  10. ;constants
  11. LastHashBucket  EQU     211     ;PRIME number of entries in RAM dict. hash table
  12.  
  13.  
  14. DATA    SEGMENT BYTE PUBLIC
  15.  
  16. DATA    ENDS
  17.  
  18. CODE    SEGMENT BYTE PUBLIC
  19.  
  20.         ASSUME  CS:CODE,DS:DATA
  21.  
  22.         ;the following routines are called NEAR
  23.         PUBLIC EdRamHash, EdInitLocalPtr
  24.  
  25. ;****************************************************** EdRamHash
  26.  
  27. ;function EdRamHash(var S) : Integer;
  28.  
  29. ;Given a string S, return an integer between 0 and LastHashBucket
  30.  
  31. ;equates for parameters:
  32. RHStr           EQU     DWORD PTR [BP+4]
  33.  
  34. EdRamHash       PROC NEAR
  35.  
  36.         PUSH    BP                      ;Save BP
  37.         MOV     BP,SP                   ;Set up stack frame
  38.         XOR     AX,AX                   ;AX = 0
  39.         LES     DI,RHStr                ;ES:DI points to S[0]
  40.         XOR     CH,CH                   ;CH = 0
  41.         MOV     CL,ES:[DI]              ;CX = Length(S)
  42.  
  43. RHNextChar:
  44.         INC     DI                      ;ES:DI points to S[1]
  45.         ROL     AX,1                    ;Rotate left 3 bits
  46.         ROL     AX,1
  47.         ROL     AX,1
  48.         XOR     AL,ES:[DI]
  49.         LOOP    RHNextChar              ;Get next char
  50.  
  51.         XOR     DX,DX                   ;DX = 0
  52.         MOV     BX,LastHashBucket       ;BX = LastHashBucket...
  53.         INC     BX                      ; plus one
  54.         DIV     BX                      ;Divide DX:AX by (LastHashBucket+1)
  55.  
  56.         MOV     AX,DX                   ;Remainder from DX into AX
  57.         MOV     SP,BP                   ;Restore SP
  58.         POP     BP                      ;Restore BP
  59.         RET     4                       ;Remove parameter and return
  60.  
  61. EdRamHash       ENDP
  62.  
  63. ;****************************************************** Local Dictionary
  64.  
  65. ;CS-relative data:
  66. ;Be sure to terminate list with a 0 byte
  67.  
  68. LocalDict   LABEL BYTE
  69.       db   3, "the"
  70.       db   2, "to"
  71.       db   2, "of"
  72.       db   3, "and"
  73.       db   4, "that"
  74.       db   2, "in"
  75.       db   2, "is"
  76.       db   3, "you"
  77.       db   2, "it"
  78.       db   3, "for"
  79.       db   4, "have"
  80.       db   2, "on"
  81.       db   2, "be"
  82.       db   4, "with"
  83.       db   2, "as"
  84.       db   3, "are"
  85.       db   3, "not"
  86.       db   3, "but"
  87.       db   2, "if"
  88.       db   2, "my"
  89.       db   4, "this"
  90.       db   2, "or"
  91.       db   4, "your"
  92.       db   3, "was"
  93.       db   2, "at"
  94.       db   4, "what"
  95.       db   2, "do"
  96.       db   5, "would"
  97.       db   3, "can"
  98.       db   4, "will"
  99.       db   2, "we"
  100.       db   2, "me"
  101.       db   5, "about"
  102.       db   3, "one"
  103.       db   3, "all"
  104.       db   4, "from"
  105.       db   5, "there"
  106.       db   4, "they"
  107.       db   2, "an"
  108.       db   2, "so"
  109.       db   2, "by"
  110.       db   4, "some"
  111.       db   4, "know"
  112.       db   4, "just"
  113.       db   4, "like"
  114.       db   3, "any"
  115.       db   4, "more"
  116.       db   3, "get"
  117.       db   3, "has"
  118.       db   4, "when"
  119.       db   3, "out"
  120.       db   3, "i'm"
  121.       db   5, "which"
  122.       db   5, "don't"
  123.       db   5, "think"
  124.       db   2, "up"
  125.       db   2, "am"
  126.       db   2, "no"
  127.       db   4, "time"
  128.       db   3, "how"
  129.       db   3, "who"
  130.       db   4, "only"
  131.       db   5, "other"
  132.       db   4, "been"
  133.       db   3, "use"
  134.       db   4, "than"
  135.       db   3, "had"
  136.       db   2, "he"
  137.       db   4, "also"
  138.       db   3, "way"
  139.       db   3, "now"
  140.       db   4, "then"
  141.       db   3, "see"
  142.       db   4, "them"
  143.       db   6, "people"
  144.       db   4, "here"
  145.       db   4, "it's"
  146.       db   5, "could"
  147.       db   4, "good"
  148.       db   5, "their"
  149.       db   4, "very"
  150.       db   4, "well"
  151.       db   6, "should"
  152.       db   4, "does"
  153.       db   4, "much"
  154.       db   3, "new"
  155.       db   3, "our"
  156.       db   4, "work"
  157.       db   4, "were"
  158.       db   4, "into"
  159.       db   6, "really"
  160.       db   4, "most"
  161.       db   3, "too"
  162.       db   4, "i've"
  163.       db   4, "want"
  164.       db   3, "may"
  165.       db   4, "make"
  166.       db   3, "did"
  167.       db   4, "even"
  168.       db   5, "using"
  169.       db   4, "find"
  170.       db   5, "first"
  171.       db   5, "right"
  172.       db   4, "i'll"
  173.       db   4, "many"
  174.       db   3, "say"
  175.       db   3, "his"
  176.       db   4, "back"
  177.       db   2, "go"
  178.       db   5, "since"
  179.       db   7, "because"
  180.       db   7, "problem"
  181.       db   4, "read"
  182.       db   4, "such"
  183.       db   3, "two"
  184.       db   5, "might"
  185.       db   5, "those"
  186.       db   3, "got"
  187.       db   4, "need"
  188.       db   4, "sure"
  189.       db   5, "still"
  190.       db   2, "us"
  191.       db   4, "same"
  192.       db   9, "something"
  193.       db   4, "help"
  194.       db   5, "where"
  195.       db   3, "try"
  196.       db   5, "these"
  197.       db   4, "over"
  198.       db   5, "after"
  199.       db   5, "being"
  200.       db   3, "its"
  201.       db   6, "things"
  202.       db   3, "let"
  203.       db   7, "another"
  204.       db   5, "going"
  205.       db   4, "used"
  206.       db   3, "why"
  207.       db   4, "take"
  208.       db   5, "can't"
  209.       db   4, "etc."
  210.       db   5, "never"
  211.       db   6, "before"
  212.       db   4, "look"
  213.       db   6, "anyone"
  214.       db   4, "last"
  215.       db   4, "give"
  216.       db   6, "little"
  217.       db   7, "however"
  218.       db   5, "again"
  219.       db   3, "off"
  220.       db   5, "while"
  221.       db   6, "better"
  222.       db   4, "hope"
  223.       db   6, "though"
  224.       db   4, "said"
  225.       db   4, "long"
  226.       db   3, "own"
  227.       db   4, "name"
  228.       db   3, "few"
  229.       db   4, "both"
  230.       db   5, "thing"
  231.       db   3, "lot"
  232.       db   5, "years"
  233.       db   4, "must"
  234.       db   8, "probably"
  235.       db   6, "around"
  236.       db   8, "question"
  237.       db  11, "information"
  238.       db   5, "seems"
  239.       db   7, "someone"
  240.       db   3, "i'd"
  241.       db   4, "call"
  242.       db   6, "person"
  243.       db   7, "thought"
  244.       db   7, "without"
  245.       db   4, "each"
  246.       db   6, "having"
  247.       db   5, "great"
  248.       db   6, "that's"
  249.       db   4, "real"
  250.       db   3, "run"
  251.       db   6, "number"
  252.       db   9, "available"
  253.       db   3, "him"
  254.       db   7, "through"
  255.       db   4, "come"
  256.       db   4, "feel"
  257.       db  10, "interested"
  258.       db   4, "able"
  259.       db   8, "anything"
  260.       db   5, "least"
  261.       db   3, "set"
  262.       db   4, "tell"
  263.       db   6, "you're"
  264.       db   7, "believe"
  265.       db   4, "made"
  266.       db   6, "course"
  267.       db   3, "put"
  268.       db   3, "she"
  269.       db   6, "didn't"
  270.       db   7, "doesn't"
  271.       db   7, "getting"
  272.       db   6, "please"
  273.       db   9, "different"
  274.       db   5, "point"
  275.       db   4, "fact"
  276.       db   6, "others"
  277.       db   6, "thanks"
  278.       db   4, "down"
  279.       db   4, "part"
  280.       db   4, "best"
  281.       db   5, "doing"
  282.       db   3, "far"
  283.       db   3, "yet"
  284.       db   4, "next"
  285.       db   7, "perhaps"
  286.       db   3, "yes"
  287.       db   3, "day"
  288.       db   5, "found"
  289.       db   3, "her"
  290.       db   6, "called"
  291.       db   4, "line"
  292.       db   6, "always"
  293.       db   5, "agree"
  294.       db   6, "either"
  295.       db   5, "maybe"
  296.       db   8, "actually"
  297.       db   6, "enough"
  298.       db   3, "old"
  299.       db   3, "ask"
  300.       db   6, "trying"
  301.       db   9, "questions"
  302.       db   6, "rather"
  303.       db   4, "case"
  304.       db   5, "guess"
  305.       db   4, "idea"
  306.       db   4, "keep"
  307.       db   7, "between"
  308.       db   4, "book"
  309.       db   5, "quite"
  310.       db   6, "system"
  311.       db   4, "love"
  312.       db   4, "days"
  313.       db   7, "looking"
  314.       db  10, "understand"
  315.       db   4, "less"
  316.       db   4, "seem"
  317.       db   4, "type"
  318.       db   8, "problems"
  319.       db   5, "under"
  320.       db   4, "done"
  321.       db   4, "life"
  322.       db   6, "myself"
  323.       db   4, "send"
  324.       db   7, "support"
  325.       db   4, "ever"
  326.       db   4, "else"
  327.       db   4, "year"
  328.       db   4, "mean"
  329.       db   8, "possible"
  330.       db   5, "tried"
  331.       db   6, "change"
  332.       db   7, "several"
  333.       db   6, "answer"
  334.       db   5, "check"
  335.       db   5, "leave"
  336.       db   7, "program"
  337.       db   4, "area"
  338.       db  11, "interesting"
  339.       db   5, "works"
  340.       db   7, "already"
  341.       db   8, "business"
  342.       db   5, "issue"
  343.       db   5, "times"
  344.       db   3, "bit"
  345.       db   7, "message"
  346.       db   3, "end"
  347.       db   5, "write"
  348.       db   4, "hear"
  349.       db   4, "once"
  350.       db   6, "sounds"
  351.       db   5, "every"
  352.       db   5, "until"
  353.       db   4, "true"
  354.       db   5, "place"
  355.       db   6, "reason"
  356.       db   5, "often"
  357.       db   5, "sorry"
  358.       db   4, "home"
  359.       db   4, "away"
  360.       db   4, "nice"
  361.       db   7, "nothing"
  362.       db   6, "market"
  363.       db   4, "free"
  364.       db   4, "week"
  365.       db   7, "haven't"
  366.       db   8, "remember"
  367.       db   5, "start"
  368.       db   4, "seen"
  369.       db   5, "stuff"
  370.       db   5, "isn't"
  371.       db   4, "kind"
  372.       db   5, "money"
  373.       db   5, "order"
  374.       db  10, "experience"
  375.       db   4, "talk"
  376.       db   3, "bad"
  377.       db   7, "example"
  378.       db   4, "left"
  379.       db   3, "man"
  380.       db   7, "usually"
  381.       db   4, "word"
  382.       db   6, "anyway"
  383.       db   4, "copy"
  384.       db   5, "wrong"
  385.       db   3, "ago"
  386.       db   4, "show"
  387.       db   5, "makes"
  388.       db   5, "heard"
  389.       db   7, "working"
  390.       db   9, "certainly"
  391.       db   4, "mind"
  392.       db   8, "interest"
  393.       db   6, "matter"
  394.       db   7, "reading"
  395.       db   5, "small"
  396.       db   7, "whether"
  397.       db   4, "wish"
  398.       db   5, "phone"
  399.       db   7, "subject"
  400.       db   5, "won't"
  401.       db   5, "given"
  402.       db   6, "pretty"
  403.       db   5, "group"
  404.       db   6, "second"
  405.       db   4, "told"
  406.       db   8, "although"
  407.       db   4, "list"
  408.       db   5, "today"
  409.       db   4, "glad"
  410.       db   4, "live"
  411.       db   5, "means"
  412.       db   5, "women"
  413.       db   5, "world"
  414.       db   4, "fine"
  415.       db   5, "reply"
  416.       db   7, "running"
  417.       db   5, "local"
  418.       db   6, "cannot"
  419.       db   4, "note"
  420.       db   6, "simply"
  421.       db   3, "big"
  422.       db   9, "important"
  423.       db   5, "state"
  424.       db   7, "writing"
  425.       db   7, "current"
  426.       db   7, "talking"
  427.       db   4, "hard"
  428.       db   5, "price"
  429.       db   4, "soon"
  430.       db   5, "later"
  431.       db   4, "says"
  432.       db   5, "sense"
  433.       db   2, "ok"
  434.       db   7, "service"
  435.       db   6, "making"
  436.       db   6, "couple"
  437.       db   4, "form"
  438.       db   8, "together"
  439.       db   5, "whole"
  440.       db   7, "written"
  441.       db   7, "against"
  442.       db   5, "three"
  443.       db   4, "high"
  444.       db   6, "wanted"
  445.       db   6, "during"
  446.       db   5, "large"
  447.       db   4, "went"
  448.       db   3, "add"
  449.       db   5, "comes"
  450.       db   7, "contact"
  451.       db  10, "discussion"
  452.       db   7, "instead"
  453.       db   7, "there's"
  454.       db   2, "oh"
  455.       db   5, "power"
  456.       db   9, "sometimes"
  457.       db   7, "certain"
  458.       db   4, "full"
  459.       db   5, "ideas"
  460.       db   6, "school"
  461.       db   6, "almost"
  462.       db   3, "buy"
  463.       db  10, "government"
  464.       db   3, "job"
  465.       db   5, "short"
  466.       db   8, "comments"
  467.       db   7, "control"
  468.       db   6, "except"
  469.       db   8, "involved"
  470.       db   3, "men"
  471.       db   5, "night"
  472.       db   6, "public"
  473.       db   5, "folks"
  474.       db   7, "friends"
  475.       db   4, "open"
  476.       db   5, "along"
  477.       db   7, "suggest"
  478.       db   5, "based"
  479.       db   8, "consider"
  480.       db   6, "friend"
  481.       db   8, "yourself"
  482.       db   7, "general"
  483.       db   6, "saying"
  484.       db   5, "books"
  485.       db   4, "goes"
  486.       db   5, "major"
  487.       db  10, "difference"
  488.       db  10, "especially"
  489.       db   4, "gets"
  490.       db   7, "welcome"
  491.       db   8, "everyone"
  492.       db  10, "particular"
  493.       db   4, "sort"
  494.       db  10, "appreciate"
  495.       db   4, "came"
  496.       db   5, "close"
  497.       db   9, "situation"
  498.       db   5, "words"
  499.       db   7, "address"
  500.       db   4, "care"
  501.       db   7, "correct"
  502.       db   3, "saw"
  503.       db   7, "started"
  504.       db   5, "weeks"
  505.       db   6, "weight"
  506.       db   7, "company"
  507.       db  10, "everything"
  508.       db  10, "individual"
  509.       db  12, "relationship"
  510.       db   4, "news"
  511.       db   6, "within"
  512.       db   6, "you'll"
  513.       db   6, "months"
  514.       db   7, "special"
  515.       db   7, "version"
  516.       db   8, "whatever"
  517.       db   6, "wonder"
  518.       db   6, "chance"
  519.       db   7, "finally"
  520.       db   4, "ones"
  521.       db   3, "fun"
  522.       db   6, "future"
  523.       db   5, "level"
  524.       db   9, "mentioned"
  525.       db   4, "mine"
  526.       db   5, "worth"
  527.       db   8, "wouldn't"
  528.       db   6, "you've"
  529.       db   6, "needed"
  530.       db   5, "needs"
  531.       db   3, "pay"
  532.       db   8, "recently"
  533.       db   6, "taking"
  534.       db   4, "diet"
  535.       db   4, "easy"
  536.       db   4, "past"
  537.       db   6, "unless"
  538.       db   7, "article"
  539.       db   5, "asked"
  540.       db   6, "expect"
  541.       db   5, "hours"
  542.       db   6, "issues"
  543.       db   8, "response"
  544.       db   4, "sent"
  545.       db   4, "wait"
  546.       db   5, "we're"
  547.       db   8, "children"
  548.       db   4, "cost"
  549.       db   5, "month"
  550.       db   6, "source"
  551.       db   6, "common"
  552.       db   7, "mention"
  553.       db   7, "similar"
  554.       db   5, "space"
  555.       db   8, "specific"
  556.       db   4, "took"
  557.       db   2, "tv"
  558.       db   4, "file"
  559.       db   5, "learn"
  560.       db   5, "looks"
  561.       db   7, "meeting"
  562.       db   5, "woman"
  563.       db   4, "deal"
  564.       db   5, "force"
  565.       db   4, "thus"
  566.       db   4, "lots"
  567.       db   7, "provide"
  568.       db   0
  569.  
  570. ;****************************************************** EdInitLocalPtr
  571.  
  572. ;  function EdInitLocalPtr : Pointer; external;
  573.  
  574. ;  Return a pointer to the start of the local dictionary
  575.  
  576. EdInitLocalPtr PROC NEAR
  577.  
  578.         MOV    DX,CS         ;Local dictionary in code segment
  579.         LEA    AX,LocalDict  ;At this offset
  580.         RET
  581.  
  582. EdInitLocalPtr ENDP
  583.  
  584.  
  585. CODE    ENDS
  586.  
  587.         END
  588.