home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / dev / misc / flexcat / languages / polski.asm next >
Assembly Source File  |  1994-12-07  |  14KB  |  622 lines

  1. From comp.sys.amiga.programmer Wed Nov 30 12:13:37 1994
  2. Path: newsserv.zdv.uni-tuebingen.de!news.belwue.de!news.uni-stuttgart.de!rz.uni-karlsruhe.de!xlink.net!howland.reston.ans.net!pipex!uunet!newsfeed.ACO.net!fuw.edu.pl!news.nask.org.pl!ci.pwr.wroc.pl!pro37
  3. From: pro37@sun1000.ci.pwr.wroc.pl (laboratorium dydaktyczne)
  4. Newsgroups: comp.sys.amiga.programmer
  5. Subject: Re: Making .languages
  6. Date: 24 Nov 1994 10:27:09 GMT
  7. Organization: Technical Univeristy of Wroclaw
  8. Lines: 607
  9. Message-ID: <3b1ppt$8pc@sun1000.ci.pwr.wroc.pl>
  10. References: <39vpt4$obs@trane.uninett.no> <kilroy.03nn@spit.fipnet.fi> <3acr05$aae@holly.csv.warwick.ac.uk>
  11. NNTP-Posting-Host: ci3ux.ci.pwr.wroc.pl
  12. X-Newsreader: TIN [version 1.2 PL2]
  13.  
  14. Hi everybody!
  15.  
  16.   Yesterday I posted  a source for making your own .language. That version
  17. didn't support localized comparison, because I thought no WB .lnaguage has
  18. this feature. But as Rafael D'Halleweyn pointed out, the dansk.language has
  19. them. So here is updated version. I'm afraid you may have some troubles
  20. understanding layout of two conversion tables. My advice is to think a
  21. little, consult AutoDocs or just change the tables and test them. (You can
  22. use ARexx for quick tests). Of course feel free to contact me.
  23.  
  24. **** Cut here ***************************************************************
  25.  
  26. ; polski.language.asm
  27. ; A program to create polski.language (for localized Polish WB)
  28. ; By changing the strings to your own you can make any language
  29. ; This version supports localized comparison and
  30. ; StrConvert() locale.library function
  31. ; Resourced from V38 dansk.language by Michael Letowski
  32.  
  33.  
  34. ;Init macros - copied from exec/initializers.i
  35.  
  36. INITBYTE    MACRO    ; &offset,&value
  37.     IFLE    (\1)-255    ;If offset <=255
  38.     DC.B    $a0,\1        ;use byte offset
  39.     DC.B    \2,0
  40.     MEXIT            ;exit early
  41.     ENDC
  42.     DC.B    $e0,0
  43.     DC.W    \1
  44.     DC.B    \2,0
  45.     ENDM
  46.  
  47. INITWORD    MACRO    ; &offset,&value
  48.     IFLE    (\1)-255    ;If offset <=255
  49.     DC.B    $90,\1        ;use byte offset
  50.     DC.W    \2
  51.     MEXIT            ;exit early
  52.     ENDC
  53.     DC.B    $d0,0
  54.     DC.W    \1
  55.     DC.W    \2
  56.     ENDM
  57.  
  58. INITLONG    MACRO    ; &offset,&value
  59.     IFLE    (\1)-255    ;If offset <=255
  60.     DC.B    $80,\1        ;use byte offset
  61.     DC.L    \2
  62.     MEXIT            ;exit early
  63.     ENDC
  64.     DC.B    $c0,0
  65.     DC.W    \1
  66.     DC.L    \2
  67.     ENDM
  68.  
  69. ;Other constants
  70. LIBF_CHANGED    equ    $2
  71. LIBF_SUMUSED    equ    $4
  72. MAXSTRMSG        equ    $33
  73. NT_LIBRARY    equ    $9
  74. _LVOFreeMem    equ    -$D2
  75. LN_SUCC        equ    $0
  76. lang_SegList    equ    $22
  77. lang_SysBase    equ    $26
  78. LN_PRED        equ    $4
  79. RTF_AUTOINIT    equ    $80
  80. RTC_MATCHWORD    equ    $4AFC
  81. LIB_POSSIZE    equ    $12
  82. LIB_FLAGS        equ    $E
  83. LIB_NEGSIZE    equ    $10
  84. LIBB_DELEXP    equ    $3
  85. LIB_OPENCNT    equ    $20
  86. ;****************************************************************************
  87. ; A .language is an Amiga shared library and it has normal library structure
  88.  
  89.     SECTION    dansklanguagers000000,CODE
  90. ProgStart
  91.     moveq    #-1,d0
  92.     rts
  93.  
  94. ResidentTag
  95.     dc.w    RTC_MATCHWORD
  96.     dc.l    ResidentTag
  97.     dc.l    EndResident
  98.     dc.b    RTF_AUTOINIT
  99.     dc.b    38        ;Version
  100.     dc.b    NT_LIBRARY
  101.     dc.b    $9C        ;Priority
  102.     dc.l    LanguageName
  103.     dc.l    LanguageID
  104.     dc.l    Init
  105. LanguageName
  106.     dc.b    'polski.language',0    ;Name of your language
  107. LanguageID
  108.     dc.b    'polski 38.3 (23.11.94)',$D,$A,0,0  ;Version string
  109.  
  110.     CNOP    0,4 ;Make sure data is longword aligned
  111. Init    dc.l    42        ;Size of library base data space - don't touch
  112.     dc.l    FuncTable
  113.     dc.l    DataTable
  114.     dc.l    InitRoutine
  115. FuncTable    dc.w    $FFFF
  116.     dc.w    Open-FuncTable    ;$60    ;Open       \
  117.     dc.w    Close-FuncTable    ;$6E    ;Close      | Standard library functions
  118.     dc.w    Expunge-FuncTable    ;$88    ;Expunge  | All functions are given as offsets
  119.     dc.w    Fun1-FuncTable    ;$CE    ;Fun1       / from FuncTable
  120.     dc.w    AvailFun-FuncTable    ;$D2    ;Capabilities - this returns what functions
  121.                                             ;are implemented by Locale
  122.                                             ;each bit of return value represents
  123.                                             ;one function
  124.     dc.w    Fun1-FuncTable    ;$CE    ;Fun1 - I don't know what is it - leave it
  125. ;There is usually no need to supply own ConvToLower and ConvToUpper functions
  126. ;The ones in locale.library are quite good and can deal with most languages
  127. ;You should add your own only in two cases (I think):
  128. ;1. Additional (non-standard) letter chars for your language are placed in 
  129.  $0-$20 or $80 - $C0 area of ASCII code or
  130. ;2.  The distance between small and capitalized letters is not $20
  131.     dc.w    Fun1-FuncTable    ;$CE    ;Fun1 - ConvToLower? - not tested, just suspicion
  132.     dc.w    Fun1-FuncTable    ;$CE    ;Fun1 - ConvToUpper? - see above
  133.     dc.w    GetLocStr-FuncTable    ;$55C    ;GetLocaleStr - you SHOULD implement this one
  134. ;I think that next 11 functions are the IsXXX() (I didn't test it).
  135. ;Again, there is usually no need to add this - I didn't have to
  136. ;See conditions for ConvertToXXX()
  137.     dc.w    Fun1-FuncTable    ;$CE
  138.     dc.w    Fun1-FuncTable    ;$CE
  139.     dc.w    Fun1-FuncTable    ;$CE
  140.     dc.w    Fun1-FuncTable    ;$CE
  141.     dc.w    Fun1-FuncTable    ;$CE
  142.     dc.w    Fun1-FuncTable    ;$CE
  143.     dc.w    Fun1-FuncTable    ;$CE
  144.     dc.w    Fun1-FuncTable    ;$CE
  145.     dc.w    Fun1-FuncTable    ;$CE
  146.     dc.w    Fun1-FuncTable    ;$CE
  147.     dc.w    Fun1-FuncTable    ;$CE
  148.     dc.w    StrConvert-FuncTable;$1D6    ;StrConvert
  149.     dc.w    StrnCmp-FuncTable    ;$DA    ;StrnCmp
  150.     dc.w    $FFFF
  151.  
  152. ;Library initialization data - don't touch
  153. DataTable    INITBYTE    9,$9C            ;ln_Pri
  154.     INITBYTE    8,NT_LIBRARY        ;ln_Type
  155.     INITLONG    $A,LanguageName        ;ln_Name
  156.     INITBYTE    $E,LIBF_CHANGED | LIBF_SUMUSED;lib_Flags
  157.     INITWORD    $14,38            ;lib_Version
  158.     INITWORD    $16,3            ;lib_Revision
  159.     INITLONG    $18,LanguageID        ;lib_IdString
  160.     dc.w    0
  161. *    DataTable    dc.w    $A009
  162. *        dc.w    $9C00
  163. *        dc.w    $A008        
  164. *        dc.w    $900
  165. *        dc.w    $800A
  166. *        dc.l    LanguageName
  167. *        dc.w    $A00E
  168. *        dc.w    $600
  169. *        dc.w    $9014
  170. *        dc.w    $26
  171. *        dc.w    $9016
  172. *        dc.w    3
  173. *        dc.w    $8018
  174. *        dc.l    LanguageID
  175. *        dc.w    0
  176.  
  177. ;Standard functions - don't touch
  178.     nop
  179. InitRoutine    movea.l    d0,a1
  180.     move.l    a0,lang_SegList(a1)
  181.     move.l    a6,lang_SysBase(a1)
  182.     rts
  183.  
  184. Open    addq.w    #1,LIB_OPENCNT(a6)
  185.     bclr    #LIBB_DELEXP,LIB_FLAGS(a6)
  186.     move.l    a6,d0
  187.     rts
  188.  
  189. Close    subq.w    #1,LIB_OPENCNT(a6)
  190.     btst    #LIBB_DELEXP,LIB_FLAGS(a6)
  191.     bne.s    Expun
  192.     moveq    #0,d0
  193.     rts
  194.  
  195. Expun    tst.w    LIB_OPENCNT(a6)
  196.     beq.s    RemoveLib
  197.     moveq    #0,d0
  198.     rts
  199.  
  200. Expunge    tst.w    LIB_OPENCNT(a6)
  201.     beq.s    RemoveLib
  202.     bset    #LIBB_DELEXP,LIB_FLAGS(a6)
  203.     moveq    #0,d0
  204.     rts
  205.  
  206. RemoveLib    movem.l    d2/a5/a6,-(sp)
  207.     movea.l    a6,a5
  208.     movea.l    lang_SysBase(a5),a6
  209.     move.l    lang_SegList(a5),d2
  210.     movea.l    a5,a1
  211.     movea.l    LN_SUCC(a1),a0
  212.     movea.l    LN_PRED(a1),a1
  213.     move.l    a0,LN_SUCC(a1)
  214.     move.l    a1,LN_PRED(a0)
  215.     movea.l    a5,a1
  216.     moveq    #0,d0
  217.     move.w    LIB_NEGSIZE(a5),d0
  218.     suba.l    d0,a1
  219.     add.w    LIB_POSSIZE(a5),d0
  220.     jsr    _LVOFreeMem(a6)
  221.     move.l    d2,d0
  222.     movem.l    (sp)+,d2/a5/a6
  223.     rts
  224.  
  225. Fun1    moveq    #0,d0
  226.     rts
  227.  
  228. ;This returns bit pattern of available functions (not including 4 standard
  229. ;library functions)
  230. AvailFun    move.l    #$18008,d0    ;Available functions
  231.     rts
  232.  
  233. ;You don't need to change the code for StrnCmp() and StrConvert() functions
  234. ;but you should change two char tables below.
  235. ;The tables included in this file are good for Polish language and they work
  236. ;(I have tested this)
  237.  
  238. ; StrnCmp(str1,str2,len,type) - see Locale.doc for more information
  239. ; a1 = str1
  240. ; a2 = str2
  241. ; d0 = len
  242. ; d1 = type
  243.  
  244. StrnCmp    tst.l    d0
  245.     bne.s    Cmp
  246.     rts
  247.  
  248. Cmp    tst.l    d1
  249.     bne.s    Collate
  250. SC_ASCII    movem.l    d2/a2,-(sp)    ;Case insensitive comparison
  251.     lea    Lower2Upper(pc),a0
  252.     moveq    #0,d2
  253. ASCII_CompareLoop
  254.     move.b    (a1)+,d1
  255.     move.b    (a2)+,d2
  256.     move.b    0(a0,d1.w),d1
  257.     cmp.b    0(a0,d2.w),d1
  258.     bne.s    ASCII_Different
  259.     tst.b    d1
  260.     beq.s    ASCII_EndOfString
  261.     subq.l    #1,d0
  262.     bne.s    ASCII_CompareLoop
  263.     movem.l    (sp)+,d2/a2
  264.     rts
  265.  
  266. ASCII_EndOfString
  267.     moveq    #0,d0
  268.     movem.l    (sp)+,d2/a2
  269.     rts
  270.  
  271. ASCII_Different
  272.     bhi.s    ASCII_Higher
  273.     moveq    #-1,d0    ;First string is less than second'
  274.     movem.l    (sp)+,d2/a2
  275.     rts
  276.  
  277. ASCII_Higher
  278.     moveq    #1,d0    ;Second string is greater than first
  279.     movem.l    (sp)+,d2/a2
  280.     rts
  281.  
  282. Collate    subq.l    #1,d1
  283.     bne.s    Collate2
  284. SC_COLLATE1
  285.     movem.l    d2/a2,-(sp)
  286.     lea    IgnoreAccents(pc),a0
  287.     moveq    #0,d2
  288. CL1_CompareLoop
  289.     move.b    (a1)+,d1
  290.     move.b    (a2)+,d2
  291.     move.b    0(a0,d1.w),d1
  292.     cmp.b    0(a0,d2.w),d1
  293.     bne.s    CL1_Different
  294.     tst.b    d1
  295.     beq.s    CL1_EndOfString
  296.     subq.l    #1,d0
  297.     bne.s    CL1_CompareLoop
  298.     movem.l    (sp)+,d2/a2
  299.     rts
  300.  
  301. CL1_EndOfString
  302.     moveq    #0,d0
  303.     movem.l    (sp)+,d2/a2
  304.     rts
  305.  
  306. CL1_Different
  307.     bhi.s    CL1_Higher
  308.     moveq    #-1,d0
  309.     movem.l    (sp)+,d2/a2
  310.     rts
  311.  
  312. CL1_Higher
  313.     moveq    #1,d0
  314.     movem.l    (sp)+,d2/a2
  315.     rts
  316.  
  317. Collate2    subq.l    #1,d1
  318.     bne.s    SC_UNKNOWN
  319. SC_COLLATE2
  320.     movem.l    d2/d3/a2,-(sp)
  321.     lea    IgnoreAccents(pc),a0
  322.     moveq    #0,d2
  323.     moveq    #0,d3
  324. CL2_Loop    move.b    (a1)+,d1
  325.     beq.s    CL2_EndOfString1
  326.     move.b    (a2)+,d2
  327.     cmp.b    d2,d1
  328.     bne.s    CL2_Different1
  329.     subq.l    #1,d0
  330.     bne.s    CL2_Loop
  331.     movem.l    (sp)+,d2/d3/a2
  332.     rts
  333.  
  334. CL2_EndOfString1
  335.     cmp.b    (a2)+,d1
  336.     bne.s    CL2_Different1
  337.     movem.l    (sp)+,d2/d3/a2
  338.     moveq    #0,d0
  339.     rts
  340.  
  341. CL2_Different1
  342.     bhi.s    CL2_Higher1
  343.     moveq    #-1,d3
  344.     bra.s    CL2_Continue
  345.  
  346. CL2_Higher1
  347.     moveq    #1,d3
  348.     bra.s    CL2_Continue
  349.  
  350. CL2_CompareLoop
  351.     move.b    (a1)+,d1
  352.     move.b    (a2)+,d2
  353. CL2_Continue
  354.     move.b    0(a0,d1.w),d1
  355.     cmp.b    0(a0,d2.w),d1
  356.     bne.s    CL2_Different2
  357.     tst.b    d1
  358.     beq.s    CL2_EndOfString2
  359.     subq.l    #1,d0
  360.     bne.s    CL2_CompareLoop
  361. CL2_EndOfString2
  362.     move.l    d3,d0
  363.     movem.l    (sp)+,d2/d3/a2
  364.     rts
  365.  
  366. CL2_Different2
  367.     bhi.s    CL2_Higher2
  368.     moveq    #-1,d0
  369.     movem.l    (sp)+,d2/d3/a2
  370.     rts
  371.  
  372. CL2_Higher2
  373.     moveq    #1,d0
  374.     movem.l    (sp)+,d2/d3/a2
  375.     rts
  376.  
  377. SC_UNKNOWN
  378.     moveq    #0,d0
  379.     rts
  380.  
  381. ; StrConvert(string,buffer,bufferSize,type)
  382. ; a1 = string
  383. ; a2=buffer
  384. ; d0 = bufferSize
  385. ; d1=type
  386. StrConvert
  387.     move.l    d0,-(sp)
  388.     bne.s    Convert
  389.     addq.l    #4,sp
  390.     rts
  391.  
  392. Convert    tst.l    d1
  393.     bne.s    ConvCollate
  394. CONV_ASCII
  395.     move.l    a2,-(sp)
  396.     lea    Lower2Upper(pc),a0
  397.     bra.s    StartConv
  398.  
  399. ConvCollate
  400.     subq.l    #1,d1
  401.     bne.s    ConvCollate2
  402. CONV_COLLATE1
  403.     move.l    a2,-(sp)
  404.     lea    IgnoreAccents(pc),a0
  405.     bra.s    StartConv
  406.  
  407. ConvLoop    move.b    (a1)+,d1
  408.     beq.s    ConvEnd
  409.     move.b    0(a0,d1.w),(a2)+
  410. StartConv    subq.l    #1,d0
  411.     bne.s    ConvLoop
  412. ConvEnd    clr.b    (a2)
  413.     movea.l    (sp)+,a2
  414.     move.l    (sp)+,d1
  415.     sub.l    d0,d1
  416.     move.l    d1,d0
  417.     rts
  418.  
  419. ConvCollate2
  420.     subq.l    #1,d1
  421.     bne.s    CONV_UNKNOWN
  422. CONV_COLLATE2
  423.     movem.l    d2/a2/a3,-(sp)
  424.     movea.l    a1,a0
  425. ConvLoop2    tst.b    (a0)+
  426.     bne.s    ConvLoop2
  427.     suba.l    a1,a0
  428.     subq.l    #1,a0
  429.     movea.l    a2,a3
  430.     adda.l    a0,a3
  431.     lea    IgnoreAccents(pc),a0
  432.     bra.s    StartConv2
  433.  
  434. ConvLoop3    move.b    (a1)+,d1
  435.     beq.s    ConvEnd2
  436.     move.b    0(a0,d1.w),d2
  437.     move.b    d2,(a2)+
  438.     cmp.b    d2,d1
  439.     beq.s    StartConv2
  440.     move.b    d1,(a3)+
  441.     subq.l    #1,d0
  442.     beq.s    ConvEnd2
  443. StartConv2
  444.     subq.l    #1,d0
  445.     bne.s    ConvLoop3
  446. ConvEnd2    clr.b    (a3)
  447.     movem.l    (sp)+,d2/a2/a3
  448.     move.l    (sp)+,d1
  449.     sub.l    d0,d1
  450.     move.l    d1,d0
  451.     rts
  452.  
  453. CONV_UNKNOWN
  454.     moveq    #0,d0
  455.     rts
  456.  
  457. ;IgnoreAccents[256] and Lower2Upper[256] are 2 full ASCII tables
  458.  
  459. ;IgnoreAccents[] describes the relative sorting order for chars
  460. ;Accented and not accented chars are considered equal as are
  461. ;lower-case and upper-case chars. It looks a bit strange but I didn't
  462. ;change it much. I did changes only in last 64 chars.
  463. ;I'm afraid that I can't explain it better, since my English is quite limited
  464. ;Please see Locale.doc or use your mind or do some tests;
  465. IgnoreAccents
  466.     dc.b    0,1,2,3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F
  467.     dc.b    $10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F
  468.     dc.b    ' !"#$%&''()*+,-./0123456789:;<=>?'
  469.     dc.b    '@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`ab'
  470.     dc.b    'cABCDEFGHIJKLMNOPQRSTUVWXYZdefgh'
  471.     dc.b    'àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
  472.     dc.b    ' !$$ijkSlmn"opqrstuvwxyz{|}"~',$80,'?'
  473.     dc.b    'AAAAA][CEEEEIIINDNOOOOO/\UUUUYPY'
  474.     dc.b    'AAAAA][CEEEEIIINDNOOOOO/\UUUUYPY'
  475.  
  476. ;Lower2Upper[] contains accented characters, but lower and upper chars are
  477. ;consider equal
  478. Lower2Upper
  479.     dc.b    0,1,2,3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F
  480.     dc.b    $10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F
  481.     dc.b    ' !"#$%&''()*+,-./0123456789:;<=>?'
  482.     dc.b    '@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'
  483.     dc.b    '`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~'
  484.     dc.b    $80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8A,$8B,$8C,$8D,$8E,$8F
  485.     dc.b    $90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$9A,$9B,$9C,$9D,$9E,$9F
  486.     dc.b    ' ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿'
  487.     dc.b    'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß'
  488.     dc.b    'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ÷ØÙÚÛÜÝÞß'
  489.  
  490. ;Below there are MAXSTRMSG messages for your language
  491. ;See <libraries/locale.h> for their description
  492. NullStr    dc.w    0
  493. Sunday    dc.b    'Niedziela',0
  494. Monday    dc.b    'Poniedzialek',0,0
  495. Tuesday    dc.b    'Wtorek',0,0
  496. Wednesday    dc.b    'Sroda',0
  497. Thursday    dc.b    'Czwartek',0,0
  498. Friday    dc.b    'Piatek',0,0
  499. Saturday    dc.b    'Sobota',0,0
  500. Sun    dc.b    'Nie',0
  501. Mon    dc.b    'Pon',0
  502. Tue    dc.b    'Wto',0
  503. Wed    dc.b    'Ôro',0
  504. Thu    dc.b    'Czw',0
  505. Fri    dc.b    'Pia',0
  506. Sat    dc.b    'Sob',0
  507. January    dc.b    'Styczen',0
  508. February    dc.b    'Luty',0,0
  509. March    dc.b    'Marzec',0,0
  510. April    dc.b    'Kwiecien',0,0
  511. May    dc.b    'Maj',0
  512. June    dc.b    'Czerwiec',0,0
  513. July    dc.b    'Lipiec',0,0
  514. August    dc.b    'Sierpien',0,0
  515. September    dc.b    'Wrzesien',0,0
  516. October    dc.b    'Pazdziernik',0
  517. November    dc.b    'Listopad',0,0
  518. December    dc.b    'Grudzien',0,0
  519. Jan    dc.b    'Sty',0
  520. Feb    dc.b    'Lut',0
  521. Mar    dc.b    'Marz',0,0
  522. Apr    dc.b    'Kwie',0,0
  523. MayAb    dc.b    'Maj',0
  524. Jun    dc.b    'Czer',0,0
  525. Jul    dc.b    'Lip',0
  526. Aug    dc.b    'Sier',0,0
  527. Sep    dc.b    'Wrze',0,0
  528. Oct    dc.b    'Paz',0
  529. Nov    dc.b    'Lis',0
  530. Dec    dc.b    'Gru',0
  531. Yes    dc.b    'Tak',0
  532. No    dc.b    'Nie',0
  533. AM    dc.b    'AM',0
  534. PM    dc.b    'PM',0
  535. SoftHyphen    dc.b    '-',0
  536. HardHyphen    dc.b    '-',0
  537. OpenQuote        dc.b    '"',0
  538. CloseQuote    dc.b    '"',0
  539. Yesterday    dc.b    'Wczoraj',0
  540. Today    dc.b    'Dzisiaj',0
  541. Tomorrow    dc.b    'Jutro',0
  542. Future    dc.b    'Przyszlosc',0,0
  543.  
  544.     CNOP    0,4
  545.  
  546. ;You should imlement at least this functions
  547. ;Please change only strings above and nothing more
  548. GetLocStr    cmpi.l    #MAXSTRMSG,d0
  549.     bcc.s    NoEntry
  550.     asl.w    #2,d0
  551.     move.l    StringsTable(pc,d0.w),d0
  552.     rts
  553.  
  554. NoEntry    moveq    #0,d0
  555.     rts
  556.  
  557. ; Pointers to strings - don't touch
  558. StringsTable
  559.     dc.l    NullStr
  560.     dc.l    Sunday
  561.     dc.l    Monday
  562.     dc.l    Tuesday
  563.     dc.l    Wednesday
  564.     dc.l    Thursday
  565.     dc.l    Friday
  566.     dc.l    Saturday
  567.     dc.l    Sun
  568.     dc.l    Mon
  569.     dc.l    Tue
  570.     dc.l    Wed
  571.     dc.l    Thu
  572.     dc.l    Fri
  573.     dc.l    Sat
  574.     dc.l    January
  575.     dc.l    February
  576.     dc.l    March
  577.     dc.l    April
  578.     dc.l    May
  579.     dc.l    June
  580.     dc.l    July
  581.     dc.l    August
  582.     dc.l    September
  583.     dc.l    October
  584.     dc.l    November
  585.     dc.l    December
  586.     dc.l    Jan
  587.     dc.l    Feb
  588.     dc.l    Mar
  589.     dc.l    Apr
  590.     dc.l    MayAb
  591.     dc.l    Jun
  592.     dc.l    Jul
  593.     dc.l    Aug
  594.     dc.l    Sep
  595.     dc.l    Oct
  596.     dc.l    Nov
  597.     dc.l    Dec
  598.     dc.l    Yes
  599.     dc.l    No
  600.     dc.l    AM
  601.     dc.l    PM
  602.     dc.l    SoftHyphen
  603.     dc.l    HardHyphen
  604.     dc.l    OpenQuote
  605.     dc.l    CloseQuote
  606.     dc.l    Yesterday
  607.     dc.l    Today
  608.     dc.l    Tomorrow
  609.     dc.l    Future
  610. EndResident
  611.     end
  612.  
  613. **** Cut here ****************************************************************--
  614. +---------------------------------------------------------------------------+
  615. |                             Michael Letowski                              |
  616. |  Software Engineering Student at Technical University of Wroclaw, Poland  |
  617. +-------------------------------------+-------------------------------------+
  618. |     pro37@ci3ux.ci.pwr.wroc.pl      |         ul. Przyjazni 51/17         |
  619. |     (Valid until 15 Feb 1995)       |       53-030 Wroclaw, Poland        |
  620. +-------------------------------------+-------------------------------------+
  621.  
  622.