From: uz Date: Wed, 28 Dec 2011 17:11:21 +0000 (+0000) Subject: Renamed the old geos target to geos-cbm. X-Git-Tag: V2.13.3~121 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=e6d74e7205c1fc2fe90e0e69465c62c5587b7155;p=cc65 Renamed the old geos target to geos-cbm. git-svn-id: svn://svn.cc65.org/cc65/trunk@5343 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/libsrc/Makefile b/libsrc/Makefile index 62537807c..9f70e7797 100644 --- a/libsrc/Makefile +++ b/libsrc/Makefile @@ -36,7 +36,7 @@ ALLTARGETS = apple2 \ c64 \ cbm510 \ cbm610 \ - geos \ + geos-cbm \ lynx \ nes \ pet \ @@ -248,36 +248,36 @@ cbm610lib: #----------------------------------------------------------------------------- # GEOS on the C64/128 -.PHONY: geoslib -geoslib: +.PHONY: geos-cbmlib +geos-cbmlib: CC=../$(CC) \ AS=../$(AS) \ AR=../$(AR) \ LD=../$(LD) \ - AFLAGS="-t geos --forget-inc-paths -I../../../asminc" \ - CFLAGS="-Osir -g -T -t geos --forget-inc-paths -I. -I../../../include" \ - $(MAKE) -C geos + AFLAGS="-t geos-cbm --forget-inc-paths -I../../../asminc" \ + CFLAGS="-Osir -g -T -t geos-cbm --forget-inc-paths -I. -I../../../include" \ + $(MAKE) -C geos-cbm for i in em joystick tgi conio common runtime zlib; do \ CC=$(CC) \ AS=$(AS) \ LD=$(LD) \ - AFLAGS="-t geos --forget-inc-paths -I../../asminc" \ - CFLAGS="-Osir -g -T -t geos --forget-inc-paths -I. -I../../include" \ - $(MAKE) SYS=geos -C $$i || exit 1; \ + AFLAGS="-t geos-cbm --forget-inc-paths -I../../asminc" \ + CFLAGS="-Osir -g -T -t geos-cbm --forget-inc-paths -I. -I../../include" \ + $(MAKE) SYS=geos-cbm -C $$i || exit 1; \ for objfile in $$i/*.o; do \ - if [ -f geos/$$objfile ]; then \ - $(AR) a geos.lib geos/$$objfile || exit 1; \ + if [ -f geos-cbm/$$objfile ]; then \ + $(AR) a geos-cbm.lib geos-cbm/$$objfile || exit 1; \ else \ - $(AR) a geos.lib $$objfile || exit 1; \ + $(AR) a geos-cbm.lib $$objfile || exit 1; \ fi; \ done \ done - cp geos/devel/*.emd . - cp geos/devel/*.joy . - cp geos/devel/*.tgi . - if [ -d geos/extra ]; then \ - for i in geos/extra/*.o; do \ - cp $$i geos-`basename $$i` || exit 1; \ + cp geos-cbm/devel/*.emd . + cp geos-cbm/devel/*.joy . + cp geos-cbm/devel/*.tgi . + if [ -d geos-cbm/extra ]; then \ + for i in geos-cbm/extra/*.o; do \ + cp $$i geos-cbm-`basename $$i` || exit 1; \ done \ fi diff --git a/libsrc/geos-cbm/Makefile b/libsrc/geos-cbm/Makefile new file mode 100644 index 000000000..3bf22be0d --- /dev/null +++ b/libsrc/geos-cbm/Makefile @@ -0,0 +1,27 @@ +# +# Makefile for GEOS lib +# for cc65 +# +# Maciej 'YTM/Elysium' Witkowiak + +OBJ_DIRS=common conio devel disk dlgbox file graph menuicon memory mousesprite process runtime system + +all: + @for i in $(OBJ_DIRS); do $(MAKE) -C $$i; done + @for i in $(OBJ_DIRS); do $(AR) a ../geos-cbm.lib $$i/*.o; done + +rebuild: zap all clean + + +.PHONY: clean +clean: + @for i in $(OBJ_DIRS); do \ + cd $$i; \ + $(MAKE) clean; \ + cd ..; \ + done + +.PHONY: zap +zap: clean + @$(RM) ../geos.lib + diff --git a/libsrc/geos-cbm/common/Makefile b/libsrc/geos-cbm/common/Makefile new file mode 100644 index 000000000..ff1ae7648 --- /dev/null +++ b/libsrc/geos-cbm/common/Makefile @@ -0,0 +1,19 @@ +# +# Makefile for GEOS lib +# for cc65 +# + +%.o: %.c + @$(CC) $(CFLAGS) $< + @$(AS) -g -o $@ $(AFLAGS) $(*).s + +%.o: %.s + @$(AS) -o $@ $(AFLAGS) $< + +C_OBJS = _afailed.o abort.o perror.o sleep.o +S_OBJS = copydata.o memcpy.o memmove.o memset.o zerobss.o + +all: $(C_OBJS) $(S_OBJS) + +clean: + @$(RM) core *.~ $(S_OBJS) $(C_OBJS:.o=.s) $(C_OBJS) diff --git a/libsrc/geos-cbm/common/_afailed.c b/libsrc/geos-cbm/common/_afailed.c new file mode 100644 index 000000000..10da48d0e --- /dev/null +++ b/libsrc/geos-cbm/common/_afailed.c @@ -0,0 +1,33 @@ +/* + * _afailed.c + * + * Maciej 'YTM/Elysium' Witkowiak 28.10.2001 + */ + +#include +#include +#include + +void _afailed (char* file, unsigned line) +{ + + ExitTurbo(); + + drawWindow.top = 0; + drawWindow.left = 0; + drawWindow.bot = 15; + drawWindow.right = 150; + dispBufferOn = ST_WR_FORE|ST_WR_BACK; + SetPattern(0); + Rectangle(); + FrameRectangle(0xff); + + PutString(CBOLDON "file: ", 10, 10); + PutString(file, 10, r11); + PutString(CBOLDON " line: ", 10, r11); + PutDecimal(0, line, 10, r11); + + DlgBoxOk(CBOLDON "ASSERTION FAILED", "PROGRAM TERMINATED" CPLAINTEXT); + + exit (2); +} diff --git a/libsrc/geos-cbm/common/_poserror.c b/libsrc/geos-cbm/common/_poserror.c new file mode 100644 index 000000000..0dc6f99d8 --- /dev/null +++ b/libsrc/geos-cbm/common/_poserror.c @@ -0,0 +1,22 @@ +/* + * _poserror.c + * + * Maciej 'YTM/Elysium' Witkowiak, 25.04.2003 + */ + +#include +#include +#include +#include + +void __fastcall__ _poserror (const char* msg) +{ + const char *errmsg = _stroserror(_oserror); + + ExitTurbo(); + if (msg && *msg) { + DlgBoxOk(msg, errmsg); + } else { + DlgBoxOk("", errmsg); + } +} diff --git a/libsrc/geos-cbm/common/abort.c b/libsrc/geos-cbm/common/abort.c new file mode 100644 index 000000000..3db62f03b --- /dev/null +++ b/libsrc/geos-cbm/common/abort.c @@ -0,0 +1,17 @@ +/* + * abort.c + * + * Maciej 'YTM/Elysium' Witkowiak 15.7.2001 + */ + + + +#include +#include + +void abort (void) +{ + ExitTurbo(); + DlgBoxOk(CBOLDON "ABNORMAL PROGRAM", "TERMINATION." CPLAINTEXT); + exit(3); +} diff --git a/libsrc/geos-cbm/common/copydata.s b/libsrc/geos-cbm/common/copydata.s new file mode 100644 index 000000000..2efd7c352 --- /dev/null +++ b/libsrc/geos-cbm/common/copydata.s @@ -0,0 +1,27 @@ +; +; Maciej 'YTM/Elysium' Witkowiak 15.07.2001 +; +; Copy the data segment from the LOAD to the RUN location +; + + .export copydata + .import __DATA_LOAD__, __DATA_RUN__, __DATA_SIZE__ + .include "../inc/geossym.inc" + .include "../inc/jumptab.inc" + +copydata: + lda #<__DATA_SIZE__ ; no need to check if it is == 0 + ldx #>__DATA_SIZE__ + sta r2L + stx r2H + + lda #<__DATA_RUN__ + ldx #>__DATA_RUN__ + sta r1L + stx r1H + + lda #<__DATA_LOAD__ + ldx #>__DATA_LOAD__ + sta r0L + stx r0H + jmp MoveData diff --git a/libsrc/geos-cbm/common/memcpy.s b/libsrc/geos-cbm/common/memcpy.s new file mode 100644 index 000000000..54fb96372 --- /dev/null +++ b/libsrc/geos-cbm/common/memcpy.s @@ -0,0 +1,10 @@ +; +; void* __fastcall__ memcpy (void* dest, const void* src, size_t n); +; +; Maciej 'YTM/Elysium' Witkowiak, 15.07.2001 +; + + .export _memcpy + .import _MoveData + +_memcpy = _MoveData diff --git a/libsrc/geos-cbm/common/memmove.s b/libsrc/geos-cbm/common/memmove.s new file mode 100644 index 000000000..dad3d8453 --- /dev/null +++ b/libsrc/geos-cbm/common/memmove.s @@ -0,0 +1,10 @@ +; +; void* __fastcall__ memmove (void* dest, const void* src, size_t n); +; +; Maciej 'YTM/Elysium' Witkowiak, 15.07.2001 +; + + .export _memmove + .import _MoveData + +_memmove = _MoveData diff --git a/libsrc/geos-cbm/common/memset.s b/libsrc/geos-cbm/common/memset.s new file mode 100644 index 000000000..77d830f6e --- /dev/null +++ b/libsrc/geos-cbm/common/memset.s @@ -0,0 +1,14 @@ +; +; void* memset (void* ptr, int c, size_t n); +; void* _bzero (void* ptr, size_t n); +; void bzero (void* ptr, size_t n); +; +; Maciej 'YTM/Elysium' Witkowiak, 20.08.2003 +; + + .export _memset, _bzero, __bzero + .import _ClearRam, _FillRam + +_bzero = _ClearRam +__bzero = _ClearRam +_memset = _FillRam diff --git a/libsrc/geos-cbm/common/perror.c b/libsrc/geos-cbm/common/perror.c new file mode 100644 index 000000000..6b3ed3c64 --- /dev/null +++ b/libsrc/geos-cbm/common/perror.c @@ -0,0 +1,22 @@ +/* + * perror.c + * + * Maciej 'YTM/Elysium' Witkowiak, 15.07.2001 + */ + +#include +#include +#include +#include + +void __fastcall__ perror(const char* msg) +{ + const char *errmsg = strerror(errno); + + ExitTurbo(); + if (msg && *msg) { + DlgBoxOk(msg, errmsg); + } else { + DlgBoxOk("", errmsg); + } +} diff --git a/libsrc/geos-cbm/common/sleep.c b/libsrc/geos-cbm/common/sleep.c new file mode 100644 index 000000000..b1b3750c1 --- /dev/null +++ b/libsrc/geos-cbm/common/sleep.c @@ -0,0 +1,23 @@ +/* + * sleep.c + * + * Maciej 'YTM/Elysium' Witkowiak, 16.08.2003 + * + */ + +#include + +unsigned __fastcall__ sleep (unsigned wait) +{ + char typ; + + if ( (get_tv()) & TV_NTSC ) { + typ = 60; + } else { + typ = 50; + } + + Sleep(wait*typ); + + return 0; +} diff --git a/libsrc/geos-cbm/common/zerobss.s b/libsrc/geos-cbm/common/zerobss.s new file mode 100644 index 000000000..5613a75ed --- /dev/null +++ b/libsrc/geos-cbm/common/zerobss.s @@ -0,0 +1,25 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; 23.12.2002 +; +; Zero the bss segment. +; + + .export zerobss + .import __BSS_RUN__, __BSS_SIZE__ + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +.code + +zerobss: + lda #<__BSS_SIZE__ + ldx #>__BSS_SIZE__ + sta r0L + stx r0H + lda #<__BSS_RUN__ + ldx #>__BSS_RUN__ + sta r1L + stx r1H + jmp ClearRam diff --git a/libsrc/geos-cbm/conio/Makefile b/libsrc/geos-cbm/conio/Makefile new file mode 100644 index 000000000..67f9e7528 --- /dev/null +++ b/libsrc/geos-cbm/conio/Makefile @@ -0,0 +1,17 @@ +# +# Makefile for GEOS lib +# for cc65 +# + +%.o: %.s + @$(AS) -o $@ $(AFLAGS) $< + + +S_OBJS = cclear.o chline.o cvline.o cgetc.o clrscr.o color.o\ + cputc.o cpputs.o cursor.o gotoxy.o kbhit.o revers.o\ + where.o _scrsize.o + +all: $(S_OBJS) + +clean: + @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos-cbm/conio/_scrsize.s b/libsrc/geos-cbm/conio/_scrsize.s new file mode 100644 index 000000000..b469d2a9d --- /dev/null +++ b/libsrc/geos-cbm/conio/_scrsize.s @@ -0,0 +1,44 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; Screen size variables +; +; 6.3.2001, 17.4.2003 + + + .include "../inc/geossym.inc" + + .export xsize, ysize + .export screensize + .importzp cursor_r, cursor_c + .import _cursor + .constructor initscrsize + +.segment "INIT" + +initscrsize: + lda graphMode + bpl L1 + lda #80 ; 80 columns (more or less) + .byte $2c +L1: lda #40 ; 40 columns (more or less) + sta xsize + lda #24 ; something like that for Y size + sta ysize + ldx #1 + stx cursor_r + dex + stx cursor_c + txa + jmp _cursor ; home and update cursor + +screensize: + ldx xsize + ldy ysize + rts + +.bss + +xsize: .res 1 +ysize: .res 1 diff --git a/libsrc/geos-cbm/conio/cclear.s b/libsrc/geos-cbm/conio/cclear.s new file mode 100644 index 000000000..a40404eb7 --- /dev/null +++ b/libsrc/geos-cbm/conio/cclear.s @@ -0,0 +1,51 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 06.03.2002 + +; void cclearxy (unsigned char x, unsigned char y, unsigned char length); +; void cclear (unsigned char length); + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + + .export _cclearxy, _cclear + .import popa, _gotoxy, fixcursor + .importzp cursor_x, cursor_y, cursor_c + +_cclearxy: + pha ; Save the length + jsr popa ; Get y + jsr _gotoxy ; Call this one, will pop params + pla ; Restore the length + +_cclear: + cmp #0 ; Is the length zero? + beq L9 ; Jump if done + tax + lda cursor_x ; left start + sta r3L + lda cursor_x+1 + sta r3L+1 + lda cursor_y ; level + sta r2L + clc + adc #8 + sta r2H + txa ; right end + clc + adc cursor_c + sta cursor_c + sta r4L + ldx #r4 + ldy #3 + jsr DShiftLeft + lda curPattern ; store current pattern + pha + lda #0 ; set pattern to clear + jsr SetPattern + jsr Rectangle + pla + jsr SetPattern ; restore pattern + jsr fixcursor +L9: rts diff --git a/libsrc/geos-cbm/conio/cgetc.s b/libsrc/geos-cbm/conio/cgetc.s new file mode 100644 index 000000000..05de86826 --- /dev/null +++ b/libsrc/geos-cbm/conio/cgetc.s @@ -0,0 +1,40 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 27.10.2001 +; 06.03.2002 + +; unsigned char cgetc (void); + + .export _cgetc + .import update_cursor + .importzp cursor_x, cursor_y, cursor_flag + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_cgetc: +; show cursor if needed + lda cursor_flag + beq L0 + + jsr update_cursor + lda cursor_x + ldx cursor_x+1 + sta stringX + stx stringX+1 + lda cursor_y + sec + sbc curHeight + sta stringY + jsr PromptOn + +L0: jsr GetNextChar + tax + beq L0 + pha + jsr PromptOff + pla + ldx #0 + rts diff --git a/libsrc/geos-cbm/conio/chline.s b/libsrc/geos-cbm/conio/chline.s new file mode 100644 index 000000000..b02fc115d --- /dev/null +++ b/libsrc/geos-cbm/conio/chline.s @@ -0,0 +1,45 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 06.03.2002 + +; void chlinexy (unsigned char x, unsigned char y, unsigned char length); +; void chline (unsigned char length); + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + + .export _chlinexy, _chline + .import popa, _gotoxy, fixcursor + .importzp cursor_x, cursor_y, cursor_c + +_chlinexy: + pha ; Save the length + jsr popa ; Get y + jsr _gotoxy ; Call this one, will pop params + pla ; Restore the length + +_chline: + cmp #0 ; Is the length zero? + beq L9 ; Jump if done + tax + lda cursor_x ; left start + sta r3L + lda cursor_x+1 + sta r3L+1 + lda cursor_y ; level + sec + sbc #4 ; in the middle of a cell + sta r11L + txa ; right end + clc + adc cursor_c + sta cursor_c + sta r4L + ldx #r4 + ldy #3 + jsr DShiftLeft + lda #%11111111 ; pattern + jsr HorizontalLine + jsr fixcursor +L9: rts diff --git a/libsrc/geos-cbm/conio/clrscr.s b/libsrc/geos-cbm/conio/clrscr.s new file mode 100644 index 000000000..b1bdc17ad --- /dev/null +++ b/libsrc/geos-cbm/conio/clrscr.s @@ -0,0 +1,46 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 27.10.2001, 23.12.2002 + +; void clrscr (void); + + .export _clrscr + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + .include "../inc/const.inc" + + .import fixcursor + .importzp cursor_c, cursor_r + +_clrscr: + lda #ST_WR_FORE | ST_WR_BACK + sta dispBufferOn + lda curPattern ; save current pattern + pha + lda #0 ; set pattern to clear + jsr SetPattern + ldx #0 + stx r3L + stx r3H + stx r2L + stx cursor_c + inx + stx cursor_r + jsr fixcursor ; home cursor + lda #199 + sta r2H + lda graphMode + bpl L40 + lda #>639 ; 80 columns + ldx #<639 + bne L99 +L40: lda #>319 ; 40 columns + ldx #<319 +L99: sta r4H + stx r4L + jsr Rectangle + pla + jmp SetPattern ; restore pattern diff --git a/libsrc/geos-cbm/conio/color.s b/libsrc/geos-cbm/conio/color.s new file mode 100644 index 000000000..e5498041e --- /dev/null +++ b/libsrc/geos-cbm/conio/color.s @@ -0,0 +1,20 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 27.10.2001 + +; unsigned char __fastcall__ textcolor (unsigned char color); +; unsigned char __fastcall__ bgcolor (unsigned char color); +; unsigned char __fastcall__ bordercolor (unsigned char color); +; + + + .export _textcolor, _bgcolor, _bordercolor + +; for GEOS 2.0 there is no color support, perhaps Wheels has it + +_textcolor: +_bgcolor: +_bordercolor: + rts diff --git a/libsrc/geos-cbm/conio/cpputs.s b/libsrc/geos-cbm/conio/cpputs.s new file mode 100644 index 000000000..98781a4fb --- /dev/null +++ b/libsrc/geos-cbm/conio/cpputs.s @@ -0,0 +1,45 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 27.10.2001 +; 05.03.2002 + +; void cpputsxy (unsigned char x, unsigned char y, char* s); +; void cpputs (char* s); + +; same as cputsxy and cputs but faster and use proportional font spacing +; does not update cursor position + + .export _cpputsxy, _cpputs + + .import _gotoxy + .import popa + .importzp cursor_x, cursor_y + + .include "../inc/const.inc" + .include "../inc/geossym.inc" + .include "../inc/jumptab.inc" + +_cpputsxy: + sta r0L ; Save s for later + stx r0H + jsr popa ; Get Y + jsr _gotoxy ; Set cursor, pop x + jmp L0 ; Same as cputs... + +_cpputs: + sta r0L ; Save s + stx r0H +L0: ldy #0 + lda (r0),y + bne L1 ; Jump if there's something + rts + +L1: lda cursor_x + sta r11L + lda cursor_x+1 + sta r11H + lda cursor_y + sta r1H + jmp PutString diff --git a/libsrc/geos-cbm/conio/cputc.s b/libsrc/geos-cbm/conio/cputc.s new file mode 100644 index 000000000..c017e17ab --- /dev/null +++ b/libsrc/geos-cbm/conio/cputc.s @@ -0,0 +1,102 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 27.10.2001 +; 06.03.2002 +; 25.07.2005 + +; void cputcxy (unsigned char x, unsigned char y, char c); +; void cputc (char c); + +; TODO: +; TAB (should be implemented) +; other special characters directly from keyboard are unsafe, though some might be +; implemented: +; HOME, UPLINE, ULINEON, ULINEOFF, REV_ON, REV_OFF, BOLDON, ITALICON, OUTLINEON, PLAINTEXT +; and cursor movement, maybe stuff like INSERT too +; +; these must be ignored: +; ESC_GRAPHICS, ESC_RULER, GOTOX, GOTOY, GOTOXY, NEWCARDSET, all 1..8 +; +; note that there are conflicts between control characters and keyboard: +; HOME = KEY_ENTER, KEY_HOME = REV_ON, +; UPLINE = ?, KEY_UPARROW = GOTOY, ... + + .export _cputcxy, _cputc, update_cursor + + .import _gotoxy, fixcursor + .import popa + .import xsize,ysize + .importzp cursor_x, cursor_y, cursor_c, cursor_r + + .include "../inc/const.inc" + .include "../inc/geossym.inc" + .include "../inc/jumptab.inc" + +_cputcxy: + pha ; Save C + jsr popa ; Get Y + jsr _gotoxy ; Set cursor, drop x + pla ; Restore C + +; Plot a character - also used as internal function + +_cputc: + tax ; save character +; some characters 0-31 are not safe for PutChar + cmp #$20 + bcs L1 + cmp #CR + beq do_cr + cmp #LF + beq do_lf + cmp #KEY_DELETE + bne L0 + ldx #BACKSPACE + sec + bcs L2 +L0: rts + +L1: clc +L2: php + lda cursor_x + sta r11L + lda cursor_x+1 + sta r11H + lda cursor_y + sta r1H + txa + jsr PutChar + plp + bcs update_cursor + + inc cursor_c + lda cursor_c + cmp xsize ; hit right margin? + bne update_cursor + lda #0 ; yes - do cr+lf + sta cursor_c +do_lf: inc cursor_r + lda cursor_r + cmp ysize ; hit bottom margin? + bne update_cursor + dec cursor_r ; yes - stay in the last line + +update_cursor: + jsr fixcursor + lda cursor_x + sta r4L + lda cursor_x+1 + sta r4H + lda cursor_y + sec + sbc curHeight + sta r5L + lda #1 ; update cursor prompt position + sta r3L + jmp PosSprite + +do_cr: lda #0 + sta cursor_c + beq update_cursor diff --git a/libsrc/geos-cbm/conio/cursor.s b/libsrc/geos-cbm/conio/cursor.s new file mode 100644 index 000000000..5dab5c1e3 --- /dev/null +++ b/libsrc/geos-cbm/conio/cursor.s @@ -0,0 +1,28 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 27.10.2001, 23.12.2002 + +; unsigned char cursor (unsigned char onoff); + + .export _cursor + .import update_cursor + .importzp cursor_flag + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_cursor: + + tay ; onoff into Y + ldx #0 ; High byte of result + lda cursor_flag ; Get old value + pha + sty cursor_flag ; Set new value + tya + beq L1 + lda curHeight ; prepare cursor + jsr InitTextPrompt + jsr update_cursor ; place it on screen +L1: pla + rts diff --git a/libsrc/geos-cbm/conio/cvline.s b/libsrc/geos-cbm/conio/cvline.s new file mode 100644 index 000000000..57c1c6617 --- /dev/null +++ b/libsrc/geos-cbm/conio/cvline.s @@ -0,0 +1,46 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 06.03.2002 + +; void cvlinexy (unsigned char x, unsigned char y, unsigned char length); +; void cvline (unsigned char length); + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + + .export _cvlinexy, _cvline + .import popa, _gotoxy, fixcursor + .importzp cursor_x, cursor_y, cursor_r + +_cvlinexy: + pha ; Save the length + jsr popa ; Get y + jsr _gotoxy ; Call this one, will pop params + pla ; Restore the length + +_cvline: + cmp #0 ; Is the length zero? + beq L9 ; Jump if done + tax + lda cursor_x ; x position + clc + adc #4 ; in the middle of cell + sta r4L + lda cursor_x+1 + adc #0 + sta r4L+1 + lda cursor_y ; top start + sta r3L + txa ; bottom end + clc + adc cursor_r + sta cursor_r + sta r3H + asl r3H + asl r3H + asl r3H + lda #%11111111 ; pattern + jsr VerticalLine + jsr fixcursor +L9: rts diff --git a/libsrc/geos-cbm/conio/gotoxy.s b/libsrc/geos-cbm/conio/gotoxy.s new file mode 100644 index 000000000..1a0261168 --- /dev/null +++ b/libsrc/geos-cbm/conio/gotoxy.s @@ -0,0 +1,44 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 27.10.2001 +; 06.03.2002 + +; void gotox (unsigned char x); +; void gotoy (unsigned char y); +; void gotoxy (unsigned char x, unsigned char y); + + .export _gotox, _gotoy, _gotoxy, fixcursor + .import popa + .importzp cursor_x, cursor_y, cursor_c, cursor_r + + .include "../inc/jumptab.inc" + +_gotox: sta cursor_c + jmp fixcursor + +_gotoy: sta cursor_r + inc cursor_r + jmp fixcursor + +_gotoxy: sta cursor_r + inc cursor_r + jsr popa + sta cursor_c + +; convert 8x8 x/y coordinates to GEOS hires +fixcursor: + lda cursor_c + sta cursor_x + lda #0 + sta cursor_x+1 + lda cursor_r + sta cursor_y + ldx #cursor_x + ldy #3 + jsr DShiftLeft + asl cursor_y + asl cursor_y + asl cursor_y + rts diff --git a/libsrc/geos-cbm/conio/kbhit.s b/libsrc/geos-cbm/conio/kbhit.s new file mode 100644 index 000000000..6756f49c9 --- /dev/null +++ b/libsrc/geos-cbm/conio/kbhit.s @@ -0,0 +1,22 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 27.10.2001 + +; unsigned char kbhit (void); + + .export _kbhit + + .include "../inc/geossym.inc" + +.proc _kbhit + + ldx #0 ; High byte of result + lda pressFlag + rol ; Bit 7 is new key flag + txa ; A = 0 + rol + rts + +.endproc diff --git a/libsrc/geos-cbm/conio/revers.s b/libsrc/geos-cbm/conio/revers.s new file mode 100644 index 000000000..cd5ea66bb --- /dev/null +++ b/libsrc/geos-cbm/conio/revers.s @@ -0,0 +1,36 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 27.10.2001 + +; unsigned char revers (unsigned char onoff); + + .export _revers + .importzp tmp1 + + .include "../inc/geossym.inc" + .include "../inc/const.inc" + +_revers: + tax + bne L0 ; turn on + lda #0 + .byte $2c +L0: lda #SET_REVERSE + sta tmp1 + + lda currentMode + tax + and #SET_REVERSE + tay ; store old value + txa + and #%11011111 ; mask out + ora tmp1 ; set new value + sta currentMode + + ldx #0 + tya + beq L1 + lda #1 +L1: rts diff --git a/libsrc/geos-cbm/conio/where.s b/libsrc/geos-cbm/conio/where.s new file mode 100644 index 000000000..5690fa6d2 --- /dev/null +++ b/libsrc/geos-cbm/conio/where.s @@ -0,0 +1,21 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 27.10.2001 +; 06.03.2002 +; 02.01.2003 + +; unsigned char wherex (void); +; unsigned char wherey (void); + + .export _wherex, _wherey + .importzp cursor_c, cursor_r + +_wherex: lda cursor_c + ldx #0 + rts + +_wherey: lda cursor_r + ldx #0 + rts diff --git a/libsrc/geos-cbm/devel/Makefile b/libsrc/geos-cbm/devel/Makefile new file mode 100644 index 000000000..b2d9bb197 --- /dev/null +++ b/libsrc/geos-cbm/devel/Makefile @@ -0,0 +1,57 @@ +# -*- make -*- +# +# Makefile for GEOS lib +# for cc65 +# + +%.o: %.s + @$(AS) -g -o $@ $(AFLAGS) $< + +%.emd: %.o ../../runtime/zeropage.o + @$(LD) -o $@ -t module $^ + +%.joy: %.o ../../runtime/zeropage.o + @$(LD) -o $@ -t module $^ + +%.mou: %.o ../../runtime/zeropage.o + @$(LD) -o $@ -t module $^ + +%.ser: %.o ../../runtime/zeropage.o + @$(LD) -o $@ -t module $^ + +%.tgi: %.o ../../runtime/zeropage.o + @$(LD) -o $@ -t module $^ + +S_OBJS = crt0.o \ + extzp.o \ + 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 + +#-------------------------------------------------------------------------- +# Drivers + +EMDS = geos-vdc.emd + +JOYS = geos-stdjoy.joy + +MOUS = #geos-stdmou.mou + +SERS = + +TGIS = geos-tgi.tgi + +all: $(S_OBJS) $(EMDS) $(JOYS) $(MOUS) $(SERS) $(TGIS) + +../../runtime/zeropage.o: + $(MAKE) -C $(dir $@) $(notdir $@) + +clean: + @$(RM) *.~ core $(S_OBJS) $(EMDS:.emd=.o) $(JOYS:.joy=.o) $(MOUS:.mou=.o) $(SERS:.ser=.o) $(TGIS:.tgi=.o) diff --git a/libsrc/geos-cbm/devel/crt0.s b/libsrc/geos-cbm/devel/crt0.s new file mode 100644 index 000000000..1e138e8e4 --- /dev/null +++ b/libsrc/geos-cbm/devel/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 "../inc/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 new file mode 100644 index 000000000..beb4e271c --- /dev/null +++ b/libsrc/geos-cbm/devel/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-cbm/devel/fio_module.s b/libsrc/geos-cbm/devel/fio_module.s new file mode 100644 index 000000000..0ced16c11 --- /dev/null +++ b/libsrc/geos-cbm/devel/fio_module.s @@ -0,0 +1,191 @@ +; +; Low level file I/O routines, ONLY for module loading OR sth similar +; +; Maciej 'YTM/Elysium' Witkowiak +; 25.12.2002 +; +; only ONE opened file at a time, only O_RDONLY flag + +; int open (const char* name, int flags, ...); /* May take a mode argument */ +; int __fastcall__ close (int fd); +; int __fastcall__ read (int fd, void* buf, unsigned count); + +FILEDES = 3 ; first free to use file descriptor + + .include "../inc/geossym.inc" + .include "../inc/const.inc" + .include "errno.inc" + .include "fcntl.inc" + + .importzp ptr1, ptr2, ptr3, tmp1 + .import addysp, popax + .import __oserror + .import _FindFile, _ReadByte + + .export _open, _close, _read + + +;-------------------------------------------------------------------------- +; _open + +_open: + + cpy #4 ; correct # of arguments (bytes)? + beq @parmok ; parameter count ok + tya ; parm count < 4 shouldn't be needed to be... + sec ; ...checked (it generates a c compiler warning) + sbc #4 + tay + jsr addysp ; fix stack, throw away unused parameters + +; Parameters ok. Pop the flags and save them into tmp3 + +@parmok: + jsr popax ; Get flags + sta tmp1 + jsr popax ; Get name + sta ptr1 + stx ptr1+1 + + lda filedesc ; is there a file already open? + bne @alreadyopen + + lda tmp1 ; check open mode + and #(O_RDWR | O_CREAT) + cmp #O_RDONLY ; only O_RDONLY is valid + bne @badmode + + lda ptr1 + ldx ptr1+1 + jsr _FindFile ; try to find the file + tax + bne @oserror + + lda dirEntryBuf + OFF_DE_TR_SC ; tr&se for ReadByte (r1) + sta f_track + lda dirEntryBuf + OFF_DE_TR_SC + 1 + sta f_sector + lda #diskBlkBuf + sta f_buffer+1 + ldx #0 ; offset for ReadByte (r5) + stx f_offset + stx f_offset+1 + lda #0 ; clear errors + sta __oserror + jsr __seterrno + lda #FILEDES ; return fd + sta filedesc + rts +@badmode: + lda #EINVAL ; invalid parameters - invalid open mode + .byte $2c ; skip +@alreadyopen: + lda #EMFILE ; too many opened files (there can be only one) + jmp __directerrno ; set errno, clear oserror, return -1 +@oserror: + jmp __mappederrno ; set platform error code, return -1 + +_close: + lda #0 + sta __oserror + jsr __seterrno ; clear errors + lda #0 ; clear fd + sta filedesc + tax + rts + +_read: + ; a/x - number of bytes + ; popax - buffer ptr + ; popax - fd, must be == to the above one + ; return -1+__oserror or number of bytes read + + eor #$ff + sta ptr1 + txa + eor #$ff + sta ptr1+1 ; -(# of bytes to read)-1 + jsr popax + sta ptr2 + stx ptr2+1 ; buffer ptr + jsr popax + cmp #FILEDES ; lo-byte == FILEDES + bne @filenotopen + txa ; hi-byte == 0 + beq @fileok ; fd must be == FILEDES + +@filenotopen: + lda #EBADF + jmp __directerrno ; Sets _errno, clears _oserror, returns -1 + +@fileok: + lda #0 + sta ptr3 + sta ptr3+1 ; put 0 into ptr3 (number of bytes read) + sta __oserror ; clear error flags + jsr __seterrno + + lda f_track ; restore stuff for ReadByte + ldx f_sector + sta r1L + stx r1H + lda f_buffer + ldx f_buffer+1 + sta r4L + stx r4H + lda f_offset + ldx f_offset+1 + sta r5L + stx r5H + + clc + bcc @L3 ; branch always + +@L0: jsr _ReadByte + ldy #0 ; store the byte + sta (ptr2),y + inc ptr2 ; increment target address + bne @L1 + inc ptr2+1 + +@L1: inc ptr3 ; increment byte count + bne @L2 + inc ptr3+1 + +@L2: lda __oserror ; was there error ? + beq @L3 + cmp #BFR_OVERFLOW ; EOF? + beq @done ; yes, we're done + jmp __mappederrno ; no, we're screwed + +@L3: inc ptr1 ; decrement the count + bne @L0 + inc ptr1+1 + bne @L0 + +@done: + lda r1L ; preserve data for ReadByte + ldx r1H + sta f_track + stx f_sector + lda r4L + ldx r4H + sta f_buffer + stx f_buffer+1 + lda r5L + ldx r5H + sta f_offset + stx f_offset+1 + + lda ptr3 ; return byte count + ldx ptr3+1 + rts + +.bss +filedesc: .res 1 ; file open flag - 0 (no file opened) or 1 +f_track: .res 1 ; values preserved for ReadByte +f_sector: .res 1 +f_offset: .res 2 +f_buffer: .res 2 diff --git a/libsrc/geos-cbm/devel/geos-stdjoy.s b/libsrc/geos-cbm/devel/geos-stdjoy.s new file mode 100644 index 000000000..8b654bc9c --- /dev/null +++ b/libsrc/geos-cbm/devel/geos-stdjoy.s @@ -0,0 +1,126 @@ +; +; Standard joystick driver for the C64. May be used multiple times when linked +; to the statically application. +; +; Ullrich von Bassewitz, 2002-12-20 +; + + .include "zeropage.inc" + + .include "joy-kernel.inc" + .include "joy-error.inc" + .include "../inc/geossym.inc" + + .macpack generic + + +; ------------------------------------------------------------------------ +; Header. Includes jump table + +.segment "JUMPTABLE" + +; Driver signature + + .byte $6A, $6F, $79 ; "joy" + .byte JOY_API_VERSION ; Driver API version number + +; Button state masks (8 values) + + .byte $01 ; JOY_UP + .byte $02 ; JOY_DOWN + .byte $04 ; JOY_LEFT + .byte $08 ; JOY_RIGHT + .byte $10 ; JOY_FIRE + .byte $00 ; Future expansion + .byte $00 ; Future expansion + .byte $00 ; Future expansion + +; Jump table. + + .word INSTALL + .word UNINSTALL + .word COUNT + .word READ + +; ------------------------------------------------------------------------ +; Constants + +JOY_COUNT = 2 ; Number of joysticks we support + + +; ------------------------------------------------------------------------ +; Data. + + +.code + +; ------------------------------------------------------------------------ +; INSTALL routine. Is called after the driver is loaded into memory. If +; possible, check if the hardware is present and determine the amount of +; memory available. +; Must return an JOY_ERR_xx code in a/x. +; + +INSTALL: + lda #JOY_ERR_OK +; rts ; Run into UNINSTALL instead + +; ------------------------------------------------------------------------ +; UNINSTALL routine. Is called before the driver is removed from memory. +; Can do cleanup or whatever. Must not return anything. +; + +UNINSTALL: + rts + + +; ------------------------------------------------------------------------ +; COUNT: Return the total number of available joysticks in a/x. +; + +COUNT: + lda #JOY_COUNT + rts + +; ------------------------------------------------------------------------ +; READ: Read a particular joystick passed in A. +; + +READ: + tax + php + sei ; disable IRQ + lda $01 + pha + lda #$35 + sta $01 ; enable I/O + + txa ; Joystick number into X + bne joy2 + +; Read joystick 1 + +joy1: + lda #$7F + sta cia1base + lda cia1base+1 +back: tay + pla + sta $01 + plp + tya + and #$1F + eor #$1F + rts + +; Read joystick 2 + +joy2: ldx #0 + lda #$E0 + ldy #$FF + sta cia1base+2 + lda cia1base+1 + sty cia1base+2 + jmp back diff --git a/libsrc/geos-cbm/devel/geos-tgi.s b/libsrc/geos-cbm/devel/geos-tgi.s new file mode 100644 index 000000000..8cbb332d3 --- /dev/null +++ b/libsrc/geos-cbm/devel/geos-tgi.s @@ -0,0 +1,673 @@ +; +; Graphics driver for the 320x200x2 and 640x200x2 modes on GEOS 64/128 +; 2010-08-17, Maciej 'YTM/Elysium' Witkowiak +; 2010-08-18, Greg King + + .include "zeropage.inc" + + .include "tgi-kernel.inc" + .include "tgi-error.inc" + + .include "../inc/const.inc" + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + .include "../inc/geossym2.inc" + + .macpack generic + +; ------------------------------------------------------------------------ +; Constants + +VDC_ADDR_REG := $D600 ; VDC address +VDC_DATA_REG := $D601 ; VDC data + +VDC_DSP_HI = 12 ; registers used +VDC_DSP_LO = 13 +VDC_DATA_HI = 18 +VDC_DATA_LO = 19 +VDC_VSCROLL = 24 +VDC_HSCROLL = 25 +VDC_COLORS = 26 +VDC_CSET = 28 +VDC_COUNT = 30 +VDC_DATA = 31 + +; ------------------------------------------------------------------------ +; Header. Includes jump table and constants. + +.segment "JUMPTABLE" + +; First part of the header is a structure that has a magic signature, +; and defines the capabilities of the driver. + + .byte $74, $67, $69 ; "tgi" + .byte TGI_API_VERSION ; TGI API version number +xres: .word 320 ; X resolution +yres: .word 200 ; Y resolution + .byte 2 ; Number of drawing colors +pages: .byte 1 ; Number of screens available + .byte 8 ; System font X size + .byte 8 ; System font Y size +aspect: .word $00D4 ; Aspect ratio (based on 4/3 display) + .byte 0 ; TGI driver flags + +; Next comes the jump table. With the exception of IRQ, all entries must be +; valid, and may point to an RTS for test versions (function not implemented). + + .addr INSTALL + .addr UNINSTALL + .addr INIT + .addr DONE + .addr GETERROR + .addr CONTROL + .addr CLEAR + .addr SETVIEWPAGE + .addr SETDRAWPAGE + .addr SETCOLOR + .addr SETPALETTE + .addr GETPALETTE + .addr GETDEFPALETTE + .addr SETPIXEL + .addr GETPIXEL + .addr LINE + .addr BAR + .addr TEXTSTYLE + .addr OUTTEXT + .addr 0 ; IRQ entry is unused + +; ------------------------------------------------------------------------ +; Data. + +; Variables mapped to the zero-page segment variables. Some of these are +; used for passing parameters to the driver. + +X1 = ptr1 +Y1 = ptr2 +X2 = ptr3 +Y2 = ptr4 + +; Absolute variables used in the code + +.bss + +SCRBASE: .res 1 ; High byte of screen base (64k VDC only) + +ERROR: .res 1 ; Error code +PALETTE: .res 2 ; The current palette + +BITMASK: .res 1 ; $00 = clear, $01 = set pixels + +OLDCOLOR: .res 1 ; colors before entering gfx mode + +; Text output stuff +TEXTMAGX: .res 1 +TEXTMAGY: .res 1 +TEXTDIR: .res 1 + +; Constants and tables + +.rodata + +DEFPALETTE: .byte $00, $0f ; White on black +PALETTESIZE = * - DEFPALETTE + +; color translation table (indexed by VIC color) +COLTRANS: .byte $00, $0f, $08, $06, $0a, $04, $02, $0c + .byte $0d, $0b, $09, $01, $0e, $05, $03, $07 + ; colors BROWN and GRAY3 are wrong + +.code + +; ------------------------------------------------------------------------ +; INSTALL routine. Is called after the driver is loaded into memory. May +; initialize anything that has to be done just once. Is probably empty +; most of the time. +; +; Must set an error code: NO +; + +INSTALL: + lda version ; if GEOS 1.0... + and #$f0 + cmp #$10 + beq @L40 + lda c128Flag ; at least GEOS 2.0, but we're on C128? + bpl @L40 + lda graphMode ; GEOS 2.0, C128, but is 80 column screen enabled? + bmi @L80 +@L40: rts ; leave default values for 40 column screen + + ; check for VDC version and update register $19 value + +@L80: + ; double the x resolution and halve the aspect ratio + + asl xres + rol xres+1 + + lsr aspect+1 + ror aspect + + ; update number of available screens + + ldx #VDC_CSET ; determine size of RAM... + jsr VDCReadReg + sta tmp1 + ora #%00010000 + jsr VDCWriteReg ; turn on 64k + + jsr settestadr1 ; save original value of test byte + jsr VDCReadByte + sta tmp2 + + lda #$55 ; write $55 here + ldy #ptr1 + jsr test64k ; read it here and there + lda #$aa ; write $aa here + ldy #ptr2 + jsr test64k ; read it here and there + + jsr settestadr1 + lda tmp2 + jsr VDCWriteByte ; restore original value of test byte + + lda ptr1 ; do bytes match? + cmp ptr1+1 + bne @have64k + lda ptr2 + cmp ptr2+1 + bne @have64k + + ldx #VDC_CSET + lda tmp1 + jsr VDCWriteReg ; restore 16/64k flag + jmp @endok ; and leave default values for 16k + +@have64k: + lda #4 + sta pages +@endok: + lda #0 + sta SCRBASE ; draw page 0 as default + rts + +test64k: + sta tmp1 + sty ptr3 + lda #0 + sta ptr3+1 + jsr settestadr1 + lda tmp1 + jsr VDCWriteByte ; write $55 + jsr settestadr1 + jsr VDCReadByte ; read here + pha + jsr settestadr2 + jsr VDCReadByte ; and there + ldy #1 + sta (ptr3),y + pla + dey + sta (ptr3),y + rts + +settestadr1: + ldy #$02 ; test page 2 (here) + .byte $2c +settestadr2: + ldy #$42 ; or page 64+2 (there) + lda #0 + jmp VDCSetSourceAddr + +; ------------------------------------------------------------------------ +; UNINSTALL routine. Is called before the driver is removed from memory. May +; clean up anything done by INSTALL but is probably empty most of the time. +; +; Must set an error code: NO +; + +UNINSTALL: + rts + + +; ------------------------------------------------------------------------ +; INIT: Changes an already installed device from text mode to graphics +; mode. +; Note that INIT/DONE may be called multiple times while the driver +; is loaded, while INSTALL is only called once, so any code that is needed +; to initializes variables and so on must go here. Setting palette and +; clearing the screen is not needed because this is called by the graphics +; kernel later. +; The graphics kernel will never call INIT when a graphics mode is already +; active, so there is no need to protect against that. +; +; Must set an error code: YES +; + +INIT: + ldx #$01 + stx BITMASK ; solid black as pattern + lda #1 + jsr SetPattern + lda #ST_WR_FORE ; write only on foreground + sta dispBufferOn + + lda graphMode + bmi @L80 + +; Remember current color value (40 columns) + lda screencolors + sta OLDCOLOR + jmp @L99 + +; Remember current color value (80 columns) +@L80: lda scr80colors + sta OLDCOLOR +@L99: lda #0 + jsr SETVIEWPAGE ; switch into viewpage 0 + +; Done, reset the error code + + lda #TGI_ERR_OK + sta ERROR + rts + +; ------------------------------------------------------------------------ +; DONE: Will be called to switch the graphics device back into text mode. +; The graphics kernel will never call DONE when no graphics mode is active, +; so there is no need to protect against that. +; +; Must set an error code: NO +; + +DONE: + lda #0 + jsr SETVIEWPAGE ; switch into viewpage 0 + + lda graphMode + bmi @L80 + + lda OLDCOLOR + sta screencolors ; restore color for 40 columns + ldx #0 +@L1: sta COLOR_MATRIX,x + sta COLOR_MATRIX+$0100,x + sta COLOR_MATRIX+$0200,x + sta COLOR_MATRIX+1000-256,x + inx + bne @L1 + rts + +@L80: lda OLDCOLOR ; restore color for 80 columns + ldx #VDC_COLORS + jmp VDCWriteReg + +; ------------------------------------------------------------------------ +; GETERROR: Return the error code in A and clear it. + +GETERROR: + ldx #TGI_ERR_OK + lda ERROR + stx ERROR + rts + +; ------------------------------------------------------------------------ +; CONTROL: Platform/driver specific entry point. +; +; Must set an error code: YES +; + +CONTROL: + lda #TGI_ERR_INV_FUNC + sta ERROR + rts + +; ------------------------------------------------------------------------ +; CLEAR: Clears the screen. +; +; Must set an error code: NO +; + +CLEAR: + lda curPattern + pha + lda #0 + jsr SetPattern + ldx #0 + stx r3L + stx r3H + stx r2L + lda #199 + sta r2H + lda graphMode + bpl @L40 + lda #>639 ; 80 columns + ldx #<639 + bne @L99 +@L40: lda #>319 ; 40 columns + ldx #<319 +@L99: sta r4H + stx r4L + jsr Rectangle + pla + sta curPattern + rts + +; ------------------------------------------------------------------------ +; SETVIEWPAGE: Set the visible page. Called with the new page in A (0..n). +; The page number is already checked to be valid by the graphics kernel. +; +; Must set an error code: NO (will only be called if page ok) +; + +SETVIEWPAGE: + ldx graphMode + bmi @L80 + rts +@L80: clc + ror + ror + ror + ldx #VDC_DSP_HI + jmp VDCWriteReg + +; ------------------------------------------------------------------------ +; SETDRAWPAGE: Set the drawable page. Called with the new page in A (0..n). +; The page number is already checked to be valid by the graphics kernel. +; +; Must set an error code: NO (will only be called if page ok) +; + +SETDRAWPAGE: + ldx graphMode + bmi @L80 + rts +@L80: clc + ror + ror + ror + sta SCRBASE + rts + +; ------------------------------------------------------------------------ +; SETCOLOR: Set the drawing color (in A). The new color is already checked +; to be in a valid range (0..maxcolor-1). +; +; Must set an error code: NO (will only be called if color ok) +; + +SETCOLOR: + tax + beq @L1 + lda #1 +@L1: sta BITMASK + jmp SetPattern ; need to have either 0 or 1 + +; ------------------------------------------------------------------------ +; SETPALETTE: Set the palette (not available with all drivers/hardware). +; A pointer to the palette is passed in ptr1. Must set an error if palettes +; are not supported +; +; Must set an error code: YES +; + +SETPALETTE: + jsr GETERROR ; clear error (if any) + + ldy #PALETTESIZE - 1 +@L1: lda (ptr1),y ; Copy the palette + and #$0F ; Make a valid color + sta PALETTE,y + dey + bpl @L1 + +; Put colors from palette into screen + + lda graphMode + bmi @L80 + + lda PALETTE+1 ; foreground + asl a + asl a + asl a + asl a + ora PALETTE ; background + ldx #0 +@L2: sta COLOR_MATRIX,x + sta COLOR_MATRIX+$0100,x + sta COLOR_MATRIX+$0200,x + sta COLOR_MATRIX+1000-256,x + inx + bne @L2 + rts + +@L80: ldy PALETTE+1 ; Foreground color + lda COLTRANS,y + asl a + asl a + asl a + asl a + ldy PALETTE ; Background color + ora COLTRANS,y + + ldx #VDC_COLORS + jmp VDCWriteReg + +; ------------------------------------------------------------------------ +; GETPALETTE: Return the current palette in A/X. Even drivers that cannot +; set the palette should return the default palette here, so there's no +; way for this function to fail. +; +; Must set an error code: NO +; + +GETPALETTE: + lda #PALETTE + rts + +; ------------------------------------------------------------------------ +; GETDEFPALETTE: Return the default palette for the driver in A/X. All +; drivers should return something reasonable here, even drivers that don't +; support palettes, otherwise the caller has no way to determine the colors +; of the (not changeable) palette. +; +; Must set an error code: NO (all drivers must have a default palette) +; + +GETDEFPALETTE: + lda #DEFPALETTE + rts + +; ------------------------------------------------------------------------ +; SETPIXEL: Draw one pixel at X1/Y1 = ptr1/ptr2 with the current drawing +; color. The coordinates passed to this function are never outside the +; visible screen area, so there is no need for clipping inside this function. +; +; Must set an error code: NO +; + +SETPIXEL: + lda X1 + ldx X1+1 + ldy Y1 + sta r3L + stx r3H + sty r11L + sec + lda BITMASK ; set or clear C flag + bne @L1 + clc +@L1: lda #0 + jmp DrawPoint + +; ------------------------------------------------------------------------ +; GETPIXEL: Read the color value of a pixel and return it in A/X. The +; coordinates passed to this function are never outside the visible screen +; area, so there is no need for clipping inside this function. + + +GETPIXEL: + lda X1 + ldx X1+1 + ldy Y1 + sta r3L + stx r3H + sty r11L + jsr TestPoint + ldx #0 + bcc @L1 + inx +@L1: txa + ldx #0 + rts + +; ------------------------------------------------------------------------ +; LINE: Draw a line from X1/Y1 to X2/Y2, where X1/Y1 = ptr1/ptr2 and +; X2/Y2 = ptr3/ptr4 using the current drawing color. +; +; Must set an error code: NO +; + +LINE: + lda X1 + ldx X1+1 + ldy Y1 + sta r3L + stx r3H + sty r11L + lda X2 + ldx X2+1 + ldy Y2 + sta r4L + stx r4H + sty r11H + sec + lda BITMASK ; set or clear C flag + bne @L1 + clc +@L1: lda #0 + jmp DrawLine + +; ------------------------------------------------------------------------ +; BAR: Draw a filled rectangle with the corners X1/Y1, X2/Y2, where +; X1/Y1 = ptr1/ptr2 and X2/Y2 = ptr3/ptr4 using the current drawing color. +; Contrary to most other functions, the graphics kernel will sort and clip +; the coordinates before calling the driver, so on entry the following +; conditions are valid: +; X1 <= X2 +; Y1 <= Y2 +; (X1 >= 0) && (X1 < XRES) +; (X2 >= 0) && (X2 < XRES) +; (Y1 >= 0) && (Y1 < YRES) +; (Y2 >= 0) && (Y2 < YRES) +; +; Must set an error code: NO +; + +BAR: + lda X1 + ldx X1+1 + ldy Y1 + sta r3L + stx r3H + sty r2L + lda X2 + ldx X2+1 + ldy Y2 + sta r4L + stx r4H + sty r2H + jmp Rectangle + +; ------------------------------------------------------------------------ +; TEXTSTYLE: Set the style used when calling OUTTEXT. Text scaling in X and Y +; direction is passend in X/Y, the text direction is passed in A. +; +; Must set an error code: NO +; + +TEXTSTYLE: + stx TEXTMAGX + sty TEXTMAGY + sta TEXTDIR + rts + + +; ------------------------------------------------------------------------ +; OUTTEXT: Output text at X/Y = ptr1/ptr2 using the current color and the +; current text style. The text to output is given as a zero terminated +; string with address in ptr3. +; +; Must set an error code: NO +; + +OUTTEXT: + lda TEXTDIR +; cmp #TGI_TEXT_HORIZONTAL ; this is equal 0 + bne @vertical + + lda X1 ; horizontal text output + ldx X1+1 + ldy Y1 + sta r11L + stx r11H + sty r1H + lda ptr3 + ldx ptr3+1 + sta r0L + stx r0H + jmp PutString + +@vertical: + lda X1 ; vertical text output + ldx X1+1 + ldy Y1 + sta r11L + stx r11H + sty r1H + ldy #0 + lda (ptr3),y + beq @end + jsr PutChar + inc ptr3 + bne @L1 + inc ptr3+1 +@L1: lda Y1 + clc + adc #8 + sta Y1 + bne @vertical +@end: rts + +;------------- +; VDC helpers + +VDCSetSourceAddr: + pha + tya + ldx #VDC_DATA_HI + jsr VDCWriteReg + pla + ldx #VDC_DATA_LO + bne VDCWriteReg + +VDCReadByte: + ldx #VDC_DATA +VDCReadReg: + stx VDC_ADDR_REG +@L0: bit VDC_ADDR_REG + bpl @L0 + lda VDC_DATA_REG + rts + +VDCWriteByte: + ldx #VDC_DATA +VDCWriteReg: + stx VDC_ADDR_REG +@L0: bit VDC_ADDR_REG + bpl @L0 + sta VDC_DATA_REG + rts + diff --git a/libsrc/geos-cbm/devel/geos-vdc.s b/libsrc/geos-cbm/devel/geos-vdc.s new file mode 100644 index 000000000..dda119b09 --- /dev/null +++ b/libsrc/geos-cbm/devel/geos-vdc.s @@ -0,0 +1,426 @@ +; +; Extended memory driver for the VDC RAM available on all C128 machines +; version for GEOS enters safe I/O config on C64 (transparent on C128) +; +; Maciej 'YTM/Elysium' Witkowiak +; 06,20,25.12.2002 + + .include "zeropage.inc" + + .include "em-kernel.inc" + .include "em-error.inc" + + + .macpack generic + + +; ------------------------------------------------------------------------ +; Header. Includes jump table + +.segment "JUMPTABLE" + +; Driver signature + + .byte $65, $6d, $64 ; "emd" + .byte EMD_API_VERSION ; EM API version number + +; Jump table. + + .word INSTALL + .word UNINSTALL + .word PAGECOUNT + .word MAP + .word USE + .word COMMIT + .word COPYFROM + .word COPYTO + +; ------------------------------------------------------------------------ +; Constants + +VDC_ADDR_REG = $D600 ; VDC address +VDC_DATA_REG = $D601 ; VDC data + +VDC_DATA_HI = 18 ; used registers +VDC_DATA_LO = 19 +VDC_CSET = 28 +VDC_DATA = 31 + +; ------------------------------------------------------------------------ +; Data. + +.data + +pagecount: .word 64 ; $0000-$3fff as 16k default +curpage: .word $ffff ; currently mapped-in page (invalid) + +.bss + +window: .res 256 ; memory window + +.code + +; ------------------------------------------------------------------------ +; INSTALL routine. Is called after the driver is loaded into memory. If +; possible, check if the hardware is present and determine the amount of +; memory available. +; Must return an EM_ERR_xx code in a/x. +; + +INSTALL: + ; do test for VDC presence here??? + + php + sei + lda $01 + pha + lda #$35 + sta $01 + + ldx #VDC_CSET ; determine size of RAM... + jsr vdcgetreg + sta tmp1 + ora #%00010000 + jsr vdcputreg ; turn on 64k + + jsr settestadr1 ; save original value of test byte + jsr vdcgetbyte + sta tmp2 + + lda #$55 ; write $55 here + ldy #ptr1 + jsr test64k ; read it here and there + lda #$aa ; write $aa here + ldy #ptr2 + jsr test64k ; read it here and there + + jsr settestadr1 + lda tmp2 + jsr vdcputbyte ; restore original value of test byte + + lda ptr1 ; do bytes match? + cmp ptr1+1 + bne @have64k + lda ptr2 + cmp ptr2+1 + bne @have64k + + ldx #VDC_CSET + lda tmp1 + jsr vdcputreg ; restore 16/64k flag + jmp @endok ; and leave default values for 16k + +@have64k: + lda #<256 + ldx #>256 + sta pagecount + stx pagecount+1 +@endok: + pla + sta $01 + plp + lda #EM_ERR_OK + rts + +test64k: + sta tmp1 + sty ptr3 + lda #0 + sta ptr3+1 + jsr settestadr1 + lda tmp1 + jsr vdcputbyte ; write $55 + jsr settestadr1 + jsr vdcgetbyte ; read here + pha + jsr settestadr2 + jsr vdcgetbyte ; and there + ldy #1 + sta (ptr3),y + pla + dey + sta (ptr3),y + rts + +settestadr1: + ldy #$02 ; test page 2 (here) + .byte $2c +settestadr2: + ldy #$42 ; or page 64+2 (there) + lda #0 + jmp vdcsetsrcaddr + +; ------------------------------------------------------------------------ +; UNINSTALL routine. Is called before the driver is removed from memory. +; Can do cleanup or whatever. Must not return anything. +; + +UNINSTALL: + ;on C128 restore font and clear the screen? + rts + +; ------------------------------------------------------------------------ +; PAGECOUNT: Return the total number of available pages in a/x. +; + +PAGECOUNT: + lda pagecount + ldx pagecount+1 + rts + +; ------------------------------------------------------------------------ +; MAP: Map the page in a/x into memory and return a pointer to the page in +; a/x. The contents of the currently mapped page (if any) may be discarded +; by the driver. +; + +MAP: sta curpage + stx curpage+1 + sta ptr1+1 + ldy #0 + sty ptr1 + + lda #window + sta ptr2+1 + + jsr transferin + + lda #window + rts + +; copy a single page from (ptr1):VDCRAM to (ptr2):RAM + +transferin: + php + sei + lda $01 + pha + lda #$35 + sta $01 + lda ptr1 + ldy ptr1+1 + jsr vdcsetsrcaddr ; set source address in VDC + ldy #0 + ldx #VDC_DATA + stx VDC_ADDR_REG +@L0: bit VDC_ADDR_REG + bpl @L0 + lda VDC_DATA_REG ; get 2 bytes at a time to speed-up + sta (ptr2),y ; (in fact up to 8 bytes could be fetched with special VDC config) + iny + lda VDC_DATA_REG + sta (ptr2),y + iny + bne @L0 + pla + sta $01 + plp + rts + +; ------------------------------------------------------------------------ +; USE: Tell the driver that the window is now associated with a given page. + +USE: sta curpage + stx curpage+1 ; Remember the page + lda #window ; Return the window +done: rts + +; ------------------------------------------------------------------------ +; COMMIT: Commit changes in the memory window to extended storage. + +COMMIT: + lda curpage ; jump if no page mapped + ldx curpage+1 + bmi done + sta ptr1+1 + ldy #0 + sty ptr1 + + lda #window + sta ptr2+1 + +; fall through to transferout + +; copy a single page from (ptr2):RAM to (ptr1):VDCRAM + +transferout: + php + sei + lda $01 + pha + lda #$35 + sta $01 + lda ptr1 + ldy ptr1+1 + jsr vdcsetsrcaddr ; set source address in VDC + ldy #0 + ldx #VDC_DATA + stx VDC_ADDR_REG +@L0: bit VDC_ADDR_REG + bpl @L0 + lda (ptr2),y ; speedup does not work for writing + sta VDC_DATA_REG + iny + bne @L0 + pla + sta $01 + plp + rts + +; ------------------------------------------------------------------------ +; COPYFROM: Copy from extended into linear memory. A pointer to a structure +; describing the request is passed in a/x. +; The function must not return anything. +; + +COPYFROM: + jsr setup + beq @L2 ; Skip if no full pages + +; Copy full pages + +@L1: jsr transferin + inc ptr1+1 + inc ptr2+1 + dec tmp1 + bne @L1 + +; Copy the remainder of the page + +@L2: ldy #EM_COPY::COUNT + lda (ptr3),y ; Get bytes in last page + beq @L4 + sta tmp1 + +; Transfer the bytes in the last page + php + sei + lda $01 + pha + lda #$35 + sta $01 + ldy #0 +@L3: jsr vdcgetbyte + sta (ptr2),y + iny + dec tmp1 + lda tmp1 + bne @L3 + pla + sta $01 + plp +@L4: rts + +; ------------------------------------------------------------------------ +; COPYTO: Copy from linear into extended memory. A pointer to a structure +; describing the request is passed in a/x. +; The function must not return anything. +; + +COPYTO: + jsr setup + beq @L2 ; Skip if no full pages + +; Copy full pages + +@L1: jsr transferout + inc ptr1+1 + inc ptr2+1 + dec tmp1 + bne @L1 + +; Copy the remainder of the page + +@L2: ldy #EM_COPY::COUNT + lda (ptr3),y ; Get bytes in last page + beq @L4 + sta tmp1 + +; Transfer the bytes in the last page + php + sei + lda $01 + pha + lda #$35 + sta $01 + ldy #0 +@L3: lda (ptr2),y + jsr vdcputbyte + iny + dec tmp1 + lda tmp1 + bne @L3 + pla + sta $01 + plp +@L4: rts + +;------------------------------------------------------------------------- +; Helper functions to handle VDC ram +; + +vdcsetsrcaddr: + ldx #VDC_DATA_LO + stx VDC_ADDR_REG +@L0: bit VDC_ADDR_REG + bpl @L0 + sta VDC_DATA_REG + dex + tya + stx VDC_ADDR_REG + sta VDC_DATA_REG + rts + +vdcgetbyte: + ldx #VDC_DATA +vdcgetreg: + stx VDC_ADDR_REG +@L0: bit VDC_ADDR_REG + bpl @L0 + lda VDC_DATA_REG + rts + +vdcputbyte: + ldx #VDC_DATA +vdcputreg: + stx VDC_ADDR_REG +@L0: bit VDC_ADDR_REG + bpl @L0 + sta VDC_DATA_REG + rts + +; ------------------------------------------------------------------------ +; Helper function for COPYFROM and COPYTO: Store the pointer to the request +; structure and prepare data for the copy +; + +setup: + sta ptr3 + stx ptr3+1 ; Save the passed em_copy pointer + + ldy #EM_COPY::OFFS + lda (ptr3),y + sta ptr1 + ldy #EM_COPY::PAGE + lda (ptr3),y + sta ptr1+1 ; From + + ldy #EM_COPY::BUF + lda (ptr3),y + sta ptr2 + iny + lda (ptr3),y + sta ptr2+1 ; To + + ldy #EM_COPY::COUNT+1 + lda (ptr3),y ; Get number of pages + sta tmp1 + rts + diff --git a/libsrc/geos-cbm/devel/joy_stddrv.s b/libsrc/geos-cbm/devel/joy_stddrv.s new file mode 100644 index 000000000..dd01dc2db --- /dev/null +++ b/libsrc/geos-cbm/devel/joy_stddrv.s @@ -0,0 +1,14 @@ +; +; Name of the standard joystick driver +; +; Ullrich von Bassewitz, 2002-12-21 +; +; const char joy_stddrv[]; +; + + .export _joy_stddrv + +.rodata + +_joy_stddrv: .asciiz "geos-stdjoy.joy" + diff --git a/libsrc/geos-cbm/devel/mainargs.s b/libsrc/geos-cbm/devel/mainargs.s new file mode 100644 index 000000000..d5ffbf3e5 --- /dev/null +++ b/libsrc/geos-cbm/devel/mainargs.s @@ -0,0 +1,79 @@ +; +; 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 "../inc/const.inc" + .include "../inc/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 + cmp #$a0 + 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/mcbdefault.s b/libsrc/geos-cbm/devel/mcbdefault.s new file mode 100644 index 000000000..665cc426e --- /dev/null +++ b/libsrc/geos-cbm/devel/mcbdefault.s @@ -0,0 +1,68 @@ +; +; Mouse callbacks for GEOS. +; +; GEOS has a built-in mouse architecture. Half of this file does nothing +; -- it exists merely to allow portable programs to link and run. +; +; 2.7.2001, Maciej 'YTM/Elysium' Witkowiak +; 2004-03-20, Ullrich von Bassewitz +; 2004-09-24, Greg King +; + +; .constructor init_pointer + .export _mouse_def_callbacks + +; .include "mouse-kernel.inc" +; .include "../inc/const.inc" +; .include "../inc/geossym.inc" + .include "../inc/jumptab.inc" + +; .macpack generic + +; The functions below must be interrupt-safe, +; because they might be called from an interrupt-handler. + +.code + +; -------------------------------------------------------------------------- +; Hide the mouse pointer. Always called with interrupts disabled. + +hide := MouseOff + +; -------------------------------------------------------------------------- +; Show the mouse pointer. Always called with interrupts disabled. + +show := MouseUp + +; -------------------------------------------------------------------------- +; Move the mouse pointer X position to the value in .XA. Always called with +; interrupts disabled. + +.proc movex + + rts + +.endproc + +; -------------------------------------------------------------------------- +; Move the mouse pointer Y position to the value in .XA. Always called with +; interrupts disabled. + +.proc movey + + rts + +.endproc + +; -------------------------------------------------------------------------- +; Callback structure + +.rodata + +_mouse_def_callbacks: + .addr hide + .addr show + .addr movex + .addr movey + + diff --git a/libsrc/geos-cbm/devel/mouse_stddrv.s b/libsrc/geos-cbm/devel/mouse_stddrv.s new file mode 100644 index 000000000..8792c27f0 --- /dev/null +++ b/libsrc/geos-cbm/devel/mouse_stddrv.s @@ -0,0 +1,11 @@ +; +; Name of the standard mouse driver +; +; 2010-01-25, Greg King +; +; const char mouse_stddrv[]; +; + .export _mouse_stddrv + + .rodata +_mouse_stddrv: .asciiz "geos-stdmou.mou" diff --git a/libsrc/geos-cbm/devel/oserrlist.s b/libsrc/geos-cbm/devel/oserrlist.s new file mode 100644 index 000000000..90c54fbe7 --- /dev/null +++ b/libsrc/geos-cbm/devel/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 "../inc/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 new file mode 100644 index 000000000..50dd32795 --- /dev/null +++ b/libsrc/geos-cbm/devel/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 "../inc/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 new file mode 100644 index 000000000..c16bc54ef --- /dev/null +++ b/libsrc/geos-cbm/devel/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 "../inc/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-cbm/devel/tgi_colors.s b/libsrc/geos-cbm/devel/tgi_colors.s new file mode 100644 index 000000000..d965e6ff3 --- /dev/null +++ b/libsrc/geos-cbm/devel/tgi_colors.s @@ -0,0 +1,8 @@ +; +; Target-specific black & white values, for use by the target-shared TGI kernel +; + + .include "tgi-kernel.inc" + +tgi_color_black = $00 +tgi_color_white = $01 diff --git a/libsrc/geos-cbm/devel/tgi_stddrv.s b/libsrc/geos-cbm/devel/tgi_stddrv.s new file mode 100644 index 000000000..6745c2301 --- /dev/null +++ b/libsrc/geos-cbm/devel/tgi_stddrv.s @@ -0,0 +1,13 @@ +; +; Name of the standard tgi driver +; +; Oliver Schmidt, 2011-05-02 +; +; const char tgi_stddrv[]; +; + + .export _tgi_stddrv + +.rodata + +_tgi_stddrv: .asciiz "geos-tgi.tgi" diff --git a/libsrc/geos-cbm/disk/Makefile b/libsrc/geos-cbm/disk/Makefile new file mode 100644 index 000000000..dd08aeb6f --- /dev/null +++ b/libsrc/geos-cbm/disk/Makefile @@ -0,0 +1,21 @@ +# +# Makefile for GEOS lib +# for cc65 +# + +%.o: %.s + @$(AS) -o $@ $(AFLAGS) $< + + +S_OBJS = blkalloc.o calcblksfree.o changediskdevice.o chkdkgeos.o enterturbo.o exitturbo.o\ + findbambit.o freeblock.o getblock.o getdirhead.o getptrcurdknm.o newdisk.o\ + nxtblkalloc.o opendisk.o purgeturbo.o putblock.o putdirhead.o readblock.o\ + readbuff.o setnextfree.o setgeosdisk.o writeblock.o writebuff.o verwriteblock.o\ + gettrse.o setoserror.o\ + dio_openclose.o dio_cts.o dio_stc.o dio_read.o dio_write.o dio_writev.o\ + dio_params.o + +all: $(S_OBJS) + +clean: + @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos-cbm/disk/blkalloc.s b/libsrc/geos-cbm/disk/blkalloc.s new file mode 100644 index 000000000..7048400a0 --- /dev/null +++ b/libsrc/geos-cbm/disk/blkalloc.s @@ -0,0 +1,22 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char BlkAlloc (struct tr_se output[], int length); + + .import popax, setoserror + .export _BlkAlloc + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_BlkAlloc: + sta r2L + stx r2H + jsr popax + sta r4L + stx r4H + jsr BlkAlloc + jmp setoserror diff --git a/libsrc/geos-cbm/disk/calcblksfree.s b/libsrc/geos-cbm/disk/calcblksfree.s new file mode 100644 index 000000000..2471138e5 --- /dev/null +++ b/libsrc/geos-cbm/disk/calcblksfree.s @@ -0,0 +1,20 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; int CalcBlksFree (void); + + .import __oserror + .export _CalcBlksFree + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_CalcBlksFree: + jsr CalcBlksFree + stx __oserror + lda r4L + ldx r4H + rts diff --git a/libsrc/geos-cbm/disk/changediskdevice.s b/libsrc/geos-cbm/disk/changediskdevice.s new file mode 100644 index 000000000..6d5aab070 --- /dev/null +++ b/libsrc/geos-cbm/disk/changediskdevice.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char ChangeDiskDevice (char newDriveNumber); + + .import setoserror + .export _ChangeDiskDevice + + .include "../inc/jumptab.inc" + +_ChangeDiskDevice: + jsr ChangeDiskDevice + jmp setoserror diff --git a/libsrc/geos-cbm/disk/chkdkgeos.s b/libsrc/geos-cbm/disk/chkdkgeos.s new file mode 100644 index 000000000..52b7165d4 --- /dev/null +++ b/libsrc/geos-cbm/disk/chkdkgeos.s @@ -0,0 +1,19 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char ChkDkGEOS (void); + + .import setoserror + .export _ChkDkGEOS + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_ChkDkGEOS: + jsr ChkDkGEOS + jsr setoserror + lda isGEOS + rts diff --git a/libsrc/geos-cbm/disk/dio_cts.s b/libsrc/geos-cbm/disk/dio_cts.s new file mode 100644 index 000000000..c7871045d --- /dev/null +++ b/libsrc/geos-cbm/disk/dio_cts.s @@ -0,0 +1,191 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; 2.7.2001 +; +; +; unsigned char __fastcall__ dio_phys_to_log(dhandle_t handle, +; dio_phys_pos *physpos, /* input */ +; sectnum_t *sectnum); /* output */ +; +; dhandle_t - 16bit (ptr) +; sectnum_t - 16bit +; + + .export _dio_phys_to_log + .export sectab_1541_l, sectab_1541_h ; for log_to_phys + .import popax,__oserror + .importzp ptr1,ptr2,ptr3,tmp1,tmp2,tmp3,tmp4 + .include "../inc/dio.inc" + .include "../inc/geossym.inc" + .include "../inc/const.inc" + +.proc _dio_phys_to_log + sta ptr1 + stx ptr1+1 ; pointer to result + + jsr popax + sta ptr2 + stx ptr2+1 ; pointer to input structure + + jsr popax + sta ptr3 + stx ptr3+1 ; pointer to handle + + ldy #sst_flag + lda (ptr3),y + and #128 + beq _inv_hand ; handle not open or invalid + + + ldy #diopp_head + lda (ptr2),y + bne _inv_data ; there is only head 0 + ldy #diopp_track + lda (ptr2),y + beq _inv_data ; there is no track 0 + sta tmp1 + iny + lda (ptr2),y + bne _inv_data ; there are no more than 256 tracks + dec tmp1 ; normalize track to start from 0 + ldy #diopp_sector + lda (ptr2),y + sta tmp2 + iny + lda (ptr2),y + bne _inv_data ; there are no more than 256 sectors + +; tmp1 (int) holds track+sector, translate it using device info + + ldy #sst_driveno + lda (ptr3),y + tay + lda driveType,y + and #%00000011 ; this is for RamDrive compatibility + cmp #DRV_1541 + beq dio_cts1541 + cmp #DRV_1571 + beq dio_cts1571 + cmp #DRV_1581 + beq dio_cts1581 + + lda #DEV_NOT_FOUND ; unknown device + ldx #0 + beq ret + +dio_ctsend: + ldy #1 + lda tmp2 + sta (ptr1),y + dey + lda tmp1 + sta (ptr1),y + + ldx #0 + txa +ret: + sta __oserror + rts ; return success + +; errors + +_inv_data: + lda #INV_TRACK + .byte $2c +_inv_hand: + lda #INCOMPATIBLE + ldx #0 + beq ret + +; device-depended stuff, tmp1=track-1, tmp2=sector + +dio_cts1541: + ldy tmp1 + cpy #35 + bcs _inv_data + lda sectab_1541_l,y + clc + adc tmp2 + sta tmp1 + lda sectab_1541_h,y + adc #0 + sta tmp2 + jmp dio_ctsend + +dio_cts1571: + lda tmp1 + cmp #70 + bcs _inv_data + cmp #35 ; last track of one side + bcs _sub35 + jmp dio_cts1541 ; track <=35 - same as 1541 + +_sub35: + sec + sbc #35 + sta tmp1 + jsr dio_cts1541 ; get offset on second side of disk + lda tmp1 ; add second side base + clc + adc #<683 + sta tmp1 + lda tmp2 + adc #>683 + sta tmp2 + jmp dio_ctsend + +dio_cts1581: +; 1581 has 80 tracks, 40 sectors each secnum=track*40+sector + ldx #0 + stx tmp3 + stx tmp4 + lda tmp1 + beq _nomult + cmp #80 + bcs _inv_data + +; mul40 by Christian Groessler + sta tmp4 + asl a + rol tmp3 + asl a + rol tmp3 ; val * 4 + adc tmp4 + bcc L1 + inc tmp3 ; val * 5 +L1: asl a + rol tmp3 ; val * 10 + asl a + rol tmp3 + asl a + rol tmp3 ; val * 40 = AX + ldx tmp3 + sta tmp3 + stx tmp4 + +_nomult: + lda tmp2 + clc + adc tmp3 + sta tmp1 + lda tmp4 + adc #0 + sta tmp2 + jmp dio_ctsend + +.endproc + +.rodata + +sectab_1541_l: + .byte $00, $15, $2a, $3f, $54, $69, $7e, $93 + .byte $a8, $bd, $d2, $e7, $fc, $11, $26, $3b + .byte $50, $65, $78, $8b, $9e, $b1, $c4, $d7 + .byte $ea, $fc, $0e, $20, $32, $44, $56, $67 + .byte $78, $89, $9a, $ab +sectab_1541_h: + .byte $00, $00, $00, $00, $00, $00, $00, $00 + .byte $00, $00, $00, $00, $00, $01, $01, $01 + .byte $01, $01, $01, $01, $01, $01, $01, $01 + .byte $01, $01, $02, $02, $02, $02, $02, $02 + .byte $02, $02, $02, $02 diff --git a/libsrc/geos-cbm/disk/dio_openclose.s b/libsrc/geos-cbm/disk/dio_openclose.s new file mode 100644 index 000000000..3b798817b --- /dev/null +++ b/libsrc/geos-cbm/disk/dio_openclose.s @@ -0,0 +1,85 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; +; based on Atari version by Christian Groessler +; 2.7.2001 +; +; dhandle_t __fastcall__ dio_open (driveid_t drive_id); +; unsigned char __fastcall__ dio_close (dhandle_t handle); +; +; dio_open sets given device as current and initializes disk +; dio_close does nothing special + + .export _dio_open, _dio_close + .import __oserror, _OpenDisk + .importzp ptr1, tmp1 + .include "../inc/dio.inc" + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + .include "../inc/const.inc" + +.bss + +sectsizetab: + .res 4 * sst_size ; this is hardcoded + +.code + +.proc _dio_open + pha + tax + lda driveType,x ; check if there's a device + beq _inv_drive + txa + clc + adc #8 ; normalize devnum + sta curDevice + jsr SetDevice + jsr _OpenDisk ; take care for errors there + + pla + tay ; drive # + asl a ; make index from drive id + asl a + tax + + lda #0 + sta sectsizetab+sst_sectsize,x + lda #128 + sta sectsizetab+sst_flag,x ; set flag that drive is "open" + lda #1 + sta sectsizetab+sst_sectsize+1,x + tya + sta sectsizetab+sst_driveno,x + + stx tmp1 + lda #sectsizetab + adc #0 + tax + lda tmp1 + + rts + +_inv_drive: + lda #DEV_NOT_FOUND + sta __oserror + lda #0 + tax + rts + +.endproc + +.proc _dio_close + sta ptr1 + stx ptr1+1 + lda #0 + ldy #sst_flag + sta (ptr1),y + sta __oserror ; success + tax + rts ; return no error +.endproc diff --git a/libsrc/geos-cbm/disk/dio_params.s b/libsrc/geos-cbm/disk/dio_params.s new file mode 100644 index 000000000..ef88a59b4 --- /dev/null +++ b/libsrc/geos-cbm/disk/dio_params.s @@ -0,0 +1,51 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; 2.7.2001 +; +; this function is used by dio_read and dio_write to fix parameters (secnum) +; this function calls SetDevice so that more than one drive can be used at once + + .import popax,pushax,_dio_log_to_phys + .importzp ptr1 + .export dio_params,dio_secnum + .include "../inc/geossym.inc" + .include "../inc/jumptab.inc" + .include "../inc/dio.inc" + +.bss +dio_secnum: .res 2 + +.code +.proc dio_params + + sta r4L + stx r4H + + jsr popax + sta dio_secnum + stx dio_secnum + + jsr popax ; get 3rd parameter + pha ; save it + txa + pha + jsr pushax ; put it back + pla ; restore it + sta ptr1+1 + pla + sta ptr1 + ldy #sst_driveno + lda (ptr1),y + clc + adc #8 + jsr SetDevice ; setup device, load driver + + lda #dio_secnum + jsr pushax + + lda #r1H + jmp _dio_log_to_phys + +.endproc diff --git a/libsrc/geos-cbm/disk/dio_read.s b/libsrc/geos-cbm/disk/dio_read.s new file mode 100644 index 000000000..896cc27a5 --- /dev/null +++ b/libsrc/geos-cbm/disk/dio_read.s @@ -0,0 +1,25 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; 2.7.2001 +; +; this file provides the _dio_read function +; +; unsigned char __fastcall__ dio_read(dhandle_t handle,sectnum_t sect_num,void *buffer); +; dhandle_t - 16bit (ptr) +; sectnum_t - 16bit +; + + .import dio_params, __oserror + .export _dio_read + .include "../inc/geossym.inc" + .include "../inc/jumptab.inc" + +.proc _dio_read + + jsr dio_params + jsr ReadBlock + stx __oserror + txa + rts + +.endproc diff --git a/libsrc/geos-cbm/disk/dio_stc.s b/libsrc/geos-cbm/disk/dio_stc.s new file mode 100644 index 000000000..c64bb0802 --- /dev/null +++ b/libsrc/geos-cbm/disk/dio_stc.s @@ -0,0 +1,182 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; 2.7.2001 +; +; unsigned char __fastcall__ dio_log_to_phys(dhandle_t handle, +; sectnum_t *sectnum, /* input */ +; dio_phys_pos *physpos); /* output */ +; +; dhandle_t - 16bit (ptr) +; sectnum_t - 16bit +; + + .export _dio_log_to_phys + .importzp ptr1,ptr2,ptr3,tmp1,tmp2 + .import popax,__oserror + .import sectab_1541_l, sectab_1541_h + .include "../inc/dio.inc" + .include "../inc/geossym.inc" + .include "../inc/const.inc" + +.proc _dio_log_to_phys + +; check device type + sta ptr1 + stx ptr1+1 ; pointer to result (struct dio_phys_pos) + + jsr popax + sta ptr2 + stx ptr2+1 ; pointer to input structure (pointer to int) + + jsr popax + sta ptr3 + stx ptr3+1 ; pointer to handle + + ldy #sst_flag + lda (ptr3),y + and #128 + beq _inv_hand ; handle not open or invalid + +; fill in all we have + ldy #diopp_head + lda #0 ; head 0 + sta (ptr1),y + ldy #diopp_track+1 + sta (ptr1),y ; track <256 + ldy #diopp_sector+1 + sta (ptr1),y ; sector <256 + + ldy #0 + lda (ptr2),y + sta tmp1 + iny + lda (ptr2),y + sta tmp2 + +; get drive info + ldy #sst_driveno + lda (ptr3),y + tay + lda driveType,y + and #%00000011 ; this is for RamDrive compatibility + cmp #DRV_1541 + beq dio_stc1541 + cmp #DRV_1571 + beq dio_stc1571 + cmp #DRV_1581 + beq dio_stc1581 + + lda #DEV_NOT_FOUND ; unknown device + ldx #0 + beq _ret + +dio_stcend: + ldy #diopp_track + lda tmp1 + sta (ptr1),y + ldy #diopp_sector + lda tmp2 + sta (ptr1),y + + ldx #0 + txa +_ret: + sta __oserror + rts ; return success + +; errors +_inv_data: + lda #INV_TRACK + .byte $2c +_inv_hand: + lda #INCOMPATIBLE + ldx #0 + beq _ret + +dio_stc1541: +; if 1541: +; - compare with table to find track +; - subtract and find sector + + ldx #0 ; index=(track-1) +_loop41: + lda tmp2 + cmp sectab_1541_h+1,x + bne _nxt + lda tmp1 + cmp sectab_1541_l+1,x + bcc _found +_nxt: inx + cpx #35 + bne _loop41 + beq _inv_data + +_found: + lda tmp1 + sec + sbc sectab_1541_l,x + sta tmp2 +_fndend: + inx + stx tmp1 + jmp dio_stcend + +dio_stc1571: +; if 1571: +; - check size, if too big - subtract and add 35 to track +; - fall down to 1541 + lda tmp2 + cmp #>683 + bne _cnt71 + lda tmp1 + cmp #<683 + bcc dio_stc1541 + +_cnt71: + lda tmp1 + sec + sbc #<683 + sta tmp1 + lda tmp2 + sbc #>683 + sta tmp2 + jsr dio_stc1541 ; will fall through here + + ldy #diopp_track + lda (ptr1),y + clc + adc #35 + sta (ptr1),y + lda #0 + beq _ret + +; if 1581: +; - subtract 40 in loop (at most 80 times) to find track +; - the remainder is sector +dio_stc1581: + ldx #0 ; index=(track-1) +_loop81: + lda tmp2 + bne _sub81 + lda tmp1 + cmp #40 + bcc _got81 +_sub81: lda tmp1 + sec + sbc #40 + sta tmp1 + lda tmp2 + sbc #0 + sta tmp2 + inx + cpx #81 + bne _loop81 + beq _inv_data + +_got81: lda tmp1 + sta tmp2 + inx + stx tmp1 + jmp dio_stcend + +.endproc diff --git a/libsrc/geos-cbm/disk/dio_write.s b/libsrc/geos-cbm/disk/dio_write.s new file mode 100644 index 000000000..9f522c2df --- /dev/null +++ b/libsrc/geos-cbm/disk/dio_write.s @@ -0,0 +1,23 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; 2.7.2001 +; +; this file provides the _dio_write function +; +; unsigned char __fastcall__ dio_write(dhandle_t handle,sectnum_t sect_num,const void *buffer); +; dhandle_t - 16bit (ptr) +; sectnum_t - 16bit +; + + .import dio_params, setoserror + .export _dio_write + .include "../inc/geossym.inc" + .include "../inc/jumptab.inc" + +.proc _dio_write + + jsr dio_params + jsr WriteBlock + jmp setoserror + +.endproc diff --git a/libsrc/geos-cbm/disk/dio_writev.s b/libsrc/geos-cbm/disk/dio_writev.s new file mode 100644 index 000000000..1f4ca7766 --- /dev/null +++ b/libsrc/geos-cbm/disk/dio_writev.s @@ -0,0 +1,25 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; 2.7.2001 +; +; this file provides the _dio_write function +; +; unsigned char __fastcall__ dio_write_verify(dhandle_t handle,sectnum_t sect_num,const void *buffer); +; dhandle_t - 16bit (ptr) +; sectnum_t - 16bit +; + + .import dio_params, __oserror + .export _dio_write_verify + .include "../inc/geossym.inc" + .include "../inc/jumptab.inc" + +.proc _dio_write_verify + + jsr dio_params + jsr VerWriteBlock + stx __oserror + txa + rts + +.endproc diff --git a/libsrc/geos-cbm/disk/enterturbo.s b/libsrc/geos-cbm/disk/enterturbo.s new file mode 100644 index 000000000..1236fa239 --- /dev/null +++ b/libsrc/geos-cbm/disk/enterturbo.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void EnterTurbo (void); + + .export _EnterTurbo + + .include "../inc/jumptab.inc" + +_EnterTurbo = EnterTurbo diff --git a/libsrc/geos-cbm/disk/exitturbo.s b/libsrc/geos-cbm/disk/exitturbo.s new file mode 100644 index 000000000..521f70f75 --- /dev/null +++ b/libsrc/geos-cbm/disk/exitturbo.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void ExitTurbo (void); + + .export _ExitTurbo + + .include "../inc/jumptab.inc" + +_ExitTurbo = ExitTurbo diff --git a/libsrc/geos-cbm/disk/findbambit.s b/libsrc/geos-cbm/disk/findbambit.s new file mode 100644 index 000000000..22f847be6 --- /dev/null +++ b/libsrc/geos-cbm/disk/findbambit.s @@ -0,0 +1,24 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char FindBAMBit (struct tr_se *TS); +; (might be called inUSE (if (!inUSE(block)))) + + .import gettrse + .import return0, return1 + .export _FindBAMBit + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_FindBAMBit: + jsr gettrse + sta r6L + stx r6H + jsr FindBAMBit + bne inUse + jmp return0 +inUse: jmp return1 diff --git a/libsrc/geos-cbm/disk/freeblock.s b/libsrc/geos-cbm/disk/freeblock.s new file mode 100644 index 000000000..63de4d05b --- /dev/null +++ b/libsrc/geos-cbm/disk/freeblock.s @@ -0,0 +1,20 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char FreeBlock (struct tr_se *TS); + + .import gettrse, setoserror + .export _FreeBlock + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_FreeBlock: + jsr gettrse + sta r6L + stx r6H + jsr FreeBlock + jmp setoserror diff --git a/libsrc/geos-cbm/disk/getblock.s b/libsrc/geos-cbm/disk/getblock.s new file mode 100644 index 000000000..8d0d22810 --- /dev/null +++ b/libsrc/geos-cbm/disk/getblock.s @@ -0,0 +1,24 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char GetBlock (struct tr_se *myTS, char *buffer); + + .import popax, setoserror + .import gettrse + .export _GetBlock + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_GetBlock: + sta r4L + stx r4H + jsr popax + jsr gettrse + sta r1L + stx r1H + jsr GetBlock + jmp setoserror diff --git a/libsrc/geos-cbm/disk/getdirhead.s b/libsrc/geos-cbm/disk/getdirhead.s new file mode 100644 index 000000000..1794d1889 --- /dev/null +++ b/libsrc/geos-cbm/disk/getdirhead.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char GetDirHead (void); + + .import setoserror + .export _GetDirHead + + .include "../inc/jumptab.inc" + +_GetDirHead: + jsr GetDirHead + jmp setoserror diff --git a/libsrc/geos-cbm/disk/getptrcurdknm.s b/libsrc/geos-cbm/disk/getptrcurdknm.s new file mode 100644 index 000000000..dd8fecbd3 --- /dev/null +++ b/libsrc/geos-cbm/disk/getptrcurdknm.s @@ -0,0 +1,35 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void GetPtrCurDkNm (char *curName); +; (fills curName[17] with current disk's name) + + .importzp ptr4, ptr3 + .import __oserror + .export _GetPtrCurDkNm + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_GetPtrCurDkNm: + sta ptr3 + stx ptr3+1 + ldx #ptr4 + jsr GetPtrCurDkNm + ldy #0 + txa + bne fin +namelp: lda (ptr4),y + cmp #$a0 + beq fin + sta (ptr3),y + iny + cpy #16 + bne namelp +fin: lda #0 + sta (ptr3),y + stx __oserror + rts diff --git a/libsrc/geos-cbm/disk/gettrse.s b/libsrc/geos-cbm/disk/gettrse.s new file mode 100644 index 000000000..525df08af --- /dev/null +++ b/libsrc/geos-cbm/disk/gettrse.s @@ -0,0 +1,17 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 29.1.00 + + .export gettrse + .importzp ptr4 +gettrse: + sta ptr4 + stx ptr4+1 + ldy #1 + lda (ptr4),y + tax + dey + lda (ptr4),y + rts diff --git a/libsrc/geos-cbm/disk/newdisk.s b/libsrc/geos-cbm/disk/newdisk.s new file mode 100644 index 000000000..60862a956 --- /dev/null +++ b/libsrc/geos-cbm/disk/newdisk.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char NewDisk (void); + + .import setoserror + .export _NewDisk + + .include "../inc/jumptab.inc" + +_NewDisk: + jsr NewDisk + jmp setoserror diff --git a/libsrc/geos-cbm/disk/nxtblkalloc.s b/libsrc/geos-cbm/disk/nxtblkalloc.s new file mode 100644 index 000000000..620de7eb9 --- /dev/null +++ b/libsrc/geos-cbm/disk/nxtblkalloc.s @@ -0,0 +1,28 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char NxtBlkAlloc (struct tr_se *startTS, struct tr_se output[], int length ); + + .import popax, setoserror + .import gettrse + .importzp ptr4 + .export _NxtBlkAlloc + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_NxtBlkAlloc: + sta r2L + stx r2H + jsr popax + sta r4L + stx r4H + jsr popax + jsr gettrse + sta r3L + stx r3H + jsr NxtBlkAlloc + jmp setoserror diff --git a/libsrc/geos-cbm/disk/opendisk.s b/libsrc/geos-cbm/disk/opendisk.s new file mode 100644 index 000000000..88040c390 --- /dev/null +++ b/libsrc/geos-cbm/disk/opendisk.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char OpenDisk (void); + + .import setoserror + .export _OpenDisk + + .include "../inc/jumptab.inc" + +_OpenDisk: + jsr OpenDisk + jmp setoserror diff --git a/libsrc/geos-cbm/disk/purgeturbo.s b/libsrc/geos-cbm/disk/purgeturbo.s new file mode 100644 index 000000000..d6a286218 --- /dev/null +++ b/libsrc/geos-cbm/disk/purgeturbo.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void PurgeTurbo (void); + + .export _PurgeTurbo + + .include "../inc/jumptab.inc" + +_PurgeTurbo = PurgeTurbo diff --git a/libsrc/geos-cbm/disk/putblock.s b/libsrc/geos-cbm/disk/putblock.s new file mode 100644 index 000000000..122de9303 --- /dev/null +++ b/libsrc/geos-cbm/disk/putblock.s @@ -0,0 +1,24 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char PutBlock (struct tr_se *myTS, char *buffer); + + .import popax, setoserror + .import gettrse + .export _PutBlock + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_PutBlock: + sta r4L + stx r4H + jsr popax + jsr gettrse + sta r1L + stx r1H + jsr PutBlock + jmp setoserror diff --git a/libsrc/geos-cbm/disk/putdirhead.s b/libsrc/geos-cbm/disk/putdirhead.s new file mode 100644 index 000000000..9b94020e6 --- /dev/null +++ b/libsrc/geos-cbm/disk/putdirhead.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.99, 2.1.2003 + +; char PutDirHead (void); + + .import setoserror + .export _PutDirHead + + .include "../inc/jumptab.inc" + +_PutDirHead: + jsr PutDirHead + jmp setoserror diff --git a/libsrc/geos-cbm/disk/readblock.s b/libsrc/geos-cbm/disk/readblock.s new file mode 100644 index 000000000..d99a09b0d --- /dev/null +++ b/libsrc/geos-cbm/disk/readblock.s @@ -0,0 +1,24 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char ReadBlock (struct tr_se myTS, char *buffer); + + .import popax, setoserror + .import gettrse + .export _ReadBlock + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_ReadBlock: + sta r4L + stx r4H + jsr popax + jsr gettrse + sta r1L + stx r1H + jsr ReadBlock + jmp setoserror diff --git a/libsrc/geos-cbm/disk/readbuff.s b/libsrc/geos-cbm/disk/readbuff.s new file mode 100644 index 000000000..bbc13018e --- /dev/null +++ b/libsrc/geos-cbm/disk/readbuff.s @@ -0,0 +1,21 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 26.10.1999, 2.1.2003 + +; char ReadBuff (struct tr_se); + + .import setoserror + .import gettrse + .export _ReadBuff + + .include "../inc/diskdrv.inc" + .include "../inc/geossym.inc" + +_ReadBuff: + jsr gettrse + sta r1L + stx r1H + jsr ReadBuff + jmp setoserror diff --git a/libsrc/geos-cbm/disk/setgeosdisk.s b/libsrc/geos-cbm/disk/setgeosdisk.s new file mode 100644 index 000000000..520cc8d39 --- /dev/null +++ b/libsrc/geos-cbm/disk/setgeosdisk.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char SetGEOSDisk (void); + + .import setoserror + .export _SetGEOSDisk + + .include "../inc/jumptab.inc" + +_SetGEOSDisk: + jsr SetGEOSDisk + jmp setoserror diff --git a/libsrc/geos-cbm/disk/setnextfree.s b/libsrc/geos-cbm/disk/setnextfree.s new file mode 100644 index 000000000..fecc8f1e0 --- /dev/null +++ b/libsrc/geos-cbm/disk/setnextfree.s @@ -0,0 +1,24 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; struct tr_se SetNextFree (struct tr_se *startTS); + + .import __oserror + .import gettrse + .export _SetNextFree + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_SetNextFree: + jsr gettrse + sta r3L + stx r3H + jsr SetNextFree + stx __oserror + lda r3L + ldx r3H + rts diff --git a/libsrc/geos-cbm/disk/setoserror.s b/libsrc/geos-cbm/disk/setoserror.s new file mode 100644 index 000000000..382f56551 --- /dev/null +++ b/libsrc/geos-cbm/disk/setoserror.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 2.1.2003 +; + + .export setoserror + .import __oserror + +setoserror: + stx __oserror + txa + ldx #0 ; X is cleared (high byte for promoting char to int) + tay ; Y register is used just to save flags state + rts diff --git a/libsrc/geos-cbm/disk/verwriteblock.s b/libsrc/geos-cbm/disk/verwriteblock.s new file mode 100644 index 000000000..5758fc53c --- /dev/null +++ b/libsrc/geos-cbm/disk/verwriteblock.s @@ -0,0 +1,24 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char VerWriteBlock (struct tr_se *myTS, char *buffer); + + .import popax, setoserror + .import gettrse + .export _VerWriteBlock + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_VerWriteBlock: + sta r4L + stx r4H + jsr popax + jsr gettrse + sta r1L + stx r1H + jsr VerWriteBlock + jmp setoserror diff --git a/libsrc/geos-cbm/disk/writeblock.s b/libsrc/geos-cbm/disk/writeblock.s new file mode 100644 index 000000000..63a7194c0 --- /dev/null +++ b/libsrc/geos-cbm/disk/writeblock.s @@ -0,0 +1,24 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char WriteBlock (struct tr_se *myTS, char *buffer); + + .import popax, setoserror + .import gettrse + .export _WriteBlock + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_WriteBlock: + sta r4L + stx r4H + jsr popax + jsr gettrse + sta r1L + stx r1H + jsr WriteBlock + jmp setoserror diff --git a/libsrc/geos-cbm/disk/writebuff.s b/libsrc/geos-cbm/disk/writebuff.s new file mode 100644 index 000000000..96904ca0e --- /dev/null +++ b/libsrc/geos-cbm/disk/writebuff.s @@ -0,0 +1,21 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 26.10.1999, 2.1.2003 + +; char WriteBuff (struct tr_se*); + + .import setoserror + .import gettrse + .export _WriteBuff + + .include "../inc/diskdrv.inc" + .include "../inc/geossym.inc" + +_WriteBuff: + jsr gettrse + sta r1L + stx r1H + jsr WriteBuff + jmp setoserror diff --git a/libsrc/geos-cbm/dlgbox/Makefile b/libsrc/geos-cbm/dlgbox/Makefile new file mode 100644 index 000000000..15cd497ea --- /dev/null +++ b/libsrc/geos-cbm/dlgbox/Makefile @@ -0,0 +1,22 @@ +# +# Makefile for GEOS lib +# for cc65 +# +# + +%.o: %.c + @$(CC) $(CFLAGS) $< + @$(AS) -g -o $@ $(AFLAGS) $(*).s + +%.o: %.s + @$(AS) -o $@ $(AFLAGS) $< + +C_OBJS = messagebox.o +S_OBJS = dodlgbox.o rstrfrmdialogue.o\ + dbget2lines.o dlgboxyesno.o dlgboxokcancel.o dlgboxok.o dlgboxgetstring.o\ + dlgboxfileselect.o + +all: $(C_OBJS) $(S_OBJS) + +clean: + @$(RM) core *.~ $(S_OBJS) $(C_OBJS:.o=.s) $(C_OBJS) diff --git a/libsrc/geos-cbm/dlgbox/dbget2lines.s b/libsrc/geos-cbm/dlgbox/dbget2lines.s new file mode 100644 index 000000000..6e26b6ae7 --- /dev/null +++ b/libsrc/geos-cbm/dlgbox/dbget2lines.s @@ -0,0 +1,37 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.99 + + .export DB_get2lines + .importzp ptr3,ptr4 + .import popax + +.code + +DB_get2lines: + sta ptr4 ; fetch line 2 + stx ptr4+1 + jsr popax + sta ptr3 ; fetch line 1 + stx ptr3+1 + ldx #ptr3 + jsr checknull + ldx #ptr4 + jmp checknull + +checknull: + lda $0,x + ora $1,x + bne cn_end + lda #nullstring + sta $1,x +cn_end: rts + +.rodata + +nullstring: + .byte 0 diff --git a/libsrc/geos-cbm/dlgbox/dlgboxfileselect.s b/libsrc/geos-cbm/dlgbox/dlgboxfileselect.s new file mode 100644 index 000000000..92f97848e --- /dev/null +++ b/libsrc/geos-cbm/dlgbox/dlgboxfileselect.s @@ -0,0 +1,59 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.99 + +; char DlgBoxFileSelect (char *class, char ftype, char *fname); + + .export _DlgBoxFileSelect + .import popa, popax + .import _DoDlgBox + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + .include "../inc/const.inc" + .include "../inc/geosmac.ca65.inc" + +.code + +_DlgBoxFileSelect: + + sta tmp_r5 + stx tmp_r5+1 + jsr popa + sta tmp_r7L + jsr popax + sta tmp_r10 + stx tmp_r10+1 + +DB_FS_reload: + MoveW tmp_r5, r5 + MoveW tmp_r10, r10 + MoveB tmp_r7L, r7L + + lda #paramStrFileSelect + jsr _DoDlgBox + cmp #DISK + bne DB_FS_Fin + jsr OpenDisk + txa + beq DB_FS_reload +DB_FS_Fin: rts + +.rodata + +paramStrFileSelect: + .byte DEF_DB_POS | 1 + .byte DBGETFILES, 4, 4 + .byte OPEN, DBI_X_2, DBI_Y_0+16 + .byte DISK, DBI_X_2, DBI_Y_0+32+1 + .byte CANCEL, DBI_X_2, DBI_Y_0+64+3 + .byte NULL + +.bss + +tmp_r5: .res 2 +tmp_r7L: .res 1 +tmp_r10: .res 2 diff --git a/libsrc/geos-cbm/dlgbox/dlgboxgetstring.s b/libsrc/geos-cbm/dlgbox/dlgboxgetstring.s new file mode 100644 index 000000000..a7c78063b --- /dev/null +++ b/libsrc/geos-cbm/dlgbox/dlgboxgetstring.s @@ -0,0 +1,39 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.99 + +; char DlgBoxGetString (char *string, char strlen, char *line1,char *line2); + + .export _DlgBoxGetString + .import DB_get2lines, _DoDlgBox + .importzp ptr2, ptr3, ptr4 + .import popa, popax + + .include "../inc/geossym.inc" + .include "../inc/const.inc" + +.code + +_DlgBoxGetString: + jsr DB_get2lines + jsr popa + sta DB_strlen + jsr popax + sta ptr2 + stx ptr2+1 + lda #paramStrGetString + jmp _DoDlgBox + +.data + +paramStrGetString: + .byte DEF_DB_POS | 1 + .byte DBVARSTR, TXT_LN_X, TXT_LN_1_Y, ptr3 + .byte DBVARSTR, TXT_LN_X, TXT_LN_2_Y, ptr4 + .byte DBGETSTRING, TXT_LN_X, TXT_LN_3_Y, ptr2 +DB_strlen: .byte 17 + .byte CANCEL, DBI_X_2, DBI_Y_2 + .byte NULL diff --git a/libsrc/geos-cbm/dlgbox/dlgboxok.s b/libsrc/geos-cbm/dlgbox/dlgboxok.s new file mode 100644 index 000000000..abaf86fed --- /dev/null +++ b/libsrc/geos-cbm/dlgbox/dlgboxok.s @@ -0,0 +1,31 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.99 + +; char DlgBoxOk (char *line1,char *line2); + + .export _DlgBoxOk + .import DB_get2lines, _DoDlgBox + .importzp ptr3, ptr4 + + .include "../inc/geossym.inc" + .include "../inc/const.inc" + +.code + +_DlgBoxOk: + jsr DB_get2lines + lda #paramStrOk + jmp _DoDlgBox + +.rodata + +paramStrOk: + .byte DEF_DB_POS | 1 + .byte DBVARSTR, TXT_LN_X, TXT_LN_2_Y, ptr3 + .byte DBVARSTR, TXT_LN_X, TXT_LN_3_Y, ptr4 + .byte OK, DBI_X_0, DBI_Y_2 + .byte NULL diff --git a/libsrc/geos-cbm/dlgbox/dlgboxokcancel.s b/libsrc/geos-cbm/dlgbox/dlgboxokcancel.s new file mode 100644 index 000000000..e38eccd26 --- /dev/null +++ b/libsrc/geos-cbm/dlgbox/dlgboxokcancel.s @@ -0,0 +1,32 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.99 + +; char DlgBoxOkCancel (char *line1,char *line2); + + .export _DlgBoxOkCancel + .import DB_get2lines, _DoDlgBox + .importzp ptr3, ptr4 + + .include "../inc/geossym.inc" + .include "../inc/const.inc" + +.code + +_DlgBoxOkCancel: + jsr DB_get2lines + lda #paramStrOkCancel + jmp _DoDlgBox + +.rodata + +paramStrOkCancel: + .byte DEF_DB_POS | 1 + .byte DBVARSTR, TXT_LN_X, TXT_LN_2_Y, ptr3 + .byte DBVARSTR, TXT_LN_X, TXT_LN_3_Y, ptr4 + .byte OK, DBI_X_0, DBI_Y_2 + .byte CANCEL, DBI_X_2, DBI_Y_2 + .byte NULL diff --git a/libsrc/geos-cbm/dlgbox/dlgboxyesno.s b/libsrc/geos-cbm/dlgbox/dlgboxyesno.s new file mode 100644 index 000000000..09f697c99 --- /dev/null +++ b/libsrc/geos-cbm/dlgbox/dlgboxyesno.s @@ -0,0 +1,32 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.99 + +; char DlgBoxYesNo (char *line1,char *line2); + + .export _DlgBoxYesNo + .import DB_get2lines, _DoDlgBox + .importzp ptr3, ptr4 + + .include "../inc/geossym.inc" + .include "../inc/const.inc" + +.code + +_DlgBoxYesNo: + jsr DB_get2lines + lda #paramStrYesNo + jmp _DoDlgBox + +.rodata + +paramStrYesNo: + .byte DEF_DB_POS | 1 + .byte DBVARSTR, TXT_LN_X, TXT_LN_2_Y, ptr3 + .byte DBVARSTR, TXT_LN_X, TXT_LN_3_Y, ptr4 + .byte YES, DBI_X_0, DBI_Y_2 + .byte NO, DBI_X_2, DBI_Y_2 + .byte NULL diff --git a/libsrc/geos-cbm/dlgbox/dodlgbox.s b/libsrc/geos-cbm/dlgbox/dodlgbox.s new file mode 100644 index 000000000..3e8629b16 --- /dev/null +++ b/libsrc/geos-cbm/dlgbox/dodlgbox.s @@ -0,0 +1,20 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char DoDlgBox (char *myParamString); + + .export _DoDlgBox + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_DoDlgBox: + sta r0L + stx r0H + jsr DoDlgBox + ldx #0 + lda r0L + rts diff --git a/libsrc/geos-cbm/dlgbox/messagebox.c b/libsrc/geos-cbm/dlgbox/messagebox.c new file mode 100644 index 000000000..4fba1570c --- /dev/null +++ b/libsrc/geos-cbm/dlgbox/messagebox.c @@ -0,0 +1,85 @@ + +/* + * char MessageBox (char mode, const char *format, ...) + * + * Maciej 'YTM/Elysium' Witkowiak, 17.08.2003 + * + */ + +#include +#include + +void _mbprintout(void); + +static dlgBoxStr _mbdlg_EMPTY = { + DB_DEFPOS(1), + DB_OPVEC(&RstrFrmDialogue), + DB_USRROUT(&_mbprintout), + DB_END, +}; + +static dlgBoxStr _mbdlg_OK = { + DB_DEFPOS(1), + DB_USRROUT(&_mbprintout), + DB_ICON(OK, DBI_X_1, DBI_Y_2), + DB_END, +}; + +static dlgBoxStr _mbdlg_OKCANCEL = { + DB_DEFPOS(1), + DB_USRROUT(&_mbprintout), + DB_ICON(OK, DBI_X_0, DBI_Y_2), + DB_ICON(CANCEL, DBI_X_2, DBI_Y_2), + DB_END, +}; + +static dlgBoxStr _mbdlg_YESNO = { + DB_DEFPOS(1), + DB_USRROUT(&_mbprintout), + DB_ICON(YES, DBI_X_0, DBI_Y_2), + DB_ICON(NO, DBI_X_2, DBI_Y_2), + DB_END, +}; + +static dlgBoxStr *_mbboxes[] = { + &_mbdlg_EMPTY, + &_mbdlg_OK, + &_mbdlg_OKCANCEL, + &_mbdlg_YESNO +}; + +static char _mbbuffer[256]; + +char MessageBox(char mode, const char *format, ...) +{ + register char *buf; + va_list ap; + + /* first format out things */ + va_start(ap, format); + vsprintf(_mbbuffer, format, ap); + va_end(ap); + + /* replace LFs by CRs */ + buf = &_mbbuffer[0]; + while (*buf) { + if (*buf==LF) *buf=CR; + ++buf; + } + + /* validate mode */ + if (mode>=MB_LAST) + mode = MB_EMPTY; + + return DoDlgBox(_mbboxes[mode]); +} + +void _mbprintout(void) +{ + UseSystemFont(); + curWindow.top = DEF_DB_TOP; + curWindow.left = DEF_DB_LEFT+10; + curWindow.right = DEF_DB_RIGHT-10; + curWindow.bot = DEF_DB_BOT; + PutString(_mbbuffer, DEF_DB_TOP+10+curFontDesc.height, DEF_DB_LEFT+10 ); +} diff --git a/libsrc/geos-cbm/dlgbox/rstrfrmdialogue.s b/libsrc/geos-cbm/dlgbox/rstrfrmdialogue.s new file mode 100644 index 000000000..585e5b396 --- /dev/null +++ b/libsrc/geos-cbm/dlgbox/rstrfrmdialogue.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 25.12.99 + +; char RstrFrmDialogue (void); + + .export _RstrFrmDialogue + + .include "../inc/jumptab.inc" + +_RstrFrmDialogue = RstrFrmDialogue diff --git a/libsrc/geos-cbm/file/Makefile b/libsrc/geos-cbm/file/Makefile new file mode 100644 index 000000000..3bc506698 --- /dev/null +++ b/libsrc/geos-cbm/file/Makefile @@ -0,0 +1,21 @@ +# +# Makefile for GEOS lib +# for cc65 +# + +%.o: %.s + @$(AS) -o $@ $(AFLAGS) $< + + +S_OBJS = get1stdirentry.o getnxtdirentry.o\ + openrecordfile.o closerecordfile.o nextrecord.o previousrecord.o pointrecord.o\ + deleterecord.o insertrecord.o appendrecord.o readrecord.o writerecord.o\ + updaterecordfile.o\ + findfile.o followchain.o getfhdrinfo.o readfile.o savefile.o freefile.o\ + deletefile.o renamefile.o findftypes.o readbyte.o getfile.o\ + sysremove.o sysrename.o + +all: $(S_OBJS) + +clean: + @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos-cbm/file/appendrecord.s b/libsrc/geos-cbm/file/appendrecord.s new file mode 100644 index 000000000..9e2b2d85e --- /dev/null +++ b/libsrc/geos-cbm/file/appendrecord.s @@ -0,0 +1,17 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char AppendRecord (void); + + .import setoserror + .export _AppendRecord + + .include "../inc/jumptab.inc" + +_AppendRecord: + + jsr AppendRecord + jmp setoserror diff --git a/libsrc/geos-cbm/file/closerecordfile.s b/libsrc/geos-cbm/file/closerecordfile.s new file mode 100644 index 000000000..abfd0e719 --- /dev/null +++ b/libsrc/geos-cbm/file/closerecordfile.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char CloseRecordFile (void); + + .import setoserror + .export _CloseRecordFile + + .include "../inc/jumptab.inc" + +_CloseRecordFile: + jsr CloseRecordFile + jmp setoserror diff --git a/libsrc/geos-cbm/file/deletefile.s b/libsrc/geos-cbm/file/deletefile.s new file mode 100644 index 000000000..bc98b439b --- /dev/null +++ b/libsrc/geos-cbm/file/deletefile.s @@ -0,0 +1,19 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char DeleteFile (char *myName); + + .import setoserror + .export _DeleteFile + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_DeleteFile: + sta r0L + stx r0H + jsr DeleteFile + jmp setoserror diff --git a/libsrc/geos-cbm/file/deleterecord.s b/libsrc/geos-cbm/file/deleterecord.s new file mode 100644 index 000000000..aeaba7e05 --- /dev/null +++ b/libsrc/geos-cbm/file/deleterecord.s @@ -0,0 +1,17 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char DeleteRecord (void); + + .import setoserror + .export _DeleteRecord + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_DeleteRecord: + jsr DeleteRecord + jmp setoserror diff --git a/libsrc/geos-cbm/file/findfile.s b/libsrc/geos-cbm/file/findfile.s new file mode 100644 index 000000000..1ed04a743 --- /dev/null +++ b/libsrc/geos-cbm/file/findfile.s @@ -0,0 +1,19 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char FindFile (char *myName); + + .import setoserror + .export _FindFile + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_FindFile: + sta r6L + stx r6H + jsr FindFile + jmp setoserror diff --git a/libsrc/geos-cbm/file/findftypes.s b/libsrc/geos-cbm/file/findftypes.s new file mode 100644 index 000000000..bc5fcf3bd --- /dev/null +++ b/libsrc/geos-cbm/file/findftypes.s @@ -0,0 +1,38 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char FindFTypes (char *buffer, char fileType, char fileMax, char *Class); + + .export _FindFTypes + .import popax, popa, setoserror + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +.code + +_FindFTypes: + sta r10L + stx r10H + jsr popa + sta r7H + sta tmpFileMax + jsr popa + sta r7L + jsr popax + sta r6L + stx r6H + jsr FindFTypes + jsr setoserror +; return (fileMax - r7H) + lda tmpFileMax + sec + sbc r7H + rts + +.bss + +tmpFileMax: .res 1 diff --git a/libsrc/geos-cbm/file/followchain.s b/libsrc/geos-cbm/file/followchain.s new file mode 100644 index 000000000..12fe6600d --- /dev/null +++ b/libsrc/geos-cbm/file/followchain.s @@ -0,0 +1,24 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char FollowChain (struct tr_se *myTrSe, char *buffer); + + .export _FollowChain + .import popax, setoserror + .import gettrse + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_FollowChain: + sta r3L + stx r3H + jsr popax + jsr gettrse + sta r1L + stx r1H + jsr FollowChain + jmp setoserror diff --git a/libsrc/geos-cbm/file/freefile.s b/libsrc/geos-cbm/file/freefile.s new file mode 100644 index 000000000..4e2acd1c7 --- /dev/null +++ b/libsrc/geos-cbm/file/freefile.s @@ -0,0 +1,19 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char FreeFile (struct trse myTrSe[]); + + .import setoserror + .export _FreeFile + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_FreeFile: + sta r9L + stx r9H + jsr FreeFile + jmp setoserror diff --git a/libsrc/geos-cbm/file/get1stdirentry.s b/libsrc/geos-cbm/file/get1stdirentry.s new file mode 100644 index 000000000..79db1fb7a --- /dev/null +++ b/libsrc/geos-cbm/file/get1stdirentry.s @@ -0,0 +1,20 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 26.10.99 + +; struct filehandle* Get1stDirEntry (void); + + .import __oserror + .export _Get1stDirEntry + + .include "../inc/diskdrv.inc" + .include "../inc/geossym.inc" + +_Get1stDirEntry: + jsr Get1stDirEntry + stx __oserror + lda r5L + ldx r5H + rts diff --git a/libsrc/geos-cbm/file/getfhdrinfo.s b/libsrc/geos-cbm/file/getfhdrinfo.s new file mode 100644 index 000000000..03171f082 --- /dev/null +++ b/libsrc/geos-cbm/file/getfhdrinfo.s @@ -0,0 +1,19 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char GetFHdrInfo (struct filehandle *myFile); + + .import setoserror + .export _GetFHdrInfo + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_GetFHdrInfo: + sta r9L + stx r9H + jsr GetFHdrInfo + jmp setoserror diff --git a/libsrc/geos-cbm/file/getfile.s b/libsrc/geos-cbm/file/getfile.s new file mode 100644 index 000000000..336ef2411 --- /dev/null +++ b/libsrc/geos-cbm/file/getfile.s @@ -0,0 +1,32 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 4.4.2003 + +; char __fastcall__ GetFile(char flag, const char *fname, const char *loadaddr, const char *datadname, char *datafname); + + .export _GetFile + .import popa, popax, setoserror + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_GetFile: + sta r3L + stx r3H + jsr popax + sta r2L + stx r2H + jsr popax + sta r7L + stx r7H + jsr popax + sta r6L + stx r6H + jsr popa + sta r0L + lda #0 + sta r10L + jsr GetFile + jmp setoserror diff --git a/libsrc/geos-cbm/file/getnxtdirentry.s b/libsrc/geos-cbm/file/getnxtdirentry.s new file mode 100644 index 000000000..bf20bf696 --- /dev/null +++ b/libsrc/geos-cbm/file/getnxtdirentry.s @@ -0,0 +1,20 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 26.10.99 + +; struct filehandle* GetNxtDirEntry (void); + + .import __oserror + .export _GetNxtDirEntry + + .include "../inc/diskdrv.inc" + .include "../inc/geossym.inc" + +_GetNxtDirEntry: + jsr GetNxtDirEntry + stx __oserror + lda r5L + ldx r5H + rts diff --git a/libsrc/geos-cbm/file/insertrecord.s b/libsrc/geos-cbm/file/insertrecord.s new file mode 100644 index 000000000..b27af3b97 --- /dev/null +++ b/libsrc/geos-cbm/file/insertrecord.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char InsertRecord (void); + + .import setoserror + .export _InsertRecord + + .include "../inc/jumptab.inc" + +_InsertRecord: + jsr InsertRecord + jmp setoserror diff --git a/libsrc/geos-cbm/file/nextrecord.s b/libsrc/geos-cbm/file/nextrecord.s new file mode 100644 index 000000000..df3806a2f --- /dev/null +++ b/libsrc/geos-cbm/file/nextrecord.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char NextRecord (void); + + .import setoserror + .export _NextRecord + + .include "../inc/jumptab.inc" + +_NextRecord: + jsr NextRecord + jmp setoserror diff --git a/libsrc/geos-cbm/file/openrecordfile.s b/libsrc/geos-cbm/file/openrecordfile.s new file mode 100644 index 000000000..40f8497f9 --- /dev/null +++ b/libsrc/geos-cbm/file/openrecordfile.s @@ -0,0 +1,19 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char OpenRecordFile (char *myName); + + .import setoserror + .export _OpenRecordFile + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_OpenRecordFile: + sta r0L + stx r0H + jsr OpenRecordFile + jmp setoserror diff --git a/libsrc/geos-cbm/file/pointrecord.s b/libsrc/geos-cbm/file/pointrecord.s new file mode 100644 index 000000000..3bf6dec60 --- /dev/null +++ b/libsrc/geos-cbm/file/pointrecord.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char PointRecord (char recordNum); + + .import setoserror + .export _PointRecord + + .include "../inc/jumptab.inc" + +_PointRecord: + jsr PointRecord + jmp setoserror diff --git a/libsrc/geos-cbm/file/previousrecord.s b/libsrc/geos-cbm/file/previousrecord.s new file mode 100644 index 000000000..d535abf1a --- /dev/null +++ b/libsrc/geos-cbm/file/previousrecord.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char PreviousRecord (void); + + .import setoserror + .export _PreviousRecord + + .include "../inc/jumptab.inc" + +_PreviousRecord: + jsr PreviousRecord + jmp setoserror diff --git a/libsrc/geos-cbm/file/readbyte.s b/libsrc/geos-cbm/file/readbyte.s new file mode 100644 index 000000000..fe7c82aa6 --- /dev/null +++ b/libsrc/geos-cbm/file/readbyte.s @@ -0,0 +1,18 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char ReadByte (void); + + .import __oserror + .export _ReadByte + + .include "../inc/jumptab.inc" + +_ReadByte: + jsr ReadByte + stx __oserror + ldx #0 + rts diff --git a/libsrc/geos-cbm/file/readfile.s b/libsrc/geos-cbm/file/readfile.s new file mode 100644 index 000000000..ac1cda404 --- /dev/null +++ b/libsrc/geos-cbm/file/readfile.s @@ -0,0 +1,27 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char ReadFile (struct tr_se *myTS, char *buffer, int length); + + .export _ReadFile + .import popax, setoserror + .import gettrse + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_ReadFile: + sta r2L + stx r2H + jsr popax + sta r7L + stx r7H + jsr popax + jsr gettrse + sta r1L + stx r1H + jsr ReadFile + jmp setoserror diff --git a/libsrc/geos-cbm/file/readrecord.s b/libsrc/geos-cbm/file/readrecord.s new file mode 100644 index 000000000..6b1a46d69 --- /dev/null +++ b/libsrc/geos-cbm/file/readrecord.s @@ -0,0 +1,22 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char ReadRecord (char *buffer, int length); + + .export _ReadRecord + .import popax, setoserror + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_ReadRecord: + sta r2L + stx r2H + jsr popax + sta r7L + stx r7H + jsr ReadRecord + jmp setoserror diff --git a/libsrc/geos-cbm/file/renamefile.s b/libsrc/geos-cbm/file/renamefile.s new file mode 100644 index 000000000..709e10f7b --- /dev/null +++ b/libsrc/geos-cbm/file/renamefile.s @@ -0,0 +1,22 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char RenameFile (char *old, char *new); + + .export _RenameFile + .import popax, setoserror + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_RenameFile: + sta r0L + stx r0H + jsr popax + sta r6L + stx r6H + jsr RenameFile + jmp setoserror diff --git a/libsrc/geos-cbm/file/savefile.s b/libsrc/geos-cbm/file/savefile.s new file mode 100644 index 000000000..78e9b3cce --- /dev/null +++ b/libsrc/geos-cbm/file/savefile.s @@ -0,0 +1,22 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char SaveFile (char skip, struct fileheader *myHeader); + + .import setoserror + .import popa + .export _SaveFile + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_SaveFile: + sta r9L + stx r9H + jsr popa + sta r10L + jsr SaveFile + jmp setoserror diff --git a/libsrc/geos-cbm/file/sysremove.s b/libsrc/geos-cbm/file/sysremove.s new file mode 100644 index 000000000..431144730 --- /dev/null +++ b/libsrc/geos-cbm/file/sysremove.s @@ -0,0 +1,20 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 19.07.2005 + +; unsigned char __fastcall__ _sysremove (const char* name); + + .export __sysremove + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +__sysremove: + sta r0L + stx r0H + jsr DeleteFile + txa + ldx #0 + rts diff --git a/libsrc/geos-cbm/file/sysrename.s b/libsrc/geos-cbm/file/sysrename.s new file mode 100644 index 000000000..590ca9e6b --- /dev/null +++ b/libsrc/geos-cbm/file/sysrename.s @@ -0,0 +1,24 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 19.07.2005 + +; unsigned char __fastcall__ _sysrename (const char* oldname, const char* newname); + + .export __sysrename + .import popax + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +__sysrename: + sta r0L + stx r0H + jsr popax + sta r6L + stx r6H + jsr RenameFile + txa + ldx #0 + rts diff --git a/libsrc/geos-cbm/file/updaterecordfile.s b/libsrc/geos-cbm/file/updaterecordfile.s new file mode 100644 index 000000000..e395c4af9 --- /dev/null +++ b/libsrc/geos-cbm/file/updaterecordfile.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char UpdateRecordFile (void); + + .import setoserror + .export _UpdateRecordFile + + .include "../inc/jumptab.inc" + +_UpdateRecordFile: + jsr UpdateRecordFile + jmp setoserror diff --git a/libsrc/geos-cbm/file/writerecord.s b/libsrc/geos-cbm/file/writerecord.s new file mode 100644 index 000000000..1a6d08772 --- /dev/null +++ b/libsrc/geos-cbm/file/writerecord.s @@ -0,0 +1,22 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 25.12.1999, 2.1.2003 + +; char WriteRecord (char *buffer, int length); + + .export _WriteRecord + .import popax, setoserror + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_WriteRecord: + sta r2L + stx r2H + jsr popax + sta r7L + stx r7H + jsr WriteRecord + jmp setoserror diff --git a/libsrc/geos-cbm/graph/Makefile b/libsrc/geos-cbm/graph/Makefile new file mode 100644 index 000000000..f69213c41 --- /dev/null +++ b/libsrc/geos-cbm/graph/Makefile @@ -0,0 +1,21 @@ +# +# Makefile for GEOS lib +# for cc65 +# +# + +%.o: %.s + @$(AS) -o $@ $(AFLAGS) $< + + +S_OBJS = drawline.o drawpoint.o framerectangle.o hlineregs.o horizontalline.o\ + imprintrectangle.o invertline.o invertrectangle.o pointregs.o recoverline.o\ + recoverrectangle.o rectangle.o initdrawwindow.o setpattern.o testpoint.o verticalline.o\ + put_char.o putdecimal.o putstring.o usesystemfont.o\ + getcharwidth.o loadcharset.o bitmapup.o bitmapregs.o bitmapclip.o bitotherclip.o\ + graphicsstring.o getintcharint.o + +all: $(S_OBJS) + +clean: + @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos-cbm/graph/bitmapclip.s b/libsrc/geos-cbm/graph/bitmapclip.s new file mode 100644 index 000000000..9876efe8f --- /dev/null +++ b/libsrc/geos-cbm/graph/bitmapclip.s @@ -0,0 +1,25 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void BitmapClip (char skipl, char skipr, int skipy, struct iconpic *myGfx); + + .import popa, popax + .import BitmapRegs + .export _BitmapClip + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_BitmapClip: + jsr BitmapRegs + jsr popax + sta r12L + stx r12H + jsr popa + sta r11H + jsr popa + sta r11L + jmp BitmapClip diff --git a/libsrc/geos-cbm/graph/bitmapregs.s b/libsrc/geos-cbm/graph/bitmapregs.s new file mode 100644 index 000000000..068239b1a --- /dev/null +++ b/libsrc/geos-cbm/graph/bitmapregs.s @@ -0,0 +1,22 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + + .importzp ptr4 + + .export BitmapRegs + + .include "../inc/geossym.inc" + +BitmapRegs: ;a/x is a struct iconpic* + sta ptr4 + stx ptr4+1 + ldy #0 +bmpLp: lda (ptr4),y + sta r0L,y + iny + cpy #6 + bne bmpLp + rts diff --git a/libsrc/geos-cbm/graph/bitmapup.s b/libsrc/geos-cbm/graph/bitmapup.s new file mode 100644 index 000000000..fbaa5f463 --- /dev/null +++ b/libsrc/geos-cbm/graph/bitmapup.s @@ -0,0 +1,17 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void BitmapUp (struct iconpic *myGfx); + + + .import BitmapRegs + .export _BitmapUp + + .include "../inc/jumptab.inc" + +_BitmapUp: + jsr BitmapRegs + jmp BitmapUp diff --git a/libsrc/geos-cbm/graph/bitotherclip.s b/libsrc/geos-cbm/graph/bitotherclip.s new file mode 100644 index 000000000..6da0f4e97 --- /dev/null +++ b/libsrc/geos-cbm/graph/bitotherclip.s @@ -0,0 +1,37 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void BitOtherClip (void *proc1, void* proc2, char skipl, char skipr, int skipy, +; struct iconpic *myGfx); + +; both proc1, proc2 should be: char __fastcall something (void); +; proc1 is called before reading a byte (.A returns next data) +; proc2 is called before reading each byte which is not pattern (code >219) + + + .import popa, popax + .import BitOtherRegs + .export _BitOtherClip + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_BitOtherClip: + jsr BitOtherRegs + jsr popax + sta r12L + stx r12H + jsr popa + sta r11H + jsr popa + sta r11L + jsr popax + sta r14L + stx r14H + jsr popax + sta r13L + stx r13H + jmp BitOtherClip diff --git a/libsrc/geos-cbm/graph/drawline.s b/libsrc/geos-cbm/graph/drawline.s new file mode 100644 index 000000000..06d05f663 --- /dev/null +++ b/libsrc/geos-cbm/graph/drawline.s @@ -0,0 +1,31 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 29.10.99, 5.03.2003 + +; void DrawLine (char mode, struct window *mywindow); + + .import _InitDrawWindow + .import popa + .importzp tmp1 + .export _DrawLine + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + .include "../inc/geosmac.ca65.inc" + +_DrawLine: + tay + PushW r2 + tya + jsr _InitDrawWindow + MoveW r2, r11 + PopW r2 + jsr popa + sta tmp1 + clc + bit tmp1 + bvc @1 + sec +@1: jmp DrawLine diff --git a/libsrc/geos-cbm/graph/drawpoint.s b/libsrc/geos-cbm/graph/drawpoint.s new file mode 100644 index 000000000..7c212176d --- /dev/null +++ b/libsrc/geos-cbm/graph/drawpoint.s @@ -0,0 +1,25 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 29.10.99, 05.3.2003 + +; void DrawPoint (char mode, struct pixel *mypixel); + + + .import PointRegs + .import popa + .importzp tmp1 + .export _DrawPoint + + .include "../inc/jumptab.inc" + +_DrawPoint: + jsr PointRegs + jsr popa + sta tmp1 + clc + bit tmp1 + bvc @1 + sec +@1: jmp DrawPoint diff --git a/libsrc/geos-cbm/graph/framerectangle.s b/libsrc/geos-cbm/graph/framerectangle.s new file mode 100644 index 000000000..e9b73784a --- /dev/null +++ b/libsrc/geos-cbm/graph/framerectangle.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 29.10.99 + +; void FrameRectangle (char pattern); + + .export _FrameRectangle + + .include "../inc/jumptab.inc" + +_FrameRectangle = FrameRectangle diff --git a/libsrc/geos-cbm/graph/getcharwidth.s b/libsrc/geos-cbm/graph/getcharwidth.s new file mode 100644 index 000000000..82ffd1018 --- /dev/null +++ b/libsrc/geos-cbm/graph/getcharwidth.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char GetCharWidth (char character); + + .export _GetCharWidth + + .include "../inc/jumptab.inc" + +_GetCharWidth: + jsr GetCharWidth + ldx #0 + rts diff --git a/libsrc/geos-cbm/graph/getintcharint.s b/libsrc/geos-cbm/graph/getintcharint.s new file mode 100644 index 000000000..fdf5af764 --- /dev/null +++ b/libsrc/geos-cbm/graph/getintcharint.s @@ -0,0 +1,21 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 11.03.2000 + + .import popa, popax + .export getintcharint + + .include "../inc/geossym.inc" + +getintcharint: + sta r11L + stx r11H + jsr popa + sta r1H + jsr popax + sta r0L + stx r0H + rts + diff --git a/libsrc/geos-cbm/graph/graphicsstring.s b/libsrc/geos-cbm/graph/graphicsstring.s new file mode 100644 index 000000000..3e751fc95 --- /dev/null +++ b/libsrc/geos-cbm/graph/graphicsstring.s @@ -0,0 +1,17 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 25.12.99 + +; void GraphicsString (char *myString); + + .export _GraphicsString + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_GraphicsString: + sta r0L + stx r0H + jmp GraphicsString diff --git a/libsrc/geos-cbm/graph/hlineregs.s b/libsrc/geos-cbm/graph/hlineregs.s new file mode 100644 index 000000000..8b5f2345a --- /dev/null +++ b/libsrc/geos-cbm/graph/hlineregs.s @@ -0,0 +1,22 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 29.10.99 + + + .import popax, popa + + .export HLineRegs + + .include "../inc/geossym.inc" + +HLineRegs: + stx r4H + sta r4L + jsr popax + stx r3H + sta r3L + jsr popa + sta r11L + rts diff --git a/libsrc/geos-cbm/graph/horizontalline.s b/libsrc/geos-cbm/graph/horizontalline.s new file mode 100644 index 000000000..fa68ac73f --- /dev/null +++ b/libsrc/geos-cbm/graph/horizontalline.s @@ -0,0 +1,19 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 29.10.99 + +; void HorizontalLine (char pattern, char y, int xstart, int xend); + + .import popa + .import HLineRegs + + .export _HorizontalLine + + .include "../inc/jumptab.inc" + +_HorizontalLine: + jsr HLineRegs + jsr popa + jmp HorizontalLine diff --git a/libsrc/geos-cbm/graph/imprintrectangle.s b/libsrc/geos-cbm/graph/imprintrectangle.s new file mode 100644 index 000000000..02b896ad3 --- /dev/null +++ b/libsrc/geos-cbm/graph/imprintrectangle.s @@ -0,0 +1,14 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void ImprintRectangle (void); + + .export _ImprintRectangle + + .include "../inc/jumptab.inc" + +_ImprintRectangle = ImprintRectangle + diff --git a/libsrc/geos-cbm/graph/initdrawwindow.s b/libsrc/geos-cbm/graph/initdrawwindow.s new file mode 100644 index 000000000..307af72ea --- /dev/null +++ b/libsrc/geos-cbm/graph/initdrawwindow.s @@ -0,0 +1,25 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 29.10.99 +; 11.03.2000 + +; void InitDrawWindow (struct window *myWindow); + + .importzp ptr4 + + .export _InitDrawWindow + + .include "../inc/geossym.inc" + +_InitDrawWindow: ;a/x is a struct window* + sta ptr4 + stx ptr4+1 + ldy #0 +copyWin: lda (ptr4),y + sta r2L,y + iny + cpy #6 + bne copyWin + rts diff --git a/libsrc/geos-cbm/graph/invertline.s b/libsrc/geos-cbm/graph/invertline.s new file mode 100644 index 000000000..dcae0b46e --- /dev/null +++ b/libsrc/geos-cbm/graph/invertline.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 29.10.99 + +; void InvertLine (char y, int xstart, int xend); + + .import HLineRegs + .export _InvertLine + + .include "../inc/jumptab.inc" + +_InvertLine: + jsr HLineRegs + jmp InvertLine diff --git a/libsrc/geos-cbm/graph/invertrectangle.s b/libsrc/geos-cbm/graph/invertrectangle.s new file mode 100644 index 000000000..0ef9d8580 --- /dev/null +++ b/libsrc/geos-cbm/graph/invertrectangle.s @@ -0,0 +1,14 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 29.10.99 + +; void InvertRectangle (void); + + .export _InvertRectangle + + .include "../inc/jumptab.inc" + +_InvertRectangle = InvertRectangle + diff --git a/libsrc/geos-cbm/graph/loadcharset.s b/libsrc/geos-cbm/graph/loadcharset.s new file mode 100644 index 000000000..d61b7f98b --- /dev/null +++ b/libsrc/geos-cbm/graph/loadcharset.s @@ -0,0 +1,17 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void LoadCharSet (struct fontdesc *myFont); + + .export _LoadCharSet + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_LoadCharSet: + sta r0L + stx r0H + jmp LoadCharSet diff --git a/libsrc/geos-cbm/graph/pointregs.s b/libsrc/geos-cbm/graph/pointregs.s new file mode 100644 index 000000000..f87667aa3 --- /dev/null +++ b/libsrc/geos-cbm/graph/pointregs.s @@ -0,0 +1,25 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 29.10.99 + + .importzp ptr4 + + .export PointRegs + + .include "../inc/geossym.inc" + +PointRegs: ;a/x is a struct pixel* + sta ptr4 + stx ptr4+1 + ldy #0 + lda (ptr4),y + sta r3L + iny + lda (ptr4),y + sta r3H + iny + lda (ptr4),y + sta r11L + rts diff --git a/libsrc/geos-cbm/graph/put_char.s b/libsrc/geos-cbm/graph/put_char.s new file mode 100644 index 000000000..ed885800e --- /dev/null +++ b/libsrc/geos-cbm/graph/put_char.s @@ -0,0 +1,21 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void PutChar (char character, char y, int x); + + .import popa + .export _PutChar + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_PutChar: + sta r11L + stx r11H + jsr popa + sta r1H + jsr popa + jmp PutChar diff --git a/libsrc/geos-cbm/graph/putdecimal.s b/libsrc/geos-cbm/graph/putdecimal.s new file mode 100644 index 000000000..587219a25 --- /dev/null +++ b/libsrc/geos-cbm/graph/putdecimal.s @@ -0,0 +1,18 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 30.10.99, 17.8.2003 + +; void PutDecimal (char style, unsigned value, char y, int x); + + .import popa, popax + .import getintcharint + .export _PutDecimal + + .include "../inc/jumptab.inc" + +_PutDecimal: + jsr getintcharint + jsr popa + jmp PutDecimal diff --git a/libsrc/geos-cbm/graph/putstring.s b/libsrc/geos-cbm/graph/putstring.s new file mode 100644 index 000000000..53b685d0d --- /dev/null +++ b/libsrc/geos-cbm/graph/putstring.s @@ -0,0 +1,17 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void PutString (char *mytxt, char y, int x); + + .import popax, popa + .import getintcharint + .export _PutString + + .include "../inc/jumptab.inc" + +_PutString: + jsr getintcharint + jmp PutString diff --git a/libsrc/geos-cbm/graph/recoverline.s b/libsrc/geos-cbm/graph/recoverline.s new file mode 100644 index 000000000..1a59ae247 --- /dev/null +++ b/libsrc/geos-cbm/graph/recoverline.s @@ -0,0 +1,18 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 29.10.99 + +; void RecoverLine (char y, int xstart, int xend); + + .import HLineRegs + + .export _RecoverLine + + .include "../inc/jumptab.inc" + +_RecoverLine: + jsr HLineRegs + jmp RecoverLine + diff --git a/libsrc/geos-cbm/graph/recoverrectangle.s b/libsrc/geos-cbm/graph/recoverrectangle.s new file mode 100644 index 000000000..426b83d75 --- /dev/null +++ b/libsrc/geos-cbm/graph/recoverrectangle.s @@ -0,0 +1,14 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 29.10.99 + +; void RecoverRectangle (void); + + .export _RecoverRectangle + + .include "../inc/jumptab.inc" + +_RecoverRectangle = RecoverRectangle + diff --git a/libsrc/geos-cbm/graph/rectangle.s b/libsrc/geos-cbm/graph/rectangle.s new file mode 100644 index 000000000..c25a4e64d --- /dev/null +++ b/libsrc/geos-cbm/graph/rectangle.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 29.10.99 + +; void Rectangle (void); + + .export _Rectangle + + .include "../inc/jumptab.inc" + +_Rectangle = Rectangle diff --git a/libsrc/geos-cbm/graph/setpattern.s b/libsrc/geos-cbm/graph/setpattern.s new file mode 100644 index 000000000..e5c80bf10 --- /dev/null +++ b/libsrc/geos-cbm/graph/setpattern.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 29.10.99 + +; void SetPattern (char pattern); + + .export _SetPattern + + .include "../inc/jumptab.inc" + +_SetPattern = SetPattern diff --git a/libsrc/geos-cbm/graph/testpoint.s b/libsrc/geos-cbm/graph/testpoint.s new file mode 100644 index 000000000..6a502cc96 --- /dev/null +++ b/libsrc/geos-cbm/graph/testpoint.s @@ -0,0 +1,20 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 29.10.1999, 2.1.2003 + +; char TestPoint (struct pixel *mypixel); + + .import PointRegs + .import return0, return1 + .export _TestPoint + + .include "../inc/jumptab.inc" + +_TestPoint: + jsr PointRegs + jsr TestPoint + bcc goFalse + jmp return1 +goFalse: jmp return0 diff --git a/libsrc/geos-cbm/graph/usesystemfont.s b/libsrc/geos-cbm/graph/usesystemfont.s new file mode 100644 index 000000000..09072733e --- /dev/null +++ b/libsrc/geos-cbm/graph/usesystemfont.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void UseSystemFont (void); + + .export _UseSystemFont + + .include "../inc/jumptab.inc" + +_UseSystemFont = UseSystemFont diff --git a/libsrc/geos-cbm/graph/verticalline.s b/libsrc/geos-cbm/graph/verticalline.s new file mode 100644 index 000000000..5ce077082 --- /dev/null +++ b/libsrc/geos-cbm/graph/verticalline.s @@ -0,0 +1,24 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 29.10.99 + +; void VerticalLine (char pattern, char ystart, char yend, int x); + + .import popa + + .export _VerticalLine + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_VerticalLine: + stx r4H + sta r4L + jsr popa + sta r3H + jsr popa + sta r3L + jsr popa + jmp VerticalLine diff --git a/libsrc/geos-cbm/inc/const.inc b/libsrc/geos-cbm/inc/const.inc new file mode 100644 index 000000000..fce3e2839 --- /dev/null +++ b/libsrc/geos-cbm/inc/const.inc @@ -0,0 +1,424 @@ + +;GeosConst - various system constans sorted by function +;reassembled by Maciej 'YTM/Elysium' Witkowiak +;4-2-99, 18-3-99 + +NULL = 0 +FALSE = NULL +TRUE = $ff + +MOUSE_SPRNUM = 0 + +DISK_DRV_LGH = $0d80 + +; +;filetypes +; GEOS +NOT_GEOS = 0 +BASIC = 1 +ASSEMBLY = 2 +DATA = 3 +SYSTEM = 4 +DESK_ACC = 5 +APPLICATION = 6 +APPL_DATA = 7 +FONT = 8 +PRINTER = 9 +INPUT_DEVICE = 10 +DISK_DEVICE = 11 +SYSTEM_BOOT = 12 +TEMPORARY = 13 +AUTO_EXEC = 14 +INPUT_128 = 15 +NUMFILETYPES = 16 +; structure +SEQUENTIAL = 0 +VLIR = 1 +; DOS +DEL = 0 +SEQ = 1 +PRG = 2 +USR = 3 +REL = 4 +CBM = 5 + +;drivetypes +DRV_NULL = 0 +DRV_1541 = 1 +DRV_1571 = 2 +DRV_1581 = 3 +DRV_NETWORK = 15 + +;various disk +REL_FILE_NUM = 9 +CMND_FILE_NUM = 15 +MAX_CMND_STR = 32 +DIR_1581_TRACK = 40 +DIR_ACC_CHAN = 13 +DIR_TRACK = 18 +N_TRACKS = 35 +DK_NM_ID_LEN = 18 +TRACK = 9 +SECTOR = 12 +TOTAL_BLOCKS = 664 + +;colours +BLACK = 0 +WHITE = 1 +RED = 2 +CYAN = 3 +PURPLE = 4 +GREEN = 5 +BLUE = 6 +YELLOW = 7 +ORANGE = 8 +BROWN = 9 +LTRED = 10 +DKGREY = 11 +GREY = 12 +MEDGREY = 12 +LTGREEN = 13 +LTBLUE = 14 +LTGREY = 15 + +;vic memory banks +GRBANK0 = %11 +GRBANK1 = %10 +GRBANK2 = %01 +GRBANK3 = %00 + +;screen +VIC_X_POS_OFF = 24 +VIC_Y_POS_OFF = 50 +SC_BYTE_WIDTH = 40 +SC_PIX_HEIGHT = 200 +SC_PIX_WIDTH = 320 +SC_SIZE = 8000 +;128 screen size constants +SCREENBYTEWIDTH = 80 +SCREENPIXELWIDTH = 640 + + +;control characters +EOF = 0 +BACKSPACE = 8 +FORWARDSPACE = 9 +TAB = 9 +LF = 10 +HOME = 11 +PAGE_BREAK = 12 +UPLINE = 12 +CR = 13 +ULINEON = 14 +ULINEOFF = 15 +ESC_GRAPHICS = 16 +ESC_RULER = 17 +REV_ON = 18 +REV_OFF = 19 +GOTOX = 20 +GOTOY = 21 +GOTOXY = 22 +NEWCARDSET = 23 +BOLDON = 24 +ITALICON = 25 +OUTLINEON = 26 +PLAINTEXT = 27 + +;keyboard +KEY_F1 = 1 +KEY_F2 = 2 +KEY_F3 = 3 +KEY_F4 = 4 +KEY_F5 = 5 +KEY_F6 = 6 +KEY_NOSCRL = 7 +KEY_ENTER = 11 +KEY_F7 = 14 +KEY_F8 = 15 +KEY_UP = 16 +KEY_DOWN = 17 +KEY_HOME = 18 +KEY_CLEAR = 19 +KEY_LARROW = 20 +KEY_UPARROR = 21 +KEY_STOP = 22 +KEY_RUN = 23 +KEY_BPS = 24 +KEY_HELP = 25 +KEY_ALT = 26 +KEY_ESC = 27 +KEY_INSERT = 28 +KEY_DELETE = 29 +KEY_RIGHT = 30 +KEY_INVALID = 31 +KEY_LEFT = BACKSPACE + +;DialogBox +; icons +OK = 1 +CANCEL = 2 +YES = 3 +NO = 4 +OPEN = 5 +DISK = 6 +; commands +DBTXTSTR = 11 +DBVARSTR = 12 +DBGETSTRING = 13 +DBSYSOPV = 14 +DBGRPHSTR = 15 +DBGETFILES = 16 +DBOPVEC = 17 +DBUSRICON = 18 +DB_USR_ROUT = 19 +; tabulation in standard window +DBI_X_0 = 1 +DBI_X_1 = 9 +DBI_X_2 = 17 +DBI_Y_0 = 8 +DBI_Y_1 = 40 +DBI_Y_2 = 72 +; standard window +SET_DB_POS = 0 +DEF_DB_POS = $80 +DEF_DB_TOP = 32 +DEF_DB_BOT = 127 +DEF_DB_LEFT = 64 +DEF_DB_RIGHT = 255 +; text tabulation +TXT_LN_1_Y = 16 +TXT_LN_2_Y = 32 +TXT_LN_3_Y = 48 +TXT_LN_4_Y = 64 +TXT_LN_5_Y = 80 +TXT_LN_X = 16 +; ??? +SYSDBI_HEIGHT = 16 +SYSDBI_WIDTH = 6 + +;GraphicsString - commands +MOVEPENTO = 1 +LINETO = 2 +RECTANGLETO = 3 +NEWPATTERN = 5 +ESC_PUTSTRING = 6 +FRAME_RECTO = 7 +PEN_X_DELTA = 8 +PEN_Y_DELTA = 9 +PEN_XY_DELTA = 10 + + +;DoMenu - menutypes +MENU_ACTION = $00 +DYN_SUB_MENU = $40 +SUB_MENU = $80 +HORIZONTAL = %00000000 +VERTICAL = %10000000 + +;Errors +ANY_FAULT = %11110000 +NO_BLOCKS = 1 +INV_TRACK = 2 +INSUFF_SPACE = 3 +FULL_DIRECTORY = 4 +FILE_NOT_FOUND = 5 +BAD_BAM = 6 +UNOPENED_VLIR = 7 +INV_RECORD = 8 +OUT_OF_RECORDS = 9 +STRUCT_MISMAT = 10 +BFR_OVERFLOW = 11 +CANCEL_ERR = 12 +DEV_NOT_FOUND = 13 +INCOMPATIBLE = 14 +HDR_NOT_THERE = $20 +NO_SYNC = $21 +DBLK_NOT_THERE = $22 +DAT_CHKSUM_ERR = $23 +WR_VER_ERR = $25 +WR_PR_ON = $26 +HDR_CHKSUM_ERR = $27 +DSK_ID_MISMAT = $29 +BYTE_DEC_ERR = $2e +DOS_MISMATCH = $73 + +;Offsets +; ??? +OFF_INDEX_PTR = 1 +; icons +OFF_NM_ICNS = 0 +OFF_IC_XMOUSE = 1 +OFF_IC_YMOUSE = 3 +OFF_PIC_ICON = 0 +OFF_X_ICON_POS = 2 +OFF_Y_ICON_POS = 3 +OFF_WDTH_ICON = 4 +OFF_HEIGHT_ICON = 5 +OFF_SRV_RT_ICON = 6 +OFF_NX_ICON = 8 +; menu +OFF_MY_TOP = 0 +OFF_MY_BOT = 1 +OFF_MX_LEFT = 2 +OFF_MX_RIGHT = 4 +OFF_NUM_M_ITEMS = 6 +OFF_1ST_M_ITEM = 7 +; dialog box +OFF_DB_FORM = 0 +OFF_DB_TOP = 1 +OFF_DB_BOT = 2 +OFF_DB_LEFT = 3 +OFF_DB_RIGHT = 5 +OFF_DB_1STCMD = 7 +; directory +; disk header +OFF_TO_BAM = 4 +OFF_DISK_NAME = 144 +OFF_GS_DTYPE = 189 +OFF_OP_TR_SC = 171 +OFF_GS_ID = 173 +; dir entry +FRST_FILE_ENTRY = 2 +OFF_CFILE_TYPE = 0 +OFF_DE_TR_SC = 1 +OFF_FNAME = 3 +OFF_GHDR_PTR = 19 +OFF_GSTRUC_TYPE = 21 +OFF_GFILE_TYPE = 22 +OFF_YEAR = 23 +OFF_SIZE = 28 +OFF_NXT_FILE = 32 +; file header +O_GHIC_WIDTH = 2 +O_GHIC_HEIGHT = 3 +O_GHIC_PIC = 4 +O_GHCMDR_TYPE = 68 +O_GHGEOS_TYPE = 69 +O_GHSTR_TYPE = 70 +O_GHST_ADDR = 71 +O_GHEND_ADDR = 73 +O_GHST_VEC = 75 +O_GHFNAME = 77 +O_128_FLAGS = 96 +O_GH_AUTHOR = 97 +O_GHP_DISK = 97 +O_GHP_FNAME = 117 +O_GHINFO_TXT = $a0 + +; values for CPU_DATA - C64 memory config +RAM_64K = $30 ;64K RAM +IO_IN = $35 ;60K RAM, 4K I/O space in +KRNL_IO_IN = $36 ;kernal and I/O mapped into memory +KRNL_BAS_IO_IN = $37 ;kernal, I/O and basic mapped into memory + +;values for config - C128 mmu +CIOIN = $7E ;60K RAM, 4K I/O space in +CRAM64K = $7F ;64K RAM +CKRNLBASIOIN = $40 ;kernal, I/O and basic ROM's mapped into memory +CKRNLIOIN = $4E ;Kernal ROM and I/O space mapped in + +;values of faultData - pointer position vs. mouseTop/Bottom/Left/Right +; bit numbers +OFFTOP_BIT = 7 +OFFBOTTOM_BIT = 6 +OFFLEFT_BIT = 5 +OFFRIGHT_BIT = 4 +OFFMENU_BIT = 3 +; masks +SET_OFFTOP = %10000000 +SET_OFFBOTTOM = %01000000 +SET_OFFLEFT = %00100000 +SET_OFFRIGHT = %00010000 +SET_OFFMENU = %00001000 + +;values of currentMode +; bit numbers +UNDERLINE_BIT = 7 +BOLD_BIT = 6 +REVERSE_BIT = 5 +ITALIC_BIT = 4 +OUTLINE_BIT = 3 +SUPERSCRIPT_BIT = 2 +SUBSCRIPT_BIT = 1 +; masks +SET_UNDERLINE = %10000000 +SET_BOLD = %01000000 +SET_REVERSE = %00100000 +SET_ITALIC = %00010000 +SET_OUTLINE = %00001000 +SET_SUPERSCRIPT = %00000100 +SET_SUBSCRIPT = %00000010 +SET_PLAINTEXT = %00000000 + +;Process control variable +; bit numbers +RUNABLE_BIT = 7 +BLOCKED_BIT = 6 +FROZEN_BIT = 5 +NOTIMER_BIT = 4 +; masks +SET_RUNABLE = %10000000 +SET_BLOCKED = %01000000 +SET_FROZEN = %00100000 +SET_NOTIMER = %00010000 + +;mouseOn +; bit numbers +MOUSEON_BIT = 7 +MENUON_BIT = 6 +ICONSON_BIT = 5 +; masks +SET_MSE_ON = %10000000 +SET_MENUON = %01000000 +SET_ICONSON = %00100000 + +;pressFlag +; bit numbers +KEYPRESS_BIT = 7 +INPUT_BIT = 6 +MOUSE_BIT = 5 +; masks +SET_KEYPRESS = %10000000 +SET_INPUTCHG = %01000000 +SET_MOUSE = %00100000 + +;dispBufferOn +ST_WRGS_FORE = $20 +ST_WR_BACK = $40 +ST_WR_FORE = $80 + +;alarmSetFlag +ALARMMASK = %00000100 + +;PutDecimal + ;leading zeroes +SET_NOSURPRESS = %00000000 +SET_SURPRESS = %01000000 + ;justification +SET_RIGHTJUST = %00000000 +SET_LEFTJUST = %10000000 + +;icons, menus status flags +ST_FLASH = $80 +ST_INVERT = $40 +ST_LD_AT_ADDR = $01 +ST_LD_DATA = $80 +ST_PR_DATA = $40 +ST_WR_PR = $40 + +;??? +ADD1_W = $2000 +DOUBLE_B = $80 +DOUBLE_W = $8000 + +CLR_SAVE = %01000000 +CONSTRAINED = %01000000 +UN_CONSTRAINED = %00000000 +FG_SAVE = %10000000 + +FUTURE1 = 7 +FUTURE2 = 8 +FUTURE3 = 9 +FUTURE4 = 10 +USELAST = 127 +SHORTCUT = 128 diff --git a/libsrc/geos-cbm/inc/dio.inc b/libsrc/geos-cbm/inc/dio.inc new file mode 100644 index 000000000..24ae0e5e4 --- /dev/null +++ b/libsrc/geos-cbm/inc/dio.inc @@ -0,0 +1,19 @@ + +;------------------------------------------------------------------------- +; OFFSETS INTO SECTSIZETAB (DIO functions) +;------------------------------------------------------------------------- + +sst_flag = 0 ; length 1 +sst_sectsize = 1 ; 2 +sst_driveno = 3 ; 1 (drive #) +sst_size = 4 ; size of one entry + ; if changed, adapt diopncls.s + +;------------------------------------------------------------------------- +; OFFSETS INTO dio_phys_pos +;------------------------------------------------------------------------- + +diopp_head = 0 ; head +diopp_track = 1 ; track / cylinder +diopp_sector = 3 ; sector +diopp_size = 5 ; size of structure diff --git a/libsrc/geos-cbm/inc/diskdrv.inc b/libsrc/geos-cbm/inc/diskdrv.inc new file mode 100644 index 000000000..ce106d761 --- /dev/null +++ b/libsrc/geos-cbm/inc/diskdrv.inc @@ -0,0 +1,42 @@ + +;GEOS Disk Driver JumpTab +;reassembled by Maciej 'YTM/Alliance' Witkowiak +;4-2-99 + +;pointers +_InitForIO = $9000 +_DoneWithIO = $9002 +_ExitTurbo = $9004 +_PurgeTurbo = $9006 +_EnterTurbo = $9008 +_ChangeDiskDevice = $900a +_NewDisk = $900c +_ReadBlock = $900e +_WriteBlock = $9010 +_VerWriteBlock = $9012 +_OpenDisk = $9014 +_GetBlock = $9016 +_PutBlock = $9018 +_GetDirHead = $901a +_PutDirHead = $901c +_GetFreeDirBlk = $901e +_CalcBlksFree = $9020 +_FreeBlock = $9022 +_SetNextFree = $9024 +_FindBAMBit = $9026 +_NxtBlkAlloc = $9028 +_BlkAlloc = $902a +_ChkDkGEOS = $902c +_SetGEOSDisk = $902e + +;jump table +Get1stDirEntry = $9030 +GetNxtDirEntry = $9033 +GetBorder = $9036 +AddDirBlock = $9039 +ReadBuff = $903c +WriteBuff = $903f +;??? = $9042 +;??? = $9045 +AllocateBlock = $9048 +ReadLink = $904b diff --git a/libsrc/geos-cbm/inc/geosmac.ca65.inc b/libsrc/geos-cbm/inc/geosmac.ca65.inc new file mode 100644 index 000000000..b932e3cc6 --- /dev/null +++ b/libsrc/geos-cbm/inc/geosmac.ca65.inc @@ -0,0 +1,256 @@ + +;GEOS macros +;reassembled for 6502TASM/MMS by Maciej 'YTM/Elysium' Witkowiak +;4-2-99 + +;28-6-99 - ca65 port +;macro 'sub' renamed to 'ssub' due to 65816 mnemonics + + + .macro LoadB dest, value + lda #value + sta dest + .endmacro + + .macro LoadW dest, value + LoadB dest+1, >(value) + LoadB dest+0, <(value) + .endmacro + + .macro MoveB source, dest + lda source + sta dest + .endmacro + + .macro MoveW source, dest + MoveB source+1, dest+1 + MoveB source+0, dest+0 + .endmacro + + .macro add source + clc + adc source + .endmacro + + .macro AddB source, dest + lda source + add dest + sta dest + .endmacro + + .macro AddW source, dest + AddB source+0, dest+0 + lda source+1 + adc dest+1 + sta dest+1 + .endmacro + + .macro AddVB value, dest + lda dest + clc + adc #(value) + sta dest + .endmacro + + .macro AddVW value, dest +.local Skip + AddVB <(value), dest+0 + .if (>(value))=0 + bcc Skip + inc dest+1 + .else + lda #>(value) + adc dest+1 + sta dest+1 + .endif +Skip: + .endmacro + + .macro ssub source + sec + sbc source + .endmacro + + .macro SubB source, dest + lda dest + ssub source + sta dest + .endmacro + + .macro SubW source, dest + SubB source+0, dest+0 + lda dest+1 + sbc source+1 + sta dest+1 + .endmacro + + .macro SubVW value, dest + sec + lda dest+0 + sbc #<(value) + sta dest+0 + lda dest+1 + sbc #>(value) + sta dest+1 + .endmacro + + .macro CmpB source, dest + lda source + cmp dest + .endmacro + + .macro CmpBI source, immed + lda source + cmp #(immed) + .endmacro + + .macro CmpW source, dest +.local Skip + CmpB source+1, dest+1 + bne Skip + CmpB source+0, dest+0 +Skip: + .endmacro + + .macro CmpWI source, immed +.local Skip + CmpBI source+1, >(immed) + bne Skip + CmpBI source+0, <(immed) +Skip: + .endmacro + + .macro PushB source + lda source + pha + .endmacro + + .macro PushW source + PushB source+1 + PushB source+0 + .endmacro + + .macro PopB dest + pla + sta dest + .endmacro + + .macro PopW dest + PopB dest+0 + PopB dest+1 + .endmacro + + .macro bra addr + clv + bvc addr + .endmacro + + .macro smb bitNumber, dest + pha + lda #(1 << bitNumber) + ora dest + sta dest + pla + .endmacro + + .macro smbf bitNumber, dest + lda #(1 << bitNumber) + ora dest + sta dest + .endmacro + + .macro rmb bitNumber, dest + pha + lda #(1 << bitNumber) ^ $ff + and dest + sta dest + pla + .endmacro + + .macro rmbf bitNumber, dest + lda #(1 << bitNumber) ^ $ff + and dest + sta dest + .endmacro + + .macro bbs bitNumber, source, addr +.local Skip + php + pha + lda source + and #(1 << bitNumber) + beq Skip + pla + plp + bra addr +Skip: pla + plp + .endmacro + + .macro bbsf bitNumber, source, addr + .if bitNumber=7 + bit source + bmi addr + .else + .if bitNumber=6 + bit source + bvs addr + .else + lda source + and #(1 << bitNumber) + bne addr + .endif + .endif + .endmacro + + .macro bbr bitNumber, source, addr +.local Skip + php + pha + lda source + and #(1 << bitNumber) + bne Skip + pla + plp + bra addr +Skip: pla + plp + .endmacro + + .macro bbrf bitNumber, source, addr + .if bitNumber=7 + bit source + bpl addr + .else + .if bitNumber=6 + bit source + bvc addr + .else + lda source + and #(1 << bitNumber) + beq addr + .endif + .endif + .endmacro + +;03.03.99 by Maciej Witkowiak + + .macro addv value + clc + adc #(value) + .endmacro + + .macro subv value + sec + sbc #(value) + .endmacro + + .macro bnex addr + txa + bne addr + .endmacro + + .macro beqx addr + txa + beq addr + .endmacro diff --git a/libsrc/geos-cbm/inc/geossym.inc b/libsrc/geos-cbm/inc/geossym.inc new file mode 100644 index 000000000..0e8fbaf6a --- /dev/null +++ b/libsrc/geos-cbm/inc/geossym.inc @@ -0,0 +1,314 @@ + +;GEOS variable memory locations sorted by address +;reassembled by Maciej 'YTM/Elysium' Witkowiak +;4-2-99 + +zpage = $0000 +; + +CPU_DDR = $00 +CPU_DATA = $01 +; +r0 = $02 +r0L = $02 +r0H = $03 +r1 = $04 +r1L = $04 +r1H = $05 +r2 = $06 +r2L = $06 +r2H = $07 +r3 = $08 +r3L = $08 +r3H = $09 +r4 = $0a +r4L = $0a +r4H = $0b +r5 = $0c +r5L = $0c +r5H = $0d +r6 = $0e +r6L = $0e +r6H = $0f +r7 = $10 +r7L = $10 +r7H = $11 +r8 = $12 +r8L = $12 +r8H = $13 +r9 = $14 +r9L = $14 +r9H = $15 +r10 = $16 +r10L = $16 +r10H = $17 +r11 = $18 +r11L = $18 +r11H = $19 +r12 = $1a +r12L = $1a +r12H = $1b +r13 = $1c +r13L = $1c +r13H = $1d +r14 = $1e +r14L = $1e +r14H = $1f +r15 = $20 +r15L = $20 +r15H = $21 +; +a0 = $fb +a0L = $fb +a0H = $fc +a1 = $fd +a1L = $fd +a1H = $fe +a2 = $70 +a2L = $70 +a2H = $71 +a3 = $72 +a3L = $72 +a3H = $73 +a4 = $74 +a4L = $74 +a4H = $75 +a5 = $76 +a5L = $76 +a5H = $77 +a6 = $78 +a6L = $78 +a6H = $79 +a7 = $7a +a7L = $7a +a7H = $7b +a8 = $7c +a8L = $7c +a8H = $7d +a9 = $7e +a9L = $7e +a9H = $7f + +; + +curPattern = $22 +string = $24 +baselineOffset = $26 +curSetWidth = $27 +curHeight = $29 +curIndexTable = $2a +cardDataPntr = $2c +currentMode = $2e +dispBufferOn = $2f +mouseOn = $30 +msePicPtr = $31 +windowTop = $33 +windowBottom = $34 +leftMargin = $35 +rightMargin = $37 +pressFlag = $39 +mouseXPos = $3a +mouseYPos = $3c +returnAddress = $3d +graphMode = $3f +TURBO_DD00 = $8e ; from 1541 turbo +TURBO_DD00_CPY = $8f ; from 1541 turbo +STATUS = $90 +curDevice = $ba +; +irqvec = $0314 +bkvec = $0316 +nmivec = $0318 +; +APP_RAM = $0400 +BACK_SCR_BASE = $6000 +PRINTBASE = $7900 +OS_VARS = $8000 +; +diskBlkBuf = $8000 +fileHeader = $8100 +curDirHead = $8200 +fileTrScTab = $8300 +dirEntryBuf = $8400 +DrACurDkNm = $841e +DrBCurDkNm = $8430 +dataFileName = $8442 +dataDiskName = $8453 +PrntFilename = $8465 +PrntDiskName = $8476 +curDrive = $8489 +diskOpenFlg = $848a +isGEOS = $848b +interleave = $848c +NUMDRV = $848d +driveType = $848e +_driveType = driveType-8 +turboFlags = $8492 +_turboFlags = turboFlags-8 +curRecord = $8496 +usedRecords = $8497 +fileWritten = $8498 +fileSize = $8499 +appMain = $849b +intTopVector = $849d +intBotVector = $849f +mouseVector = $84a1 +keyVector = $84a3 +inputVector = $84a5 +mouseFaultVec = $84a7 +otherPressVec = $84a9 +StringFaultVec = $84ab +alarmTmtVector = $84ad +BRKVector = $84af +RecoverVector = $84b1 +selectionFlash = $84b3 +alphaFlag = $84b4 +iconSelFlg = $84b5 +faultData = $84b6 +menuNumber = $84b7 +mouseTop = $84b8 +mouseBottom = $84b9 +mouseLeft = $84ba +mouseRight = $84bc +stringX = $84be +stringY = $84c0 +mousePicData = $84c1 +maxMouseSpeed = $8501 +minMouseSpeed = $8502 +mouseAccel = $8503 +keyData = $8504 +mouseData = $8505 +inputData = $8506 +mouseSpeed = $8507 +random = $850a +saveFontTab = $850c +dblClickCount = $8515 +year = $8516 +month = $8517 +day = $8518 +hour = $8519 +minutes = $851a +seconds = $851b +alarmSetFlag = $851c +sysDBData = $851d +screencolors = $851e +dlgBoxRamBuf = $851f ; to $8697 +; +;$8698 - $8877 - various system data (keyboard queue, VLIR t&s, DBox, Menu, timers) +; +savedmoby2 = $88bb +scr80polar = $88bc +scr80colors = $88bd +vdcClrMode = $88be +driveData = $88bf +ramExpSize = $88c3 +sysRAMFlg = $88c4 +firstBoot = $88c5 +curType = $88c6 +ramBase = $88c7 +inputDevName = $88cb +memBase = $88cf ;??? +DrCCurDkNm = $88dc +DrDCurDkNm = $88ee +dir2Head = $8900 +; +SPRITE_PICS = $8a00 +spr0pic = $8a00 +spr1pic = $8a40 +spr2pic = $8a80 +spr3pic = $8ac0 +spr4pic = $8b00 +spr5pic = $8b40 +spr6pic = $8b80 +spr7pic = $8bc0 +COLOR_MATRIX = $8c00 +; +obj0Pointer = $8ff8 +obj1Pointer = $8ff9 +obj2Pointer = $8ffa +obj3Pointer = $8ffb +obj4Pointer = $8ffc +obj5Pointer = $8ffd +obj6Pointer = $8ffe +obj7Pointer = $8fff +; +DISK_BASE = $9000 +SCREEN_BASE = $a000 +OS_ROM = $c000 +OS_JUMPTAB = $c100 +RAMC_BASE = $de00 +RAMC_WINDOW = $df00 +EXP_BASE = $df00 +MOUSE_BASE_128 = $fd00 +MOUSE_JMP_128 = $fd00 +END_MOUSE_128 = $fe80 +MOUSE_BASE = $fe80 +MOUSE_JMP = $fe80 +config = $ff00 +END_MOUSE = $fffa +NMI_VECTOR = $fffa +RESET_VECTOR = $fffc +IRQ_VECTOR = $fffe +; +vicbase = $d000 +sidbase = $d400 +mmu = $d500 +VDC = $d600 +ctab = $d800 +cia1base = $dc00 +cia2base = $dd00 +; +mob0xpos = $d000 +mob0ypos = $d001 +mob1xpos = $d002 +mob1ypos = $d003 +mob2xpos = $d004 +mob2ypos = $d005 +mob3xpos = $d006 +mob3ypos = $d007 +mob4xpos = $d008 +mob4ypos = $d009 +mob5xpos = $d00a +mob5ypos = $d00b +mob6xpos = $d00c +mob6ypos = $d00d +mob7xpos = $d00e +mob7ypos = $d00f +msbxpos = $d010 +grcntrl1 = $d011 +rasreg = $d012 +lpxpos = $d013 +lpypos = $d014 +mobenble = $d015 +grcntrl2 = $d016 +grmemptr = $d018 +grirq = $d019 +grirqen = $d01a +moby2 = $d017 +mobprior = $d01b +mobmcm = $d01c +mobx2 = $d01d +mobmobcol = $d01e +mobbakcol = $d01f +extclr = $d020 +bakclr0 = $d021 +bakclr1 = $d022 +bakclr2 = $d023 +bakclr3 = $d024 +mcmclr0 = $d025 +mcmclr1 = $d026 +mob0clr = $d027 +mob1clr = $d028 +mob2clr = $d029 +mob3clr = $d02a +mob4clr = $d02b +mob5clr = $d02c +mob6clr = $d02d +mob7clr = $d02e +keyreg = $d02f +clkreg = $d030 + +; +vdcreg = $d600 +vdcdata = $d601 +; diff --git a/libsrc/geos-cbm/inc/geossym2.inc b/libsrc/geos-cbm/inc/geossym2.inc new file mode 100644 index 000000000..0820c8e8a --- /dev/null +++ b/libsrc/geos-cbm/inc/geossym2.inc @@ -0,0 +1,11 @@ + +;GEOS various variables in OS_ROM area +;reassembled by Maciej 'YTM/Alliance' Witkowiak +;4-2-99 + +bootName = $c006 +version = $c00f +nationality = $c010 +sysFlgCopy = $c012 +c128Flag = $c013 +dateCopy = $c018 \ No newline at end of file diff --git a/libsrc/geos-cbm/inc/inputdrv.inc b/libsrc/geos-cbm/inc/inputdrv.inc new file mode 100644 index 000000000..cdb1dc483 --- /dev/null +++ b/libsrc/geos-cbm/inc/inputdrv.inc @@ -0,0 +1,16 @@ + +;GEOS Input Driver Jump Tab +;reassembled by Maciej 'YTM/Alliance' Witkowiak +;4-2-99 + +;for C64 +;MOUSE_JMP = $fe80 +SlowMouse = $fe83 +UpdateMouse = $fe86 +SetMouse = $fe89 + +;for C128 +;MOUSE_JMP_128 = $fd00 +SlowMouse_128 = $fd03 +UpdateMouse_128 = $fd06 +SetMouse_128 = $fd09 diff --git a/libsrc/geos-cbm/inc/jumptab.inc b/libsrc/geos-cbm/inc/jumptab.inc new file mode 100644 index 000000000..44bc6145a --- /dev/null +++ b/libsrc/geos-cbm/inc/jumptab.inc @@ -0,0 +1,178 @@ + +;GEOS System Jump Table +;reassembled by Maciej 'YTM/Alliance' Witkowiak +;4-2-99 + +;jump table +InterruptMain = $c100 +InitProcesses = $c103 +RestartProcess = $c106 +EnableProcess = $c109 +BlockProcess = $c10c +UnBlockProcess = $c10f +FreezeProcess = $c112 +UnFreezeProcess = $c115 +HorizontalLine = $c118 +InvertLine = $c11b +RecoverLine = $c11e +VerticalLine = $c121 +Rectangle = $c124 +FrameRectangle = $c127 +InvertRectangle = $c12a +RecoverRectangle = $c12d +DrawLine = $c130 +DrawPoint = $c133 +GraphicsString = $c136 +SetPattern = $c139 +GetScanLine = $c13c +TestPoint = $c13f +BitmapUp = $c142 +PutChar = $c145 +PutString = $c148 +UseSystemFont = $c14b +StartMouseMode = $c14e +DoMenu = $c151 +RecoverMenu = $c154 +RecoverAllMenus = $c157 +DoIcons = $c15a +DShiftLeft = $c15d +BBMult = $c160 +BMult = $c163 +DMult = $c166 +Ddiv = $c169 +DSdiv = $c16c +Dabs = $c16f +Dnegate = $c172 +Ddec = $c175 +ClearRam = $c178 +FillRam = $c17b +MoveData = $c17e +InitRam = $c181 +PutDecimal = $c184 +GetRandom = $c187 +MouseUp = $c18a +MouseOff = $c18d +DoPreviousMenu = $c190 +ReDoMenu = $c193 +GetSerialNumber = $c196 +Sleep = $c199 +ClearMouseMode = $c19c +i_Rectangle = $c19f +i_FrameRectangle = $c1a2 +i_RecoverRectangle = $c1a5 +i_GraphicsString = $c1a8 +i_BitmapUp = $c1ab +i_PutString = $c1ae +GetRealSize = $c1b1 +i_FillRam = $c1b4 +i_MoveData = $c1b7 +GetString = $c1ba +GotoFirstMenu = $c1bd +InitTextPrompt = $c1c0 +MainLoop = $c1c3 +DrawSprite = $c1c6 +GetCharWidth = $c1c9 +LoadCharSet = $c1cc +PosSprite = $c1cf +EnablSprite = $c1d2 +DisablSprite = $c1d5 +CallRoutine = $c1d8 +CalcBlksFree = $c1db +ChkDkGEOS = $c1de +NewDisk = $c1e1 +GetBlock = $c1e4 +PutBlock = $c1e7 +SetGEOSDisk = $c1ea +SaveFile = $c1ed +SetGDirEntry = $c1f0 +BldGDirEntry = $c1f3 +GetFreeDirBlk = $c1f6 +WriteFile = $c1f9 +BlkAlloc = $c1fc +ReadFile = $c1ff +SmallPutChar = $c202 +FollowChain = $c205 +GetFile = $c208 +FindFile = $c20b +CRC = $c20e +LdFile = $c211 +EnterTurbo = $c214 +LdDeskAcc = $c217 +ReadBlock = $c21a +LdApplic = $c21d +WriteBlock = $c220 +VerWriteBlock = $c223 +FreeFile = $c226 +GetFHdrInfo = $c229 +EnterDeskTop = $c22c +StartAppl = $c22f +ExitTurbo = $c232 +PurgeTurbo = $c235 +DeleteFile = $c238 +FindFTypes = $c23b +RstrAppl = $c23e +ToBASIC = $c241 +FastDelFile = $c244 +GetDirHead = $c247 +PutDirHead = $c24a +NxtBlkAlloc = $c24d +ImprintRectangle = $c250 +i_ImprintRectangle = $c253 +DoDlgBox = $c256 +RenameFile = $c259 +InitForIO = $c25c +DoneWithIO = $c25f +DShiftRight = $c262 +CopyString = $c265 +CopyFString = $c268 +CmpString = $c26b +CmpFString = $c26e +FirstInit = $c271 +OpenRecordFile = $c274 +CloseRecordFile = $c277 +NextRecord = $c27a +PreviousRecord = $c27d +PointRecord = $c280 +DeleteRecord = $c283 +InsertRecord = $c286 +AppendRecord = $c289 +ReadRecord = $c28c +WriteRecord = $c28f +SetNextFree = $c292 +UpdateRecordFile = $c295 +GetPtrCurDkNm = $c298 +PromptOn = $c29b +PromptOff = $c29e +OpenDisk = $c2a1 +DoInlineReturn = $c2a4 +GetNextChar = $c2a7 +BitmapClip = $c2aa +FindBAMBit = $c2ad +SetDevice = $c2b0 +IsMseInRegion = $c2b3 +ReadByte = $c2b6 +FreeBlock = $c2b9 +ChangeDiskDevice = $c2bc +RstrFrmDialogue = $c2bf +Panic = $c2c2 +BitOtherClip = $c2c5 +StashRAM = $c2c8 +FetchRAM = $c2cb +SwapRAM = $c2ce +VerifyRAM = $c2d1 +DoRAMOp = $c2d4 + +;only in GEOS 128 +TempHideMouse = $c2d7 +SetMousePicture = $c2da +SetNewMode = $c2dd +NormalizeX = $c2e0 +MoveBData = $c2e3 +SwapBData = $c2e6 +VerifyBData = $c2e9 +DoBOp = $c2ec +AccessCache = $c2ef +HideOnlyMouse = $c2f2 +SetColorMode = $c2f5 +ColorCard = $c2f8 +ColorRectangle = $c2fb diff --git a/libsrc/geos-cbm/inc/printdrv.inc b/libsrc/geos-cbm/inc/printdrv.inc new file mode 100644 index 000000000..55dbc4ebe --- /dev/null +++ b/libsrc/geos-cbm/inc/printdrv.inc @@ -0,0 +1,14 @@ + +;GEOS Printer Driver Jump Table +;reassembled by Maciej 'YTM/Alliance' Witkowiak +;4-2-99 + +;jump table +InitForPrint = $7900 +StartPrint = $7903 +PrintBuffer = $7906 +StopPrint = $7909 +GetDimensions = $790c +PrinsASCII = $790f +StartASCII = $7912 +SetNLQ = $7915 diff --git a/libsrc/geos-cbm/memory/Makefile b/libsrc/geos-cbm/memory/Makefile new file mode 100644 index 000000000..e2af2fab3 --- /dev/null +++ b/libsrc/geos-cbm/memory/Makefile @@ -0,0 +1,18 @@ +# +# Makefile for GEOS lib +# for cc65 +# +# + +%.o: %.s + @$(AS) -o $@ $(AFLAGS) $< + + +S_OBJS = crc.o doublepop.o reuregs.o clearram.o fillram.o initram.o movedata.o\ + stashram.o fetchram.o swapram.o verifyram.o\ + doublespop.o copystring.o cmpstring.o copyfstring.o cmpfstring.o + +all: $(S_OBJS) + +clean: + @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos-cbm/memory/clearram.s b/libsrc/geos-cbm/memory/clearram.s new file mode 100644 index 000000000..22c0448ed --- /dev/null +++ b/libsrc/geos-cbm/memory/clearram.s @@ -0,0 +1,25 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 30.10.99, 20.08.2003 + +; void * ClearRam (char *dest, int length); + + .import DoublePop + .export _ClearRam + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_ClearRam: + jsr DoublePop + pha + txa + pha + jsr ClearRam + pla + tax + pla + rts + diff --git a/libsrc/geos-cbm/memory/cmpfstring.s b/libsrc/geos-cbm/memory/cmpfstring.s new file mode 100644 index 000000000..423dbd86a --- /dev/null +++ b/libsrc/geos-cbm/memory/cmpfstring.s @@ -0,0 +1,22 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 22.12.99, 29.07.2000 + +; char CmpFString (char length, char *dest, char* source); + + .import DoubleSPop, SetPtrXY + .import popa, return0, return1 + .export _CmpFString + + .include "../inc/jumptab.inc" + +_CmpFString: + jsr DoubleSPop + jsr popa + jsr SetPtrXY + jsr CmpFString + bne L1 + jmp return0 +L1: jmp return1 diff --git a/libsrc/geos-cbm/memory/cmpstring.s b/libsrc/geos-cbm/memory/cmpstring.s new file mode 100644 index 000000000..1310de284 --- /dev/null +++ b/libsrc/geos-cbm/memory/cmpstring.s @@ -0,0 +1,20 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 22.12.1999, 2.1.2003 + +; char CmpString (char *dest, char* source); + + .import DoubleSPop + .import return0, return1 + .export _CmpString + + .include "../inc/jumptab.inc" + +_CmpString: + jsr DoubleSPop + jsr CmpString + bne L1 + jmp return0 +L1: jmp return1 diff --git a/libsrc/geos-cbm/memory/copyfstring.s b/libsrc/geos-cbm/memory/copyfstring.s new file mode 100644 index 000000000..545553ecc --- /dev/null +++ b/libsrc/geos-cbm/memory/copyfstring.s @@ -0,0 +1,19 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 22.12.99, 29.07.2000 + +; void CopyFString (char length, char *dest, char* source); + + .import DoubleSPop, SetPtrXY + .import popa + .export _CopyFString + + .include "../inc/jumptab.inc" + +_CopyFString: + jsr DoubleSPop + jsr popa + jsr SetPtrXY + jmp CopyFString diff --git a/libsrc/geos-cbm/memory/copystring.s b/libsrc/geos-cbm/memory/copystring.s new file mode 100644 index 000000000..e990607d8 --- /dev/null +++ b/libsrc/geos-cbm/memory/copystring.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 22.12.99 + +; void CopyString (char *dest, char* source); + + .import DoubleSPop + .export _CopyString + + .include "../inc/jumptab.inc" + +_CopyString: + jsr DoubleSPop + jmp CopyString diff --git a/libsrc/geos-cbm/memory/crc.s b/libsrc/geos-cbm/memory/crc.s new file mode 100644 index 000000000..a46a32a27 --- /dev/null +++ b/libsrc/geos-cbm/memory/crc.s @@ -0,0 +1,21 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 22.12.99 + +; int CRC (char *memory, int length); + + .import DoublePop + .export _CRC + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_CRC: + jsr DoublePop + jsr CRC + lda r2L + ldx r2H + rts + \ No newline at end of file diff --git a/libsrc/geos-cbm/memory/doublepop.s b/libsrc/geos-cbm/memory/doublepop.s new file mode 100644 index 000000000..f426b1648 --- /dev/null +++ b/libsrc/geos-cbm/memory/doublepop.s @@ -0,0 +1,18 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 31.12.99 + + .import popax + .export DoublePop + + .include "../inc/geossym.inc" + +DoublePop: + sta r0L + stx r0H + jsr popax + sta r1L + stx r1H + rts diff --git a/libsrc/geos-cbm/memory/doublespop.s b/libsrc/geos-cbm/memory/doublespop.s new file mode 100644 index 000000000..1202bf655 --- /dev/null +++ b/libsrc/geos-cbm/memory/doublespop.s @@ -0,0 +1,28 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 22.12.99, 29.07.2000 + + .import popax + .importzp ptr3, ptr4 + .export DoubleSPop + .export SetPtrXY + + .include "../inc/geossym.inc" + +DoubleSPop: + sta ptr4 + stx ptr4+1 + jsr popax + sta ptr3 + stx ptr3+1 +; rts +; +; SetPtrXY can be sometimes executed twice, but even this way it is few cycles +; faster... + +SetPtrXY: + ldx #ptr4 + ldy #ptr3 + rts diff --git a/libsrc/geos-cbm/memory/fetchram.s b/libsrc/geos-cbm/memory/fetchram.s new file mode 100644 index 000000000..669284e0b --- /dev/null +++ b/libsrc/geos-cbm/memory/fetchram.s @@ -0,0 +1,17 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void FetchRAM (char REUBank, int length, char *from, char *dest); + + .import REURegs + .export _FetchRAM + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_FetchRAM: + jsr REURegs + jmp FetchRAM diff --git a/libsrc/geos-cbm/memory/fillram.s b/libsrc/geos-cbm/memory/fillram.s new file mode 100644 index 000000000..013fce797 --- /dev/null +++ b/libsrc/geos-cbm/memory/fillram.s @@ -0,0 +1,30 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 30.10.99, 15.07.2001 + +; void * FillRam (char *dest, char what, int length); + + .import popa, popax + .export _FillRam + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_FillRam: + sta r0L + stx r0H + jsr popa + sta r2L + jsr popax + sta r1L + stx r1H + pha + txa + pha + jsr FillRam + pla + tax + pla + rts diff --git a/libsrc/geos-cbm/memory/initram.s b/libsrc/geos-cbm/memory/initram.s new file mode 100644 index 000000000..8475c9dbd --- /dev/null +++ b/libsrc/geos-cbm/memory/initram.s @@ -0,0 +1,17 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void InitRam (struct inittab*); + + .export _InitRam + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_InitRam: + sta r0L + stx r0H + jmp InitRam diff --git a/libsrc/geos-cbm/memory/movedata.s b/libsrc/geos-cbm/memory/movedata.s new file mode 100644 index 000000000..5391e95c5 --- /dev/null +++ b/libsrc/geos-cbm/memory/movedata.s @@ -0,0 +1,27 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 30.10.99, 15.07.2001 + +; void* MoveData (char* dest, char *source, int length); + + .import popax + .export _MoveData + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_MoveData: + sta r2L + stx r2H + jsr popax + sta r0L + stx r0H + jsr popax + sta r1L + stx r1H + jsr MoveData + lda r1L ; return dest ptr to be compatible with memmove and memcpy + ldx r1H + rts diff --git a/libsrc/geos-cbm/memory/reuregs.s b/libsrc/geos-cbm/memory/reuregs.s new file mode 100644 index 000000000..cfc2c44e0 --- /dev/null +++ b/libsrc/geos-cbm/memory/reuregs.s @@ -0,0 +1,21 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 31.12.99 + + .import popax, popa + .import DoublePop + .export REURegs + + .include "../inc/geossym.inc" + +REURegs: + jsr DoublePop + jsr popax + sta r2L + stx r2H + jsr popa + sta r3L + rts + diff --git a/libsrc/geos-cbm/memory/stashram.s b/libsrc/geos-cbm/memory/stashram.s new file mode 100644 index 000000000..8b1ff6a05 --- /dev/null +++ b/libsrc/geos-cbm/memory/stashram.s @@ -0,0 +1,17 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void StashRAM (char REUBank, int length, char *dest, char *from); + + .import REURegs + .export _StashRAM + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_StashRAM: + jsr REURegs + jmp StashRAM diff --git a/libsrc/geos-cbm/memory/swapram.s b/libsrc/geos-cbm/memory/swapram.s new file mode 100644 index 000000000..a5fceab44 --- /dev/null +++ b/libsrc/geos-cbm/memory/swapram.s @@ -0,0 +1,18 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void SwapRAM (char REUBank, int length, char *reuaddy, char *cpuaddy); +; note that in all REU procs last two pointers are identified like here + + .import REURegs + .export _SwapRAM + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_SwapRAM: + jsr REURegs + jmp SwapRAM diff --git a/libsrc/geos-cbm/memory/verifyram.s b/libsrc/geos-cbm/memory/verifyram.s new file mode 100644 index 000000000..ad2384f45 --- /dev/null +++ b/libsrc/geos-cbm/memory/verifyram.s @@ -0,0 +1,20 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char VerifyRAM (char REUBank, int length, char *reuaddy, char *cpuaddy); + + .import REURegs + .export _VerifyRAM + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_VerifyRAM: + jsr REURegs + jsr VerifyRAM + txa + ldx #0 + rts diff --git a/libsrc/geos-cbm/menuicon/Makefile b/libsrc/geos-cbm/menuicon/Makefile new file mode 100644 index 000000000..cb5d6f475 --- /dev/null +++ b/libsrc/geos-cbm/menuicon/Makefile @@ -0,0 +1,17 @@ +# +# Makefile for GEOS lib +# for cc65 +# +# + +%.o: %.s + @$(AS) -o $@ $(AFLAGS) $< + + +S_OBJS = domenu.o dopreviousmenu.o redomenu.o recovermenu.o recoverallmenus.o\ + gotofirstmenu.o doicons.o + +all: $(S_OBJS) + +clean: + @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos-cbm/menuicon/doicons.s b/libsrc/geos-cbm/menuicon/doicons.s new file mode 100644 index 000000000..9c5d4305e --- /dev/null +++ b/libsrc/geos-cbm/menuicon/doicons.s @@ -0,0 +1,17 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void DoIcons (struct icontab *myicons); + + .export _DoIcons + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_DoIcons: + sta r0L + stx r0H + jmp DoIcons \ No newline at end of file diff --git a/libsrc/geos-cbm/menuicon/domenu.s b/libsrc/geos-cbm/menuicon/domenu.s new file mode 100644 index 000000000..22408e76c --- /dev/null +++ b/libsrc/geos-cbm/menuicon/domenu.s @@ -0,0 +1,18 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void DoMenu (struct menu *mymenu); + + .export _DoMenu + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_DoMenu: + sta r0L + stx r0H + lda #0 + jmp DoMenu \ No newline at end of file diff --git a/libsrc/geos-cbm/menuicon/dopreviousmenu.s b/libsrc/geos-cbm/menuicon/dopreviousmenu.s new file mode 100644 index 000000000..eeda979ef --- /dev/null +++ b/libsrc/geos-cbm/menuicon/dopreviousmenu.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void DoPreviousMenu (void); + + .export _DoPreviousMenu + + .include "../inc/jumptab.inc" + +_DoPreviousMenu = DoPreviousMenu \ No newline at end of file diff --git a/libsrc/geos-cbm/menuicon/gotofirstmenu.s b/libsrc/geos-cbm/menuicon/gotofirstmenu.s new file mode 100644 index 000000000..5ce17de92 --- /dev/null +++ b/libsrc/geos-cbm/menuicon/gotofirstmenu.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void GotoFirstMenu (void); + + .export _GotoFirstMenu + + .include "../inc/jumptab.inc" + +_GotoFirstMenu = GotoFirstMenu \ No newline at end of file diff --git a/libsrc/geos-cbm/menuicon/recoverallmenus.s b/libsrc/geos-cbm/menuicon/recoverallmenus.s new file mode 100644 index 000000000..1ae81a582 --- /dev/null +++ b/libsrc/geos-cbm/menuicon/recoverallmenus.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void RecoverAllMenus (void); + + .export _RecoverAllMenus + + .include "../inc/jumptab.inc" + +_RecoverAllMenus = RecoverAllMenus \ No newline at end of file diff --git a/libsrc/geos-cbm/menuicon/recovermenu.s b/libsrc/geos-cbm/menuicon/recovermenu.s new file mode 100644 index 000000000..02975dccd --- /dev/null +++ b/libsrc/geos-cbm/menuicon/recovermenu.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void RecoverMenu (void); + + .export _RecoverMenu + + .include "../inc/jumptab.inc" + +_RecoverMenu = RecoverMenu \ No newline at end of file diff --git a/libsrc/geos-cbm/menuicon/redomenu.s b/libsrc/geos-cbm/menuicon/redomenu.s new file mode 100644 index 000000000..63c1a6d61 --- /dev/null +++ b/libsrc/geos-cbm/menuicon/redomenu.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void ReDoMenu (void); + + .export _ReDoMenu + + .include "../inc/jumptab.inc" + +_ReDoMenu = ReDoMenu \ No newline at end of file diff --git a/libsrc/geos-cbm/mousesprite/Makefile b/libsrc/geos-cbm/mousesprite/Makefile new file mode 100644 index 000000000..23cfbb3bf --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/Makefile @@ -0,0 +1,20 @@ +# +# Makefile for GEOS lib +# for cc65 +# +# + +%.o: %.s + @$(AS) -o $@ $(AFLAGS) $< + + +S_OBJS = startmousemode.o clearmousemode.o mouseup.o mouseoff.o\ + drawsprite.o possprite.o enablsprite.o disablsprite.o\ + ismseinregion.o inittextprompt.o promptoff.o prompton.o\ + getnextchar.o\ + mouse.o + +all: $(S_OBJS) + +clean: + @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos-cbm/mousesprite/clearmousemode.s b/libsrc/geos-cbm/mousesprite/clearmousemode.s new file mode 100644 index 000000000..2b6c2a828 --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/clearmousemode.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void ClearMouseMode (void); + + .export _ClearMouseMode + + .include "../inc/jumptab.inc" + +_ClearMouseMode = ClearMouseMode \ No newline at end of file diff --git a/libsrc/geos-cbm/mousesprite/disablsprite.s b/libsrc/geos-cbm/mousesprite/disablsprite.s new file mode 100644 index 000000000..97d1cdc39 --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/disablsprite.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void DisablSprite (char spritenum); + + .export _DisablSprite + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_DisablSprite: + sta r3L + jmp DisablSprite \ No newline at end of file diff --git a/libsrc/geos-cbm/mousesprite/drawsprite.s b/libsrc/geos-cbm/mousesprite/drawsprite.s new file mode 100644 index 000000000..0bab1333c --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/drawsprite.s @@ -0,0 +1,23 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; +; void DrawSprite (char spritenum, char *tab63 ); +; + + .import popa + .export _DrawSprite + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_DrawSprite: + + sta r4L + stx r4H + jsr popa + sta r3L + jmp DrawSprite \ No newline at end of file diff --git a/libsrc/geos-cbm/mousesprite/enablsprite.s b/libsrc/geos-cbm/mousesprite/enablsprite.s new file mode 100644 index 000000000..ffe3435ae --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/enablsprite.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void EnablSprite (char spritenum); + + .export _EnablSprite + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_EnablSprite: + sta r3L + jmp EnablSprite \ No newline at end of file diff --git a/libsrc/geos-cbm/mousesprite/getnextchar.s b/libsrc/geos-cbm/mousesprite/getnextchar.s new file mode 100644 index 000000000..fed9f8b08 --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/getnextchar.s @@ -0,0 +1,18 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char GetNextChar (void); +; note that if it returns 0 (FALSE) then no characters are available + + .export _GetNextChar + + .include "../inc/jumptab.inc" + +_GetNextChar: + jsr GetNextChar + ldx #0 + tay ; preserve Z flag + rts diff --git a/libsrc/geos-cbm/mousesprite/inittextprompt.s b/libsrc/geos-cbm/mousesprite/inittextprompt.s new file mode 100644 index 000000000..d9ee5e1c1 --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/inittextprompt.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void InitTextPrompt (char height); + + .export _InitTextPrompt + + .include "../inc/jumptab.inc" + +_InitTextPrompt = InitTextPrompt \ No newline at end of file diff --git a/libsrc/geos-cbm/mousesprite/ismseinregion.s b/libsrc/geos-cbm/mousesprite/ismseinregion.s new file mode 100644 index 000000000..c30fc69dd --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/ismseinregion.s @@ -0,0 +1,19 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 21.12.1999, 2.1.2003 + +; char IsMseInRegion (struct window *mywindow); + + .import _InitDrawWindow + + .export _IsMseInRegion + + .include "../inc/jumptab.inc" + +_IsMseInRegion: + jsr _InitDrawWindow + jsr IsMseInRegion + ldx #0 + rts diff --git a/libsrc/geos-cbm/mousesprite/mouse.s b/libsrc/geos-cbm/mousesprite/mouse.s new file mode 100644 index 000000000..263c9f832 --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/mouse.s @@ -0,0 +1,187 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 2.7.2001 +; +; Wrapper for GEOS standard input device interface +; + + .export _mouse_init, _mouse_done + .export _mouse_hide, _mouse_show + .export _mouse_box + .export _mouse_pos, _mouse_info + .export _mouse_move, _mouse_buttons + + .import popsreg, addysp1 + .importzp sp, sreg, ptr1 + + .include "../inc/const.inc" + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + + +.code + +; -------------------------------------------------------------------------- +; +; unsigned char __fastcall__ mouse_init (unsigned char type); +; + +_mouse_init: + jsr StartMouseMode + jsr MouseOff + + lda #0 + sta mouseTop + sta mouseLeft + sta mouseLeft+1 + lda #199 + sta mouseBottom + lda graphMode + bpl _mse_screen320 + + lda #<639 ; 80 columns on C128 + ldx #>639 + bne _mse_storex +_mse_screen320: + lda #<319 ; 40 columns on C64/C128 + ldx #>319 +_mse_storex: + sta mouseRight + stx mouseRight+1 +_mse_initend: + lda #0 + tax +; -------------------------------------------------------------------------- +; +; void mouse_done (void); +; +_mouse_done: + rts + +; -------------------------------------------------------------------------- +; +; void mouse_hide (void); +; + +_mouse_hide = MouseOff + +; -------------------------------------------------------------------------- +; +; void mouse_show (void); +; + +_mouse_show = MouseUp + +; -------------------------------------------------------------------------- +; +; void __fastcall__ mouse_box (int minx, int miny, int maxx, int maxy); +; + +_mouse_box: + ldy #0 ; Stack offset + + sta mouseBottom + + lda (sp),y + sta mouseRight + iny + lda (sp),y + sta mouseRight+1 ; maxx + + iny + lda (sp),y + sta mouseTop + iny ; Skip high byte + + iny + lda (sp),y + sta mouseLeft + iny + lda (sp),y + sta mouseLeft+1 ; minx + + jmp addysp1 ; Drop params, return + +; -------------------------------------------------------------------------- +; +; void __fastcall__ mouse_pos (struct mouse_pos* pos); +; /* Return the current mouse position */ +; + +_mouse_pos: + sta ptr1 + stx ptr1+1 ; Remember the argument pointer + + ldy #0 ; Structure offset + + php + sei ; Disable interrupts + + lda mouseXPos ; Transfer the position + sta (ptr1),y + lda mouseXPos+1 + iny + sta (ptr1),y + lda mouseYPos + iny + sta (ptr1),y + lda #$00 + iny + sta (ptr1),y + + plp ; Reenable interrupts + rts ; Done + +; -------------------------------------------------------------------------- +; +; void __fastcall__ mouse_info (struct mouse_info* info); +; /* Return the state of the mouse buttons and the position of the mouse */ +; + +_mouse_info: + +; We're cheating here to keep the code smaller: The first fields of the +; mouse_info struct are identical to the mouse_pos struct, so we will just +; call _mouse_pos to initialize the struct pointer and fill the position +; fields. + + jsr _mouse_pos + +; Fill in the button state + + jsr _mouse_buttons ; Will not touch ptr1 + iny + sta (ptr1),y + + rts + +; -------------------------------------------------------------------------- +; +; void __fastcall__ mouse_move (int x, int y); +; + +_mouse_move: + jsr popsreg ; Get X + php + sei ; Disable interrupts + sta mouseYPos + lda sreg + ldx sreg+1 + sta mouseXPos + stx mouseXPos+1 + plp ; Enable interrupts + rts + +; -------------------------------------------------------------------------- +; +; unsigned char mouse_buttons (void); +; + +_mouse_buttons: + ldx #0 + lda pressFlag + and #SET_MOUSE + lsr + rts + diff --git a/libsrc/geos-cbm/mousesprite/mouseoff.s b/libsrc/geos-cbm/mousesprite/mouseoff.s new file mode 100644 index 000000000..677eb43ca --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/mouseoff.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void MouseOff (void); + + .export _MouseOff + + .include "../inc/jumptab.inc" + +_MouseOff = MouseOff \ No newline at end of file diff --git a/libsrc/geos-cbm/mousesprite/mouseup.s b/libsrc/geos-cbm/mousesprite/mouseup.s new file mode 100644 index 000000000..318f3f6f7 --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/mouseup.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void MouseUp (void); + + .export _MouseUp + + .include "../inc/jumptab.inc" + +_MouseUp = MouseUp \ No newline at end of file diff --git a/libsrc/geos-cbm/mousesprite/possprite.s b/libsrc/geos-cbm/mousesprite/possprite.s new file mode 100644 index 000000000..9f440cdd6 --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/possprite.s @@ -0,0 +1,32 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; +; void PosSprite (char spritenum, struct pixel *position ); +; + + .importzp ptr4 + .import popa + .export _PosSprite + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_PosSprite: + sta ptr4 + stx ptr4+1 + ldy #0 + lda (ptr4),y + sta r4L + iny + lda (ptr4),y + sta r4H + iny + lda (ptr4),y + sta r5L + jsr popa + sta r3L + jmp PosSprite \ No newline at end of file diff --git a/libsrc/geos-cbm/mousesprite/promptoff.s b/libsrc/geos-cbm/mousesprite/promptoff.s new file mode 100644 index 000000000..4551fdb47 --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/promptoff.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void PromptOff (void); + + .export _PromptOff + + .include "../inc/jumptab.inc" + +_PromptOff = PromptOff \ No newline at end of file diff --git a/libsrc/geos-cbm/mousesprite/prompton.s b/libsrc/geos-cbm/mousesprite/prompton.s new file mode 100644 index 000000000..2af5f2ee0 --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/prompton.s @@ -0,0 +1,24 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void PromptOn (struct pixel *); + + .importzp ptr4 + .export _PromptOn + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_PromptOn: + sta ptr4 + stx ptr4+1 + ldy #0 +promptLp: lda (ptr4),y + sta stringX,y + iny + cpy #3 + bne promptLp + jmp PromptOn \ No newline at end of file diff --git a/libsrc/geos-cbm/mousesprite/startmousemode.s b/libsrc/geos-cbm/mousesprite/startmousemode.s new file mode 100644 index 000000000..321508501 --- /dev/null +++ b/libsrc/geos-cbm/mousesprite/startmousemode.s @@ -0,0 +1,15 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void StartMouseMode (void); + + .export _StartMouseMode + + .include "../inc/jumptab.inc" + +_StartMouseMode: + clc + jmp StartMouseMode \ No newline at end of file diff --git a/libsrc/geos-cbm/process/Makefile b/libsrc/geos-cbm/process/Makefile new file mode 100644 index 000000000..e5e7a5b80 --- /dev/null +++ b/libsrc/geos-cbm/process/Makefile @@ -0,0 +1,16 @@ +# +# Makefile for GEOS lib +# for cc65 +# +# + +%.o: %.s + @$(AS) -o $@ $(AFLAGS) $< + + +S_OBJS = processinitrestartenable.o processblock.o processfreeze.o processsleep.o + +all: $(S_OBJS) + +clean: + @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos-cbm/process/processblock.s b/libsrc/geos-cbm/process/processblock.s new file mode 100644 index 000000000..87720e5c7 --- /dev/null +++ b/libsrc/geos-cbm/process/processblock.s @@ -0,0 +1,25 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 27.10.99 + +; +; void InitProcesses (char number, struct process* proctab); +; (rest) +; void BlockProcess (char number); +; void UnBlockProcess (char number); +; + + .export _BlockProcess + .export _UnBlockProcess + + .include "../inc/jumptab.inc" + +_BlockProcess: + tax + jmp BlockProcess + +_UnBlockProcess: + tax + jmp UnBlockProcess diff --git a/libsrc/geos-cbm/process/processfreeze.s b/libsrc/geos-cbm/process/processfreeze.s new file mode 100644 index 000000000..0c2b3117c --- /dev/null +++ b/libsrc/geos-cbm/process/processfreeze.s @@ -0,0 +1,23 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 27.10.99 + +; +; void FreezeProcess (char number); +; void UnFreezeProcess (char number); +; + + .export _FreezeProcess + .export _UnFreezeProcess + + .include "../inc/jumptab.inc" + +_FreezeProcess: + tax + jmp FreezeProcess + +_UnFreezeProcess: + tax + jmp UnFreezeProcess diff --git a/libsrc/geos-cbm/process/processinitrestartenable.s b/libsrc/geos-cbm/process/processinitrestartenable.s new file mode 100644 index 000000000..a9e4a6ccc --- /dev/null +++ b/libsrc/geos-cbm/process/processinitrestartenable.s @@ -0,0 +1,34 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 27.10.99 + +; +; void InitProcesses (char number, struct process* proctab); +; void RestartProcess (char number); +; void EnableProcess (char number); +; + + .import popa + .export _InitProcesses + .export _RestartProcess + .export _EnableProcess + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_InitProcesses: + + sta r0L + stx r0H + jsr popa + jmp InitProcesses + +_RestartProcess: + tax + jmp RestartProcess + +_EnableProcess: + tax + jmp EnableProcess diff --git a/libsrc/geos-cbm/process/processsleep.s b/libsrc/geos-cbm/process/processsleep.s new file mode 100644 index 000000000..1cd41441b --- /dev/null +++ b/libsrc/geos-cbm/process/processsleep.s @@ -0,0 +1,37 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 30.10.99, 15.8.2003 + +; +; void Sleep (int jiffies); +; + + .export _Sleep + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + .importzp ptr1 + .importzp tmp1 + +_SleepExit: + jsr Sleep ; call Sleep + ldx tmp1 + txs ; restore stack pointer + jmp (ptr1) ; when timeouts control will reach here + +_Sleep: + sta r0L ; store data + stx r0H + pla + sta ptr1 + pla + sta ptr1+1 ; preserve return address + inc ptr1 + bne @L0 + inc ptr1+1 ; fix return address +@L0: tsx + stx tmp1 ; preserve stack pointer + jsr _SleepExit ; call Sleep + jmp MainLoop ; immediate return here - go to idle loop diff --git a/libsrc/geos-cbm/runtime/Makefile b/libsrc/geos-cbm/runtime/Makefile new file mode 100644 index 000000000..143e044a0 --- /dev/null +++ b/libsrc/geos-cbm/runtime/Makefile @@ -0,0 +1,19 @@ +# +# Makefile for GEOS lib +# for cc65 +# + +%.o: %.c + @$(CC) $(CFLAGS) $< + @$(AS) -g -o $@ $(AFLAGS) $(*).s + +%.o: %.s + @$(AS) -o $@ $(AFLAGS) $< + +C_OBJS = +S_OBJS = call.o + +all: $(C_OBJS) $(S_OBJS) + +clean: + @$(RM) core *.~ $(S_OBJS) $(C_OBJS:.o=.s) $(C_OBJS) diff --git a/libsrc/geos-cbm/runtime/call.s b/libsrc/geos-cbm/runtime/call.s new file mode 100644 index 000000000..448a87fdf --- /dev/null +++ b/libsrc/geos-cbm/runtime/call.s @@ -0,0 +1,12 @@ +; +; Maciej 'YTM/Elysium' Witkowiak +; 23.12.2002 +; +; CC65 runtime: call function via pointer in ax +; + + .include "../inc/jumptab.inc" + + .export callax + +callax = CallRoutine diff --git a/libsrc/geos-cbm/system/Makefile b/libsrc/geos-cbm/system/Makefile new file mode 100644 index 000000000..789b70ac6 --- /dev/null +++ b/libsrc/geos-cbm/system/Makefile @@ -0,0 +1,33 @@ +# +# Makefile for GEOS lib +# for cc65 +# +# + +%.o: %.s + @$(AS) -o $@ $(AFLAGS) $< + +%.o: %.c + @$(CC) $(CFLAGS) $< + @$(AS) -g -o $@ $(AFLAGS) $(*).s + +S_OBJS = ctype.o \ + callroutine.o \ + enterdesktop.o \ + firstinit.o \ + get_ostype.o \ + getrandom.o \ + getserialnumber.o \ + initdoneio.o \ + mainloop.o \ + panic.o \ + tobasic.o \ + setdevice.o \ + sysuname.o + +C_OBJS = systime.o + +all: $(C_OBJS) $(S_OBJS) + +clean: + @$(RM) *.~ $(C_OBJS:.o=.s) $(C_OBJS) $(S_OBJS) core diff --git a/libsrc/geos-cbm/system/callroutine.s b/libsrc/geos-cbm/system/callroutine.s new file mode 100644 index 000000000..97f0c0d9c --- /dev/null +++ b/libsrc/geos-cbm/system/callroutine.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void CallRoutine (myRoutine); + + .export _CallRoutine + + .include "../inc/jumptab.inc" + +_CallRoutine = CallRoutine \ No newline at end of file diff --git a/libsrc/geos-cbm/system/ctype.s b/libsrc/geos-cbm/system/ctype.s new file mode 100644 index 000000000..5fd24189b --- /dev/null +++ b/libsrc/geos-cbm/system/ctype.s @@ -0,0 +1,313 @@ +; +; Ullrich von Bassewitz, 02.06.1998 +; Maciej Witkowiak, 06.04.2002 +; +; Character specification table. +; + +; The tables are readonly, put them into the rodata segment + +.rodata + +; Value that must be added to a lower case char to make it an upper case +; char (example: for ASCII, this must be $E0). + + + .export __cdiff + +__cdiff: + .byte $e0 + + +; The following 256 byte wide table specifies attributes for the isxxx type +; of functions. Doing it by a table means some overhead in space, but it +; has major advantages: +; +; * It is fast. If it were'nt for the slow parameter passing of cc65, one +; could even define macros for the isxxx functions (this is usually +; done on other platforms). +; +; * It is highly portable. The only unportable part is the table itself, +; all real code goes into the common library. +; +; * We save some code in the isxxx functions. +; +; +; Bit assignments: +; +; 0 - Lower case char +; 1 - Upper case char +; 2 - Numeric digit +; 3 - Hex digit (both, lower and upper) +; 4 - Control character +; 5 - The space character itself +; 6 - Other whitespace (that is: '\f', '\n', '\r', '\t' and '\v') +; 7 - Space or tab character + + +; The table is taken from Craig S. Bruce technical docs for the ACE os + + .export __ctype + +__ctype: + .byte $10 ; 0/00 ___rvs_@___ + .byte $10 ; 1/01 ___rvs_a___ + .byte $10 ; 2/02 ___rvs_b___ + .byte $10 ; 3/03 ___rvs_c___ + .byte $10 ; 4/04 ___rvs_d___ + .byte $10 ; 5/05 ___rvs_e___ + .byte $10 ; 6/06 ___rvs_f___ + .byte $10 ; 7/07 _BEL/rvs_g_ + .byte $10 ; 8/08 ___rvs_h___ + .byte $D0 ; 9/09 _TAB/rvs_i_ + .byte $50 ; 10/0a _BOL/rvs_j_ + .byte $10 ; 11/0b ___rvs_k___ + .byte $10 ; 12/0c ___rvs_l___ + .byte $50 ; 13/0d _CR_/rvs_m_ + .byte $10 ; 14/0e ___rvs_n___ + .byte $10 ; 15/0f ___rvs_o___ + .byte $10 ; 16/10 ___rvs_p___ + .byte $50 ; 17/11 _VT_/rvs_q_ + .byte $10 ; 18/12 ___rvs_r___ + .byte $10 ; 19/13 ___rvs_s___ + .byte $50 ; 20/14 _BS_/rvs_t_ + .byte $10 ; 21/15 ___rvs_u___ + .byte $10 ; 22/16 ___rvs_v___ + .byte $10 ; 23/17 ___rvs_w___ + .byte $10 ; 24/18 ___rvs_x___ + .byte $10 ; 25/19 ___rvs_y___ + .byte $10 ; 26/1a ___rvs_z___ + .byte $10 ; 27/1b ___rvs_[___ + .byte $10 ; 28/1c ___rvs_\___ + .byte $10 ; 29/1d ___rvs_]___ + .byte $10 ; 30/1e ___rvs_^___ + .byte $10 ; 31/1f _rvs_under_ + .byte $A0 ; 32/20 ___SPACE___ + .byte $00 ; 33/21 _____!_____ + .byte $00 ; 34/22 _____"_____ + .byte $00 ; 35/23 _____#_____ + .byte $00 ; 36/24 _____$_____ + .byte $00 ; 37/25 _____%_____ + .byte $00 ; 38/26 _____&_____ + .byte $00 ; 39/27 _____'_____ + .byte $00 ; 40/28 _____(_____ + .byte $00 ; 41/29 _____)_____ + .byte $00 ; 42/2a _____*_____ + .byte $00 ; 43/2b _____+_____ + .byte $00 ; 44/2c _____,_____ + .byte $00 ; 45/2d _____-_____ + .byte $00 ; 46/2e _____._____ + .byte $00 ; 47/2f _____/_____ + .byte $0C ; 48/30 _____0_____ + .byte $0C ; 49/31 _____1_____ + .byte $0C ; 50/32 _____2_____ + .byte $0C ; 51/33 _____3_____ + .byte $0C ; 52/34 _____4_____ + .byte $0C ; 53/35 _____5_____ + .byte $0C ; 54/36 _____6_____ + .byte $0C ; 55/37 _____7_____ + .byte $0C ; 56/38 _____8_____ + .byte $0C ; 57/39 _____9_____ + .byte $00 ; 58/3a _____:_____ + .byte $00 ; 59/3b _____;_____ + .byte $00 ; 60/3c _____<_____ + .byte $00 ; 61/3d _____=_____ + .byte $00 ; 62/3e _____>_____ + .byte $00 ; 63/3f _____?_____ + + .byte $00 ; 64/40 _____@_____ + .byte $09 ; 65/41 _____a_____ + .byte $09 ; 66/42 _____b_____ + .byte $09 ; 67/43 _____c_____ + .byte $09 ; 68/44 _____d_____ + .byte $09 ; 69/45 _____e_____ + .byte $09 ; 70/46 _____f_____ + .byte $01 ; 71/47 _____g_____ + .byte $01 ; 72/48 _____h_____ + .byte $01 ; 73/49 _____i_____ + .byte $01 ; 74/4a _____j_____ + .byte $01 ; 75/4b _____k_____ + .byte $01 ; 76/4c _____l_____ + .byte $01 ; 77/4d _____m_____ + .byte $01 ; 78/4e _____n_____ + .byte $01 ; 79/4f _____o_____ + .byte $01 ; 80/50 _____p_____ + .byte $01 ; 81/51 _____q_____ + .byte $01 ; 82/52 _____r_____ + .byte $01 ; 83/53 _____s_____ + .byte $01 ; 84/54 _____t_____ + .byte $01 ; 85/55 _____u_____ + .byte $01 ; 86/56 _____v_____ + .byte $01 ; 87/57 _____w_____ + .byte $01 ; 88/58 _____x_____ + .byte $01 ; 89/59 _____y_____ + .byte $01 ; 90/5a _____z_____ + .byte $00 ; 91/5b _____[_____ + .byte $00 ; 92/5c _____\_____ + .byte $00 ; 93/5d _____]_____ + .byte $00 ; 94/5e _____^_____ + .byte $00 ; 95/5f _UNDERLINE_ + + .byte $00 ; 96/60 _A`_grave__ + .byte $0a ; 97/61 _A'_acute__ + .byte $0a ; 98/62 _A^_circum_ + .byte $0a ; 99/63 _A~_tilde__ + .byte $0a ; 100/64 _A"_dieres_ + .byte $0a ; 101/65 _A__ring___ + .byte $0a ; 102/66 _AE________ + .byte $02 ; 103/67 _C,cedilla_ + .byte $02 ; 104/68 _E`_grave__ + .byte $02 ; 105/69 _E'_acute__ + .byte $02 ; 106/6a _E^_circum_ + .byte $02 ; 107/6b _E"_dieres_ + .byte $02 ; 108/6c _I`_grave__ + .byte $02 ; 109/6d _I'_acute__ + .byte $02 ; 110/6e _I^_circum_ + .byte $02 ; 111/6f _I"_dieres_ + .byte $02 ; 112/70 _D-_Eth_lr_ + .byte $02 ; 113/71 _N~_tilde__ + .byte $02 ; 114/72 _O`_grave__ + .byte $02 ; 115/73 _O'_acute__ + .byte $02 ; 116/74 _O^_circum_ + .byte $02 ; 117/75 _O~_tilde__ + .byte $02 ; 118/76 _O"_dieres_ + .byte $02 ; 119/77 __multiply_ + .byte $02 ; 120/78 _O/_slash__ + .byte $02 ; 121/79 _U`_grave__ + .byte $02 ; 122/7a _U'_acute__ + .byte $00 ; 123/7b _U^_circum_ + .byte $00 ; 124/7c _U"_dieres_ + .byte $00 ; 125/7d _Y'_acute__ + .byte $00 ; 126/7e _cap_thorn_ + .byte $00 ; 127/7f _Es-sed_B__ + + .byte $00 ; 128/80 __bullet___ + .byte $00 ; 129/81 __v_line___ + .byte $00 ; 130/82 __h_line___ + .byte $00 ; 131/83 ___cross___ + .byte $00 ; 132/84 _tl_corner_ + .byte $00 ; 133/85 _tr_corner_ + .byte $00 ; 134/86 _bl_corner_ + .byte $00 ; 135/87 _br_corner_ + .byte $00 ; 136/88 ___l_tee___ + .byte $00 ; 137/89 ___r_tee___ + .byte $00 ; 138/8a ___t_tee___ + .byte $00 ; 139/8b ___b_tee___ + .byte $00 ; 140/8c ___heart___ + .byte $00 ; 141/8d __diamond__ + .byte $00 ; 142/8e ___club____ + .byte $00 ; 143/8f ___spade___ + .byte $00 ; 144/90 _s_circle__ + .byte $00 ; 145/91 __circle___ + .byte $00 ; 146/92 ___pound___ + .byte $00 ; 147/93 _CLS/check_ + .byte $00 ; 148/94 ____pi_____ + .byte $00 ; 149/95 ____+/-____ + .byte $00 ; 150/96 __divide___ + .byte $00 ; 151/97 __degree___ + .byte $00 ; 152/98 _c_checker_ + .byte $00 ; 153/99 _f_checker_ + .byte $00 ; 154/9a _solid_sq__ + .byte $00 ; 155/9b __cr_char__ + .byte $00 ; 156/9c _up_arrow__ + .byte $00 ; 157/9d _down_arro_ + .byte $00 ; 158/9e _left_arro_ + .byte $00 ; 159/9f _right_arr_ + .byte $00 ; 160/a0 _req space_ + .byte $00 ; 161/a1 _!_invertd_ + .byte $00 ; 162/a2 ___cent____ + .byte $00 ; 163/a3 ___pound___ + .byte $00 ; 164/a4 __currency_ + .byte $00 ; 165/a5 ____yen____ + .byte $00 ; 166/a6 _|_broken__ + .byte $00 ; 167/a7 __section__ + .byte $00 ; 168/a8 __umulaut__ + .byte $00 ; 169/a9 _copyright_ + .byte $00 ; 170/aa __fem_ord__ + .byte $00 ; 171/ab _l_ang_quo_ + .byte $00 ; 172/ac ____not____ + .byte $00 ; 173/ad _syl_hyphn_ + .byte $00 ; 174/ae _registerd_ + .byte $00 ; 175/af _overline__ + .byte $00 ; 176/b0 __degrees__ + .byte $00 ; 177/b1 ____+/-____ + .byte $00 ; 178/b2 _2_supersc_ + .byte $00 ; 179/b3 _3_supersc_ + .byte $00 ; 180/b4 ___acute___ + .byte $00 ; 181/b5 ____mu_____ + .byte $00 ; 182/b6 _paragraph_ + .byte $00 ; 183/b7 __mid_dot__ + .byte $00 ; 184/b8 __cedilla__ + .byte $00 ; 185/b9 _1_supersc_ + .byte $00 ; 186/ba __mas_ord__ + .byte $00 ; 187/bb _r_ang_quo_ + .byte $00 ; 188/bc ____1/4____ + .byte $00 ; 189/bd ____1/2____ + .byte $00 ; 190/be ____3/4____ + .byte $00 ; 191/bf _?_invertd_ + + .byte $00 ; 192/c0 _____`_____ + .byte $00 ; 193/c1 _____A_____ + .byte $00 ; 194/c2 _____B_____ + .byte $00 ; 195/c3 _____C_____ + .byte $00 ; 196/c4 _____D_____ + .byte $00 ; 197/c5 _____E_____ + .byte $00 ; 198/c6 _____F_____ + .byte $00 ; 199/c7 _____G_____ + .byte $00 ; 200/c8 _____H_____ + .byte $00 ; 201/c9 _____I_____ + .byte $00 ; 202/ca _____J_____ + .byte $00 ; 203/cb _____K_____ + .byte $00 ; 204/cc _____L_____ + .byte $00 ; 205/cd _____M_____ + .byte $00 ; 206/ce _____N_____ + .byte $00 ; 207/cf _____O_____ + .byte $00 ; 208/d0 _____P_____ + .byte $00 ; 209/d1 _____Q_____ + .byte $00 ; 210/d2 _____R_____ + .byte $00 ; 211/d3 _____S_____ + .byte $00 ; 212/d4 _____T_____ + .byte $00 ; 213/d5 _____U_____ + .byte $00 ; 214/d6 _____V_____ + .byte $00 ; 215/d7 _____W_____ + .byte $00 ; 216/d8 _____X_____ + .byte $00 ; 217/d9 _____Y_____ + .byte $00 ; 218/da _____Z_____ + .byte $00 ; 219/db _____{_____ + .byte $00 ; 220/dc _____|_____ + .byte $00 ; 221/dd _____}_____ + .byte $00 ; 222/de _____~_____ + .byte $00 ; 223/df ___HOUSE___ + .byte $00 ; 224/e0 _a`_grave__ + .byte $00 ; 225/e1 _a'_acute__ + .byte $00 ; 226/e2 _a^_circum_ + .byte $00 ; 227/e3 _a~_tilde__ + .byte $00 ; 228/e4 _a"_dieres_ + .byte $00 ; 229/e5 _a__ring___ + .byte $00 ; 230/e6 _ae________ + .byte $00 ; 231/e7 _c,cedilla_ + .byte $00 ; 232/e8 _e`_grave__ + .byte $00 ; 233/e9 _e'_acute__ + .byte $00 ; 234/ea _e^_circum_ + .byte $00 ; 235/eb _e"_dieres_ + .byte $00 ; 236/ec _i`_grave__ + .byte $00 ; 237/ed _i'_acute__ + .byte $00 ; 238/ee _i^_circum_ + .byte $00 ; 239/ef _i"_dieres_ + .byte $00 ; 240/f0 _o^x_Eth_s_ + .byte $00 ; 241/f1 _n~_tilda__ + .byte $00 ; 242/f2 _o`_grave__ + .byte $00 ; 243/f3 _o'_acute__ + .byte $00 ; 244/f4 _o^_circum_ + .byte $00 ; 245/f5 _o~_tilde__ + .byte $00 ; 246/f6 _o"_dieres_ + .byte $00 ; 247/f7 __divide___ + .byte $00 ; 248/f8 _o/_slash__ + .byte $00 ; 249/f9 _u`_grave__ + .byte $00 ; 250/fa _u'_acute__ + .byte $00 ; 251/fb _u^_circum_ + .byte $00 ; 252/fc _u"_dieres_ + .byte $00 ; 253/fd _y'_acute__ + .byte $00 ; 254/fe _sm_thorn__ + .byte $00 ; 255/ff _y"_dieres_ + diff --git a/libsrc/geos-cbm/system/enterdesktop.s b/libsrc/geos-cbm/system/enterdesktop.s new file mode 100644 index 000000000..00ca175e8 --- /dev/null +++ b/libsrc/geos-cbm/system/enterdesktop.s @@ -0,0 +1,15 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 30.10.99, 17.04.2003 + +; void EnterDeskTop (void); + + .import _exit + .export _EnterDeskTop + +_EnterDeskTop: + lda #0 + tax + jmp _exit diff --git a/libsrc/geos-cbm/system/firstinit.s b/libsrc/geos-cbm/system/firstinit.s new file mode 100644 index 000000000..608aa14d4 --- /dev/null +++ b/libsrc/geos-cbm/system/firstinit.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void FirstInit (void); + + .export _FirstInit + + .include "../inc/jumptab.inc" + +_FirstInit = FirstInit \ No newline at end of file diff --git a/libsrc/geos-cbm/system/get_ostype.s b/libsrc/geos-cbm/system/get_ostype.s new file mode 100644 index 000000000..342b16c6b --- /dev/null +++ b/libsrc/geos-cbm/system/get_ostype.s @@ -0,0 +1,93 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 10.09.2001 +; +; Plus4 and GEOS 1.1 detection by +; Marco van den Heuvel, 2010-02-02 +; + +; unsigned char get_ostype (void); +; unsigned char get_tv (void); + + .export _get_ostype + .export _get_tv + .importzp tmp1 + + .include "../inc/const.inc" + .include "../inc/geossym.inc" + .include "../inc/geossym2.inc" + +_get_ostype: + ldx #0 + lda version + cmp #$a9 + beq geos11 + and #%11110000 + cmp #$10 + beq geos10 + lda c128Flag ; we're on at least 2.0 + cmp #$18 + beq geos_on_plus4 + ora version + rts +geos10: + lda version + rts +geos11: + lda #$11 + rts +geos_on_plus4: + lda #$04 + rts + +_get_tv: + jsr _get_ostype + cmp #$04 + beq plus4_get_tv + bpl only40 ; C64 with 40 columns only + lda graphMode + bpl only40 ; C128 but currently on 40 columns + ldx #1 ; COLUMNS80 + bne tvmode +only40: ldx #0 ; COLUMNS40 +tvmode: ; PAL/NTSC check here, result in A + php + sei ; disable interrupts + lda CPU_DATA ; this is for C64 + pha + lda #IO_IN ; enable access to I/O + sta CPU_DATA + bit rasreg + bpl tvmode ; wait for rasterline 127=256!) +modelp: + cmp rasreg ; wait for rasterline = 24 (or 280 on PAL) + bne modelp + lda grcntrl1 ; 24 or 280 ? + bpl ntsc + lda #0 ; PAL + beq modeend +ntsc: + lda #$80 ; NTSC + +modeend: + stx tmp1 + ora tmp1 + sta tmp1 + ldx #0 + pla + sta CPU_DATA ; restore memory config + plp ; restore interrupt state + lda tmp1 + rts +plus4_get_tv: + ldx #1 ; Assume PAL + bit $FF07 ; Test bit 6 + bvc plus4pal + dex ; NTSC +plus4pal: + txa + ldx #0 + rts diff --git a/libsrc/geos-cbm/system/getrandom.s b/libsrc/geos-cbm/system/getrandom.s new file mode 100644 index 000000000..9bb70f4d3 --- /dev/null +++ b/libsrc/geos-cbm/system/getrandom.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 30.10.1999, 2.1.2003 + +; char GetRandom (void); + + .export _GetRandom + + .include "../inc/jumptab.inc" + +_GetRandom: + jsr GetRandom + ldx #0 + rts diff --git a/libsrc/geos-cbm/system/getserialnumber.s b/libsrc/geos-cbm/system/getserialnumber.s new file mode 100644 index 000000000..2a748875e --- /dev/null +++ b/libsrc/geos-cbm/system/getserialnumber.s @@ -0,0 +1,19 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; int GetSerialNumber (void); + + .export _GetSerialNumber + + .include "../inc/jumptab.inc" + .include "../inc/geossym.inc" + +_GetSerialNumber: + + jsr GetSerialNumber + lda r0L + ldx r0H + rts diff --git a/libsrc/geos-cbm/system/initdoneio.s b/libsrc/geos-cbm/system/initdoneio.s new file mode 100644 index 000000000..c3280c910 --- /dev/null +++ b/libsrc/geos-cbm/system/initdoneio.s @@ -0,0 +1,16 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void InitForIO (void); +; void DoneWithIO (void); + + .export _InitForIO, _DoneWithIO + + .include "../inc/jumptab.inc" + +_InitForIO = InitForIO + +_DoneWithIO = DoneWithIO \ No newline at end of file diff --git a/libsrc/geos-cbm/system/mainloop.s b/libsrc/geos-cbm/system/mainloop.s new file mode 100644 index 000000000..5b0517510 --- /dev/null +++ b/libsrc/geos-cbm/system/mainloop.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Elysium' Witkowiak +; +; 30.10.1999, 10.01.2003 + +; void MainLoop (void); + + .export _MainLoop + + .include "../inc/jumptab.inc" + +_MainLoop = MainLoop diff --git a/libsrc/geos-cbm/system/panic.s b/libsrc/geos-cbm/system/panic.s new file mode 100644 index 000000000..a489edd04 --- /dev/null +++ b/libsrc/geos-cbm/system/panic.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void Panic (void); + + .export _Panic + + .include "../inc/jumptab.inc" + +_Panic = Panic \ No newline at end of file diff --git a/libsrc/geos-cbm/system/setdevice.s b/libsrc/geos-cbm/system/setdevice.s new file mode 100644 index 000000000..819a0bef1 --- /dev/null +++ b/libsrc/geos-cbm/system/setdevice.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 21.12.99 + +; void SetDevice (char newDeviceNumber); + + .export _SetDevice + + .include "../inc/jumptab.inc" + +_SetDevice = SetDevice diff --git a/libsrc/geos-cbm/system/systime.c b/libsrc/geos-cbm/system/systime.c new file mode 100644 index 000000000..b3d4ab11f --- /dev/null +++ b/libsrc/geos-cbm/system/systime.c @@ -0,0 +1,34 @@ + +/* + * systime.c + * + * Maciej 'YTM/Elysium' Witkowiak, 22.11.2002 + */ + +#include +#include + +time_t _systime(void) { + +struct tm currentTime; + + currentTime.tm_sec = system_date.s_seconds; + currentTime.tm_min = system_date.s_minutes; + currentTime.tm_hour = system_date.s_hour; + currentTime.tm_mday = system_date.s_day; + currentTime.tm_mon = system_date.s_month; + currentTime.tm_year = system_date.s_year; + if (system_date.s_year < 87) { + currentTime.tm_year+=100; + } + currentTime.tm_isdst = -1; + + return mktime(¤tTime); + +} + +clock_t clock(void) { + + return _systime(); + +} diff --git a/libsrc/geos-cbm/system/sysuname.s b/libsrc/geos-cbm/system/sysuname.s new file mode 100644 index 000000000..c0cd91410 --- /dev/null +++ b/libsrc/geos-cbm/system/sysuname.s @@ -0,0 +1,39 @@ +; +; Ullrich von Bassewitz, 2003-08-12 +; +; unsigned char __fastcall__ _sysuname (struct utsname* buf); +; + + .export __sysuname, utsdata + + .import utscopy + + __sysuname = utscopy + +;-------------------------------------------------------------------------- +; Data. We define a fixed utsname struct here and just copy it. + +.rodata + +utsdata: + ; sysname + .asciiz "cc65" + + ; nodename + .asciiz "" + + ; release + .byte ((.VERSION >> 8) & $0F) + '0' + .byte '.' + .byte ((.VERSION >> 4) & $0F) + '0' + .byte $00 + + ; version + .byte (.VERSION & $0F) + '0' + .byte $00 + + ; machine + .asciiz "GEOS" + + + diff --git a/libsrc/geos-cbm/system/tobasic.s b/libsrc/geos-cbm/system/tobasic.s new file mode 100644 index 000000000..bc1d15ed8 --- /dev/null +++ b/libsrc/geos-cbm/system/tobasic.s @@ -0,0 +1,13 @@ + +; +; Maciej 'YTM/Alliance' Witkowiak +; +; 30.10.99 + +; void ToBASIC (void); + + .export _ToBASIC + + .include "../inc/jumptab.inc" + +_ToBASIC = ToBASIC \ No newline at end of file diff --git a/libsrc/geos/Makefile b/libsrc/geos/Makefile deleted file mode 100644 index ad7f56cc2..000000000 --- a/libsrc/geos/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -# -# Makefile for GEOS lib -# for cc65 -# -# Maciej 'YTM/Elysium' Witkowiak - -OBJ_DIRS=common conio devel disk dlgbox file graph menuicon memory mousesprite process runtime system - -all: - @for i in $(OBJ_DIRS); do $(MAKE) -C $$i; done - @for i in $(OBJ_DIRS); do $(AR) a ../geos.lib $$i/*.o; done - -rebuild: zap all clean - - -.PHONY: clean -clean: - @for i in $(OBJ_DIRS); do \ - cd $$i; \ - $(MAKE) clean; \ - cd ..; \ - done - -.PHONY: zap -zap: clean - @$(RM) ../geos.lib - diff --git a/libsrc/geos/common/Makefile b/libsrc/geos/common/Makefile deleted file mode 100644 index ff1ae7648..000000000 --- a/libsrc/geos/common/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# -# Makefile for GEOS lib -# for cc65 -# - -%.o: %.c - @$(CC) $(CFLAGS) $< - @$(AS) -g -o $@ $(AFLAGS) $(*).s - -%.o: %.s - @$(AS) -o $@ $(AFLAGS) $< - -C_OBJS = _afailed.o abort.o perror.o sleep.o -S_OBJS = copydata.o memcpy.o memmove.o memset.o zerobss.o - -all: $(C_OBJS) $(S_OBJS) - -clean: - @$(RM) core *.~ $(S_OBJS) $(C_OBJS:.o=.s) $(C_OBJS) diff --git a/libsrc/geos/common/_afailed.c b/libsrc/geos/common/_afailed.c deleted file mode 100644 index 10da48d0e..000000000 --- a/libsrc/geos/common/_afailed.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * _afailed.c - * - * Maciej 'YTM/Elysium' Witkowiak 28.10.2001 - */ - -#include -#include -#include - -void _afailed (char* file, unsigned line) -{ - - ExitTurbo(); - - drawWindow.top = 0; - drawWindow.left = 0; - drawWindow.bot = 15; - drawWindow.right = 150; - dispBufferOn = ST_WR_FORE|ST_WR_BACK; - SetPattern(0); - Rectangle(); - FrameRectangle(0xff); - - PutString(CBOLDON "file: ", 10, 10); - PutString(file, 10, r11); - PutString(CBOLDON " line: ", 10, r11); - PutDecimal(0, line, 10, r11); - - DlgBoxOk(CBOLDON "ASSERTION FAILED", "PROGRAM TERMINATED" CPLAINTEXT); - - exit (2); -} diff --git a/libsrc/geos/common/_poserror.c b/libsrc/geos/common/_poserror.c deleted file mode 100644 index 0dc6f99d8..000000000 --- a/libsrc/geos/common/_poserror.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * _poserror.c - * - * Maciej 'YTM/Elysium' Witkowiak, 25.04.2003 - */ - -#include -#include -#include -#include - -void __fastcall__ _poserror (const char* msg) -{ - const char *errmsg = _stroserror(_oserror); - - ExitTurbo(); - if (msg && *msg) { - DlgBoxOk(msg, errmsg); - } else { - DlgBoxOk("", errmsg); - } -} diff --git a/libsrc/geos/common/abort.c b/libsrc/geos/common/abort.c deleted file mode 100644 index 3db62f03b..000000000 --- a/libsrc/geos/common/abort.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - * abort.c - * - * Maciej 'YTM/Elysium' Witkowiak 15.7.2001 - */ - - - -#include -#include - -void abort (void) -{ - ExitTurbo(); - DlgBoxOk(CBOLDON "ABNORMAL PROGRAM", "TERMINATION." CPLAINTEXT); - exit(3); -} diff --git a/libsrc/geos/common/copydata.s b/libsrc/geos/common/copydata.s deleted file mode 100644 index 2efd7c352..000000000 --- a/libsrc/geos/common/copydata.s +++ /dev/null @@ -1,27 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak 15.07.2001 -; -; Copy the data segment from the LOAD to the RUN location -; - - .export copydata - .import __DATA_LOAD__, __DATA_RUN__, __DATA_SIZE__ - .include "../inc/geossym.inc" - .include "../inc/jumptab.inc" - -copydata: - lda #<__DATA_SIZE__ ; no need to check if it is == 0 - ldx #>__DATA_SIZE__ - sta r2L - stx r2H - - lda #<__DATA_RUN__ - ldx #>__DATA_RUN__ - sta r1L - stx r1H - - lda #<__DATA_LOAD__ - ldx #>__DATA_LOAD__ - sta r0L - stx r0H - jmp MoveData diff --git a/libsrc/geos/common/memcpy.s b/libsrc/geos/common/memcpy.s deleted file mode 100644 index 54fb96372..000000000 --- a/libsrc/geos/common/memcpy.s +++ /dev/null @@ -1,10 +0,0 @@ -; -; void* __fastcall__ memcpy (void* dest, const void* src, size_t n); -; -; Maciej 'YTM/Elysium' Witkowiak, 15.07.2001 -; - - .export _memcpy - .import _MoveData - -_memcpy = _MoveData diff --git a/libsrc/geos/common/memmove.s b/libsrc/geos/common/memmove.s deleted file mode 100644 index dad3d8453..000000000 --- a/libsrc/geos/common/memmove.s +++ /dev/null @@ -1,10 +0,0 @@ -; -; void* __fastcall__ memmove (void* dest, const void* src, size_t n); -; -; Maciej 'YTM/Elysium' Witkowiak, 15.07.2001 -; - - .export _memmove - .import _MoveData - -_memmove = _MoveData diff --git a/libsrc/geos/common/memset.s b/libsrc/geos/common/memset.s deleted file mode 100644 index 77d830f6e..000000000 --- a/libsrc/geos/common/memset.s +++ /dev/null @@ -1,14 +0,0 @@ -; -; void* memset (void* ptr, int c, size_t n); -; void* _bzero (void* ptr, size_t n); -; void bzero (void* ptr, size_t n); -; -; Maciej 'YTM/Elysium' Witkowiak, 20.08.2003 -; - - .export _memset, _bzero, __bzero - .import _ClearRam, _FillRam - -_bzero = _ClearRam -__bzero = _ClearRam -_memset = _FillRam diff --git a/libsrc/geos/common/perror.c b/libsrc/geos/common/perror.c deleted file mode 100644 index 6b3ed3c64..000000000 --- a/libsrc/geos/common/perror.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * perror.c - * - * Maciej 'YTM/Elysium' Witkowiak, 15.07.2001 - */ - -#include -#include -#include -#include - -void __fastcall__ perror(const char* msg) -{ - const char *errmsg = strerror(errno); - - ExitTurbo(); - if (msg && *msg) { - DlgBoxOk(msg, errmsg); - } else { - DlgBoxOk("", errmsg); - } -} diff --git a/libsrc/geos/common/sleep.c b/libsrc/geos/common/sleep.c deleted file mode 100644 index b1b3750c1..000000000 --- a/libsrc/geos/common/sleep.c +++ /dev/null @@ -1,23 +0,0 @@ -/* - * sleep.c - * - * Maciej 'YTM/Elysium' Witkowiak, 16.08.2003 - * - */ - -#include - -unsigned __fastcall__ sleep (unsigned wait) -{ - char typ; - - if ( (get_tv()) & TV_NTSC ) { - typ = 60; - } else { - typ = 50; - } - - Sleep(wait*typ); - - return 0; -} diff --git a/libsrc/geos/common/zerobss.s b/libsrc/geos/common/zerobss.s deleted file mode 100644 index 5613a75ed..000000000 --- a/libsrc/geos/common/zerobss.s +++ /dev/null @@ -1,25 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; 23.12.2002 -; -; Zero the bss segment. -; - - .export zerobss - .import __BSS_RUN__, __BSS_SIZE__ - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -.code - -zerobss: - lda #<__BSS_SIZE__ - ldx #>__BSS_SIZE__ - sta r0L - stx r0H - lda #<__BSS_RUN__ - ldx #>__BSS_RUN__ - sta r1L - stx r1H - jmp ClearRam diff --git a/libsrc/geos/conio/Makefile b/libsrc/geos/conio/Makefile deleted file mode 100644 index 67f9e7528..000000000 --- a/libsrc/geos/conio/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# -# Makefile for GEOS lib -# for cc65 -# - -%.o: %.s - @$(AS) -o $@ $(AFLAGS) $< - - -S_OBJS = cclear.o chline.o cvline.o cgetc.o clrscr.o color.o\ - cputc.o cpputs.o cursor.o gotoxy.o kbhit.o revers.o\ - where.o _scrsize.o - -all: $(S_OBJS) - -clean: - @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos/conio/_scrsize.s b/libsrc/geos/conio/_scrsize.s deleted file mode 100644 index b469d2a9d..000000000 --- a/libsrc/geos/conio/_scrsize.s +++ /dev/null @@ -1,44 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; Screen size variables -; -; 6.3.2001, 17.4.2003 - - - .include "../inc/geossym.inc" - - .export xsize, ysize - .export screensize - .importzp cursor_r, cursor_c - .import _cursor - .constructor initscrsize - -.segment "INIT" - -initscrsize: - lda graphMode - bpl L1 - lda #80 ; 80 columns (more or less) - .byte $2c -L1: lda #40 ; 40 columns (more or less) - sta xsize - lda #24 ; something like that for Y size - sta ysize - ldx #1 - stx cursor_r - dex - stx cursor_c - txa - jmp _cursor ; home and update cursor - -screensize: - ldx xsize - ldy ysize - rts - -.bss - -xsize: .res 1 -ysize: .res 1 diff --git a/libsrc/geos/conio/cclear.s b/libsrc/geos/conio/cclear.s deleted file mode 100644 index a40404eb7..000000000 --- a/libsrc/geos/conio/cclear.s +++ /dev/null @@ -1,51 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 06.03.2002 - -; void cclearxy (unsigned char x, unsigned char y, unsigned char length); -; void cclear (unsigned char length); - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - - .export _cclearxy, _cclear - .import popa, _gotoxy, fixcursor - .importzp cursor_x, cursor_y, cursor_c - -_cclearxy: - pha ; Save the length - jsr popa ; Get y - jsr _gotoxy ; Call this one, will pop params - pla ; Restore the length - -_cclear: - cmp #0 ; Is the length zero? - beq L9 ; Jump if done - tax - lda cursor_x ; left start - sta r3L - lda cursor_x+1 - sta r3L+1 - lda cursor_y ; level - sta r2L - clc - adc #8 - sta r2H - txa ; right end - clc - adc cursor_c - sta cursor_c - sta r4L - ldx #r4 - ldy #3 - jsr DShiftLeft - lda curPattern ; store current pattern - pha - lda #0 ; set pattern to clear - jsr SetPattern - jsr Rectangle - pla - jsr SetPattern ; restore pattern - jsr fixcursor -L9: rts diff --git a/libsrc/geos/conio/cgetc.s b/libsrc/geos/conio/cgetc.s deleted file mode 100644 index 05de86826..000000000 --- a/libsrc/geos/conio/cgetc.s +++ /dev/null @@ -1,40 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 27.10.2001 -; 06.03.2002 - -; unsigned char cgetc (void); - - .export _cgetc - .import update_cursor - .importzp cursor_x, cursor_y, cursor_flag - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_cgetc: -; show cursor if needed - lda cursor_flag - beq L0 - - jsr update_cursor - lda cursor_x - ldx cursor_x+1 - sta stringX - stx stringX+1 - lda cursor_y - sec - sbc curHeight - sta stringY - jsr PromptOn - -L0: jsr GetNextChar - tax - beq L0 - pha - jsr PromptOff - pla - ldx #0 - rts diff --git a/libsrc/geos/conio/chline.s b/libsrc/geos/conio/chline.s deleted file mode 100644 index b02fc115d..000000000 --- a/libsrc/geos/conio/chline.s +++ /dev/null @@ -1,45 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 06.03.2002 - -; void chlinexy (unsigned char x, unsigned char y, unsigned char length); -; void chline (unsigned char length); - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - - .export _chlinexy, _chline - .import popa, _gotoxy, fixcursor - .importzp cursor_x, cursor_y, cursor_c - -_chlinexy: - pha ; Save the length - jsr popa ; Get y - jsr _gotoxy ; Call this one, will pop params - pla ; Restore the length - -_chline: - cmp #0 ; Is the length zero? - beq L9 ; Jump if done - tax - lda cursor_x ; left start - sta r3L - lda cursor_x+1 - sta r3L+1 - lda cursor_y ; level - sec - sbc #4 ; in the middle of a cell - sta r11L - txa ; right end - clc - adc cursor_c - sta cursor_c - sta r4L - ldx #r4 - ldy #3 - jsr DShiftLeft - lda #%11111111 ; pattern - jsr HorizontalLine - jsr fixcursor -L9: rts diff --git a/libsrc/geos/conio/clrscr.s b/libsrc/geos/conio/clrscr.s deleted file mode 100644 index b1bdc17ad..000000000 --- a/libsrc/geos/conio/clrscr.s +++ /dev/null @@ -1,46 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 27.10.2001, 23.12.2002 - -; void clrscr (void); - - .export _clrscr - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - .include "../inc/const.inc" - - .import fixcursor - .importzp cursor_c, cursor_r - -_clrscr: - lda #ST_WR_FORE | ST_WR_BACK - sta dispBufferOn - lda curPattern ; save current pattern - pha - lda #0 ; set pattern to clear - jsr SetPattern - ldx #0 - stx r3L - stx r3H - stx r2L - stx cursor_c - inx - stx cursor_r - jsr fixcursor ; home cursor - lda #199 - sta r2H - lda graphMode - bpl L40 - lda #>639 ; 80 columns - ldx #<639 - bne L99 -L40: lda #>319 ; 40 columns - ldx #<319 -L99: sta r4H - stx r4L - jsr Rectangle - pla - jmp SetPattern ; restore pattern diff --git a/libsrc/geos/conio/color.s b/libsrc/geos/conio/color.s deleted file mode 100644 index e5498041e..000000000 --- a/libsrc/geos/conio/color.s +++ /dev/null @@ -1,20 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 27.10.2001 - -; unsigned char __fastcall__ textcolor (unsigned char color); -; unsigned char __fastcall__ bgcolor (unsigned char color); -; unsigned char __fastcall__ bordercolor (unsigned char color); -; - - - .export _textcolor, _bgcolor, _bordercolor - -; for GEOS 2.0 there is no color support, perhaps Wheels has it - -_textcolor: -_bgcolor: -_bordercolor: - rts diff --git a/libsrc/geos/conio/cpputs.s b/libsrc/geos/conio/cpputs.s deleted file mode 100644 index 98781a4fb..000000000 --- a/libsrc/geos/conio/cpputs.s +++ /dev/null @@ -1,45 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 27.10.2001 -; 05.03.2002 - -; void cpputsxy (unsigned char x, unsigned char y, char* s); -; void cpputs (char* s); - -; same as cputsxy and cputs but faster and use proportional font spacing -; does not update cursor position - - .export _cpputsxy, _cpputs - - .import _gotoxy - .import popa - .importzp cursor_x, cursor_y - - .include "../inc/const.inc" - .include "../inc/geossym.inc" - .include "../inc/jumptab.inc" - -_cpputsxy: - sta r0L ; Save s for later - stx r0H - jsr popa ; Get Y - jsr _gotoxy ; Set cursor, pop x - jmp L0 ; Same as cputs... - -_cpputs: - sta r0L ; Save s - stx r0H -L0: ldy #0 - lda (r0),y - bne L1 ; Jump if there's something - rts - -L1: lda cursor_x - sta r11L - lda cursor_x+1 - sta r11H - lda cursor_y - sta r1H - jmp PutString diff --git a/libsrc/geos/conio/cputc.s b/libsrc/geos/conio/cputc.s deleted file mode 100644 index c017e17ab..000000000 --- a/libsrc/geos/conio/cputc.s +++ /dev/null @@ -1,102 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 27.10.2001 -; 06.03.2002 -; 25.07.2005 - -; void cputcxy (unsigned char x, unsigned char y, char c); -; void cputc (char c); - -; TODO: -; TAB (should be implemented) -; other special characters directly from keyboard are unsafe, though some might be -; implemented: -; HOME, UPLINE, ULINEON, ULINEOFF, REV_ON, REV_OFF, BOLDON, ITALICON, OUTLINEON, PLAINTEXT -; and cursor movement, maybe stuff like INSERT too -; -; these must be ignored: -; ESC_GRAPHICS, ESC_RULER, GOTOX, GOTOY, GOTOXY, NEWCARDSET, all 1..8 -; -; note that there are conflicts between control characters and keyboard: -; HOME = KEY_ENTER, KEY_HOME = REV_ON, -; UPLINE = ?, KEY_UPARROW = GOTOY, ... - - .export _cputcxy, _cputc, update_cursor - - .import _gotoxy, fixcursor - .import popa - .import xsize,ysize - .importzp cursor_x, cursor_y, cursor_c, cursor_r - - .include "../inc/const.inc" - .include "../inc/geossym.inc" - .include "../inc/jumptab.inc" - -_cputcxy: - pha ; Save C - jsr popa ; Get Y - jsr _gotoxy ; Set cursor, drop x - pla ; Restore C - -; Plot a character - also used as internal function - -_cputc: - tax ; save character -; some characters 0-31 are not safe for PutChar - cmp #$20 - bcs L1 - cmp #CR - beq do_cr - cmp #LF - beq do_lf - cmp #KEY_DELETE - bne L0 - ldx #BACKSPACE - sec - bcs L2 -L0: rts - -L1: clc -L2: php - lda cursor_x - sta r11L - lda cursor_x+1 - sta r11H - lda cursor_y - sta r1H - txa - jsr PutChar - plp - bcs update_cursor - - inc cursor_c - lda cursor_c - cmp xsize ; hit right margin? - bne update_cursor - lda #0 ; yes - do cr+lf - sta cursor_c -do_lf: inc cursor_r - lda cursor_r - cmp ysize ; hit bottom margin? - bne update_cursor - dec cursor_r ; yes - stay in the last line - -update_cursor: - jsr fixcursor - lda cursor_x - sta r4L - lda cursor_x+1 - sta r4H - lda cursor_y - sec - sbc curHeight - sta r5L - lda #1 ; update cursor prompt position - sta r3L - jmp PosSprite - -do_cr: lda #0 - sta cursor_c - beq update_cursor diff --git a/libsrc/geos/conio/cursor.s b/libsrc/geos/conio/cursor.s deleted file mode 100644 index 5dab5c1e3..000000000 --- a/libsrc/geos/conio/cursor.s +++ /dev/null @@ -1,28 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 27.10.2001, 23.12.2002 - -; unsigned char cursor (unsigned char onoff); - - .export _cursor - .import update_cursor - .importzp cursor_flag - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_cursor: - - tay ; onoff into Y - ldx #0 ; High byte of result - lda cursor_flag ; Get old value - pha - sty cursor_flag ; Set new value - tya - beq L1 - lda curHeight ; prepare cursor - jsr InitTextPrompt - jsr update_cursor ; place it on screen -L1: pla - rts diff --git a/libsrc/geos/conio/cvline.s b/libsrc/geos/conio/cvline.s deleted file mode 100644 index 57c1c6617..000000000 --- a/libsrc/geos/conio/cvline.s +++ /dev/null @@ -1,46 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 06.03.2002 - -; void cvlinexy (unsigned char x, unsigned char y, unsigned char length); -; void cvline (unsigned char length); - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - - .export _cvlinexy, _cvline - .import popa, _gotoxy, fixcursor - .importzp cursor_x, cursor_y, cursor_r - -_cvlinexy: - pha ; Save the length - jsr popa ; Get y - jsr _gotoxy ; Call this one, will pop params - pla ; Restore the length - -_cvline: - cmp #0 ; Is the length zero? - beq L9 ; Jump if done - tax - lda cursor_x ; x position - clc - adc #4 ; in the middle of cell - sta r4L - lda cursor_x+1 - adc #0 - sta r4L+1 - lda cursor_y ; top start - sta r3L - txa ; bottom end - clc - adc cursor_r - sta cursor_r - sta r3H - asl r3H - asl r3H - asl r3H - lda #%11111111 ; pattern - jsr VerticalLine - jsr fixcursor -L9: rts diff --git a/libsrc/geos/conio/gotoxy.s b/libsrc/geos/conio/gotoxy.s deleted file mode 100644 index 1a0261168..000000000 --- a/libsrc/geos/conio/gotoxy.s +++ /dev/null @@ -1,44 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 27.10.2001 -; 06.03.2002 - -; void gotox (unsigned char x); -; void gotoy (unsigned char y); -; void gotoxy (unsigned char x, unsigned char y); - - .export _gotox, _gotoy, _gotoxy, fixcursor - .import popa - .importzp cursor_x, cursor_y, cursor_c, cursor_r - - .include "../inc/jumptab.inc" - -_gotox: sta cursor_c - jmp fixcursor - -_gotoy: sta cursor_r - inc cursor_r - jmp fixcursor - -_gotoxy: sta cursor_r - inc cursor_r - jsr popa - sta cursor_c - -; convert 8x8 x/y coordinates to GEOS hires -fixcursor: - lda cursor_c - sta cursor_x - lda #0 - sta cursor_x+1 - lda cursor_r - sta cursor_y - ldx #cursor_x - ldy #3 - jsr DShiftLeft - asl cursor_y - asl cursor_y - asl cursor_y - rts diff --git a/libsrc/geos/conio/kbhit.s b/libsrc/geos/conio/kbhit.s deleted file mode 100644 index 6756f49c9..000000000 --- a/libsrc/geos/conio/kbhit.s +++ /dev/null @@ -1,22 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 27.10.2001 - -; unsigned char kbhit (void); - - .export _kbhit - - .include "../inc/geossym.inc" - -.proc _kbhit - - ldx #0 ; High byte of result - lda pressFlag - rol ; Bit 7 is new key flag - txa ; A = 0 - rol - rts - -.endproc diff --git a/libsrc/geos/conio/revers.s b/libsrc/geos/conio/revers.s deleted file mode 100644 index cd5ea66bb..000000000 --- a/libsrc/geos/conio/revers.s +++ /dev/null @@ -1,36 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 27.10.2001 - -; unsigned char revers (unsigned char onoff); - - .export _revers - .importzp tmp1 - - .include "../inc/geossym.inc" - .include "../inc/const.inc" - -_revers: - tax - bne L0 ; turn on - lda #0 - .byte $2c -L0: lda #SET_REVERSE - sta tmp1 - - lda currentMode - tax - and #SET_REVERSE - tay ; store old value - txa - and #%11011111 ; mask out - ora tmp1 ; set new value - sta currentMode - - ldx #0 - tya - beq L1 - lda #1 -L1: rts diff --git a/libsrc/geos/conio/where.s b/libsrc/geos/conio/where.s deleted file mode 100644 index 5690fa6d2..000000000 --- a/libsrc/geos/conio/where.s +++ /dev/null @@ -1,21 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 27.10.2001 -; 06.03.2002 -; 02.01.2003 - -; unsigned char wherex (void); -; unsigned char wherey (void); - - .export _wherex, _wherey - .importzp cursor_c, cursor_r - -_wherex: lda cursor_c - ldx #0 - rts - -_wherey: lda cursor_r - ldx #0 - rts diff --git a/libsrc/geos/devel/Makefile b/libsrc/geos/devel/Makefile deleted file mode 100644 index b2d9bb197..000000000 --- a/libsrc/geos/devel/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -# -*- make -*- -# -# Makefile for GEOS lib -# for cc65 -# - -%.o: %.s - @$(AS) -g -o $@ $(AFLAGS) $< - -%.emd: %.o ../../runtime/zeropage.o - @$(LD) -o $@ -t module $^ - -%.joy: %.o ../../runtime/zeropage.o - @$(LD) -o $@ -t module $^ - -%.mou: %.o ../../runtime/zeropage.o - @$(LD) -o $@ -t module $^ - -%.ser: %.o ../../runtime/zeropage.o - @$(LD) -o $@ -t module $^ - -%.tgi: %.o ../../runtime/zeropage.o - @$(LD) -o $@ -t module $^ - -S_OBJS = crt0.o \ - extzp.o \ - 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 - -#-------------------------------------------------------------------------- -# Drivers - -EMDS = geos-vdc.emd - -JOYS = geos-stdjoy.joy - -MOUS = #geos-stdmou.mou - -SERS = - -TGIS = geos-tgi.tgi - -all: $(S_OBJS) $(EMDS) $(JOYS) $(MOUS) $(SERS) $(TGIS) - -../../runtime/zeropage.o: - $(MAKE) -C $(dir $@) $(notdir $@) - -clean: - @$(RM) *.~ core $(S_OBJS) $(EMDS:.emd=.o) $(JOYS:.joy=.o) $(MOUS:.mou=.o) $(SERS:.ser=.o) $(TGIS:.tgi=.o) diff --git a/libsrc/geos/devel/crt0.s b/libsrc/geos/devel/crt0.s deleted file mode 100644 index 1e138e8e4..000000000 --- a/libsrc/geos/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 "../inc/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/devel/extzp.s b/libsrc/geos/devel/extzp.s deleted file mode 100644 index beb4e271c..000000000 --- a/libsrc/geos/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/devel/fio_module.s b/libsrc/geos/devel/fio_module.s deleted file mode 100644 index 0ced16c11..000000000 --- a/libsrc/geos/devel/fio_module.s +++ /dev/null @@ -1,191 +0,0 @@ -; -; Low level file I/O routines, ONLY for module loading OR sth similar -; -; Maciej 'YTM/Elysium' Witkowiak -; 25.12.2002 -; -; only ONE opened file at a time, only O_RDONLY flag - -; int open (const char* name, int flags, ...); /* May take a mode argument */ -; int __fastcall__ close (int fd); -; int __fastcall__ read (int fd, void* buf, unsigned count); - -FILEDES = 3 ; first free to use file descriptor - - .include "../inc/geossym.inc" - .include "../inc/const.inc" - .include "errno.inc" - .include "fcntl.inc" - - .importzp ptr1, ptr2, ptr3, tmp1 - .import addysp, popax - .import __oserror - .import _FindFile, _ReadByte - - .export _open, _close, _read - - -;-------------------------------------------------------------------------- -; _open - -_open: - - cpy #4 ; correct # of arguments (bytes)? - beq @parmok ; parameter count ok - tya ; parm count < 4 shouldn't be needed to be... - sec ; ...checked (it generates a c compiler warning) - sbc #4 - tay - jsr addysp ; fix stack, throw away unused parameters - -; Parameters ok. Pop the flags and save them into tmp3 - -@parmok: - jsr popax ; Get flags - sta tmp1 - jsr popax ; Get name - sta ptr1 - stx ptr1+1 - - lda filedesc ; is there a file already open? - bne @alreadyopen - - lda tmp1 ; check open mode - and #(O_RDWR | O_CREAT) - cmp #O_RDONLY ; only O_RDONLY is valid - bne @badmode - - lda ptr1 - ldx ptr1+1 - jsr _FindFile ; try to find the file - tax - bne @oserror - - lda dirEntryBuf + OFF_DE_TR_SC ; tr&se for ReadByte (r1) - sta f_track - lda dirEntryBuf + OFF_DE_TR_SC + 1 - sta f_sector - lda #diskBlkBuf - sta f_buffer+1 - ldx #0 ; offset for ReadByte (r5) - stx f_offset - stx f_offset+1 - lda #0 ; clear errors - sta __oserror - jsr __seterrno - lda #FILEDES ; return fd - sta filedesc - rts -@badmode: - lda #EINVAL ; invalid parameters - invalid open mode - .byte $2c ; skip -@alreadyopen: - lda #EMFILE ; too many opened files (there can be only one) - jmp __directerrno ; set errno, clear oserror, return -1 -@oserror: - jmp __mappederrno ; set platform error code, return -1 - -_close: - lda #0 - sta __oserror - jsr __seterrno ; clear errors - lda #0 ; clear fd - sta filedesc - tax - rts - -_read: - ; a/x - number of bytes - ; popax - buffer ptr - ; popax - fd, must be == to the above one - ; return -1+__oserror or number of bytes read - - eor #$ff - sta ptr1 - txa - eor #$ff - sta ptr1+1 ; -(# of bytes to read)-1 - jsr popax - sta ptr2 - stx ptr2+1 ; buffer ptr - jsr popax - cmp #FILEDES ; lo-byte == FILEDES - bne @filenotopen - txa ; hi-byte == 0 - beq @fileok ; fd must be == FILEDES - -@filenotopen: - lda #EBADF - jmp __directerrno ; Sets _errno, clears _oserror, returns -1 - -@fileok: - lda #0 - sta ptr3 - sta ptr3+1 ; put 0 into ptr3 (number of bytes read) - sta __oserror ; clear error flags - jsr __seterrno - - lda f_track ; restore stuff for ReadByte - ldx f_sector - sta r1L - stx r1H - lda f_buffer - ldx f_buffer+1 - sta r4L - stx r4H - lda f_offset - ldx f_offset+1 - sta r5L - stx r5H - - clc - bcc @L3 ; branch always - -@L0: jsr _ReadByte - ldy #0 ; store the byte - sta (ptr2),y - inc ptr2 ; increment target address - bne @L1 - inc ptr2+1 - -@L1: inc ptr3 ; increment byte count - bne @L2 - inc ptr3+1 - -@L2: lda __oserror ; was there error ? - beq @L3 - cmp #BFR_OVERFLOW ; EOF? - beq @done ; yes, we're done - jmp __mappederrno ; no, we're screwed - -@L3: inc ptr1 ; decrement the count - bne @L0 - inc ptr1+1 - bne @L0 - -@done: - lda r1L ; preserve data for ReadByte - ldx r1H - sta f_track - stx f_sector - lda r4L - ldx r4H - sta f_buffer - stx f_buffer+1 - lda r5L - ldx r5H - sta f_offset - stx f_offset+1 - - lda ptr3 ; return byte count - ldx ptr3+1 - rts - -.bss -filedesc: .res 1 ; file open flag - 0 (no file opened) or 1 -f_track: .res 1 ; values preserved for ReadByte -f_sector: .res 1 -f_offset: .res 2 -f_buffer: .res 2 diff --git a/libsrc/geos/devel/geos-stdjoy.s b/libsrc/geos/devel/geos-stdjoy.s deleted file mode 100644 index 8b654bc9c..000000000 --- a/libsrc/geos/devel/geos-stdjoy.s +++ /dev/null @@ -1,126 +0,0 @@ -; -; Standard joystick driver for the C64. May be used multiple times when linked -; to the statically application. -; -; Ullrich von Bassewitz, 2002-12-20 -; - - .include "zeropage.inc" - - .include "joy-kernel.inc" - .include "joy-error.inc" - .include "../inc/geossym.inc" - - .macpack generic - - -; ------------------------------------------------------------------------ -; Header. Includes jump table - -.segment "JUMPTABLE" - -; Driver signature - - .byte $6A, $6F, $79 ; "joy" - .byte JOY_API_VERSION ; Driver API version number - -; Button state masks (8 values) - - .byte $01 ; JOY_UP - .byte $02 ; JOY_DOWN - .byte $04 ; JOY_LEFT - .byte $08 ; JOY_RIGHT - .byte $10 ; JOY_FIRE - .byte $00 ; Future expansion - .byte $00 ; Future expansion - .byte $00 ; Future expansion - -; Jump table. - - .word INSTALL - .word UNINSTALL - .word COUNT - .word READ - -; ------------------------------------------------------------------------ -; Constants - -JOY_COUNT = 2 ; Number of joysticks we support - - -; ------------------------------------------------------------------------ -; Data. - - -.code - -; ------------------------------------------------------------------------ -; INSTALL routine. Is called after the driver is loaded into memory. If -; possible, check if the hardware is present and determine the amount of -; memory available. -; Must return an JOY_ERR_xx code in a/x. -; - -INSTALL: - lda #JOY_ERR_OK -; rts ; Run into UNINSTALL instead - -; ------------------------------------------------------------------------ -; UNINSTALL routine. Is called before the driver is removed from memory. -; Can do cleanup or whatever. Must not return anything. -; - -UNINSTALL: - rts - - -; ------------------------------------------------------------------------ -; COUNT: Return the total number of available joysticks in a/x. -; - -COUNT: - lda #JOY_COUNT - rts - -; ------------------------------------------------------------------------ -; READ: Read a particular joystick passed in A. -; - -READ: - tax - php - sei ; disable IRQ - lda $01 - pha - lda #$35 - sta $01 ; enable I/O - - txa ; Joystick number into X - bne joy2 - -; Read joystick 1 - -joy1: - lda #$7F - sta cia1base - lda cia1base+1 -back: tay - pla - sta $01 - plp - tya - and #$1F - eor #$1F - rts - -; Read joystick 2 - -joy2: ldx #0 - lda #$E0 - ldy #$FF - sta cia1base+2 - lda cia1base+1 - sty cia1base+2 - jmp back diff --git a/libsrc/geos/devel/geos-tgi.s b/libsrc/geos/devel/geos-tgi.s deleted file mode 100644 index 8cbb332d3..000000000 --- a/libsrc/geos/devel/geos-tgi.s +++ /dev/null @@ -1,673 +0,0 @@ -; -; Graphics driver for the 320x200x2 and 640x200x2 modes on GEOS 64/128 -; 2010-08-17, Maciej 'YTM/Elysium' Witkowiak -; 2010-08-18, Greg King - - .include "zeropage.inc" - - .include "tgi-kernel.inc" - .include "tgi-error.inc" - - .include "../inc/const.inc" - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - .include "../inc/geossym2.inc" - - .macpack generic - -; ------------------------------------------------------------------------ -; Constants - -VDC_ADDR_REG := $D600 ; VDC address -VDC_DATA_REG := $D601 ; VDC data - -VDC_DSP_HI = 12 ; registers used -VDC_DSP_LO = 13 -VDC_DATA_HI = 18 -VDC_DATA_LO = 19 -VDC_VSCROLL = 24 -VDC_HSCROLL = 25 -VDC_COLORS = 26 -VDC_CSET = 28 -VDC_COUNT = 30 -VDC_DATA = 31 - -; ------------------------------------------------------------------------ -; Header. Includes jump table and constants. - -.segment "JUMPTABLE" - -; First part of the header is a structure that has a magic signature, -; and defines the capabilities of the driver. - - .byte $74, $67, $69 ; "tgi" - .byte TGI_API_VERSION ; TGI API version number -xres: .word 320 ; X resolution -yres: .word 200 ; Y resolution - .byte 2 ; Number of drawing colors -pages: .byte 1 ; Number of screens available - .byte 8 ; System font X size - .byte 8 ; System font Y size -aspect: .word $00D4 ; Aspect ratio (based on 4/3 display) - .byte 0 ; TGI driver flags - -; Next comes the jump table. With the exception of IRQ, all entries must be -; valid, and may point to an RTS for test versions (function not implemented). - - .addr INSTALL - .addr UNINSTALL - .addr INIT - .addr DONE - .addr GETERROR - .addr CONTROL - .addr CLEAR - .addr SETVIEWPAGE - .addr SETDRAWPAGE - .addr SETCOLOR - .addr SETPALETTE - .addr GETPALETTE - .addr GETDEFPALETTE - .addr SETPIXEL - .addr GETPIXEL - .addr LINE - .addr BAR - .addr TEXTSTYLE - .addr OUTTEXT - .addr 0 ; IRQ entry is unused - -; ------------------------------------------------------------------------ -; Data. - -; Variables mapped to the zero-page segment variables. Some of these are -; used for passing parameters to the driver. - -X1 = ptr1 -Y1 = ptr2 -X2 = ptr3 -Y2 = ptr4 - -; Absolute variables used in the code - -.bss - -SCRBASE: .res 1 ; High byte of screen base (64k VDC only) - -ERROR: .res 1 ; Error code -PALETTE: .res 2 ; The current palette - -BITMASK: .res 1 ; $00 = clear, $01 = set pixels - -OLDCOLOR: .res 1 ; colors before entering gfx mode - -; Text output stuff -TEXTMAGX: .res 1 -TEXTMAGY: .res 1 -TEXTDIR: .res 1 - -; Constants and tables - -.rodata - -DEFPALETTE: .byte $00, $0f ; White on black -PALETTESIZE = * - DEFPALETTE - -; color translation table (indexed by VIC color) -COLTRANS: .byte $00, $0f, $08, $06, $0a, $04, $02, $0c - .byte $0d, $0b, $09, $01, $0e, $05, $03, $07 - ; colors BROWN and GRAY3 are wrong - -.code - -; ------------------------------------------------------------------------ -; INSTALL routine. Is called after the driver is loaded into memory. May -; initialize anything that has to be done just once. Is probably empty -; most of the time. -; -; Must set an error code: NO -; - -INSTALL: - lda version ; if GEOS 1.0... - and #$f0 - cmp #$10 - beq @L40 - lda c128Flag ; at least GEOS 2.0, but we're on C128? - bpl @L40 - lda graphMode ; GEOS 2.0, C128, but is 80 column screen enabled? - bmi @L80 -@L40: rts ; leave default values for 40 column screen - - ; check for VDC version and update register $19 value - -@L80: - ; double the x resolution and halve the aspect ratio - - asl xres - rol xres+1 - - lsr aspect+1 - ror aspect - - ; update number of available screens - - ldx #VDC_CSET ; determine size of RAM... - jsr VDCReadReg - sta tmp1 - ora #%00010000 - jsr VDCWriteReg ; turn on 64k - - jsr settestadr1 ; save original value of test byte - jsr VDCReadByte - sta tmp2 - - lda #$55 ; write $55 here - ldy #ptr1 - jsr test64k ; read it here and there - lda #$aa ; write $aa here - ldy #ptr2 - jsr test64k ; read it here and there - - jsr settestadr1 - lda tmp2 - jsr VDCWriteByte ; restore original value of test byte - - lda ptr1 ; do bytes match? - cmp ptr1+1 - bne @have64k - lda ptr2 - cmp ptr2+1 - bne @have64k - - ldx #VDC_CSET - lda tmp1 - jsr VDCWriteReg ; restore 16/64k flag - jmp @endok ; and leave default values for 16k - -@have64k: - lda #4 - sta pages -@endok: - lda #0 - sta SCRBASE ; draw page 0 as default - rts - -test64k: - sta tmp1 - sty ptr3 - lda #0 - sta ptr3+1 - jsr settestadr1 - lda tmp1 - jsr VDCWriteByte ; write $55 - jsr settestadr1 - jsr VDCReadByte ; read here - pha - jsr settestadr2 - jsr VDCReadByte ; and there - ldy #1 - sta (ptr3),y - pla - dey - sta (ptr3),y - rts - -settestadr1: - ldy #$02 ; test page 2 (here) - .byte $2c -settestadr2: - ldy #$42 ; or page 64+2 (there) - lda #0 - jmp VDCSetSourceAddr - -; ------------------------------------------------------------------------ -; UNINSTALL routine. Is called before the driver is removed from memory. May -; clean up anything done by INSTALL but is probably empty most of the time. -; -; Must set an error code: NO -; - -UNINSTALL: - rts - - -; ------------------------------------------------------------------------ -; INIT: Changes an already installed device from text mode to graphics -; mode. -; Note that INIT/DONE may be called multiple times while the driver -; is loaded, while INSTALL is only called once, so any code that is needed -; to initializes variables and so on must go here. Setting palette and -; clearing the screen is not needed because this is called by the graphics -; kernel later. -; The graphics kernel will never call INIT when a graphics mode is already -; active, so there is no need to protect against that. -; -; Must set an error code: YES -; - -INIT: - ldx #$01 - stx BITMASK ; solid black as pattern - lda #1 - jsr SetPattern - lda #ST_WR_FORE ; write only on foreground - sta dispBufferOn - - lda graphMode - bmi @L80 - -; Remember current color value (40 columns) - lda screencolors - sta OLDCOLOR - jmp @L99 - -; Remember current color value (80 columns) -@L80: lda scr80colors - sta OLDCOLOR -@L99: lda #0 - jsr SETVIEWPAGE ; switch into viewpage 0 - -; Done, reset the error code - - lda #TGI_ERR_OK - sta ERROR - rts - -; ------------------------------------------------------------------------ -; DONE: Will be called to switch the graphics device back into text mode. -; The graphics kernel will never call DONE when no graphics mode is active, -; so there is no need to protect against that. -; -; Must set an error code: NO -; - -DONE: - lda #0 - jsr SETVIEWPAGE ; switch into viewpage 0 - - lda graphMode - bmi @L80 - - lda OLDCOLOR - sta screencolors ; restore color for 40 columns - ldx #0 -@L1: sta COLOR_MATRIX,x - sta COLOR_MATRIX+$0100,x - sta COLOR_MATRIX+$0200,x - sta COLOR_MATRIX+1000-256,x - inx - bne @L1 - rts - -@L80: lda OLDCOLOR ; restore color for 80 columns - ldx #VDC_COLORS - jmp VDCWriteReg - -; ------------------------------------------------------------------------ -; GETERROR: Return the error code in A and clear it. - -GETERROR: - ldx #TGI_ERR_OK - lda ERROR - stx ERROR - rts - -; ------------------------------------------------------------------------ -; CONTROL: Platform/driver specific entry point. -; -; Must set an error code: YES -; - -CONTROL: - lda #TGI_ERR_INV_FUNC - sta ERROR - rts - -; ------------------------------------------------------------------------ -; CLEAR: Clears the screen. -; -; Must set an error code: NO -; - -CLEAR: - lda curPattern - pha - lda #0 - jsr SetPattern - ldx #0 - stx r3L - stx r3H - stx r2L - lda #199 - sta r2H - lda graphMode - bpl @L40 - lda #>639 ; 80 columns - ldx #<639 - bne @L99 -@L40: lda #>319 ; 40 columns - ldx #<319 -@L99: sta r4H - stx r4L - jsr Rectangle - pla - sta curPattern - rts - -; ------------------------------------------------------------------------ -; SETVIEWPAGE: Set the visible page. Called with the new page in A (0..n). -; The page number is already checked to be valid by the graphics kernel. -; -; Must set an error code: NO (will only be called if page ok) -; - -SETVIEWPAGE: - ldx graphMode - bmi @L80 - rts -@L80: clc - ror - ror - ror - ldx #VDC_DSP_HI - jmp VDCWriteReg - -; ------------------------------------------------------------------------ -; SETDRAWPAGE: Set the drawable page. Called with the new page in A (0..n). -; The page number is already checked to be valid by the graphics kernel. -; -; Must set an error code: NO (will only be called if page ok) -; - -SETDRAWPAGE: - ldx graphMode - bmi @L80 - rts -@L80: clc - ror - ror - ror - sta SCRBASE - rts - -; ------------------------------------------------------------------------ -; SETCOLOR: Set the drawing color (in A). The new color is already checked -; to be in a valid range (0..maxcolor-1). -; -; Must set an error code: NO (will only be called if color ok) -; - -SETCOLOR: - tax - beq @L1 - lda #1 -@L1: sta BITMASK - jmp SetPattern ; need to have either 0 or 1 - -; ------------------------------------------------------------------------ -; SETPALETTE: Set the palette (not available with all drivers/hardware). -; A pointer to the palette is passed in ptr1. Must set an error if palettes -; are not supported -; -; Must set an error code: YES -; - -SETPALETTE: - jsr GETERROR ; clear error (if any) - - ldy #PALETTESIZE - 1 -@L1: lda (ptr1),y ; Copy the palette - and #$0F ; Make a valid color - sta PALETTE,y - dey - bpl @L1 - -; Put colors from palette into screen - - lda graphMode - bmi @L80 - - lda PALETTE+1 ; foreground - asl a - asl a - asl a - asl a - ora PALETTE ; background - ldx #0 -@L2: sta COLOR_MATRIX,x - sta COLOR_MATRIX+$0100,x - sta COLOR_MATRIX+$0200,x - sta COLOR_MATRIX+1000-256,x - inx - bne @L2 - rts - -@L80: ldy PALETTE+1 ; Foreground color - lda COLTRANS,y - asl a - asl a - asl a - asl a - ldy PALETTE ; Background color - ora COLTRANS,y - - ldx #VDC_COLORS - jmp VDCWriteReg - -; ------------------------------------------------------------------------ -; GETPALETTE: Return the current palette in A/X. Even drivers that cannot -; set the palette should return the default palette here, so there's no -; way for this function to fail. -; -; Must set an error code: NO -; - -GETPALETTE: - lda #PALETTE - rts - -; ------------------------------------------------------------------------ -; GETDEFPALETTE: Return the default palette for the driver in A/X. All -; drivers should return something reasonable here, even drivers that don't -; support palettes, otherwise the caller has no way to determine the colors -; of the (not changeable) palette. -; -; Must set an error code: NO (all drivers must have a default palette) -; - -GETDEFPALETTE: - lda #DEFPALETTE - rts - -; ------------------------------------------------------------------------ -; SETPIXEL: Draw one pixel at X1/Y1 = ptr1/ptr2 with the current drawing -; color. The coordinates passed to this function are never outside the -; visible screen area, so there is no need for clipping inside this function. -; -; Must set an error code: NO -; - -SETPIXEL: - lda X1 - ldx X1+1 - ldy Y1 - sta r3L - stx r3H - sty r11L - sec - lda BITMASK ; set or clear C flag - bne @L1 - clc -@L1: lda #0 - jmp DrawPoint - -; ------------------------------------------------------------------------ -; GETPIXEL: Read the color value of a pixel and return it in A/X. The -; coordinates passed to this function are never outside the visible screen -; area, so there is no need for clipping inside this function. - - -GETPIXEL: - lda X1 - ldx X1+1 - ldy Y1 - sta r3L - stx r3H - sty r11L - jsr TestPoint - ldx #0 - bcc @L1 - inx -@L1: txa - ldx #0 - rts - -; ------------------------------------------------------------------------ -; LINE: Draw a line from X1/Y1 to X2/Y2, where X1/Y1 = ptr1/ptr2 and -; X2/Y2 = ptr3/ptr4 using the current drawing color. -; -; Must set an error code: NO -; - -LINE: - lda X1 - ldx X1+1 - ldy Y1 - sta r3L - stx r3H - sty r11L - lda X2 - ldx X2+1 - ldy Y2 - sta r4L - stx r4H - sty r11H - sec - lda BITMASK ; set or clear C flag - bne @L1 - clc -@L1: lda #0 - jmp DrawLine - -; ------------------------------------------------------------------------ -; BAR: Draw a filled rectangle with the corners X1/Y1, X2/Y2, where -; X1/Y1 = ptr1/ptr2 and X2/Y2 = ptr3/ptr4 using the current drawing color. -; Contrary to most other functions, the graphics kernel will sort and clip -; the coordinates before calling the driver, so on entry the following -; conditions are valid: -; X1 <= X2 -; Y1 <= Y2 -; (X1 >= 0) && (X1 < XRES) -; (X2 >= 0) && (X2 < XRES) -; (Y1 >= 0) && (Y1 < YRES) -; (Y2 >= 0) && (Y2 < YRES) -; -; Must set an error code: NO -; - -BAR: - lda X1 - ldx X1+1 - ldy Y1 - sta r3L - stx r3H - sty r2L - lda X2 - ldx X2+1 - ldy Y2 - sta r4L - stx r4H - sty r2H - jmp Rectangle - -; ------------------------------------------------------------------------ -; TEXTSTYLE: Set the style used when calling OUTTEXT. Text scaling in X and Y -; direction is passend in X/Y, the text direction is passed in A. -; -; Must set an error code: NO -; - -TEXTSTYLE: - stx TEXTMAGX - sty TEXTMAGY - sta TEXTDIR - rts - - -; ------------------------------------------------------------------------ -; OUTTEXT: Output text at X/Y = ptr1/ptr2 using the current color and the -; current text style. The text to output is given as a zero terminated -; string with address in ptr3. -; -; Must set an error code: NO -; - -OUTTEXT: - lda TEXTDIR -; cmp #TGI_TEXT_HORIZONTAL ; this is equal 0 - bne @vertical - - lda X1 ; horizontal text output - ldx X1+1 - ldy Y1 - sta r11L - stx r11H - sty r1H - lda ptr3 - ldx ptr3+1 - sta r0L - stx r0H - jmp PutString - -@vertical: - lda X1 ; vertical text output - ldx X1+1 - ldy Y1 - sta r11L - stx r11H - sty r1H - ldy #0 - lda (ptr3),y - beq @end - jsr PutChar - inc ptr3 - bne @L1 - inc ptr3+1 -@L1: lda Y1 - clc - adc #8 - sta Y1 - bne @vertical -@end: rts - -;------------- -; VDC helpers - -VDCSetSourceAddr: - pha - tya - ldx #VDC_DATA_HI - jsr VDCWriteReg - pla - ldx #VDC_DATA_LO - bne VDCWriteReg - -VDCReadByte: - ldx #VDC_DATA -VDCReadReg: - stx VDC_ADDR_REG -@L0: bit VDC_ADDR_REG - bpl @L0 - lda VDC_DATA_REG - rts - -VDCWriteByte: - ldx #VDC_DATA -VDCWriteReg: - stx VDC_ADDR_REG -@L0: bit VDC_ADDR_REG - bpl @L0 - sta VDC_DATA_REG - rts - diff --git a/libsrc/geos/devel/geos-vdc.s b/libsrc/geos/devel/geos-vdc.s deleted file mode 100644 index dda119b09..000000000 --- a/libsrc/geos/devel/geos-vdc.s +++ /dev/null @@ -1,426 +0,0 @@ -; -; Extended memory driver for the VDC RAM available on all C128 machines -; version for GEOS enters safe I/O config on C64 (transparent on C128) -; -; Maciej 'YTM/Elysium' Witkowiak -; 06,20,25.12.2002 - - .include "zeropage.inc" - - .include "em-kernel.inc" - .include "em-error.inc" - - - .macpack generic - - -; ------------------------------------------------------------------------ -; Header. Includes jump table - -.segment "JUMPTABLE" - -; Driver signature - - .byte $65, $6d, $64 ; "emd" - .byte EMD_API_VERSION ; EM API version number - -; Jump table. - - .word INSTALL - .word UNINSTALL - .word PAGECOUNT - .word MAP - .word USE - .word COMMIT - .word COPYFROM - .word COPYTO - -; ------------------------------------------------------------------------ -; Constants - -VDC_ADDR_REG = $D600 ; VDC address -VDC_DATA_REG = $D601 ; VDC data - -VDC_DATA_HI = 18 ; used registers -VDC_DATA_LO = 19 -VDC_CSET = 28 -VDC_DATA = 31 - -; ------------------------------------------------------------------------ -; Data. - -.data - -pagecount: .word 64 ; $0000-$3fff as 16k default -curpage: .word $ffff ; currently mapped-in page (invalid) - -.bss - -window: .res 256 ; memory window - -.code - -; ------------------------------------------------------------------------ -; INSTALL routine. Is called after the driver is loaded into memory. If -; possible, check if the hardware is present and determine the amount of -; memory available. -; Must return an EM_ERR_xx code in a/x. -; - -INSTALL: - ; do test for VDC presence here??? - - php - sei - lda $01 - pha - lda #$35 - sta $01 - - ldx #VDC_CSET ; determine size of RAM... - jsr vdcgetreg - sta tmp1 - ora #%00010000 - jsr vdcputreg ; turn on 64k - - jsr settestadr1 ; save original value of test byte - jsr vdcgetbyte - sta tmp2 - - lda #$55 ; write $55 here - ldy #ptr1 - jsr test64k ; read it here and there - lda #$aa ; write $aa here - ldy #ptr2 - jsr test64k ; read it here and there - - jsr settestadr1 - lda tmp2 - jsr vdcputbyte ; restore original value of test byte - - lda ptr1 ; do bytes match? - cmp ptr1+1 - bne @have64k - lda ptr2 - cmp ptr2+1 - bne @have64k - - ldx #VDC_CSET - lda tmp1 - jsr vdcputreg ; restore 16/64k flag - jmp @endok ; and leave default values for 16k - -@have64k: - lda #<256 - ldx #>256 - sta pagecount - stx pagecount+1 -@endok: - pla - sta $01 - plp - lda #EM_ERR_OK - rts - -test64k: - sta tmp1 - sty ptr3 - lda #0 - sta ptr3+1 - jsr settestadr1 - lda tmp1 - jsr vdcputbyte ; write $55 - jsr settestadr1 - jsr vdcgetbyte ; read here - pha - jsr settestadr2 - jsr vdcgetbyte ; and there - ldy #1 - sta (ptr3),y - pla - dey - sta (ptr3),y - rts - -settestadr1: - ldy #$02 ; test page 2 (here) - .byte $2c -settestadr2: - ldy #$42 ; or page 64+2 (there) - lda #0 - jmp vdcsetsrcaddr - -; ------------------------------------------------------------------------ -; UNINSTALL routine. Is called before the driver is removed from memory. -; Can do cleanup or whatever. Must not return anything. -; - -UNINSTALL: - ;on C128 restore font and clear the screen? - rts - -; ------------------------------------------------------------------------ -; PAGECOUNT: Return the total number of available pages in a/x. -; - -PAGECOUNT: - lda pagecount - ldx pagecount+1 - rts - -; ------------------------------------------------------------------------ -; MAP: Map the page in a/x into memory and return a pointer to the page in -; a/x. The contents of the currently mapped page (if any) may be discarded -; by the driver. -; - -MAP: sta curpage - stx curpage+1 - sta ptr1+1 - ldy #0 - sty ptr1 - - lda #window - sta ptr2+1 - - jsr transferin - - lda #window - rts - -; copy a single page from (ptr1):VDCRAM to (ptr2):RAM - -transferin: - php - sei - lda $01 - pha - lda #$35 - sta $01 - lda ptr1 - ldy ptr1+1 - jsr vdcsetsrcaddr ; set source address in VDC - ldy #0 - ldx #VDC_DATA - stx VDC_ADDR_REG -@L0: bit VDC_ADDR_REG - bpl @L0 - lda VDC_DATA_REG ; get 2 bytes at a time to speed-up - sta (ptr2),y ; (in fact up to 8 bytes could be fetched with special VDC config) - iny - lda VDC_DATA_REG - sta (ptr2),y - iny - bne @L0 - pla - sta $01 - plp - rts - -; ------------------------------------------------------------------------ -; USE: Tell the driver that the window is now associated with a given page. - -USE: sta curpage - stx curpage+1 ; Remember the page - lda #window ; Return the window -done: rts - -; ------------------------------------------------------------------------ -; COMMIT: Commit changes in the memory window to extended storage. - -COMMIT: - lda curpage ; jump if no page mapped - ldx curpage+1 - bmi done - sta ptr1+1 - ldy #0 - sty ptr1 - - lda #window - sta ptr2+1 - -; fall through to transferout - -; copy a single page from (ptr2):RAM to (ptr1):VDCRAM - -transferout: - php - sei - lda $01 - pha - lda #$35 - sta $01 - lda ptr1 - ldy ptr1+1 - jsr vdcsetsrcaddr ; set source address in VDC - ldy #0 - ldx #VDC_DATA - stx VDC_ADDR_REG -@L0: bit VDC_ADDR_REG - bpl @L0 - lda (ptr2),y ; speedup does not work for writing - sta VDC_DATA_REG - iny - bne @L0 - pla - sta $01 - plp - rts - -; ------------------------------------------------------------------------ -; COPYFROM: Copy from extended into linear memory. A pointer to a structure -; describing the request is passed in a/x. -; The function must not return anything. -; - -COPYFROM: - jsr setup - beq @L2 ; Skip if no full pages - -; Copy full pages - -@L1: jsr transferin - inc ptr1+1 - inc ptr2+1 - dec tmp1 - bne @L1 - -; Copy the remainder of the page - -@L2: ldy #EM_COPY::COUNT - lda (ptr3),y ; Get bytes in last page - beq @L4 - sta tmp1 - -; Transfer the bytes in the last page - php - sei - lda $01 - pha - lda #$35 - sta $01 - ldy #0 -@L3: jsr vdcgetbyte - sta (ptr2),y - iny - dec tmp1 - lda tmp1 - bne @L3 - pla - sta $01 - plp -@L4: rts - -; ------------------------------------------------------------------------ -; COPYTO: Copy from linear into extended memory. A pointer to a structure -; describing the request is passed in a/x. -; The function must not return anything. -; - -COPYTO: - jsr setup - beq @L2 ; Skip if no full pages - -; Copy full pages - -@L1: jsr transferout - inc ptr1+1 - inc ptr2+1 - dec tmp1 - bne @L1 - -; Copy the remainder of the page - -@L2: ldy #EM_COPY::COUNT - lda (ptr3),y ; Get bytes in last page - beq @L4 - sta tmp1 - -; Transfer the bytes in the last page - php - sei - lda $01 - pha - lda #$35 - sta $01 - ldy #0 -@L3: lda (ptr2),y - jsr vdcputbyte - iny - dec tmp1 - lda tmp1 - bne @L3 - pla - sta $01 - plp -@L4: rts - -;------------------------------------------------------------------------- -; Helper functions to handle VDC ram -; - -vdcsetsrcaddr: - ldx #VDC_DATA_LO - stx VDC_ADDR_REG -@L0: bit VDC_ADDR_REG - bpl @L0 - sta VDC_DATA_REG - dex - tya - stx VDC_ADDR_REG - sta VDC_DATA_REG - rts - -vdcgetbyte: - ldx #VDC_DATA -vdcgetreg: - stx VDC_ADDR_REG -@L0: bit VDC_ADDR_REG - bpl @L0 - lda VDC_DATA_REG - rts - -vdcputbyte: - ldx #VDC_DATA -vdcputreg: - stx VDC_ADDR_REG -@L0: bit VDC_ADDR_REG - bpl @L0 - sta VDC_DATA_REG - rts - -; ------------------------------------------------------------------------ -; Helper function for COPYFROM and COPYTO: Store the pointer to the request -; structure and prepare data for the copy -; - -setup: - sta ptr3 - stx ptr3+1 ; Save the passed em_copy pointer - - ldy #EM_COPY::OFFS - lda (ptr3),y - sta ptr1 - ldy #EM_COPY::PAGE - lda (ptr3),y - sta ptr1+1 ; From - - ldy #EM_COPY::BUF - lda (ptr3),y - sta ptr2 - iny - lda (ptr3),y - sta ptr2+1 ; To - - ldy #EM_COPY::COUNT+1 - lda (ptr3),y ; Get number of pages - sta tmp1 - rts - diff --git a/libsrc/geos/devel/joy_stddrv.s b/libsrc/geos/devel/joy_stddrv.s deleted file mode 100644 index dd01dc2db..000000000 --- a/libsrc/geos/devel/joy_stddrv.s +++ /dev/null @@ -1,14 +0,0 @@ -; -; Name of the standard joystick driver -; -; Ullrich von Bassewitz, 2002-12-21 -; -; const char joy_stddrv[]; -; - - .export _joy_stddrv - -.rodata - -_joy_stddrv: .asciiz "geos-stdjoy.joy" - diff --git a/libsrc/geos/devel/mainargs.s b/libsrc/geos/devel/mainargs.s deleted file mode 100644 index d5ffbf3e5..000000000 --- a/libsrc/geos/devel/mainargs.s +++ /dev/null @@ -1,79 +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 "../inc/const.inc" - .include "../inc/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 - cmp #$a0 - 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/devel/mcbdefault.s b/libsrc/geos/devel/mcbdefault.s deleted file mode 100644 index 665cc426e..000000000 --- a/libsrc/geos/devel/mcbdefault.s +++ /dev/null @@ -1,68 +0,0 @@ -; -; Mouse callbacks for GEOS. -; -; GEOS has a built-in mouse architecture. Half of this file does nothing -; -- it exists merely to allow portable programs to link and run. -; -; 2.7.2001, Maciej 'YTM/Elysium' Witkowiak -; 2004-03-20, Ullrich von Bassewitz -; 2004-09-24, Greg King -; - -; .constructor init_pointer - .export _mouse_def_callbacks - -; .include "mouse-kernel.inc" -; .include "../inc/const.inc" -; .include "../inc/geossym.inc" - .include "../inc/jumptab.inc" - -; .macpack generic - -; The functions below must be interrupt-safe, -; because they might be called from an interrupt-handler. - -.code - -; -------------------------------------------------------------------------- -; Hide the mouse pointer. Always called with interrupts disabled. - -hide := MouseOff - -; -------------------------------------------------------------------------- -; Show the mouse pointer. Always called with interrupts disabled. - -show := MouseUp - -; -------------------------------------------------------------------------- -; Move the mouse pointer X position to the value in .XA. Always called with -; interrupts disabled. - -.proc movex - - rts - -.endproc - -; -------------------------------------------------------------------------- -; Move the mouse pointer Y position to the value in .XA. Always called with -; interrupts disabled. - -.proc movey - - rts - -.endproc - -; -------------------------------------------------------------------------- -; Callback structure - -.rodata - -_mouse_def_callbacks: - .addr hide - .addr show - .addr movex - .addr movey - - diff --git a/libsrc/geos/devel/mouse_stddrv.s b/libsrc/geos/devel/mouse_stddrv.s deleted file mode 100644 index 8792c27f0..000000000 --- a/libsrc/geos/devel/mouse_stddrv.s +++ /dev/null @@ -1,11 +0,0 @@ -; -; Name of the standard mouse driver -; -; 2010-01-25, Greg King -; -; const char mouse_stddrv[]; -; - .export _mouse_stddrv - - .rodata -_mouse_stddrv: .asciiz "geos-stdmou.mou" diff --git a/libsrc/geos/devel/oserrlist.s b/libsrc/geos/devel/oserrlist.s deleted file mode 100644 index 90c54fbe7..000000000 --- a/libsrc/geos/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 "../inc/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/devel/oserror.s b/libsrc/geos/devel/oserror.s deleted file mode 100644 index 50dd32795..000000000 --- a/libsrc/geos/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 "../inc/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/devel/randomize.s b/libsrc/geos/devel/randomize.s deleted file mode 100644 index c16bc54ef..000000000 --- a/libsrc/geos/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 "../inc/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/devel/tgi_colors.s b/libsrc/geos/devel/tgi_colors.s deleted file mode 100644 index d965e6ff3..000000000 --- a/libsrc/geos/devel/tgi_colors.s +++ /dev/null @@ -1,8 +0,0 @@ -; -; Target-specific black & white values, for use by the target-shared TGI kernel -; - - .include "tgi-kernel.inc" - -tgi_color_black = $00 -tgi_color_white = $01 diff --git a/libsrc/geos/devel/tgi_stddrv.s b/libsrc/geos/devel/tgi_stddrv.s deleted file mode 100644 index 6745c2301..000000000 --- a/libsrc/geos/devel/tgi_stddrv.s +++ /dev/null @@ -1,13 +0,0 @@ -; -; Name of the standard tgi driver -; -; Oliver Schmidt, 2011-05-02 -; -; const char tgi_stddrv[]; -; - - .export _tgi_stddrv - -.rodata - -_tgi_stddrv: .asciiz "geos-tgi.tgi" diff --git a/libsrc/geos/disk/Makefile b/libsrc/geos/disk/Makefile deleted file mode 100644 index dd08aeb6f..000000000 --- a/libsrc/geos/disk/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# -# Makefile for GEOS lib -# for cc65 -# - -%.o: %.s - @$(AS) -o $@ $(AFLAGS) $< - - -S_OBJS = blkalloc.o calcblksfree.o changediskdevice.o chkdkgeos.o enterturbo.o exitturbo.o\ - findbambit.o freeblock.o getblock.o getdirhead.o getptrcurdknm.o newdisk.o\ - nxtblkalloc.o opendisk.o purgeturbo.o putblock.o putdirhead.o readblock.o\ - readbuff.o setnextfree.o setgeosdisk.o writeblock.o writebuff.o verwriteblock.o\ - gettrse.o setoserror.o\ - dio_openclose.o dio_cts.o dio_stc.o dio_read.o dio_write.o dio_writev.o\ - dio_params.o - -all: $(S_OBJS) - -clean: - @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos/disk/blkalloc.s b/libsrc/geos/disk/blkalloc.s deleted file mode 100644 index 7048400a0..000000000 --- a/libsrc/geos/disk/blkalloc.s +++ /dev/null @@ -1,22 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char BlkAlloc (struct tr_se output[], int length); - - .import popax, setoserror - .export _BlkAlloc - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_BlkAlloc: - sta r2L - stx r2H - jsr popax - sta r4L - stx r4H - jsr BlkAlloc - jmp setoserror diff --git a/libsrc/geos/disk/calcblksfree.s b/libsrc/geos/disk/calcblksfree.s deleted file mode 100644 index 2471138e5..000000000 --- a/libsrc/geos/disk/calcblksfree.s +++ /dev/null @@ -1,20 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; int CalcBlksFree (void); - - .import __oserror - .export _CalcBlksFree - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_CalcBlksFree: - jsr CalcBlksFree - stx __oserror - lda r4L - ldx r4H - rts diff --git a/libsrc/geos/disk/changediskdevice.s b/libsrc/geos/disk/changediskdevice.s deleted file mode 100644 index 6d5aab070..000000000 --- a/libsrc/geos/disk/changediskdevice.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char ChangeDiskDevice (char newDriveNumber); - - .import setoserror - .export _ChangeDiskDevice - - .include "../inc/jumptab.inc" - -_ChangeDiskDevice: - jsr ChangeDiskDevice - jmp setoserror diff --git a/libsrc/geos/disk/chkdkgeos.s b/libsrc/geos/disk/chkdkgeos.s deleted file mode 100644 index 52b7165d4..000000000 --- a/libsrc/geos/disk/chkdkgeos.s +++ /dev/null @@ -1,19 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char ChkDkGEOS (void); - - .import setoserror - .export _ChkDkGEOS - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_ChkDkGEOS: - jsr ChkDkGEOS - jsr setoserror - lda isGEOS - rts diff --git a/libsrc/geos/disk/dio_cts.s b/libsrc/geos/disk/dio_cts.s deleted file mode 100644 index c7871045d..000000000 --- a/libsrc/geos/disk/dio_cts.s +++ /dev/null @@ -1,191 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; 2.7.2001 -; -; -; unsigned char __fastcall__ dio_phys_to_log(dhandle_t handle, -; dio_phys_pos *physpos, /* input */ -; sectnum_t *sectnum); /* output */ -; -; dhandle_t - 16bit (ptr) -; sectnum_t - 16bit -; - - .export _dio_phys_to_log - .export sectab_1541_l, sectab_1541_h ; for log_to_phys - .import popax,__oserror - .importzp ptr1,ptr2,ptr3,tmp1,tmp2,tmp3,tmp4 - .include "../inc/dio.inc" - .include "../inc/geossym.inc" - .include "../inc/const.inc" - -.proc _dio_phys_to_log - sta ptr1 - stx ptr1+1 ; pointer to result - - jsr popax - sta ptr2 - stx ptr2+1 ; pointer to input structure - - jsr popax - sta ptr3 - stx ptr3+1 ; pointer to handle - - ldy #sst_flag - lda (ptr3),y - and #128 - beq _inv_hand ; handle not open or invalid - - - ldy #diopp_head - lda (ptr2),y - bne _inv_data ; there is only head 0 - ldy #diopp_track - lda (ptr2),y - beq _inv_data ; there is no track 0 - sta tmp1 - iny - lda (ptr2),y - bne _inv_data ; there are no more than 256 tracks - dec tmp1 ; normalize track to start from 0 - ldy #diopp_sector - lda (ptr2),y - sta tmp2 - iny - lda (ptr2),y - bne _inv_data ; there are no more than 256 sectors - -; tmp1 (int) holds track+sector, translate it using device info - - ldy #sst_driveno - lda (ptr3),y - tay - lda driveType,y - and #%00000011 ; this is for RamDrive compatibility - cmp #DRV_1541 - beq dio_cts1541 - cmp #DRV_1571 - beq dio_cts1571 - cmp #DRV_1581 - beq dio_cts1581 - - lda #DEV_NOT_FOUND ; unknown device - ldx #0 - beq ret - -dio_ctsend: - ldy #1 - lda tmp2 - sta (ptr1),y - dey - lda tmp1 - sta (ptr1),y - - ldx #0 - txa -ret: - sta __oserror - rts ; return success - -; errors - -_inv_data: - lda #INV_TRACK - .byte $2c -_inv_hand: - lda #INCOMPATIBLE - ldx #0 - beq ret - -; device-depended stuff, tmp1=track-1, tmp2=sector - -dio_cts1541: - ldy tmp1 - cpy #35 - bcs _inv_data - lda sectab_1541_l,y - clc - adc tmp2 - sta tmp1 - lda sectab_1541_h,y - adc #0 - sta tmp2 - jmp dio_ctsend - -dio_cts1571: - lda tmp1 - cmp #70 - bcs _inv_data - cmp #35 ; last track of one side - bcs _sub35 - jmp dio_cts1541 ; track <=35 - same as 1541 - -_sub35: - sec - sbc #35 - sta tmp1 - jsr dio_cts1541 ; get offset on second side of disk - lda tmp1 ; add second side base - clc - adc #<683 - sta tmp1 - lda tmp2 - adc #>683 - sta tmp2 - jmp dio_ctsend - -dio_cts1581: -; 1581 has 80 tracks, 40 sectors each secnum=track*40+sector - ldx #0 - stx tmp3 - stx tmp4 - lda tmp1 - beq _nomult - cmp #80 - bcs _inv_data - -; mul40 by Christian Groessler - sta tmp4 - asl a - rol tmp3 - asl a - rol tmp3 ; val * 4 - adc tmp4 - bcc L1 - inc tmp3 ; val * 5 -L1: asl a - rol tmp3 ; val * 10 - asl a - rol tmp3 - asl a - rol tmp3 ; val * 40 = AX - ldx tmp3 - sta tmp3 - stx tmp4 - -_nomult: - lda tmp2 - clc - adc tmp3 - sta tmp1 - lda tmp4 - adc #0 - sta tmp2 - jmp dio_ctsend - -.endproc - -.rodata - -sectab_1541_l: - .byte $00, $15, $2a, $3f, $54, $69, $7e, $93 - .byte $a8, $bd, $d2, $e7, $fc, $11, $26, $3b - .byte $50, $65, $78, $8b, $9e, $b1, $c4, $d7 - .byte $ea, $fc, $0e, $20, $32, $44, $56, $67 - .byte $78, $89, $9a, $ab -sectab_1541_h: - .byte $00, $00, $00, $00, $00, $00, $00, $00 - .byte $00, $00, $00, $00, $00, $01, $01, $01 - .byte $01, $01, $01, $01, $01, $01, $01, $01 - .byte $01, $01, $02, $02, $02, $02, $02, $02 - .byte $02, $02, $02, $02 diff --git a/libsrc/geos/disk/dio_openclose.s b/libsrc/geos/disk/dio_openclose.s deleted file mode 100644 index 3b798817b..000000000 --- a/libsrc/geos/disk/dio_openclose.s +++ /dev/null @@ -1,85 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; -; based on Atari version by Christian Groessler -; 2.7.2001 -; -; dhandle_t __fastcall__ dio_open (driveid_t drive_id); -; unsigned char __fastcall__ dio_close (dhandle_t handle); -; -; dio_open sets given device as current and initializes disk -; dio_close does nothing special - - .export _dio_open, _dio_close - .import __oserror, _OpenDisk - .importzp ptr1, tmp1 - .include "../inc/dio.inc" - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - .include "../inc/const.inc" - -.bss - -sectsizetab: - .res 4 * sst_size ; this is hardcoded - -.code - -.proc _dio_open - pha - tax - lda driveType,x ; check if there's a device - beq _inv_drive - txa - clc - adc #8 ; normalize devnum - sta curDevice - jsr SetDevice - jsr _OpenDisk ; take care for errors there - - pla - tay ; drive # - asl a ; make index from drive id - asl a - tax - - lda #0 - sta sectsizetab+sst_sectsize,x - lda #128 - sta sectsizetab+sst_flag,x ; set flag that drive is "open" - lda #1 - sta sectsizetab+sst_sectsize+1,x - tya - sta sectsizetab+sst_driveno,x - - stx tmp1 - lda #sectsizetab - adc #0 - tax - lda tmp1 - - rts - -_inv_drive: - lda #DEV_NOT_FOUND - sta __oserror - lda #0 - tax - rts - -.endproc - -.proc _dio_close - sta ptr1 - stx ptr1+1 - lda #0 - ldy #sst_flag - sta (ptr1),y - sta __oserror ; success - tax - rts ; return no error -.endproc diff --git a/libsrc/geos/disk/dio_params.s b/libsrc/geos/disk/dio_params.s deleted file mode 100644 index ef88a59b4..000000000 --- a/libsrc/geos/disk/dio_params.s +++ /dev/null @@ -1,51 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; 2.7.2001 -; -; this function is used by dio_read and dio_write to fix parameters (secnum) -; this function calls SetDevice so that more than one drive can be used at once - - .import popax,pushax,_dio_log_to_phys - .importzp ptr1 - .export dio_params,dio_secnum - .include "../inc/geossym.inc" - .include "../inc/jumptab.inc" - .include "../inc/dio.inc" - -.bss -dio_secnum: .res 2 - -.code -.proc dio_params - - sta r4L - stx r4H - - jsr popax - sta dio_secnum - stx dio_secnum - - jsr popax ; get 3rd parameter - pha ; save it - txa - pha - jsr pushax ; put it back - pla ; restore it - sta ptr1+1 - pla - sta ptr1 - ldy #sst_driveno - lda (ptr1),y - clc - adc #8 - jsr SetDevice ; setup device, load driver - - lda #dio_secnum - jsr pushax - - lda #r1H - jmp _dio_log_to_phys - -.endproc diff --git a/libsrc/geos/disk/dio_read.s b/libsrc/geos/disk/dio_read.s deleted file mode 100644 index 896cc27a5..000000000 --- a/libsrc/geos/disk/dio_read.s +++ /dev/null @@ -1,25 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; 2.7.2001 -; -; this file provides the _dio_read function -; -; unsigned char __fastcall__ dio_read(dhandle_t handle,sectnum_t sect_num,void *buffer); -; dhandle_t - 16bit (ptr) -; sectnum_t - 16bit -; - - .import dio_params, __oserror - .export _dio_read - .include "../inc/geossym.inc" - .include "../inc/jumptab.inc" - -.proc _dio_read - - jsr dio_params - jsr ReadBlock - stx __oserror - txa - rts - -.endproc diff --git a/libsrc/geos/disk/dio_stc.s b/libsrc/geos/disk/dio_stc.s deleted file mode 100644 index c64bb0802..000000000 --- a/libsrc/geos/disk/dio_stc.s +++ /dev/null @@ -1,182 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; 2.7.2001 -; -; unsigned char __fastcall__ dio_log_to_phys(dhandle_t handle, -; sectnum_t *sectnum, /* input */ -; dio_phys_pos *physpos); /* output */ -; -; dhandle_t - 16bit (ptr) -; sectnum_t - 16bit -; - - .export _dio_log_to_phys - .importzp ptr1,ptr2,ptr3,tmp1,tmp2 - .import popax,__oserror - .import sectab_1541_l, sectab_1541_h - .include "../inc/dio.inc" - .include "../inc/geossym.inc" - .include "../inc/const.inc" - -.proc _dio_log_to_phys - -; check device type - sta ptr1 - stx ptr1+1 ; pointer to result (struct dio_phys_pos) - - jsr popax - sta ptr2 - stx ptr2+1 ; pointer to input structure (pointer to int) - - jsr popax - sta ptr3 - stx ptr3+1 ; pointer to handle - - ldy #sst_flag - lda (ptr3),y - and #128 - beq _inv_hand ; handle not open or invalid - -; fill in all we have - ldy #diopp_head - lda #0 ; head 0 - sta (ptr1),y - ldy #diopp_track+1 - sta (ptr1),y ; track <256 - ldy #diopp_sector+1 - sta (ptr1),y ; sector <256 - - ldy #0 - lda (ptr2),y - sta tmp1 - iny - lda (ptr2),y - sta tmp2 - -; get drive info - ldy #sst_driveno - lda (ptr3),y - tay - lda driveType,y - and #%00000011 ; this is for RamDrive compatibility - cmp #DRV_1541 - beq dio_stc1541 - cmp #DRV_1571 - beq dio_stc1571 - cmp #DRV_1581 - beq dio_stc1581 - - lda #DEV_NOT_FOUND ; unknown device - ldx #0 - beq _ret - -dio_stcend: - ldy #diopp_track - lda tmp1 - sta (ptr1),y - ldy #diopp_sector - lda tmp2 - sta (ptr1),y - - ldx #0 - txa -_ret: - sta __oserror - rts ; return success - -; errors -_inv_data: - lda #INV_TRACK - .byte $2c -_inv_hand: - lda #INCOMPATIBLE - ldx #0 - beq _ret - -dio_stc1541: -; if 1541: -; - compare with table to find track -; - subtract and find sector - - ldx #0 ; index=(track-1) -_loop41: - lda tmp2 - cmp sectab_1541_h+1,x - bne _nxt - lda tmp1 - cmp sectab_1541_l+1,x - bcc _found -_nxt: inx - cpx #35 - bne _loop41 - beq _inv_data - -_found: - lda tmp1 - sec - sbc sectab_1541_l,x - sta tmp2 -_fndend: - inx - stx tmp1 - jmp dio_stcend - -dio_stc1571: -; if 1571: -; - check size, if too big - subtract and add 35 to track -; - fall down to 1541 - lda tmp2 - cmp #>683 - bne _cnt71 - lda tmp1 - cmp #<683 - bcc dio_stc1541 - -_cnt71: - lda tmp1 - sec - sbc #<683 - sta tmp1 - lda tmp2 - sbc #>683 - sta tmp2 - jsr dio_stc1541 ; will fall through here - - ldy #diopp_track - lda (ptr1),y - clc - adc #35 - sta (ptr1),y - lda #0 - beq _ret - -; if 1581: -; - subtract 40 in loop (at most 80 times) to find track -; - the remainder is sector -dio_stc1581: - ldx #0 ; index=(track-1) -_loop81: - lda tmp2 - bne _sub81 - lda tmp1 - cmp #40 - bcc _got81 -_sub81: lda tmp1 - sec - sbc #40 - sta tmp1 - lda tmp2 - sbc #0 - sta tmp2 - inx - cpx #81 - bne _loop81 - beq _inv_data - -_got81: lda tmp1 - sta tmp2 - inx - stx tmp1 - jmp dio_stcend - -.endproc diff --git a/libsrc/geos/disk/dio_write.s b/libsrc/geos/disk/dio_write.s deleted file mode 100644 index 9f522c2df..000000000 --- a/libsrc/geos/disk/dio_write.s +++ /dev/null @@ -1,23 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; 2.7.2001 -; -; this file provides the _dio_write function -; -; unsigned char __fastcall__ dio_write(dhandle_t handle,sectnum_t sect_num,const void *buffer); -; dhandle_t - 16bit (ptr) -; sectnum_t - 16bit -; - - .import dio_params, setoserror - .export _dio_write - .include "../inc/geossym.inc" - .include "../inc/jumptab.inc" - -.proc _dio_write - - jsr dio_params - jsr WriteBlock - jmp setoserror - -.endproc diff --git a/libsrc/geos/disk/dio_writev.s b/libsrc/geos/disk/dio_writev.s deleted file mode 100644 index 1f4ca7766..000000000 --- a/libsrc/geos/disk/dio_writev.s +++ /dev/null @@ -1,25 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; 2.7.2001 -; -; this file provides the _dio_write function -; -; unsigned char __fastcall__ dio_write_verify(dhandle_t handle,sectnum_t sect_num,const void *buffer); -; dhandle_t - 16bit (ptr) -; sectnum_t - 16bit -; - - .import dio_params, __oserror - .export _dio_write_verify - .include "../inc/geossym.inc" - .include "../inc/jumptab.inc" - -.proc _dio_write_verify - - jsr dio_params - jsr VerWriteBlock - stx __oserror - txa - rts - -.endproc diff --git a/libsrc/geos/disk/enterturbo.s b/libsrc/geos/disk/enterturbo.s deleted file mode 100644 index 1236fa239..000000000 --- a/libsrc/geos/disk/enterturbo.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void EnterTurbo (void); - - .export _EnterTurbo - - .include "../inc/jumptab.inc" - -_EnterTurbo = EnterTurbo diff --git a/libsrc/geos/disk/exitturbo.s b/libsrc/geos/disk/exitturbo.s deleted file mode 100644 index 521f70f75..000000000 --- a/libsrc/geos/disk/exitturbo.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void ExitTurbo (void); - - .export _ExitTurbo - - .include "../inc/jumptab.inc" - -_ExitTurbo = ExitTurbo diff --git a/libsrc/geos/disk/findbambit.s b/libsrc/geos/disk/findbambit.s deleted file mode 100644 index 22f847be6..000000000 --- a/libsrc/geos/disk/findbambit.s +++ /dev/null @@ -1,24 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char FindBAMBit (struct tr_se *TS); -; (might be called inUSE (if (!inUSE(block)))) - - .import gettrse - .import return0, return1 - .export _FindBAMBit - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_FindBAMBit: - jsr gettrse - sta r6L - stx r6H - jsr FindBAMBit - bne inUse - jmp return0 -inUse: jmp return1 diff --git a/libsrc/geos/disk/freeblock.s b/libsrc/geos/disk/freeblock.s deleted file mode 100644 index 63de4d05b..000000000 --- a/libsrc/geos/disk/freeblock.s +++ /dev/null @@ -1,20 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char FreeBlock (struct tr_se *TS); - - .import gettrse, setoserror - .export _FreeBlock - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_FreeBlock: - jsr gettrse - sta r6L - stx r6H - jsr FreeBlock - jmp setoserror diff --git a/libsrc/geos/disk/getblock.s b/libsrc/geos/disk/getblock.s deleted file mode 100644 index 8d0d22810..000000000 --- a/libsrc/geos/disk/getblock.s +++ /dev/null @@ -1,24 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char GetBlock (struct tr_se *myTS, char *buffer); - - .import popax, setoserror - .import gettrse - .export _GetBlock - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_GetBlock: - sta r4L - stx r4H - jsr popax - jsr gettrse - sta r1L - stx r1H - jsr GetBlock - jmp setoserror diff --git a/libsrc/geos/disk/getdirhead.s b/libsrc/geos/disk/getdirhead.s deleted file mode 100644 index 1794d1889..000000000 --- a/libsrc/geos/disk/getdirhead.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char GetDirHead (void); - - .import setoserror - .export _GetDirHead - - .include "../inc/jumptab.inc" - -_GetDirHead: - jsr GetDirHead - jmp setoserror diff --git a/libsrc/geos/disk/getptrcurdknm.s b/libsrc/geos/disk/getptrcurdknm.s deleted file mode 100644 index dd8fecbd3..000000000 --- a/libsrc/geos/disk/getptrcurdknm.s +++ /dev/null @@ -1,35 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void GetPtrCurDkNm (char *curName); -; (fills curName[17] with current disk's name) - - .importzp ptr4, ptr3 - .import __oserror - .export _GetPtrCurDkNm - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_GetPtrCurDkNm: - sta ptr3 - stx ptr3+1 - ldx #ptr4 - jsr GetPtrCurDkNm - ldy #0 - txa - bne fin -namelp: lda (ptr4),y - cmp #$a0 - beq fin - sta (ptr3),y - iny - cpy #16 - bne namelp -fin: lda #0 - sta (ptr3),y - stx __oserror - rts diff --git a/libsrc/geos/disk/gettrse.s b/libsrc/geos/disk/gettrse.s deleted file mode 100644 index 525df08af..000000000 --- a/libsrc/geos/disk/gettrse.s +++ /dev/null @@ -1,17 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 29.1.00 - - .export gettrse - .importzp ptr4 -gettrse: - sta ptr4 - stx ptr4+1 - ldy #1 - lda (ptr4),y - tax - dey - lda (ptr4),y - rts diff --git a/libsrc/geos/disk/newdisk.s b/libsrc/geos/disk/newdisk.s deleted file mode 100644 index 60862a956..000000000 --- a/libsrc/geos/disk/newdisk.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char NewDisk (void); - - .import setoserror - .export _NewDisk - - .include "../inc/jumptab.inc" - -_NewDisk: - jsr NewDisk - jmp setoserror diff --git a/libsrc/geos/disk/nxtblkalloc.s b/libsrc/geos/disk/nxtblkalloc.s deleted file mode 100644 index 620de7eb9..000000000 --- a/libsrc/geos/disk/nxtblkalloc.s +++ /dev/null @@ -1,28 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char NxtBlkAlloc (struct tr_se *startTS, struct tr_se output[], int length ); - - .import popax, setoserror - .import gettrse - .importzp ptr4 - .export _NxtBlkAlloc - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_NxtBlkAlloc: - sta r2L - stx r2H - jsr popax - sta r4L - stx r4H - jsr popax - jsr gettrse - sta r3L - stx r3H - jsr NxtBlkAlloc - jmp setoserror diff --git a/libsrc/geos/disk/opendisk.s b/libsrc/geos/disk/opendisk.s deleted file mode 100644 index 88040c390..000000000 --- a/libsrc/geos/disk/opendisk.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char OpenDisk (void); - - .import setoserror - .export _OpenDisk - - .include "../inc/jumptab.inc" - -_OpenDisk: - jsr OpenDisk - jmp setoserror diff --git a/libsrc/geos/disk/purgeturbo.s b/libsrc/geos/disk/purgeturbo.s deleted file mode 100644 index d6a286218..000000000 --- a/libsrc/geos/disk/purgeturbo.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void PurgeTurbo (void); - - .export _PurgeTurbo - - .include "../inc/jumptab.inc" - -_PurgeTurbo = PurgeTurbo diff --git a/libsrc/geos/disk/putblock.s b/libsrc/geos/disk/putblock.s deleted file mode 100644 index 122de9303..000000000 --- a/libsrc/geos/disk/putblock.s +++ /dev/null @@ -1,24 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char PutBlock (struct tr_se *myTS, char *buffer); - - .import popax, setoserror - .import gettrse - .export _PutBlock - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_PutBlock: - sta r4L - stx r4H - jsr popax - jsr gettrse - sta r1L - stx r1H - jsr PutBlock - jmp setoserror diff --git a/libsrc/geos/disk/putdirhead.s b/libsrc/geos/disk/putdirhead.s deleted file mode 100644 index 9b94020e6..000000000 --- a/libsrc/geos/disk/putdirhead.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.99, 2.1.2003 - -; char PutDirHead (void); - - .import setoserror - .export _PutDirHead - - .include "../inc/jumptab.inc" - -_PutDirHead: - jsr PutDirHead - jmp setoserror diff --git a/libsrc/geos/disk/readblock.s b/libsrc/geos/disk/readblock.s deleted file mode 100644 index d99a09b0d..000000000 --- a/libsrc/geos/disk/readblock.s +++ /dev/null @@ -1,24 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char ReadBlock (struct tr_se myTS, char *buffer); - - .import popax, setoserror - .import gettrse - .export _ReadBlock - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_ReadBlock: - sta r4L - stx r4H - jsr popax - jsr gettrse - sta r1L - stx r1H - jsr ReadBlock - jmp setoserror diff --git a/libsrc/geos/disk/readbuff.s b/libsrc/geos/disk/readbuff.s deleted file mode 100644 index bbc13018e..000000000 --- a/libsrc/geos/disk/readbuff.s +++ /dev/null @@ -1,21 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 26.10.1999, 2.1.2003 - -; char ReadBuff (struct tr_se); - - .import setoserror - .import gettrse - .export _ReadBuff - - .include "../inc/diskdrv.inc" - .include "../inc/geossym.inc" - -_ReadBuff: - jsr gettrse - sta r1L - stx r1H - jsr ReadBuff - jmp setoserror diff --git a/libsrc/geos/disk/setgeosdisk.s b/libsrc/geos/disk/setgeosdisk.s deleted file mode 100644 index 520cc8d39..000000000 --- a/libsrc/geos/disk/setgeosdisk.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char SetGEOSDisk (void); - - .import setoserror - .export _SetGEOSDisk - - .include "../inc/jumptab.inc" - -_SetGEOSDisk: - jsr SetGEOSDisk - jmp setoserror diff --git a/libsrc/geos/disk/setnextfree.s b/libsrc/geos/disk/setnextfree.s deleted file mode 100644 index fecc8f1e0..000000000 --- a/libsrc/geos/disk/setnextfree.s +++ /dev/null @@ -1,24 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; struct tr_se SetNextFree (struct tr_se *startTS); - - .import __oserror - .import gettrse - .export _SetNextFree - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_SetNextFree: - jsr gettrse - sta r3L - stx r3H - jsr SetNextFree - stx __oserror - lda r3L - ldx r3H - rts diff --git a/libsrc/geos/disk/setoserror.s b/libsrc/geos/disk/setoserror.s deleted file mode 100644 index 382f56551..000000000 --- a/libsrc/geos/disk/setoserror.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 2.1.2003 -; - - .export setoserror - .import __oserror - -setoserror: - stx __oserror - txa - ldx #0 ; X is cleared (high byte for promoting char to int) - tay ; Y register is used just to save flags state - rts diff --git a/libsrc/geos/disk/verwriteblock.s b/libsrc/geos/disk/verwriteblock.s deleted file mode 100644 index 5758fc53c..000000000 --- a/libsrc/geos/disk/verwriteblock.s +++ /dev/null @@ -1,24 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char VerWriteBlock (struct tr_se *myTS, char *buffer); - - .import popax, setoserror - .import gettrse - .export _VerWriteBlock - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_VerWriteBlock: - sta r4L - stx r4H - jsr popax - jsr gettrse - sta r1L - stx r1H - jsr VerWriteBlock - jmp setoserror diff --git a/libsrc/geos/disk/writeblock.s b/libsrc/geos/disk/writeblock.s deleted file mode 100644 index 63a7194c0..000000000 --- a/libsrc/geos/disk/writeblock.s +++ /dev/null @@ -1,24 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char WriteBlock (struct tr_se *myTS, char *buffer); - - .import popax, setoserror - .import gettrse - .export _WriteBlock - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_WriteBlock: - sta r4L - stx r4H - jsr popax - jsr gettrse - sta r1L - stx r1H - jsr WriteBlock - jmp setoserror diff --git a/libsrc/geos/disk/writebuff.s b/libsrc/geos/disk/writebuff.s deleted file mode 100644 index 96904ca0e..000000000 --- a/libsrc/geos/disk/writebuff.s +++ /dev/null @@ -1,21 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 26.10.1999, 2.1.2003 - -; char WriteBuff (struct tr_se*); - - .import setoserror - .import gettrse - .export _WriteBuff - - .include "../inc/diskdrv.inc" - .include "../inc/geossym.inc" - -_WriteBuff: - jsr gettrse - sta r1L - stx r1H - jsr WriteBuff - jmp setoserror diff --git a/libsrc/geos/dlgbox/Makefile b/libsrc/geos/dlgbox/Makefile deleted file mode 100644 index 15cd497ea..000000000 --- a/libsrc/geos/dlgbox/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -# -# Makefile for GEOS lib -# for cc65 -# -# - -%.o: %.c - @$(CC) $(CFLAGS) $< - @$(AS) -g -o $@ $(AFLAGS) $(*).s - -%.o: %.s - @$(AS) -o $@ $(AFLAGS) $< - -C_OBJS = messagebox.o -S_OBJS = dodlgbox.o rstrfrmdialogue.o\ - dbget2lines.o dlgboxyesno.o dlgboxokcancel.o dlgboxok.o dlgboxgetstring.o\ - dlgboxfileselect.o - -all: $(C_OBJS) $(S_OBJS) - -clean: - @$(RM) core *.~ $(S_OBJS) $(C_OBJS:.o=.s) $(C_OBJS) diff --git a/libsrc/geos/dlgbox/dbget2lines.s b/libsrc/geos/dlgbox/dbget2lines.s deleted file mode 100644 index 6e26b6ae7..000000000 --- a/libsrc/geos/dlgbox/dbget2lines.s +++ /dev/null @@ -1,37 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.99 - - .export DB_get2lines - .importzp ptr3,ptr4 - .import popax - -.code - -DB_get2lines: - sta ptr4 ; fetch line 2 - stx ptr4+1 - jsr popax - sta ptr3 ; fetch line 1 - stx ptr3+1 - ldx #ptr3 - jsr checknull - ldx #ptr4 - jmp checknull - -checknull: - lda $0,x - ora $1,x - bne cn_end - lda #nullstring - sta $1,x -cn_end: rts - -.rodata - -nullstring: - .byte 0 diff --git a/libsrc/geos/dlgbox/dlgboxfileselect.s b/libsrc/geos/dlgbox/dlgboxfileselect.s deleted file mode 100644 index 92f97848e..000000000 --- a/libsrc/geos/dlgbox/dlgboxfileselect.s +++ /dev/null @@ -1,59 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.99 - -; char DlgBoxFileSelect (char *class, char ftype, char *fname); - - .export _DlgBoxFileSelect - .import popa, popax - .import _DoDlgBox - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - .include "../inc/const.inc" - .include "../inc/geosmac.ca65.inc" - -.code - -_DlgBoxFileSelect: - - sta tmp_r5 - stx tmp_r5+1 - jsr popa - sta tmp_r7L - jsr popax - sta tmp_r10 - stx tmp_r10+1 - -DB_FS_reload: - MoveW tmp_r5, r5 - MoveW tmp_r10, r10 - MoveB tmp_r7L, r7L - - lda #paramStrFileSelect - jsr _DoDlgBox - cmp #DISK - bne DB_FS_Fin - jsr OpenDisk - txa - beq DB_FS_reload -DB_FS_Fin: rts - -.rodata - -paramStrFileSelect: - .byte DEF_DB_POS | 1 - .byte DBGETFILES, 4, 4 - .byte OPEN, DBI_X_2, DBI_Y_0+16 - .byte DISK, DBI_X_2, DBI_Y_0+32+1 - .byte CANCEL, DBI_X_2, DBI_Y_0+64+3 - .byte NULL - -.bss - -tmp_r5: .res 2 -tmp_r7L: .res 1 -tmp_r10: .res 2 diff --git a/libsrc/geos/dlgbox/dlgboxgetstring.s b/libsrc/geos/dlgbox/dlgboxgetstring.s deleted file mode 100644 index a7c78063b..000000000 --- a/libsrc/geos/dlgbox/dlgboxgetstring.s +++ /dev/null @@ -1,39 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.99 - -; char DlgBoxGetString (char *string, char strlen, char *line1,char *line2); - - .export _DlgBoxGetString - .import DB_get2lines, _DoDlgBox - .importzp ptr2, ptr3, ptr4 - .import popa, popax - - .include "../inc/geossym.inc" - .include "../inc/const.inc" - -.code - -_DlgBoxGetString: - jsr DB_get2lines - jsr popa - sta DB_strlen - jsr popax - sta ptr2 - stx ptr2+1 - lda #paramStrGetString - jmp _DoDlgBox - -.data - -paramStrGetString: - .byte DEF_DB_POS | 1 - .byte DBVARSTR, TXT_LN_X, TXT_LN_1_Y, ptr3 - .byte DBVARSTR, TXT_LN_X, TXT_LN_2_Y, ptr4 - .byte DBGETSTRING, TXT_LN_X, TXT_LN_3_Y, ptr2 -DB_strlen: .byte 17 - .byte CANCEL, DBI_X_2, DBI_Y_2 - .byte NULL diff --git a/libsrc/geos/dlgbox/dlgboxok.s b/libsrc/geos/dlgbox/dlgboxok.s deleted file mode 100644 index abaf86fed..000000000 --- a/libsrc/geos/dlgbox/dlgboxok.s +++ /dev/null @@ -1,31 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.99 - -; char DlgBoxOk (char *line1,char *line2); - - .export _DlgBoxOk - .import DB_get2lines, _DoDlgBox - .importzp ptr3, ptr4 - - .include "../inc/geossym.inc" - .include "../inc/const.inc" - -.code - -_DlgBoxOk: - jsr DB_get2lines - lda #paramStrOk - jmp _DoDlgBox - -.rodata - -paramStrOk: - .byte DEF_DB_POS | 1 - .byte DBVARSTR, TXT_LN_X, TXT_LN_2_Y, ptr3 - .byte DBVARSTR, TXT_LN_X, TXT_LN_3_Y, ptr4 - .byte OK, DBI_X_0, DBI_Y_2 - .byte NULL diff --git a/libsrc/geos/dlgbox/dlgboxokcancel.s b/libsrc/geos/dlgbox/dlgboxokcancel.s deleted file mode 100644 index e38eccd26..000000000 --- a/libsrc/geos/dlgbox/dlgboxokcancel.s +++ /dev/null @@ -1,32 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.99 - -; char DlgBoxOkCancel (char *line1,char *line2); - - .export _DlgBoxOkCancel - .import DB_get2lines, _DoDlgBox - .importzp ptr3, ptr4 - - .include "../inc/geossym.inc" - .include "../inc/const.inc" - -.code - -_DlgBoxOkCancel: - jsr DB_get2lines - lda #paramStrOkCancel - jmp _DoDlgBox - -.rodata - -paramStrOkCancel: - .byte DEF_DB_POS | 1 - .byte DBVARSTR, TXT_LN_X, TXT_LN_2_Y, ptr3 - .byte DBVARSTR, TXT_LN_X, TXT_LN_3_Y, ptr4 - .byte OK, DBI_X_0, DBI_Y_2 - .byte CANCEL, DBI_X_2, DBI_Y_2 - .byte NULL diff --git a/libsrc/geos/dlgbox/dlgboxyesno.s b/libsrc/geos/dlgbox/dlgboxyesno.s deleted file mode 100644 index 09f697c99..000000000 --- a/libsrc/geos/dlgbox/dlgboxyesno.s +++ /dev/null @@ -1,32 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.99 - -; char DlgBoxYesNo (char *line1,char *line2); - - .export _DlgBoxYesNo - .import DB_get2lines, _DoDlgBox - .importzp ptr3, ptr4 - - .include "../inc/geossym.inc" - .include "../inc/const.inc" - -.code - -_DlgBoxYesNo: - jsr DB_get2lines - lda #paramStrYesNo - jmp _DoDlgBox - -.rodata - -paramStrYesNo: - .byte DEF_DB_POS | 1 - .byte DBVARSTR, TXT_LN_X, TXT_LN_2_Y, ptr3 - .byte DBVARSTR, TXT_LN_X, TXT_LN_3_Y, ptr4 - .byte YES, DBI_X_0, DBI_Y_2 - .byte NO, DBI_X_2, DBI_Y_2 - .byte NULL diff --git a/libsrc/geos/dlgbox/dodlgbox.s b/libsrc/geos/dlgbox/dodlgbox.s deleted file mode 100644 index 3e8629b16..000000000 --- a/libsrc/geos/dlgbox/dodlgbox.s +++ /dev/null @@ -1,20 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char DoDlgBox (char *myParamString); - - .export _DoDlgBox - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_DoDlgBox: - sta r0L - stx r0H - jsr DoDlgBox - ldx #0 - lda r0L - rts diff --git a/libsrc/geos/dlgbox/messagebox.c b/libsrc/geos/dlgbox/messagebox.c deleted file mode 100644 index 4fba1570c..000000000 --- a/libsrc/geos/dlgbox/messagebox.c +++ /dev/null @@ -1,85 +0,0 @@ - -/* - * char MessageBox (char mode, const char *format, ...) - * - * Maciej 'YTM/Elysium' Witkowiak, 17.08.2003 - * - */ - -#include -#include - -void _mbprintout(void); - -static dlgBoxStr _mbdlg_EMPTY = { - DB_DEFPOS(1), - DB_OPVEC(&RstrFrmDialogue), - DB_USRROUT(&_mbprintout), - DB_END, -}; - -static dlgBoxStr _mbdlg_OK = { - DB_DEFPOS(1), - DB_USRROUT(&_mbprintout), - DB_ICON(OK, DBI_X_1, DBI_Y_2), - DB_END, -}; - -static dlgBoxStr _mbdlg_OKCANCEL = { - DB_DEFPOS(1), - DB_USRROUT(&_mbprintout), - DB_ICON(OK, DBI_X_0, DBI_Y_2), - DB_ICON(CANCEL, DBI_X_2, DBI_Y_2), - DB_END, -}; - -static dlgBoxStr _mbdlg_YESNO = { - DB_DEFPOS(1), - DB_USRROUT(&_mbprintout), - DB_ICON(YES, DBI_X_0, DBI_Y_2), - DB_ICON(NO, DBI_X_2, DBI_Y_2), - DB_END, -}; - -static dlgBoxStr *_mbboxes[] = { - &_mbdlg_EMPTY, - &_mbdlg_OK, - &_mbdlg_OKCANCEL, - &_mbdlg_YESNO -}; - -static char _mbbuffer[256]; - -char MessageBox(char mode, const char *format, ...) -{ - register char *buf; - va_list ap; - - /* first format out things */ - va_start(ap, format); - vsprintf(_mbbuffer, format, ap); - va_end(ap); - - /* replace LFs by CRs */ - buf = &_mbbuffer[0]; - while (*buf) { - if (*buf==LF) *buf=CR; - ++buf; - } - - /* validate mode */ - if (mode>=MB_LAST) - mode = MB_EMPTY; - - return DoDlgBox(_mbboxes[mode]); -} - -void _mbprintout(void) -{ - UseSystemFont(); - curWindow.top = DEF_DB_TOP; - curWindow.left = DEF_DB_LEFT+10; - curWindow.right = DEF_DB_RIGHT-10; - curWindow.bot = DEF_DB_BOT; - PutString(_mbbuffer, DEF_DB_TOP+10+curFontDesc.height, DEF_DB_LEFT+10 ); -} diff --git a/libsrc/geos/dlgbox/rstrfrmdialogue.s b/libsrc/geos/dlgbox/rstrfrmdialogue.s deleted file mode 100644 index 585e5b396..000000000 --- a/libsrc/geos/dlgbox/rstrfrmdialogue.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 25.12.99 - -; char RstrFrmDialogue (void); - - .export _RstrFrmDialogue - - .include "../inc/jumptab.inc" - -_RstrFrmDialogue = RstrFrmDialogue diff --git a/libsrc/geos/file/Makefile b/libsrc/geos/file/Makefile deleted file mode 100644 index 3bc506698..000000000 --- a/libsrc/geos/file/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# -# Makefile for GEOS lib -# for cc65 -# - -%.o: %.s - @$(AS) -o $@ $(AFLAGS) $< - - -S_OBJS = get1stdirentry.o getnxtdirentry.o\ - openrecordfile.o closerecordfile.o nextrecord.o previousrecord.o pointrecord.o\ - deleterecord.o insertrecord.o appendrecord.o readrecord.o writerecord.o\ - updaterecordfile.o\ - findfile.o followchain.o getfhdrinfo.o readfile.o savefile.o freefile.o\ - deletefile.o renamefile.o findftypes.o readbyte.o getfile.o\ - sysremove.o sysrename.o - -all: $(S_OBJS) - -clean: - @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos/file/appendrecord.s b/libsrc/geos/file/appendrecord.s deleted file mode 100644 index 9e2b2d85e..000000000 --- a/libsrc/geos/file/appendrecord.s +++ /dev/null @@ -1,17 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char AppendRecord (void); - - .import setoserror - .export _AppendRecord - - .include "../inc/jumptab.inc" - -_AppendRecord: - - jsr AppendRecord - jmp setoserror diff --git a/libsrc/geos/file/closerecordfile.s b/libsrc/geos/file/closerecordfile.s deleted file mode 100644 index abfd0e719..000000000 --- a/libsrc/geos/file/closerecordfile.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char CloseRecordFile (void); - - .import setoserror - .export _CloseRecordFile - - .include "../inc/jumptab.inc" - -_CloseRecordFile: - jsr CloseRecordFile - jmp setoserror diff --git a/libsrc/geos/file/deletefile.s b/libsrc/geos/file/deletefile.s deleted file mode 100644 index bc98b439b..000000000 --- a/libsrc/geos/file/deletefile.s +++ /dev/null @@ -1,19 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char DeleteFile (char *myName); - - .import setoserror - .export _DeleteFile - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_DeleteFile: - sta r0L - stx r0H - jsr DeleteFile - jmp setoserror diff --git a/libsrc/geos/file/deleterecord.s b/libsrc/geos/file/deleterecord.s deleted file mode 100644 index aeaba7e05..000000000 --- a/libsrc/geos/file/deleterecord.s +++ /dev/null @@ -1,17 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char DeleteRecord (void); - - .import setoserror - .export _DeleteRecord - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_DeleteRecord: - jsr DeleteRecord - jmp setoserror diff --git a/libsrc/geos/file/findfile.s b/libsrc/geos/file/findfile.s deleted file mode 100644 index 1ed04a743..000000000 --- a/libsrc/geos/file/findfile.s +++ /dev/null @@ -1,19 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char FindFile (char *myName); - - .import setoserror - .export _FindFile - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_FindFile: - sta r6L - stx r6H - jsr FindFile - jmp setoserror diff --git a/libsrc/geos/file/findftypes.s b/libsrc/geos/file/findftypes.s deleted file mode 100644 index bc5fcf3bd..000000000 --- a/libsrc/geos/file/findftypes.s +++ /dev/null @@ -1,38 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char FindFTypes (char *buffer, char fileType, char fileMax, char *Class); - - .export _FindFTypes - .import popax, popa, setoserror - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -.code - -_FindFTypes: - sta r10L - stx r10H - jsr popa - sta r7H - sta tmpFileMax - jsr popa - sta r7L - jsr popax - sta r6L - stx r6H - jsr FindFTypes - jsr setoserror -; return (fileMax - r7H) - lda tmpFileMax - sec - sbc r7H - rts - -.bss - -tmpFileMax: .res 1 diff --git a/libsrc/geos/file/followchain.s b/libsrc/geos/file/followchain.s deleted file mode 100644 index 12fe6600d..000000000 --- a/libsrc/geos/file/followchain.s +++ /dev/null @@ -1,24 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char FollowChain (struct tr_se *myTrSe, char *buffer); - - .export _FollowChain - .import popax, setoserror - .import gettrse - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_FollowChain: - sta r3L - stx r3H - jsr popax - jsr gettrse - sta r1L - stx r1H - jsr FollowChain - jmp setoserror diff --git a/libsrc/geos/file/freefile.s b/libsrc/geos/file/freefile.s deleted file mode 100644 index 4e2acd1c7..000000000 --- a/libsrc/geos/file/freefile.s +++ /dev/null @@ -1,19 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char FreeFile (struct trse myTrSe[]); - - .import setoserror - .export _FreeFile - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_FreeFile: - sta r9L - stx r9H - jsr FreeFile - jmp setoserror diff --git a/libsrc/geos/file/get1stdirentry.s b/libsrc/geos/file/get1stdirentry.s deleted file mode 100644 index 79db1fb7a..000000000 --- a/libsrc/geos/file/get1stdirentry.s +++ /dev/null @@ -1,20 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 26.10.99 - -; struct filehandle* Get1stDirEntry (void); - - .import __oserror - .export _Get1stDirEntry - - .include "../inc/diskdrv.inc" - .include "../inc/geossym.inc" - -_Get1stDirEntry: - jsr Get1stDirEntry - stx __oserror - lda r5L - ldx r5H - rts diff --git a/libsrc/geos/file/getfhdrinfo.s b/libsrc/geos/file/getfhdrinfo.s deleted file mode 100644 index 03171f082..000000000 --- a/libsrc/geos/file/getfhdrinfo.s +++ /dev/null @@ -1,19 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char GetFHdrInfo (struct filehandle *myFile); - - .import setoserror - .export _GetFHdrInfo - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_GetFHdrInfo: - sta r9L - stx r9H - jsr GetFHdrInfo - jmp setoserror diff --git a/libsrc/geos/file/getfile.s b/libsrc/geos/file/getfile.s deleted file mode 100644 index 336ef2411..000000000 --- a/libsrc/geos/file/getfile.s +++ /dev/null @@ -1,32 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 4.4.2003 - -; char __fastcall__ GetFile(char flag, const char *fname, const char *loadaddr, const char *datadname, char *datafname); - - .export _GetFile - .import popa, popax, setoserror - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_GetFile: - sta r3L - stx r3H - jsr popax - sta r2L - stx r2H - jsr popax - sta r7L - stx r7H - jsr popax - sta r6L - stx r6H - jsr popa - sta r0L - lda #0 - sta r10L - jsr GetFile - jmp setoserror diff --git a/libsrc/geos/file/getnxtdirentry.s b/libsrc/geos/file/getnxtdirentry.s deleted file mode 100644 index bf20bf696..000000000 --- a/libsrc/geos/file/getnxtdirentry.s +++ /dev/null @@ -1,20 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 26.10.99 - -; struct filehandle* GetNxtDirEntry (void); - - .import __oserror - .export _GetNxtDirEntry - - .include "../inc/diskdrv.inc" - .include "../inc/geossym.inc" - -_GetNxtDirEntry: - jsr GetNxtDirEntry - stx __oserror - lda r5L - ldx r5H - rts diff --git a/libsrc/geos/file/insertrecord.s b/libsrc/geos/file/insertrecord.s deleted file mode 100644 index b27af3b97..000000000 --- a/libsrc/geos/file/insertrecord.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char InsertRecord (void); - - .import setoserror - .export _InsertRecord - - .include "../inc/jumptab.inc" - -_InsertRecord: - jsr InsertRecord - jmp setoserror diff --git a/libsrc/geos/file/nextrecord.s b/libsrc/geos/file/nextrecord.s deleted file mode 100644 index df3806a2f..000000000 --- a/libsrc/geos/file/nextrecord.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char NextRecord (void); - - .import setoserror - .export _NextRecord - - .include "../inc/jumptab.inc" - -_NextRecord: - jsr NextRecord - jmp setoserror diff --git a/libsrc/geos/file/openrecordfile.s b/libsrc/geos/file/openrecordfile.s deleted file mode 100644 index 40f8497f9..000000000 --- a/libsrc/geos/file/openrecordfile.s +++ /dev/null @@ -1,19 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char OpenRecordFile (char *myName); - - .import setoserror - .export _OpenRecordFile - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_OpenRecordFile: - sta r0L - stx r0H - jsr OpenRecordFile - jmp setoserror diff --git a/libsrc/geos/file/pointrecord.s b/libsrc/geos/file/pointrecord.s deleted file mode 100644 index 3bf6dec60..000000000 --- a/libsrc/geos/file/pointrecord.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char PointRecord (char recordNum); - - .import setoserror - .export _PointRecord - - .include "../inc/jumptab.inc" - -_PointRecord: - jsr PointRecord - jmp setoserror diff --git a/libsrc/geos/file/previousrecord.s b/libsrc/geos/file/previousrecord.s deleted file mode 100644 index d535abf1a..000000000 --- a/libsrc/geos/file/previousrecord.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char PreviousRecord (void); - - .import setoserror - .export _PreviousRecord - - .include "../inc/jumptab.inc" - -_PreviousRecord: - jsr PreviousRecord - jmp setoserror diff --git a/libsrc/geos/file/readbyte.s b/libsrc/geos/file/readbyte.s deleted file mode 100644 index fe7c82aa6..000000000 --- a/libsrc/geos/file/readbyte.s +++ /dev/null @@ -1,18 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char ReadByte (void); - - .import __oserror - .export _ReadByte - - .include "../inc/jumptab.inc" - -_ReadByte: - jsr ReadByte - stx __oserror - ldx #0 - rts diff --git a/libsrc/geos/file/readfile.s b/libsrc/geos/file/readfile.s deleted file mode 100644 index ac1cda404..000000000 --- a/libsrc/geos/file/readfile.s +++ /dev/null @@ -1,27 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char ReadFile (struct tr_se *myTS, char *buffer, int length); - - .export _ReadFile - .import popax, setoserror - .import gettrse - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_ReadFile: - sta r2L - stx r2H - jsr popax - sta r7L - stx r7H - jsr popax - jsr gettrse - sta r1L - stx r1H - jsr ReadFile - jmp setoserror diff --git a/libsrc/geos/file/readrecord.s b/libsrc/geos/file/readrecord.s deleted file mode 100644 index 6b1a46d69..000000000 --- a/libsrc/geos/file/readrecord.s +++ /dev/null @@ -1,22 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char ReadRecord (char *buffer, int length); - - .export _ReadRecord - .import popax, setoserror - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_ReadRecord: - sta r2L - stx r2H - jsr popax - sta r7L - stx r7H - jsr ReadRecord - jmp setoserror diff --git a/libsrc/geos/file/renamefile.s b/libsrc/geos/file/renamefile.s deleted file mode 100644 index 709e10f7b..000000000 --- a/libsrc/geos/file/renamefile.s +++ /dev/null @@ -1,22 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char RenameFile (char *old, char *new); - - .export _RenameFile - .import popax, setoserror - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_RenameFile: - sta r0L - stx r0H - jsr popax - sta r6L - stx r6H - jsr RenameFile - jmp setoserror diff --git a/libsrc/geos/file/savefile.s b/libsrc/geos/file/savefile.s deleted file mode 100644 index 78e9b3cce..000000000 --- a/libsrc/geos/file/savefile.s +++ /dev/null @@ -1,22 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char SaveFile (char skip, struct fileheader *myHeader); - - .import setoserror - .import popa - .export _SaveFile - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_SaveFile: - sta r9L - stx r9H - jsr popa - sta r10L - jsr SaveFile - jmp setoserror diff --git a/libsrc/geos/file/sysremove.s b/libsrc/geos/file/sysremove.s deleted file mode 100644 index 431144730..000000000 --- a/libsrc/geos/file/sysremove.s +++ /dev/null @@ -1,20 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 19.07.2005 - -; unsigned char __fastcall__ _sysremove (const char* name); - - .export __sysremove - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -__sysremove: - sta r0L - stx r0H - jsr DeleteFile - txa - ldx #0 - rts diff --git a/libsrc/geos/file/sysrename.s b/libsrc/geos/file/sysrename.s deleted file mode 100644 index 590ca9e6b..000000000 --- a/libsrc/geos/file/sysrename.s +++ /dev/null @@ -1,24 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 19.07.2005 - -; unsigned char __fastcall__ _sysrename (const char* oldname, const char* newname); - - .export __sysrename - .import popax - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -__sysrename: - sta r0L - stx r0H - jsr popax - sta r6L - stx r6H - jsr RenameFile - txa - ldx #0 - rts diff --git a/libsrc/geos/file/updaterecordfile.s b/libsrc/geos/file/updaterecordfile.s deleted file mode 100644 index e395c4af9..000000000 --- a/libsrc/geos/file/updaterecordfile.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char UpdateRecordFile (void); - - .import setoserror - .export _UpdateRecordFile - - .include "../inc/jumptab.inc" - -_UpdateRecordFile: - jsr UpdateRecordFile - jmp setoserror diff --git a/libsrc/geos/file/writerecord.s b/libsrc/geos/file/writerecord.s deleted file mode 100644 index 1a6d08772..000000000 --- a/libsrc/geos/file/writerecord.s +++ /dev/null @@ -1,22 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 25.12.1999, 2.1.2003 - -; char WriteRecord (char *buffer, int length); - - .export _WriteRecord - .import popax, setoserror - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_WriteRecord: - sta r2L - stx r2H - jsr popax - sta r7L - stx r7H - jsr WriteRecord - jmp setoserror diff --git a/libsrc/geos/graph/Makefile b/libsrc/geos/graph/Makefile deleted file mode 100644 index f69213c41..000000000 --- a/libsrc/geos/graph/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# -# Makefile for GEOS lib -# for cc65 -# -# - -%.o: %.s - @$(AS) -o $@ $(AFLAGS) $< - - -S_OBJS = drawline.o drawpoint.o framerectangle.o hlineregs.o horizontalline.o\ - imprintrectangle.o invertline.o invertrectangle.o pointregs.o recoverline.o\ - recoverrectangle.o rectangle.o initdrawwindow.o setpattern.o testpoint.o verticalline.o\ - put_char.o putdecimal.o putstring.o usesystemfont.o\ - getcharwidth.o loadcharset.o bitmapup.o bitmapregs.o bitmapclip.o bitotherclip.o\ - graphicsstring.o getintcharint.o - -all: $(S_OBJS) - -clean: - @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos/graph/bitmapclip.s b/libsrc/geos/graph/bitmapclip.s deleted file mode 100644 index 9876efe8f..000000000 --- a/libsrc/geos/graph/bitmapclip.s +++ /dev/null @@ -1,25 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void BitmapClip (char skipl, char skipr, int skipy, struct iconpic *myGfx); - - .import popa, popax - .import BitmapRegs - .export _BitmapClip - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_BitmapClip: - jsr BitmapRegs - jsr popax - sta r12L - stx r12H - jsr popa - sta r11H - jsr popa - sta r11L - jmp BitmapClip diff --git a/libsrc/geos/graph/bitmapregs.s b/libsrc/geos/graph/bitmapregs.s deleted file mode 100644 index 068239b1a..000000000 --- a/libsrc/geos/graph/bitmapregs.s +++ /dev/null @@ -1,22 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - - .importzp ptr4 - - .export BitmapRegs - - .include "../inc/geossym.inc" - -BitmapRegs: ;a/x is a struct iconpic* - sta ptr4 - stx ptr4+1 - ldy #0 -bmpLp: lda (ptr4),y - sta r0L,y - iny - cpy #6 - bne bmpLp - rts diff --git a/libsrc/geos/graph/bitmapup.s b/libsrc/geos/graph/bitmapup.s deleted file mode 100644 index fbaa5f463..000000000 --- a/libsrc/geos/graph/bitmapup.s +++ /dev/null @@ -1,17 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void BitmapUp (struct iconpic *myGfx); - - - .import BitmapRegs - .export _BitmapUp - - .include "../inc/jumptab.inc" - -_BitmapUp: - jsr BitmapRegs - jmp BitmapUp diff --git a/libsrc/geos/graph/bitotherclip.s b/libsrc/geos/graph/bitotherclip.s deleted file mode 100644 index 6da0f4e97..000000000 --- a/libsrc/geos/graph/bitotherclip.s +++ /dev/null @@ -1,37 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void BitOtherClip (void *proc1, void* proc2, char skipl, char skipr, int skipy, -; struct iconpic *myGfx); - -; both proc1, proc2 should be: char __fastcall something (void); -; proc1 is called before reading a byte (.A returns next data) -; proc2 is called before reading each byte which is not pattern (code >219) - - - .import popa, popax - .import BitOtherRegs - .export _BitOtherClip - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_BitOtherClip: - jsr BitOtherRegs - jsr popax - sta r12L - stx r12H - jsr popa - sta r11H - jsr popa - sta r11L - jsr popax - sta r14L - stx r14H - jsr popax - sta r13L - stx r13H - jmp BitOtherClip diff --git a/libsrc/geos/graph/drawline.s b/libsrc/geos/graph/drawline.s deleted file mode 100644 index 06d05f663..000000000 --- a/libsrc/geos/graph/drawline.s +++ /dev/null @@ -1,31 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 29.10.99, 5.03.2003 - -; void DrawLine (char mode, struct window *mywindow); - - .import _InitDrawWindow - .import popa - .importzp tmp1 - .export _DrawLine - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - .include "../inc/geosmac.ca65.inc" - -_DrawLine: - tay - PushW r2 - tya - jsr _InitDrawWindow - MoveW r2, r11 - PopW r2 - jsr popa - sta tmp1 - clc - bit tmp1 - bvc @1 - sec -@1: jmp DrawLine diff --git a/libsrc/geos/graph/drawpoint.s b/libsrc/geos/graph/drawpoint.s deleted file mode 100644 index 7c212176d..000000000 --- a/libsrc/geos/graph/drawpoint.s +++ /dev/null @@ -1,25 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 29.10.99, 05.3.2003 - -; void DrawPoint (char mode, struct pixel *mypixel); - - - .import PointRegs - .import popa - .importzp tmp1 - .export _DrawPoint - - .include "../inc/jumptab.inc" - -_DrawPoint: - jsr PointRegs - jsr popa - sta tmp1 - clc - bit tmp1 - bvc @1 - sec -@1: jmp DrawPoint diff --git a/libsrc/geos/graph/framerectangle.s b/libsrc/geos/graph/framerectangle.s deleted file mode 100644 index e9b73784a..000000000 --- a/libsrc/geos/graph/framerectangle.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 29.10.99 - -; void FrameRectangle (char pattern); - - .export _FrameRectangle - - .include "../inc/jumptab.inc" - -_FrameRectangle = FrameRectangle diff --git a/libsrc/geos/graph/getcharwidth.s b/libsrc/geos/graph/getcharwidth.s deleted file mode 100644 index 82ffd1018..000000000 --- a/libsrc/geos/graph/getcharwidth.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char GetCharWidth (char character); - - .export _GetCharWidth - - .include "../inc/jumptab.inc" - -_GetCharWidth: - jsr GetCharWidth - ldx #0 - rts diff --git a/libsrc/geos/graph/getintcharint.s b/libsrc/geos/graph/getintcharint.s deleted file mode 100644 index fdf5af764..000000000 --- a/libsrc/geos/graph/getintcharint.s +++ /dev/null @@ -1,21 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 11.03.2000 - - .import popa, popax - .export getintcharint - - .include "../inc/geossym.inc" - -getintcharint: - sta r11L - stx r11H - jsr popa - sta r1H - jsr popax - sta r0L - stx r0H - rts - diff --git a/libsrc/geos/graph/graphicsstring.s b/libsrc/geos/graph/graphicsstring.s deleted file mode 100644 index 3e751fc95..000000000 --- a/libsrc/geos/graph/graphicsstring.s +++ /dev/null @@ -1,17 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 25.12.99 - -; void GraphicsString (char *myString); - - .export _GraphicsString - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_GraphicsString: - sta r0L - stx r0H - jmp GraphicsString diff --git a/libsrc/geos/graph/hlineregs.s b/libsrc/geos/graph/hlineregs.s deleted file mode 100644 index 8b5f2345a..000000000 --- a/libsrc/geos/graph/hlineregs.s +++ /dev/null @@ -1,22 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 29.10.99 - - - .import popax, popa - - .export HLineRegs - - .include "../inc/geossym.inc" - -HLineRegs: - stx r4H - sta r4L - jsr popax - stx r3H - sta r3L - jsr popa - sta r11L - rts diff --git a/libsrc/geos/graph/horizontalline.s b/libsrc/geos/graph/horizontalline.s deleted file mode 100644 index fa68ac73f..000000000 --- a/libsrc/geos/graph/horizontalline.s +++ /dev/null @@ -1,19 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 29.10.99 - -; void HorizontalLine (char pattern, char y, int xstart, int xend); - - .import popa - .import HLineRegs - - .export _HorizontalLine - - .include "../inc/jumptab.inc" - -_HorizontalLine: - jsr HLineRegs - jsr popa - jmp HorizontalLine diff --git a/libsrc/geos/graph/imprintrectangle.s b/libsrc/geos/graph/imprintrectangle.s deleted file mode 100644 index 02b896ad3..000000000 --- a/libsrc/geos/graph/imprintrectangle.s +++ /dev/null @@ -1,14 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void ImprintRectangle (void); - - .export _ImprintRectangle - - .include "../inc/jumptab.inc" - -_ImprintRectangle = ImprintRectangle - diff --git a/libsrc/geos/graph/initdrawwindow.s b/libsrc/geos/graph/initdrawwindow.s deleted file mode 100644 index 307af72ea..000000000 --- a/libsrc/geos/graph/initdrawwindow.s +++ /dev/null @@ -1,25 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 29.10.99 -; 11.03.2000 - -; void InitDrawWindow (struct window *myWindow); - - .importzp ptr4 - - .export _InitDrawWindow - - .include "../inc/geossym.inc" - -_InitDrawWindow: ;a/x is a struct window* - sta ptr4 - stx ptr4+1 - ldy #0 -copyWin: lda (ptr4),y - sta r2L,y - iny - cpy #6 - bne copyWin - rts diff --git a/libsrc/geos/graph/invertline.s b/libsrc/geos/graph/invertline.s deleted file mode 100644 index dcae0b46e..000000000 --- a/libsrc/geos/graph/invertline.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 29.10.99 - -; void InvertLine (char y, int xstart, int xend); - - .import HLineRegs - .export _InvertLine - - .include "../inc/jumptab.inc" - -_InvertLine: - jsr HLineRegs - jmp InvertLine diff --git a/libsrc/geos/graph/invertrectangle.s b/libsrc/geos/graph/invertrectangle.s deleted file mode 100644 index 0ef9d8580..000000000 --- a/libsrc/geos/graph/invertrectangle.s +++ /dev/null @@ -1,14 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 29.10.99 - -; void InvertRectangle (void); - - .export _InvertRectangle - - .include "../inc/jumptab.inc" - -_InvertRectangle = InvertRectangle - diff --git a/libsrc/geos/graph/loadcharset.s b/libsrc/geos/graph/loadcharset.s deleted file mode 100644 index d61b7f98b..000000000 --- a/libsrc/geos/graph/loadcharset.s +++ /dev/null @@ -1,17 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void LoadCharSet (struct fontdesc *myFont); - - .export _LoadCharSet - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_LoadCharSet: - sta r0L - stx r0H - jmp LoadCharSet diff --git a/libsrc/geos/graph/pointregs.s b/libsrc/geos/graph/pointregs.s deleted file mode 100644 index f87667aa3..000000000 --- a/libsrc/geos/graph/pointregs.s +++ /dev/null @@ -1,25 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 29.10.99 - - .importzp ptr4 - - .export PointRegs - - .include "../inc/geossym.inc" - -PointRegs: ;a/x is a struct pixel* - sta ptr4 - stx ptr4+1 - ldy #0 - lda (ptr4),y - sta r3L - iny - lda (ptr4),y - sta r3H - iny - lda (ptr4),y - sta r11L - rts diff --git a/libsrc/geos/graph/put_char.s b/libsrc/geos/graph/put_char.s deleted file mode 100644 index ed885800e..000000000 --- a/libsrc/geos/graph/put_char.s +++ /dev/null @@ -1,21 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void PutChar (char character, char y, int x); - - .import popa - .export _PutChar - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_PutChar: - sta r11L - stx r11H - jsr popa - sta r1H - jsr popa - jmp PutChar diff --git a/libsrc/geos/graph/putdecimal.s b/libsrc/geos/graph/putdecimal.s deleted file mode 100644 index 587219a25..000000000 --- a/libsrc/geos/graph/putdecimal.s +++ /dev/null @@ -1,18 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 30.10.99, 17.8.2003 - -; void PutDecimal (char style, unsigned value, char y, int x); - - .import popa, popax - .import getintcharint - .export _PutDecimal - - .include "../inc/jumptab.inc" - -_PutDecimal: - jsr getintcharint - jsr popa - jmp PutDecimal diff --git a/libsrc/geos/graph/putstring.s b/libsrc/geos/graph/putstring.s deleted file mode 100644 index 53b685d0d..000000000 --- a/libsrc/geos/graph/putstring.s +++ /dev/null @@ -1,17 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void PutString (char *mytxt, char y, int x); - - .import popax, popa - .import getintcharint - .export _PutString - - .include "../inc/jumptab.inc" - -_PutString: - jsr getintcharint - jmp PutString diff --git a/libsrc/geos/graph/recoverline.s b/libsrc/geos/graph/recoverline.s deleted file mode 100644 index 1a59ae247..000000000 --- a/libsrc/geos/graph/recoverline.s +++ /dev/null @@ -1,18 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 29.10.99 - -; void RecoverLine (char y, int xstart, int xend); - - .import HLineRegs - - .export _RecoverLine - - .include "../inc/jumptab.inc" - -_RecoverLine: - jsr HLineRegs - jmp RecoverLine - diff --git a/libsrc/geos/graph/recoverrectangle.s b/libsrc/geos/graph/recoverrectangle.s deleted file mode 100644 index 426b83d75..000000000 --- a/libsrc/geos/graph/recoverrectangle.s +++ /dev/null @@ -1,14 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 29.10.99 - -; void RecoverRectangle (void); - - .export _RecoverRectangle - - .include "../inc/jumptab.inc" - -_RecoverRectangle = RecoverRectangle - diff --git a/libsrc/geos/graph/rectangle.s b/libsrc/geos/graph/rectangle.s deleted file mode 100644 index c25a4e64d..000000000 --- a/libsrc/geos/graph/rectangle.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 29.10.99 - -; void Rectangle (void); - - .export _Rectangle - - .include "../inc/jumptab.inc" - -_Rectangle = Rectangle diff --git a/libsrc/geos/graph/setpattern.s b/libsrc/geos/graph/setpattern.s deleted file mode 100644 index e5c80bf10..000000000 --- a/libsrc/geos/graph/setpattern.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 29.10.99 - -; void SetPattern (char pattern); - - .export _SetPattern - - .include "../inc/jumptab.inc" - -_SetPattern = SetPattern diff --git a/libsrc/geos/graph/testpoint.s b/libsrc/geos/graph/testpoint.s deleted file mode 100644 index 6a502cc96..000000000 --- a/libsrc/geos/graph/testpoint.s +++ /dev/null @@ -1,20 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 29.10.1999, 2.1.2003 - -; char TestPoint (struct pixel *mypixel); - - .import PointRegs - .import return0, return1 - .export _TestPoint - - .include "../inc/jumptab.inc" - -_TestPoint: - jsr PointRegs - jsr TestPoint - bcc goFalse - jmp return1 -goFalse: jmp return0 diff --git a/libsrc/geos/graph/usesystemfont.s b/libsrc/geos/graph/usesystemfont.s deleted file mode 100644 index 09072733e..000000000 --- a/libsrc/geos/graph/usesystemfont.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void UseSystemFont (void); - - .export _UseSystemFont - - .include "../inc/jumptab.inc" - -_UseSystemFont = UseSystemFont diff --git a/libsrc/geos/graph/verticalline.s b/libsrc/geos/graph/verticalline.s deleted file mode 100644 index 5ce077082..000000000 --- a/libsrc/geos/graph/verticalline.s +++ /dev/null @@ -1,24 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 29.10.99 - -; void VerticalLine (char pattern, char ystart, char yend, int x); - - .import popa - - .export _VerticalLine - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_VerticalLine: - stx r4H - sta r4L - jsr popa - sta r3H - jsr popa - sta r3L - jsr popa - jmp VerticalLine diff --git a/libsrc/geos/inc/const.inc b/libsrc/geos/inc/const.inc deleted file mode 100644 index fce3e2839..000000000 --- a/libsrc/geos/inc/const.inc +++ /dev/null @@ -1,424 +0,0 @@ - -;GeosConst - various system constans sorted by function -;reassembled by Maciej 'YTM/Elysium' Witkowiak -;4-2-99, 18-3-99 - -NULL = 0 -FALSE = NULL -TRUE = $ff - -MOUSE_SPRNUM = 0 - -DISK_DRV_LGH = $0d80 - -; -;filetypes -; GEOS -NOT_GEOS = 0 -BASIC = 1 -ASSEMBLY = 2 -DATA = 3 -SYSTEM = 4 -DESK_ACC = 5 -APPLICATION = 6 -APPL_DATA = 7 -FONT = 8 -PRINTER = 9 -INPUT_DEVICE = 10 -DISK_DEVICE = 11 -SYSTEM_BOOT = 12 -TEMPORARY = 13 -AUTO_EXEC = 14 -INPUT_128 = 15 -NUMFILETYPES = 16 -; structure -SEQUENTIAL = 0 -VLIR = 1 -; DOS -DEL = 0 -SEQ = 1 -PRG = 2 -USR = 3 -REL = 4 -CBM = 5 - -;drivetypes -DRV_NULL = 0 -DRV_1541 = 1 -DRV_1571 = 2 -DRV_1581 = 3 -DRV_NETWORK = 15 - -;various disk -REL_FILE_NUM = 9 -CMND_FILE_NUM = 15 -MAX_CMND_STR = 32 -DIR_1581_TRACK = 40 -DIR_ACC_CHAN = 13 -DIR_TRACK = 18 -N_TRACKS = 35 -DK_NM_ID_LEN = 18 -TRACK = 9 -SECTOR = 12 -TOTAL_BLOCKS = 664 - -;colours -BLACK = 0 -WHITE = 1 -RED = 2 -CYAN = 3 -PURPLE = 4 -GREEN = 5 -BLUE = 6 -YELLOW = 7 -ORANGE = 8 -BROWN = 9 -LTRED = 10 -DKGREY = 11 -GREY = 12 -MEDGREY = 12 -LTGREEN = 13 -LTBLUE = 14 -LTGREY = 15 - -;vic memory banks -GRBANK0 = %11 -GRBANK1 = %10 -GRBANK2 = %01 -GRBANK3 = %00 - -;screen -VIC_X_POS_OFF = 24 -VIC_Y_POS_OFF = 50 -SC_BYTE_WIDTH = 40 -SC_PIX_HEIGHT = 200 -SC_PIX_WIDTH = 320 -SC_SIZE = 8000 -;128 screen size constants -SCREENBYTEWIDTH = 80 -SCREENPIXELWIDTH = 640 - - -;control characters -EOF = 0 -BACKSPACE = 8 -FORWARDSPACE = 9 -TAB = 9 -LF = 10 -HOME = 11 -PAGE_BREAK = 12 -UPLINE = 12 -CR = 13 -ULINEON = 14 -ULINEOFF = 15 -ESC_GRAPHICS = 16 -ESC_RULER = 17 -REV_ON = 18 -REV_OFF = 19 -GOTOX = 20 -GOTOY = 21 -GOTOXY = 22 -NEWCARDSET = 23 -BOLDON = 24 -ITALICON = 25 -OUTLINEON = 26 -PLAINTEXT = 27 - -;keyboard -KEY_F1 = 1 -KEY_F2 = 2 -KEY_F3 = 3 -KEY_F4 = 4 -KEY_F5 = 5 -KEY_F6 = 6 -KEY_NOSCRL = 7 -KEY_ENTER = 11 -KEY_F7 = 14 -KEY_F8 = 15 -KEY_UP = 16 -KEY_DOWN = 17 -KEY_HOME = 18 -KEY_CLEAR = 19 -KEY_LARROW = 20 -KEY_UPARROR = 21 -KEY_STOP = 22 -KEY_RUN = 23 -KEY_BPS = 24 -KEY_HELP = 25 -KEY_ALT = 26 -KEY_ESC = 27 -KEY_INSERT = 28 -KEY_DELETE = 29 -KEY_RIGHT = 30 -KEY_INVALID = 31 -KEY_LEFT = BACKSPACE - -;DialogBox -; icons -OK = 1 -CANCEL = 2 -YES = 3 -NO = 4 -OPEN = 5 -DISK = 6 -; commands -DBTXTSTR = 11 -DBVARSTR = 12 -DBGETSTRING = 13 -DBSYSOPV = 14 -DBGRPHSTR = 15 -DBGETFILES = 16 -DBOPVEC = 17 -DBUSRICON = 18 -DB_USR_ROUT = 19 -; tabulation in standard window -DBI_X_0 = 1 -DBI_X_1 = 9 -DBI_X_2 = 17 -DBI_Y_0 = 8 -DBI_Y_1 = 40 -DBI_Y_2 = 72 -; standard window -SET_DB_POS = 0 -DEF_DB_POS = $80 -DEF_DB_TOP = 32 -DEF_DB_BOT = 127 -DEF_DB_LEFT = 64 -DEF_DB_RIGHT = 255 -; text tabulation -TXT_LN_1_Y = 16 -TXT_LN_2_Y = 32 -TXT_LN_3_Y = 48 -TXT_LN_4_Y = 64 -TXT_LN_5_Y = 80 -TXT_LN_X = 16 -; ??? -SYSDBI_HEIGHT = 16 -SYSDBI_WIDTH = 6 - -;GraphicsString - commands -MOVEPENTO = 1 -LINETO = 2 -RECTANGLETO = 3 -NEWPATTERN = 5 -ESC_PUTSTRING = 6 -FRAME_RECTO = 7 -PEN_X_DELTA = 8 -PEN_Y_DELTA = 9 -PEN_XY_DELTA = 10 - - -;DoMenu - menutypes -MENU_ACTION = $00 -DYN_SUB_MENU = $40 -SUB_MENU = $80 -HORIZONTAL = %00000000 -VERTICAL = %10000000 - -;Errors -ANY_FAULT = %11110000 -NO_BLOCKS = 1 -INV_TRACK = 2 -INSUFF_SPACE = 3 -FULL_DIRECTORY = 4 -FILE_NOT_FOUND = 5 -BAD_BAM = 6 -UNOPENED_VLIR = 7 -INV_RECORD = 8 -OUT_OF_RECORDS = 9 -STRUCT_MISMAT = 10 -BFR_OVERFLOW = 11 -CANCEL_ERR = 12 -DEV_NOT_FOUND = 13 -INCOMPATIBLE = 14 -HDR_NOT_THERE = $20 -NO_SYNC = $21 -DBLK_NOT_THERE = $22 -DAT_CHKSUM_ERR = $23 -WR_VER_ERR = $25 -WR_PR_ON = $26 -HDR_CHKSUM_ERR = $27 -DSK_ID_MISMAT = $29 -BYTE_DEC_ERR = $2e -DOS_MISMATCH = $73 - -;Offsets -; ??? -OFF_INDEX_PTR = 1 -; icons -OFF_NM_ICNS = 0 -OFF_IC_XMOUSE = 1 -OFF_IC_YMOUSE = 3 -OFF_PIC_ICON = 0 -OFF_X_ICON_POS = 2 -OFF_Y_ICON_POS = 3 -OFF_WDTH_ICON = 4 -OFF_HEIGHT_ICON = 5 -OFF_SRV_RT_ICON = 6 -OFF_NX_ICON = 8 -; menu -OFF_MY_TOP = 0 -OFF_MY_BOT = 1 -OFF_MX_LEFT = 2 -OFF_MX_RIGHT = 4 -OFF_NUM_M_ITEMS = 6 -OFF_1ST_M_ITEM = 7 -; dialog box -OFF_DB_FORM = 0 -OFF_DB_TOP = 1 -OFF_DB_BOT = 2 -OFF_DB_LEFT = 3 -OFF_DB_RIGHT = 5 -OFF_DB_1STCMD = 7 -; directory -; disk header -OFF_TO_BAM = 4 -OFF_DISK_NAME = 144 -OFF_GS_DTYPE = 189 -OFF_OP_TR_SC = 171 -OFF_GS_ID = 173 -; dir entry -FRST_FILE_ENTRY = 2 -OFF_CFILE_TYPE = 0 -OFF_DE_TR_SC = 1 -OFF_FNAME = 3 -OFF_GHDR_PTR = 19 -OFF_GSTRUC_TYPE = 21 -OFF_GFILE_TYPE = 22 -OFF_YEAR = 23 -OFF_SIZE = 28 -OFF_NXT_FILE = 32 -; file header -O_GHIC_WIDTH = 2 -O_GHIC_HEIGHT = 3 -O_GHIC_PIC = 4 -O_GHCMDR_TYPE = 68 -O_GHGEOS_TYPE = 69 -O_GHSTR_TYPE = 70 -O_GHST_ADDR = 71 -O_GHEND_ADDR = 73 -O_GHST_VEC = 75 -O_GHFNAME = 77 -O_128_FLAGS = 96 -O_GH_AUTHOR = 97 -O_GHP_DISK = 97 -O_GHP_FNAME = 117 -O_GHINFO_TXT = $a0 - -; values for CPU_DATA - C64 memory config -RAM_64K = $30 ;64K RAM -IO_IN = $35 ;60K RAM, 4K I/O space in -KRNL_IO_IN = $36 ;kernal and I/O mapped into memory -KRNL_BAS_IO_IN = $37 ;kernal, I/O and basic mapped into memory - -;values for config - C128 mmu -CIOIN = $7E ;60K RAM, 4K I/O space in -CRAM64K = $7F ;64K RAM -CKRNLBASIOIN = $40 ;kernal, I/O and basic ROM's mapped into memory -CKRNLIOIN = $4E ;Kernal ROM and I/O space mapped in - -;values of faultData - pointer position vs. mouseTop/Bottom/Left/Right -; bit numbers -OFFTOP_BIT = 7 -OFFBOTTOM_BIT = 6 -OFFLEFT_BIT = 5 -OFFRIGHT_BIT = 4 -OFFMENU_BIT = 3 -; masks -SET_OFFTOP = %10000000 -SET_OFFBOTTOM = %01000000 -SET_OFFLEFT = %00100000 -SET_OFFRIGHT = %00010000 -SET_OFFMENU = %00001000 - -;values of currentMode -; bit numbers -UNDERLINE_BIT = 7 -BOLD_BIT = 6 -REVERSE_BIT = 5 -ITALIC_BIT = 4 -OUTLINE_BIT = 3 -SUPERSCRIPT_BIT = 2 -SUBSCRIPT_BIT = 1 -; masks -SET_UNDERLINE = %10000000 -SET_BOLD = %01000000 -SET_REVERSE = %00100000 -SET_ITALIC = %00010000 -SET_OUTLINE = %00001000 -SET_SUPERSCRIPT = %00000100 -SET_SUBSCRIPT = %00000010 -SET_PLAINTEXT = %00000000 - -;Process control variable -; bit numbers -RUNABLE_BIT = 7 -BLOCKED_BIT = 6 -FROZEN_BIT = 5 -NOTIMER_BIT = 4 -; masks -SET_RUNABLE = %10000000 -SET_BLOCKED = %01000000 -SET_FROZEN = %00100000 -SET_NOTIMER = %00010000 - -;mouseOn -; bit numbers -MOUSEON_BIT = 7 -MENUON_BIT = 6 -ICONSON_BIT = 5 -; masks -SET_MSE_ON = %10000000 -SET_MENUON = %01000000 -SET_ICONSON = %00100000 - -;pressFlag -; bit numbers -KEYPRESS_BIT = 7 -INPUT_BIT = 6 -MOUSE_BIT = 5 -; masks -SET_KEYPRESS = %10000000 -SET_INPUTCHG = %01000000 -SET_MOUSE = %00100000 - -;dispBufferOn -ST_WRGS_FORE = $20 -ST_WR_BACK = $40 -ST_WR_FORE = $80 - -;alarmSetFlag -ALARMMASK = %00000100 - -;PutDecimal - ;leading zeroes -SET_NOSURPRESS = %00000000 -SET_SURPRESS = %01000000 - ;justification -SET_RIGHTJUST = %00000000 -SET_LEFTJUST = %10000000 - -;icons, menus status flags -ST_FLASH = $80 -ST_INVERT = $40 -ST_LD_AT_ADDR = $01 -ST_LD_DATA = $80 -ST_PR_DATA = $40 -ST_WR_PR = $40 - -;??? -ADD1_W = $2000 -DOUBLE_B = $80 -DOUBLE_W = $8000 - -CLR_SAVE = %01000000 -CONSTRAINED = %01000000 -UN_CONSTRAINED = %00000000 -FG_SAVE = %10000000 - -FUTURE1 = 7 -FUTURE2 = 8 -FUTURE3 = 9 -FUTURE4 = 10 -USELAST = 127 -SHORTCUT = 128 diff --git a/libsrc/geos/inc/dio.inc b/libsrc/geos/inc/dio.inc deleted file mode 100644 index 24ae0e5e4..000000000 --- a/libsrc/geos/inc/dio.inc +++ /dev/null @@ -1,19 +0,0 @@ - -;------------------------------------------------------------------------- -; OFFSETS INTO SECTSIZETAB (DIO functions) -;------------------------------------------------------------------------- - -sst_flag = 0 ; length 1 -sst_sectsize = 1 ; 2 -sst_driveno = 3 ; 1 (drive #) -sst_size = 4 ; size of one entry - ; if changed, adapt diopncls.s - -;------------------------------------------------------------------------- -; OFFSETS INTO dio_phys_pos -;------------------------------------------------------------------------- - -diopp_head = 0 ; head -diopp_track = 1 ; track / cylinder -diopp_sector = 3 ; sector -diopp_size = 5 ; size of structure diff --git a/libsrc/geos/inc/diskdrv.inc b/libsrc/geos/inc/diskdrv.inc deleted file mode 100644 index ce106d761..000000000 --- a/libsrc/geos/inc/diskdrv.inc +++ /dev/null @@ -1,42 +0,0 @@ - -;GEOS Disk Driver JumpTab -;reassembled by Maciej 'YTM/Alliance' Witkowiak -;4-2-99 - -;pointers -_InitForIO = $9000 -_DoneWithIO = $9002 -_ExitTurbo = $9004 -_PurgeTurbo = $9006 -_EnterTurbo = $9008 -_ChangeDiskDevice = $900a -_NewDisk = $900c -_ReadBlock = $900e -_WriteBlock = $9010 -_VerWriteBlock = $9012 -_OpenDisk = $9014 -_GetBlock = $9016 -_PutBlock = $9018 -_GetDirHead = $901a -_PutDirHead = $901c -_GetFreeDirBlk = $901e -_CalcBlksFree = $9020 -_FreeBlock = $9022 -_SetNextFree = $9024 -_FindBAMBit = $9026 -_NxtBlkAlloc = $9028 -_BlkAlloc = $902a -_ChkDkGEOS = $902c -_SetGEOSDisk = $902e - -;jump table -Get1stDirEntry = $9030 -GetNxtDirEntry = $9033 -GetBorder = $9036 -AddDirBlock = $9039 -ReadBuff = $903c -WriteBuff = $903f -;??? = $9042 -;??? = $9045 -AllocateBlock = $9048 -ReadLink = $904b diff --git a/libsrc/geos/inc/geosmac.ca65.inc b/libsrc/geos/inc/geosmac.ca65.inc deleted file mode 100644 index b932e3cc6..000000000 --- a/libsrc/geos/inc/geosmac.ca65.inc +++ /dev/null @@ -1,256 +0,0 @@ - -;GEOS macros -;reassembled for 6502TASM/MMS by Maciej 'YTM/Elysium' Witkowiak -;4-2-99 - -;28-6-99 - ca65 port -;macro 'sub' renamed to 'ssub' due to 65816 mnemonics - - - .macro LoadB dest, value - lda #value - sta dest - .endmacro - - .macro LoadW dest, value - LoadB dest+1, >(value) - LoadB dest+0, <(value) - .endmacro - - .macro MoveB source, dest - lda source - sta dest - .endmacro - - .macro MoveW source, dest - MoveB source+1, dest+1 - MoveB source+0, dest+0 - .endmacro - - .macro add source - clc - adc source - .endmacro - - .macro AddB source, dest - lda source - add dest - sta dest - .endmacro - - .macro AddW source, dest - AddB source+0, dest+0 - lda source+1 - adc dest+1 - sta dest+1 - .endmacro - - .macro AddVB value, dest - lda dest - clc - adc #(value) - sta dest - .endmacro - - .macro AddVW value, dest -.local Skip - AddVB <(value), dest+0 - .if (>(value))=0 - bcc Skip - inc dest+1 - .else - lda #>(value) - adc dest+1 - sta dest+1 - .endif -Skip: - .endmacro - - .macro ssub source - sec - sbc source - .endmacro - - .macro SubB source, dest - lda dest - ssub source - sta dest - .endmacro - - .macro SubW source, dest - SubB source+0, dest+0 - lda dest+1 - sbc source+1 - sta dest+1 - .endmacro - - .macro SubVW value, dest - sec - lda dest+0 - sbc #<(value) - sta dest+0 - lda dest+1 - sbc #>(value) - sta dest+1 - .endmacro - - .macro CmpB source, dest - lda source - cmp dest - .endmacro - - .macro CmpBI source, immed - lda source - cmp #(immed) - .endmacro - - .macro CmpW source, dest -.local Skip - CmpB source+1, dest+1 - bne Skip - CmpB source+0, dest+0 -Skip: - .endmacro - - .macro CmpWI source, immed -.local Skip - CmpBI source+1, >(immed) - bne Skip - CmpBI source+0, <(immed) -Skip: - .endmacro - - .macro PushB source - lda source - pha - .endmacro - - .macro PushW source - PushB source+1 - PushB source+0 - .endmacro - - .macro PopB dest - pla - sta dest - .endmacro - - .macro PopW dest - PopB dest+0 - PopB dest+1 - .endmacro - - .macro bra addr - clv - bvc addr - .endmacro - - .macro smb bitNumber, dest - pha - lda #(1 << bitNumber) - ora dest - sta dest - pla - .endmacro - - .macro smbf bitNumber, dest - lda #(1 << bitNumber) - ora dest - sta dest - .endmacro - - .macro rmb bitNumber, dest - pha - lda #(1 << bitNumber) ^ $ff - and dest - sta dest - pla - .endmacro - - .macro rmbf bitNumber, dest - lda #(1 << bitNumber) ^ $ff - and dest - sta dest - .endmacro - - .macro bbs bitNumber, source, addr -.local Skip - php - pha - lda source - and #(1 << bitNumber) - beq Skip - pla - plp - bra addr -Skip: pla - plp - .endmacro - - .macro bbsf bitNumber, source, addr - .if bitNumber=7 - bit source - bmi addr - .else - .if bitNumber=6 - bit source - bvs addr - .else - lda source - and #(1 << bitNumber) - bne addr - .endif - .endif - .endmacro - - .macro bbr bitNumber, source, addr -.local Skip - php - pha - lda source - and #(1 << bitNumber) - bne Skip - pla - plp - bra addr -Skip: pla - plp - .endmacro - - .macro bbrf bitNumber, source, addr - .if bitNumber=7 - bit source - bpl addr - .else - .if bitNumber=6 - bit source - bvc addr - .else - lda source - and #(1 << bitNumber) - beq addr - .endif - .endif - .endmacro - -;03.03.99 by Maciej Witkowiak - - .macro addv value - clc - adc #(value) - .endmacro - - .macro subv value - sec - sbc #(value) - .endmacro - - .macro bnex addr - txa - bne addr - .endmacro - - .macro beqx addr - txa - beq addr - .endmacro diff --git a/libsrc/geos/inc/geossym.inc b/libsrc/geos/inc/geossym.inc deleted file mode 100644 index 0e8fbaf6a..000000000 --- a/libsrc/geos/inc/geossym.inc +++ /dev/null @@ -1,314 +0,0 @@ - -;GEOS variable memory locations sorted by address -;reassembled by Maciej 'YTM/Elysium' Witkowiak -;4-2-99 - -zpage = $0000 -; - -CPU_DDR = $00 -CPU_DATA = $01 -; -r0 = $02 -r0L = $02 -r0H = $03 -r1 = $04 -r1L = $04 -r1H = $05 -r2 = $06 -r2L = $06 -r2H = $07 -r3 = $08 -r3L = $08 -r3H = $09 -r4 = $0a -r4L = $0a -r4H = $0b -r5 = $0c -r5L = $0c -r5H = $0d -r6 = $0e -r6L = $0e -r6H = $0f -r7 = $10 -r7L = $10 -r7H = $11 -r8 = $12 -r8L = $12 -r8H = $13 -r9 = $14 -r9L = $14 -r9H = $15 -r10 = $16 -r10L = $16 -r10H = $17 -r11 = $18 -r11L = $18 -r11H = $19 -r12 = $1a -r12L = $1a -r12H = $1b -r13 = $1c -r13L = $1c -r13H = $1d -r14 = $1e -r14L = $1e -r14H = $1f -r15 = $20 -r15L = $20 -r15H = $21 -; -a0 = $fb -a0L = $fb -a0H = $fc -a1 = $fd -a1L = $fd -a1H = $fe -a2 = $70 -a2L = $70 -a2H = $71 -a3 = $72 -a3L = $72 -a3H = $73 -a4 = $74 -a4L = $74 -a4H = $75 -a5 = $76 -a5L = $76 -a5H = $77 -a6 = $78 -a6L = $78 -a6H = $79 -a7 = $7a -a7L = $7a -a7H = $7b -a8 = $7c -a8L = $7c -a8H = $7d -a9 = $7e -a9L = $7e -a9H = $7f - -; - -curPattern = $22 -string = $24 -baselineOffset = $26 -curSetWidth = $27 -curHeight = $29 -curIndexTable = $2a -cardDataPntr = $2c -currentMode = $2e -dispBufferOn = $2f -mouseOn = $30 -msePicPtr = $31 -windowTop = $33 -windowBottom = $34 -leftMargin = $35 -rightMargin = $37 -pressFlag = $39 -mouseXPos = $3a -mouseYPos = $3c -returnAddress = $3d -graphMode = $3f -TURBO_DD00 = $8e ; from 1541 turbo -TURBO_DD00_CPY = $8f ; from 1541 turbo -STATUS = $90 -curDevice = $ba -; -irqvec = $0314 -bkvec = $0316 -nmivec = $0318 -; -APP_RAM = $0400 -BACK_SCR_BASE = $6000 -PRINTBASE = $7900 -OS_VARS = $8000 -; -diskBlkBuf = $8000 -fileHeader = $8100 -curDirHead = $8200 -fileTrScTab = $8300 -dirEntryBuf = $8400 -DrACurDkNm = $841e -DrBCurDkNm = $8430 -dataFileName = $8442 -dataDiskName = $8453 -PrntFilename = $8465 -PrntDiskName = $8476 -curDrive = $8489 -diskOpenFlg = $848a -isGEOS = $848b -interleave = $848c -NUMDRV = $848d -driveType = $848e -_driveType = driveType-8 -turboFlags = $8492 -_turboFlags = turboFlags-8 -curRecord = $8496 -usedRecords = $8497 -fileWritten = $8498 -fileSize = $8499 -appMain = $849b -intTopVector = $849d -intBotVector = $849f -mouseVector = $84a1 -keyVector = $84a3 -inputVector = $84a5 -mouseFaultVec = $84a7 -otherPressVec = $84a9 -StringFaultVec = $84ab -alarmTmtVector = $84ad -BRKVector = $84af -RecoverVector = $84b1 -selectionFlash = $84b3 -alphaFlag = $84b4 -iconSelFlg = $84b5 -faultData = $84b6 -menuNumber = $84b7 -mouseTop = $84b8 -mouseBottom = $84b9 -mouseLeft = $84ba -mouseRight = $84bc -stringX = $84be -stringY = $84c0 -mousePicData = $84c1 -maxMouseSpeed = $8501 -minMouseSpeed = $8502 -mouseAccel = $8503 -keyData = $8504 -mouseData = $8505 -inputData = $8506 -mouseSpeed = $8507 -random = $850a -saveFontTab = $850c -dblClickCount = $8515 -year = $8516 -month = $8517 -day = $8518 -hour = $8519 -minutes = $851a -seconds = $851b -alarmSetFlag = $851c -sysDBData = $851d -screencolors = $851e -dlgBoxRamBuf = $851f ; to $8697 -; -;$8698 - $8877 - various system data (keyboard queue, VLIR t&s, DBox, Menu, timers) -; -savedmoby2 = $88bb -scr80polar = $88bc -scr80colors = $88bd -vdcClrMode = $88be -driveData = $88bf -ramExpSize = $88c3 -sysRAMFlg = $88c4 -firstBoot = $88c5 -curType = $88c6 -ramBase = $88c7 -inputDevName = $88cb -memBase = $88cf ;??? -DrCCurDkNm = $88dc -DrDCurDkNm = $88ee -dir2Head = $8900 -; -SPRITE_PICS = $8a00 -spr0pic = $8a00 -spr1pic = $8a40 -spr2pic = $8a80 -spr3pic = $8ac0 -spr4pic = $8b00 -spr5pic = $8b40 -spr6pic = $8b80 -spr7pic = $8bc0 -COLOR_MATRIX = $8c00 -; -obj0Pointer = $8ff8 -obj1Pointer = $8ff9 -obj2Pointer = $8ffa -obj3Pointer = $8ffb -obj4Pointer = $8ffc -obj5Pointer = $8ffd -obj6Pointer = $8ffe -obj7Pointer = $8fff -; -DISK_BASE = $9000 -SCREEN_BASE = $a000 -OS_ROM = $c000 -OS_JUMPTAB = $c100 -RAMC_BASE = $de00 -RAMC_WINDOW = $df00 -EXP_BASE = $df00 -MOUSE_BASE_128 = $fd00 -MOUSE_JMP_128 = $fd00 -END_MOUSE_128 = $fe80 -MOUSE_BASE = $fe80 -MOUSE_JMP = $fe80 -config = $ff00 -END_MOUSE = $fffa -NMI_VECTOR = $fffa -RESET_VECTOR = $fffc -IRQ_VECTOR = $fffe -; -vicbase = $d000 -sidbase = $d400 -mmu = $d500 -VDC = $d600 -ctab = $d800 -cia1base = $dc00 -cia2base = $dd00 -; -mob0xpos = $d000 -mob0ypos = $d001 -mob1xpos = $d002 -mob1ypos = $d003 -mob2xpos = $d004 -mob2ypos = $d005 -mob3xpos = $d006 -mob3ypos = $d007 -mob4xpos = $d008 -mob4ypos = $d009 -mob5xpos = $d00a -mob5ypos = $d00b -mob6xpos = $d00c -mob6ypos = $d00d -mob7xpos = $d00e -mob7ypos = $d00f -msbxpos = $d010 -grcntrl1 = $d011 -rasreg = $d012 -lpxpos = $d013 -lpypos = $d014 -mobenble = $d015 -grcntrl2 = $d016 -grmemptr = $d018 -grirq = $d019 -grirqen = $d01a -moby2 = $d017 -mobprior = $d01b -mobmcm = $d01c -mobx2 = $d01d -mobmobcol = $d01e -mobbakcol = $d01f -extclr = $d020 -bakclr0 = $d021 -bakclr1 = $d022 -bakclr2 = $d023 -bakclr3 = $d024 -mcmclr0 = $d025 -mcmclr1 = $d026 -mob0clr = $d027 -mob1clr = $d028 -mob2clr = $d029 -mob3clr = $d02a -mob4clr = $d02b -mob5clr = $d02c -mob6clr = $d02d -mob7clr = $d02e -keyreg = $d02f -clkreg = $d030 - -; -vdcreg = $d600 -vdcdata = $d601 -; diff --git a/libsrc/geos/inc/geossym2.inc b/libsrc/geos/inc/geossym2.inc deleted file mode 100644 index 0820c8e8a..000000000 --- a/libsrc/geos/inc/geossym2.inc +++ /dev/null @@ -1,11 +0,0 @@ - -;GEOS various variables in OS_ROM area -;reassembled by Maciej 'YTM/Alliance' Witkowiak -;4-2-99 - -bootName = $c006 -version = $c00f -nationality = $c010 -sysFlgCopy = $c012 -c128Flag = $c013 -dateCopy = $c018 \ No newline at end of file diff --git a/libsrc/geos/inc/inputdrv.inc b/libsrc/geos/inc/inputdrv.inc deleted file mode 100644 index cdb1dc483..000000000 --- a/libsrc/geos/inc/inputdrv.inc +++ /dev/null @@ -1,16 +0,0 @@ - -;GEOS Input Driver Jump Tab -;reassembled by Maciej 'YTM/Alliance' Witkowiak -;4-2-99 - -;for C64 -;MOUSE_JMP = $fe80 -SlowMouse = $fe83 -UpdateMouse = $fe86 -SetMouse = $fe89 - -;for C128 -;MOUSE_JMP_128 = $fd00 -SlowMouse_128 = $fd03 -UpdateMouse_128 = $fd06 -SetMouse_128 = $fd09 diff --git a/libsrc/geos/inc/jumptab.inc b/libsrc/geos/inc/jumptab.inc deleted file mode 100644 index 44bc6145a..000000000 --- a/libsrc/geos/inc/jumptab.inc +++ /dev/null @@ -1,178 +0,0 @@ - -;GEOS System Jump Table -;reassembled by Maciej 'YTM/Alliance' Witkowiak -;4-2-99 - -;jump table -InterruptMain = $c100 -InitProcesses = $c103 -RestartProcess = $c106 -EnableProcess = $c109 -BlockProcess = $c10c -UnBlockProcess = $c10f -FreezeProcess = $c112 -UnFreezeProcess = $c115 -HorizontalLine = $c118 -InvertLine = $c11b -RecoverLine = $c11e -VerticalLine = $c121 -Rectangle = $c124 -FrameRectangle = $c127 -InvertRectangle = $c12a -RecoverRectangle = $c12d -DrawLine = $c130 -DrawPoint = $c133 -GraphicsString = $c136 -SetPattern = $c139 -GetScanLine = $c13c -TestPoint = $c13f -BitmapUp = $c142 -PutChar = $c145 -PutString = $c148 -UseSystemFont = $c14b -StartMouseMode = $c14e -DoMenu = $c151 -RecoverMenu = $c154 -RecoverAllMenus = $c157 -DoIcons = $c15a -DShiftLeft = $c15d -BBMult = $c160 -BMult = $c163 -DMult = $c166 -Ddiv = $c169 -DSdiv = $c16c -Dabs = $c16f -Dnegate = $c172 -Ddec = $c175 -ClearRam = $c178 -FillRam = $c17b -MoveData = $c17e -InitRam = $c181 -PutDecimal = $c184 -GetRandom = $c187 -MouseUp = $c18a -MouseOff = $c18d -DoPreviousMenu = $c190 -ReDoMenu = $c193 -GetSerialNumber = $c196 -Sleep = $c199 -ClearMouseMode = $c19c -i_Rectangle = $c19f -i_FrameRectangle = $c1a2 -i_RecoverRectangle = $c1a5 -i_GraphicsString = $c1a8 -i_BitmapUp = $c1ab -i_PutString = $c1ae -GetRealSize = $c1b1 -i_FillRam = $c1b4 -i_MoveData = $c1b7 -GetString = $c1ba -GotoFirstMenu = $c1bd -InitTextPrompt = $c1c0 -MainLoop = $c1c3 -DrawSprite = $c1c6 -GetCharWidth = $c1c9 -LoadCharSet = $c1cc -PosSprite = $c1cf -EnablSprite = $c1d2 -DisablSprite = $c1d5 -CallRoutine = $c1d8 -CalcBlksFree = $c1db -ChkDkGEOS = $c1de -NewDisk = $c1e1 -GetBlock = $c1e4 -PutBlock = $c1e7 -SetGEOSDisk = $c1ea -SaveFile = $c1ed -SetGDirEntry = $c1f0 -BldGDirEntry = $c1f3 -GetFreeDirBlk = $c1f6 -WriteFile = $c1f9 -BlkAlloc = $c1fc -ReadFile = $c1ff -SmallPutChar = $c202 -FollowChain = $c205 -GetFile = $c208 -FindFile = $c20b -CRC = $c20e -LdFile = $c211 -EnterTurbo = $c214 -LdDeskAcc = $c217 -ReadBlock = $c21a -LdApplic = $c21d -WriteBlock = $c220 -VerWriteBlock = $c223 -FreeFile = $c226 -GetFHdrInfo = $c229 -EnterDeskTop = $c22c -StartAppl = $c22f -ExitTurbo = $c232 -PurgeTurbo = $c235 -DeleteFile = $c238 -FindFTypes = $c23b -RstrAppl = $c23e -ToBASIC = $c241 -FastDelFile = $c244 -GetDirHead = $c247 -PutDirHead = $c24a -NxtBlkAlloc = $c24d -ImprintRectangle = $c250 -i_ImprintRectangle = $c253 -DoDlgBox = $c256 -RenameFile = $c259 -InitForIO = $c25c -DoneWithIO = $c25f -DShiftRight = $c262 -CopyString = $c265 -CopyFString = $c268 -CmpString = $c26b -CmpFString = $c26e -FirstInit = $c271 -OpenRecordFile = $c274 -CloseRecordFile = $c277 -NextRecord = $c27a -PreviousRecord = $c27d -PointRecord = $c280 -DeleteRecord = $c283 -InsertRecord = $c286 -AppendRecord = $c289 -ReadRecord = $c28c -WriteRecord = $c28f -SetNextFree = $c292 -UpdateRecordFile = $c295 -GetPtrCurDkNm = $c298 -PromptOn = $c29b -PromptOff = $c29e -OpenDisk = $c2a1 -DoInlineReturn = $c2a4 -GetNextChar = $c2a7 -BitmapClip = $c2aa -FindBAMBit = $c2ad -SetDevice = $c2b0 -IsMseInRegion = $c2b3 -ReadByte = $c2b6 -FreeBlock = $c2b9 -ChangeDiskDevice = $c2bc -RstrFrmDialogue = $c2bf -Panic = $c2c2 -BitOtherClip = $c2c5 -StashRAM = $c2c8 -FetchRAM = $c2cb -SwapRAM = $c2ce -VerifyRAM = $c2d1 -DoRAMOp = $c2d4 - -;only in GEOS 128 -TempHideMouse = $c2d7 -SetMousePicture = $c2da -SetNewMode = $c2dd -NormalizeX = $c2e0 -MoveBData = $c2e3 -SwapBData = $c2e6 -VerifyBData = $c2e9 -DoBOp = $c2ec -AccessCache = $c2ef -HideOnlyMouse = $c2f2 -SetColorMode = $c2f5 -ColorCard = $c2f8 -ColorRectangle = $c2fb diff --git a/libsrc/geos/inc/printdrv.inc b/libsrc/geos/inc/printdrv.inc deleted file mode 100644 index 55dbc4ebe..000000000 --- a/libsrc/geos/inc/printdrv.inc +++ /dev/null @@ -1,14 +0,0 @@ - -;GEOS Printer Driver Jump Table -;reassembled by Maciej 'YTM/Alliance' Witkowiak -;4-2-99 - -;jump table -InitForPrint = $7900 -StartPrint = $7903 -PrintBuffer = $7906 -StopPrint = $7909 -GetDimensions = $790c -PrinsASCII = $790f -StartASCII = $7912 -SetNLQ = $7915 diff --git a/libsrc/geos/memory/Makefile b/libsrc/geos/memory/Makefile deleted file mode 100644 index e2af2fab3..000000000 --- a/libsrc/geos/memory/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -# -# Makefile for GEOS lib -# for cc65 -# -# - -%.o: %.s - @$(AS) -o $@ $(AFLAGS) $< - - -S_OBJS = crc.o doublepop.o reuregs.o clearram.o fillram.o initram.o movedata.o\ - stashram.o fetchram.o swapram.o verifyram.o\ - doublespop.o copystring.o cmpstring.o copyfstring.o cmpfstring.o - -all: $(S_OBJS) - -clean: - @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos/memory/clearram.s b/libsrc/geos/memory/clearram.s deleted file mode 100644 index 22c0448ed..000000000 --- a/libsrc/geos/memory/clearram.s +++ /dev/null @@ -1,25 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 30.10.99, 20.08.2003 - -; void * ClearRam (char *dest, int length); - - .import DoublePop - .export _ClearRam - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_ClearRam: - jsr DoublePop - pha - txa - pha - jsr ClearRam - pla - tax - pla - rts - diff --git a/libsrc/geos/memory/cmpfstring.s b/libsrc/geos/memory/cmpfstring.s deleted file mode 100644 index 423dbd86a..000000000 --- a/libsrc/geos/memory/cmpfstring.s +++ /dev/null @@ -1,22 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 22.12.99, 29.07.2000 - -; char CmpFString (char length, char *dest, char* source); - - .import DoubleSPop, SetPtrXY - .import popa, return0, return1 - .export _CmpFString - - .include "../inc/jumptab.inc" - -_CmpFString: - jsr DoubleSPop - jsr popa - jsr SetPtrXY - jsr CmpFString - bne L1 - jmp return0 -L1: jmp return1 diff --git a/libsrc/geos/memory/cmpstring.s b/libsrc/geos/memory/cmpstring.s deleted file mode 100644 index 1310de284..000000000 --- a/libsrc/geos/memory/cmpstring.s +++ /dev/null @@ -1,20 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 22.12.1999, 2.1.2003 - -; char CmpString (char *dest, char* source); - - .import DoubleSPop - .import return0, return1 - .export _CmpString - - .include "../inc/jumptab.inc" - -_CmpString: - jsr DoubleSPop - jsr CmpString - bne L1 - jmp return0 -L1: jmp return1 diff --git a/libsrc/geos/memory/copyfstring.s b/libsrc/geos/memory/copyfstring.s deleted file mode 100644 index 545553ecc..000000000 --- a/libsrc/geos/memory/copyfstring.s +++ /dev/null @@ -1,19 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 22.12.99, 29.07.2000 - -; void CopyFString (char length, char *dest, char* source); - - .import DoubleSPop, SetPtrXY - .import popa - .export _CopyFString - - .include "../inc/jumptab.inc" - -_CopyFString: - jsr DoubleSPop - jsr popa - jsr SetPtrXY - jmp CopyFString diff --git a/libsrc/geos/memory/copystring.s b/libsrc/geos/memory/copystring.s deleted file mode 100644 index e990607d8..000000000 --- a/libsrc/geos/memory/copystring.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 22.12.99 - -; void CopyString (char *dest, char* source); - - .import DoubleSPop - .export _CopyString - - .include "../inc/jumptab.inc" - -_CopyString: - jsr DoubleSPop - jmp CopyString diff --git a/libsrc/geos/memory/crc.s b/libsrc/geos/memory/crc.s deleted file mode 100644 index a46a32a27..000000000 --- a/libsrc/geos/memory/crc.s +++ /dev/null @@ -1,21 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 22.12.99 - -; int CRC (char *memory, int length); - - .import DoublePop - .export _CRC - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_CRC: - jsr DoublePop - jsr CRC - lda r2L - ldx r2H - rts - \ No newline at end of file diff --git a/libsrc/geos/memory/doublepop.s b/libsrc/geos/memory/doublepop.s deleted file mode 100644 index f426b1648..000000000 --- a/libsrc/geos/memory/doublepop.s +++ /dev/null @@ -1,18 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 31.12.99 - - .import popax - .export DoublePop - - .include "../inc/geossym.inc" - -DoublePop: - sta r0L - stx r0H - jsr popax - sta r1L - stx r1H - rts diff --git a/libsrc/geos/memory/doublespop.s b/libsrc/geos/memory/doublespop.s deleted file mode 100644 index 1202bf655..000000000 --- a/libsrc/geos/memory/doublespop.s +++ /dev/null @@ -1,28 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 22.12.99, 29.07.2000 - - .import popax - .importzp ptr3, ptr4 - .export DoubleSPop - .export SetPtrXY - - .include "../inc/geossym.inc" - -DoubleSPop: - sta ptr4 - stx ptr4+1 - jsr popax - sta ptr3 - stx ptr3+1 -; rts -; -; SetPtrXY can be sometimes executed twice, but even this way it is few cycles -; faster... - -SetPtrXY: - ldx #ptr4 - ldy #ptr3 - rts diff --git a/libsrc/geos/memory/fetchram.s b/libsrc/geos/memory/fetchram.s deleted file mode 100644 index 669284e0b..000000000 --- a/libsrc/geos/memory/fetchram.s +++ /dev/null @@ -1,17 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void FetchRAM (char REUBank, int length, char *from, char *dest); - - .import REURegs - .export _FetchRAM - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_FetchRAM: - jsr REURegs - jmp FetchRAM diff --git a/libsrc/geos/memory/fillram.s b/libsrc/geos/memory/fillram.s deleted file mode 100644 index 013fce797..000000000 --- a/libsrc/geos/memory/fillram.s +++ /dev/null @@ -1,30 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 30.10.99, 15.07.2001 - -; void * FillRam (char *dest, char what, int length); - - .import popa, popax - .export _FillRam - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_FillRam: - sta r0L - stx r0H - jsr popa - sta r2L - jsr popax - sta r1L - stx r1H - pha - txa - pha - jsr FillRam - pla - tax - pla - rts diff --git a/libsrc/geos/memory/initram.s b/libsrc/geos/memory/initram.s deleted file mode 100644 index 8475c9dbd..000000000 --- a/libsrc/geos/memory/initram.s +++ /dev/null @@ -1,17 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void InitRam (struct inittab*); - - .export _InitRam - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_InitRam: - sta r0L - stx r0H - jmp InitRam diff --git a/libsrc/geos/memory/movedata.s b/libsrc/geos/memory/movedata.s deleted file mode 100644 index 5391e95c5..000000000 --- a/libsrc/geos/memory/movedata.s +++ /dev/null @@ -1,27 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 30.10.99, 15.07.2001 - -; void* MoveData (char* dest, char *source, int length); - - .import popax - .export _MoveData - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_MoveData: - sta r2L - stx r2H - jsr popax - sta r0L - stx r0H - jsr popax - sta r1L - stx r1H - jsr MoveData - lda r1L ; return dest ptr to be compatible with memmove and memcpy - ldx r1H - rts diff --git a/libsrc/geos/memory/reuregs.s b/libsrc/geos/memory/reuregs.s deleted file mode 100644 index cfc2c44e0..000000000 --- a/libsrc/geos/memory/reuregs.s +++ /dev/null @@ -1,21 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 31.12.99 - - .import popax, popa - .import DoublePop - .export REURegs - - .include "../inc/geossym.inc" - -REURegs: - jsr DoublePop - jsr popax - sta r2L - stx r2H - jsr popa - sta r3L - rts - diff --git a/libsrc/geos/memory/stashram.s b/libsrc/geos/memory/stashram.s deleted file mode 100644 index 8b1ff6a05..000000000 --- a/libsrc/geos/memory/stashram.s +++ /dev/null @@ -1,17 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void StashRAM (char REUBank, int length, char *dest, char *from); - - .import REURegs - .export _StashRAM - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_StashRAM: - jsr REURegs - jmp StashRAM diff --git a/libsrc/geos/memory/swapram.s b/libsrc/geos/memory/swapram.s deleted file mode 100644 index a5fceab44..000000000 --- a/libsrc/geos/memory/swapram.s +++ /dev/null @@ -1,18 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void SwapRAM (char REUBank, int length, char *reuaddy, char *cpuaddy); -; note that in all REU procs last two pointers are identified like here - - .import REURegs - .export _SwapRAM - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_SwapRAM: - jsr REURegs - jmp SwapRAM diff --git a/libsrc/geos/memory/verifyram.s b/libsrc/geos/memory/verifyram.s deleted file mode 100644 index ad2384f45..000000000 --- a/libsrc/geos/memory/verifyram.s +++ /dev/null @@ -1,20 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char VerifyRAM (char REUBank, int length, char *reuaddy, char *cpuaddy); - - .import REURegs - .export _VerifyRAM - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_VerifyRAM: - jsr REURegs - jsr VerifyRAM - txa - ldx #0 - rts diff --git a/libsrc/geos/menuicon/Makefile b/libsrc/geos/menuicon/Makefile deleted file mode 100644 index cb5d6f475..000000000 --- a/libsrc/geos/menuicon/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# -# Makefile for GEOS lib -# for cc65 -# -# - -%.o: %.s - @$(AS) -o $@ $(AFLAGS) $< - - -S_OBJS = domenu.o dopreviousmenu.o redomenu.o recovermenu.o recoverallmenus.o\ - gotofirstmenu.o doicons.o - -all: $(S_OBJS) - -clean: - @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos/menuicon/doicons.s b/libsrc/geos/menuicon/doicons.s deleted file mode 100644 index 9c5d4305e..000000000 --- a/libsrc/geos/menuicon/doicons.s +++ /dev/null @@ -1,17 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void DoIcons (struct icontab *myicons); - - .export _DoIcons - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_DoIcons: - sta r0L - stx r0H - jmp DoIcons \ No newline at end of file diff --git a/libsrc/geos/menuicon/domenu.s b/libsrc/geos/menuicon/domenu.s deleted file mode 100644 index 22408e76c..000000000 --- a/libsrc/geos/menuicon/domenu.s +++ /dev/null @@ -1,18 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void DoMenu (struct menu *mymenu); - - .export _DoMenu - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_DoMenu: - sta r0L - stx r0H - lda #0 - jmp DoMenu \ No newline at end of file diff --git a/libsrc/geos/menuicon/dopreviousmenu.s b/libsrc/geos/menuicon/dopreviousmenu.s deleted file mode 100644 index eeda979ef..000000000 --- a/libsrc/geos/menuicon/dopreviousmenu.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void DoPreviousMenu (void); - - .export _DoPreviousMenu - - .include "../inc/jumptab.inc" - -_DoPreviousMenu = DoPreviousMenu \ No newline at end of file diff --git a/libsrc/geos/menuicon/gotofirstmenu.s b/libsrc/geos/menuicon/gotofirstmenu.s deleted file mode 100644 index 5ce17de92..000000000 --- a/libsrc/geos/menuicon/gotofirstmenu.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void GotoFirstMenu (void); - - .export _GotoFirstMenu - - .include "../inc/jumptab.inc" - -_GotoFirstMenu = GotoFirstMenu \ No newline at end of file diff --git a/libsrc/geos/menuicon/recoverallmenus.s b/libsrc/geos/menuicon/recoverallmenus.s deleted file mode 100644 index 1ae81a582..000000000 --- a/libsrc/geos/menuicon/recoverallmenus.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void RecoverAllMenus (void); - - .export _RecoverAllMenus - - .include "../inc/jumptab.inc" - -_RecoverAllMenus = RecoverAllMenus \ No newline at end of file diff --git a/libsrc/geos/menuicon/recovermenu.s b/libsrc/geos/menuicon/recovermenu.s deleted file mode 100644 index 02975dccd..000000000 --- a/libsrc/geos/menuicon/recovermenu.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void RecoverMenu (void); - - .export _RecoverMenu - - .include "../inc/jumptab.inc" - -_RecoverMenu = RecoverMenu \ No newline at end of file diff --git a/libsrc/geos/menuicon/redomenu.s b/libsrc/geos/menuicon/redomenu.s deleted file mode 100644 index 63c1a6d61..000000000 --- a/libsrc/geos/menuicon/redomenu.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void ReDoMenu (void); - - .export _ReDoMenu - - .include "../inc/jumptab.inc" - -_ReDoMenu = ReDoMenu \ No newline at end of file diff --git a/libsrc/geos/mousesprite/Makefile b/libsrc/geos/mousesprite/Makefile deleted file mode 100644 index 23cfbb3bf..000000000 --- a/libsrc/geos/mousesprite/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# Makefile for GEOS lib -# for cc65 -# -# - -%.o: %.s - @$(AS) -o $@ $(AFLAGS) $< - - -S_OBJS = startmousemode.o clearmousemode.o mouseup.o mouseoff.o\ - drawsprite.o possprite.o enablsprite.o disablsprite.o\ - ismseinregion.o inittextprompt.o promptoff.o prompton.o\ - getnextchar.o\ - mouse.o - -all: $(S_OBJS) - -clean: - @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos/mousesprite/clearmousemode.s b/libsrc/geos/mousesprite/clearmousemode.s deleted file mode 100644 index 2b6c2a828..000000000 --- a/libsrc/geos/mousesprite/clearmousemode.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void ClearMouseMode (void); - - .export _ClearMouseMode - - .include "../inc/jumptab.inc" - -_ClearMouseMode = ClearMouseMode \ No newline at end of file diff --git a/libsrc/geos/mousesprite/disablsprite.s b/libsrc/geos/mousesprite/disablsprite.s deleted file mode 100644 index 97d1cdc39..000000000 --- a/libsrc/geos/mousesprite/disablsprite.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void DisablSprite (char spritenum); - - .export _DisablSprite - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_DisablSprite: - sta r3L - jmp DisablSprite \ No newline at end of file diff --git a/libsrc/geos/mousesprite/drawsprite.s b/libsrc/geos/mousesprite/drawsprite.s deleted file mode 100644 index 0bab1333c..000000000 --- a/libsrc/geos/mousesprite/drawsprite.s +++ /dev/null @@ -1,23 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; -; void DrawSprite (char spritenum, char *tab63 ); -; - - .import popa - .export _DrawSprite - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_DrawSprite: - - sta r4L - stx r4H - jsr popa - sta r3L - jmp DrawSprite \ No newline at end of file diff --git a/libsrc/geos/mousesprite/enablsprite.s b/libsrc/geos/mousesprite/enablsprite.s deleted file mode 100644 index ffe3435ae..000000000 --- a/libsrc/geos/mousesprite/enablsprite.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void EnablSprite (char spritenum); - - .export _EnablSprite - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_EnablSprite: - sta r3L - jmp EnablSprite \ No newline at end of file diff --git a/libsrc/geos/mousesprite/getnextchar.s b/libsrc/geos/mousesprite/getnextchar.s deleted file mode 100644 index fed9f8b08..000000000 --- a/libsrc/geos/mousesprite/getnextchar.s +++ /dev/null @@ -1,18 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char GetNextChar (void); -; note that if it returns 0 (FALSE) then no characters are available - - .export _GetNextChar - - .include "../inc/jumptab.inc" - -_GetNextChar: - jsr GetNextChar - ldx #0 - tay ; preserve Z flag - rts diff --git a/libsrc/geos/mousesprite/inittextprompt.s b/libsrc/geos/mousesprite/inittextprompt.s deleted file mode 100644 index d9ee5e1c1..000000000 --- a/libsrc/geos/mousesprite/inittextprompt.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void InitTextPrompt (char height); - - .export _InitTextPrompt - - .include "../inc/jumptab.inc" - -_InitTextPrompt = InitTextPrompt \ No newline at end of file diff --git a/libsrc/geos/mousesprite/ismseinregion.s b/libsrc/geos/mousesprite/ismseinregion.s deleted file mode 100644 index c30fc69dd..000000000 --- a/libsrc/geos/mousesprite/ismseinregion.s +++ /dev/null @@ -1,19 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 21.12.1999, 2.1.2003 - -; char IsMseInRegion (struct window *mywindow); - - .import _InitDrawWindow - - .export _IsMseInRegion - - .include "../inc/jumptab.inc" - -_IsMseInRegion: - jsr _InitDrawWindow - jsr IsMseInRegion - ldx #0 - rts diff --git a/libsrc/geos/mousesprite/mouse.s b/libsrc/geos/mousesprite/mouse.s deleted file mode 100644 index 263c9f832..000000000 --- a/libsrc/geos/mousesprite/mouse.s +++ /dev/null @@ -1,187 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 2.7.2001 -; -; Wrapper for GEOS standard input device interface -; - - .export _mouse_init, _mouse_done - .export _mouse_hide, _mouse_show - .export _mouse_box - .export _mouse_pos, _mouse_info - .export _mouse_move, _mouse_buttons - - .import popsreg, addysp1 - .importzp sp, sreg, ptr1 - - .include "../inc/const.inc" - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - - -.code - -; -------------------------------------------------------------------------- -; -; unsigned char __fastcall__ mouse_init (unsigned char type); -; - -_mouse_init: - jsr StartMouseMode - jsr MouseOff - - lda #0 - sta mouseTop - sta mouseLeft - sta mouseLeft+1 - lda #199 - sta mouseBottom - lda graphMode - bpl _mse_screen320 - - lda #<639 ; 80 columns on C128 - ldx #>639 - bne _mse_storex -_mse_screen320: - lda #<319 ; 40 columns on C64/C128 - ldx #>319 -_mse_storex: - sta mouseRight - stx mouseRight+1 -_mse_initend: - lda #0 - tax -; -------------------------------------------------------------------------- -; -; void mouse_done (void); -; -_mouse_done: - rts - -; -------------------------------------------------------------------------- -; -; void mouse_hide (void); -; - -_mouse_hide = MouseOff - -; -------------------------------------------------------------------------- -; -; void mouse_show (void); -; - -_mouse_show = MouseUp - -; -------------------------------------------------------------------------- -; -; void __fastcall__ mouse_box (int minx, int miny, int maxx, int maxy); -; - -_mouse_box: - ldy #0 ; Stack offset - - sta mouseBottom - - lda (sp),y - sta mouseRight - iny - lda (sp),y - sta mouseRight+1 ; maxx - - iny - lda (sp),y - sta mouseTop - iny ; Skip high byte - - iny - lda (sp),y - sta mouseLeft - iny - lda (sp),y - sta mouseLeft+1 ; minx - - jmp addysp1 ; Drop params, return - -; -------------------------------------------------------------------------- -; -; void __fastcall__ mouse_pos (struct mouse_pos* pos); -; /* Return the current mouse position */ -; - -_mouse_pos: - sta ptr1 - stx ptr1+1 ; Remember the argument pointer - - ldy #0 ; Structure offset - - php - sei ; Disable interrupts - - lda mouseXPos ; Transfer the position - sta (ptr1),y - lda mouseXPos+1 - iny - sta (ptr1),y - lda mouseYPos - iny - sta (ptr1),y - lda #$00 - iny - sta (ptr1),y - - plp ; Reenable interrupts - rts ; Done - -; -------------------------------------------------------------------------- -; -; void __fastcall__ mouse_info (struct mouse_info* info); -; /* Return the state of the mouse buttons and the position of the mouse */ -; - -_mouse_info: - -; We're cheating here to keep the code smaller: The first fields of the -; mouse_info struct are identical to the mouse_pos struct, so we will just -; call _mouse_pos to initialize the struct pointer and fill the position -; fields. - - jsr _mouse_pos - -; Fill in the button state - - jsr _mouse_buttons ; Will not touch ptr1 - iny - sta (ptr1),y - - rts - -; -------------------------------------------------------------------------- -; -; void __fastcall__ mouse_move (int x, int y); -; - -_mouse_move: - jsr popsreg ; Get X - php - sei ; Disable interrupts - sta mouseYPos - lda sreg - ldx sreg+1 - sta mouseXPos - stx mouseXPos+1 - plp ; Enable interrupts - rts - -; -------------------------------------------------------------------------- -; -; unsigned char mouse_buttons (void); -; - -_mouse_buttons: - ldx #0 - lda pressFlag - and #SET_MOUSE - lsr - rts - diff --git a/libsrc/geos/mousesprite/mouseoff.s b/libsrc/geos/mousesprite/mouseoff.s deleted file mode 100644 index 677eb43ca..000000000 --- a/libsrc/geos/mousesprite/mouseoff.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void MouseOff (void); - - .export _MouseOff - - .include "../inc/jumptab.inc" - -_MouseOff = MouseOff \ No newline at end of file diff --git a/libsrc/geos/mousesprite/mouseup.s b/libsrc/geos/mousesprite/mouseup.s deleted file mode 100644 index 318f3f6f7..000000000 --- a/libsrc/geos/mousesprite/mouseup.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void MouseUp (void); - - .export _MouseUp - - .include "../inc/jumptab.inc" - -_MouseUp = MouseUp \ No newline at end of file diff --git a/libsrc/geos/mousesprite/possprite.s b/libsrc/geos/mousesprite/possprite.s deleted file mode 100644 index 9f440cdd6..000000000 --- a/libsrc/geos/mousesprite/possprite.s +++ /dev/null @@ -1,32 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; -; void PosSprite (char spritenum, struct pixel *position ); -; - - .importzp ptr4 - .import popa - .export _PosSprite - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_PosSprite: - sta ptr4 - stx ptr4+1 - ldy #0 - lda (ptr4),y - sta r4L - iny - lda (ptr4),y - sta r4H - iny - lda (ptr4),y - sta r5L - jsr popa - sta r3L - jmp PosSprite \ No newline at end of file diff --git a/libsrc/geos/mousesprite/promptoff.s b/libsrc/geos/mousesprite/promptoff.s deleted file mode 100644 index 4551fdb47..000000000 --- a/libsrc/geos/mousesprite/promptoff.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void PromptOff (void); - - .export _PromptOff - - .include "../inc/jumptab.inc" - -_PromptOff = PromptOff \ No newline at end of file diff --git a/libsrc/geos/mousesprite/prompton.s b/libsrc/geos/mousesprite/prompton.s deleted file mode 100644 index 2af5f2ee0..000000000 --- a/libsrc/geos/mousesprite/prompton.s +++ /dev/null @@ -1,24 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void PromptOn (struct pixel *); - - .importzp ptr4 - .export _PromptOn - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_PromptOn: - sta ptr4 - stx ptr4+1 - ldy #0 -promptLp: lda (ptr4),y - sta stringX,y - iny - cpy #3 - bne promptLp - jmp PromptOn \ No newline at end of file diff --git a/libsrc/geos/mousesprite/startmousemode.s b/libsrc/geos/mousesprite/startmousemode.s deleted file mode 100644 index 321508501..000000000 --- a/libsrc/geos/mousesprite/startmousemode.s +++ /dev/null @@ -1,15 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void StartMouseMode (void); - - .export _StartMouseMode - - .include "../inc/jumptab.inc" - -_StartMouseMode: - clc - jmp StartMouseMode \ No newline at end of file diff --git a/libsrc/geos/process/Makefile b/libsrc/geos/process/Makefile deleted file mode 100644 index e5e7a5b80..000000000 --- a/libsrc/geos/process/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# -# Makefile for GEOS lib -# for cc65 -# -# - -%.o: %.s - @$(AS) -o $@ $(AFLAGS) $< - - -S_OBJS = processinitrestartenable.o processblock.o processfreeze.o processsleep.o - -all: $(S_OBJS) - -clean: - @$(RM) *.~ $(S_OBJS) core diff --git a/libsrc/geos/process/processblock.s b/libsrc/geos/process/processblock.s deleted file mode 100644 index 87720e5c7..000000000 --- a/libsrc/geos/process/processblock.s +++ /dev/null @@ -1,25 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 27.10.99 - -; -; void InitProcesses (char number, struct process* proctab); -; (rest) -; void BlockProcess (char number); -; void UnBlockProcess (char number); -; - - .export _BlockProcess - .export _UnBlockProcess - - .include "../inc/jumptab.inc" - -_BlockProcess: - tax - jmp BlockProcess - -_UnBlockProcess: - tax - jmp UnBlockProcess diff --git a/libsrc/geos/process/processfreeze.s b/libsrc/geos/process/processfreeze.s deleted file mode 100644 index 0c2b3117c..000000000 --- a/libsrc/geos/process/processfreeze.s +++ /dev/null @@ -1,23 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 27.10.99 - -; -; void FreezeProcess (char number); -; void UnFreezeProcess (char number); -; - - .export _FreezeProcess - .export _UnFreezeProcess - - .include "../inc/jumptab.inc" - -_FreezeProcess: - tax - jmp FreezeProcess - -_UnFreezeProcess: - tax - jmp UnFreezeProcess diff --git a/libsrc/geos/process/processinitrestartenable.s b/libsrc/geos/process/processinitrestartenable.s deleted file mode 100644 index a9e4a6ccc..000000000 --- a/libsrc/geos/process/processinitrestartenable.s +++ /dev/null @@ -1,34 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 27.10.99 - -; -; void InitProcesses (char number, struct process* proctab); -; void RestartProcess (char number); -; void EnableProcess (char number); -; - - .import popa - .export _InitProcesses - .export _RestartProcess - .export _EnableProcess - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_InitProcesses: - - sta r0L - stx r0H - jsr popa - jmp InitProcesses - -_RestartProcess: - tax - jmp RestartProcess - -_EnableProcess: - tax - jmp EnableProcess diff --git a/libsrc/geos/process/processsleep.s b/libsrc/geos/process/processsleep.s deleted file mode 100644 index 1cd41441b..000000000 --- a/libsrc/geos/process/processsleep.s +++ /dev/null @@ -1,37 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 30.10.99, 15.8.2003 - -; -; void Sleep (int jiffies); -; - - .export _Sleep - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - .importzp ptr1 - .importzp tmp1 - -_SleepExit: - jsr Sleep ; call Sleep - ldx tmp1 - txs ; restore stack pointer - jmp (ptr1) ; when timeouts control will reach here - -_Sleep: - sta r0L ; store data - stx r0H - pla - sta ptr1 - pla - sta ptr1+1 ; preserve return address - inc ptr1 - bne @L0 - inc ptr1+1 ; fix return address -@L0: tsx - stx tmp1 ; preserve stack pointer - jsr _SleepExit ; call Sleep - jmp MainLoop ; immediate return here - go to idle loop diff --git a/libsrc/geos/runtime/Makefile b/libsrc/geos/runtime/Makefile deleted file mode 100644 index 143e044a0..000000000 --- a/libsrc/geos/runtime/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# -# Makefile for GEOS lib -# for cc65 -# - -%.o: %.c - @$(CC) $(CFLAGS) $< - @$(AS) -g -o $@ $(AFLAGS) $(*).s - -%.o: %.s - @$(AS) -o $@ $(AFLAGS) $< - -C_OBJS = -S_OBJS = call.o - -all: $(C_OBJS) $(S_OBJS) - -clean: - @$(RM) core *.~ $(S_OBJS) $(C_OBJS:.o=.s) $(C_OBJS) diff --git a/libsrc/geos/runtime/call.s b/libsrc/geos/runtime/call.s deleted file mode 100644 index 448a87fdf..000000000 --- a/libsrc/geos/runtime/call.s +++ /dev/null @@ -1,12 +0,0 @@ -; -; Maciej 'YTM/Elysium' Witkowiak -; 23.12.2002 -; -; CC65 runtime: call function via pointer in ax -; - - .include "../inc/jumptab.inc" - - .export callax - -callax = CallRoutine diff --git a/libsrc/geos/system/Makefile b/libsrc/geos/system/Makefile deleted file mode 100644 index 789b70ac6..000000000 --- a/libsrc/geos/system/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -# -# Makefile for GEOS lib -# for cc65 -# -# - -%.o: %.s - @$(AS) -o $@ $(AFLAGS) $< - -%.o: %.c - @$(CC) $(CFLAGS) $< - @$(AS) -g -o $@ $(AFLAGS) $(*).s - -S_OBJS = ctype.o \ - callroutine.o \ - enterdesktop.o \ - firstinit.o \ - get_ostype.o \ - getrandom.o \ - getserialnumber.o \ - initdoneio.o \ - mainloop.o \ - panic.o \ - tobasic.o \ - setdevice.o \ - sysuname.o - -C_OBJS = systime.o - -all: $(C_OBJS) $(S_OBJS) - -clean: - @$(RM) *.~ $(C_OBJS:.o=.s) $(C_OBJS) $(S_OBJS) core diff --git a/libsrc/geos/system/callroutine.s b/libsrc/geos/system/callroutine.s deleted file mode 100644 index 97f0c0d9c..000000000 --- a/libsrc/geos/system/callroutine.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void CallRoutine (myRoutine); - - .export _CallRoutine - - .include "../inc/jumptab.inc" - -_CallRoutine = CallRoutine \ No newline at end of file diff --git a/libsrc/geos/system/ctype.s b/libsrc/geos/system/ctype.s deleted file mode 100644 index 5fd24189b..000000000 --- a/libsrc/geos/system/ctype.s +++ /dev/null @@ -1,313 +0,0 @@ -; -; Ullrich von Bassewitz, 02.06.1998 -; Maciej Witkowiak, 06.04.2002 -; -; Character specification table. -; - -; The tables are readonly, put them into the rodata segment - -.rodata - -; Value that must be added to a lower case char to make it an upper case -; char (example: for ASCII, this must be $E0). - - - .export __cdiff - -__cdiff: - .byte $e0 - - -; The following 256 byte wide table specifies attributes for the isxxx type -; of functions. Doing it by a table means some overhead in space, but it -; has major advantages: -; -; * It is fast. If it were'nt for the slow parameter passing of cc65, one -; could even define macros for the isxxx functions (this is usually -; done on other platforms). -; -; * It is highly portable. The only unportable part is the table itself, -; all real code goes into the common library. -; -; * We save some code in the isxxx functions. -; -; -; Bit assignments: -; -; 0 - Lower case char -; 1 - Upper case char -; 2 - Numeric digit -; 3 - Hex digit (both, lower and upper) -; 4 - Control character -; 5 - The space character itself -; 6 - Other whitespace (that is: '\f', '\n', '\r', '\t' and '\v') -; 7 - Space or tab character - - -; The table is taken from Craig S. Bruce technical docs for the ACE os - - .export __ctype - -__ctype: - .byte $10 ; 0/00 ___rvs_@___ - .byte $10 ; 1/01 ___rvs_a___ - .byte $10 ; 2/02 ___rvs_b___ - .byte $10 ; 3/03 ___rvs_c___ - .byte $10 ; 4/04 ___rvs_d___ - .byte $10 ; 5/05 ___rvs_e___ - .byte $10 ; 6/06 ___rvs_f___ - .byte $10 ; 7/07 _BEL/rvs_g_ - .byte $10 ; 8/08 ___rvs_h___ - .byte $D0 ; 9/09 _TAB/rvs_i_ - .byte $50 ; 10/0a _BOL/rvs_j_ - .byte $10 ; 11/0b ___rvs_k___ - .byte $10 ; 12/0c ___rvs_l___ - .byte $50 ; 13/0d _CR_/rvs_m_ - .byte $10 ; 14/0e ___rvs_n___ - .byte $10 ; 15/0f ___rvs_o___ - .byte $10 ; 16/10 ___rvs_p___ - .byte $50 ; 17/11 _VT_/rvs_q_ - .byte $10 ; 18/12 ___rvs_r___ - .byte $10 ; 19/13 ___rvs_s___ - .byte $50 ; 20/14 _BS_/rvs_t_ - .byte $10 ; 21/15 ___rvs_u___ - .byte $10 ; 22/16 ___rvs_v___ - .byte $10 ; 23/17 ___rvs_w___ - .byte $10 ; 24/18 ___rvs_x___ - .byte $10 ; 25/19 ___rvs_y___ - .byte $10 ; 26/1a ___rvs_z___ - .byte $10 ; 27/1b ___rvs_[___ - .byte $10 ; 28/1c ___rvs_\___ - .byte $10 ; 29/1d ___rvs_]___ - .byte $10 ; 30/1e ___rvs_^___ - .byte $10 ; 31/1f _rvs_under_ - .byte $A0 ; 32/20 ___SPACE___ - .byte $00 ; 33/21 _____!_____ - .byte $00 ; 34/22 _____"_____ - .byte $00 ; 35/23 _____#_____ - .byte $00 ; 36/24 _____$_____ - .byte $00 ; 37/25 _____%_____ - .byte $00 ; 38/26 _____&_____ - .byte $00 ; 39/27 _____'_____ - .byte $00 ; 40/28 _____(_____ - .byte $00 ; 41/29 _____)_____ - .byte $00 ; 42/2a _____*_____ - .byte $00 ; 43/2b _____+_____ - .byte $00 ; 44/2c _____,_____ - .byte $00 ; 45/2d _____-_____ - .byte $00 ; 46/2e _____._____ - .byte $00 ; 47/2f _____/_____ - .byte $0C ; 48/30 _____0_____ - .byte $0C ; 49/31 _____1_____ - .byte $0C ; 50/32 _____2_____ - .byte $0C ; 51/33 _____3_____ - .byte $0C ; 52/34 _____4_____ - .byte $0C ; 53/35 _____5_____ - .byte $0C ; 54/36 _____6_____ - .byte $0C ; 55/37 _____7_____ - .byte $0C ; 56/38 _____8_____ - .byte $0C ; 57/39 _____9_____ - .byte $00 ; 58/3a _____:_____ - .byte $00 ; 59/3b _____;_____ - .byte $00 ; 60/3c _____<_____ - .byte $00 ; 61/3d _____=_____ - .byte $00 ; 62/3e _____>_____ - .byte $00 ; 63/3f _____?_____ - - .byte $00 ; 64/40 _____@_____ - .byte $09 ; 65/41 _____a_____ - .byte $09 ; 66/42 _____b_____ - .byte $09 ; 67/43 _____c_____ - .byte $09 ; 68/44 _____d_____ - .byte $09 ; 69/45 _____e_____ - .byte $09 ; 70/46 _____f_____ - .byte $01 ; 71/47 _____g_____ - .byte $01 ; 72/48 _____h_____ - .byte $01 ; 73/49 _____i_____ - .byte $01 ; 74/4a _____j_____ - .byte $01 ; 75/4b _____k_____ - .byte $01 ; 76/4c _____l_____ - .byte $01 ; 77/4d _____m_____ - .byte $01 ; 78/4e _____n_____ - .byte $01 ; 79/4f _____o_____ - .byte $01 ; 80/50 _____p_____ - .byte $01 ; 81/51 _____q_____ - .byte $01 ; 82/52 _____r_____ - .byte $01 ; 83/53 _____s_____ - .byte $01 ; 84/54 _____t_____ - .byte $01 ; 85/55 _____u_____ - .byte $01 ; 86/56 _____v_____ - .byte $01 ; 87/57 _____w_____ - .byte $01 ; 88/58 _____x_____ - .byte $01 ; 89/59 _____y_____ - .byte $01 ; 90/5a _____z_____ - .byte $00 ; 91/5b _____[_____ - .byte $00 ; 92/5c _____\_____ - .byte $00 ; 93/5d _____]_____ - .byte $00 ; 94/5e _____^_____ - .byte $00 ; 95/5f _UNDERLINE_ - - .byte $00 ; 96/60 _A`_grave__ - .byte $0a ; 97/61 _A'_acute__ - .byte $0a ; 98/62 _A^_circum_ - .byte $0a ; 99/63 _A~_tilde__ - .byte $0a ; 100/64 _A"_dieres_ - .byte $0a ; 101/65 _A__ring___ - .byte $0a ; 102/66 _AE________ - .byte $02 ; 103/67 _C,cedilla_ - .byte $02 ; 104/68 _E`_grave__ - .byte $02 ; 105/69 _E'_acute__ - .byte $02 ; 106/6a _E^_circum_ - .byte $02 ; 107/6b _E"_dieres_ - .byte $02 ; 108/6c _I`_grave__ - .byte $02 ; 109/6d _I'_acute__ - .byte $02 ; 110/6e _I^_circum_ - .byte $02 ; 111/6f _I"_dieres_ - .byte $02 ; 112/70 _D-_Eth_lr_ - .byte $02 ; 113/71 _N~_tilde__ - .byte $02 ; 114/72 _O`_grave__ - .byte $02 ; 115/73 _O'_acute__ - .byte $02 ; 116/74 _O^_circum_ - .byte $02 ; 117/75 _O~_tilde__ - .byte $02 ; 118/76 _O"_dieres_ - .byte $02 ; 119/77 __multiply_ - .byte $02 ; 120/78 _O/_slash__ - .byte $02 ; 121/79 _U`_grave__ - .byte $02 ; 122/7a _U'_acute__ - .byte $00 ; 123/7b _U^_circum_ - .byte $00 ; 124/7c _U"_dieres_ - .byte $00 ; 125/7d _Y'_acute__ - .byte $00 ; 126/7e _cap_thorn_ - .byte $00 ; 127/7f _Es-sed_B__ - - .byte $00 ; 128/80 __bullet___ - .byte $00 ; 129/81 __v_line___ - .byte $00 ; 130/82 __h_line___ - .byte $00 ; 131/83 ___cross___ - .byte $00 ; 132/84 _tl_corner_ - .byte $00 ; 133/85 _tr_corner_ - .byte $00 ; 134/86 _bl_corner_ - .byte $00 ; 135/87 _br_corner_ - .byte $00 ; 136/88 ___l_tee___ - .byte $00 ; 137/89 ___r_tee___ - .byte $00 ; 138/8a ___t_tee___ - .byte $00 ; 139/8b ___b_tee___ - .byte $00 ; 140/8c ___heart___ - .byte $00 ; 141/8d __diamond__ - .byte $00 ; 142/8e ___club____ - .byte $00 ; 143/8f ___spade___ - .byte $00 ; 144/90 _s_circle__ - .byte $00 ; 145/91 __circle___ - .byte $00 ; 146/92 ___pound___ - .byte $00 ; 147/93 _CLS/check_ - .byte $00 ; 148/94 ____pi_____ - .byte $00 ; 149/95 ____+/-____ - .byte $00 ; 150/96 __divide___ - .byte $00 ; 151/97 __degree___ - .byte $00 ; 152/98 _c_checker_ - .byte $00 ; 153/99 _f_checker_ - .byte $00 ; 154/9a _solid_sq__ - .byte $00 ; 155/9b __cr_char__ - .byte $00 ; 156/9c _up_arrow__ - .byte $00 ; 157/9d _down_arro_ - .byte $00 ; 158/9e _left_arro_ - .byte $00 ; 159/9f _right_arr_ - .byte $00 ; 160/a0 _req space_ - .byte $00 ; 161/a1 _!_invertd_ - .byte $00 ; 162/a2 ___cent____ - .byte $00 ; 163/a3 ___pound___ - .byte $00 ; 164/a4 __currency_ - .byte $00 ; 165/a5 ____yen____ - .byte $00 ; 166/a6 _|_broken__ - .byte $00 ; 167/a7 __section__ - .byte $00 ; 168/a8 __umulaut__ - .byte $00 ; 169/a9 _copyright_ - .byte $00 ; 170/aa __fem_ord__ - .byte $00 ; 171/ab _l_ang_quo_ - .byte $00 ; 172/ac ____not____ - .byte $00 ; 173/ad _syl_hyphn_ - .byte $00 ; 174/ae _registerd_ - .byte $00 ; 175/af _overline__ - .byte $00 ; 176/b0 __degrees__ - .byte $00 ; 177/b1 ____+/-____ - .byte $00 ; 178/b2 _2_supersc_ - .byte $00 ; 179/b3 _3_supersc_ - .byte $00 ; 180/b4 ___acute___ - .byte $00 ; 181/b5 ____mu_____ - .byte $00 ; 182/b6 _paragraph_ - .byte $00 ; 183/b7 __mid_dot__ - .byte $00 ; 184/b8 __cedilla__ - .byte $00 ; 185/b9 _1_supersc_ - .byte $00 ; 186/ba __mas_ord__ - .byte $00 ; 187/bb _r_ang_quo_ - .byte $00 ; 188/bc ____1/4____ - .byte $00 ; 189/bd ____1/2____ - .byte $00 ; 190/be ____3/4____ - .byte $00 ; 191/bf _?_invertd_ - - .byte $00 ; 192/c0 _____`_____ - .byte $00 ; 193/c1 _____A_____ - .byte $00 ; 194/c2 _____B_____ - .byte $00 ; 195/c3 _____C_____ - .byte $00 ; 196/c4 _____D_____ - .byte $00 ; 197/c5 _____E_____ - .byte $00 ; 198/c6 _____F_____ - .byte $00 ; 199/c7 _____G_____ - .byte $00 ; 200/c8 _____H_____ - .byte $00 ; 201/c9 _____I_____ - .byte $00 ; 202/ca _____J_____ - .byte $00 ; 203/cb _____K_____ - .byte $00 ; 204/cc _____L_____ - .byte $00 ; 205/cd _____M_____ - .byte $00 ; 206/ce _____N_____ - .byte $00 ; 207/cf _____O_____ - .byte $00 ; 208/d0 _____P_____ - .byte $00 ; 209/d1 _____Q_____ - .byte $00 ; 210/d2 _____R_____ - .byte $00 ; 211/d3 _____S_____ - .byte $00 ; 212/d4 _____T_____ - .byte $00 ; 213/d5 _____U_____ - .byte $00 ; 214/d6 _____V_____ - .byte $00 ; 215/d7 _____W_____ - .byte $00 ; 216/d8 _____X_____ - .byte $00 ; 217/d9 _____Y_____ - .byte $00 ; 218/da _____Z_____ - .byte $00 ; 219/db _____{_____ - .byte $00 ; 220/dc _____|_____ - .byte $00 ; 221/dd _____}_____ - .byte $00 ; 222/de _____~_____ - .byte $00 ; 223/df ___HOUSE___ - .byte $00 ; 224/e0 _a`_grave__ - .byte $00 ; 225/e1 _a'_acute__ - .byte $00 ; 226/e2 _a^_circum_ - .byte $00 ; 227/e3 _a~_tilde__ - .byte $00 ; 228/e4 _a"_dieres_ - .byte $00 ; 229/e5 _a__ring___ - .byte $00 ; 230/e6 _ae________ - .byte $00 ; 231/e7 _c,cedilla_ - .byte $00 ; 232/e8 _e`_grave__ - .byte $00 ; 233/e9 _e'_acute__ - .byte $00 ; 234/ea _e^_circum_ - .byte $00 ; 235/eb _e"_dieres_ - .byte $00 ; 236/ec _i`_grave__ - .byte $00 ; 237/ed _i'_acute__ - .byte $00 ; 238/ee _i^_circum_ - .byte $00 ; 239/ef _i"_dieres_ - .byte $00 ; 240/f0 _o^x_Eth_s_ - .byte $00 ; 241/f1 _n~_tilda__ - .byte $00 ; 242/f2 _o`_grave__ - .byte $00 ; 243/f3 _o'_acute__ - .byte $00 ; 244/f4 _o^_circum_ - .byte $00 ; 245/f5 _o~_tilde__ - .byte $00 ; 246/f6 _o"_dieres_ - .byte $00 ; 247/f7 __divide___ - .byte $00 ; 248/f8 _o/_slash__ - .byte $00 ; 249/f9 _u`_grave__ - .byte $00 ; 250/fa _u'_acute__ - .byte $00 ; 251/fb _u^_circum_ - .byte $00 ; 252/fc _u"_dieres_ - .byte $00 ; 253/fd _y'_acute__ - .byte $00 ; 254/fe _sm_thorn__ - .byte $00 ; 255/ff _y"_dieres_ - diff --git a/libsrc/geos/system/enterdesktop.s b/libsrc/geos/system/enterdesktop.s deleted file mode 100644 index 00ca175e8..000000000 --- a/libsrc/geos/system/enterdesktop.s +++ /dev/null @@ -1,15 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 30.10.99, 17.04.2003 - -; void EnterDeskTop (void); - - .import _exit - .export _EnterDeskTop - -_EnterDeskTop: - lda #0 - tax - jmp _exit diff --git a/libsrc/geos/system/firstinit.s b/libsrc/geos/system/firstinit.s deleted file mode 100644 index 608aa14d4..000000000 --- a/libsrc/geos/system/firstinit.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void FirstInit (void); - - .export _FirstInit - - .include "../inc/jumptab.inc" - -_FirstInit = FirstInit \ No newline at end of file diff --git a/libsrc/geos/system/get_ostype.s b/libsrc/geos/system/get_ostype.s deleted file mode 100644 index 342b16c6b..000000000 --- a/libsrc/geos/system/get_ostype.s +++ /dev/null @@ -1,93 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 10.09.2001 -; -; Plus4 and GEOS 1.1 detection by -; Marco van den Heuvel, 2010-02-02 -; - -; unsigned char get_ostype (void); -; unsigned char get_tv (void); - - .export _get_ostype - .export _get_tv - .importzp tmp1 - - .include "../inc/const.inc" - .include "../inc/geossym.inc" - .include "../inc/geossym2.inc" - -_get_ostype: - ldx #0 - lda version - cmp #$a9 - beq geos11 - and #%11110000 - cmp #$10 - beq geos10 - lda c128Flag ; we're on at least 2.0 - cmp #$18 - beq geos_on_plus4 - ora version - rts -geos10: - lda version - rts -geos11: - lda #$11 - rts -geos_on_plus4: - lda #$04 - rts - -_get_tv: - jsr _get_ostype - cmp #$04 - beq plus4_get_tv - bpl only40 ; C64 with 40 columns only - lda graphMode - bpl only40 ; C128 but currently on 40 columns - ldx #1 ; COLUMNS80 - bne tvmode -only40: ldx #0 ; COLUMNS40 -tvmode: ; PAL/NTSC check here, result in A - php - sei ; disable interrupts - lda CPU_DATA ; this is for C64 - pha - lda #IO_IN ; enable access to I/O - sta CPU_DATA - bit rasreg - bpl tvmode ; wait for rasterline 127=256!) -modelp: - cmp rasreg ; wait for rasterline = 24 (or 280 on PAL) - bne modelp - lda grcntrl1 ; 24 or 280 ? - bpl ntsc - lda #0 ; PAL - beq modeend -ntsc: - lda #$80 ; NTSC - -modeend: - stx tmp1 - ora tmp1 - sta tmp1 - ldx #0 - pla - sta CPU_DATA ; restore memory config - plp ; restore interrupt state - lda tmp1 - rts -plus4_get_tv: - ldx #1 ; Assume PAL - bit $FF07 ; Test bit 6 - bvc plus4pal - dex ; NTSC -plus4pal: - txa - ldx #0 - rts diff --git a/libsrc/geos/system/getrandom.s b/libsrc/geos/system/getrandom.s deleted file mode 100644 index 9bb70f4d3..000000000 --- a/libsrc/geos/system/getrandom.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 30.10.1999, 2.1.2003 - -; char GetRandom (void); - - .export _GetRandom - - .include "../inc/jumptab.inc" - -_GetRandom: - jsr GetRandom - ldx #0 - rts diff --git a/libsrc/geos/system/getserialnumber.s b/libsrc/geos/system/getserialnumber.s deleted file mode 100644 index 2a748875e..000000000 --- a/libsrc/geos/system/getserialnumber.s +++ /dev/null @@ -1,19 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; int GetSerialNumber (void); - - .export _GetSerialNumber - - .include "../inc/jumptab.inc" - .include "../inc/geossym.inc" - -_GetSerialNumber: - - jsr GetSerialNumber - lda r0L - ldx r0H - rts diff --git a/libsrc/geos/system/initdoneio.s b/libsrc/geos/system/initdoneio.s deleted file mode 100644 index c3280c910..000000000 --- a/libsrc/geos/system/initdoneio.s +++ /dev/null @@ -1,16 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void InitForIO (void); -; void DoneWithIO (void); - - .export _InitForIO, _DoneWithIO - - .include "../inc/jumptab.inc" - -_InitForIO = InitForIO - -_DoneWithIO = DoneWithIO \ No newline at end of file diff --git a/libsrc/geos/system/mainloop.s b/libsrc/geos/system/mainloop.s deleted file mode 100644 index 5b0517510..000000000 --- a/libsrc/geos/system/mainloop.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Elysium' Witkowiak -; -; 30.10.1999, 10.01.2003 - -; void MainLoop (void); - - .export _MainLoop - - .include "../inc/jumptab.inc" - -_MainLoop = MainLoop diff --git a/libsrc/geos/system/panic.s b/libsrc/geos/system/panic.s deleted file mode 100644 index a489edd04..000000000 --- a/libsrc/geos/system/panic.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void Panic (void); - - .export _Panic - - .include "../inc/jumptab.inc" - -_Panic = Panic \ No newline at end of file diff --git a/libsrc/geos/system/setdevice.s b/libsrc/geos/system/setdevice.s deleted file mode 100644 index 819a0bef1..000000000 --- a/libsrc/geos/system/setdevice.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 21.12.99 - -; void SetDevice (char newDeviceNumber); - - .export _SetDevice - - .include "../inc/jumptab.inc" - -_SetDevice = SetDevice diff --git a/libsrc/geos/system/systime.c b/libsrc/geos/system/systime.c deleted file mode 100644 index b3d4ab11f..000000000 --- a/libsrc/geos/system/systime.c +++ /dev/null @@ -1,34 +0,0 @@ - -/* - * systime.c - * - * Maciej 'YTM/Elysium' Witkowiak, 22.11.2002 - */ - -#include -#include - -time_t _systime(void) { - -struct tm currentTime; - - currentTime.tm_sec = system_date.s_seconds; - currentTime.tm_min = system_date.s_minutes; - currentTime.tm_hour = system_date.s_hour; - currentTime.tm_mday = system_date.s_day; - currentTime.tm_mon = system_date.s_month; - currentTime.tm_year = system_date.s_year; - if (system_date.s_year < 87) { - currentTime.tm_year+=100; - } - currentTime.tm_isdst = -1; - - return mktime(¤tTime); - -} - -clock_t clock(void) { - - return _systime(); - -} diff --git a/libsrc/geos/system/sysuname.s b/libsrc/geos/system/sysuname.s deleted file mode 100644 index c0cd91410..000000000 --- a/libsrc/geos/system/sysuname.s +++ /dev/null @@ -1,39 +0,0 @@ -; -; Ullrich von Bassewitz, 2003-08-12 -; -; unsigned char __fastcall__ _sysuname (struct utsname* buf); -; - - .export __sysuname, utsdata - - .import utscopy - - __sysuname = utscopy - -;-------------------------------------------------------------------------- -; Data. We define a fixed utsname struct here and just copy it. - -.rodata - -utsdata: - ; sysname - .asciiz "cc65" - - ; nodename - .asciiz "" - - ; release - .byte ((.VERSION >> 8) & $0F) + '0' - .byte '.' - .byte ((.VERSION >> 4) & $0F) + '0' - .byte $00 - - ; version - .byte (.VERSION & $0F) + '0' - .byte $00 - - ; machine - .asciiz "GEOS" - - - diff --git a/libsrc/geos/system/tobasic.s b/libsrc/geos/system/tobasic.s deleted file mode 100644 index bc1d15ed8..000000000 --- a/libsrc/geos/system/tobasic.s +++ /dev/null @@ -1,13 +0,0 @@ - -; -; Maciej 'YTM/Alliance' Witkowiak -; -; 30.10.99 - -; void ToBASIC (void); - - .export _ToBASIC - - .include "../inc/jumptab.inc" - -_ToBASIC = ToBASIC \ No newline at end of file