From: ol.sc Date: Tue, 7 Feb 2012 16:42:59 +0000 (+0000) Subject: Moved non-driver files from 'geos-cbm/devel' to 'geos-common/system' which are believ... X-Git-Tag: V2.13.3~6 X-Git-Url: https://git.sur5r.net/?p=cc65;a=commitdiff_plain;h=4494a930e3ded1e7c10ac074e39917ccfe1065b1 Moved non-driver files from 'geos-cbm/devel' to 'geos-common/system' which are believed to work as-is on Apple GEOS too. git-svn-id: svn://svn.cc65.org/cc65/trunk@5488 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/libsrc/geos-cbm/devel/Makefile b/libsrc/geos-cbm/devel/Makefile index 256553b5a..1e3d5d446 100644 --- a/libsrc/geos-cbm/devel/Makefile +++ b/libsrc/geos-cbm/devel/Makefile @@ -5,15 +5,9 @@ #-------------------------------------------------------------------------- # Object files -S_OBJS += crt0.o \ - extzp.o \ - fio_module.o \ +S_OBJS += fio_module.o \ joy_stddrv.o \ - mainargs.o \ mcbdefault.o \ mouse_stddrv.o \ - oserror.o \ - oserrlist.o \ - randomize.o \ tgi_colors.o \ tgi_stddrv.o diff --git a/libsrc/geos-cbm/devel/crt0.s b/libsrc/geos-cbm/devel/crt0.s deleted file mode 100644 index cc7cab4fd..000000000 --- a/libsrc/geos-cbm/devel/crt0.s +++ /dev/null @@ -1,47 +0,0 @@ -; -; Startup code for geos -; -; Maciej 'YTM/Elysium' Witkowiak -; 26.10.99, 10.3.2000, 15.8.2001, 23.12.2002 - - .export _exit - .export __STARTUP__ : absolute = 1 ; Mark as startup - - .import __VLIR0_START__, __VLIR0_SIZE__ ; Linker generated - .import __STACKSIZE__ ; Linker generated - .import initlib, donelib - .import callmain - .import zerobss - .importzp sp - .include "jumptab.inc" - -; ------------------------------------------------------------------------ -; Place the startup code in a special segment. - -.segment "STARTUP" - -; Clear the BSS data - - jsr zerobss - -; Setup stack - - lda #<(__VLIR0_START__ + __VLIR0_SIZE__ + __STACKSIZE__) - sta sp - lda #>(__VLIR0_START__ + __VLIR0_SIZE__ + __STACKSIZE__) - sta sp+1 ; Set argument stack ptr - -; Call module constructors - - jsr initlib - -; Push arguments and call main() - - cli - jsr callmain - -; Call module destructors. - -_exit: jsr donelib ; Run module destructors - - jmp EnterDeskTop ; return control to the system diff --git a/libsrc/geos-cbm/devel/extzp.s b/libsrc/geos-cbm/devel/extzp.s deleted file mode 100644 index beb4e271c..000000000 --- a/libsrc/geos-cbm/devel/extzp.s +++ /dev/null @@ -1,18 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; 31.12.2002 -; -; zeropage locations for exclusive use by the library -; - - .exportzp cursor_x, cursor_y, cursor_flag - .exportzp cursor_c, cursor_r - -.segment "EXTZP" : zeropage - -cursor_x: .res 2 ; Cursor column (0-319/639) -cursor_y: .res 1 ; Cursor row (0-199) -cursor_flag: .res 1 ; Cursor on/off (0-off) - -cursor_c: .res 1 ; Cursor column (0-39/79) -cursor_r: .res 1 ; Cursor row (0-24) diff --git a/libsrc/geos-cbm/devel/mainargs.s b/libsrc/geos-cbm/devel/mainargs.s deleted file mode 100644 index 6f27a4e93..000000000 --- a/libsrc/geos-cbm/devel/mainargs.s +++ /dev/null @@ -1,83 +0,0 @@ -; -; Ullrich von Bassewitz, 2003-03-07 -; Maciej Witkowiak, 2003-05-02 -; -; Setup arguments for main -; -; There is always either 1 or 3 arguments: -; ,0 -; or -; , , , 0 -; the 2nd case is when using DeskTop user drags an icon of a file and drops it -; on icon of your application -; - - .constructor initmainargs, 24 - .import __argc, __argv - - .include "const.inc" - .include "geossym.inc" - -;--------------------------------------------------------------------------- -; Setup arguments for main - -.segment "INIT" - -.proc initmainargs - -; Setup a pointer to our argv vector - - lda #argv - sta __argv+1 - -; Copy program name - - ldy #0 -@fn_loop: - lda dirEntryBuf+OFF_FNAME,y -.ifdef __GEOS_CBM__ - cmp #$a0 -.else - cmp #0 -.endif - beq @fn_end - sta argv0,y - iny - cpy #16+1 - bne @fn_loop -@fn_end: - lda #0 - sta argv0,y - sta __argc+1 - -; Check if there are any more arguments - - lda dataFileName - bne @threeargs - ldx #0 ; no dataFileName - NULL the 2nd argument - stx argv+2 - stx argv+3 - inx ; there is only one argument - bne @setargc -@threeargs: - ldx #3 ; there are three arguments -@setargc: - stx __argc - rts - -.endproc - -;--------------------------------------------------------------------------- -; Data - -.data - -argv: .word argv0 ; Pointer to program name - .word dataFileName ; dataFileName or NULL if last one - .word dataDiskName ; dataDiskName - .word $0000 ; last one must be NULL - -.bss -argv0: .res 17 ; Program name diff --git a/libsrc/geos-cbm/devel/oserrlist.s b/libsrc/geos-cbm/devel/oserrlist.s deleted file mode 100644 index 1b6e18969..000000000 --- a/libsrc/geos-cbm/devel/oserrlist.s +++ /dev/null @@ -1,94 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; 25.12.2002 -; -; Defines the platform specific error list. -; -; The table is built as a list of entries -; -; .byte entrylen -; .byte errorcode -; .asciiz errormsg -; -; and terminated by an entry with length zero that is returned if the -; error code could not be found. -; - - .include "const.inc" - - .export __sys_oserrlist - -;---------------------------------------------------------------------------- -; Macros used to generate the list (may get moved to an include file?) - -; Regular entry -.macro sys_oserr_entry code, msg - .local Start, End -Start: .byte End - Start - .byte code - .asciiz msg -End: -.endmacro - -; Sentinel entry -.macro sys_oserr_sentinel msg - .byte 0 ; Length is always zero - .byte 0 ; Code is unused - .asciiz msg -.endmacro - -;---------------------------------------------------------------------------- -; The error message table - -.rodata - -__sys_oserrlist: - sys_oserr_entry NO_BLOCKS, "No free blocks" - sys_oserr_entry INV_TRACK, "Illegal track or sector" - sys_oserr_entry INSUFF_SPACE, "Disk full" - sys_oserr_entry FULL_DIRECTORY, "Directory full" - sys_oserr_entry FILE_NOT_FOUND, "File not found" - sys_oserr_entry BAD_BAM, "Inconsistent BAM" - sys_oserr_entry UNOPENED_VLIR, "VLIR file not opened" - sys_oserr_entry INV_RECORD, "Invalid VLIR record" - sys_oserr_entry OUT_OF_RECORDS, "Out of VLIR records" - sys_oserr_entry STRUCT_MISMAT, "Structure mismatch" - sys_oserr_entry BFR_OVERFLOW, "Buffer overflow" - sys_oserr_entry CANCEL_ERR, "Operation cancelled" - sys_oserr_entry DEV_NOT_FOUND, "Device not found" - sys_oserr_entry INCOMPATIBLE, "Incompatible device" - sys_oserr_entry 20, "Read error" - sys_oserr_entry 21, "Read error" - sys_oserr_entry 22, "Read error" - sys_oserr_entry 23, "Read error" - sys_oserr_entry 24, "Read error" - sys_oserr_entry 25, "Write error" - sys_oserr_entry 26, "Write protect on" - sys_oserr_entry 27, "Read error" - sys_oserr_entry 28, "Write error" - sys_oserr_entry 29, "Disk ID mismatch" - sys_oserr_entry 30, "Syntax error" - sys_oserr_entry 31, "Syntax error" - sys_oserr_entry 32, "Syntax error" - sys_oserr_entry 33, "Syntax error (invalid file name)" - sys_oserr_entry 34, "Syntax error (no file given)" - sys_oserr_entry 39, "Syntax error" - sys_oserr_entry 50, "Record not present" - sys_oserr_entry 51, "Overflow in record" - sys_oserr_entry 52, "File too large" - sys_oserr_entry 60, "Write file open" - sys_oserr_entry 61, "File not open" - sys_oserr_entry 62, "File not found" - sys_oserr_entry 63, "File exists" - sys_oserr_entry 64, "File type mismatch" - sys_oserr_entry 65, "No block" - sys_oserr_entry 66, "Illegal track or sector" - sys_oserr_entry 67, "Illegal system track or sector" - sys_oserr_entry 70, "No channel" - sys_oserr_entry 71, "Directory error" - sys_oserr_entry 72, "Disk full" - sys_oserr_entry 73, "DOS version mismatch" - sys_oserr_entry 74, "Drive not ready" - sys_oserr_sentinel "Unknown error" - - diff --git a/libsrc/geos-cbm/devel/oserror.s b/libsrc/geos-cbm/devel/oserror.s deleted file mode 100644 index 3198da778..000000000 --- a/libsrc/geos-cbm/devel/oserror.s +++ /dev/null @@ -1,86 +0,0 @@ -; -; Ullrich von Bassewitz, 17.05.2000 -; GEOS port: Maciej 'YTM/Elysium' Witkowiak -; 2.7.2001 -; -; int __fastcall__ _osmaperrno (unsigned char oserror); -; /* Map a system specific error into a system independent code */ -; - - .export __osmaperrno - .include "errno.inc" - .include "const.inc" - -.code - -__osmaperrno: - ldx #ErrTabSize -@L1: cmp ErrTab-2,x ; Search for the error code - beq @L2 ; Jump if found - dex - dex - bne @L1 ; Next entry - -; Code not found, return EINVAL - - lda #EINVAL - rts - -; Found the code - -@L2: lda ErrTab-1,x - ldx #$00 ; High byte always zero - rts - -.rodata - -ErrTab: - .byte NO_BLOCKS, EINVAL ; ??? - .byte INV_TRACK, EINVAL ; invalid track§or pair - .byte INSUFF_SPACE, ENOSPC ; out of space - .byte FULL_DIRECTORY, ENOSPC ; directory is full - .byte FILE_NOT_FOUND, ENOENT ; file not found - .byte BAD_BAM, EIO ; bam inconsistent - .byte UNOPENED_VLIR, EINVAL ; using VLIR file without opening - .byte INV_RECORD, EINVAL ; using >128 VLIR record number - .byte OUT_OF_RECORDS, ENOSPC ; cannot insert/add record - .byte STRUCT_MISMAT, EINVAL ; ??? - .byte BFR_OVERFLOW, ENOMEM ; file longer than buffer or end of file - .byte CANCEL_ERR, EIO ; ??? - .byte DEV_NOT_FOUND, ENODEV ; device not found - .byte INCOMPATIBLE, EINVAL ; ??? - -; .byte 20, ; Read error -; .byte 21, ; Read error -; .byte 22, ; Read error -; .byte 23, ; Read error -; .byte 24, ; Read error -; .byte 25, ; Write error - .byte 26, EACCES ; Write protect on -; .byte 27, ; Read error -; .byte 28, ; Write error -; .byte 29, ; Disk ID mismatch -; .byte 30, ; Syntax error -; .byte 31, ; Syntax error -; .byte 32, ; Syntax error - .byte 33, EINVAL ; Syntax error (invalid file name) - .byte 34, EINVAL ; Syntax error (no file given) -; .byte 39, ; Syntax error -; .byte 50, ; Record not present -; .byte 51, ; Overflow in record -; .byte 52, ; File too large - .byte 60, EINVAL ; Write file open - .byte 61, EINVAL ; File not open - .byte 62, ENOENT ; File not found - .byte 63, EEXIST ; File exists - .byte 64, EINVAL ; File type mismatch -; .byte 65, ; No block -; .byte 66, ; Illegal track or sector -; .byte 67, ; Illegal system track or sector - .byte 70, EBUSY ; No channel -; .byte 71, ; Directory error -; .byte 72, ; Disk full -; .byte 73, ; DOS version mismatch - -ErrTabSize = (* - ErrTab) diff --git a/libsrc/geos-cbm/devel/randomize.s b/libsrc/geos-cbm/devel/randomize.s deleted file mode 100644 index 168f6b767..000000000 --- a/libsrc/geos-cbm/devel/randomize.s +++ /dev/null @@ -1,16 +0,0 @@ -; -; Ullrich von Bassewitz, 05.11.2002 -; -; void _randomize (void); -; /* Initialize the random number generator */ -; - - .export __randomize - .import _srand - - .include "geossym.inc" - -__randomize: - lda random ; get random value from internal generator - ldx random+1 - jmp _srand ; and use it as seed diff --git a/libsrc/geos-common/system/Makefile b/libsrc/geos-common/system/Makefile index 9de6c6ecb..6d8a22eed 100644 --- a/libsrc/geos-common/system/Makefile +++ b/libsrc/geos-common/system/Makefile @@ -8,10 +8,16 @@ C_OBJS += systime.o S_OBJS += callroutine.o \ + crt0.o \ enterdesktop.o \ + extzp.o \ firstinit.o \ getrandom.o \ getserialnumber.o \ + mainargs.o \ mainloop.o \ + oserror.o \ + oserrlist.o \ panic.o \ + randomize.o \ sysuname.o diff --git a/libsrc/geos-common/system/crt0.s b/libsrc/geos-common/system/crt0.s new file mode 100644 index 000000000..cc7cab4fd --- /dev/null +++ b/libsrc/geos-common/system/crt0.s @@ -0,0 +1,47 @@ +; +; Startup code for geos +; +; Maciej 'YTM/Elysium' Witkowiak +; 26.10.99, 10.3.2000, 15.8.2001, 23.12.2002 + + .export _exit + .export __STARTUP__ : absolute = 1 ; Mark as startup + + .import __VLIR0_START__, __VLIR0_SIZE__ ; Linker generated + .import __STACKSIZE__ ; Linker generated + .import initlib, donelib + .import callmain + .import zerobss + .importzp sp + .include "jumptab.inc" + +; ------------------------------------------------------------------------ +; Place the startup code in a special segment. + +.segment "STARTUP" + +; Clear the BSS data + + jsr zerobss + +; Setup stack + + lda #<(__VLIR0_START__ + __VLIR0_SIZE__ + __STACKSIZE__) + sta sp + lda #>(__VLIR0_START__ + __VLIR0_SIZE__ + __STACKSIZE__) + sta sp+1 ; Set argument stack ptr + +; Call module constructors + + jsr initlib + +; Push arguments and call main() + + cli + jsr callmain + +; Call module destructors. + +_exit: jsr donelib ; Run module destructors + + jmp EnterDeskTop ; return control to the system diff --git a/libsrc/geos-common/system/extzp.s b/libsrc/geos-common/system/extzp.s new file mode 100644 index 000000000..beb4e271c --- /dev/null +++ b/libsrc/geos-common/system/extzp.s @@ -0,0 +1,18 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; 31.12.2002 +; +; zeropage locations for exclusive use by the library +; + + .exportzp cursor_x, cursor_y, cursor_flag + .exportzp cursor_c, cursor_r + +.segment "EXTZP" : zeropage + +cursor_x: .res 2 ; Cursor column (0-319/639) +cursor_y: .res 1 ; Cursor row (0-199) +cursor_flag: .res 1 ; Cursor on/off (0-off) + +cursor_c: .res 1 ; Cursor column (0-39/79) +cursor_r: .res 1 ; Cursor row (0-24) diff --git a/libsrc/geos-common/system/mainargs.s b/libsrc/geos-common/system/mainargs.s new file mode 100644 index 000000000..6f27a4e93 --- /dev/null +++ b/libsrc/geos-common/system/mainargs.s @@ -0,0 +1,83 @@ +; +; Ullrich von Bassewitz, 2003-03-07 +; Maciej Witkowiak, 2003-05-02 +; +; Setup arguments for main +; +; There is always either 1 or 3 arguments: +; ,0 +; or +; , , , 0 +; the 2nd case is when using DeskTop user drags an icon of a file and drops it +; on icon of your application +; + + .constructor initmainargs, 24 + .import __argc, __argv + + .include "const.inc" + .include "geossym.inc" + +;--------------------------------------------------------------------------- +; Setup arguments for main + +.segment "INIT" + +.proc initmainargs + +; Setup a pointer to our argv vector + + lda #argv + sta __argv+1 + +; Copy program name + + ldy #0 +@fn_loop: + lda dirEntryBuf+OFF_FNAME,y +.ifdef __GEOS_CBM__ + cmp #$a0 +.else + cmp #0 +.endif + beq @fn_end + sta argv0,y + iny + cpy #16+1 + bne @fn_loop +@fn_end: + lda #0 + sta argv0,y + sta __argc+1 + +; Check if there are any more arguments + + lda dataFileName + bne @threeargs + ldx #0 ; no dataFileName - NULL the 2nd argument + stx argv+2 + stx argv+3 + inx ; there is only one argument + bne @setargc +@threeargs: + ldx #3 ; there are three arguments +@setargc: + stx __argc + rts + +.endproc + +;--------------------------------------------------------------------------- +; Data + +.data + +argv: .word argv0 ; Pointer to program name + .word dataFileName ; dataFileName or NULL if last one + .word dataDiskName ; dataDiskName + .word $0000 ; last one must be NULL + +.bss +argv0: .res 17 ; Program name diff --git a/libsrc/geos-common/system/oserrlist.s b/libsrc/geos-common/system/oserrlist.s new file mode 100644 index 000000000..1b6e18969 --- /dev/null +++ b/libsrc/geos-common/system/oserrlist.s @@ -0,0 +1,94 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; 25.12.2002 +; +; Defines the platform specific error list. +; +; The table is built as a list of entries +; +; .byte entrylen +; .byte errorcode +; .asciiz errormsg +; +; and terminated by an entry with length zero that is returned if the +; error code could not be found. +; + + .include "const.inc" + + .export __sys_oserrlist + +;---------------------------------------------------------------------------- +; Macros used to generate the list (may get moved to an include file?) + +; Regular entry +.macro sys_oserr_entry code, msg + .local Start, End +Start: .byte End - Start + .byte code + .asciiz msg +End: +.endmacro + +; Sentinel entry +.macro sys_oserr_sentinel msg + .byte 0 ; Length is always zero + .byte 0 ; Code is unused + .asciiz msg +.endmacro + +;---------------------------------------------------------------------------- +; The error message table + +.rodata + +__sys_oserrlist: + sys_oserr_entry NO_BLOCKS, "No free blocks" + sys_oserr_entry INV_TRACK, "Illegal track or sector" + sys_oserr_entry INSUFF_SPACE, "Disk full" + sys_oserr_entry FULL_DIRECTORY, "Directory full" + sys_oserr_entry FILE_NOT_FOUND, "File not found" + sys_oserr_entry BAD_BAM, "Inconsistent BAM" + sys_oserr_entry UNOPENED_VLIR, "VLIR file not opened" + sys_oserr_entry INV_RECORD, "Invalid VLIR record" + sys_oserr_entry OUT_OF_RECORDS, "Out of VLIR records" + sys_oserr_entry STRUCT_MISMAT, "Structure mismatch" + sys_oserr_entry BFR_OVERFLOW, "Buffer overflow" + sys_oserr_entry CANCEL_ERR, "Operation cancelled" + sys_oserr_entry DEV_NOT_FOUND, "Device not found" + sys_oserr_entry INCOMPATIBLE, "Incompatible device" + sys_oserr_entry 20, "Read error" + sys_oserr_entry 21, "Read error" + sys_oserr_entry 22, "Read error" + sys_oserr_entry 23, "Read error" + sys_oserr_entry 24, "Read error" + sys_oserr_entry 25, "Write error" + sys_oserr_entry 26, "Write protect on" + sys_oserr_entry 27, "Read error" + sys_oserr_entry 28, "Write error" + sys_oserr_entry 29, "Disk ID mismatch" + sys_oserr_entry 30, "Syntax error" + sys_oserr_entry 31, "Syntax error" + sys_oserr_entry 32, "Syntax error" + sys_oserr_entry 33, "Syntax error (invalid file name)" + sys_oserr_entry 34, "Syntax error (no file given)" + sys_oserr_entry 39, "Syntax error" + sys_oserr_entry 50, "Record not present" + sys_oserr_entry 51, "Overflow in record" + sys_oserr_entry 52, "File too large" + sys_oserr_entry 60, "Write file open" + sys_oserr_entry 61, "File not open" + sys_oserr_entry 62, "File not found" + sys_oserr_entry 63, "File exists" + sys_oserr_entry 64, "File type mismatch" + sys_oserr_entry 65, "No block" + sys_oserr_entry 66, "Illegal track or sector" + sys_oserr_entry 67, "Illegal system track or sector" + sys_oserr_entry 70, "No channel" + sys_oserr_entry 71, "Directory error" + sys_oserr_entry 72, "Disk full" + sys_oserr_entry 73, "DOS version mismatch" + sys_oserr_entry 74, "Drive not ready" + sys_oserr_sentinel "Unknown error" + + diff --git a/libsrc/geos-common/system/oserror.s b/libsrc/geos-common/system/oserror.s new file mode 100644 index 000000000..3198da778 --- /dev/null +++ b/libsrc/geos-common/system/oserror.s @@ -0,0 +1,86 @@ +; +; Ullrich von Bassewitz, 17.05.2000 +; GEOS port: Maciej 'YTM/Elysium' Witkowiak +; 2.7.2001 +; +; int __fastcall__ _osmaperrno (unsigned char oserror); +; /* Map a system specific error into a system independent code */ +; + + .export __osmaperrno + .include "errno.inc" + .include "const.inc" + +.code + +__osmaperrno: + ldx #ErrTabSize +@L1: cmp ErrTab-2,x ; Search for the error code + beq @L2 ; Jump if found + dex + dex + bne @L1 ; Next entry + +; Code not found, return EINVAL + + lda #EINVAL + rts + +; Found the code + +@L2: lda ErrTab-1,x + ldx #$00 ; High byte always zero + rts + +.rodata + +ErrTab: + .byte NO_BLOCKS, EINVAL ; ??? + .byte INV_TRACK, EINVAL ; invalid track§or pair + .byte INSUFF_SPACE, ENOSPC ; out of space + .byte FULL_DIRECTORY, ENOSPC ; directory is full + .byte FILE_NOT_FOUND, ENOENT ; file not found + .byte BAD_BAM, EIO ; bam inconsistent + .byte UNOPENED_VLIR, EINVAL ; using VLIR file without opening + .byte INV_RECORD, EINVAL ; using >128 VLIR record number + .byte OUT_OF_RECORDS, ENOSPC ; cannot insert/add record + .byte STRUCT_MISMAT, EINVAL ; ??? + .byte BFR_OVERFLOW, ENOMEM ; file longer than buffer or end of file + .byte CANCEL_ERR, EIO ; ??? + .byte DEV_NOT_FOUND, ENODEV ; device not found + .byte INCOMPATIBLE, EINVAL ; ??? + +; .byte 20, ; Read error +; .byte 21, ; Read error +; .byte 22, ; Read error +; .byte 23, ; Read error +; .byte 24, ; Read error +; .byte 25, ; Write error + .byte 26, EACCES ; Write protect on +; .byte 27, ; Read error +; .byte 28, ; Write error +; .byte 29, ; Disk ID mismatch +; .byte 30, ; Syntax error +; .byte 31, ; Syntax error +; .byte 32, ; Syntax error + .byte 33, EINVAL ; Syntax error (invalid file name) + .byte 34, EINVAL ; Syntax error (no file given) +; .byte 39, ; Syntax error +; .byte 50, ; Record not present +; .byte 51, ; Overflow in record +; .byte 52, ; File too large + .byte 60, EINVAL ; Write file open + .byte 61, EINVAL ; File not open + .byte 62, ENOENT ; File not found + .byte 63, EEXIST ; File exists + .byte 64, EINVAL ; File type mismatch +; .byte 65, ; No block +; .byte 66, ; Illegal track or sector +; .byte 67, ; Illegal system track or sector + .byte 70, EBUSY ; No channel +; .byte 71, ; Directory error +; .byte 72, ; Disk full +; .byte 73, ; DOS version mismatch + +ErrTabSize = (* - ErrTab) diff --git a/libsrc/geos-common/system/randomize.s b/libsrc/geos-common/system/randomize.s new file mode 100644 index 000000000..168f6b767 --- /dev/null +++ b/libsrc/geos-common/system/randomize.s @@ -0,0 +1,16 @@ +; +; Ullrich von Bassewitz, 05.11.2002 +; +; void _randomize (void); +; /* Initialize the random number generator */ +; + + .export __randomize + .import _srand + + .include "geossym.inc" + +__randomize: + lda random ; get random value from internal generator + ldx random+1 + jmp _srand ; and use it as seed