Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- The Guide To Clipper - <b>summary of changes from autumn '86</b> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Summary of Changes from Autumn '86


The C Interface

   . C Extend functions must now be defined using the CLIPPER macro or
     declaring the function "void pascal."  For example:

        Autumn '86:     c_routine()
                        {
                            <statements>...
                        }

        Summer '87:     CLIPPER c_routine()
                        {
                            <statements>...
                        }

   . Extend functions must all now be preceded with an underscore (_)
     character.  For example:

        Autumn '86:     parni(1)
                        parinfa(2, 1)
                        ret()

        Summer '87:     _parni(1)
                        _parinfa(2, 1)
                        _ret()

   . The _parc() function points to the original string.

   . There are three new functions:

        _parclen()
        _retclen()
        _parcsiz()


   . Note: Clipper strings are still null terminated.


The Assembler Interface

   . References to Extend functions must now be preceded with an extra
     underscore (_) character.

        Autumn '86:     call _PARNI
                        call _PARC
                        call _RETNI
                        call _RET

        Summer '87:     call __PARNI
                        call __PARC
                        call __RETNI
                        call __RET

   . For some of the __PAR functions, the receiving registers and how
     they are received, has changed.

        __PARC

             Autumn '86: Received parameter in AX:BX (segment:offset) by
                         value.

             Summer '87: Receives the passed parameter in DX:AX
                         (segment:offset) by reference.  This function
                         points to the original string.


        __PARNL

             Autumn '86: Received parameter in AX:BX passed by value.

             Summer '87: Receives parameter in DX:AX passed by value.


        __PARND

             Autumn '86: Received parameter in AX:BX:CX:DX passed by
                         value.

             Summer '87: Receives parameter in DX:AX (segment:offset)
                         passed by reference.


        __PARDS

             Autumn '86: Received parameter in AX:BX (segment:offset)
                         passed by reference.

             Summer '87: Receives parameter in DX:AX (segment:offset)
                         passed by reference.

   . There are three new functions:

        __PARCLEN()
        __PARCSIZ()
        __RETCLEN()


   . Data segments should be classed "DATA".  Code segments should be
     classed "CODE".

   . Note: Some EXTENDA.MAC macros have also changed.  If you
     INCLUDE this file, please examine the changes first.

.

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson