From 70c9fc7a60b4469a7623a6ccd24c733d5e2a9cd7 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 3 Jul 2021 04:30:27 -0400 Subject: [PATCH 001/206] usage hints when bootstrapping arbitrary file --- dl.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dl.c b/dl.c index c2fed00..656b83f 100644 --- a/dl.c +++ b/dl.c @@ -214,7 +214,14 @@ int bootstrap(char *f) { return(1); } - cat(pre_install_txt_file); + if(access(pre_install_txt_file,F_OK)>=0) { + cat(pre_install_txt_file); + } else { + printf("Prepare the portable. Hints:\n"); + printf("\tRUN \"COM:98N1ENN\"\t(for TANDY, Kyotronic, Olivetti)\n"); + printf("\tRUN \"COM:9N81XN\"\t(for NEC)\n"); + printf("\n"); + } printf("Press [Enter] when ready..."); getchar(); From d1978575bface8fc601c339a9c75dfbf5f367a82 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 5 Jul 2021 14:46:40 -0400 Subject: [PATCH 002/206] prompt text --- dl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dl.c b/dl.c index 656b83f..8d5d891 100644 --- a/dl.c +++ b/dl.c @@ -217,7 +217,7 @@ int bootstrap(char *f) { if(access(pre_install_txt_file,F_OK)>=0) { cat(pre_install_txt_file); } else { - printf("Prepare the portable. Hints:\n"); + printf("Prepare the portable to receive. Hints:\n"); printf("\tRUN \"COM:98N1ENN\"\t(for TANDY, Kyotronic, Olivetti)\n"); printf("\tRUN \"COM:9N81XN\"\t(for NEC)\n"); printf("\n"); From 474ab46b95f642e9b0c4929791f42e680b3155d0 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 12 Jul 2021 04:26:38 -0400 Subject: [PATCH 003/206] version number --- Makefile | 64 +++++++++++++++++++++++++++++++++++++------------------- dl.c | 3 ++- 2 files changed, 45 insertions(+), 22 deletions(-) diff --git a/Makefile b/Makefile index 82aff4a..5d21396 100644 --- a/Makefile +++ b/Makefile @@ -4,32 +4,54 @@ OS ?= $(shell uname) CC ?= gcc CFLAGS += -O2 -Wall PREFIX ?= /usr/local -APP_NAME = dl -APP_LIB_DIR = $(PREFIX)/lib/$(APP_NAME) -APP_DOC_DIR = $(PREFIX)/share/doc/$(APP_NAME) +APP_NAME := dl +APP_LIB_DIR := $(PREFIX)/lib/$(APP_NAME) +APP_DOC_DIR := $(PREFIX)/share/doc/$(APP_NAME) +APP_VERSION := $(shell git describe --long) -DEFAULT_CLIENT_TTY = ttyUSB0 -DEFAULT_CLIENT_MODEL = 100 -DEFAULT_CLIENT_APP = TEENY +DEFAULT_CLIENT_TTY := ttyUSB0 +DEFAULT_CLIENT_MODEL := 100 +DEFAULT_CLIENT_APP := TEENY -TEENY_INSTALLERS = clients/teeny/TEENY.100 clients/teeny/TEENY.200 clients/teeny/TEENY.NEC clients/teeny/TEENY.M10 -TEENY_DOCS = clients/teeny/teenydoc.txt clients/teeny/hownec.do clients/teeny/TNYO10.TXT -DSKMGR_INSTALLERS = clients/dskmgr/DSKMGR.100 clients/dskmgr/DSKMGR.200 clients/dskmgr/DSKMGR.K85 clients/dskmgr/DSKMGR.M10 -DSKMGR_DOCS = clients/dskmgr/DSKMGR.DOC -TS-DOS_INSTALLERS = clients/ts-dos/TS-DOS.100 clients/ts-dos/TS-DOS.200 clients/ts-dos/TS-DOS.NEC -TS-DOS_DOCS = clients/ts-dos/tsdos.pdf -TINY_INSTALLERS = clients/tiny/TINY.100 -TINY_DOCS = clients/tiny/tindoc.do -#POWR-D_INSTALLERS = clients/power-dos/POWR-D.100 -#POWR-D_DOCS = clients/power-dos/powr-d.txt +TEENY_INSTALLERS := \ + clients/teeny/TEENY.100 \ + clients/teeny/TEENY.200 \ + clients/teeny/TEENY.NEC \ + clients/teeny/TEENY.M10 +TEENY_DOCS := \ + clients/teeny/teenydoc.txt \ + clients/teeny/hownec.do \ + clients/teeny/TNYO10.TXT +DSKMGR_INSTALLERS := \ + clients/dskmgr/DSKMGR.100 \ + clients/dskmgr/DSKMGR.200 \ + clients/dskmgr/DSKMGR.K85 \ + clients/dskmgr/DSKMGR.M10 +DSKMGR_DOCS := \ + clients/dskmgr/DSKMGR.DOC +TS-DOS_INSTALLERS := \ + clients/ts-dos/TS-DOS.100 \ + clients/ts-dos/TS-DOS.200 \ + clients/ts-dos/TS-DOS.NEC +TS-DOS_DOCS := \ + clients/ts-dos/tsdos.pdf +TINY_INSTALLERS := \ + clients/tiny/TINY.100 +TINY_DOCS := \ + clients/tiny/tindoc.do +#POWR-D_INSTALLERS := \ +# clients/power-dos/POWR-D.100 +#POWR-D_DOCS := \ +# clients/power-dos/powr-d.txt -CLIENT_APP_INSTALLERS = $(TEENY_INSTALLERS) $(TINY_INSTALLERS) $(TS-DOS_INSTALLERS) $(DSKMGR_INSTALLERS) -CLIENT_APP_DOCS = $(TEENY_DOCS) $(TINY_DOCS) $(TS-DOS_DOCS) $(DSKMGR_DOCS) +CLIENT_APP_INSTALLERS := $(TEENY_INSTALLERS) $(TINY_INSTALLERS) $(TS-DOS_INSTALLERS) $(DSKMGR_INSTALLERS) +CLIENT_APP_DOCS := $(TEENY_DOCS) $(TINY_DOCS) $(TS-DOS_DOCS) $(DSKMGR_DOCS) -DOCS = dl.do README.txt README.md LICENSE $(CLIENT_APP_DOCS) -SOURCES = dl.c dir_list.c +DOCS := dl.do README.txt README.md LICENSE $(CLIENT_APP_DOCS) +SOURCES := dl.c dir_list.c -DEFINES = \ +DEFINES := \ + -DAPP_VERSION=$(APP_VERSION) \ -DAPP_LIB_DIR=$(APP_LIB_DIR) \ -DDEFAULT_CLIENT_TTY=$(DEFAULT_CLIENT_TTY) \ -DDEFAULT_CLIENT_APP=$(DEFAULT_CLIENT_APP) \ diff --git a/dl.c b/dl.c index 8d5d891..142cac6 100644 --- a/dl.c +++ b/dl.c @@ -121,7 +121,7 @@ int bootstrap(char *f); int send_installer(char *f); void print_usage() { - fprintf (stderr, "DeskLink+ usage:\n"); + fprintf (stderr, "DeskLink+ " STRINGIFY(APP_VERSION) " usage:\n"); fprintf (stderr, "\n"); fprintf (stderr, "%s [tty_device] [options]\n",args[0]); fprintf (stderr, "\n"); @@ -345,6 +345,7 @@ int main(int argc, char **argv) { debug = 0; if (debug) { + fprintf (stderr, "DeskLink+ " STRINGIFY(APP_VERSION) "\n"); fprintf (stderr, "Using Serial Device: %s\n", client_tty); if(!bootstrap_mode) { fprintf (stderr, "Working In Directory: "); From ebc62ec4f5afee475159a460595241fb24738b7b Mon Sep 17 00:00:00 2001 From: gorlik <44734244+gorlik@users.noreply.github.com> Date: Sun, 8 May 2022 14:53:04 -0700 Subject: [PATCH 004/206] Use for fixed length types --- dir_list.c | 32 ++++++++++++++++---------------- dir_list.h | 19 +++++++++---------- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/dir_list.c b/dir_list.c index a2e5eb0..6bac06e 100644 --- a/dir_list.c +++ b/dir_list.c @@ -17,7 +17,7 @@ Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ - +#include #include #include #include @@ -28,18 +28,18 @@ MA 02111, USA. typedef struct { Char name[12] ; // file name - UInt32 len ; // length + u_int32_t len ; // length LocalID dbID ; // database ID } FILE_ENTRY; #define MAX(a,b) ((a)>(b)?(a):(b)) -static UInt16 allocated; -static UInt16 ndx; -static Int16 cur; // current must be signed (get-prev) +static u_int16_t allocated; +static u_int16_t ndx; +static int16_t cur; // current must be signed (get-prev) static FILE_ENTRY *tblp = 0; -static Err get_current_record (Char *namep, UInt32 *lenp, LocalID *dbIDp); +static Err get_current_record (Char *namep, u_int32_t *lenp, LocalID *dbIDp); int file_list_init () { @@ -73,7 +73,7 @@ void file_list_clear_all () } -Err find_file (Char *find_namep, UInt32 *lenp, LocalID *dbIDp) +Err find_file (Char *find_namep, u_int32_t *lenp, LocalID *dbIDp) { for (cur = 0; cur < ndx; cur++) @@ -87,7 +87,7 @@ Err find_file (Char *find_namep, UInt32 *lenp, LocalID *dbIDp) return (-1); } -Err addto_file_len (UInt32 len_delta) +Err addto_file_len (u_int32_t len_delta) { tblp[cur].len += len_delta; @@ -96,7 +96,7 @@ Err addto_file_len (UInt32 len_delta) Err delete_file (LocalID dbID) { - UInt16 i, j; + u_int16_t i, j; FILE_ENTRY *ep; Char **cpp; @@ -126,7 +126,7 @@ Err delete_file (LocalID dbID) Err rename_file (LocalID dbID, Char *namep) { - UInt16 i; + u_int16_t i; FILE_ENTRY *ep; /** find the entry */ @@ -142,7 +142,7 @@ Err rename_file (LocalID dbID, Char *namep) return (0); } -int add_file (Char *namep, UInt32 len, LocalID dbID) +int add_file (Char *namep, u_int32_t len, LocalID dbID) { FILE_ENTRY *ep; Char **cpp; @@ -182,7 +182,7 @@ int add_file (Char *namep, UInt32 len, LocalID dbID) return (0); } -Char **get_str_table(UInt16 *lenp) +Char **get_str_table(u_int16_t *lenp) { /** valchk */ if (!tblp) @@ -199,7 +199,7 @@ Char **get_str_table(UInt16 *lenp) } -Err get_first_file (Char *namep, UInt32 *lenp, LocalID *dbIDp) +Err get_first_file (Char *namep, u_int32_t *lenp, LocalID *dbIDp) { Err err; @@ -210,7 +210,7 @@ Err get_first_file (Char *namep, UInt32 *lenp, LocalID *dbIDp) return (0); } -Err get_next_file (Char *namep, UInt32 *lenp, LocalID *dbIDp) +Err get_next_file (Char *namep, u_int32_t *lenp, LocalID *dbIDp) { Err err; @@ -225,7 +225,7 @@ Err get_next_file (Char *namep, UInt32 *lenp, LocalID *dbIDp) return (0); } -Err get_prev_file (Char *namep, UInt32 *lenp, LocalID *dbIDp) +Err get_prev_file (Char *namep, u_int32_t *lenp, LocalID *dbIDp) { Err err; @@ -241,7 +241,7 @@ Err get_prev_file (Char *namep, UInt32 *lenp, LocalID *dbIDp) return (0); } -static Err get_current_record (Char *namep, UInt32 *lenp, LocalID *dbIDp) +static Err get_current_record (Char *namep, u_int32_t *lenp, LocalID *dbIDp) { FILE_ENTRY *ep; diff --git a/dir_list.h b/dir_list.h index 0411d47..42d686f 100644 --- a/dir_list.h +++ b/dir_list.h @@ -21,28 +21,27 @@ MA 02111, USA. #ifndef DIR_LIST #define DIR_LIST +#include + #define QUANTUM 10 typedef unsigned LocalID; typedef unsigned char Char; typedef int Err; -typedef unsigned short UInt16; -typedef short int Int16; -typedef unsigned UInt32; int file_list_init (); int file_list_cleanup(); -int add_file (Char *namep, UInt32 len, LocalID dbID); +int add_file (Char *namep, u_int32_t len, LocalID dbID); void file_list_clear_all (); -Char **get_str_table(UInt16 *lenp); +Char **get_str_table(u_int16_t *lenp); -Err get_first_file (Char *namep, UInt32 *lenp, LocalID *dbIDp); -Err get_next_file (Char *namep, UInt32 *lenp, LocalID *dbIDp); -Err get_prev_file (Char *namep, UInt32 *lenp, LocalID *dbIDp); +Err get_first_file (Char *namep, u_int32_t *lenp, LocalID *dbIDp); +Err get_next_file (Char *namep, u_int32_t *lenp, LocalID *dbIDp); +Err get_prev_file (Char *namep, u_int32_t *lenp, LocalID *dbIDp); -Err find_file (Char *find_namep, UInt32 *lenp, LocalID *dbIDp); -Err addto_file_len (UInt32 len_delta); +Err find_file (Char *find_namep, u_int32_t *lenp, LocalID *dbIDp); +Err addto_file_len (u_int32_t len_delta); Err delete_file (LocalID dbID); Err rename_file (LocalID dbID, Char *namep); From f43122bad8dd709c65f18fd29d5f01f4ac4e7f59 Mon Sep 17 00:00:00 2001 From: gorlik <44734244+gorlik@users.noreply.github.com> Date: Mon, 16 May 2022 22:16:46 -0700 Subject: [PATCH 005/206] Add support for subdirectories. Improve file name conversion. --- dir_list.c | 190 +++---------- dir_list.h | 44 +-- dl.c | 798 +++++++++++++++++++++++++++++++++-------------------- 3 files changed, 558 insertions(+), 474 deletions(-) diff --git a/dir_list.c b/dir_list.c index 6bac06e..368971d 100644 --- a/dir_list.c +++ b/dir_list.c @@ -1,12 +1,13 @@ /* -DeskLink+ +DeskLink++ Extensions and enhancements Copyright (C) 2005 John R. Hogerhuis +Copyright (c) 2022 Gabriele Gorla -DeskLink+ is free software; you can redistribute it and/or modify it +DeskLink++ is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or any later as version as published by the Free Software Foundation. -DeskLink+ is distributed in the hope that it will be useful, but +DeskLink++ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -24,26 +25,16 @@ MA 02111, USA. #include #include "dir_list.h" - -typedef struct -{ - Char name[12] ; // file name - u_int32_t len ; // length - LocalID dbID ; // database ID -} FILE_ENTRY; - -#define MAX(a,b) ((a)>(b)?(a):(b)) - -static u_int16_t allocated; -static u_int16_t ndx; -static int16_t cur; // current must be signed (get-prev) +static u_int16_t allocated; +static u_int16_t ndx; +static u_int16_t cur; static FILE_ENTRY *tblp = 0; -static Err get_current_record (Char *namep, u_int32_t *lenp, LocalID *dbIDp); +static FILE_ENTRY * current_record (void); int file_list_init () { - tblp = malloc (sizeof (FILE_ENTRY) * QUANTUM + sizeof (Char *) * QUANTUM); + tblp = malloc (sizeof (FILE_ENTRY) * QUANTUM ); if (!tblp) return (-1); allocated = QUANTUM; @@ -55,8 +46,6 @@ int file_list_init () int file_list_cleanup() { - - allocated = 0; ndx = 0; cur = 0; @@ -72,109 +61,26 @@ void file_list_clear_all () cur = ndx = 0; } - -Err find_file (Char *find_namep, u_int32_t *lenp, LocalID *dbIDp) -{ - - for (cur = 0; cur < ndx; cur++) - if (strncasecmp ((char *) find_namep, (char *) tblp[cur].name, sizeof (tblp[cur].name) - 1) == 0) - { - if (lenp) *lenp = tblp[cur].len; - if (dbIDp) *dbIDp = tblp[cur].dbID; - return (0); - } - - return (-1); -} - -Err addto_file_len (u_int32_t len_delta) -{ - tblp[cur].len += len_delta; - - return (0); -} - -Err delete_file (LocalID dbID) +int add_file (FILE_ENTRY *nfe) { - u_int16_t i, j; - FILE_ENTRY *ep; - Char **cpp; - - /** find the entry */ - for (i = 0, ep = tblp; i < ndx; i++, ep++) - if (ep->dbID == dbID) break; - - /** no matching entry; return error */ - if (i >= ndx) return (-1); - - /** move up all entries to cover */ - memmove (ep, ep + 1, (ndx - i - 1) * sizeof (FILE_ENTRY)); - - /** adjust indices */ - ndx--; - if (cur > i) cur--; - - /** correct trailing pointers */ - cpp = (Char **) (tblp + allocated); - for (j = i; j < ndx; j++) - cpp[j] = tblp[j].name; - cpp[ndx] = NULL; - - return (0); - -} - -Err rename_file (LocalID dbID, Char *namep) -{ - u_int16_t i; FILE_ENTRY *ep; - /** find the entry */ - for (i = 0, ep = tblp; i < ndx; i++, ep++) - if (ep->dbID == dbID) break; - - /** no matching entry; return error */ - if (i >= ndx) return (-1); - - /** update the name */ - strncpy ((char *) ep->name, (char *) namep, sizeof (ep->name) * sizeof (Char) - 1); - - return (0); -} - -int add_file (Char *namep, u_int32_t len, LocalID dbID) -{ - FILE_ENTRY *ep; - Char **cpp; - int i; - /** reallocate QUANTUM more records if out of space */ if (ndx >= allocated) { /** resize the array */ - tblp = realloc (tblp, (allocated + QUANTUM) * (sizeof (FILE_ENTRY) + sizeof (Char *))); + tblp = realloc (tblp, (allocated + QUANTUM) * sizeof (FILE_ENTRY) ); if (!tblp) return (-1); allocated += QUANTUM; - /** update the char * array */ - for (i = 0, ep = tblp, cpp = (Char **) (tblp + allocated); i < ndx; - i++, ep++, cpp++) - *cpp = ep->name; } /** reference the entry */ if (!tblp) return (-1); ep = tblp + ndx; - /** fill the entry */ - strncpy ((char *) ep->name, (char *)namep, sizeof (ep->name) * sizeof (Char) - 1); - ep->len = len; - ep->dbID = dbID; - - /** set the pointer for use in filling list controls */ - ((Char **) (tblp + allocated))[ndx] = ep->name; - + memcpy(ep,nfe,sizeof(FILE_ENTRY)); /** adjust cur to address this record, ndx to next avail */ cur = ndx; ndx += 1; @@ -182,78 +88,50 @@ int add_file (Char *namep, u_int32_t len, LocalID dbID) return (0); } -Char **get_str_table(u_int16_t *lenp) +FILE_ENTRY * find_file (char *tsname) { - /** valchk */ - if (!tblp) - { - *lenp = 0; - return (NULL); - } - - /** return string table */ - if (lenp) - *lenp = ndx; - - return ((Char **) (tblp + allocated)); + int i; + for(i=0;i ndx) - return (-1); + return (NULL); - /** get, next */ cur++; - if ((err = get_current_record (namep, lenp, dbIDp))) return (err); - - return (0); + return current_record (); } -Err get_prev_file (Char *namep, u_int32_t *lenp, LocalID *dbIDp) +FILE_ENTRY * get_prev_file (void) { - Err err; - - /** move back by one, but floor at -1 */ - cur = MAX (cur -1, -1); - - /** ensure don't go off the shallow end */ - if (cur < 0) return (-1); - - /** get */ - if ((err = get_current_record (namep, lenp, dbIDp))) return (err); - - return (0); + if(cur==0) + return NULL; + + cur--; + return current_record (); } -static Err get_current_record (Char *namep, u_int32_t *lenp, LocalID *dbIDp) +static FILE_ENTRY * current_record (void) { FILE_ENTRY *ep; /** return error if out-of-range */ - if (cur >= ndx) return (-1); + if (cur >= ndx) return (NULL); - /** reference the record, fill in caller's vars */ - if (!tblp) return (-1); - ep = tblp + cur; - if (namep) strcpy ((char *) namep, (char *) ep->name); - if (lenp) *lenp = ep->len; - if (dbIDp) *dbIDp = ep->dbID; + if (!tblp) return (NULL); - return (0); + ep = tblp + cur; + return ep; } diff --git a/dir_list.h b/dir_list.h index 42d686f..c301a42 100644 --- a/dir_list.h +++ b/dir_list.h @@ -1,12 +1,13 @@ /* -DeskLink+ +DeskLink++ Extensions and enhancements Copyright (C) 2005 John R. Hogerhuis +Copyright (c) 2022 Gabriele Gorla -DeskLink+ is free software; you can redistribute it and/or modify it +DeskLink++ is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or any later as version as published by the Free Software Foundation. -DeskLink+ is distributed in the hope that it will be useful, but +DeskLink++ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -24,25 +25,32 @@ MA 02111, USA. #include #define QUANTUM 10 +#define FNAME_MAX 32 + +#define DIR_FLAG 0x01 + + +//typedef unsigned LocalID; +//typedef int Err; + +typedef struct +{ + char tsname[12]; // ts-dos file name + char ufname[FNAME_MAX]; // unix file name + u_int32_t len; // length + u_int8_t flags; +} FILE_ENTRY; -typedef unsigned LocalID; -typedef unsigned char Char; -typedef int Err; int file_list_init (); int file_list_cleanup(); - -int add_file (Char *namep, u_int32_t len, LocalID dbID); + +int add_file (FILE_ENTRY *nfe); void file_list_clear_all (); -Char **get_str_table(u_int16_t *lenp); - -Err get_first_file (Char *namep, u_int32_t *lenp, LocalID *dbIDp); -Err get_next_file (Char *namep, u_int32_t *lenp, LocalID *dbIDp); -Err get_prev_file (Char *namep, u_int32_t *lenp, LocalID *dbIDp); - -Err find_file (Char *find_namep, u_int32_t *lenp, LocalID *dbIDp); -Err addto_file_len (u_int32_t len_delta); -Err delete_file (LocalID dbID); -Err rename_file (LocalID dbID, Char *namep); + +FILE_ENTRY * find_file (char *tsname); +FILE_ENTRY * get_first_file (void); +FILE_ENTRY * get_next_file (void); +FILE_ENTRY * get_prev_file (void); #endif diff --git a/dl.c b/dl.c index 142cac6..ae675f1 100644 --- a/dl.c +++ b/dl.c @@ -87,30 +87,67 @@ MA 02111, USA. #define STRINGIFY2(X) #X #define STRINGIFY(X) STRINGIFY2(X) -unsigned prev_dir_type = 0; -unsigned fname_ndx = 0; +#define FREE_BLOCKS 157 + +#define ST_OK 0x00 +#define ST_FILE_DOES_NOT_EXIST 0x10 +#define ST_FILE_EXIST 0x11 +#define ST_NO_FILENAME 0x30 +#define ST_DIR_SEARCH_ERROR 0x31 +#define ST_BANK_ERROR 0x35 +#define ST_PARAMETER_ERROR 0x36 +#define ST_OPEN_FRMT_MISMATCH 0x37 +#define ST_EOF 0x3f +#define ST_NO_START_MARK 0x40 +#define ST_ID_CRC_ERROR 0x41 +#define ST_SECTOR_LEN_ERROR 0x42 +#define ST_FRMT_VERIFY_ERROR 0x44 +#define ST_FRMT_INTERRUPTION 0x46 +#define ST_ERASE_OFFSET_ERROR 0x47 +#define ST_DATA_CRC_ERROR 0x49 +#define ST_SECTOR_NUMBER_ERROR 0x4a +#define ST_READ_DATA_TIMEOUT 0x4b +#define ST_SECTOR_NUMBER_ERR2 0x4d // ??? +#define ST_DISK_WRITE_PROTECT 0x50 +#define ST_UNINITIALIZED_DISK 0x5e +#define ST_DIRECTORY_FULL 0x60 +#define ST_DISK_FULL 0x61 +#define ST_FILE_TOO_LONG 0x6e +#define ST_NO_DISK 0x70 +#define ST_DISK_CHANGE_ERROR 0x71 + +// configuration +bool debug = false; +bool upcase = false; +bool rtscts = false; +unsigned dot_offset = 6; // 6 for 100/102/200/NEC/K85/M10 , 8 for WP-2 +int client_baud = DEFAULT_CLIENT_BAUD; +int bootstrap_byte_msec = DEFAULT_BOOTSTRAP_BYTE_MSEC; + +// state +bool getty_mode = false; +bool bootstrap_mode = false; + +// globals +bool m1rec = false; + unsigned file_len; -LocalID cur_id; int file = -1; int mode = 0; /* 0=unopened, 1=Write, 3=Read, 2=Append */ int client_fd = -1; // client tty file handle -unsigned char filename[25]; -struct dirent *dire; +char filename[25]; + DIR *dir = NULL; char *dirname; char **args; struct termios origt; struct termios ti; -bool getty_mode = false; -bool bootstrap_mode = false; -int bootstrap_byte_msec = DEFAULT_BOOTSTRAP_BYTE_MSEC; -bool debug = false; -bool upcase = false; -bool rtscts = false; -unsigned dot_offset = 6; // 6 for 100/102/200/NEC/K85/M10 , 8 for WP-2 + unsigned char buf[131]; -int client_baud = DEFAULT_CLIENT_BAUD; + +FILE_ENTRY *cur_file; +int dir_depth=0; int be_disk(void); @@ -120,7 +157,8 @@ int bootstrap(char *f); int send_installer(char *f); -void print_usage() { +void print_usage() +{ fprintf (stderr, "DeskLink+ " STRINGIFY(APP_VERSION) " usage:\n"); fprintf (stderr, "\n"); fprintf (stderr, "%s [tty_device] [options]\n",args[0]); @@ -169,7 +207,8 @@ void print_usage() { } -void cat(char *f) { +void cat(char *f) +{ int h = -1; char b[4097]; @@ -180,7 +219,8 @@ void cat(char *f) { close(h); } -int bootstrap(char *f) { +int bootstrap(char *f) +{ int r = 0; char installer_file[PATH_MAX]=""; char pre_install_txt_file[PATH_MAX]=""; @@ -238,15 +278,28 @@ int bootstrap(char *f) { return(0); } -int my_write (int fh, void *srcp, size_t len) { +int my_write (int fh, void *srcp, size_t len) +{ if (debug) { - fprintf (stderr, "Writing: "); + fprintf (stderr, "SEND: "); out_buf (srcp, len); } return (write (fh, srcp, len)); } -unsigned char calc_sum(unsigned char type, unsigned char length, unsigned char *data) { +unsigned char checksum(unsigned char *data) +{ + unsigned short sum=0; + int len=data[1]+2; + int i; + + for(i=0;itsname); + /* format the filename */ - if (fnamep) { - - if (debug) fprintf (stderr, "no fmt: %s\n", fnamep); + if (ep && ep->tsname) { buf[26] = 'F'; - size = htons (len); + size = htons (ep->len); memcpy (buf + 27, &size, 2); memset (buf + 2, ' ', 24); - if (upcase) - for (i = 0; i < MIN (strlen ((char *)fnamep), 24); i++) - buf[2+i] = toupper (fnamep[i]); - else - memcpy (buf + 2, fnamep, MIN (strlen ((char *)fnamep), 24)); - - dotp = memchr (buf + 2, '.', 24); - - if (dotp != NULL) { - //if(debug) fprintf(stderr,"buf: |%s|\n",buf); - memmove (buf + dot_offset + 2, dotp, 3); - //if(debug) fprintf(stderr,"buf: |%s|\n",buf); - for (p = dotp; p < buf + dot_offset + 2; p++) { - *p = ' '; - //if(debug) fprintf(stderr,"buf: |%s|\n",buf); - } - - } + for(i=0;itsname[i])?ep->tsname[i]:' '; + //memcpy (buf + 2, ep->tsname, dot_offset+2); - if (debug) fprintf (stderr, "str : %24.24s\n", (char *)buf + 2); + // if (debug) fprintf (stderr, "str : %24.24s\n", (char *)buf + 2); } + buf[29]=FREE_BLOCKS; /* add checksum */ - buf[30] = calc_sum (0x11, 0x1C, buf + 2); + buf[30] = checksum (buf); /* write packet */ return (my_write (client_fd,buf,31) == 31); } -int send_dirent (unsigned char *buf, struct stat *st) { - unsigned short size; - unsigned char *dot; - unsigned char *p; - unsigned i; - - //if(debug) fprintf(stderr,"send_dirent()\nbuf: |%s|\n",buf); - - if(dire!=NULL) { - buf[26]='F'; - size=htons(st->st_size); - memcpy(buf+27,&size,2); - memset(buf+2,' ',24); - - if (upcase) - for (i = 0; i < strlen((char *)dire->d_name); i++) { - buf[2+i] = toupper(dire->d_name[i]); - //if(debug) fprintf(stderr,"buf: |%s|\n",buf); - } - else - memcpy(buf+2,dire->d_name,strlen((char *)dire->d_name)); - - //if(debug) fprintf(stderr,"buf: |%s|\n",buf); - - dot = memchr(buf+2,'.',24); - - if(dot!=NULL) { - //if(debug) fprintf(stderr,"buf: |%s|\n",buf); - memmove (buf + dot_offset + 2, dot, 3); - //if(debug) fprintf(stderr,"buf: |%s|\n",buf); - for( p = dot; p < buf + dot_offset + 2; p++) { - *p=' '; - //if(debug) fprintf(stderr,"buf: |%s|\n",buf); - } - } - - } - - buf[30] = calc_sum (0x11, 0x1C, buf+2); - if(debug) fprintf(stderr,"buf: |%s|\n",buf); - return (my_write (client_fd, buf, 31) == 31); +FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) +{ + static FILE_ENTRY f; + int i; + + /** fill the entry */ + strncpy (f.ufname, namep, sizeof (f.ufname) - 1); + + for(i=0;i<12;i++) f.tsname[i]=' '; + + f.len = len; + + + // fix the filename + for(i=strlen(namep);i>0;i--) + if(namep[i]=='.') break; + + + if(flags&DIR_FLAG) { + // directory + f.tsname[dot_offset+1]='<'; + f.tsname[dot_offset+2]='>'; + f.len=0; + } else { + if(i>0) { + // found an extension + // for the time being just copy + f.tsname[dot_offset+1]=toupper(namep[i+1]); + f.tsname[dot_offset+2]=toupper(namep[i+2]); + } else { + // no extension - default to .DO + f.tsname[dot_offset+1]='D'; + f.tsname[dot_offset+2]='O'; + } + } + + if(f.ufname[0]=='.' && f.ufname[1]=='.') { + memcpy (f.tsname, "PARENT", 6); + } else { + for(i=0;id_name, (unsigned) st->st_size); + flags=0; if(stat(dire->d_name,st)) { normal_return(0x31); return 0; } - if (!S_ISREG (st->st_mode)) - continue; - + if (S_ISDIR(st->st_mode)) flags=DIR_FLAG; + else if (!S_ISREG (st->st_mode)) + continue; + + if(dire->d_name[0]=='.') continue; // skip "." ".." and hidden files + if(dire->d_name[0]=='#') continue; // skip "#" + + if(strlen(dire->d_name)>FNAME_MAX) continue; // skip long filenames + + // if(S_ISDIR(st->st_mode)) { + // + // } + /* add file to list so we can traverse any order */ - add_file ((unsigned char *) dire->d_name, st->st_size, ++fname_ndx); + add_file (make_file_entry(dire->d_name, st->st_size, flags)); - if (debug) - fprintf (stderr, "added file %s len %ld\n", dire->d_name, st->st_size); + // if (debug) + // fprintf (stderr, "added file %s len %ld\n", dire->d_name, st->st_size); break; - } + } if (dire == NULL) return 0; @@ -545,146 +615,254 @@ int read_next_dirent(struct stat *st) { return 1; } -int directory(unsigned char length, unsigned char *data) { - unsigned char search_form; - unsigned char *p,*dot; - struct stat st; +char *ts2unix(char *fname) +{ + int i; + for(i=dot_offset;i>1;i--) + if(fname[i-1]!=' ') break; + + if(fname[dot_offset+1]=='<' && fname[dot_offset+2]=='>') { + fname[i]=0; + } else { + fname[i]=fname[dot_offset]; + fname[i+1]=fname[dot_offset+1]; + fname[i+2]=fname[dot_offset+2]; + fname[i+3]=0; + } + return fname; +} + - bzero(buf,31); - buf[29]=40; - buf[0]=0x11; - buf[1]=0x1C; - search_form=data[length-1]; - switch (search_form) { +void list_dir() +{ + struct stat st; + + if (dir!=NULL) + closedir(dir); + + dir=opendir("."); + /** rebuild the file list */ + file_list_clear_all(); + // fname_ndx = 0; + if(dir_depth) add_file (make_file_entry("..", 0, DIR_FLAG)); + while (read_next_dirent (&st)); +} + + +int directory(unsigned char *data) +{ + char *p; + + switch (data[29]) { case 0x00: /* Pick file for open/delete */ - strncpy((char *)filename,(char *)data,24); + fprintf (stderr, "Directory req: %02x (pick file)\n", data[29]); + strncpy(filename,(char *)data+4,24); filename[24]=0; - //if (debug) fprintf (stderr, "Request: %s\n", filename); + //if (debug) + fprintf (stderr, "Request: %s\n", filename); /* Remove trailing spaces */ - for(p = (unsigned char *) strrchr((char *)filename,' '); p >= filename && *p == ' '; p--) + for(p = strrchr(filename,' '); p >= filename && *p == ' '; p--) *p = 0; - /* Remove spaces between base and dot */ - dot = (unsigned char *) strchr((char *)filename,'.'); - if(dot!=NULL) { - for(p=dot-1;*p==' ';p--) ; - memmove(p+1,dot,strlen((char *)dot)+1); - } - if(dir!=NULL) - closedir(dir); - dir=opendir("."); - //if (debug) fprintf (stderr, " : %s\n", filename); - if (upcase) { - for(;read_next_dirent(&st) && dire!=NULL && strcasecmp((char *)dire->d_name, (char *)filename);); + cur_file=find_file(filename); + if(cur_file) { + fprintf (stderr, "Found: %s server: %s len:%d\n", cur_file->tsname, cur_file->ufname, cur_file->len); + out_dirent(cur_file); + + } else { - for(;read_next_dirent(&st) && dire!=NULL && strcmp((char *)dire->d_name, (char *)filename);); + // strncpy(cur_file->tsname, filename, 12); + fprintf (stderr, "Can't find: %s\n", filename); + out_dirent(NULL); + // empty_dirent(); + if(filename[dot_offset+1]=='<' && filename[dot_offset+2]=='>') { + cur_file=make_file_entry(ts2unix(filename), 0, DIR_FLAG); + } else { + cur_file=make_file_entry(ts2unix(filename), 0, 0); + } } - //if (debug) fprintf (stderr, "Found : %s\n", dire->d_name); - send_dirent(buf,&st); + break; case 0x01: /* "first" directory block */ - if (debug) fprintf (stderr, "get first directory entry command\n"); - if(dir!=NULL) - closedir(dir); - dir=opendir("."); - /** rebuild the file list */ - file_list_clear_all(); - while (read_next_dirent (&st)); + fprintf (stderr, "Directory req: %02x (first entry)\n", data[29]); + list_dir(); /** send the file name */ - if (get_first_file (filename, &file_len, &cur_id) == 0) { - if (debug) fprintf (stderr, "get_first_file -> %s len = %d\n", filename, file_len); - out_dirent (filename, file_len); - } - else - out_dirent (NULL, 0); + out_dirent(get_first_file()); break; case 0x02: /* "next" directory block */ - if (get_next_file (filename, &file_len, &cur_id) == 0) - out_dirent (filename, file_len); - else - out_dirent (NULL, 0); + fprintf (stderr, "Directory req: %02x (next entry)\n", data[29]); + out_dirent(get_next_file()); break; case 0x03: /* "previous" directory block */ - if (get_prev_file (filename, &file_len, &cur_id) == 0) - out_dirent (filename, file_len); - else - out_dirent (NULL, 0); + fprintf (stderr, "Directory req: %02x (prev file)\n", data[29]); + out_dirent(get_prev_file()); break; case 0x04: /* end directory reference */ + fprintf (stderr, "Directory req: %02x (close dir)\n", data[29]); closedir(dir); - file_list_clear_all (); - fname_ndx = 0; + // file_list_clear_all (); + dir=NULL; break; } return 0; } -int open_file(unsigned char omode) { +static unsigned char dir_msg[14]; +void update_dirname() +{ + if(dir_depth) { + char dirbuf[1024]; + int i,j; + + if(getcwd(dirbuf, 1024) ) { + memset(dir_msg,' ',sizeof(dir_msg)); + + // fprintf(stderr, "update dir = %s\n", dirbuf); + for(i=strlen(dirbuf); i>=0 ; i--) + if(dirbuf[i]=='/') break; + + // fprintf(stderr, "update dir = %s\n", dirbuf+i); + for(j=0; j<6 && dirbuf[i+j+1] && dirbuf[i+j+1]!='.'; j++) + dir_msg[3+j]=dirbuf[i+j+1]; + + + dir_msg[0]=0x12; + dir_msg[1]=0x0b; + dir_msg[2]=0x00; + dir_msg[9]='.'; + dir_msg[10]='<'; + dir_msg[11]='>'; + // dir_msg[12]=' '; + dir_msg[13]=checksum(dir_msg); + } + } + +} - //if(debug) fprintf (stderr, "open_file() mode:%d filename:%s dire->d_name:%s\n", omode,filename,dire->d_name); +void send_current_path() +{ + static unsigned char root[] = {0x12, 0x0b, 0x00, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 0x2e, 0x3c, 0x3e, 0x20, 0x96}; + + fprintf(stderr, "dir depth = %d\n",dir_depth); + if(dir_depth==0) + my_write (client_fd, root, sizeof (root)); + else + my_write (client_fd, dir_msg, sizeof (dir_msg)); +} + + +int open_file(unsigned char *data) +{ + //if(debug) fprintf (stderr, "open_file() mode:%d filename:%s dire->d_name:%s\n", omode,filename,dire->d_name); + unsigned char omode = data[4]; + switch(omode) { case 0x01: /* New file for my_write */ + fprintf (stderr, "open mode: %02x (write)\n", omode); if (file >= 0) { close(file); file=-1; } - file = open ((char *) filename,O_CREAT|O_TRUNC|O_WRONLY|O_EXCL,0666); - if(file<0) - normal_return(0x37); - else { - mode=omode; - normal_return(0x00); + //file = open (ts2unix((char *) filename),O_CREAT|O_TRUNC|O_WRONLY|O_EXCL,0666); + if(cur_file->flags&DIR_FLAG) { + if(mkdir(cur_file->ufname,0775)==0) { + normal_return(ST_OK); + } else { + normal_return(ST_OPEN_FRMT_MISMATCH); + } + } else { + file = open (cur_file->ufname,O_CREAT|O_TRUNC|O_WRONLY|O_EXCL,0666); + if(file<0) + normal_return(ST_OPEN_FRMT_MISMATCH); + else { + mode=omode; + normal_return(ST_OK); + } } break; case 0x02: /* existing file for append */ + fprintf (stderr, "open mode: %02x (append)\n", omode); if (file >= 0) { close(file); file=-1; } - file = open ((char *) dire->d_name, O_WRONLY | O_APPEND); + if(cur_file==0) { + normal_return(ST_OPEN_FRMT_MISMATCH); + return -1; + } + file = open (cur_file->ufname, O_WRONLY | O_APPEND); if (file < 0) - normal_return (0x37); + normal_return(ST_OPEN_FRMT_MISMATCH); else { mode=omode; - normal_return (0x00); + normal_return (ST_OK); } break; case 0x03: /* Existing file for read */ + fprintf (stderr, "open mode: %02x (read)\n", omode); if (file >= 0) { close (file); file=-1; } - file = open ((char *)dire->d_name, O_RDONLY); - if(file<0) - normal_return(0x37); - else { - mode = omode; - normal_return (0x00); + if(cur_file==0) { + normal_return(ST_FILE_DOES_NOT_EXIST); + return -1; + } + + if(cur_file->flags&DIR_FLAG) { + int err=0; + // directory + if(cur_file->ufname[0]=='.' && cur_file->ufname[1]=='.') { + // parent dir + if(dir_depth>0) { + err=chdir(cur_file->ufname); + if(!err) dir_depth--; + } + } else { + // enter dir + err=chdir(cur_file->ufname); + dir_depth++; + } + update_dirname(); + if(err) normal_return(0x37); + else normal_return (ST_OK); + } else { + // regular file + file = open (cur_file->ufname, O_RDONLY); + if(file<0) + normal_return(ST_FILE_DOES_NOT_EXIST); + else { + mode = omode; + normal_return (ST_OK); + } } break; } return (file); } -void read_file(void) { +void read_file(void) +{ int in; buf[0]=0x10; if(file<0) { - normal_return(0x30); + normal_return(ST_NO_FILENAME); return; } if(mode!=3) { - normal_return(0x37); + normal_return(ST_OPEN_FRMT_MISMATCH); return; } in = read (file, buf+2, 128); buf[1] = (unsigned char) in; - buf[2+in] = calc_sum(0x10, (unsigned char)in, buf+2); + buf[2+in] = checksum(buf); my_write (client_fd, buf, 3+in); } -void respond_mystery() { +#if 0 +void respond_mystery() +{ static unsigned char canned[] = {0x38, 0x01, 0x00}; memcpy (buf, canned, sizeof (canned)); @@ -692,41 +870,34 @@ void respond_mystery() { my_write (client_fd, buf, sizeof (canned) + 1); } -void respond_mystery2() { +void respond_mystery2() +{ static unsigned char canned[] = {0x14, 0x0F, 0x41, 0x10, 0x01, 0x00, 0x50, 0x05, 0x00, 0x02, 0x00, 0x28, 0x00, 0xE1, 0x00, 0x00, 0x00}; memcpy (buf, canned, sizeof (canned)); buf[sizeof(canned)] = calc_sum (canned[0], canned[1], canned + 2); my_write (client_fd, buf, sizeof (canned) + 1); } +#endif -// STUB -void respond_place_path() { - static unsigned char canned[] = {0x12, 0x0b, 0x00, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 0x2e, 0x3c, 0x3e, 0x20, 0x96}; - - my_write (client_fd, canned, sizeof (canned)); -} +void renamefile(unsigned char *data) +{ + char *new_name = (char *)data + 4; -void renamefile(unsigned char *name) { - unsigned char *p; + new_name[24]=0; - name[24]=0; - for(p = (unsigned char *) strrchr((char *)name,' ');*p==' ';p--) - *p=0; - if(rename ((char *) filename, (char *)name)) + if(rename (cur_file->ufname, ts2unix(new_name))) normal_return(0x4A); else - normal_return(0x00); + normal_return(ST_OK); } -int readbytes(int handle, void *buf, int max) { +int readbytes(int handle, void *buf, int max) +{ int r = 0; int rval; unsigned i; - if (debug) - fprintf (stderr, "Read... "); - while (r < max) { rval = read (client_fd, buf + r, 1); if (rval < 0) @@ -734,16 +905,11 @@ int readbytes(int handle, void *buf, int max) { r += rval; } - if (debug) { - for (i = 0; r >=0 && i < r; i++) - fprintf (stderr, "%02X ", ((unsigned char *)buf)[i]); - fprintf (stderr, "\n"); - } - return (r); } -int send_installer(char *f) { +int send_installer(char *f) +{ int w=0; int i=0; int fd; @@ -787,7 +953,8 @@ int send_installer(char *f) { return(0); } -void out_buf(unsigned char *bufp, unsigned len) { +void out_buf(unsigned char *bufp, unsigned len) +{ unsigned i,j,k; if (!debug) @@ -803,140 +970,171 @@ void out_buf(unsigned char *bufp, unsigned len) { fprintf (stderr, "\n"); } -int be_disk(void) { - char preamble[3]; - unsigned char type; - unsigned char length; - unsigned char data[0x81]; - unsigned char checksum; - unsigned precnt = 0; - unsigned len; - char TPDD_P[3] = "ZZ"; - char TDME_P[3] = "M1"; - - preamble[0]=0; - preamble[1]=0; - preamble[2]=0; - - for (precnt = 0; precnt < 2; precnt++) { - len = readbytes(client_fd, preamble+precnt, 1); - if (len == 0) { - fprintf (stderr, "zero len - 1\n"); - return(-1); - } - if (preamble[precnt] == 0x0D) { - if (debug) fprintf (stderr, "CR\n"); - return(-1); - } - } - - if(strcmp(preamble,TPDD_P)==0) { // TPDD Command - if (debug) fprintf(stderr, "Got TPDD preamble.\n"); - } - else if(strcmp(preamble,TDME_P)==0) { // TS-DOS DME Request - if (debug) fprintf(stderr, "Got TS-DOS DME preamble.\n"); - return (-1); - } - else { - if (debug) fprintf(stderr, "Bad preamble: (%02X %02X)\n",preamble[0],preamble[1]); - return (-1); - } - - len = readbytes(client_fd,&type,1); - if (!len) { - fprintf (stderr, "zero len - 2\n"); - return (0); - } - - len = readbytes(client_fd,&length,1); - if (!len) { - fprintf (stderr, "zero len - 3\n"); - return (0); - } - - len = readbytes(client_fd,data,length); - if (length && !len) { - fprintf (stderr, "zero len - 4\n"); - return (0); - } +void process_Z_cmd(unsigned char *data) +{ - data[length]=0; - len = readbytes(client_fd,&checksum,1); - if (!len) { - fprintf (stderr, "zero len - 5\n"); - return (0); - } + if(checksum(data+2)!=data[data[3]+4]) { + if(debug) { + fprintf(stderr, "BAD CHECKSUM!\n"); + fprintf(stderr, "Packet checksum: %02X My checksum: %02X\n", data[data[3]+4], checksum(data+2)); + } + normal_return(ST_PARAMETER_ERROR); // should this be CRC error? + return; + } - if (debug) - fprintf (stderr, "\nProcessing command type = %02X length = %02X csum = %02X\n", type, length, checksum); - - if(calc_sum(type,length,data)!=checksum) { - if(debug) { - fprintf(stderr, "BAD CHECKSUM! Preamble: %s Type: %02X Length: %02X Data: %s\n",preamble,type,length,data); - fprintf(stderr, "Packet checksum: %02X My checksum: %02X\n",checksum,calc_sum(type,length,data)); - } - normal_return(0x36); - return(7); - } - - switch(type) { + switch(data[2]) { case 0x00: /* Directory ref */ - directory(length,data); + directory(data); break; case 0x01: /* Open file */ - open_file(data[0]); + fprintf(stderr,"open()\n"); + open_file(data); break; case 0x02: /* Close file */ - if(file>=0) + fprintf(stderr,"close()\n"); + if(file>=0) close(file); - normal_return(0x00); + file = -1; + normal_return(ST_OK); break; case 0x03: /* Read */ + fprintf(stderr,"read()\n"); read_file(); + // fprintf(stderr,"read_file end\n"); break; case 0x04: /* Write */ + fprintf(stderr,"write()\n"); if(file<0) { - normal_return(0x30); + normal_return(ST_NO_FILENAME); break; } if(mode!=1 && mode !=2) { - normal_return(0x37); + normal_return(ST_OPEN_FRMT_MISMATCH); break; } - if(my_write(file,data,length)!=length) - normal_return(0x4a); - else - normal_return(0x00); - break; + // if(my_write(file,data+4,data[3])!=data[3]) + if(write(file,data+4,data[3])!=data[3]) + normal_return(0x4a); + else + normal_return(ST_OK); + break; case 0x05: /* Delete */ - unlink ((char *) filename); - normal_return(0x00); - break; + fprintf(stderr,"delete()\n"); + if(cur_file->flags&DIR_FLAG) + rmdir(cur_file->ufname); + else + unlink (cur_file->ufname); + list_dir(); + normal_return(0x00); + break; case 0x06: /* Format disk */ - normal_return(0x00); + normal_return(ST_OK); break; case 0x07: /* Drive Status */ - normal_return(0x00); + normal_return(ST_OK); break; case 0x08: /* TS-DOS DME Request */ - respond_place_path(); + fprintf(stderr,"DME()\n"); + // chage to FDC mode (?) + send_current_path(); break; case 0x0C: /* Condition */ - normal_return(0x00); + normal_return(ST_OK); break; case 0x0D: /* Rename File */ - renamefile(data); + fprintf(stderr,"rename()\n"); + renamefile(data); + list_dir(); break; + #if 0 case 0x23: /* TS-DOS mystery command 2 */ respond_mystery2(); break; case 0x31: /* TS-DOS mystery command 1 */ respond_mystery(); break; - default: - return(8); + #endif + default: + return; break; } + if(data[2]!=0x07 && data[2]!=0x08) + m1rec=0; - return(0); + return; } + +int be_disk(void) +{ + unsigned char read_buf[131]; + unsigned len; + unsigned char recv; + + unsigned cmd_len; + unsigned pos; + + fprintf(stderr,"be_disk\n"); + pos=0; + cmd_len=0; + + while(1) { + + do { + len=read (client_fd, &recv, 1); + } while (len!=1); + + // fprintf(stderr,"pos:%d %02x:%c\n",pos,recv,recv); + + if(pos==0) { + switch(recv) { + case 'Z': + cmd_len=4; + read_buf[pos++]=recv; + break; + case 'R': + cmd_len=7; + read_buf[pos++]=recv; + break; + case 'M': + cmd_len=2; + read_buf[pos++]=recv; + break; + case '\r': + // send feedback? + // normal_return(0x00); + break; + default: + break; + } + } else { // not first char + read_buf[pos++]=recv; + if(pos>=cmd_len) { + if(read_buf[0]=='Z' && cmd_len ==4) { + cmd_len=read_buf[3]+5; + } else { + if (debug) { + fprintf (stderr, "RECV: "); + out_buf (read_buf, cmd_len); + } + + // cmd end + switch(read_buf[0]) { + case 'Z': + process_Z_cmd(read_buf); + break; + case 'M': + m1rec=true; + break; + case 'R': + break; + } + // send response + cmd_len = 0; + pos = 0; + } + } + } + } + return 0; +} + From 26555357ee960f2410c95fccf86fdf73273a284a Mon Sep 17 00:00:00 2001 From: Gabriele Gorla <44734244+gorlik@users.noreply.github.com> Date: Mon, 16 May 2022 22:29:56 -0700 Subject: [PATCH 006/206] Update AUTHORS --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 52910e6..7e14d48 100644 --- a/AUTHORS +++ b/AUTHORS @@ -2,6 +2,7 @@ dlplus: Stephen Hurd Initial version? John R. Hogerhuis Enhancements including WP-2 support Brian K. White Bootstrap function and loaders library +Gabriele Gorla Support for subdirectories TPDD Clients & loaders: Kurt McCullum TS-DOS loaders From f626b98d66c80024e80db4b83a11a30deba0909b Mon Sep 17 00:00:00 2001 From: Gabriele Gorla <44734244+gorlik@users.noreply.github.com> Date: Mon, 16 May 2022 22:31:44 -0700 Subject: [PATCH 007/206] Update CHANGES --- CHANGES | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGES b/CHANGES index 51f391c..3c00925 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +20220516 + Added support for subdirectories + 20210222 Increased default sleep between each byte in bootstrap to 6 ms Added -z=# to specify ms to sleep after sending each byte in bootstrap From c7a46e0ed8e8a5f6a0af24193690caa8346c3b87 Mon Sep 17 00:00:00 2001 From: gorlik <44734244+gorlik@users.noreply.github.com> Date: Wed, 18 May 2022 00:23:07 -0700 Subject: [PATCH 008/206] Revert name to dlplus fix indentation to tabs minor cleanups --- AUTHORS | 2 +- dir_list.c | 139 ++++---- dir_list.h | 22 +- dl.c | 1009 +++++++++++++++++++++++++--------------------------- 4 files changed, 571 insertions(+), 601 deletions(-) diff --git a/AUTHORS b/AUTHORS index 7e14d48..a34c8e6 100644 --- a/AUTHORS +++ b/AUTHORS @@ -2,7 +2,7 @@ dlplus: Stephen Hurd Initial version? John R. Hogerhuis Enhancements including WP-2 support Brian K. White Bootstrap function and loaders library -Gabriele Gorla Support for subdirectories +Gabriele Gorla Support for subdirectories TPDD Clients & loaders: Kurt McCullum TS-DOS loaders diff --git a/dir_list.c b/dir_list.c index 368971d..b411612 100644 --- a/dir_list.c +++ b/dir_list.c @@ -1,13 +1,13 @@ /* -DeskLink++ +DeskLink+ Extensions and enhancements Copyright (C) 2005 John R. Hogerhuis Copyright (c) 2022 Gabriele Gorla -DeskLink++ is free software; you can redistribute it and/or modify it +DeskLink+ is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or any later as version as published by the Free Software Foundation. -DeskLink++ is distributed in the hope that it will be useful, but +DeskLink+ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -34,104 +34,99 @@ static FILE_ENTRY * current_record (void); int file_list_init () { - tblp = malloc (sizeof (FILE_ENTRY) * QUANTUM ); - if (!tblp) - return (-1); - allocated = QUANTUM; - ndx = 0; - cur = 0; - - return (0); + tblp = malloc (sizeof (FILE_ENTRY) * QUANTUM ); + if (!tblp) + return -1; + allocated = QUANTUM; + ndx = 0; + cur = 0; + + return 0; } int file_list_cleanup() { - allocated = 0; - ndx = 0; - cur = 0; - if (tblp) - free (tblp); - tblp = NULL; - - return (0); + allocated = 0; + ndx = 0; + cur = 0; + if (tblp) + free (tblp); + tblp = NULL; + + return 0; } void file_list_clear_all () { - cur = ndx = 0; + cur = ndx = 0; } -int add_file (FILE_ENTRY *nfe) +int add_file (FILE_ENTRY *fe) { - FILE_ENTRY *ep; - - /** reallocate QUANTUM more records if out of space */ - if (ndx >= allocated) - { - - /** resize the array */ - tblp = realloc (tblp, (allocated + QUANTUM) * sizeof (FILE_ENTRY) ); - if (!tblp) return (-1); - allocated += QUANTUM; - - } - - /** reference the entry */ - if (!tblp) return (-1); - ep = tblp + ndx; - - memcpy(ep,nfe,sizeof(FILE_ENTRY)); - /** adjust cur to address this record, ndx to next avail */ - cur = ndx; - ndx += 1; - - return (0); + /** reallocate QUANTUM more records if out of space */ + if (ndx >= allocated) + { + /** resize the array */ + tblp = realloc (tblp, (allocated + QUANTUM) * sizeof (FILE_ENTRY) ); + if (!tblp) return -1; + allocated += QUANTUM; + } + + /** reference the entry */ + if (!tblp) return -1; + + memcpy (tblp+ndx, fe, sizeof(FILE_ENTRY)); + /** adjust cur to address this record, ndx to next avail */ + cur = ndx; + ndx++; + + return 0; } FILE_ENTRY * find_file (char *tsname) { - int i; - for(i=0;i ndx) - return (NULL); - - cur++; - return current_record (); + /** return error if out-of-range */ + if (cur + 1 > ndx) + return NULL; + + cur++; + return current_record (); } FILE_ENTRY * get_prev_file (void) { - if(cur==0) - return NULL; - - cur--; - return current_record (); + if(cur==0) + return NULL; + + cur--; + return current_record (); } static FILE_ENTRY * current_record (void) { - FILE_ENTRY *ep; - - /** return error if out-of-range */ - if (cur >= ndx) return (NULL); - - if (!tblp) return (NULL); - - ep = tblp + cur; - return ep; + FILE_ENTRY *ep; + + /** return error if out-of-range */ + if (cur >= ndx) return NULL; + + if (!tblp) return NULL; + + ep = tblp + cur; + return ep; } diff --git a/dir_list.h b/dir_list.h index c301a42..0d6ab55 100644 --- a/dir_list.h +++ b/dir_list.h @@ -1,13 +1,13 @@ /* -DeskLink++ +DeskLink+ Extensions and enhancements Copyright (C) 2005 John R. Hogerhuis Copyright (c) 2022 Gabriele Gorla -DeskLink++ is free software; you can redistribute it and/or modify it +DeskLink+ is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or any later as version as published by the Free Software Foundation. -DeskLink++ is distributed in the hope that it will be useful, but +DeskLink+ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -30,23 +30,21 @@ MA 02111, USA. #define DIR_FLAG 0x01 -//typedef unsigned LocalID; -//typedef int Err; - typedef struct { - char tsname[12]; // ts-dos file name - char ufname[FNAME_MAX]; // unix file name - u_int32_t len; // length - u_int8_t flags; + char tsname[12]; // ts-dos file name + char ufname[FNAME_MAX]; // unix file name + u_int32_t len; // length + u_int8_t flags; } FILE_ENTRY; int file_list_init (); -int file_list_cleanup(); +int file_list_cleanup (); -int add_file (FILE_ENTRY *nfe); void file_list_clear_all (); +int add_file (FILE_ENTRY *fe); + FILE_ENTRY * find_file (char *tsname); FILE_ENTRY * get_first_file (void); diff --git a/dl.c b/dl.c index ae675f1..d660d21 100644 --- a/dl.c +++ b/dl.c @@ -13,6 +13,9 @@ Extensions and enhancements Copyright (C) 2005 John R. Hogerhuis 20191226 Brian K. White - repackaging, reorganizing, bootstrap function Kurt McCullum - TS-DOS loaders +Copyright (c) 2022 Gabriele Gorla +Add support for subdirectories, general cleanup. + DeskLink+ is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or any later as version as published by the Free Software Foundation. @@ -131,15 +134,10 @@ bool bootstrap_mode = false; // globals bool m1rec = false; -unsigned file_len; - int file = -1; int mode = 0; /* 0=unopened, 1=Write, 3=Read, 2=Append */ int client_fd = -1; // client tty file handle -char filename[25]; -DIR *dir = NULL; -char *dirname; char **args; struct termios origt; struct termios ti; @@ -159,7 +157,7 @@ int send_installer(char *f); void print_usage() { - fprintf (stderr, "DeskLink+ " STRINGIFY(APP_VERSION) " usage:\n"); + fprintf (stderr, "DeskLink++ " STRINGIFY(APP_VERSION) " usage:\n"); fprintf (stderr, "\n"); fprintf (stderr, "%s [tty_device] [options]\n",args[0]); fprintf (stderr, "\n"); @@ -204,14 +202,13 @@ void print_usage() fprintf (stderr, " %s\n",args[0]); fprintf (stderr, " %s ttyUSB1 -p=~/Documents/wp2files -w -v\n",args[0]); fprintf (stderr, "\n"); - } void cat(char *f) { int h = -1; char b[4097]; - + if((h=open(f,O_RDONLY))<0) return; while(read(h,&b,4096)>0) @@ -225,35 +222,35 @@ int bootstrap(char *f) char installer_file[PATH_MAX]=""; char pre_install_txt_file[PATH_MAX]=""; char post_install_txt_file[PATH_MAX]=""; - + if (f[0]=='~'&&f[1]=='/') { strcpy(installer_file,getenv("HOME")); strcat(installer_file,f+1); } - + if ((f[0]=='/')||(f[0]=='.'&&f[1]=='/')) strcpy(installer_file,f); - + if(installer_file[0]==0) { strcpy(installer_file,STRINGIFY(APP_LIB_DIR)); strcat(installer_file,"/"); strcat(installer_file,f); } - + strcpy(pre_install_txt_file,installer_file); strcat(pre_install_txt_file,".pre-install.txt"); - + strcpy(post_install_txt_file,installer_file); strcat(post_install_txt_file,".post-install.txt"); - + printf("Bootstrap: Installing %s\n", installer_file); - + if(access(installer_file,F_OK)==-1) { if(debug) fprintf(stderr, "Not found.\n"); return(1); } - + if(access(pre_install_txt_file,F_OK)>=0) { cat(pre_install_txt_file); } else { @@ -262,19 +259,19 @@ int bootstrap(char *f) printf("\tRUN \"COM:9N81XN\"\t(for NEC)\n"); printf("\n"); } - + printf("Press [Enter] when ready..."); getchar(); - + if ((r=send_installer(installer_file))!=0) return(r); - + cat(post_install_txt_file); - + printf("\n\n\"%s -b\" will now exit.\n",args[0]); printf("Re-run \"%s\" (without -b this time) to run the TPDD server.\n",args[0]); printf("\n"); - + return(0); } @@ -292,24 +289,12 @@ unsigned char checksum(unsigned char *data) unsigned short sum=0; int len=data[1]+2; int i; - + for(i=0;ilen); memcpy (buf + 27, &size, 2); memset (buf + 2, ' ', 24); - + for(i=0;itsname[i])?ep->tsname[i]:' '; + buf[i+2]=(ep->tsname[i])?ep->tsname[i]:' '; //memcpy (buf + 2, ep->tsname, dot_offset+2); - + // if (debug) fprintf (stderr, "str : %24.24s\n", (char *)buf + 2); } - + buf[29]=FREE_BLOCKS; /* add checksum */ buf[30] = checksum (buf); - + /* write packet */ return (my_write (client_fd,buf,31) == 31); } FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) { - static FILE_ENTRY f; - int i; - - /** fill the entry */ - strncpy (f.ufname, namep, sizeof (f.ufname) - 1); - - for(i=0;i<12;i++) f.tsname[i]=' '; - - f.len = len; - - - // fix the filename - for(i=strlen(namep);i>0;i--) - if(namep[i]=='.') break; - - - if(flags&DIR_FLAG) { - // directory - f.tsname[dot_offset+1]='<'; - f.tsname[dot_offset+2]='>'; - f.len=0; - } else { - if(i>0) { - // found an extension - // for the time being just copy - f.tsname[dot_offset+1]=toupper(namep[i+1]); - f.tsname[dot_offset+2]=toupper(namep[i+2]); - } else { - // no extension - default to .DO - f.tsname[dot_offset+1]='D'; - f.tsname[dot_offset+2]='O'; - } - } - - if(f.ufname[0]=='.' && f.ufname[1]=='.') { - memcpy (f.tsname, "PARENT", 6); - } else { - for(i=0;i0;i--) + if(namep[i]=='.') break; + + if(flags&DIR_FLAG) { + // directory + f.tsname[dot_offset+1]='<'; + f.tsname[dot_offset+2]='>'; + f.len=0; + } else { + if(i>0) { + // found an extension + // for the time being just copy + f.tsname[dot_offset+1]=toupper(namep[i+1]); + f.tsname[dot_offset+2]=toupper(namep[i+2]); + } else { + // no extension - default to .DO + f.tsname[dot_offset+1]='D'; + f.tsname[dot_offset+2]='O'; + } + } + + if(f.ufname[0]=='.' && f.ufname[1]=='.') { + memcpy (f.tsname, "PARENT", 6); + } else { + for(i=0;id_name,st)) { + flags=0; + + if(stat(dire->d_name,&st)) { normal_return(0x31); return 0; } - - if (S_ISDIR(st->st_mode)) flags=DIR_FLAG; - else if (!S_ISREG (st->st_mode)) + + if (S_ISDIR(st.st_mode)) flags=DIR_FLAG; + else if (!S_ISREG (st.st_mode)) continue; if(dire->d_name[0]=='.') continue; // skip "." ".." and hidden files if(dire->d_name[0]=='#') continue; // skip "#" - - if(strlen(dire->d_name)>FNAME_MAX) continue; // skip long filenames - // if(S_ISDIR(st->st_mode)) { - // - // } + if(strlen(dire->d_name)>FNAME_MAX) continue; // skip long filenames /* add file to list so we can traverse any order */ - add_file (make_file_entry(dire->d_name, st->st_size, flags)); - - // if (debug) - // fprintf (stderr, "added file %s len %ld\n", dire->d_name, st->st_size); - + add_file (make_file_entry(dire->d_name, st.st_size, flags)); + break; } - + if (dire == NULL) return 0; - + return 1; } char *ts2unix(char *fname) { - int i; - for(i=dot_offset;i>1;i--) - if(fname[i-1]!=' ') break; - - if(fname[dot_offset+1]=='<' && fname[dot_offset+2]=='>') { - fname[i]=0; - } else { - fname[i]=fname[dot_offset]; - fname[i+1]=fname[dot_offset+1]; - fname[i+2]=fname[dot_offset+2]; - fname[i+3]=0; - } - return fname; + int i; + for(i=dot_offset;i>1;i--) + if(fname[i-1]!=' ') break; + + if(fname[dot_offset+1]=='<' && fname[dot_offset+2]=='>') { + fname[i]=0; + } else { + fname[i]=fname[dot_offset]; + fname[i+1]=fname[dot_offset+1]; + fname[i+2]=fname[dot_offset+2]; + fname[i+3]=0; + } + return fname; } void list_dir() { - struct stat st; - - if (dir!=NULL) - closedir(dir); - - dir=opendir("."); - /** rebuild the file list */ - file_list_clear_all(); - // fname_ndx = 0; - if(dir_depth) add_file (make_file_entry("..", 0, DIR_FLAG)); - while (read_next_dirent (&st)); + DIR * dir; + + // if (dir!=NULL) + // closedir(dir); + + dir=opendir("."); + /** rebuild the file list */ + file_list_clear_all(); + // fname_ndx = 0; + if(dir_depth) add_file (make_file_entry("..", 0, DIR_FLAG)); + while (read_next_dirent (dir)); + + closedir(dir); } -int directory(unsigned char *data) +int ts_dir_ref(unsigned char *data) { char *p; - + char filename[25]; + switch (data[29]) { - case 0x00: /* Pick file for open/delete */ - fprintf (stderr, "Directory req: %02x (pick file)\n", data[29]); - strncpy(filename,(char *)data+4,24); - filename[24]=0; - //if (debug) - fprintf (stderr, "Request: %s\n", filename); - /* Remove trailing spaces */ - for(p = strrchr(filename,' '); p >= filename && *p == ' '; p--) - *p = 0; - cur_file=find_file(filename); - if(cur_file) { - fprintf (stderr, "Found: %s server: %s len:%d\n", cur_file->tsname, cur_file->ufname, cur_file->len); - out_dirent(cur_file); - - + case 0x00: /* Pick file for open/delete */ + fprintf (stderr, "Directory req: %02x (pick file)\n", data[29]); + strncpy(filename,(char *)data+4,24); + filename[24]=0; + //if (debug) + fprintf (stderr, "Request: %s\n", filename); + /* Remove trailing spaces */ + for(p = strrchr(filename,' '); p >= filename && *p == ' '; p--) + *p = 0; + cur_file=find_file(filename); + if(cur_file) { + fprintf (stderr, "Found: %s server: %s len:%d\n", cur_file->tsname, cur_file->ufname, cur_file->len); + out_dirent(cur_file); + + + } else { + // strncpy(cur_file->tsname, filename, 12); + fprintf (stderr, "Can't find: %s\n", filename); + out_dirent(NULL); + // empty_dirent(); + if(filename[dot_offset+1]=='<' && filename[dot_offset+2]=='>') { + cur_file=make_file_entry(ts2unix(filename), 0, DIR_FLAG); } else { - // strncpy(cur_file->tsname, filename, 12); - fprintf (stderr, "Can't find: %s\n", filename); - out_dirent(NULL); - // empty_dirent(); - if(filename[dot_offset+1]=='<' && filename[dot_offset+2]=='>') { - cur_file=make_file_entry(ts2unix(filename), 0, DIR_FLAG); - } else { - cur_file=make_file_entry(ts2unix(filename), 0, 0); - } + cur_file=make_file_entry(ts2unix(filename), 0, 0); } - - break; - case 0x01: /* "first" directory block */ - fprintf (stderr, "Directory req: %02x (first entry)\n", data[29]); - list_dir(); - /** send the file name */ - out_dirent(get_first_file()); - break; - case 0x02: /* "next" directory block */ - fprintf (stderr, "Directory req: %02x (next entry)\n", data[29]); - out_dirent(get_next_file()); - break; - case 0x03: /* "previous" directory block */ - fprintf (stderr, "Directory req: %02x (prev file)\n", data[29]); - out_dirent(get_prev_file()); - break; - case 0x04: /* end directory reference */ - fprintf (stderr, "Directory req: %02x (close dir)\n", data[29]); - closedir(dir); - // file_list_clear_all (); - dir=NULL; - break; + } + + break; + case 0x01: /* "first" directory block */ + fprintf (stderr, "Directory req: %02x (first entry)\n", data[29]); + list_dir(); + /** send the file name */ + out_dirent(get_first_file()); + break; + case 0x02: /* "next" directory block */ + fprintf (stderr, "Directory req: %02x (next entry)\n", data[29]); + out_dirent(get_next_file()); + break; + case 0x03: /* "previous" directory block */ + fprintf (stderr, "Directory req: %02x (prev file)\n", data[29]); + out_dirent(get_prev_file()); + break; + case 0x04: /* end directory reference */ + fprintf (stderr, "Directory req: %02x (close dir)\n", data[29]); + // closedir(dir); + // file_list_clear_all (); + // dir=NULL; + break; } return 0; } @@ -709,139 +689,138 @@ int directory(unsigned char *data) static unsigned char dir_msg[14]; void update_dirname() { - if(dir_depth) { - char dirbuf[1024]; - int i,j; - - if(getcwd(dirbuf, 1024) ) { - memset(dir_msg,' ',sizeof(dir_msg)); - - // fprintf(stderr, "update dir = %s\n", dirbuf); - for(i=strlen(dirbuf); i>=0 ; i--) - if(dirbuf[i]=='/') break; - - // fprintf(stderr, "update dir = %s\n", dirbuf+i); - for(j=0; j<6 && dirbuf[i+j+1] && dirbuf[i+j+1]!='.'; j++) - dir_msg[3+j]=dirbuf[i+j+1]; - - - dir_msg[0]=0x12; - dir_msg[1]=0x0b; - dir_msg[2]=0x00; - dir_msg[9]='.'; - dir_msg[10]='<'; - dir_msg[11]='>'; - // dir_msg[12]=' '; - dir_msg[13]=checksum(dir_msg); - } - } - + if(dir_depth) { + char dirbuf[1024]; + int i,j; + + if(getcwd(dirbuf, 1024) ) { + memset(dir_msg,' ',sizeof(dir_msg)); + + // fprintf(stderr, "update dir = %s\n", dirbuf); + for(i=strlen(dirbuf); i>=0 ; i--) + if(dirbuf[i]=='/') break; + + // fprintf(stderr, "update dir = %s\n", dirbuf+i); + for(j=0; j<6 && dirbuf[i+j+1] && dirbuf[i+j+1]!='.'; j++) + dir_msg[3+j]=dirbuf[i+j+1]; + + + dir_msg[0]=0x12; + dir_msg[1]=0x0b; + dir_msg[2]=0x00; + dir_msg[9]='.'; + dir_msg[10]='<'; + dir_msg[11]='>'; + // dir_msg[12]=' '; + dir_msg[13]=checksum(dir_msg); + } + } + } void send_current_path() { - static unsigned char root[] = {0x12, 0x0b, 0x00, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 0x2e, 0x3c, 0x3e, 0x20, 0x96}; - - fprintf(stderr, "dir depth = %d\n",dir_depth); - if(dir_depth==0) - my_write (client_fd, root, sizeof (root)); - else - my_write (client_fd, dir_msg, sizeof (dir_msg)); + static unsigned char root[] = {0x12, 0x0b, 0x00, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 0x2e, 0x3c, 0x3e, 0x20, 0x96}; + + // fprintf(stderr, "dir depth = %d\n",dir_depth); + if(dir_depth==0) + my_write (client_fd, root, sizeof (root)); + else + my_write (client_fd, dir_msg, sizeof (dir_msg)); } -int open_file(unsigned char *data) +int ts_open(unsigned char *data) { //if(debug) fprintf (stderr, "open_file() mode:%d filename:%s dire->d_name:%s\n", omode,filename,dire->d_name); - unsigned char omode = data[4]; - + unsigned char omode = data[4]; + switch(omode) { - case 0x01: /* New file for my_write */ - fprintf (stderr, "open mode: %02x (write)\n", omode); - if (file >= 0) { - close(file); - file=-1; - } - //file = open (ts2unix((char *) filename),O_CREAT|O_TRUNC|O_WRONLY|O_EXCL,0666); - if(cur_file->flags&DIR_FLAG) { - if(mkdir(cur_file->ufname,0775)==0) { - normal_return(ST_OK); - } else { - normal_return(ST_OPEN_FRMT_MISMATCH); - } + case 0x01: /* New file for my_write */ + fprintf (stderr, "open mode: %02x (write)\n", omode); + if (file >= 0) { + close(file); + file=-1; + } + if(cur_file->flags&DIR_FLAG) { + if(mkdir(cur_file->ufname,0775)==0) { + normal_return(ST_OK); } else { - file = open (cur_file->ufname,O_CREAT|O_TRUNC|O_WRONLY|O_EXCL,0666); - if(file<0) - normal_return(ST_OPEN_FRMT_MISMATCH); - else { - mode=omode; - normal_return(ST_OK); - } - } - break; - case 0x02: /* existing file for append */ - fprintf (stderr, "open mode: %02x (append)\n", omode); - if (file >= 0) { - close(file); - file=-1; - } - if(cur_file==0) { - normal_return(ST_OPEN_FRMT_MISMATCH); - return -1; + normal_return(ST_OPEN_FRMT_MISMATCH); } - file = open (cur_file->ufname, O_WRONLY | O_APPEND); - if (file < 0) - normal_return(ST_OPEN_FRMT_MISMATCH); + } else { + file = open (cur_file->ufname,O_CREAT|O_TRUNC|O_WRONLY|O_EXCL,0666); + if(file<0) + normal_return(ST_OPEN_FRMT_MISMATCH); else { mode=omode; - normal_return (ST_OK); - } - break; - case 0x03: /* Existing file for read */ - fprintf (stderr, "open mode: %02x (read)\n", omode); - if (file >= 0) { - close (file); - file=-1; - } - if(cur_file==0) { - normal_return(ST_FILE_DOES_NOT_EXIST); - return -1; + normal_return(ST_OK); } - - if(cur_file->flags&DIR_FLAG) { - int err=0; - // directory - if(cur_file->ufname[0]=='.' && cur_file->ufname[1]=='.') { - // parent dir - if(dir_depth>0) { - err=chdir(cur_file->ufname); - if(!err) dir_depth--; - } - } else { - // enter dir - err=chdir(cur_file->ufname); - dir_depth++; - } - update_dirname(); - if(err) normal_return(0x37); - else normal_return (ST_OK); + } + break; + case 0x02: /* existing file for append */ + fprintf (stderr, "open mode: %02x (append)\n", omode); + if (file >= 0) { + close(file); + file=-1; + } + if(cur_file==0) { + normal_return(ST_OPEN_FRMT_MISMATCH); + return -1; + } + file = open (cur_file->ufname, O_WRONLY | O_APPEND); + if (file < 0) + normal_return(ST_OPEN_FRMT_MISMATCH); + else { + mode=omode; + normal_return (ST_OK); + } + break; + case 0x03: /* Existing file for read */ + fprintf (stderr, "open mode: %02x (read)\n", omode); + if (file >= 0) { + close (file); + file=-1; + } + if(cur_file==0) { + normal_return(ST_FILE_DOES_NOT_EXIST); + return -1; + } + + if(cur_file->flags&DIR_FLAG) { + int err=0; + // directory + if(cur_file->ufname[0]=='.' && cur_file->ufname[1]=='.') { + // parent dir + if(dir_depth>0) { + err=chdir(cur_file->ufname); + if(!err) dir_depth--; + } } else { - // regular file - file = open (cur_file->ufname, O_RDONLY); - if(file<0) - normal_return(ST_FILE_DOES_NOT_EXIST); - else { - mode = omode; - normal_return (ST_OK); - } + // enter dir + err=chdir(cur_file->ufname); + dir_depth++; } - break; + update_dirname(); + if(err) normal_return(0x37); + else normal_return (ST_OK); + } else { + // regular file + file = open (cur_file->ufname, O_RDONLY); + if(file<0) + normal_return(ST_FILE_DOES_NOT_EXIST); + else { + mode = omode; + normal_return (ST_OK); + } + } + break; } return (file); } -void read_file(void) +void ts_read(void) { int in; @@ -880,12 +859,12 @@ void respond_mystery2() } #endif -void renamefile(unsigned char *data) +void ts_rename(unsigned char *data) { - char *new_name = (char *)data + 4; - + char *new_name = (char *)data + 4; + new_name[24]=0; - + if(rename (cur_file->ufname, ts2unix(new_name))) normal_return(0x4A); else @@ -896,15 +875,14 @@ int readbytes(int handle, void *buf, int max) { int r = 0; int rval; - unsigned i; - + while (r < max) { rval = read (client_fd, buf + r, 1); if (rval < 0) continue; r += rval; } - + return (r); } @@ -956,10 +934,10 @@ int send_installer(char *f) void out_buf(unsigned char *bufp, unsigned len) { unsigned i,j,k; - + if (!debug) return; - + for (i = 0; i < len;) { for (j = 0; j < 2; j++) { for (k = 0; i < len && k < 8; k++, i++) @@ -972,168 +950,167 @@ void out_buf(unsigned char *bufp, unsigned len) void process_Z_cmd(unsigned char *data) { - - if(checksum(data+2)!=data[data[3]+4]) { - if(debug) { - fprintf(stderr, "BAD CHECKSUM!\n"); - fprintf(stderr, "Packet checksum: %02X My checksum: %02X\n", data[data[3]+4], checksum(data+2)); - } - normal_return(ST_PARAMETER_ERROR); // should this be CRC error? - return; - } - + if(checksum(data+2)!=data[data[3]+4]) { + if(debug) { + fprintf(stderr, "BAD CHECKSUM!\n"); + fprintf(stderr, "Packet checksum: %02X My checksum: %02X\n", data[data[3]+4], checksum(data+2)); + } + normal_return(ST_PARAMETER_ERROR); // should this be CRC error? + return; + } + switch(data[2]) { - case 0x00: /* Directory ref */ - directory(data); - break; - case 0x01: /* Open file */ - fprintf(stderr,"open()\n"); - open_file(data); - break; - case 0x02: /* Close file */ - fprintf(stderr,"close()\n"); - if(file>=0) - close(file); - file = -1; - normal_return(ST_OK); - break; - case 0x03: /* Read */ - fprintf(stderr,"read()\n"); - read_file(); - // fprintf(stderr,"read_file end\n"); - break; - case 0x04: /* Write */ - fprintf(stderr,"write()\n"); - if(file<0) { - normal_return(ST_NO_FILENAME); - break; - } - if(mode!=1 && mode !=2) { - normal_return(ST_OPEN_FRMT_MISMATCH); - break; - } - // if(my_write(file,data+4,data[3])!=data[3]) - if(write(file,data+4,data[3])!=data[3]) - normal_return(0x4a); - else - normal_return(ST_OK); - break; - case 0x05: /* Delete */ - fprintf(stderr,"delete()\n"); - if(cur_file->flags&DIR_FLAG) - rmdir(cur_file->ufname); - else - unlink (cur_file->ufname); - list_dir(); - normal_return(0x00); - break; - case 0x06: /* Format disk */ - normal_return(ST_OK); - break; - case 0x07: /* Drive Status */ - normal_return(ST_OK); + case 0x00: /* Directory ref */ + ts_dir_ref(data); + break; + case 0x01: /* Open file */ + fprintf(stderr,"open()\n"); + ts_open(data); + break; + case 0x02: /* Close file */ + fprintf(stderr,"close()\n"); + if(file>=0) + close(file); + file = -1; + normal_return(ST_OK); + break; + case 0x03: /* Read */ + fprintf(stderr,"read()\n"); + ts_read(); + // fprintf(stderr,"read_file end\n"); + break; + case 0x04: /* Write */ + fprintf(stderr,"write()\n"); + if(file<0) { + normal_return(ST_NO_FILENAME); break; - case 0x08: /* TS-DOS DME Request */ - fprintf(stderr,"DME()\n"); - // chage to FDC mode (?) - send_current_path(); + } + if(mode!=1 && mode !=2) { + normal_return(ST_OPEN_FRMT_MISMATCH); break; - case 0x0C: /* Condition */ + } + // if(my_write(file,data+4,data[3])!=data[3]) + if(write(file,data+4,data[3])!=data[3]) + normal_return(0x4a); + else normal_return(ST_OK); - break; - case 0x0D: /* Rename File */ - fprintf(stderr,"rename()\n"); - renamefile(data); - list_dir(); - break; - #if 0 - case 0x23: /* TS-DOS mystery command 2 */ - respond_mystery2(); - break; - case 0x31: /* TS-DOS mystery command 1 */ - respond_mystery(); - break; - #endif + break; + case 0x05: /* Delete */ + fprintf(stderr,"delete()\n"); + if(cur_file->flags&DIR_FLAG) + rmdir(cur_file->ufname); + else + unlink (cur_file->ufname); + list_dir(); + normal_return(0x00); + break; + case 0x06: /* Format disk */ + normal_return(ST_OK); + break; + case 0x07: /* Drive Status */ + normal_return(ST_OK); + break; + case 0x08: /* TS-DOS DME Request */ + fprintf(stderr,"DME()\n"); + // chage to FDC mode (?) + send_current_path(); + break; + case 0x0C: /* Condition */ + normal_return(ST_OK); + break; + case 0x0D: /* Rename File */ + fprintf(stderr,"rename()\n"); + ts_rename(data); + list_dir(); + break; +#if 0 + case 0x23: /* TS-DOS mystery command 2 */ + respond_mystery2(); + break; + case 0x31: /* TS-DOS mystery command 1 */ + respond_mystery(); + break; +#endif default: - return; - break; + return; + break; } if(data[2]!=0x07 && data[2]!=0x08) - m1rec=0; - + m1rec=0; + return; } int be_disk(void) { - unsigned char read_buf[131]; - unsigned len; - unsigned char recv; - - unsigned cmd_len; - unsigned pos; - - fprintf(stderr,"be_disk\n"); - pos=0; - cmd_len=0; - - while(1) { + unsigned char read_buf[131]; + unsigned len; + unsigned char recv; + + unsigned cmd_len; + unsigned pos; + + fprintf(stderr,"be_disk\n"); + pos=0; + cmd_len=0; + + while(1) { - do { - len=read (client_fd, &recv, 1); - } while (len!=1); - - // fprintf(stderr,"pos:%d %02x:%c\n",pos,recv,recv); - - if(pos==0) { - switch(recv) { - case 'Z': - cmd_len=4; - read_buf[pos++]=recv; - break; - case 'R': - cmd_len=7; - read_buf[pos++]=recv; - break; - case 'M': - cmd_len=2; - read_buf[pos++]=recv; - break; - case '\r': - // send feedback? - // normal_return(0x00); - break; - default: - break; - } - } else { // not first char - read_buf[pos++]=recv; - if(pos>=cmd_len) { - if(read_buf[0]=='Z' && cmd_len ==4) { - cmd_len=read_buf[3]+5; - } else { - if (debug) { - fprintf (stderr, "RECV: "); - out_buf (read_buf, cmd_len); - } + do { + len=read (client_fd, &recv, 1); + } while (len!=1); - // cmd end - switch(read_buf[0]) { - case 'Z': - process_Z_cmd(read_buf); - break; - case 'M': - m1rec=true; - break; - case 'R': - break; + // fprintf(stderr,"pos:%d %02x:%c\n",pos,recv,recv); + + if(pos==0) { + switch(recv) { + case 'Z': + cmd_len=4; + read_buf[pos++]=recv; + break; + case 'R': + cmd_len=7; + read_buf[pos++]=recv; + break; + case 'M': + cmd_len=2; + read_buf[pos++]=recv; + break; + case '\r': + // send feedback? + // normal_return(0x00); + break; + default: + break; + } + } else { // not first char + read_buf[pos++]=recv; + if(pos>=cmd_len) { + if(read_buf[0]=='Z' && cmd_len ==4) { + cmd_len=read_buf[3]+5; + } else { + if (debug) { + fprintf (stderr, "RECV: "); + out_buf (read_buf, cmd_len); + } + + // cmd end + switch(read_buf[0]) { + case 'Z': + process_Z_cmd(read_buf); + break; + case 'M': + m1rec=true; + break; + case 'R': + break; + } + // send response + cmd_len = 0; + pos = 0; + } + } } - // send response - cmd_len = 0; - pos = 0; - } - } - } } return 0; } From 7e1ff131eceffd15ef9f7f67e2db94a223ed1cdb Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 23 May 2022 17:46:35 -0400 Subject: [PATCH 009/206] style consistency --- dl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dl.c b/dl.c index 142cac6..3a9d698 100644 --- a/dl.c +++ b/dl.c @@ -254,7 +254,7 @@ unsigned char calc_sum(unsigned char type, unsigned char length, unsigned char * sum+=length; for(i=0;i Date: Wed, 25 May 2022 16:03:24 -0700 Subject: [PATCH 010/206] many code cleanups. converted all source to trab indent --- dl.c | 112 +++++++++++++++++++++++++++-------------------------------- 1 file changed, 52 insertions(+), 60 deletions(-) diff --git a/dl.c b/dl.c index d660d21..6bf0a8b 100644 --- a/dl.c +++ b/dl.c @@ -157,7 +157,7 @@ int send_installer(char *f); void print_usage() { - fprintf (stderr, "DeskLink++ " STRINGIFY(APP_VERSION) " usage:\n"); + fprintf (stderr, "DeskLink+ " STRINGIFY(APP_VERSION) " usage:\n"); fprintf (stderr, "\n"); fprintf (stderr, "%s [tty_device] [options]\n",args[0]); fprintf (stderr, "\n"); @@ -610,17 +610,13 @@ char *ts2unix(char *fname) } -void list_dir() +void update_file_list() { DIR * dir; - // if (dir!=NULL) - // closedir(dir); - dir=opendir("."); /** rebuild the file list */ file_list_clear_all(); - // fname_ndx = 0; if(dir_depth) add_file (make_file_entry("..", 0, DIR_FLAG)); while (read_next_dirent (dir)); @@ -663,24 +659,22 @@ int ts_dir_ref(unsigned char *data) break; case 0x01: /* "first" directory block */ - fprintf (stderr, "Directory req: %02x (first entry)\n", data[29]); - list_dir(); + // fprintf (stderr, "Directory req: %02x (first entry)\n", data[29]); + update_file_list(); /** send the file name */ out_dirent(get_first_file()); break; case 0x02: /* "next" directory block */ - fprintf (stderr, "Directory req: %02x (next entry)\n", data[29]); + // fprintf (stderr, "Directory req: %02x (next entry)\n", data[29]); out_dirent(get_next_file()); break; case 0x03: /* "previous" directory block */ - fprintf (stderr, "Directory req: %02x (prev file)\n", data[29]); + // fprintf (stderr, "Directory req: %02x (prev file)\n", data[29]); out_dirent(get_prev_file()); break; case 0x04: /* end directory reference */ - fprintf (stderr, "Directory req: %02x (close dir)\n", data[29]); - // closedir(dir); + // fprintf (stderr, "Directory req: %02x (close dir)\n", data[29]); // file_list_clear_all (); - // dir=NULL; break; } return 0; @@ -740,7 +734,7 @@ int ts_open(unsigned char *data) case 0x01: /* New file for my_write */ fprintf (stderr, "open mode: %02x (write)\n", omode); if (file >= 0) { - close(file); + close (file); file=-1; } if(cur_file->flags&DIR_FLAG) { @@ -784,7 +778,7 @@ int ts_open(unsigned char *data) file=-1; } if(cur_file==0) { - normal_return(ST_FILE_DOES_NOT_EXIST); + normal_return (ST_FILE_DOES_NOT_EXIST); return -1; } @@ -794,7 +788,7 @@ int ts_open(unsigned char *data) if(cur_file->ufname[0]=='.' && cur_file->ufname[1]=='.') { // parent dir if(dir_depth>0) { - err=chdir(cur_file->ufname); + err=chdir (cur_file->ufname); if(!err) dir_depth--; } } else { @@ -803,13 +797,13 @@ int ts_open(unsigned char *data) dir_depth++; } update_dirname(); - if(err) normal_return(0x37); + if(err) normal_return (0x37); else normal_return (ST_OK); } else { // regular file file = open (cur_file->ufname, O_RDONLY); if(file<0) - normal_return(ST_FILE_DOES_NOT_EXIST); + normal_return (ST_FILE_DOES_NOT_EXIST); else { mode = omode; normal_return (ST_OK); @@ -839,6 +833,32 @@ void ts_read(void) my_write (client_fd, buf, 3+in); } +void ts_write(unsigned char *data) +{ + if(file<0) { + normal_return(ST_NO_FILENAME); + return; + } + if(mode!=1 && mode !=2) { + normal_return(ST_OPEN_FRMT_MISMATCH); + return; + } + if(write (file,data+4,data[3]) != data[3]) + normal_return (0x4a); + else + normal_return (ST_OK); +} + +void ts_delete(void) +{ + if(cur_file->flags&DIR_FLAG) + rmdir(cur_file->ufname); + else + unlink (cur_file->ufname); + update_file_list(); + normal_return (ST_OK); +} + #if 0 void respond_mystery() { @@ -961,67 +981,41 @@ void process_Z_cmd(unsigned char *data) switch(data[2]) { case 0x00: /* Directory ref */ - ts_dir_ref(data); + ts_dir_ref (data); break; case 0x01: /* Open file */ - fprintf(stderr,"open()\n"); - ts_open(data); + ts_open (data); break; case 0x02: /* Close file */ - fprintf(stderr,"close()\n"); if(file>=0) - close(file); + close (file); file = -1; - normal_return(ST_OK); + normal_return (ST_OK); break; case 0x03: /* Read */ - fprintf(stderr,"read()\n"); ts_read(); - // fprintf(stderr,"read_file end\n"); break; case 0x04: /* Write */ - fprintf(stderr,"write()\n"); - if(file<0) { - normal_return(ST_NO_FILENAME); - break; - } - if(mode!=1 && mode !=2) { - normal_return(ST_OPEN_FRMT_MISMATCH); - break; - } - // if(my_write(file,data+4,data[3])!=data[3]) - if(write(file,data+4,data[3])!=data[3]) - normal_return(0x4a); - else - normal_return(ST_OK); + ts_write (data); break; case 0x05: /* Delete */ - fprintf(stderr,"delete()\n"); - if(cur_file->flags&DIR_FLAG) - rmdir(cur_file->ufname); - else - unlink (cur_file->ufname); - list_dir(); - normal_return(0x00); + ts_delete (); break; case 0x06: /* Format disk */ - normal_return(ST_OK); + normal_return (ST_OK); break; case 0x07: /* Drive Status */ - normal_return(ST_OK); + normal_return (ST_OK); break; - case 0x08: /* TS-DOS DME Request */ - fprintf(stderr,"DME()\n"); - // chage to FDC mode (?) - send_current_path(); + case 0x08: /* TS-DOS DME Request / change to FDC mode */ + send_current_path (); break; case 0x0C: /* Condition */ - normal_return(ST_OK); + normal_return (ST_OK); break; case 0x0D: /* Rename File */ - fprintf(stderr,"rename()\n"); - ts_rename(data); - list_dir(); + ts_rename (data); + update_file_list (); break; #if 0 case 0x23: /* TS-DOS mystery command 2 */ @@ -1050,18 +1044,16 @@ int be_disk(void) unsigned cmd_len; unsigned pos; - fprintf(stderr,"be_disk\n"); pos=0; cmd_len=0; while(1) { do { + // this takes 100% CPU len=read (client_fd, &recv, 1); } while (len!=1); - // fprintf(stderr,"pos:%d %02x:%c\n",pos,recv,recv); - if(pos==0) { switch(recv) { case 'Z': From dfebe2fad1b7036c18cb7e8827783b83d8b70bb7 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 30 May 2022 19:55:52 -0400 Subject: [PATCH 011/206] constants and shuffling --- AUTHORS | 2 +- CHANGES | 2 +- dir_list.c | 30 +- dir_list.h | 16 +- dl.c | 1776 ++++++++++++++++++++++++++++++---------------------- 5 files changed, 1039 insertions(+), 787 deletions(-) diff --git a/AUTHORS b/AUTHORS index a34c8e6..ef4a0d8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -2,7 +2,7 @@ dlplus: Stephen Hurd Initial version? John R. Hogerhuis Enhancements including WP-2 support Brian K. White Bootstrap function and loaders library -Gabriele Gorla Support for subdirectories +Gabriele Gorla Support for TS-DOS subdirectories TPDD Clients & loaders: Kurt McCullum TS-DOS loaders diff --git a/CHANGES b/CHANGES index 3c00925..6641077 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,5 @@ 20220516 - Added support for subdirectories + (GGLabs) Added support for TS-DOS subdirectories 20210222 Increased default sleep between each byte in bootstrap to 6 ms diff --git a/dir_list.c b/dir_list.c index b411612..45b6745 100644 --- a/dir_list.c +++ b/dir_list.c @@ -35,12 +35,10 @@ static FILE_ENTRY * current_record (void); int file_list_init () { tblp = malloc (sizeof (FILE_ENTRY) * QUANTUM ); - if (!tblp) - return -1; + if (!tblp) return -1; allocated = QUANTUM; ndx = 0; cur = 0; - return 0; } @@ -49,10 +47,8 @@ int file_list_cleanup() allocated = 0; ndx = 0; cur = 0; - if (tblp) - free (tblp); + if (tblp) free (tblp); tblp = NULL; - return 0; } @@ -65,29 +61,29 @@ int add_file (FILE_ENTRY *fe) { /** reallocate QUANTUM more records if out of space */ if (ndx >= allocated) - { + { /** resize the array */ tblp = realloc (tblp, (allocated + QUANTUM) * sizeof (FILE_ENTRY) ); if (!tblp) return -1; allocated += QUANTUM; } - + /** reference the entry */ if (!tblp) return -1; - + memcpy (tblp+ndx, fe, sizeof(FILE_ENTRY)); /** adjust cur to address this record, ndx to next avail */ cur = ndx; ndx++; - + return 0; } -FILE_ENTRY * find_file (char *tsname) +FILE_ENTRY * find_file (char *client_fname) { int i; for(i=0;i ndx) return NULL; - + cur++; return current_record (); } @@ -113,7 +109,7 @@ FILE_ENTRY * get_prev_file (void) { if(cur==0) return NULL; - + cur--; return current_record (); } @@ -121,12 +117,12 @@ FILE_ENTRY * get_prev_file (void) static FILE_ENTRY * current_record (void) { FILE_ENTRY *ep; - + /** return error if out-of-range */ if (cur >= ndx) return NULL; - + if (!tblp) return NULL; - + ep = tblp + cur; return ep; } diff --git a/dir_list.h b/dir_list.h index 0d6ab55..9d7c036 100644 --- a/dir_list.h +++ b/dir_list.h @@ -18,35 +18,31 @@ Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ - #ifndef DIR_LIST #define DIR_LIST #include #define QUANTUM 10 -#define FNAME_MAX 32 - +#define TPDD_FILENAME_LEN 24 +#define LOCAL_FILENAME_MAX 256 #define DIR_FLAG 0x01 - typedef struct { - char tsname[12]; // ts-dos file name - char ufname[FNAME_MAX]; // unix file name - u_int32_t len; // length + char client_fname[TPDD_FILENAME_LEN+1]; + char local_fname[LOCAL_FILENAME_MAX]; + u_int32_t len; u_int8_t flags; } FILE_ENTRY; - int file_list_init (); int file_list_cleanup (); void file_list_clear_all (); int add_file (FILE_ENTRY *fe); - -FILE_ENTRY * find_file (char *tsname); +FILE_ENTRY * find_file (char *client_fname); FILE_ENTRY * get_first_file (void); FILE_ENTRY * get_next_file (void); FILE_ENTRY * get_prev_file (void); diff --git a/dl.c b/dl.c index 7d0ce1c..3a3809e 100644 --- a/dl.c +++ b/dl.c @@ -9,12 +9,10 @@ /* DeskLink+ -Extensions and enhancements Copyright (C) 2005 John R. Hogerhuis -20191226 Brian K. White - repackaging, reorganizing, bootstrap function +2005 John R. Hogerhuis Extensions and enhancements +2019 Brian K. White - repackaging, reorganizing, bootstrap function Kurt McCullum - TS-DOS loaders - -Copyright (c) 2022 Gabriele Gorla -Add support for subdirectories, general cleanup. +2022 Gabriele Gorla - Add support for TS-DOS subdirectories DeskLink+ is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or any @@ -31,6 +29,41 @@ Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ +/* Some basic info about TPDD protocol formatting that explains + * some frequent idioms in here. TPDD Operation-mode transactions, both + * commands issued by the client, and responses issued by the server, + * have this general form: + * + * type - 1 byte the format or type of this packet + * length - 1 byte number of bytes that come next + * payload - length bytes range is 0-128 + * checksum - 1 byte includes type, length, and payload + * + * Most functions pass around a buffer containing this entire + * structure, often minus the checksum. checksum() itself + * takes this as input for instance. + * + * Frequently a buffer will be declared with a SIZE+3, which is + * SIZE will be a pertinent payload size of a given command, + * like 128 for the max possible, or 11 for a DME message, etc, + * and the +3 is 3 extra bytes for type, length, and checksum. + * + * Similarly, most functions include frequent references to these + * byte offsets foo[0], foo[1], foo[2], foo+2, foo[foo[1]+2], etc. + * + * functions named req_*() receive a command in this format + * functions named ret_*() generate a response in this format + * + * There is also an FDC-mode that TPDD1/FB-100 drives have, which has + * a completely different format, but to date this program only + * implements Operation-mode. TPDD2 drives do not have FDC-mode, but + * they do have extra Operation-mode commands that TPDD1 does not have, + * some of which this program does implement. + * + * See the ref/ directory for more details, including a copy of the + * TPDD1 software manual. There is no TPDD2 software manual known yet. + */ + #include #include #include @@ -40,6 +73,7 @@ MA 02111, USA. #include #include #include +#include #include #include #include @@ -63,6 +97,8 @@ MA 02111, USA. #include #endif +/*** config **************************************************/ + #ifndef APP_LIB_DIR #define APP_LIB_DIR . #endif @@ -83,105 +119,253 @@ MA 02111, USA. #define DEFAULT_CLIENT_APP TEENY #endif -#define DEFAULT_BOOTSTRAP_BYTE_MSEC 6 - +#define DEFAULT_BASIC_BYTE_MSEC 6 +#define DEFAULT_TPDD_FILE_ATTRIB 'F' // 0x46 +#define DEFAULT_DME_ROOT_LABEL "ROOT " +#define DEFAULT_DME_PARENT_LABEL "PARENT" + +//////////////////////////////////////////////////////////////////////// +// +// Experimental feature selections + +// serial tty read() behavior +// VMIN blocking method not working. The idea was to set VTIME=0 VMIN=nbytes +// just before each read(), to make read() block until n bytes have been +// received, instead of polling. Seems to be only partially working. It +// does seem to produce larger contiguous reads, but still not full. +// +// Go into TS-DOS and select a large file and try to save it. +// F1-Save -> req_write() -> read_client_tty() -> "expected 129 bytes, got 64" +// Very consistent and repeatable, every single time not intermittent. +// +// And yet perror() says Success, and read() returnd 64 not 0 or -1. +// So read() is not blocking like every web page claims this combination +// of settings will do. +// +// However, adding retry around that works fine. See read_client_tty(). +// +// 0 Is the safest fallback in case of problems. It's still better now +// than it used to be thanks to changing the loop to read in as big of +// chunks as read() will deliver, instead of one byte per read(), and +// because of the VTIME/VMIN defaults below, now even though it doesn't +// block for the whole read like I want, it does at least block until at least +// the first byte, which is enough to free the cpu 99%. No race. +// +// 1 Is described above, and exhibits the incomplete reads problem. +// +// 2 ... is "1" with retries instead of bailing. Best of both worlds? +// 64 out of 129 bytes is still 64x better than 1. I'm not sure if it's +// expensive or abusive or otherwise not recommended to be calling +// tcsetattr() so frequently. It may be that 0 is best. +#define READ_TTY_METHOD 2 // 0 normal, 1 VMIN blocking, 2 VMIN blocking plus retries. + +// Two different forms of the ZZ scanner at the top of get_opr_cmd() +// Both seem solid. +#define ZZ_SCAN_METHOD 1 + +// These values are set to a dynamic value just before every read() +// and restored immediately after if TTY_READ_METHOD>0 . +// These are the all-the-time defaults for TTY_READ_METHOD=0, +// and in between reads in all cases. These are reasonable defaults. +// In particulare they make the read() loop block at least until the +// first/next byte is available, which is enough to free the cpu +// even without the full 128-byte blocking I was hoping for. +#define C_CC_VMIN 1 +#define C_CC_VTIME 5 + +// This controls if the tty open() includes O_NONBLOCK. Man pages +// and web guides suggest this just sets if the tty will honor +// or ignore the DSR/DTR/DCD lines. Others say that VTIME/VMIN +// will *not* block if O_NONBLOCK and/or O_NDELAY or non-canonical +// mode in general are set. +// The original code had O_NONBLOCK in the open() call. (Same as +// 1 here). TS-DOS does use DSR/DTR to detect drive readiness +// with a real drive, and has no other form of flow conytrol. +// It can be confusing or annoying for users unfamiliar with +// serial cabling, but I suggest leaving this false / 0. +#define IGNORE_DSR 0 + +/*************************************************************/ + +// drive firmware/protocol constants + +// TPDD request block formats +#define REQ_DIRENT 0x00 +#define REQ_OPEN 0x01 +#define REQ_CLOSE 0x02 +#define REQ_READ 0x03 +#define REQ_WRITE 0x04 +#define REQ_DELETE 0x05 +#define REQ_FORMAT 0x06 +#define REQ_STATUS 0x07 +#define REQ_FDC 0x08 +#define REQ_SEEK 0x09 +#define REQ_TELL 0x0A +#define REQ_SET_EXT 0x0B +#define REQ_CONDITION 0x0C // TPDD2 +#define REQ_RENAME 0x0D +#define REQ_REQ_EXT_QUERY 0x0E +#define REQ_COND_LIST 0x0F +#define REQ_TSDOS_MYSTERY 0x23 // TS-DOS mystery - part of drive/emulator detection +#define REQ_CACHE_LOAD 0x30 // TPDD2 sector access +#define REQ_CACHE_WRITE 0x31 // TPDD2 sector access +#define REQ_CACHE_READ 0x32 // TPDD2 sector access + +// TPDD return block formats +#define RET_READ 0x10 +#define RET_DIRENT 0x11 +#define RET_STD 0x12 // shared return format for: error open close delete status write +#define RET_TSDOS_MYSTERY 0x14 +#define RET_CONDITION 0x15 // TPDD2 +#define RET_CACHE_STD 0x38 // TPDD2 shared return format for: sector_cache write_cache +#define RET_READ_CACHE 0x39 // TPDD2 + +// directory entry request types +#define DIRENT_SET_NAME 0x00 +#define DIRENT_GET_FIRST 0x01 +#define DIRENT_GET_NEXT 0x02 +#define DIRENT_GET_PREV 0x03 // TPDD2 +#define DIRENT_CLOSE 0x04 // TPDD2 + +// file open access modes +#define F_OPEN_NONE 0x00 // used in here, not part of protocol +#define F_OPEN_WRITE 0x01 +#define F_OPEN_APPEND 0x02 +#define F_OPEN_READ 0x03 + +// TPDD Operation-mode error codes +#define ERR_SUCCESS 0x00 // 'Operation Complete' +#define ERR_NO_FILE 0x10 // 'File Not Found' +#define ERR_EXISTS 0x11 // 'File Exists' +#define ERR_CMDSEQ 0x30 // 'Command Parameter or Sequence Error' +#define ERR_DIR_SEARCH 0x31 // 'Directory Search Error' +#define ERR_BANK 0x35 // 'Bank Error' +#define ERR_PARAM 0x36 // 'Parameter Error' +#define ERR_FMT_MISMATCH 0x37 // 'Open Format Mismatch' +#define ERR_EOF 0x3F // 'End of File' +#define ERR_NO_START 0x40 // 'No Start Mark' +#define ERR_ID_CRC 0x41 // 'ID CRC Check Error' +#define ERR_SECTOR_LEN 0x42 // 'Sector Length Error' +#define ERR_FMT_VERIFY 0x44 // 'Format Verify Error' +#define ERR_NOT_FORMATTED 0x45 // 'Disk Not Formatted' +#define ERR_FMT_INTERRUPT 0x46 // 'Format Interruption' +#define ERR_ERASE_OFFSET 0x47 // 'Erase Offset Error' +#define ERR_DATA_CRC 0x49 // 'DATA CRC Check Error' +#define ERR_SECTOR_NUM 0x4A // 'Sector Number Error' +#define ERR_READ_TIMEOUT 0x4B // 'Read Data Timeout' +#define ERR_SECTOR_NUM2 0x4D // 'Sector Number Error' +#define ERR_WRITE_PROTECT 0x50 // 'Write-Protected Disk' +#define ERR_DISK_NOINIT 0x5E // 'Disk Not Formatted' +#define ERR_DIR_FULL 0x60 // 'Disk Full or Max File Size Exceeded or Directory Full' / TPDD2 'Directory Full' +#define ERR_DISK_FULL 0x61 // 'Disk Full' +#define ERR_FILE_LEN 0x6E // 'File Too Long' (real drive limits to 65534, we exceed for REXCPM) +#define ERR_NO_DISK 0x70 // 'No Disk' +#define ERR_DISK_CHG 0x71 // 'Disk Not Inserted or Disk Change Error' / TPDD2 'Disk Change Error' +#define ERR_DEFECTIVE 0x83 // 'Defective Disk' (real drive needs a power-cycle to clear this error) + +// TPDD1 FDC-mode commands +#define FDC_SET_MODE 'M' // set Operation-mode or FDC-mode +#define FDC_CONDITION 'D' // drive condition +#define FDC_FORMAT 'F' // format disk +#define FDC_FORMAT_NV 'G' // format disk without verify +#define FDC_READ_ID 'A' // read sector ID +#define FDC_READ_SECTOR 'R' // read sector data +#define FDC_SEARCH_ID 'S' // search sector ID +#define FDC_WRITE_ID 'B' // write sector ID +#define FDC_WRITE_ID_NV 'C' // write sector ID without verify +#define FDC_WRITE_SECTOR 'W' // write sector data +#define FDC_WRITE_SECTOR_NV 'X' // write sector data without verify + +// TPDD1 FDC-mode error codes +// There is no documentation for FDC error codes. +// These are guesses from experimenting. +// These appear in the first hex pair of an 8-byte FDC-mode response. +#define ERR_FDC_SUCCESS 0 // 'OK' +#define ERR_FDC_LSN_LO 17 // 'Logical Sector Number Below Range' +#define ERR_FDC_LSN_HI 18 // 'Logical Sector Number Above Range' +#define ERR_FDC_PSN HI 19 // 'Physical Sector Number Above Range' +#define ERR_FDC_PARAM 33 // 'Parameter Invalid, Wrong Type' +#define ERR_FDC_LSSC_LO 50 // 'Invalid Logical Sector Size Code' +#define ERR_FDC_LSSC_HI 51 // 'Logical Sector Size Code Above Range' +#define ERR_FDC_NOT_FORMATTED 160 // 'Disk Not Formatted' +#define ERR_FDC_READ 161 // 'Read Error' +#define ERR_FDC_WRITE_PROTECT 176 // 'Write-Protected Disk' +#define ERR_FDC_COMMAND 193 // 'Invalid Command' +#define ERR_FDC_NO_DISK 209 // 'Disk Not Inserted' + +// fixed lengths +#define TPDD_DATA_MAX 0x80 +#define TPDD_FREE_SECTORS 0x50 // max valid 80 sectors +#define LEN_RET_STD 0x01 +#define LEN_RET_DME 0x0B +#define LEN_RET_DIRENT 0x1C + +// KC-85 platform BASIC interpreter EOF byte for bootstrap() #define BASIC_EOF 0x1A -#define STRINGIFY2(X) #X -#define STRINGIFY(X) STRINGIFY2(X) - -#define FREE_BLOCKS 157 - -#define ST_OK 0x00 -#define ST_FILE_DOES_NOT_EXIST 0x10 -#define ST_FILE_EXIST 0x11 -#define ST_NO_FILENAME 0x30 -#define ST_DIR_SEARCH_ERROR 0x31 -#define ST_BANK_ERROR 0x35 -#define ST_PARAMETER_ERROR 0x36 -#define ST_OPEN_FRMT_MISMATCH 0x37 -#define ST_EOF 0x3f -#define ST_NO_START_MARK 0x40 -#define ST_ID_CRC_ERROR 0x41 -#define ST_SECTOR_LEN_ERROR 0x42 -#define ST_FRMT_VERIFY_ERROR 0x44 -#define ST_FRMT_INTERRUPTION 0x46 -#define ST_ERASE_OFFSET_ERROR 0x47 -#define ST_DATA_CRC_ERROR 0x49 -#define ST_SECTOR_NUMBER_ERROR 0x4a -#define ST_READ_DATA_TIMEOUT 0x4b -#define ST_SECTOR_NUMBER_ERR2 0x4d // ??? -#define ST_DISK_WRITE_PROTECT 0x50 -#define ST_UNINITIALIZED_DISK 0x5e -#define ST_DIRECTORY_FULL 0x60 -#define ST_DISK_FULL 0x61 -#define ST_FILE_TOO_LONG 0x6e -#define ST_NO_DISK 0x70 -#define ST_DISK_CHANGE_ERROR 0x71 - // configuration -bool debug = false; +int debug = 0; bool upcase = false; bool rtscts = false; -unsigned dot_offset = 6; // 6 for 100/102/200/NEC/K85/M10 , 8 for WP-2 +unsigned dot_offset = 6; // 6 for KC-85 platform, 8 for WP-2 int client_baud = DEFAULT_CLIENT_BAUD; -int bootstrap_byte_msec = DEFAULT_BOOTSTRAP_BYTE_MSEC; +int BASIC_byte_msec = DEFAULT_BASIC_BYTE_MSEC; +const char dme_root_label[6] = DEFAULT_DME_ROOT_LABEL; // state bool getty_mode = false; bool bootstrap_mode = false; // globals -bool m1rec = false; - -int file = -1; -int mode = 0; /* 0=unopened, 1=Write, 3=Read, 2=Append */ -int client_fd = -1; // client tty file handle - char **args; -struct termios origt; -struct termios ti; - -unsigned char buf[131]; +int f_open_mode = F_OPEN_NONE; +int client_tty_fd = -1; +struct termios client_termios; +bool m1rec = false; +int o_file_h = -1; +unsigned char buf[TPDD_DATA_MAX+3]; +char dme_cwd[6] = DEFAULT_DME_ROOT_LABEL; FILE_ENTRY *cur_file; int dir_depth=0; -int be_disk(void); - -void out_buf(unsigned char *bufp, unsigned len); +// blarghamagargle +void ret_std(unsigned char err); -int bootstrap(char *f); - -int send_installer(char *f); +#define STRINGIFY2(X) #X +#define STRINGIFY(X) STRINGIFY2(X) void print_usage() { - fprintf (stderr, "DeskLink+ " STRINGIFY(APP_VERSION) " usage:\n"); - fprintf (stderr, "\n"); - fprintf (stderr, "%s [tty_device] [options]\n",args[0]); - fprintf (stderr, "\n"); - fprintf (stderr, "tty_device:\n"); - fprintf (stderr, " Serial device the client is connected to\n"); - fprintf (stderr, " examples: ttyS0, ttyUSB0, /dev/pts/foo4, etc...\n"); - fprintf (stderr, " default = " STRINGIFY(DEFAULT_CLIENT_TTY) "\n"); - fprintf (stderr, " \"-\" = stdin/stdout (/dev/tty)\n"); // 20191227 bkw - could this be used with inetd to make a network tpdd server? - fprintf (stderr, "\n"); - fprintf (stderr, "options:\n"); - fprintf (stderr, " -h Print this help\n"); - fprintf (stderr, " -b=file Bootstrap: Install onto the portable\n"); - fprintf (stderr, " -v Verbose/debug mode\n"); - fprintf (stderr, " -g Getty mode. Run as daemon\n"); - fprintf (stderr, " -p=dir Path to files to be served, default is \".\"\n"); - fprintf (stderr, " -w WP-2 compatibility mode (8.2 filenames)\n"); - fprintf (stderr, " -u Uppercase all filenames\n"); - fprintf (stderr, " -c Hardware flow control (RTS/CTS)\n"); - fprintf (stderr, " -z=# Sleep # milliseconds between each byte while sending bootstrap file (default " STRINGIFY(DEFAULT_BOOTSTRAP_BYTE_MSEC) ")\n"); - fprintf (stderr, "\n"); - fprintf (stderr, "available bootstrap files:\n"); - // blargh ... + fprintf (stderr, + "%1$s - DeskLink+ " STRINGIFY(APP_VERSION) "\nusage:\n\n" + "%1$s [tty_device] [options]\n" + "\n" + "tty_device:\n" + " Serial device the client is connected to\n" + " examples: ttyS0, ttyUSB0, /dev/pts/foo4, etc...\n" + " default = " STRINGIFY(DEFAULT_CLIENT_TTY) "\n" + " \"-\" = stdin/stdout (/dev/tty)\n" + "\n" + "options:\n" + " -h Print this help\n" + " -b=file Bootstrap: Install onto the portable\n" + " -v Verbose/debug mode (more -v's = more verbose)\n" + " -g Getty mode. Run as daemon\n" + " -p=dir Path to files to be served, default is \".\"\n" + " -w WP-2 compatibility mode (8.2 filenames)\n" + " -u Uppercase all filenames\n" + " -c Hardware flow control (RTS/CTS)\n" + " -z=# Sleep # milliseconds between each byte while sending bootstrap file (default " STRINGIFY(DEFAULT_BASIC_BYTE_MSEC) ")\n" + "\n" + "available bootstrap files (in "STRINGIFY(APP_LIB_DIR)"):\n" + ,args[0]); + + // FIXME - This is crap using system(), and relying on an external, + // just to get some filenames, but I don't want to write /bin/find. - bkw + // works but blargh ... //(void)(system ("find " STRINGIFY(APP_LIB_DIR) " -regex \'.*/.+\\.\\(100\\|200\\|NEC\\|M10\\|K85\\)$\' -printf \'\%f\\n\' >&2")+1); - // more blargh... (using system("find...") just to get some filenames) + // even more blargh... fprintf (stderr, " TRS-80 Model 100 / Tandy 102 : "); (void)(system ("find " STRINGIFY(APP_LIB_DIR) " -regex \'.*/.+\\.100$\' -printf \'\%f \' >&2")+1); fprintf (stderr, "\n Tandy 200 : "); @@ -192,731 +376,776 @@ void print_usage() (void)(system ("find " STRINGIFY(APP_LIB_DIR) " -regex \'.*/.+\\.K85$\' -printf \'\%f \' >&2")+1); fprintf (stderr, "\n Olivetti M-10 : "); (void)(system ("find " STRINGIFY(APP_LIB_DIR) " -regex \'.*/.+\\.M10$\' -printf \'\%f \' >&2")+1); - fprintf (stderr, "\n\n"); - fprintf (stderr, "Bootstrap Examples:\n"); - fprintf (stderr, " %s -b=TS-DOS.100\n",args[0]); - fprintf (stderr, " %s -b=~/Documents/TRS-80/M100SIG/Lib-03-TELCOM/XMDPW5.100\n",args[0]); - fprintf (stderr, " %s -b=./rxcini.DO\n",args[0]); - fprintf (stderr, "\n"); - fprintf (stderr, "TPDD Server Examples:\n"); - fprintf (stderr, " %s\n",args[0]); - fprintf (stderr, " %s ttyUSB1 -p=~/Documents/wp2files -w -v\n",args[0]); - fprintf (stderr, "\n"); + + fprintf (stderr, + "\n\n" + "Bootstrap Examples:\n" + " %1$s -b=TS-DOS.100 (no leading / or ./ takes from above)\n" + " %1$s -b=~/Documents/TRS-80/M100SIG/Lib-03-TELCOM/XMDPW5.100\n" + " %1$s -b=./rxcini.DO\n" + "\n" + "TPDD Server Examples:\n" + " %1$s\n" + " %1$s ttyUSB1 -p=~/Documents/wp2files -w -v\n" + "\n" + ,args[0]); } -void cat(char *f) -{ - int h = -1; - char b[4097]; - - if((h=open(f,O_RDONLY))<0) - return; - while(read(h,&b,4096)>0) - printf("%s",b); - close(h); +/* primitives and utilities */ + +// (verbosity_threshold, printf_format , args...) +// dbg(3,"err %02X",err); // means only show this message if debug>=3 +void dbg( const int v, const char* format, ... ) { + if (debug=0) { - cat(pre_install_txt_file); - } else { - printf("Prepare the portable to receive. Hints:\n"); - printf("\tRUN \"COM:98N1ENN\"\t(for TANDY, Kyotronic, Olivetti)\n"); - printf("\tRUN \"COM:9N81XN\"\t(for NEC)\n"); - printf("\n"); - } - - printf("Press [Enter] when ready..."); - getchar(); - - if ((r=send_installer(installer_file))!=0) - return(r); - - cat(post_install_txt_file); - - printf("\n\n\"%s -b\" will now exit.\n",args[0]); - printf("Re-run \"%s\" (without -b this time) to run the TPDD server.\n",args[0]); - printf("\n"); - - return(0); +// (verbosity_threshold, buffer , len) +// dbg_b(3, b , 24); // like dbg() except +// print the buffer as hex pairs with a single trailing newline +// if len<0, then assume the max tpdd buffer TPDD_DATA_MAX+3 (131) +void dbg_b(const int v, unsigned char *b, int n) { + if (debug-1 = set new values if not already +// <0 = set default values if not already +// <-1 = refresh tcgetattr() to be more certain, then set default values if not already +void client_tty_vmin(int n) { + if (n<-1) tcgetattr(client_tty_fd,&client_termios); + if (n<0) { + if (client_termios.c_cc[VTIME] == C_CC_VTIME && client_termios.c_cc[VMIN] == C_CC_VMIN) return; + //dbg(4,"setting default vtime vmin\n"); + client_termios.c_cc[VTIME] = C_CC_VTIME; + client_termios.c_cc[VMIN] = C_CC_VMIN; + } else { + if (client_termios.c_cc[VTIME] == 0 && client_termios.c_cc[VMIN] == n) return; + //dbg(4,"setting blocking vtime vmin\n"); + client_termios.c_cc[VTIME] = 0; + client_termios.c_cc[VMIN] = n; + } + tcsetattr(client_tty_fd,TCSANOW,&client_termios); + //if (debug>3) { + // tcgetattr(client_tty_fd,&client_termios); + // dbg(4,"client_termios.c_cc[VTIME]=%u\nclient_termios.c_cc[VMIN]=%u\n",client_termios.c_cc[VTIME],client_termios.c_cc[VMIN]); + //} } -int main(int argc, char **argv) -{ - int off=0; - unsigned char client_tty[PATH_MAX]; - char bootstrap_file[PATH_MAX]; - int arg; +int write_client_tty(void *b, size_t n) { + dbg(3,"%s()\n",__func__); + dbg(2,"SEND: "); dbg_b(2,b,n); + return (write(client_tty_fd,b,n)); +} - /* create the file list (for reverse order traversal) */ - file_list_init (); +// TODO - retry sanity check counter - don't rety forever +int read_client_tty(void *b, const unsigned int n) { + unsigned t = 0; - args = argv; + dbg(4,"read_client_tty(%u): ",n); - strcpy ((char *)client_tty,STRINGIFY(DEFAULT_CLIENT_TTY)); - if (client_tty[0]!='/') { - strcpy((char *)client_tty,"/dev/"); - strcat((char *)client_tty,(char *)STRINGIFY(DEFAULT_CLIENT_TTY)); - } - - for (arg = 1; arg < argc; arg++) { - switch (argv[arg][0]) { - case '/': - strcpy ((char *)client_tty, (char *)(argv[arg])); - break; - case '-': - switch (argv [arg][1]) { - case 0: - strcpy ((char *)client_tty,"/dev/tty"); - client_fd = 1; - break; - case 'g': - getty_mode = true; - break; - case 'u': - upcase = true; - break; - case 'c': - rtscts = true; - break; - case 'v': - debug = true; - break; - case 'p': - if (argv[arg][2] == '=') - (void)(chdir (argv[arg] + 3)+1); - break; - case 'w': - dot_offset = 8; - break; - case 'h': - print_usage(); - exit(0); - break; - case 'b': - bootstrap_mode = true; - strcpy (bootstrap_file,STRINGIFY(DEFAULT_CLIENT_APP) "." STRINGIFY(DEFAULT_CLIENT_MODEL)); - if (argv[arg][2] == '=') - strcpy (bootstrap_file,(char *)(argv[arg]+3)); - break; - case 'z': - if (argv[arg][2] == '=') - bootstrap_byte_msec = atoi(argv[arg]+3); - break; - default: - fprintf(stderr, "Unknown option %s\n",argv[arg]); - print_usage(); - exit(1); - break; - } - break; - default: - strcpy((char *)client_tty,"/dev/"); - strcat((char *)client_tty,(char *)(argv[arg])); - } - } - - if (getty_mode) - debug = 0; - - if (debug) { - fprintf (stderr, "DeskLink+ " STRINGIFY(APP_VERSION) "\n"); - fprintf (stderr, "Using Serial Device: %s\n", client_tty); - if(!bootstrap_mode) { - fprintf (stderr, "Working In Directory: "); - fprintf (stderr, "--------------------------------------------------------------------------------\n"); - (void)(system ("pwd >&2;ls -l >&2")+1); - fprintf (stderr, "--------------------------------------------------------------------------------\n"); - } - } - - if(client_fd<0) - client_fd=open((char *)client_tty,O_RDWR|O_NONBLOCK); - if(client_fd<0) { - fprintf (stderr,"Error: open(%s,...)=%d\n",client_tty,client_fd); - return(1); - } - - if(getty_mode) { - if(login_tty(client_fd)==0) - client_fd = STDIN_FILENO; - else - (void)(daemon(1,1)+1); - } - - (void)(tcflush(client_fd, TCIOFLUSH)+1); /* clear out the crap */ - ioctl(client_fd, FIONBIO, &off); /* turn off non-blocking mode */ - ioctl(client_fd, FIOASYNC, &off); /* ditto for async mode */ - - if(tcgetattr(client_fd,&ti)==-1) - return(1); - cfmakeraw(&ti); - ti.c_cflag |= CLOCAL|CS8; - if(rtscts) { - ti.c_cflag |= CRTSCTS; - } else { - ti.c_cflag &= ~CRTSCTS; - } - if(cfsetspeed(&ti,client_baud)==-1) - return(1); - if(tcsetattr(client_fd,TCSANOW,&ti)==-1) - return(1); - - /* Set up terminal termios struct */ - origt.c_iflag=BRKINT | ICRNL | IMAXBEL | IXON | IXANY | IXOFF; - origt.c_oflag=OPOST | ONLCR; - origt.c_lflag=ECHO | ICANON | ISIG | IEXTEN | ECHOE | ECHOKE | ECHOCTL; - origt.c_cflag=CREAD | CS8 | HUPCL; - if(rtscts) { - origt.c_cflag |= -#ifdef CRTS_OFLOW - CRTS_OFLOW +#if (READ_TTY_METHOD == 2) + // try to force read() to block until n bytes, but also retry + // "expected 129, got 64" still better than before. + //dbg(3,"new method\n"); + int i; + client_tty_vmin(n); + while (t0) printf("%s",b); + close(h); +} - file_list_cleanup (); +// b[] = TPDD Operation-mode return block +// b[0] = cmd +// b[1] = len (how many more bytes to read after this one, 0-128) +// b[2] to b[1+len] = 0 to 128 bytes of payload +// contents after b[1+len] are ignored +unsigned char checksum(unsigned char *b) +{ + unsigned short s=0; + int i; - return(0); + for(i=0;i<2+b[1];i++) s+=b[i]; + return((s&0xFF)^0xFF); } -int out_dirent (FILE_ENTRY *ep) +char *pdd_to_local_fn(char *fname) { - unsigned short size; + dbg(3,"%s(\"%s\")\n",__func__,fname); int i; - - bzero(buf,31); - buf[0]=0x11; - buf[1]=0x1C; - - if (debug) fprintf (stderr, "out_dirent: %s\n", ep->tsname); - - /* format the filename */ - if (ep && ep->tsname) { - - buf[26] = 'F'; - size = htons (ep->len); - memcpy (buf + 27, &size, 2); - memset (buf + 2, ' ', 24); - - for(i=0;itsname[i])?ep->tsname[i]:' '; - //memcpy (buf + 2, ep->tsname, dot_offset+2); - - // if (debug) fprintf (stderr, "str : %24.24s\n", (char *)buf + 2); + for(i=dot_offset;i>1;i--) if(fname[i-1]!=' ') break; + + if(fname[dot_offset+1]=='<' && fname[dot_offset+2]=='>') { + fname[i]=0x00; + } else { + fname[i]=fname[dot_offset]; + fname[i+1]=fname[dot_offset+1]; + fname[i+2]=fname[dot_offset+2]; + fname[i+3]=0x00; } - - buf[29]=FREE_BLOCKS; - /* add checksum */ - buf[30] = checksum (buf); - - /* write packet */ - return (my_write (client_fd,buf,31) == 31); + return fname; } + +// FIXME - don't do half of this stuff if (!dme_enable) +// FIXME - option not to munge the client filenames at all other than +// to truncate to 24 bytes. No dot-offset/extension assumptions, +// no toupper, no hiding dot-files, etc. FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) { + dbg(3,"%s(\"%s\")\n",__func__,namep); static FILE_ENTRY f; int i; - + /** fill the entry */ - strncpy (f.ufname, namep, sizeof (f.ufname) - 1); - - for(i=0;i<12;i++) f.tsname[i]=' '; - + strncpy (f.local_fname, namep, sizeof (f.local_fname) - 1); + dbg_b(3,(unsigned char*)f.client_fname,TPDD_FILENAME_LEN+1); f.len = len; - - // fix the filename - for(i=strlen(namep);i>0;i--) - if(namep[i]=='.') break; - + + + // construct the client filename + + // 24 spaces + memset(f.client_fname,0x20,TPDD_FILENAME_LEN); + + // find the last dot in the local filename + for(i=strlen(namep);i>0;i--) if(namep[i]=='.') break; + + // write client extension if(flags&DIR_FLAG) { - // directory - f.tsname[dot_offset+1]='<'; - f.tsname[dot_offset+2]='>'; + // directory - put TS-DOS DME ext on client fname + f.client_fname[dot_offset+1]='<'; + f.client_fname[dot_offset+2]='>'; f.len=0; } else { - if(i>0) { - // found an extension - // for the time being just copy - f.tsname[dot_offset+1]=toupper(namep[i+1]); - f.tsname[dot_offset+2]=toupper(namep[i+2]); - } else { - // no extension - default to .DO - f.tsname[dot_offset+1]='D'; - f.tsname[dot_offset+2]='O'; - } + // file - put first 2 bytes of ext on client fname + f.client_fname[dot_offset+1]=namep[i+1]; + f.client_fname[dot_offset+2]=namep[i+2]; } - - if(f.ufname[0]=='.' && f.ufname[1]=='.') { - memcpy (f.tsname, "PARENT", 6); + + dbg(5,"\"%s\"\n",f.client_fname); + + // replace ".." with "PARENT" (or whatever dme root label) + // TODO - make this configurable, allow ".." to show through, + // allow ordinary file or directory named "PARENT" etc. + if(f.local_fname[0]=='.' && f.local_fname[1]=='.') { + memcpy (f.client_fname, DEFAULT_DME_PARENT_LABEL, 6); } else { for(i=0;id_name,&st)) { - normal_return(0x31); + + if (stat(dire->d_name,&st)) { + ret_std(DIRENT_GET_FIRST); return 0; } - + if (S_ISDIR(st.st_mode)) flags=DIR_FLAG; - else if (!S_ISREG (st.st_mode)) - continue; - - if(dire->d_name[0]=='.') continue; // skip "." ".." and hidden files - if(dire->d_name[0]=='#') continue; // skip "#" - - if(strlen(dire->d_name)>FNAME_MAX) continue; // skip long filenames - + else if (!S_ISREG (st.st_mode)) continue; + + if (dire->d_name[0]=='.') continue; // skip "." ".." and hidden files + //if (dire->d_name[0]=='#') continue; // skip "#" + + if (strlen(dire->d_name)>LOCAL_FILENAME_MAX) continue; // skip long filenames + /* add file to list so we can traverse any order */ add_file (make_file_entry(dire->d_name, st.st_size, flags)); - + break; } - - if (dire == NULL) - return 0; - - return 1; -} -char *ts2unix(char *fname) -{ - int i; - for(i=dot_offset;i>1;i--) - if(fname[i-1]!=' ') break; - - if(fname[dot_offset+1]=='<' && fname[dot_offset+2]=='>') { - fname[i]=0; - } else { - fname[i]=fname[dot_offset]; - fname[i+1]=fname[dot_offset+1]; - fname[i+2]=fname[dot_offset+2]; - fname[i+3]=0; - } - return fname; -} + if (dire == NULL) return 0; + return 1; +} void update_file_list() { + dbg(3,"%s()\n",__func__); DIR * dir; - + dir=opendir("."); /** rebuild the file list */ file_list_clear_all(); if(dir_depth) add_file (make_file_entry("..", 0, DIR_FLAG)); while (read_next_dirent (dir)); - + closedir(dir); } +/* TPDD operations */ -int ts_dir_ref(unsigned char *data) +// standard return - return for: error open close delete status write +void ret_std(unsigned char err) { + dbg(2,"%s()\n",__func__); + buf[0]=RET_STD; + buf[1]=0x01; + buf[2]=err; + buf[3]=checksum(buf); + dbg(3,"Response: %02X\n",err); + write_client_tty(buf,4); + if (buf[2]!=ERR_SUCCESS) dbg(2,"ERROR RESPONSE TO CLIENT"); +} + +// return for dirent +int ret_dirent(FILE_ENTRY *ep) +{ + dbg(2,"%s(\"%s\")\n",__func__,ep->client_fname); + unsigned short size; + int i; + + bz(); + buf[0]=RET_DIRENT; + buf[1]=LEN_RET_DIRENT; + + if (ep && ep->client_fname) { + + // name + memset (buf + 2, ' ', TPDD_FILENAME_LEN); + for(i=0;iclient_fname[i])?ep->client_fname[i]:' '; + //memcpy (buf + 2, ep->client_fname, dot_offset+2); + + // attrib + buf[26] = DEFAULT_TPDD_FILE_ATTRIB; + + // size + size = htons (ep->len); + memcpy (buf + 27, &size, 2); + } + + dbg(3,"\"%24.24s\"\n",buf+2); + + buf[29] = TPDD_FREE_SECTORS; + buf[30] = checksum (buf); + + return (write_client_tty(buf,31) == 31); +} + +// REQ_DIRENT +// b[0]-b[23] = filename +// b[24] = attrib +// b[25] = search +/* + * heads-up + * TS-DOS sometimes submits request with junk in the filename & attrib fields + * in some cases where a real drive would ignore them (get-first/get-next). + * So only look at those fields for the set-name case. +*/ +int req_dirent(unsigned char *data) +{ + dbg(2,"%s()\n",__func__); + dbg(5,"data[]\n"); dbg_b(5,data,-1); + dbg_p(4,data); + char *p; - char filename[25]; - - switch (data[29]) { - case 0x00: /* Pick file for open/delete */ - fprintf (stderr, "Directory req: %02x (pick file)\n", data[29]); - strncpy(filename,(char *)data+4,24); - filename[24]=0; - //if (debug) - fprintf (stderr, "Request: %s\n", filename); + char filename[TPDD_FILENAME_LEN+1] = { 0x00 }; + + switch (data[27]) { + case DIRENT_SET_NAME: /* set filename for subsequent actions */ + dbg(3,"DIRENT_SET_NAME\n"); + if (data[2]) { + dbg(3,"filename: \"%24.24s\"\n",data+2); + dbg(3," attrib: \"%c\" (%1$02X)\n",data[26]); + } + strncpy(filename,(char *)data+2,TPDD_FILENAME_LEN); + filename[TPDD_FILENAME_LEN]=0; /* Remove trailing spaces */ - for(p = strrchr(filename,' '); p >= filename && *p == ' '; p--) - *p = 0; + for (p = strrchr(filename,' '); p >= filename && *p == ' '; p--) *p = 0; cur_file=find_file(filename); - if(cur_file) { - fprintf (stderr, "Found: %s server: %s len:%d\n", cur_file->tsname, cur_file->ufname, cur_file->len); - out_dirent(cur_file); - - + if (cur_file) { + fprintf (stderr, "Found: \"%s\" %u\n", cur_file->local_fname, cur_file->len); + ret_dirent(cur_file); + } else { - // strncpy(cur_file->tsname, filename, 12); - fprintf (stderr, "Can't find: %s\n", filename); - out_dirent(NULL); + // strncpy(cur_file->client_fname, filename, TPDD_FILENAME_LEN); + fprintf (stderr, "Not found\n"); + ret_dirent(NULL); // empty_dirent(); - if(filename[dot_offset+1]=='<' && filename[dot_offset+2]=='>') { - cur_file=make_file_entry(ts2unix(filename), 0, DIR_FLAG); + if (filename[dot_offset+1]=='<' && filename[dot_offset+2]=='>') { + cur_file=make_file_entry(pdd_to_local_fn(filename), 0, DIR_FLAG); } else { - cur_file=make_file_entry(ts2unix(filename), 0, 0); + cur_file=make_file_entry(pdd_to_local_fn(filename), 0, 0); } } - break; - case 0x01: /* "first" directory block */ - // fprintf (stderr, "Directory req: %02x (first entry)\n", data[29]); + case DIRENT_GET_FIRST: + dbg(3,"DIRENT_GET_FIRST\n"); + if(debug==1) dbg(1,"directory listing\n"); update_file_list(); - /** send the file name */ - out_dirent(get_first_file()); + ret_dirent(get_first_file()); break; - case 0x02: /* "next" directory block */ - // fprintf (stderr, "Directory req: %02x (next entry)\n", data[29]); - out_dirent(get_next_file()); + case DIRENT_GET_NEXT: + dbg(3,"DIRENT_GET_NEXT\n"); + ret_dirent(get_next_file()); break; - case 0x03: /* "previous" directory block */ - // fprintf (stderr, "Directory req: %02x (prev file)\n", data[29]); - out_dirent(get_prev_file()); + case DIRENT_GET_PREV: + dbg(3,"DIRENT_GET_PREV\n"); + ret_dirent(get_prev_file()); break; - case 0x04: /* end directory reference */ - // fprintf (stderr, "Directory req: %02x (close dir)\n", data[29]); - // file_list_clear_all (); + case DIRENT_CLOSE: + dbg(3,"DIRENT_CLOSE\n"); + // file_list_clear_all (); break; } return 0; } -static unsigned char dir_msg[14]; -void update_dirname() +// update dme_cwd with a 6-byte truncated / space-padded working dir +void update_dme_cwd() { + dbg(2,"%s()\n",__func__); + int i; if(dir_depth) { char dirbuf[1024]; - int i,j; - + int j; + if(getcwd(dirbuf, 1024) ) { - memset(dir_msg,' ',sizeof(dir_msg)); - - // fprintf(stderr, "update dir = %s\n", dirbuf); - for(i=strlen(dirbuf); i>=0 ; i--) - if(dirbuf[i]=='/') break; - - // fprintf(stderr, "update dir = %s\n", dirbuf+i); - for(j=0; j<6 && dirbuf[i+j+1] && dirbuf[i+j+1]!='.'; j++) - dir_msg[3+j]=dirbuf[i+j+1]; - - - dir_msg[0]=0x12; - dir_msg[1]=0x0b; - dir_msg[2]=0x00; - dir_msg[9]='.'; - dir_msg[10]='<'; - dir_msg[11]='>'; - // dir_msg[12]=' '; - dir_msg[13]=checksum(dir_msg); + memset(dme_cwd,0x20,6); + for(i=strlen(dirbuf); i>=0 ; i--) if(dirbuf[i]=='/') break; + for(j=0; j<6 && dirbuf[i+j+1] && dirbuf[i+j+1]!='.'; j++) dme_cwd[j]=dirbuf[i+j+1]; } + } else { + memcpy(dme_cwd,dme_root_label,6); } - } -void send_current_path() +// TS-DOS DME return +// Construct a DME packet around dme_cwd and send it to the client +void ret_dme_cwd() { - static unsigned char root[] = {0x12, 0x0b, 0x00, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 0x2e, 0x3c, 0x3e, 0x20, 0x96}; - - // fprintf(stderr, "dir depth = %d\n",dir_depth); - if(dir_depth==0) - my_write (client_fd, root, sizeof (root)); - else - my_write (client_fd, dir_msg, sizeof (dir_msg)); + dbg(2,"%s(\"%s\")\n",__func__,dme_cwd); + buf[0]=RET_STD; + buf[1]=LEN_RET_DME; + buf[2]=0x00; + memcpy(buf+3,dme_cwd,6); + buf[9]='.'; + buf[10]='<'; + buf[11]='>'; + buf[12]=0x20; + buf[13]=checksum(buf); + dbg(3,"Setting TS-DOS CWD: \"%6.6s\"\n",buf+3); + write_client_tty(buf,14); } +// b[0] = fmt 0x01 +// b[1] = len 0x01 +// b[2] = mode 0x01 write new +// 0x02 write append +// 0x03 read +// b[3] = ck +int req_open(unsigned char *data) +{ + dbg(2,"%s(\"%s\")\n",__func__,cur_file->local_fname); + dbg(5,"data[]\n"); dbg_b(5,data,-1); + dbg_p(4,data); + unsigned char omode = data[2]; -int ts_open(unsigned char *data) -{ - //if(debug) fprintf (stderr, "open_file() mode:%d filename:%s dire->d_name:%s\n", omode,filename,dire->d_name); - unsigned char omode = data[4]; - switch(omode) { - case 0x01: /* New file for my_write */ - fprintf (stderr, "open mode: %02x (write)\n", omode); - if (file >= 0) { - close (file); - file=-1; + case F_OPEN_WRITE: + dbg(3,"mode: write\n"); + if (o_file_h >= 0) { + close (o_file_h); + o_file_h=-1; } if(cur_file->flags&DIR_FLAG) { - if(mkdir(cur_file->ufname,0775)==0) { - normal_return(ST_OK); + if(mkdir(cur_file->local_fname,0775)==0) { + ret_std(ERR_SUCCESS); } else { - normal_return(ST_OPEN_FRMT_MISMATCH); + ret_std(ERR_FMT_MISMATCH); } } else { - file = open (cur_file->ufname,O_CREAT|O_TRUNC|O_WRONLY|O_EXCL,0666); - if(file<0) - normal_return(ST_OPEN_FRMT_MISMATCH); + o_file_h = open (cur_file->local_fname,O_CREAT|O_TRUNC|O_WRONLY|O_EXCL,0666); + if(o_file_h<0) + ret_std(ERR_FMT_MISMATCH); else { - mode=omode; - normal_return(ST_OK); + f_open_mode=omode; + ret_std(ERR_SUCCESS); } } break; - case 0x02: /* existing file for append */ - fprintf (stderr, "open mode: %02x (append)\n", omode); - if (file >= 0) { - close(file); - file=-1; + case F_OPEN_APPEND: + dbg(3,"mode: append\n"); + if (o_file_h >= 0) { + close(o_file_h); + o_file_h=-1; } if(cur_file==0) { - normal_return(ST_OPEN_FRMT_MISMATCH); + ret_std(ERR_FMT_MISMATCH); return -1; } - file = open (cur_file->ufname, O_WRONLY | O_APPEND); - if (file < 0) - normal_return(ST_OPEN_FRMT_MISMATCH); + o_file_h = open (cur_file->local_fname, O_WRONLY | O_APPEND); + if (o_file_h < 0) + ret_std(ERR_FMT_MISMATCH); else { - mode=omode; - normal_return (ST_OK); + f_open_mode=omode; + ret_std (ERR_SUCCESS); } break; - case 0x03: /* Existing file for read */ - fprintf (stderr, "open mode: %02x (read)\n", omode); - if (file >= 0) { - close (file); - file=-1; + case F_OPEN_READ: + dbg(3,"mode: read\n"); + if (o_file_h >= 0) { + close (o_file_h); + o_file_h=-1; } if(cur_file==0) { - normal_return (ST_FILE_DOES_NOT_EXIST); + ret_std (ERR_NO_FILE); return -1; } if(cur_file->flags&DIR_FLAG) { int err=0; // directory - if(cur_file->ufname[0]=='.' && cur_file->ufname[1]=='.') { + if(cur_file->local_fname[0]=='.' && cur_file->local_fname[1]=='.') { // parent dir if(dir_depth>0) { - err=chdir (cur_file->ufname); + err=chdir (cur_file->local_fname); if(!err) dir_depth--; } } else { // enter dir - err=chdir(cur_file->ufname); + err=chdir(cur_file->local_fname); dir_depth++; } - update_dirname(); - if(err) normal_return (0x37); - else normal_return (ST_OK); + update_dme_cwd(); + if(err) ret_std (ERR_FMT_MISMATCH); + else ret_std (ERR_SUCCESS); } else { // regular file - file = open (cur_file->ufname, O_RDONLY); - if(file<0) - normal_return (ST_FILE_DOES_NOT_EXIST); + o_file_h = open (cur_file->local_fname, O_RDONLY); + if(o_file_h<0) + ret_std (ERR_NO_FILE); else { - mode = omode; - normal_return (ST_OK); + f_open_mode = omode; + ret_std (ERR_SUCCESS); } } break; } - return (file); + return (o_file_h); } -void ts_read(void) +// b[0] = 0x03 +// b[1] = 0x00 +// b[2] = ck +void req_read(void) { - int in; + dbg(2,"%s()\n",__func__); + int i; - buf[0]=0x10; - if(file<0) { - normal_return(ST_NO_FILENAME); + buf[0]=RET_READ; + if(o_file_h<0) { + ret_std(ERR_CMDSEQ); return; } - if(mode!=3) { - normal_return(ST_OPEN_FRMT_MISMATCH); + if(f_open_mode!=F_OPEN_READ) { + ret_std(ERR_FMT_MISMATCH); return; } - in = read (file, buf+2, 128); - buf[1] = (unsigned char) in; - buf[2+in] = checksum(buf); - my_write (client_fd, buf, 3+in); + + i = read (o_file_h, buf+2, TPDD_DATA_MAX); + + buf[1] = (unsigned char) i; + buf[2+i] = checksum(buf); + + dbg(4,"...OUT going packet TO client...\n"); + dbg(5,"buf[]\n"); dbg_b(5,buf,-1); + dbg_p(4,buf); + dbg(4,"................................\n"); + + write_client_tty(buf, 3+i); } -void ts_write(unsigned char *data) +// b[0] = 0x04 +// b[1] = 0x01 - 0x80 +// b[2] = b[1] bytes +// b[2+len] = ck +void req_write(unsigned char *data) { - if(file<0) { - normal_return(ST_NO_FILENAME); + dbg(2,"%s()\n",__func__); + dbg(4,"...IN coming packet FROM client...\n"); + dbg(5,"data[]\n"); dbg_b(5,data,-1); + dbg_p(4,data); + dbg(4,"..................................\n"); + + if(o_file_h<0) { + ret_std(ERR_CMDSEQ); return; } - if(mode!=1 && mode !=2) { - normal_return(ST_OPEN_FRMT_MISMATCH); + if(f_open_mode!=F_OPEN_WRITE && f_open_mode !=F_OPEN_APPEND) { + ret_std(ERR_FMT_MISMATCH); return; } - if(write (file,data+4,data[3]) != data[3]) - normal_return (0x4a); + if(write (o_file_h,data+2,data[1]) != data[1]) + ret_std (ERR_SECTOR_NUM); else - normal_return (ST_OK); + ret_std (ERR_SUCCESS); } -void ts_delete(void) +void req_delete(void) { + dbg(2,"%s()\n",__func__); if(cur_file->flags&DIR_FLAG) - rmdir(cur_file->ufname); + rmdir(cur_file->local_fname); else - unlink (cur_file->ufname); + unlink (cur_file->local_fname); update_file_list(); - normal_return (ST_OK); + ret_std (ERR_SUCCESS); } -#if 0 -void respond_mystery() -{ - static unsigned char canned[] = {0x38, 0x01, 0x00}; +// TPDD2 sector cache write - but not really doing that +// This is just something TS-DOS does to detect TPDD2, and we do implement +// other TPDD2 features, so we respond to this just enough to satisfy TS-DOS. +// We just blindly return a packet that means "cache write suceeded". +// http://bitchin100.com/wiki/index.php?title=TPDD-2_Sector_Access_Protocol +// https://github.com/bkw777/pdd.sh/blob/41053c21f6f2ee349db2abf51547117de0a51b59/pdd.sh#L1637 +void ret_cache_write() { + dbg(3,"%s()\n",__func__); + buf[0]=RET_CACHE_STD; + buf[1]=0x01; + buf[2]=ERR_SUCCESS; + buf[3]=checksum(buf); + write_client_tty(buf,4); +} - memcpy (buf, canned, sizeof (canned)); - buf[sizeof(canned)] = calc_sum (canned[0], canned[1], canned + 2); - my_write (client_fd, buf, sizeof (canned) + 1); +// Another part of TS-DOS's drive/server capabilities detection scheme. +// Used to be called "TS-DOS mystery command 2", but now it's the only one. +// ("mystery command 1" was the TPDD2 sector cache command above) +void ret_tsdos_mystery() { + dbg(3,"%s()\n",__func__); + static unsigned char canned[] = {RET_TSDOS_MYSTERY, 0x0F, 0x41, 0x10, 0x01, 0x00, 0x50, 0x05, 0x00, 0x02, 0x00, 0x28, 0x00, 0xE1, 0x00, 0x00, 0x00}; + memcpy(buf, canned, canned[1]+2); + buf[canned[1]+2] = checksum(buf); + write_client_tty(buf, buf[1]+3); } -void respond_mystery2() +void req_rename(unsigned char *data) { - static unsigned char canned[] = {0x14, 0x0F, 0x41, 0x10, 0x01, 0x00, 0x50, 0x05, 0x00, 0x02, 0x00, 0x28, 0x00, 0xE1, 0x00, 0x00, 0x00}; + dbg(3,"%s()\n",__func__); + char *new_name = (char *)data + 4; + + new_name[TPDD_FILENAME_LEN]=0; - memcpy (buf, canned, sizeof (canned)); - buf[sizeof(canned)] = calc_sum (canned[0], canned[1], canned + 2); - my_write (client_fd, buf, sizeof (canned) + 1); + if (rename (cur_file->local_fname, pdd_to_local_fn(new_name))) + ret_std(ERR_SECTOR_NUM); + else + ret_std(ERR_SUCCESS); } -#endif -void ts_rename(unsigned char *data) +void dispatch_opr_cmd(unsigned char *data) { - char *new_name = (char *)data + 4; - - new_name[24]=0; - - if(rename (cur_file->ufname, ts2unix(new_name))) - normal_return(0x4A); - else - normal_return(ST_OK); + dbg(3,"%s()\n",__func__); + dbg_p(3,data); + dbg(5,"data[]\n"); dbg_b(5,data,-1); + + switch(data[0]) { + case REQ_DIRENT: + req_dirent(data); + break; + case REQ_OPEN: + req_open(data); + break; + case REQ_CLOSE: + if(o_file_h>=0) close(o_file_h); + o_file_h = -1; + ret_std(ERR_SUCCESS); + break; + case REQ_READ: + req_read(); + break; + case REQ_WRITE: + req_write(data); + break; + case REQ_DELETE: + req_delete(); + break; + case REQ_FORMAT: + ret_std(ERR_SUCCESS); + break; + case REQ_STATUS: + ret_std(ERR_SUCCESS); + break; + case REQ_FDC: /* switch to FDC-mode - part of TS-DOS DME */ + ret_dme_cwd(); + break; + case REQ_CONDITION: // TPDD2 + ret_std(ERR_SUCCESS); + break; + case REQ_RENAME: // TPDD2 + req_rename(data); + update_file_list (); + break; + case REQ_TSDOS_MYSTERY: /* TS-DOS mystery command 2 */ + ret_tsdos_mystery(); /* part of TS-DOS drive/server detection */ + break; + case REQ_CACHE_WRITE: /* formerly TS-DOS "mystery command 1" */ + ret_cache_write(); /* part of TS-DOS detection of TPDD2 */ + break; + default: + return; + break; + } + + if(data[0]!=REQ_STATUS && data[0]!=REQ_FDC) m1rec=0; + + return; } -int readbytes(int handle, void *buf, int max) +int get_opr_cmd(void) { - int r = 0; - int rval; - - while (r < max) { - rval = read (client_fd, buf + r, 1); - if (rval < 0) - continue; - r += rval; + dbg(3,"%s()\n",__func__); + unsigned char b[TPDD_DATA_MAX+3] = { 0x00 }; + unsigned i = 0; + bz(); + +// both of these work +#if (ZZ_SCAN_METHOD == 1) + // collect command + while (read_client_tty(&b,1) == 1) { + if (b[0]==0x5A) i++; else { i=0; b[0]=0x00; continue; } + if (i<2) { b[0]=0x00; continue; } + if ((read_client_tty(&b,2) == 2) && (read_client_tty(&b[2],b[1]+1) == b[1]+1)) break; + i=0; memset(b,0x00,TPDD_DATA_MAX+3); } - - return (r); +#else + // collect command + while (read_client_tty(&b,1) == 1) { + if (i==2) { // have 2 Z's else skip + i=0; // ensure if any of the following fail, start over + if (read_client_tty(&b[1],1) != 1) continue; // read len + if (b[1]>TPDD_DATA_MAX) continue; // len is sane + if (read_client_tty(&b[2],b[1]+1) == b[1]+1) break; // read payload+checksum & done + } + if (b[0]==0x5A) i++; else i=0; // current byte is Z else start over + } +#endif + + // debug + dbg_p(3,b); + + // checksum else abort + i = checksum(b); + if (b[b[1]+2]!=i) { + dbg(0,"Failed checksum: received: %02X calculated: %02X\n",b[b[1]+2],i); + ret_std(ERR_PARAM); + return(7); + } + + // dispatch + dispatch_opr_cmd(b); + return 0; } -int send_installer(char *f) +int send_BASIC(char *f) { int w=0; int i=0; int fd; - int byte_usleep = bootstrap_byte_msec*1000; + int byte_usleep = BASIC_byte_msec*1000; unsigned char b; - if((fd=open(f,O_RDONLY))<0) { - if(debug) - fprintf(stderr, "Failed to open %s for read.\n",f); + if ((fd=open(f,O_RDONLY))<0) { + if (debug) fprintf(stderr, "Failed to open %s for read.\n",f); return(9); } @@ -926,22 +1155,20 @@ int send_installer(char *f) } while(read(fd,&b,1)==1) { - while((i=my_write(client_fd,&b,1))!=1); + while((i=write_client_tty(&b,1))!=1); w+=i; usleep(byte_usleep); - if(debug) - fprintf(stderr, "Sent: %d bytes\n",w); - else - fprintf(stderr, "."); + if (debug) fprintf(stderr, "Sent: %d bytes\n",w); + else fprintf(stderr, "."); fflush(stdout); } fprintf(stderr, "\n"); b = BASIC_EOF; - my_write(client_fd,&b,1); + write_client_tty(&b,1); close(fd); - close(client_fd); + close(client_tty_fd); - if(debug) { + if (debug) { fprintf(stderr, "Sent %s\n",f); fflush(stdout); } @@ -951,159 +1178,192 @@ int send_installer(char *f) return(0); } -void out_buf(unsigned char *bufp, unsigned len) +int bootstrap(char *f) { - unsigned i,j,k; - - if (!debug) - return; - - for (i = 0; i < len;) { - for (j = 0; j < 2; j++) { - for (k = 0; i < len && k < 8; k++, i++) - fprintf (stderr, "%02X ", bufp[i]); - fprintf (stderr, " "); - } + int r = 0; + char loader_file[PATH_MAX]=""; + char pre_install_txt_file[PATH_MAX]=""; + char post_install_txt_file[PATH_MAX]=""; + + if (f[0]=='~'&&f[1]=='/') { + strcpy(loader_file,getenv("HOME")); + strcat(loader_file,f+1); } - fprintf (stderr, "\n"); -} -void process_Z_cmd(unsigned char *data) -{ - if(checksum(data+2)!=data[data[3]+4]) { - if(debug) { - fprintf(stderr, "BAD CHECKSUM!\n"); - fprintf(stderr, "Packet checksum: %02X My checksum: %02X\n", data[data[3]+4], checksum(data+2)); - } - normal_return(ST_PARAMETER_ERROR); // should this be CRC error? - return; + if ((f[0]=='/')||(f[0]=='.'&&f[1]=='/')) + strcpy(loader_file,f); + + if(loader_file[0]==0) { + strcpy(loader_file,STRINGIFY(APP_LIB_DIR)); + strcat(loader_file,"/"); + strcat(loader_file,f); } - - switch(data[2]) { - case 0x00: /* Directory ref */ - ts_dir_ref (data); - break; - case 0x01: /* Open file */ - ts_open (data); - break; - case 0x02: /* Close file */ - if(file>=0) - close (file); - file = -1; - normal_return (ST_OK); - break; - case 0x03: /* Read */ - ts_read(); - break; - case 0x04: /* Write */ - ts_write (data); - break; - case 0x05: /* Delete */ - ts_delete (); - break; - case 0x06: /* Format disk */ - normal_return (ST_OK); - break; - case 0x07: /* Drive Status */ - normal_return (ST_OK); - break; - case 0x08: /* TS-DOS DME Request / change to FDC mode */ - send_current_path (); - break; - case 0x0C: /* Condition */ - normal_return (ST_OK); - break; - case 0x0D: /* Rename File */ - ts_rename (data); - update_file_list (); - break; -#if 0 - case 0x23: /* TS-DOS mystery command 2 */ - respond_mystery2(); - break; - case 0x31: /* TS-DOS mystery command 1 */ - respond_mystery(); - break; -#endif - default: - return; - break; + + strcpy(pre_install_txt_file,loader_file); + strcat(pre_install_txt_file,".pre-install.txt"); + + strcpy(post_install_txt_file,loader_file); + strcat(post_install_txt_file,".post-install.txt"); + + printf("Bootstrap: Installing %s\n", loader_file); + + if(access(loader_file,F_OK)==-1) { + if(debug) fprintf(stderr, "Not found.\n"); + return(1); } - if(data[2]!=0x07 && data[2]!=0x08) - m1rec=0; - - return; + + if(access(pre_install_txt_file,F_OK)>=0) { + cat(pre_install_txt_file); + } else { + printf("Prepare the portable to receive. Hints:\n"); + printf("\tRUN \"COM:98N1ENN\"\t(for TANDY, Kyotronic, Olivetti)\n"); + printf("\tRUN \"COM:9N81XN\"\t(for NEC)\n"); + printf("\n"); + } + + printf("Press [Enter] when ready..."); + getchar(); + + if ((r=send_BASIC(loader_file))!=0) + return(r); + + cat(post_install_txt_file); + + printf("\n\n\"%s -b\" will now exit.\n",args[0]); + printf("Re-run \"%s\" (without -b this time) to run the TPDD server.\n",args[0]); + printf("\n"); + + return(0); } -int be_disk(void) +int main(int argc, char **argv) { - unsigned char read_buf[131]; - unsigned len; - unsigned char recv; - - unsigned cmd_len; - unsigned pos; - - pos=0; - cmd_len=0; - - while(1) { - - do { - // this takes 100% CPU - len=read (client_fd, &recv, 1); - } while (len!=1); - - if(pos==0) { - switch(recv) { - case 'Z': - cmd_len=4; - read_buf[pos++]=recv; + int off=0; + unsigned char client_tty_name[PATH_MAX]; + char bootstrap_file[PATH_MAX]; + int arg; + + /* create the file list (for reverse order traversal) */ + file_list_init (); + + args = argv; + + strcpy ((char *)client_tty_name,STRINGIFY(DEFAULT_CLIENT_TTY)); + if (client_tty_name[0]!='/') { + strcpy((char *)client_tty_name,"/dev/"); + strcat((char *)client_tty_name,(char *)STRINGIFY(DEFAULT_CLIENT_TTY)); + } + + for (arg = 1; arg < argc; arg++) { + switch (argv[arg][0]) { + case '/': + strcpy ((char *)client_tty_name, (char *)(argv[arg])); + break; + case '-': + switch (argv [arg][1]) { + case 0: + strcpy ((char *)client_tty_name,"/dev/tty"); + client_tty_fd = 1; + break; + case 'g': + getty_mode = true; + break; + case 'u': + upcase = true; break; - case 'R': - cmd_len=7; - read_buf[pos++]=recv; + case 'c': + rtscts = true; break; - case 'M': - cmd_len=2; - read_buf[pos++]=recv; + case 'v': + debug++; break; - case '\r': - // send feedback? - // normal_return(0x00); + case 'p': + if (argv[arg][2] == '=') + (void)(chdir (argv[arg] + 3)+1); + break; + case 'w': + dot_offset = 8; + break; + case 'h': + print_usage(); + exit(0); + break; + case 'b': + bootstrap_mode = true; + strcpy (bootstrap_file,STRINGIFY(DEFAULT_CLIENT_APP) "." STRINGIFY(DEFAULT_CLIENT_MODEL)); + if (argv[arg][2] == '=') strcpy (bootstrap_file,(char *)(argv[arg]+3)); + break; + case 'z': + if (argv[arg][2] == '=') BASIC_byte_msec = atoi(argv[arg]+3); break; default: + fprintf(stderr, "Unknown option %s\n",argv[arg]); + print_usage(); + exit(1); break; } - } else { // not first char - read_buf[pos++]=recv; - if(pos>=cmd_len) { - if(read_buf[0]=='Z' && cmd_len ==4) { - cmd_len=read_buf[3]+5; - } else { - if (debug) { - fprintf (stderr, "RECV: "); - out_buf (read_buf, cmd_len); - } - - // cmd end - switch(read_buf[0]) { - case 'Z': - process_Z_cmd(read_buf); - break; - case 'M': - m1rec=true; - break; - case 'R': - break; - } - // send response - cmd_len = 0; - pos = 0; - } - } + break; + default: + strcpy((char *)client_tty_name,"/dev/"); + strcat((char *)client_tty_name,(char *)(argv[arg])); } } - return 0; -} + if (getty_mode) + debug = 0; + + if (debug) { + fprintf (stderr, "DeskLink+ " STRINGIFY(APP_VERSION) "\n"); + fprintf (stderr, "Using Serial Device: %s\n", client_tty_name); + } + +// Also, what about O_NOCTTY ? + if(client_tty_fd<0) + client_tty_fd=open((char *)client_tty_name,O_RDWR +#if (IGNORE_DSR == 1) + ,O_NONBLOCK +#endif + ); + + if(client_tty_fd<0) { + fprintf (stderr,"Can't open \"%s\"\n",client_tty_name); + return(1); + } + + + if (debug) { + if(!bootstrap_mode) { + fprintf (stderr, "Working In Directory: "); + fprintf (stderr, "--------------------------------------------------------------------------------\n"); + (void)(system ("pwd >&2;ls -l >&2")+1); + fprintf (stderr, "--------------------------------------------------------------------------------\n"); + } + } + + // getty mode + if(getty_mode) { + if(login_tty(client_tty_fd)==0) client_tty_fd = STDIN_FILENO; + else (void)(daemon(1,1)+1); + } + + // serial line setup + (void)(tcflush(client_tty_fd, TCIOFLUSH)+1); + ioctl(client_tty_fd, FIONBIO, &off); + ioctl(client_tty_fd, FIOASYNC, &off); + if(tcgetattr(client_tty_fd,&client_termios)==-1) return(21); + cfmakeraw(&client_termios); + client_termios.c_cflag |= CLOCAL|CS8; + if(rtscts) client_termios.c_cflag |= CRTSCTS; + else client_termios.c_cflag &= ~CRTSCTS; + if(cfsetspeed(&client_termios,client_baud)==-1) return(22); + if(tcsetattr(client_tty_fd,TCSANOW,&client_termios)==-1) return(23); + client_tty_vmin(-2); + + // send loader and exit + if(bootstrap_mode) return(bootstrap(bootstrap_file)); + + // process commands forever + while(1) get_opr_cmd(); + + return(0); +} From a10650ad5e77027fddbc7c295fed493f72a2ce32 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 30 May 2022 20:03:03 -0400 Subject: [PATCH 012/206] authors/changes --- AUTHORS | 1 + CHANGES | 3 +++ 2 files changed, 4 insertions(+) diff --git a/AUTHORS b/AUTHORS index ef4a0d8..9f165d0 100644 --- a/AUTHORS +++ b/AUTHORS @@ -2,6 +2,7 @@ dlplus: Stephen Hurd Initial version? John R. Hogerhuis Enhancements including WP-2 support Brian K. White Bootstrap function and loaders library + main cmd scanner, serial tty handling Gabriele Gorla Support for TS-DOS subdirectories TPDD Clients & loaders: diff --git a/CHANGES b/CHANGES index 6641077..9b4f3e8 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +20220530 + Replace main cmd parser. Improve tty efficiency. + 20220516 (GGLabs) Added support for TS-DOS subdirectories From 4b6040a9b33bc253509512e6f71676ded47a6d60 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 30 May 2022 20:04:14 -0400 Subject: [PATCH 013/206] docs --- ref/attribute.txt | 37 ++++++++ ref/dme.txt | 196 ++++++++++++++++++++++++++++++++++++++ ref/fdc.txt | 38 ++++++++ ref/tsdos_mystery_1.txt | 202 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 473 insertions(+) create mode 100644 ref/attribute.txt create mode 100644 ref/dme.txt create mode 100644 ref/fdc.txt create mode 100644 ref/tsdos_mystery_1.txt diff --git a/ref/attribute.txt b/ref/attribute.txt new file mode 100644 index 0000000..0036a68 --- /dev/null +++ b/ref/attribute.txt @@ -0,0 +1,37 @@ + +File Attribute byte + +https://archive.org/details/tandy-service-manual-26-3808-s-software-manual-for-portable-disk-drive/page/23/mode/1up + +Always "F" for any KC-85 platform clients. + +This "F" is really just a convention of "Floppy", the original client for +Model 100 & 200 that shipped with the TPDD, and subsequently other KC-85 +platform clients that wanted to be fully compatible with Floppy. (TS-DOS, etc) + +The field is just a single letter simple text search field into which a client +may write any single letter, and later select files by that letter. + +The only effect it has is the order that filenames are returned by the drive. +Matching files, if any, are returned first. That's it. As a client you can ask +the drive "give me the E files" and stop doing get-next once you get a non-E. + +Floppy always writes "F" for every file. And since the other KC-85 platform +clients wanted to be as compatible as possible, some or all of those do too. + +Because of that, when a real drive reads a disk with files created by Floppy +or TS-DOS etc, every file on the disk will have an F. + +And so we basically lie and say that we read an F off the disk for every file. + +However there are other clients and other platforms that could possibly use +this field for real. + +The most technically correct, client-agnostic, faithful drive emulating way +to handle this field would be to save whatever a client supplies when a client +creates a file, and reproduce that later when a client asks for file listings, +(And perform the same directory list re-ordering that the drive firmware does. + Just make 2 passes through the directory table, once returning the matches, + then the rest.), and only fabricate data based on a configurable user setting, + and when there is no actual data previously saved from a client. + IE, a "tandy compat" config option to supply F (or other) by default. diff --git a/ref/dme.txt b/ref/dme.txt new file mode 100644 index 0000000..c293c3d --- /dev/null +++ b/ref/dme.txt @@ -0,0 +1,196 @@ +The DMEReq sequence works like this: + + DMEReq is a mutual-recognition process where both TS-DOS and Desk-Link* + have to recognize each other. + + TS-DOS has to detect if it is talking to Desk-Link without confusing + a real drive or any other server. + + Desk-Link has to detect if it is talking to TS-DOS without confusing + Floppy or any other client. + + (*) The original Desk-Link that ran on MS-DOS and was made by the same + Travelling Software as TS-DOS. + + The total sequence that TS-DOS sends is: + M 1 0D 5A 5A 08 00 F7 0D + + That is 3 things together: + 1: 3 bytes "M1\r" is the FDC-mode command to switch to Operation-mode. + 2: 5 bytes "ZZ" 08 00 F7 is the Operation-mode command to switch to + FDC-mode. + 3: 1 byte "\r" is the terminator for FDC-mode commands. + Like the opposite of "ZZ" in Operation-mode. + + This sequence makes no sense at first glance, especially considering + that the drive is always already in Operation-mode and so the initial + FDC-mode command is just unrecognized junk. + + How it works: + + Step 1: + + The FDC-mode command to switch to Operation-mode. + + TS-DOS sends 0x4D 0x31 0x0D ("M1\r") + TS-DOS waits 3ms + TS-DOS flushes and discards it's RX buffer + + FDC-mode commands have a different format than Operation-mode + commands. Operation-mode commands are initiated by "ZZ" and + terminated by reading the LEN field and counting that many bytes + plus the checksum. FDC-mode commands start with the first + byte and are terminated by a carriage-return. + + A real drive is usually not IN FDC-mode. A real drive is in + Operation-mode from power-on, and no normal clients use FDC-mode, + and so the drive is almost always in Operation-mode already. + But it's *possible* for a drive to be in either mode at any given + time. For example, it could be left in FDC-mode by some other + software. + + Not counting random mid-command inconsistent states (a possibility + that ends up getting handled later), there are 2 main + initial conditions possible at the beginning of Step 1: + + If the drive was in Operation-mode, Step 1 is just junk data. + A real drive in Operation-mode is just scanning for ZZ, + and none of these 3 bytes are ZZ. Anything else is ignored. + At the end of step 1: + o The drive should not change states. (remains in Operation-mode) + o The drive should not emit any error or other response. + + If the drive was in FDC-mode, this should put it into + Operation-mode. This command sends no response. + At the end of step 1: + o The drive should be in Operation-mode state. + o The drive should not emit any error or other response. + + There are some more possible initial states, like if the drive was + not waiting for it's next command, but was in the middle of some + command like receiving payload bytes for a write or something. + In most of those cases the drive will send back nothing or an error. + This possibility is caught later. For now, proceed with the + assumption that at this point the drive IS in Operation-mode state. + + If the drive did send any kind of response, TS-DOS has discarded it. + + Step 2: + + The Operation-mode command to switch to FDC-mode. + + TS-DOS sends: 0x5A 0x5A 0x08 0x00 0xF7 + That is: Z Z REQ_FDC LEN:0 checksum + + Because of Step 1, the drive begins Step 2 definitely ready to + respond to Operation-mode commands, and this is an Operation-mode + command. + + Because of that, And because this is the Operation-mode command + to switch to FDC-mode, Step 2 should now garantee the drive is + switched to FDC-mode. + + This command does not emit a return block. And because the drive + should be in a known state this time, we can use the presense or + absense of any response as meaningful. TS-DOS previously cleared + it's RX queue, and since then has only issued a command which + produces no response from a real drive or other conforming emulator. + + At the end of Step 2: + o The drive should be in FDC-mode state. + o The drive should not emit any error or other response. + + 3: + + Lastly, a final lone carriage-return. + + TS-DOS sends 0D + + This 0D is what tells the difference between a real drive and + Desk-Link. + + At this point, a real drive should be in FDC-mode, and FDC-mode + commands are terminated with 0D. + + No command was issued, but the 0D is recognized as "time to process + the command I just received". + + A real drive should emit no response in this state. It should just + return to the top of it's main loop and wait for a new command. + + If a real drive did not start out in a normal waiting-for-command + state (regardless which mode), then by now it may have issued an + error or other response. + + At the end of Step 3: + o A real drive should be in FDC-mode state. + o A real drive should still not have emitted any error or other + response, but may have. + + + --- now the reaction from Desk-Link vs a real drive --- + + TS-DOS waits 3ms + TS-DOS checks it's RX queue + + A real drive or other emulator that's in a normal state will have + sent back nothing at this point. + + A real drive or other emulator that's in some unknown unexpected + state may have sent back some error response or even possibly a + non-error response. + + But Desk-Link recognizes this sequence of events and sends back the + DME response. TS-DOS can always distinguish a DME response from any + other normal response from a real drive or other server, because + the DME response block is not a valid response that a real drive + can ever send. The DME response is essentially a malformed or "illegal" + 0x12 standard return. The 0x12 standard return is a single byte + payload response that just returns the success or error status of + a command, no data. It only has this one fixed format and length: + 0x5A 0x5A 0x12 0x01 0x## 0x## + Z Z RET_STD LEN=1 errolevel checksum + A real drive can never send a 0x12 packet of any other form. + + A DME response is 0x12 but with an 11-byte payload. + 5A 5A 12 0B payload checksum + + payload 11 bytes: + 0x00 0x## 0x## 0x## 0x## 0x## 0x## 0x2E 0x3C 0x3E 0x20 + That is: 0x00 6-bytes ".<> " + + The 6 bytes are a space-padded directory name, or an arbitrary + string standing for the root dir. + + At this point, TS-DOS checks it's RX queue to decide whether the + drive is Desk-Link or not. + + If TS-DOS does not have any pending RX data, or has any data is + not specifically the above Desk-Link DME response, then it knows + it's talking to a real drive or some other server besides Desk-Link, + and forgets about DME. + + If it did get the DME response, then it knows it's talking to + Desk-Link, and uses it / expects it in responses. + + In either case the next things TS-DOS does is put the drive back + into Operation-mode and issue an Operation-mode drive status request. + + TS-DOS flushes and discards it's RX queue + TS-DOS sends 0x4D 0x31 0x0D (put the drive back to Operation-mode) + TS-DOS waits 3ms + TS-DOS flushes and discards it's RX queue + TS-DOS sends 0x5A 0x5A 0x07 0x00 0xF8 (request drive status) + + + From Desk-Link's point of view: + + Any client could legally just happen to send an FDC-mode command to + switch to Operation-mode followed by an Operation-mode command to + switch to FDC-mode, as they are both legal commands. But the final + carriage-return, essentially an "empty" FDC-mode command, is not + something any client would have a reason to do. A client would only + ever issue some command, or be silent. + + So Desk-Link can tell from the final 0D that it is talking to + TS-DOS, and that's when it sends the DME response. \ No newline at end of file diff --git a/ref/fdc.txt b/ref/fdc.txt new file mode 100644 index 0000000..a0e90f7 --- /dev/null +++ b/ref/fdc.txt @@ -0,0 +1,38 @@ + FDC-mode transaction format + Commands & parameters are all printable ascii, terminated by 0x0D + + client sends: C [ ] [P[,P]...] CR + + C = command letter, ascii letter + [ ] = optional space between command letter and first parameter + P = zero or more parameters, integer decimal values in ascii, comma seperated + CR = carriage return (0x0D) + + Values are in plain text ascii. Example, a parameter value of 0 is written as 0, + ie 0x30, not a 0x00 byte like in Operation-mode. + + server sends: EEDDAABB + + 8 bytes: 4 ascii hex pairs representing 4 byte values + or in some cases 2 byte values and a 2-byte value + + the different pairs have different meanings depending on the command + being responded to, but generally: + + 1st pair EE is always the error status, an 8-bit integer error code + + 2nd pair DD is usually result data, an 8-bit integer result data + For some commands this byte is actually 8 individual bit flags. + + 3rd & 4th pairs AA BB are a single 16-bit integer length value. + + Some fdc commands have one or more send-and-receive after that. + For the multi-transaction commands, if the status response to the + first part was not error, then the second (3rd,...)part, depending on + the type of command: + + client sends: up to 128 bytes data for a sector write + server sends: another standard 8-byte response as above + or + client sends: single carriage-return + server sends: up to 128 bytes data from a sector read diff --git a/ref/tsdos_mystery_1.txt b/ref/tsdos_mystery_1.txt new file mode 100644 index 0000000..d5911e5 --- /dev/null +++ b/ref/tsdos_mystery_1.txt @@ -0,0 +1,202 @@ +TS-DOS "mystery command 1" + +Summary: 0x31 is a TPDD2 sector cache write command which TS-DOS uses to detect a TPDD2 drive. + +This code used to refer to something it called TS-DOS mystery command 1 +Most other tpdd emulators do as well. + +TS-DOS performs a few different tests at start-up to determine if the drive is a TPDD1, +TPDD2, or an emulator that supports TS-DOS directory extensions. + +The complete detection routine can be seen in the TS-DOS disassembly here: +http://bitchin100.com/wiki/index.php?title=M100_TS-DOS_ROM_TPDD_Protocol +See these sections: + ; Configure baud, test for NADSBox, get NADSBox dir + ; Send mystery opcodes + ; Send M1 and test for NADSBox / Desklink response + ; Strings and table data + +In total TS-DOS sends a few different odd commands: + * 0x23 + * 0x31 + * slightly malformed FDC/Operation mode switch commands that + TS-DOS and Desk-Link(1)(2) use to mutually recognize each other. + +This document only covers the 0x31 command. + +In TS-DOS, this command appears to be used only for detecting a TPDD2 drive. + +IE probably not also part of detecting Desk-Link, because that is handled by +the special TPDD1 FDC/Operation mode switch flip flop sequence, aka "DMEReq". +http://bitchin100.com/wiki/index.php?title=Desklink/TS-DOS_Directory_Access + +What 0x31 really is, to a TPDD2 drive: + +Request 0x31 is used to write data from the client to the sector cache in a +TPDD2 drive (1280 bytes of ram in the drive that holds one full disk sector). +The command has 2 "modes" (2 known so far). "mode 0" takes normal data that +eventually gets written to the data section of a disk sector. "mode 1" takes +sector metadata that gets written to the disk but outside of the data section +of a given sector, like in the ID section, and/or drive control instructions +that don't get written to disk anywhere. + +TS-DOS sends 3 different static/canned "mode 1" commands, and apparently +only looks at the length of the response to see if it is a single byte or not. + +The format of a cache write command is: +preamble | cmd | len | mode | o_msb | o_lsb | data... | checksum +0x5A 0x5A | 0x31 | ## | ## | ## | ## | ## ... | ## + +len is a single byte representing the length of the mode through data fields, +inclusive. data may range from 0x00 to 0x40 bytes long, so len is 0x03 to 0x43 + +mode is a single byte 0x00 or 0x01 + +o_msb is a single byte, MSB of the offset into the full sector + +o_lsb is a single byte, LSB of the offset into the full sector + +data is 0 to 64 bytes of payload data + +checksum is a single byte standard tpdd checksum of the mode through data fields inclusive + + +TS-DOS has the following canned 0x31 commands that it sends during start-up: +4AE9H DB "ZZ1",0x04,0x01,0x00,0x84,0xFF,"F" +4AF0H DB "ZZ1",0x04,0x01,0x00,0x96,0x0F,0x24 +4AF9H DB "ZZ1",0x04,0x01,0x00,0x94,0x0F,0x26 + +The "1" in "ZZ1" is really 0x31, but the disassembler just decided +"ZZ1" looked like a string and represented it that way. +The same goes for the "F". It's not a letter "F", it's a checksum +that works out to 0x46, which happens to also be ascii "F". + +The disassembly above could more properly be re-written as: + +4AE9H DB 0x5A,0x5A,0x31,0x04,0x01,0x00,0x84,0xFF,0x46 +4AF0H DB 0x5A,0x5A,0x31,0x04,0x01,0x00,0x96,0x0F,0x24 +4AF9H DB 0x5A,0x5A,0x31,0x04,0x01,0x00,0x94,0x0F,0x26 + +The command breaks down as: + +0x5A Z preamble 1/2 +0x5A Z preamble 2/2 +0x31 REQ_CACHE_WRITE +0x04 4 bytes packet length +0x01 1/4: mode 1 (metadata/control, not normal data) +0x00 2/4: offset msb +0x84 3/4: offset lsb +0xFF 4/4: data (single byte of actual payload data, unknown function) +0x46 checksum from 0x31 to 0xFF + +The following bash one-liner corroborates the checksum +$ printf '0x%x\n' $(( ( (0x31+0x04+0x01+0x00+0x84+0xff) & 0xff ) ^ 0xff )) +0x46 + +So now you could add comments to the disassembly: +4AE9H DB 0x5A,0x5A,0x31,0x04,0x01,0x00,0x84,0xFF,0x46 ; tpdd2_cache_write mode:1 offset:132 data:255 +4AF0H DB 0x5A,0x5A,0x31,0x04,0x01,0x00,0x96,0x0F,0x24 ; tpdd2_cache_write mode:1 offset:150 data:16 +4AF9H DB 0x5A,0x5A,0x31,0x04,0x01,0x00,0x94,0x0F,0x26 ; tpdd2_cache_write mode:1 offset:148 data:16 + +(assuming the "offset" bytes do mean "offset" in mode 1 the way + they do in mode 0, which is not a safe assumption) + +"mode 1" cache writes have unknown function, but appear to have both metadata +and drive control functions. + +Some mode 1 cache writes do not appear to end up written to disk, but some do. + +The TPDD2 disk backup utility sends 3 0x31 commands for every sector, after +filling the sector cache, to write the cache to disk. + +The first 2 of those are always the same and do not appear to be written to disk, +which suggests they are drive control commands. Since they come *after* +filling the cache from the client, they can't be for instance, to clear +the cache to all 00's, so it's unknown what they do. + +The 3rd contains data that is different if the normal data for the +assosciated sector is different, and this data may be read back from a disk +later by doing a cache read command with the same mode 1 flag at the same +"offset" (assuming again), after loading the same physical sector from disk +into cache with the 0x30 command. Which suggests that 3rd 0x31 is metadata, +stored somewhere on-disk but not in the data part of a sector. + +This much has been verified at least in so far as simply aping the actions +of the TPDD2 backup util is enough to produce functional copies of disks. +https://github.com/bkw777/pdd.sh implements this and can successfully copy +TPDD2 disks, including "special" ones like the TPDD2 utility disk which has +strange data that no normal tpdd client can copy. + +To show it in action, here is a log of traffic at the end of a sector-write +during a TPDD2 disk copy. Excerpted from the full session capture here: +https://trs80stuff.net/tpdd/tpdd2_boot_disk_backup_log_hex.txt + +There are 4 commands here, in order: 0x31, 0x31, 0x30, 0x31. +They are coming after one full sector cache has been filled, and now +needs to be written to disk. + +The first 2 0x31 comands and 0x38 responses are identical for every sector. +The data from those commands does not appear to be written to disk, so they +appear to be drive control commands. + +The 0x30 is telling the drive what physical track & sector on the disk to +work on, and in which direction, cache-to-disk or disk-to-cache. +5A 5A 30 05 02 00 04 00 01 C3 + +5A preamble 1/2 +5A preamble 2/2 +30 REQ_CACHE_LOAD +05 5 bytes packet length +02 1/5 mode 2 (00=disk-to-cache 02=cache-to-disk) +00 2/5 unknown (always 00) +04 3/5 track number 4 (00-4F) +00 4/5 unknown (always 00) +01 5/5 sector number 1 (00-01) +C3 checksum + +So this is committing the cache to the physical media at track 5 sector 1. + +The final 0x31 IS written to disk, and can be read back from the disk later, +but does not appear anywhere in the data block of any sector. There are other +parts of the physical disk that hold metadata and housekeeping data that the +drive itself uses internally as part of the filesystem. This must be stored +in one of those areas. + +The 0x38 responses from the drive are the standard/shared response block +for both REQ_CACHE_LOAD (0x30) and REQ_CACHE_WRITE (0x31), and in this case +all 4 of these responses just says +"cache action (0x38) mode 1 (0x01) success (0x00) checksum (0xC6)" + +[M100] - 5A 5A 31 04 01 00 83 00 46 +[TPDD] - 38 01 00 C6 +[M100] - 5A 5A 31 04 01 00 96 00 33 +[TPDD] - 38 01 00 C6 +[M100] - 5A 5A 30 05 02 00 04 00 01 C3 +[TPDD] - 38 01 00 C6 +[M100] - 5A 5A 31 07 01 80 04 96 FF 00 00 AD +[TPDD] - 38 01 00 C6 + +The upshot of all this is that TS-DOS is using this command to tickle TPDD2 +drives in a way that is only meaningful to TPDD2 drives, is harmlessly ignored +by TPDD1 drives and un-aware emulators, does not modify disk contents even on a +TPDD2, but lets TS-DOS detect that the drive is a TPDD2 from the responses. + +It doesn't *appear* to be doing anything else like configuring some aspect of +drive behavior, but since we don't know exactly what those commands do, it could be. + + +------------------------------------------------------------------------------------ + +(1) The original commercial MS-DOS Booster-Link / Desk-Link, + from the same Travelling Software as TS-DOS. + https://ftp.whtech.com/club100/com/dl-arc.exe.gz + $ strings DESKLINK.COM |less + DESK-LINK (version 1.05) + (c) 1987, Traveling Software, Inc. + + +(2) The NADSBox references in the TS-DOS disassembly are the disassembler's remarks, +not part of the original source code. Originally, Travelling Software made both +TS-DOS and Desk-Link, and gave them both this extra functionality when used +together, many years before NADSBox existed. The disassembly was made later by +Ken Petit, who also made the NADSBox. From b894f45ec8a976d58da45b3f7e9c23764daa4ded Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 30 May 2022 21:23:12 -0400 Subject: [PATCH 014/206] skeleton FDC-mode support --- dl.c | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 152 insertions(+), 26 deletions(-) diff --git a/dl.c b/dl.c index 3a3809e..f86e81c 100644 --- a/dl.c +++ b/dl.c @@ -311,8 +311,6 @@ unsigned dot_offset = 6; // 6 for KC-85 platform, 8 for WP-2 int client_baud = DEFAULT_CLIENT_BAUD; int BASIC_byte_msec = DEFAULT_BASIC_BYTE_MSEC; const char dme_root_label[6] = DEFAULT_DME_ROOT_LABEL; - -// state bool getty_mode = false; bool bootstrap_mode = false; @@ -321,10 +319,11 @@ char **args; int f_open_mode = F_OPEN_NONE; int client_tty_fd = -1; struct termios client_termios; -bool m1rec = false; int o_file_h = -1; unsigned char buf[TPDD_DATA_MAX+3]; char dme_cwd[6] = DEFAULT_DME_ROOT_LABEL; +int opr_mode = 1; // 0=FDC-mode 1=Operation-mode +bool enable_dme = false; FILE_ENTRY *cur_file; int dir_depth=0; @@ -671,7 +670,9 @@ void update_file_list() closedir(dir); } -/* TPDD operations */ +//////////////////////////////////////////////////////////////////////// +// +// OPERATION MODE // standard return - return for: error open close delete status write void ret_std(unsigned char err) @@ -827,6 +828,25 @@ void ret_dme_cwd() write_client_tty(buf,14); } +////////////////////////////// +void req_dme_cwd() { + unsigned i; + unsigned char l[6]=DEFAULT_DME_ROOT_LABEL; + + buf[0]=RET_STD; + buf[1]=LEN_RET_DME; + buf[2]=0x00; + for(i=0;i<6;i++) buf[3+i]=l[i]; + buf[9]='.'; + buf[10]='<'; + buf[11]='>'; + buf[12]=0x20; + buf[13]=checksum(buf); + + write_client_tty (buf, buf[1]+3); +} + + // b[0] = fmt 0x01 // b[1] = len 0x01 // b[2] = mode 0x01 write new @@ -1065,8 +1085,14 @@ void dispatch_opr_cmd(unsigned char *data) case REQ_STATUS: ret_std(ERR_SUCCESS); break; - case REQ_FDC: /* switch to FDC-mode - part of TS-DOS DME */ - ret_dme_cwd(); + case REQ_FDC: // TPDD1 switch to FDC mode. Also part of TS-DOS<>Desk-Link DME. + dbg(2,"REQ_FDC\n"); + if(!enable_dme) { + buf[1] = 0x00; + if (read_client_tty(&buf,1)==1 && buf[0]==0x0D) enable_dme=true; + } + if(enable_dme) req_dme_cwd(); + else opr_mode=0; // Actual FDC mode request. No response, just switch modes break; case REQ_CONDITION: // TPDD2 ret_std(ERR_SUCCESS); @@ -1086,8 +1112,6 @@ void dispatch_opr_cmd(unsigned char *data) break; } - if(data[0]!=REQ_STATUS && data[0]!=REQ_FDC) m1rec=0; - return; } @@ -1136,6 +1160,112 @@ int get_opr_cmd(void) return 0; } +//////////////////////////////////////////////////////////////////////// +// +// FDC MODE + +// This is mostly just a stub still, but one operation works, which is +// switching back and forth between FDC-mode and Operation-mode +// +// You can see it happen by setting opr_mode=0 at the top, then +// start the server with 2 or 3 -v 's and connect TS-DOS and load the directory. + +// standard 8-character FDC-mode response +void ret_fdc_std(unsigned char e, unsigned char d, unsigned short l) { + dbg(1,"ret_fdc_std()\n"); + char b[9] = { 0x00 }; + snprintf(b,9,"%02X%02X%04X",e,d,l); + dbg(1,"\"%s\"\n",b); + write_client_tty(b,8); +} + +/* ref/fdc.txt */ +int get_fdc_cmd(void) { + dbg(1,"get_fdc_cmd()\n"); + unsigned char b[TPDD_DATA_MAX] = { 0x00 }; + unsigned i = 0; + bool eol = false; + + // TODO + // FDC-mode commands are plain text and terminated with CR (0x0D). + // Theoretically we could set the tty to a modified canonical mode, and + // get the command in a single read for free, instead of this byte loop. + + // read command + while (i Date: Mon, 30 May 2022 21:29:42 -0400 Subject: [PATCH 015/206] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c787223..b46bb5f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # dlplus -DeskLink+ is a Tandy Portable Disk Drive emulator or "TPDD Server" implimented in C. +DeskLink+ is a Tandy Portable Disk Drive emulator or "TPDD Server" implimented in C. +2022 [GGLabs](https://gglabs.us/) has added support for TS-DOS subdirectories. [Original README](README.txt) From 5c3c653889a928255669bad0140a8dacb0934467 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 30 May 2022 21:39:22 -0400 Subject: [PATCH 016/206] remove leftover junk --- dl.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/dl.c b/dl.c index f86e81c..1aa1e7c 100644 --- a/dl.c +++ b/dl.c @@ -828,25 +828,6 @@ void ret_dme_cwd() write_client_tty(buf,14); } -////////////////////////////// -void req_dme_cwd() { - unsigned i; - unsigned char l[6]=DEFAULT_DME_ROOT_LABEL; - - buf[0]=RET_STD; - buf[1]=LEN_RET_DME; - buf[2]=0x00; - for(i=0;i<6;i++) buf[3+i]=l[i]; - buf[9]='.'; - buf[10]='<'; - buf[11]='>'; - buf[12]=0x20; - buf[13]=checksum(buf); - - write_client_tty (buf, buf[1]+3); -} - - // b[0] = fmt 0x01 // b[1] = len 0x01 // b[2] = mode 0x01 write new @@ -1091,7 +1072,7 @@ void dispatch_opr_cmd(unsigned char *data) buf[1] = 0x00; if (read_client_tty(&buf,1)==1 && buf[0]==0x0D) enable_dme=true; } - if(enable_dme) req_dme_cwd(); + if(enable_dme) ret_dme_cwd(); else opr_mode=0; // Actual FDC mode request. No response, just switch modes break; case REQ_CONDITION: // TPDD2 From 3f545e134199e47c6799799c73d4e20d058a7e99 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 31 May 2022 17:50:05 -0400 Subject: [PATCH 017/206] manuals --- ...oftware_Manual_for_Portable_Disk_Drive.pdf | Bin 0 -> 1556422 bytes ...le Disk Drive Operation Manual 26-3808.pdf | Bin 0 -> 369787 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 ref/TANDY_Service_Manual_26-3808S_Software_Manual_for_Portable_Disk_Drive.pdf create mode 100644 ref/Tandy Portable Disk Drive Operation Manual 26-3808.pdf diff --git a/ref/TANDY_Service_Manual_26-3808S_Software_Manual_for_Portable_Disk_Drive.pdf b/ref/TANDY_Service_Manual_26-3808S_Software_Manual_for_Portable_Disk_Drive.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0821816b506677413ac942688b65d0f9b0852426 GIT binary patch literal 1556422 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

N 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 pAp30QR?Ao!eO5KV41 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î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

vZ!AKfX+X>Yo34!_O4d~006>C9N*#VBFR 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

V%-(0^+l%puAHWKXX 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∋}ACGhxdWgI-O`_Y4Br2 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%0D8RuxX?N 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

`ev(0tVP_&=Ms8S%-VO2w{%o|5V;URc; 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%0DFOYLQZ9 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%0ADNJ{B7E%(&Ew{g}JYW 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

dTRjUB^RYD^jN2fqdrgvyLVn| z&fztAXeoFn@v4iiz3LO|2ll-RlXs3^9h3{Wjb|p{RGdAFcmorcrZ8Zjr0_*s;n4`y z0NPqbY2tAK>G8GVFxdFiIBRy}(zF?;ZqEP}QC;}X+b2;#GY{7;Xl;(1)mQ(pM%6+_ zA?(3!%QmM?Loab7V^@KG*zoJJ z%aga^+?hqa=l1Di(PHnt$$$-mQdSHH3|+^rkp-fr!e};fRqFh-piz44Q`JI=;^H9# zW6dLx9SDN~77!usY-Jc!oj6i_63WgaX3C38M$pTuHv)F`Y&aEQxc$2J#c-kP2fK&^ zcO&qbhbDlMOcO_?T+~9yI(nmBSO#bia{c#+f)+9WW>W+n0@4rj^5=oy#pmAnO~l(Z z9}x(zMbv>6v8jN@A8zFeCyv@iaioR%2v60Ndhl}+&xc=60FUj}s`w4iI` z_)@1kN;L02#EusKGX#|3jkR)XOVC2VZaSKMex`?NQEO1t6yA78+y4hN3{H?W7q}Fl z5P95f9N`JkD!VYb!qY$K$5(0jEXzuuL5UWtIRTWriz@oq?&y^7G^J!Su(XflMy=TW zDk%{tNC74tz?%ZVTgla80(E5il$+|0F^Yer?8k-wYSSS(6%^ny_J#vsgY?g8dVst< zRCzSCKtbU#8>fJjSJvos{&${hl8kRsZFBDzT{4J0AX!)Ui!oqtAA5NEQ&TrH^wRpo?xQrS> z=SCDwz8Y+z#HPYnI;DUw9Ex{wgtZi6`nw$=ydnpoOnlFtv8Z(IS1J6L8I)_|F@1q0 z^^)FA&6>UT3zlkjFM0sGr^k50QlEqmM?I*q;u6#-+9dCH+a5rC>PwQN_r7F+c0ZE` z{Zk4`UFdf1Bf6i9{uX5+9Oa?u%~@%`2l!?!yS11mhY%b96qR&7YRE3wz8QDBvTlS=_2A6;FY0ZKL50uDYT8Ef*2jC2 zcK@rW&_#Bcd}SF(2LnweBFSNg=4=OC^cWKp(l0Z?;`;Xrt!syzg+}q~_YnhCeokm} z%-5BSPd{yGxw8_dGG$|AwKP7pdnR-xXB0It(44KDB=2G&T})JA8CC{Hn$ha*B%hEY ziwT;IrWvc_hBX#bGYV_cbnB6n;>gb8RaxVzxZZTLre;~`p~xRY)`zbL=ZZ4BjIa1x zJ>2g7;3a%mwz;w+T+MSUB#FauF_*yp+h|e14yb4)5H!Phl0b9J;>v0=8=sc9{0{ll97(ojL>MC;hqWNB{VK$7cvJxlYx zmQBrKRiGGT+@P`sqir*tQe;_#ycdyQih{_&-x+-g8gG&tp?j@Ab223*K;nWB-|+Yi5R zRs~35SQJn>bg|XDq)U1I#&nDqFL;a7dd(5T=S#!3_FDh?=luH?-eo?^vC<|o{C#cr zZQR-AqvU+^6DH-HyEa8>{o-|NQ`;kJ&FX@e1s^$4jFr5nr60lqwI;gzk~fK7Upl%c zJsHWFIJa%yQ!8eux_|Y;(RXn6717XXBI~30ba{>^w)#@JZRAj;&M`cdr0hlGUPSZt zi|xTCLhhuUsw?yy4xhv~zUiKaYg@(fber&6aif4;d2C&~=ZPYVt`+g&Z=QI5Kc z;jWyrJ4;ZR%f`uVr&DUsZX+^FIxA=Gk`XK3J&0^nAA4;}ZRoV-=*J)Gy3&`|GDNn6O zw>RA7JsmsmT7dFITPb5*8{pNY!BO>yO zK)suS(s9pC0|u{H=oy5*XDhNun31f$`*~b*7a}4Ja3NmX2EAGP9e6l?trO}!b(egO zEyaP)0bi}w8*Ei*7d8)*l1azZrt-X1n-D}Bn36pw=*7Xt ziEED}7bibnVkk$2&O{4zGn8P>vgKJo>$8v!geUcR^MH3G(H9yT0kSe^ABIZ2F#J0h3f@fBE97zSRb*vqZEz*A z!vcEf@W*%9L|x8h5%Mi(^X)ei!cKz;61e~>VLdcW7L>M@ujmzy@+3$w3 z8tS&pO7r5%UJ6Ytw=X+iu$)*HJ@FR9*U8^%zxQC)J7d2bE?a3}EoC#};H-UT(}C>q z1Yd@t=iz_PuK&Juc;^nrKPqz!eu&%`vVRlmMCPv*_PPtSkVSuam&V*|mR%X?F(BLQ zwK>Tt(3xg`q=a=3wI5PS?K>EZeD*F7tnsG9k%8g1m%(}$bbKW-De8k1HL#~$SmIKX z5h2>xa~t~Ok$8#tu{{4ew(E4T#(nE4HemiDj&v!7MJV6EL2Nk_ zSz|bgChpq13!80q)FByQ?p^tuY>^yOuJdVXM;;1J-8@^fFTsFj6Bf|CW%oJiVGm^S zuF8qT81_fakFAqCicrTJS1#QdM5l07$&hs_FrwHVuwGANt3ecn9zg5sF4=n8*17zM zfL#*)v-FpMqqnI!G5H{eb0{t>bmC&=nOxM4f3AALeq} zXme9y^V|{~YUxa8R#F9E$4HnrPzZRo`Fg6Wapi+oMn)%BTBd)EJ1r1*Dn)+v!O?g5 z&clQ36R?$h%uHe|(S|Z=(T?^=V7*H}4oG5PwnFvum_@HXz+7rc@GCssBSU^;lFD6<>pua@<$jviRqev|d&j#KZmE3WOXx(oU%?3<*zm95S=+t(JA z#>0-gUXgmEes)b5UY?!taw`vbn*O|H|DyiN88kkM>c$-iT71D$fFzC4j=w6-1%KK2 z?|Bez757AstKn`%-tRUYi8x=rip7hl&Y?|b75Ul&3Y*0W7Lw4wX7bPSd0fTC#+6tn z%Q}^;)s1Q5!0!_l|Kl9(m*r#c6el$~V(Oz}?U>!(kdJS}n%2cY$5)ow_QV{+^VY}3 ziw9Cq9LYLUUe!UK;{vEjZZjFkB4CxCKQr5R7jbY(%)UFT%4ixsS%gX1+?#HP z#AbfqT-(-v7acFYR}^? zn~Yjip{mZ7VmPy<-Fm+zXk6mENylA9e52HvL&}KjFxQGt~+G?m(Uq#5Inx_E)YQfH-I_^3>HQPbV_(!F|>*9dQ8H3>M zA(ZFujbvNsh*5N|FLc>J-d_;V+EUyR(m&mm_6FyF?85~x=zXo?3wNCqy6(!^fUSCh z`q_Nwd5E&w0iWRL8=v|DKsJ>$=^ceb(v@#oc7e~7U619jJh(=mvp-baf8P@wJjyy+ zcoZh-uS&UjsBTZWA~)hnfe+OA9_BxO36rfffph?m`qiJGno68PISX=0`~1PM9&=(I z>P9Ct8TV@{PTF)B<^H?`YSUqDJ2D4YnCj@m9lNVpRdxzsfZ1p%w3Y1 zJh!#h;=x^t{y7>koL}enBe7F+PweVhceytr3y=fkq?g&CmubZK(kvo-Qg82@VZw;* zbDrjwiemv|S31f8dGS|5eQf3kTXC3- zOvrbwe`=)`>TwvMI)g%1@1$ST^Nud;9d4QCz1cka+m`FUivvQ#R>_7kcQoamY1|2v z3|%E%ShbUveX(kg>Y%9cxT0j_zfm>pu?%YuYlPU9+0`e$Cb)j0@arg2z3Dw76v(xm z@RFfwboK2^77W!Qedk?mTCWVYMC>kNlwTR`uXks52D;ANd|I0bC>K?@Ve;SQKiR?S z_pteo;jVOL+puvqfIE$&M#_G)KeG69nm*WInWqW?20zZ@!1DN)h72K-PI{nj&i#C< zZ0Nq5P0=u#YFosnhPWH)>#hql`4m(E&^L)*tsG4>K(AdBu=9?0dIZ^A1X8Q|!JYdcIW3k@>m-Zn-5i02F-SgoQ$ofs@xhEs7#Zw;jGnSzFZ#;BW zwUd#GeV_2;iA(C~cg_StGB-3LwDj{y;YyaDgI`TLfvrWbS3f2xxV9rF?;1x5zpOwm z;-?igUEWRnMCJ;>Pm3Jsjh8KOR9$+eIz7a}D5xv}>bU7n zR5YeTO6rEPJwWi}itBQN5NNk6E#)%48uV2HF#*t%%wwmZp(u8tMqjwUm*aMh? z7)41+rt&5;-(15lPtA{d`&4-)oDcouI{5h`HH20{G~`H90hfx*m2z~@_SA3Ip3?f_ zCVR>Ytsk{nTjf2AzULuqml-;c)Zo~tc=Jy@L_CKfQ1;t>nZrghi1Xq+?i3s;whV~w zoV50@2&~^P1RSwzbP^FLLhale2u$lI?Rs$@m!X!1oZ9KiL2&rvaAlx~k=*B+$_+OH z)^9>^5i@|awPP8`{SsL5cya2I*dOV%(qq90TkemV?snZNhqxL?cStsl)IV`iJIO&9 z6ucUzca~0APkir@)c^T>ImOIJt8!;-(v!nB-4EJORY6mZ%vX|xJM*?T)S-R8z2Mnd zq2Q&{5sJ7J)!dSE=H_AtnOebRGWxlt61n2b%t6`+{q)TN=>nD?VC#k|suEAxIKF`B z64Y2-4_z+)+UbS=3^^9pMUL?^{ntGEnloDw&q9q^4JsAEBIKt5#U-@y-kmm|#hMz| z&8l4cXX4l+7-E!sO5w1&W7b24KJSR}OOB*pT5HTyS^PYh=@hzNe0P3=ub;J~hkXe} zM1QnyfK3CJ!G6y|u98PFEd6afM;H-m#*15Lr=om)&n0f&ycr?d_3R{So7YJRvo`^- zxPEx}Gw*ZpIBO*>(-<(`6Fth;`kJ^fusq6oylt6p61?Z*w0rBBumP=9R`0A*S^C#$ zjA1ydKHq#DkW-Jpxk^L0b1-6dlov%F(lage5=GS565FL%G-P{uJ_$#4+~4e!#|^=r zj!Xe2{;xOG?azZ$w%g!VF5`sY39vf5Z!+QUYdeWm%*BuY@kB^IEr|cS^)HBak}=J8 z6~3ZH_1+KH+_=gKAJ%RbOL9<=a3Pf`RAe6nWOAFbxktLd<1nQ6t1M%s2mc)YTj!}& zhg@!6v3gDv@-ovgyrI>q4bRX*m;DB~6WgohNTGH#Mc?*s1J~b`+|lUyHhxhDo^#y% z8@644A&rJmm$%ur;UT!=ZDq{JV6_|>h*L{AxJnBjm-jmj#qNM&YrU?+KyNkCg%G8i zgqEnBvjW2|g1NpQUceKDF6}FP+474eSO7;c`f}eu7+YN+WGvhcbQL#!Y*wF#I=*;OGxox0 z9-J8#{#4}#AM>*_A$+8eAH*BaF(3_v!*WY?Yef7d50RF@gp0*cJgAL$Rlh!Hd z+{JblYQK8eLDBW3d!Z*<_wO~OpoxRa6|hFO&%=Y7G!NG9+ybs zpzm3txo!#<8n@2?nh%vTN>K%Q(dw`zU6XRj*#`=b^t`Bu9LdG9dgx`V zsc~p{Tj2>WHojRb{JC0pWHNRS!-Z*p$@Xd#KvW8qtwFOs2iT-78*X1nbr*gc4I%Ft^DZ{T*3z}ALY7s zA$MUn+6r=)D;Rg>00R?rNzU@pRNA;YIk?ggHH=B5i%`#2-sMC6VdCb_DyuTmaD|u+2I;j?mx%7%UOEn3%*|Jky7+^=y3fX# z2p{Fxdm&L3qZ^ff22lvTIG-5yYc!wq)cl20!Th*71fY=vE9e2*E;~=6Ri@2iA<+$sHc3h$a6O1UkU5pc{fS2k z4tv=ywVgqM9Td`wOtYX2#z`nO)Q~~{a19(iRhEUiGk{J{9n+paiyk2Tz$>!VssJ(w zL<0vNBA?xtQn>ZsWWAg*bc9YCvJPJW4$i}u)BwaMgjlR9-ZuXJRE_i?=!J)XZ?EJu{ zD#kJiX69%y$kko`>Didr^(TNPQ4L?a%j9~ryl!b)`y&XQV)(v^q8D)+-M57_61)C*C1xKvk8h|S-F1e0Pwcbvg@VvrK1ro3#?}z66VO!*4`oU1HIUj(lKi!~~ zawl-$$gr)8gKxd0uG8G_u#a&kjT?I>e9m4P0P?*b9!m6CD|6egF1@(Y$yV~R@tgfc zsS|n$rzs}_RtW)MgZu8EaM$2wSo2*T|iVd>KgQeOz5BC5=X?ioN^*BM2Q zp9;DL5Ucod6s{}%kN5}^q~eYBrigc%^oe&Oz1c934gnCa3c*?<+>9%hZLznn?~rl# z2a}L!2APLOItF?cp$G7?U0~Nl%e?N}aWxL0oV2M$=|QvLyhdIoycZi&TA>3l`)T%R zxr>~~X}Ouoy&y0lr7Vit@%{3v8B@>blI#KS^1p8W|CAaOH28RL(Q7UmOSxD333G~t zz62gei%h{acmr@;ecYfYwVo?j&ivvylG+8vO~Z!;-7dT`&DNXu1003yAy~Q7(xwc3 zlVVj*IPe#YBx=pVO~;=Iq_u=!27{gaGS2=bbRJi6yGOUfvhLhPSmMpND<)=ftE}pu z;&iF8Zq0!lW_8%wCUe~2L zPSvd39V*&soW%v@1fVx1wkL^nWbH#l7M5a_jobCYX5 zdjd_S4UA;sK3TrJ)DgPN%4>Pxx&DWlu=UV<<@ITn_qs6=(@;EpIT5f?g(fx4UR1CC zG|_RaTKYt$#_Xjg&6&60|tN_BW`>3o1wSwp8o(!G_jw zFU+c&>R4cZn0a>VR9aKi0C|j3czZRtFX_J*Tkt=$uKb%Dx|1Vq+up4jt%gG^ZDos+ zNR!dxBM0tzZ%TU95qao&|L)>gKcytr!SQPoP5r97gxd3`w3Vq#qw}W~{G2zd=H2hK zd~|vjM`MTIZBNpr@27AA?RWAB8@0jrar#FSf9`=Ugr0*nc`4gS>d{(F(fX<8ep28s zG;W+3=t}aGQ|qS?T`_!@QE#_8)UF+j_Z!e2{%%H>X(;;v7fcF@%_;bF9i6gi0>gNV zG3z6}2>P;7=}INB&yf!dUI2RyHB4j}zX7`#T832>MDrVPOfjqk>&7>|z1V>LGNSk* z*fSK*d)dn?2;E+n;*Ryy^8F7U;<}4IwyW@BLsgc1;FZzAQMBBBceyTT$PD~Q)0#*d z$LYJQwZ-Wlo8PWWAeI9m7m?a#isUFD+8=z|$F}TBR2!A#KYx2aDc~kle+xu)_dBXQ zv(D^RC-$xH*XFQ2=mQmiXJlL0FBx2@iR@&66TS14lc}QA%z5n8*7QQd76k2j!kg{*s0Qzc{1EKem(~a4OmYS#AzJ$WlF6q41GxR7sRTUFa#PakJ%LY}Gv!4gIs*vX z=TEALo^&n3D4M@|G4$2pU^j8N%;g9vo02-Ezc~>wGZ--E*2CtbtIF~YZYrV>xmLqX zocD_QRb(C zUS*?dU1#83+^azLM6tZoTdcs_9qcrz_rW#%XK3LK%40NpdNtI{{_W8sRp|S`syauf zZhsA>#kc}jy};H7xusr8Tm4CKCpnT7MzfNDoUWw}A)4#89Uj(bOtnRHvQD@9>YZ8N#Me`^u(tu9)6Tjb!MaQ@um2+IpAj~qwQ<<}ofiG#HW;0^ZK z#C*`^%uV`SD{{7!>$M=!KqY+=QULjFU1)2cbd0s-Evo?=npCNZ|PWwDU5i;g))eXRUSzgxo7Tjs&iq@ zG5ec$-}N`ui2I3Jz~$(Fzy`q9xg4@_V1{x3~ihG9AHNx1G=B3aE zZ$Cu~!^a^SFt_w~lNKzz?jVWL%Tw_XW!b4>LV)z${QOv78+%gUHji5u?n*RW{*dZ5 z_(VIIYTiih8&H1SaW?#20nuqAx8jbL_y=E&EF5)oiTgSEF@M9;VFx4C;f&2H*8bvq z&EA`Mh_~O9{T+Q@Yf$oIpUl7Ap2!`jp4L}mE?b*18%;0A1@#CU9$Gczyt^i`Vh-M0 zHcdB0+1I&yo<@4T-ayu+HrAUU=f^nZ%+u{>Jj@Y+8MD;lAN7_cn)D{!9~J`j*UX>z z@^#)*d*0>{`$e|i2V5OCRJ2+Stcqp1?pJC3a0OuAa>853xKdFU<9W~9?4q3mfonfG z7n|@y(gqNBYMmkv2Yd{?sQEW1{^K8Ci7zHRgVyJqq}LA6*X)nXeOmdVl2LR!H1tTM z;Wq6p>s~XH{u1{wO?j4M)xe4vR2TV&YT&{$`k#jm#YEVqyJ@~i{KLjcTE~*FifM9S zd^g*+L(<@tZIa~nW$WtEi-D!tS;z%#KUFn_iVK?Dwv<=*zHDc-kyvx=#rY*+K|n4y z-M=w%BEw+!ywg|S{GIh@s~*%$ud)@B(h`IC`^<2m-RX`oPe24 z164l`a;HD;@P>L_m8mTe%NPmqW$Ee$0&)M>i>u?&_!0V2_p+Ct%ny~9J)))qZ$&$7 z(8I_%Y&f&NsT4X7!Ul@WJ_W+wfE}+Fi=b(}AC_-ZxjU)%S;}w_)HnlKFh5U7Yc;y%Wc`17cq_5Wj z@COgBTqV_oyZ&VnnmK^>XBq7aRKGOFDv_gQqZT!dy0;o^T7gg6eR2GAw@$;N`%gLv zx4lKm?y~{kx&JCW@H6;OcmSq>kiDT|U}b0E_U>nZZV4eDH4Klpb`UeDD)x5c?y~~Z zf|TB%9soPII=4PB4jV3W zNGpc}+I4=dzm?-P}g{ zv;X^9a192E{4dZa;ULKocnREdw~9~~zygG$(n+5A-QbTAG;_wtck)x)uoQz^S=_l_ zS6?|n75V>cU~*%7?hxcOWRuKewx?(& z1Lf?ov5niHt(rSNwq9;S%y*oO>Di#sBX0?w{&d&#ef6sk@Sg34THcmK?B7BXmE(x9 z$F>N*L3kh|eZk$D3^hj@E|jQg&^LV>ss0Qn2j>Dt=o#NCA)4E8?YbmPxH3{y!>T83 zZkGUocM5E0-a>D5-3HB-&m1!GvwN6iXHe;hQ&vk~mk*#2lYxj`^x{f4r(-p2iry9h z5Ax(zcov|vltW$74iwEtfiL?+nmpN)&_@fK8nOR;!iNFaOn8z&M~7^eEcfbm^MP89 z6||LykGNcM*7cD-W@9bf3LCh?&r9czOgk1=poxl5XZ1p)F6KA~(cMj|3IWa46*dVP zfcw)P*e-CA4f)l}Va%JI&T3{C0W$*xw~=xn&vhkkXgSiy6|-?(z5-o`elStw5{#{hzx=36-C&O3@Z=8Lu^3Oaf^{yc1k6x`zj^ z6%Btki06vlH){*;9l=b9l67#5y;E(jmDh$7&uH>&QC{3^rmm!nWet>I)u7uFfCX z?(dUW#hS;m%Nr^96V$nYh2$oZeC!zfR4>gfIyF2|l2^=zpUM;)-z4#9(26ZiC-8@e zNXPo+Jooptu@n6i&9GpwR@WS^V1I9}#7(v=`JjfL?n<5SeO47WThRj*g|e5JylN%f z(&)*th~X@St=-q}08Czl!sT0{E}30I!j>AXhG7p+ba=Z`y2Vik$mq+^O?ra-^c_&k zyqW^*Anokpj|Q#d;;v9*j9Icls8Xx)PfWLjmIN7HI>MmREHP2M9q)um$HqaU8S`_T z2hEVrDOt{?jD**y1wA@+!~MNUD5d;(LJLU*HHljcEUmzIqVVA-*lxIvTctztSlNsR zSdL}6C7jV6aiQ`%g-gNv-qf!Qusu5G#}Iwp>^;Qt#gi@63QO|PdrF0JOOc=+b}FG` zn$%Z%#rRT3f*X;6l)Vvf0`e-+h0uWlD%%p2C+Wca)mGvd?gM4SXQNV`AYz1VAD;(| zk>RqRcYQ&v?ka*YCy6^%LYXV-K|mjATU~im1mplEHO*L^B20EF2R?*>jAgsVC?J4g z2ETqFo4jLQOg2!r0*A$&kxm#n7e<4leJ+7=e-mxs4^@P#*JOxxJgvU&Zt!8q|3Gf?E) z4l8SkJ1JYQ2Q$mzG*1s=sQ78si_l;x-kD);35HFN5#T@7>QS>mT&;POR{wOE@4q4t zdcSC0Rp9lCNiWJCwdyjAmTa5NZCjkm6Cn09Kuiu@yUZdu>1GUoU7m7#y%DC~MvHna z(zvDd`MJP-I8eEH)A;E%N)~r(jt5uD4n{+l!8J7GcY68kVulA=r==3!nEw>cu(74` zKClvG@23L`T~|=oVMD+F4p_dlh+=^qXdT$UAP|4^GJJ!ZlJjlfG%wx+9q{_p`x{Yy=lC3&2MP7^GUwnUk2;A^eGDdq^sMXhzD&K*E4-1b-gWB zh5KM}(_d&S__}Y>D62i-H7Zi@)!-Kp#?p2@rEHdRn*q;KA_wW&AZUtzu0#+EpBmnO zgVb$D2oGdcZ1RW(XJi9fO>&BM>X$NlV#CM6asC@-R^f*m1IttHjs5=duu!MfoTbuK zeCz(Z@W4Ao&p%u(E8uqx7(Z?aEayh^^TkCi z1{Rm5D{aE&`OgfJChobKqE(uA8NW6DKiGQ@pr*RFU-Y#gub^Ndpa}9>5J*In-cb=z zs+6!15>OCn(n;u`A|OFfkWfVgL?Dq(hlD^7kQRCgNJk))(4>SC2%P-CbH8)%%y(wa zJ#)T0_ujd8X3y-MmA%S-*4}G9?e{z*H3_5xJ2Xgr$)3EJQk{t9XKd4xoOf7oPXX{x z*V?4O*4m%^Rh#wgH;(@A%=Z6(_5VEzfMA?f5iRA}4? zWTf71+MIgNh!{do!4H*UI1>^@1AX`We|Fx8E#)@tcn>S*Vgj^cDGOh|Y zv<#xo)>g0XQ(F;SavL`P@ilx=rrN&}VHJ*y4QKiXd-@-}DlRJIe+jKA8hpuVF8kNX zY+t2(=B@nVh5aRtUEGN`W@-><%jYg!qO@K~l38_pw`jgUsZB25zp}5C9%aT#o5z@` z?Ud5-YpA?%tGB{N$5O`s>G^mZ8=)!nGe-Pwn%2M0%~#SI|8>3zgG+BnFJi9t@AVXY z{@Eeer7c?d1+I}j_sNVEKWSej-)(p)Zq@S4?ydY7N9ud$hOZd{77PG0%_hy8$+EtE zb)M?~_*DOSCFQLLyjLECfL}{m;a%8vi?XmGO7ue}{7a8qL3V`~PC>s_d6cFsJ#kCuWXQXXEWIL~=)pAuRleGL3nr;4uPLD0X(tKcUbt>-{7GmY1p;h5 zZvt*l zq6`)v-?e^=H=w>k!k5jf12ZisHx_ji(j@lCuCG13vsIy|Uvt2Fxbi)6;3n^S0p0iO|Cse({u3pF^*9RkKHXMHTmJXJ4jy83I6P8FEMS-RULB5DmffL;F< zY7%&C5gK$0jH>_!;kp5zk|quo&>B<5Y4W1ez%r)t~aNj_8_FlJrpZ-4{gNWhig zuT(Fk`JVIU2IAd*VUyW`EIqT4vVa$OS5{;4isL77g;wEB;?))!+5)$G=qbRT#j-pDtGFlxf_C(vCh(;|QxhxfP&l&^^~ z5{=4xQ5|NHpi5JBNpEo)#Z6r}&7YiOLmS2=S1M}`E*mye?Ox*RjMCiMt==qz$r8G1 z#^5Pls0XL-&d;-4-BBGNUmDS%mMYK}9LBBT35<&K-Cm>@hrNG^?!Mv)N1zsQ;dpa= z+*l~=eNwHwwE;<7qUU(@68NCNLicquTpQfZuES3T8EfTuT!}!4YU^a-q~_bQ-_|pW zO`hXPf1bSgy#urUHjuafYw-Pi(^m?(pY-B-95WQ$e!12D=Xk+xj)q0>_e=D?zTpQu z{ErEDl;0#ma8wcV=6B4Dxc}jrR>)sq&8n`ESH7;nlxAg>;N$majM9Sjdvns)lj3V! zCH+)hoA_ioSm9>(E`$uah=s&dZ0(_h+m8wF!;lOnb77$Xr9lBMp zKO@5WJz#wzhI&?L+CU<0EN5dMrE`!SylRWPzgl|xHM#Bq)Gc!fN1^_vr4L^MR66e? zTmr-{zO_K)x8Fy|4Ua`d+(G2COUqb|pVtht_9r(tXVnMa;tgeXsE-+j*5NgVcd*9R zy=8=!@$na4vn$Ojmli%LlVk-}pYWQbnw?S35;gomOfB>JH(J1uklAT{Ldx zwkz0w2TO6AL!FJfU7JugTwAS>rKxw{lu!R zvq(%$b_lLl%)TWO5Y|%C0;!%LS{-4znOJt8(RJP_KFGMK@BYKI_9->6HgOpl+`V5E z@_bG)UR6S&l~Kj?!F_2cb`_-$OUq};iw^LT9vof^F|EQJMj`M_cU31Q1YDhXe zWYm6D)$kbmJHOx@n6SI~~I0i?=Sb(G$9b{g-6h5rgQIZXcej`$F>_;E*$Tx%j>Ijek{rDR(8^ zbr6E}b-SIB(r^5V}}FH`hEsQTwPL*n_=V9>ek&z5^`YV`xm^l4^K(z?9!VCq_4V zug4eTrPD)$X6h*Ih0-DKc;3u!7ZWEit(zv(q_cHoMy`)*NFd_jyk?{maWVS( zUmQvT_ot!m?@Z;ZG!`k!L&HPx*sY6T-zR+Fov;=R&&w--pqLo3?wCD@5V0=X5wZg| z9$%lGDi2+SoOgPMduUGn77~rjOpJYxuW0e=)4Fv!@6NTK!`{&asr%nwJE83?2z9S1 z5D#mJH+Z@5C#qNe8UKZ^nt%0P>yb*@t>4=*5LTeJ1qO>^yl`@TkchQcDc zP666X9~}*UV7kIp(Y+0Im3dQrEa|@Oo!0{Q(go9}b)SeIar+P)9#__#y3L*b9@h#v zL~wG?n5!QVKEgo=!z+`9G;y;?qT8dP-W$KQyC?g;$_ZmqP$smP3kkK3$A zz8%nKVhN`&+=0j55H`<(Ba*^$%#}EuH-GB~3Xf5-%oP#8ub`xrg>>oO#nwaE^p_k8)R%!p(hI#A-o!^G_d(^3d}hZYt(8x^yC6t?8M( zL*-we?SSf`v`h`o-Ewub-E*+g4|wVx)+JbUG+na9>ybA9qis8Y$jbD|CWKvU%EYc{ zZWd4BKAJtBaoW24JrAZvxNCF^1)r(&o57^YYL3U`L`W9m$#Ld{1(2XdwYe3sXaZ#L z4&uk)>$wOyMist%`mdH7#K}$kFJN#6;bHRAm@G(#K`RtX@UAzkX>@&XYVLj~V#zAV z-NFhU3PTL%fL(9&9^1CSQ!Oh!N6#0TuHY#0eq_h*Ejd2Ako)iXaqIdbE8kfUf{OvN$srx z1a-vs(N|f(iYg>CZD?p4zHw|YZW89a2H-TdrJOzC2DaT1@r5_4@$w|60dL4^k)l@^ z^9d>**+2`lQ@oeXjsY*E*5~p0GP!uWJQ=oon-n7ExeIYc^MDu*;O|$sMJEdpy^(uK zLwPVzCDl6=CiFHBhMStpX8r?L2mp$HIRg4VymcorOge@^4-H1xM6FmS-)MeMxjmq6u&eTx;n~1bpjeThu4DxPEkW{kTamZc+qZ z&{yiOqG`V%1)q@EUwR$3GQcg;aAeFV^7^7Gf4dvKR8QiBys7jhlkg|iRc{? zN5?I6124z#pGm~JGO&B(r=`5NG@PZz{5HAE)NCuvc@E+>UNy|5I`Z9%|HLhTSp9hM zyIh6!Nl=wE8F4J7hyC6ch8Q%?D7)4Ieo?mSC_CdOmsMPd;@g#<=^LH>UlEdQGWu3$ zwt#CTA}2KrN*8r_!I%(PKlZ>-PRneEjK z<&*Gc4xlQFh;DCJU33zx7@whRb+-H|8dO@7`49?=Kl^Kbk^bczVuxItO(EsYe3lSI z5cBZY6bcQIgN7vKbRved0M$1K4-m|R@rD^|K zNK`u@A9$UFsUYaAgUu$yRF`H==R26qS&`we4JA8w0phnUdZ2Sgiy=M>g)m&XnnNyc z2i;HG=Iq>w{PEsv_S{u#&S6jYuo+dJNz-v(%o^152&xPZ_GeKgDvs=q2sdoHWaZU7 z7NN)3h<{8?+EG7xQL*l0%J$aUL%cteN?r&u9KS zS|D{Hx-xk5N7J7>^Zr0@=*9Jdic~apY=#2rrI5*|vxkC_);woOdNA6waP zRVEeBOD3SG3^$z}-wp@n%43<85KIrOC%ey!5zUaR&P_Qi@JSQ?^_X@GY>C31cun!~ zM=9mK%XvoKuX8)F9_IOQxvRW1t54jsLn={#x1|q zF}rk{yZ2fw&cSb5vls3yD&%R@ryuQEHBsge_QQ|-Z7NsE<$@{%RUBh ziIPn!B^tqtM#r*hFmJ8%BwlB7yy`%nB*wFx(BU$bo1!!&os20sEO@v|)Z`@XXKtbR zo)$Rd-Pk?wF~o2!-$XuP$K;NWAtt^6rKl`<-51>uUfDDFR%-tuERjNvSmL)h;zHL; zw#H^3P1vJd@X|Wq!0zTmRtP9F^?;VtabIi1+$ifJIM-#TVcS3x!-UKeQ^|OT`pUa6^aJKl_B?=c#tm z+s0ZVdTxi8!pVOv6#SrLx3BXolSbcg2KX zd2F2k4_{Z5i)^H+H68l{&YZ%M!HWUVhbPtoziK|1|CM!EYxPy}1rNBArM!LRi&h7A z&f5{c$X0_vGx~R@GnXYt9X#1ek_RebizZ!Q_u+#&*=gMKY!iSJBYiyIHy%kFacp#N znB6@u!l^>=kE9vI8oYR;4lm@QOeai3LSdsMr(#&~#2?ocoDE<&2oY}33_MH1Da=E= z4f^byEfx%~Lr92B>(a*b;y1Y7XyJ${ig1FsXIfaC(`tJ+P8OG z-%X#^c#jL$!G~8WGY+qao_W76JlH>(lxvUC3tQB|ivmrHPP{3B`?a8NXIkB%CxAx> zHVl8(Q)|Au!g?ihVhux~f);}zNcq+CG}AfhYWxghH>(G-Y^oqudAxHyZ>0k}42(M#cPEX( zuQy}qNJw+5)-VZ*L^9nzd+@s%G@H%8$2IbMhv_dr^8)84HDtT4w zH08HN#(d~2&`Z<>!FhoPg^vx<{q)Xsu{&q(wJIGaO)Fr~&717uma(u0v{orQdryY& ziV}9{YV{9nT=B*slJd}$3-c@^4$~we&11qkx@X zs`;1Pmj!`MP2FyPguZ^s_2J+M3~Nw2xBcu1&^7<4yq@Yn$5qYX(!8_)>5~C?Ro-|BE=3Eoq*1`)nGWCiJm6F^Lp^^3cYVn?-FBz-nX3x!|)?nTzP3f*ok(HBEO5d zSbs0V=TeN&VewnP8zwLv7XAt(>G_9c6zVzfjOSF*@(dzO-MY*KxE7o5frhYU+Bn&E z;I|b5*}w(9Q;|FSFILe${^+7US}QTX;z5QjAP6oFKhy;`nq(yl9CWV;d3tJztOg3- zt7@cCGhsZYt*MBo9u*2+vs;rq7y808vsV zlL`@>{|2fOapQ%s-VS21BBvY>p5}PkYVO#A&mt~Z&Wm~ioKt>KbU5r!L4;SK4|QyU za`|_B8NMMcHZ#T_4WV_VYf07+zV4*2H=CXkTncK`Ta2eCRs%;+qat}P4o zhwM%HUCOW6`BPAV{fB7OvqvBAU(P#s3DCE$apj~P`hpnLwcfJ1)E4^9r$)f8WdRHI{RTemFv zZh4lu>9%=6tmdlLS&D%}QF5hI*8{Ini1CBje`;EzS|B2#(R2|+nbPxL zFGhFdw+&hr%??*sS;BF!^bA6F&ygou8oSBUed5WdGh`*z`X+nM>}bxG$rcM2q&aoM_K1 z-w@{%X&{t;<@r$fqG!2`oA?Selz*mD!qIRi_^0K_(wEGhz~*+kw_Hb#y4~Ltk7<<| z6g_u?PL_HU&=b6 zAij-0IsS>V9&V(GOTAM4Yxy!S)8zdMb$xcH3pls+^I?46pl zLagRvXkkkO)NmCU)tjR@dqXeOk^*6JIINZ1Lu|IBg23&KuY6($C?qn|k6s|m&{jzn z)JtpyP))`i*KC+-#KunQ$RSq`#s%rxKI)biH>*T@k*<${5GT_Fvp4EDq8kG3R>-tG zm`p`i+CozRkNi;Lp)}RH^aa94ZR4H$^I!8!?$98Yzms{}M$aMIndPGB17BoD!5N>m zKOC-L*4YQk=2P*GMEf|K^y5BhW2LzL55YQtKta(hjpOjI8?}@C3zNSNh2kAUB){)9 zBiY^~4u2Gz{sg|`p`SDC%^BH(Ve_VQ_}z0lu)<>lkt-dBf+L2(16v8YZq{PtQ6VQo zA~b<$^}+4#1y6=K>^ zOgVTAO0%c_d9cwX*|OSuWDx#QWXGX9G0H~b*+5{3nuhH9o4veLQs0U!o$&KYW>Yr% z6GX_-{aQetr^l)Z-zlA1F+;eWazR8`PBm=P(hr*+rekjHRl}<~pt+)q6&ajVH=L%> z#`NBQc%3f4!Oq^N56HR5-4%#TL7?Ui!Xl>LDNoG0%WCz?Byw8pT{`o2=`O~Y>*CI8c7JgC`E*r=-Y*cu~aB$6Z*DLr)=P#x~ z@AH)W_)Q^uPc$i6)G5NF%kVter%5`~^kO60SD$R9xPJhxsm^$1+0P;t zdN-%zHfvAV9#WOYk*lCUWzRZT$8E`=!JS<_$`lBh;)zHiIl%Ys&4TWb?_-k}L)1g@ zTws@-?VRe**(WQw)XF-|T_x*FWQ$g+(F$fa$4bo=sMH!g5F1+UKorA*aUvjH76o6o zO{BHK%{u_97=rfq)-6)y9J0DLCTqQmpeE~ZCTGq6=V_eeyh()>%5`GT021Pk zN(gX7*Kh-?<`MpjyD?^bQJL$fSn!x0XH3C_PFBHfd=EitcwUpdjKoG3gl^wMqke!+ zl{{AAn~`qOyRL&&GoPIj;sdssb;u)Kh1Y20vkEsn>#GvKC@{Bq4A8ueW5wZ({9D0F zB>=@0f2f=G2fpl=gly2LY!}`?iTGOg5r2fBJVn@}dAZJ@Ht?DSy!N|Zr{2$-{N>-_ zL7H0jV{54W64_JxiCD?SM=1|a^_XnK4$kl#9P^yLM9$@~n^ESaG5;J*`~ii$eOq~1 zYFgbtT4QbcI3-uY*QUM?J0pre%z4~x-U-B$*xend78?pe+Lw=@DvsscyX$t;=Pi#;|P%947e^tg~D8G?iyw+;*8{dcwv)Pcgj*{ zzMs$*-$-{K9P=1Ge??FA{xtP5cFKyB5Wtvt%bY zq}81zS#bjfvdYdy<^G(rMY?`$$>(;b=1mq=S{$}dY2;4ibU0z>A61n|kUAZnMw-Y@ z>si@(Dmc>iBj|)zOV(56X-(JH85WOnZ^@f{iYn+jz2`IK#7<*aV}})~$N8#O0TNOK zq5jOv>BY1z^eJv~cm2{5{0)t`s`02Pqqp)?borhNZDzLLOs#)qT+}{Tt6YdS>pqgM z!l=H245}wX3T+j)}&FCWm2!|kd?m1i=OwsH@=K>ss0WzHsw6? zbWMaKE%BUEO#JFmxa#YGM{vt*ZRJO-WB2rt&wx`UW#uNnK z_-k794L?`OkzDg|ZROKl$C^P*3|C$r-m91`^!$KGW|#1Sdjg9%G~D(Ue{sPY>Xb?R zRrvaks^dFvk??bp7J0orYCVyy^0zf(n&EikTu-v}xiiEJUp_aJ$5#J5|5Eo3A)MD+ zFmfgBl-m(m)DwWC_!OyFHJ3Gkqa%%;h|KA!u`o^Y`_jZ^%sRX|^hGBkmh|WvLE6$_ zb@PkYsmFPe0RXWI*P97rW`*Ks^zu{Qv$!*g_;9H{x?md$c(?-%+l)eEr|`Xbu%^&H zLu5C+FpW4_xshN}rN;DMfA}!x=?d2?2>}atboM)0P`m)_BKHs-# zJwA3h$a361j^~{@Dal!TXqASIiSr74sR@j!aiE&1@FQ@g5w=t z&|>d1F_URHSt%o-iWjV=@wxGq%KX5l_`t1vu*1(%vgoa@3%x-Xieos^0=$J^%vUT; zu?;x3Mo|VBL{N)M^HYLGZigw)ByV3}V784bW+LFMz4c~wxWN1mh^kOw@2;j*Z!=R+F2tg!*4Rj zpjFxg3tMe?eYrn!bo$rJ1u0+1){3vuS_5kl2J>UPoYT^HV`ehMj z{DsPCQVWU3aW2@mD(uaoYPUgx0FkNd!|-QJJ^_hNFIMO|0eT&?tI+KJu@zuKwiiFX z_Pn&}ZxjAPJf}qI&360hnMxPb0r*9;Ah^}B16WVy?hP;e5utcm^C9haHM6?ohU8lx zZ-_p#&_<@>b)?V+z2Xyk8`Tb(krBW6BLU{>u9aLVquW|H;nenpx+PMO>c-m4tndGTk?Q23AQ{_+tEuJtBxsg(s$5QYPxwv1QOyluRX{j zY*^`nR_4qQ`Nt2?jC?rnByN5y(9t+jk&q(gvMppfBZsUWD9+~M(^$kI?OA>4p*W^! zL!DITm1Ds8ujgTS+w477=cLT4oUm@xglL~v4nL{KasGr2U{Nvdm^1Ke`xD-Q#5nVH z+v^JRU`W-*J-ZE{(=zc!kD3fIobIR=@ZApfhV(J7V4ldAcr~4eeO?*AIS^`juW>1; zYeO*Yr1ab%rw^i8#}@*RB`Rm9m_b~Lr5zxp5$~ux2oEF|=x+U0qFIDj(djOc|f z>c9o&wd5+I2H}y|fn*0mLwB9B((^;{1$D}2JL~|u9;Ds#c;9*Lhxzw)!A5tv;8TFO zVY=yObdA&V!|E}E@IjoX>wYcpYrUW!&8UaBfsK;#%LBykCLdyv*a2khZVn7lwrkiP z7VvT~;~Ti?;4{OsCyKyoeVroBITc)IwT$_fL>ksrR3%H>Obr;|up$`;^KX=c*cckd zqO%%thW=nMDxw+S0m)F7&o0gshHRG%3cH&n&YE8ZoGbm6P-U5aS?ruX6keo^glEA>~vn}pJ2&FI4p(eDfKUko-GWe*7@ zFt3mJ?6Q?taY)D@6>;e(;NSPAzM6P^-ulub!Dxi4<%-btL2UB7I*G8`?LN+dM`>6d zF{zjWl2Z%zIq=*(z7>t9bNiU&qrJYUpI*2{gA4`9`54&)9~;vzwh?<4or=rxPH{;6 zz4Hjxs+{`dS(5QAYz<3v(zm_#v?xZ#2Kcz^LoLR4I{}SGXwov}eZMyqeipcL-IE-K zM}cXB)OjaBJ*Cm0F8Msa$H;z#i>Cc9i(6-DzSe|wYCrj7_UJq%*)pe8mH`lslR}Q>DVWN zP>Tmdsb=`;{^$ZIFL0$|gP&;JNWCGH^7J&Kn}&)@;mlPDh$;?Rgc8M)q`Ma(7wvZM^U^O%vZ08?=AdjadW&0q&OV!=6CacA~#Fx2#rl8nH? z4i~Ug41+g9FV3M-E(N6_^_#KzH+H~QF%8XwL>x>R)0sH-8b2f!BI`xH<~mfZ2dwVf zFV3Ki;Qr9d-j5}TJ^Eii=A_6CktYRp`#jw8y*_jZ5PGuA*gpUiGX}Wtw9Dj zxw&@D!gn;Xw>H+7)+Qr}jCYu$M9ejzFM`qmM?l|eFJvki-?e1ze0OPC zNkIt_G8a}Ak#039T_I#&KG8a{Jc1NV~Aj$CH~+)CR8m%J8{V&9-}2W=*)D?muqVViGNP zATVS#GNiud75}`C{1E8c7Fhr1{UFu=YpG7o&lVXkDDt2HBCEQ+u0RHtk9aUc-|hN% zp|7vmxYM5`xxGn?-jx&|kL}L_4$kD(r>_16Pa*y+xJXJW)Pzvr&e~i*2^()KQ;ANW z?hx@+boD|7(Nx^XWj?H*X&Qgr-&{zjKvU~f+=6M(FTxb;u>G#j)-MdTxt45B-LEK_ z2{Qe6+uVO+4uc2Y6pxZN-`09^YQJ*q`{6?$bYz-j5I*@b^fCM6Dvu01qoZp2+)SCG zETp{eANw=ov9(vY7}a8~H2voEWtOwsUDmacKXv2)fxh3uHM^X9a|R&|;$j*bym5bQ zg}tw;cNLs!-`xP}*iXBVzRg__aw{*8%3r3E9>x zaNMOqXX`}{B+_y;_87aS2cIgTBL9#I4@Iyv9?{M7N~#q^f?e099**uGsIvs&%&n+{ zhb9E3CR62YL9l<+CEw-9@n!mQ=c}>iC14lc=>YoYvc`_VhF-!*8DHIfNS41UVL`nY zNV86G%ulM*PpYcQGW|3bm~{FKRFFxGVwNjtm2X~NoAi`AWB(TKhgN<5>)$Hxbx`mC zEJ4kj%v2*3U(lhfED8ly+YFku;#(mLOK)NSx?aZ;EZSFUv4f9{(d4Qgh3cXJusm3} zPoa8M5urAxl=_YFa~85p}sXc@ZUZnaG^K_?$s z^r*mmlZN1Ipfca$8GiRrpWqS}a!yGEi*YKhs{Axtxy3F&4J@oTBlFiTgXkaB=oaTC zOqhRzv=XO@^Z%&nuu6Zmt;#Z3e?KfCNNJ$f5AX>7&gx$)uuj=2V_+l$lfjvp+2qPK zZZF6j#FD@X6e&GkU5+94lxSGA*6`B)Ux2dE0>KIqXiuDwht7 zh2hZ&Ldz$rwE(Y>vV;)!#ugmRy){9J#V=TDVJ0U_6=4OT1J}Nf^DPhsF&JQHpzf>O z))c*gk#FP6DpbUdQB+Iqfcooy6|5D6DY-67T2pmbE^B!`oR)Q25mFsJ4~XSlo6Giz z&9nn7qqH5c?@R@Mw*Gfd+|b>R1$D$YfvG{lP%{O^E>gYb@;37v5~UO<5eop1jVL#?2Dw}Oi{ zl%5I7mfPH3>wwYHCD0n$lM;9HMIsbtzv%>>0|t!4A4MRL`OSbGb->%z2PO8=1VB|~yfBPG zq~VU}U;0(_*-H)xR@G~Bm$Va#y0~Bmyh6Yih@P~Dh_bV6iNw{L`Wy&H4DJNdeCnw? zCqX7VEH{87n8Uw)e|{3kLo7Lg`kv0SU+e*07wLsrya9y9bhLK2Gb8$^HzKUgTQty> zfc8yf86ff5Sw!Dz8)qGhNRC3SQAZIctIOwfJ9*41*BlYDriWhR!-}hu8@er9fofQq z0GSSapZ`L(=!7fn>j7*i_PyGRBuoVN4sN6O*^6Gb8=l1r`@iY#)&+1Y6wZI$4~zjw z%HaL6dg^gfNCe=hT|iIOGD`uWPB`ak*{qOs6Mx2~XNac@5WVQGhPH(#glJaT(sch~JN)iy>GWGf>0XTRtgr#iE_WZmVvFrNwN_DSaigF^Kt9c+ zw7H(-^c(jQ<`$afgF4@8AljROltg-Ax7yh~D=Vls!N*27eV_I!X))@=zIg;BkEaD~ zUu*`&_a728)j-8vpwy(Dm1YxNq? z&Z>~{HUWf5P6-I4`;s%AemQ4wz_c*|%# z_xqAxIPFiTjE3yO(UA9iwB?l7g!}ana(US&gEt?hac;f=*ll6uMJ>TCP#tNt^B1uE z0TG5m`Y9g`l2F=U?7xAjR8_eF5MuF^AK*tQ#TiNQCL*c0Z->(nN>&c8!|EjehoGQr z=9@p!WV@wWNOpq>JY1^tZGB1XqSNZ|H*hbMs9Zlbyo&!ifzf7mf*ayhs>4@+oeA<} znE*1VxT^95y)E-a0shngv_M=k#%Y+d33pDP4SZ3YGfrWP3u&QCw%Ca==)RYAkJ&*)&9 z`k18*4g@zCUdJZcWV+8L1!FY&EXZ;(v$v4Rh6luejS|6iHIi~CXbNEQ2no3r=v6{- z7HDzB`qr;3bN5iwm}9O_=yZuStiS)4c$JXKX4Qt4Gc7`iYv6&6x@4@l!Z-`j{>2T2CMV5LK zI~E_&Gsi+rV_PT4hYZMifqhD!H-tA_n&5X%Gn&)#>;M`HxCk1wS6AZZY`(|vK(|Jd zZ;V#qgP`@F^^j_TA|JbwPb0rd)nBr>;pV~M(wKmLq6c_Geo@~}qHCt1xLHFkpF%Al zmi!}cO$==}nmliE|6()T-&mfluV+h5>+kL=6Eff0xrb$GgL8#L6b78OM98d@Z4l5& zGw%ey4b-|x%wbx=s!Dr+?86w{xidImeGKTJVi&T$OA>H35%}~vC?G`=DJ!4*WII4u=w*+ zve1=Is-jDdb) zsqmC{?B2Avet)T&`wq4AM5PRWvmjjn`5Q%^0!p_8T#`+h>Vv>u$0t1AqmnQg_S`n| zJfd3PMOMIV9`Bv=&drPD&;dMzPt%>EK>mc)^%F|B9;h`16l|w0V%q2%`_k1!DWG+_ zF*v56t92ULv$A{Kp`uHq>BjY``^03}jNHNEiXW=1cC;_O7*<{M^ZTmaY1j0i@k~hqo&!BfU3|w%4goDz z*SCc$Eo`Wm^rkG79dI2nuj3{zQA2xN=7;`8-D8KCh}B+TC-M;AaT1-R3%+l`63Kdq z{BLCgiE7e7MZ%KCsKl*Q55}J$J^7CX!IdU9=n<;tY^Q{ZFHg!sYp~%C-F0M?T0bs= zXqa*rot()%my z+hR!;a36jEzvB0Bm+E8@5Hy&$z?L>}?3VW~4ly^v<1WumAb+iTx%(Y{C-J_Xy1Nkd z6MhDWTHIF3O{!jVOAPT^+tko76lOJzEIYZHCq)GC3?i({Ie>xMQ|%l14_dW+;w(~w zuieQi#}i9_Mx|M>-FOYQ5vQ62yol)SL*<*W_x$VgtLmaC+mNo3Z)Gt{J$ScvP!rt^JK&cLd|l*DHy;-|#xiq#IBl!NhJ#hJ z#e%Vtb}u(@vV7~sI$K`Uv+do|5RKwC-pXLfXzYcw+M{rzJ1t`m@@n?`_aggEZqa!* zE0&%LFAq|MZ!LM8?~C0@eUPGbLLq0jWs&Byv z#HT8lX^iJT(1dRlDDOEij)>al9Cvccp1l$*Zl`H=QIh3==hW|uxeG2%##ygwN-Ql@ z9UgOS{jX(hlV=F@W^Bn`PLq@e2S~!CAlVR#s?mg^;I3y&R|k+BX-K(*gGHp@?iaRs zsTpg<26|EO#t6w?65VNkp(%cyiUK-R1BcMjU(#YiuF6s94z{s@^QS*q`LL5A+DQAn z{!-0@8Ce8gS@Q{f;*UjS#OEwba3J!e!EDtARV;Sj)6O&#lN|*l~>CotkT#{TcfKeGHJJ;S+3*75DS)=T0x!oQ{7Q+b&@F z>I4VhB8*YG0ng$I0Nxfnc#_}D_7;lo1UqU*DDsoA?9aU#%A8pLTeI{NHt`{`op)$` zci7QLi&>(#!I+FMKH1DQE|icb>dj&w$*J$+nCcn8y{ux69^X)93coRYfpHI!#tVM_ z?ep6s%@(jL;RRAC_+kkxVX_*)vKNt)C?TKRQHAU+hmv_61f+%nlBbK)xX{@FfMEc@ zp+%P}J@}RhS!{#nj>IzKrtm=ou0aUo@gi<<0{Q_@3}hSyV`?S>8$hcc*pS9mO*EE^ z;6Fxk8iaEIo7^`F-i4TLYsLegrLhbQtaTB`4&PSM@+O+|DGyO>ai|{;f5ZOm7f5e_TY$7t;eo{C<&V428F;XLYBfO z1&$!(+&y0wtB`O3fEUW1U>u5f$?>!N0jXdl-!Ce?%(HYtzM@5l-yOoGedCHvw^Tn| z)`3SqT6((f+iG zukZUW`1~poxm)3-0{sKwjz~r@qX=Q>bv)Pa9G7}T3P{%Yi+#TSi#n0{ z*9;-d5}Un)gWmx;%VqkE*Q&mp!??>rDbO?hY4$cwFo@UR?b)kK&ZP?fNAW<7j>VNS z-TzlJz^}}cEiuZ7M!i|BpW#U7QBq3viGZKyyBY7*1-lbgsP*D^Qo~#@D(`EilIObp zIyI3Av7p;w_XJ)mBGNinJGZ$Esb?(K1Gxl++)| zu5*z`AnzHWttJDvHL84i&87|Ee>`T-m7-C!$2&8TZ-g*5p2vER7ig-!YhXy66h{XW zr~X4rNqw2R^*03926YpTuMj!2PX30yL?0s6wmb?v>+kIL&BpG}<8<#UwqjGcEZng8 zUt}clBi>)8eFT-yiFTe3x$27P6@15qW>Hucx=ZBjC@JGb`B72>w|gz1D#dW~BUC_b zRc|3-q|TwDR4%qd9Q@N&ISuq;EmHot>rpHqRgodp-bN{@G~ji#p(MG#F)-@x{`*t@ zNCJ&j=tPe76^BvNqrYIB%#CUM#S~qZA9W6UWWv3TJ5lN|1c@+APWzq5AH}*I@3UjQ z6(i^+xb{9Z)zmSjOq7uEH3r?@IVsywb6d(j`j$RK={K~32}qWhazBM1p96ZfUuX=f zPwc$@7qMW17u|E#TEyRszVlODNo?;&zK#UJDc{9>3a3(?fOzT0YdA-qR#p1s&_Wsc zW0v}`zV_tH!=73A)bzL9^pE&572H;Lj$`J7-2(U9o#_W7n@h7OpRYysVlE{|Aj+{v zjx3d2=h>3iy&m9wxn3`vK-NBo`0I-Rtzu<@8*M^`@C10CkSTC|0U|~s=91` zANPWV^u?5<-K(#`(p`3&n6f>?suga{)#&VcBKv+hN2v08h4*IDh zgZrYNfx?Cc`Xo1{fxy-vmMSLLOzijS$S2_AIZcX5#j~H;LZ2J{>A&XZ(HN^lsdkF% z?9?q1iOh*@BIjlx>2MkUg;z(@B?;DCj5y@Vv%CCAcdNVeg_KeoC~-TBEbilO%haWD znB8!&RuY)yI?GTXj4`+BjP!m2TJ4`Vzu;mXV80Yn_p6o7_$`&2L;10MHaAYj1!3%y zVW*Wd_%|f;R{cD>`&$|Vs3uclw5n?p`mCn;mNec|KOx8(A$repoZsN%8;aLie#S_b z=#u>u9TYz+9sl8_)b0F-ZjxLKmm#k(oawv?OplwBm!>Fp(%wd)U3&je}!8g6O~qX~823hMJb5C>+{1Mns-A$4C9 zJ~_cehZXkX(2_&gKo&|ZRu@|K{XI9u45vQqCJo(XCSK{dwWo50`;*f17>n>_I@%Ez zZu>f0!eCXl1mO`fA98Ky`ILd(pJZ+=FNd)_%r)oZZQ+sx5#thN1}HZsEN2E(2f~3~ z^Zi#mi|31Zc(>iZU6adn1*C>xw;>s$Gx~+!a37k*XV{0%|Frw{#Wg=k zU(ju5y_Pb83(>FHq%-e3`)QEFk(IS#9PGEM`Ep9;=$cV2~+C2;~$y! z&7VUoR_rN%LeP|1o22PNnZ7JV;i`L!3@VZ5pJ!@*hs$Q1ENU=5Pcse8I0rn^xgtqq z$fmcr7H;iY1z*(&!&|fFi=6k1uV!pA|Gm^si_XK@Ehdq{{=~j4?fmf0mTx?lK?x8# zb3T=YEs>$pFk7k^pCJJ3(v0W$4s=;xgsAAHfFdgs;QQW05&Z3oxm4th;g4-Lk*d(b zQXTc_6d8(>x!}(fG{tR9?sUL+o!lL({n#0Wn3+-8#^M?Y9SIK-er4l-gSpW~U(o4< zDX1gRe#7`i7-nhdvHXAl$y+u(>P`|eQ^Eo`{vRT&3JqPY{yLxje7^e`WbTw`Smn3c z&1nYRm^G~GXVvZyaIDoLO&Mp=Jsn`~FJY&h_G~o7aGL`;wi;|t%^efbhqc(Md0Z!O zyVOUoydBiRAZ|Abjg0v1G9ffoD?E@S8o<~R;3s5Ulw$&g9;B~l`?^QrS@=%JDF!}n zbb#AxTJq}=Y%6Fq=!Qk}Xn$8%!2$o(m`0;k=V_Xyq&jn;oa z>XKvPoNp-=X9C=h*+xPLwmd=RH3mw&CTdAW1A|2s#=tRzmOxC%Y{<=_MAYg&==+31 z4@#htIsS!Oq2dd|yC5T(a^Gqu~molosVP62}OO=h{(SFdJVp;r(Hsc zo)OkQqzWSBm;k*$M&^Lkz4Q=zR9FtEb&(0|z#2LsU7%5DxKYHL{e+JHyqALj=1<+B)1ZuArTsge6>7#~rL!cs-472W zrb))7P1GH0r1?xwqTByH{MaJe0;F<50Sq)Y5TEF{J3a(ky<5i3ESwbRolHnR&*S3$ z6cNOs>BRFRs2{>1phhBUs1})w#zOE}0*%)5NHmWoT73}KkTGjB%AVs2 zlS}B_0-^Uj?iNsh5|j~NC%-dwT$?1jKF@u`Nxw{?leaNdLw!`gMLb!-fmK6%Z)DG9Fw9QTbPi z87@Q*L}D|TppoUvV`rE1WYyH6CIcIF+>wU8xC*!fzu*A_^1Kbl11`8S8*(w3aeo9vHeyJ5Xd>~zM^POg@FzXWM?2>yE%{czgzNS&P!i|3_ z)M6La9}uLJWSk4W?a?JZTc`5m*!1@6v0w`QJNIuVEv?8xpvg13-;#O%#hU^R^r`dQg)5hzTat2o2_FqR6x+tR9$5Id#uE)w6?<9^ zbZeOJ@SG;GFOULuqWIITbdKUC;x(b`)K=KKf#I5XLm+s97Kt4*99ubq8Qo@#ZS%eC3&^BGk+u850% zx7hG*yJq_+c30tWB>Qfk$Jrl8*@s;J<-!Jc6%7Bz+<)lt_w(t!iSlzN!hl8Vmtk%F zd3f=v-swt%C*%ZHP;TDf;?CR)! zsj*zt9K$JKAh)h#>`|KAII`vdZrInr0fNVsJfru9BdrnV?~W@ll#OXsR}|jgU?X%R z{rouAa{t}Q$SbI+nI(_5!yN5P;XeQW%MlGkNaws!UM|5FsVg=ZnpbYH_OMeOz@-?E z=6p9Ta#??}(p7C+{^z0}n6g=ypgobFL_Fjk6wyD?dY<#PK??v+O5pDo<^jF@9nWxey@Ia)?}k7pnz zDwyO2x8qBw&#1!S{p^XSPx4Q=Z8KDy)OK}4;s^UjCxaGXd=2Trp zWU@9NX-B163nvW2Wi0@zrK+r>_FZE0yBqX7B+e-|KUG6%OCaW$F~t@W%v8SQGy(>Y zPY18AL{ncTxQHlUl_l8JZ6?7h=elDhAk_n^U7ir`C5v3~Ntm~s+b|JVRBpPQFxwHe zB0M{u@P)4m$4Rg$hVOuLDW98=wuD;trtL0?M6c>o*G=lr7`|W+YEq+5(5+gEG_i+< zq~knK?zVIbz;E<)kcK-!mx0P+h%o zmXr4jUD(^IESDF3vqkuez~)bnQYK~b+gio5YI9KS*lb`nNe115dzl(`CT;GMTuLMMY@8sH z?$HALk5C}~^MgvVxhzqpj~l#8dLTQ8d+kDLM|Hz39o;By44n;;_+mfYu6BHT`cm+V zOJG|c%nmU3lIu2{;=f_MEgn(}a2(eg;~|(L zM}f3qPm0e~NrH_Jkbow70WjmM%9!1-4`q4quX#<-Uk_20rIHKrkp+RXA*NrD3ns>8 z9v9o8zXmf=@jn6%m-Dp%itRk z+=C$s&Z6m4y?dwII(dLULU8@gL$x8wjicW?V8se~+i*pg8jXGpz=cOeu0}Yzhr&ZR zgiNSt$y=nS{NYWnWjoa0#MtN!!S+FAx{(#(NVqtco-O1kmp|zOOj4Ez<-%NEXD##4JUD~?a>)HJ)%EV8QiVluhAzX3Uq$fL zP9>f}3T6i5&-=?G*f)Y#3_5)0SxhLvl`%+lbovCJ!qLz9Df&B)HN%*8h1OhOz575I z^B!i5@Oln1FvdM8nBm2$o=Ou`X>=NB<-KM0z`aYLz$CZZELo@t42NToZDIEaG?m^m z?g(U!U-YUbEugB$Gz#|y^ssB_H-wy%(22`VrYH3c{kjFMJ4C&BF`dZDdrnG7<`? znkUctuu>}F!<&I8&r4dmf_3jWINt`sI8j)2KJgN$7(metA(JY|Vu990aJSrILl4C3 ziOYAaUh*QM4W%aBt_A7ztOnt_x@mb`*lTW3-kJyEBf<3a9bqZaF#i1%lv^;@TU25^ zF~m!vNP%rG<%Qod(yu%Hl%Z-lI-RWlr`fZt)X;%ly&N;Mf4#Vf@2~S3=H-2l>z$8G zg=E(F`XfSGk}GA}PcwBx({Rj0cTQ>Rwob21u`VZ)FtH-z6%E+6e)Zf2LN(^6!{Q@O z8LNAoXUqK`nRZJ@Mc^Mh+t}al#*Yh=FvZ!t4)?}ZTRx-B8`>*Ld)@_L)j{%u>gtQi z(qqB*hbcThRhqEHiG(;F%Z3XVJ-Ba}?EOfq_R5-|!SnVLW-gwy@Z4M~7cgHqeA7@A z7Jg+z){?UQ{{QTwb@f~Ib;j!(eOnfd{-ak499}uF{dK$V$Q3#@wmRY5%6wlhBHOyw z$;>+PK%2*6ncqZIN)Pdoyt2_2b+lHtSn7}j2)Vu}HZEO?(0KEW@G1*RG1%haG~CG?Rf#DZdYqO=#O5-HDtC~NVx9KFjpj~hYpj90`YZ@ z&6K)&uPGHk3Bt&Uq?I}7vE^U38=2yP@UO-`+bV05HdE=E6ZcA7)KxF)WdYt2w)nV} zH2ho+yyA`CoW_KV69tWGe-~_ga+C+xHT}99kMDLMJUQ~b-c<7q^mt&e*hJ|Z7{^F@ zSRBE+>+Ps)3=*SWhr(}uYHaXX0z3{9;l2P9=>IHFdZhlJjnwhP#H-%8E;L=%eGOC;?Sf6-{k?re;ANOR!e7>H3{qWUR&XnRj z!0T^yYvTgphPo*4gQ6j$GjA732P^wnatxaIyrOxawz>Dq>HW4DwVP~I1>+3 zxkxYiNR&8jK_ zv8P>gctDXu!kWl+)5CLFQZJ5yO7IAlRusL!oGlj^^3g}6d&uuMUy*em6L`Mhz3`%w^x_tg4Bp8L_XZF9{E2*fM|j}%l+9d_lWahQdF8^_9~ zul}Gd7GnhWHXEFR3B76cL$a}G9#|;2@s>M9MIpcJxH5M}+EggVEv)KGR}i|i$q6=yETu9a!Fc@t-l#D|uW*xOpop0iv2J*EGDNT| zYt=Ip%IS*TWYCliMJ!wkFT#5-;kZ%3+{V8t=Zxhv30$L<_)8ATYv{2z56h3;f;+rt z)tErWDiG3T48b~-Vg<1+plM1R2N*7G9ABBM(NT#1EOb(V&t+yqHLzcNj#sc~F0{f> zI*7yB!YS)K$-B&5EY|Z3ImmV4KC@UfZcCXSpil-Cg?Z^n} zmRf-fzQJCS#cRPsE!yQB&ca}SHO2z}_PIEe?D`Yz)3{3}tfomdq+TS-t`UJ{}LVp+o z;l?#@fH;1epv8a09G?7^d+5d?2X-+|xm3&iaqmjq&iFM+{_htR*X_jf@|uR*7c@r+ z@D2Z9KJG*Hz2WXYSQ8K@xZ38hZ**fCO7h>nnHW^DWQXlaweLWh0z&p(NS{&Ow}2HB z=GJX$5IDI2i7H?XoQ_mLNQRN)itF8wxDROT2ejYgM{j%p9!{6578|>g=K0R1w&H+0 zrnLX=hkd%>_tAqz9tcWo!d}`^TO?j==}~m1X9&qz0y=_8EE3AuK3@M1;0~411B&p2 zq>Kb@48_d}WYjsQ>c|4F!Mpr{kkHzMZar{RVPi*exRF_i07&nFZkEUA(ddV?Nnn8;i zFDkPbWJJwPfbOrk-sMhkGVBLmrGhr`;{N#KKSeGiX}M`^Y4@D#upk}AHTUpe1fw8JzXltDONJp ze18A1UK4hRa-QY)FcSCr-r#937ml3h|3tk8x(N~2xi}q`W>cf@NqxJ`7-!xMzkDzB z%X*dwq3+7X5eIh3q*s4Zp<95|;}DKM2@5S~KD^49l0#TV3t(Vff?Y0#6G`wDc@l2Q z#!C4%@Iz?&8r;-Dc@JjM8i;qEo`Q=y#Wd!c^4yNhgs&n)!##Py1pD&xkVSy+fOZX(|rRnpbFEOG8auTpCy6Vza zNB?e=hoqEP|L)6uM6Z$Ig8^r@5w2i$#pR$k~WB!=S`TxT}%G3`n zj$GP_#Wk-gOdoFbVAl246t?;Af5DH$dz6lS*YHRkObxU;Wdq7t@hc2|q~p#0^0QRZWx^wlVJY#@yu4qd4!p@5zlyeQ z0iv4zWb;@Q~~E`)mxdkd@xC+&l`^9l=9{{FUy4EZfk1AC`!yP_EkAQ&L{ zLiMS&pE}OedAj!v4ODe8% z^+nYE_Z)6Xg z?nS4--TVoQwqv`9>tnL_tEn|guvH29LXCX%S+nJI-)2u757xM9{`}amF>iHz&|$nX#p?H7_n>K-XO~Y?app##SqpQ6CCfJ zJr}CebhwJCrF8dLX1kSFaBB9JO+pcg)I&Kobb2nX-%V0IT+w)SN$?sn5TBZ33%I>G z3c|-vEMmly)dqfVggkS}r2`P+uCUd_cA~eKE5#s*3z@=SP>R>*ySNR??3y0TxO7kw z-&!1>I#iTpt9PRE<>-7q47{iTpAG!Jk~4&S$K2@hz?EWpK5%4jmO0l`;a-8k1;DWw zKQxek6G~3+yZVTxxVnFMVYE`<(~GZ=Dp@=$&`>YFf?ahzv>9x!L$JOpxE{sGXXuu- zaCM?T(G~dvB-2&pXHNANc(^Z1{VOXqFf_{BM&jH~flgn&*@C^7nI9UMTY^hdNRr#w z>oYDBVc3t6kty!JOLX4XN~_NDI^Q$=yy!@N)bLr zq5n71IErU8W%t3y(9`>~!qi%1a5=h$>7D+2iV2KJgj_1oio`eTZ;mbL*<0Ky*5|<>n_Lpece0ZGSFz!XmH=2mW%N82 zI}JO3?r|5NVMF>q*r(5VRsn9FG8%!R|Hj4!d_M|@W+i(+Uoa6u>zd_QXK9ol+JV&T z@lRXtP&0l4WjF_9T0V7+bXEElEZTtYvl{+kt@bHGKMcq3*B=|(eRQ6K z6p~}P^ekU!P9ZRtxf9}U?Gx7$mmy^EW*{Lg{ zN6qfwYshlidF=4>@?-KNqmbu!2^IeVhmxyBn~48NB^Xt@@ICh@8g9yw zqM*|htnQkNnlx?erI4c`Y=iWN!{WPhV!~I{-g#C$2by5Ci&^VIcs2RFW~}B6ZC=$7 zj5!zgeY7VvS66LB`n3&3LEz^dr*ye2`CW!{G(1c$!Pk5YRC2VZqM6;^2gpbd96mD# zUVVOC_vlFIH0>F^>+T)l=w|xhy``Wc1;0_@NCCWOQe_5FrT*JzLC;`OVj z=u)>E(@^(M$c?WSOKcEBnJdpO1@&Mwo(I6OMc8@-K=*kE;)vBjqZHkT{ef@|di(vP zz4#)ddg9(6d0o*5xnh|$w9U74t7wH6fh({G00)9hA>ySvcFj8N; z`)|*$8}Ic0j3adhbuqhJxfh49`~ck{H8Qi&$%{hT>Z*&)6KnjSss;`B<#n_=h&Kgu zN)Rp$I@Hzrfa)S?~54 z>8@*O8yCUbPUb?!Fp)@j@pHiPS$-C0jwXY95=-^K!<=%W4w~b#+Fz9BAgl@p#Slok z+)W-s*xE!VNgK(A3z^~Q*GDR;A2V5RM$bpMK{qY;h6S# z=Lu~;q@S%&x!%-9gd{3I;|UYkxOz@wb0q|)FkTO9SY0kj`nep^8KCtWNe@6H-g_Ti z^-Rm@5Zj}^8$1j6(=F9L+pmiEoVlmSTArHhG6YW7)<1EEP0dIEGW=zc$C1LD37D`B zC5E&Vz0J=>e}rCL1_bP<+9W2r`xm+I&KOZ#o=aHUKUMRquyVG^W&^dHzQcuyjjQwM zJ1*{}W%z#py-rV3@}R32hFUU&`>1ya9X;qmnE@5P}93zv2G{ z^pvyM&#`8k-1QS?&3k-ba0NGp*TKLnL1rka-A57X=W>Jj0D9+x$B_p0$c!gheh&#Y zos%K@@096fKVW~&F1d^&<=qjEcyj)F;2G*7Fl+yZ4pqzNUD_+aQs++a4p_gt1Pwm z+{&Zsq8rm|6d?;JNP!Tmr`$EJh51?MEJA+&(mW>~H~$W7i}|roU#_J`1!cVjsp>D( zREKP3dgJDKGlT0g+}tA-a^^kaKy|C&xs54q%;DX%zM1&PEknJlc|_>nqA14R8%owe zl*PvbhC951?VB)S!b`Nksl}2o(y#3s^#byTCoWrgko4dKO5o@>ArSu{X?P{X@#HOF z|BhKdZmWQi%VUmESnfe_9yMZ5Z3g=Jii7I8Lk<2saiZLqdee=KCoUDig$vSxtCy2B z?xff|$PqFs{{^mv$4)hCnP!6}>)SB7NcMMe+t|H}+448o-8N7wth!N&i54B41-?MM7 zf+soHOLC&Rv$gns5ahKF6f?Y|CIkU1!YVFY=Pl$Cpdn;jx`abU#q{W;KM!M$_8B5Q z85-Ad;#*{dc#`zw4vMpxRGQORJcC`Q zlmYdnA}0z`*We0di{T~W+)!PJaJA0SE_e{#&%%56KS2GAOdn%A>IrpiWuD!^`v6QZ z)HM=WszY z7P!m*7NECZaDx3Rvjm`G60Lzw?|HxS)LgbaROgurIGQ)sHS@Y8k=>8W1(NO8BApZQ zF^PFcnC^s!(|w1NxV3zVrV!K|#TzJr^V)Al{S>H0#t|#1BZ$ttilA9= zwdC{?qaGhg;?@q3p`cx~%Iu>!lj7>NZb4gZo?`SpFg0@$`r9;Nke{&Su(Sq{o^a@v;8VxAm2I(huLJ zGqm?tYUe?lX6inYJ$1h@c`Al#J0rJu=hq(!PuJyrBx!o7IPh{+?bDSGV2qJhlzM36 zsXg@fvHb3i>D#Tk5h zK7RLvX>zG7VXomI9x$m~JSS$exwt1d)jzHfR==U+GFnx!K{1v%F$YDkU;EycThvM)UgSv)V z3W>*w(l14tuCr_gPI+=VTYw`FoG$sA?>)rG^*;_>9U|^DN}8@Wb>{~>ZcD-_U?nBuk>KLX4U)z)iv%Q-2b5C zTYs@GANuj5qV* zi2Z#fzAOGgj8$=-2I`8477|@+fmvP5Wst6 zMUFVgavvGYHAz{iRu-Ic$dq8Mt|-T5^3woE53Ie}iR-YxI|xeyH=X(m_f<=HQ&yTm zwVn8%l||qzGBE({PObQJdClr1TdEnxTRbhOE_2qy;yax=bjZoTtoq)zlXF`a zfl=KEzKi@3UP%{b@wXLg`%JBec0lsS<9Fu3Gqx>C;S;`o?@-(UH#Z77OHR%>HYlXx zII}{0`kBFvKSsXcMsW)=zmb!Wv6cng2r?XMBZjCQj(+-vj+Y?F)SCs^{cUC)NH!e@=@roHMdAsDi7G}nfX0S#6a`eWI$C-yGq_2l zb+q_e9UE#+A!w&~5$&$B3#LqeQ1|EnQ($LsieHvScRhmC%Mf8MX^(I$5RYs*Wx0#G z@iqNqPUsgsU9f7zA;I|2Rrpi*OIQ7{O|9a(x$kKAl@QWZ-bE|QrP;Xoq;2e0r&e;gof}{I=UmEvRyinXOu#Wjg z*CARWo-LrVhyrn*p`pH^8VB~lDD4c=KKFa! zbF5|##00>NU29B7Dt}aUE|_rCG`f!77n%s~G7Cp_bEt#S-fyl5$9f8LgD*#!fQz}p zE)*NNxmBW!%7CxjRz!s>2HOg+AoG8eGf{P8SwTbX@;>I^9%qVk=dG|8Di~xvvf@3y zBEFH4AXibC@7DH3juF| zun?lMAgV#R9SrdTkWh0-0!1-o#m1nB7{?`CRV{3~nG2P^mc%U*yf6!Gs>}P|eUQ^s z+czBDu(Fi*dd{X&8SLr9u2(~R((r`weEqKM>5=i%;)KY{s}sS%v!rEXB>WK%Dt%W`rhPG9>~9CyGm-~CzWwT|=1}3BmK~?K zm9g<8Uq(LPBfPf2{1u+aD=+)_d3{1myIUWRzib9own2S~4Eg^?s}g0~VNOsj+PWf) z9bNp6dP767xw8pV3CJXD5T^ZuHwk1j^p7cSZZFw+gkEDQwNUm?hC+{l*>JX|V?ei+ zjP70lN}4h0k!yq4_~!>+&^Ta)TuUjN!K|IX2xO)e=$Hj$oqoV?U(KN*X2^ug241~Y z&3VJv`sw7g@)^6#_gu+>_<2U~N=r;F?irX?x;(R&i+<|Vx-fZ*TMxyTQRx%%;Z+?( z|AuTzaJXFb^Xj^aaaU=|vMXE0J*j?TqKxQ3y3h{Pq}vIqJMA)6(9)_)(>jwD&U2Z) z%q@<5;d`Rc>TZeJ*q>7Sj&Dp?h%@{6Dvymra^;QCzoiqTrR5HyohG3zJ^6+n(=f*% zb|xjHWqnzWt^Xk!8wDY$&?l4Zk(J0#(2;wR*s%)ujd5tp(RSAotVU&>Ah20g$$`)9 z)LqM!kS+SS^SVBjsn6nO`FQev80Ue`=yxa|B{WuhMSK=|Sw&^X*40MFdqi?(+V=>! zu%kis+l4C78`@~&(u$-=O{R|scxWS3)fv?#p=_1ap0aBF3tmI#&m5w>kr}R{9jG^+ zQ`P9`Sfj1>aCnHJ>0;Xz@qgFy;_6ZskFPpJfJr;(e=cmnKGLM2t7czG=re=dw4=S> z`S+|zLi<3&plx)g5Nipy-7h#}8xWP<%AJyVc}bxBhM>!CcEg=HqOthLd<>D!sFnXx z5#HnazlDsANY9sr4gY=ee0z&C>X>T(9rTVha&@d(36Z0ICjGE??$*&Vk2-C--rQYs zsDB|joPO8F4T+&Sw1<}L)MJYBFG-b`Ty8hk@tgnq*SM6T)@py|I(49QKdEc;IlO^q6Iz@Hhuxp~KE`smCn$hjIuRfid zuEU}fjgoq@+i<`!ac= z>U`ni0^0b0KT|#U$`CZM4picWK!+fb>!!32sDNk&Kl)0t z0aD_GI%O*VebAv^G2V4fhaRvPfxuqT)Yt9k-&}2LDqu+Rb!TVx&E3h6r$kp5$;c67 zsrR6xesZsS7fP(HZa<>9vg5hY1DQ3OM(7&eHrWjYh>_$zwaBuH}HBfb&050;h%As zzkxZse5y5(uum|w9h8^kx_-BRsu^YYfle%80fMJLV;btX6vy6t+nT1L?^2#_*>K@PP{escjuz_CMt((13ylzu(sHHv@ZM$uXWj)un6~; z_1gOJD;&S40@OctgQGX;qZHkYvbbI?lCv$C>o_kxNGe)Tsbjf=_!_{TDAKI*n-ULD3OX~<@Os6V`BOT6p}*n%Fg%Q z8TkO;z5}q(XHxXki!>=L9}DbF0u?MptBml?FLL&*;gGj-(A+?U)M}g&UV8t0o_=`v z_iS4li{?KW$_Am#lPrr3j;lv^ZWwyIhlg!GkbmMpuNIZ@4{&c>2gdW*C95wFWAPGX z2yy7KptV`E02A`?7EZ{C6&w})8X2Tp!Mp|G4A}#=&vm<*!Qptg%zU%EQv%W^*uhsHPjMl28jPy3mGOlKLVDnfGQ=gU677s-i ztb-bbR0r4hz{5in3OPA+roQU*=g!o^!exe}pUC(CZoWBSUmJF2NGz`;{pkj8EydM0 z*8|a^Cb_U=wS=>CTKrJ#1!xrGi&t<#c!D)>e~@y6^yGV{;vB==C4o!5?{QHHF1~@j zL6@W8%rkFNg6GCEs|2HVKA72+@t~}InPj!u`0jJtFG%C}aKyisRbee}PZ)Pm~rlmb4|v z>#<3L9~Dj_QCQ~)jd<~udkM^XCz*p&bv*1PuZ4X&@+w{Ki_VxyFEA+2o9*Xb6lVDQ zbK}@JuaOZvv8D$EIipZXwMfGoKYCcKMLapbUIdVX1)S)x3{0)WZekcAqxF~K-P11) zIvmVQ)8ksP(LcTWH25o#T2R@7RI=Vm=T+5xcswVddGwO+OfZ4}$vgcX710YN<;?B> zvK~d6ai6cqh=MO`q+Z+9I`+P%CiC`-GECi4!&N6Jur9HV54vfAbp;tP z6m2gA>}{XY0&32c$J!Fe*3;a%MH>Ew>%<@^Uu;1#3~ZZRYD=qisD*v;dIG!@zX3di zjLjlbWM;4;9^OPF3D&a8G^7@|xIc79(4<$7{(=kNpz3(u2d9MrIy?$Z!9lY-hXWbPc^@6=f)b?Z zf1*(c3P}y$S*rpUANmQeaN>8U!Q&qhWDDY$nL?H5|XzW50Emh*y;AI}?KLRmMX5*T)v@rTcUR(*xU43omQL_RrJUV%qK|<~ij@vm8H=y8vgAxeOD5uGv>MX0y;)oC&;srp5d6^&ew8vOsglM?!Xx}4 zr{4>nNhFB2U=xWCxI0(e z0LkWi!2vJl(xV}mHOGxrnx#hzdJ)iIa5SKh9?)Zw135KaqB&8p@FfAa)tUwvk|v*_ zB&P}CYI^5Grf1NR>U$yfA!OEYEo}HZW2!t0t7*@`!xbDQSoUWwbbON}$@E5nHUa6r zmjIj|GmE_N*Dx8J7X72-iVOw;6fC-6+Lie=VeO@23)T!sw2Ml&fdh59dhOs9jd#P? zC$?XeUVJqLtnMp$A;X>R1@8+8Y$f0W8Cdbm_77V8LNRO-mEYi_2k8j6@5@?cX8Lb& zf*Gevgf`>B@)l17NRCbfBvF#Hxb~^Bu705R^{aYhxfq0%kn^hTn)c0sy~c>r(JR3i z?G^Tp@)cnyDOd=X*+57UYyi@h6ANVb3bnV|JZx)s3!h@Z}6+AC{@LPO0xk< zL=>bqQ4s+F5yB`WAYkY{bSVk~3IYm*UKFGyFcc{Xp?5-)5_<21-aG90yZ7#S{@CZ- z=kDD-yXWklGlxvbr_FmNpS(Tx zdGyEO{etD{fsNAd)rBAGY=g6{?Vu9O{5-LMY#-TWTB5RPSv`gk2Ssd($Bl)Y(75i_ z{%>a4jdqG6Y_A%`GF{tGF%D>T0}FHl^@DUl-7_)eG~m4*Kbou|QZd!uF}(1I_tmGM zH0O&Xb5YSdv2d1=*r-3-g{=A}7`%+tSV@tHabMwzWaEQ)ssqgYnod ztuNH8-IybLV9&{%P025FQ^-p9E$7;IesbMjhyr-?PftI`rT6o%NY^Bu8K{2*5bL% z^vi8*_L07dImJQ+yAk@jYmD>Yo}J4r<1ykX6I<@wf|2dE!~6)jUn@~f=vS#t%t0l| z3Y-3uaLE@zyU)GgPcn!VtaR?Mkxy+S4bf9pY7ECY9+Djg7#6cJr*WAdyEEH~uPrQX z-2J^;O`1Y5%VqJUaU+kt3{2W~ZqZi+>#YRp3#6GAwgjr*%1#sBo;Q~fl@^&mi50cp z^D52Aon1iIvtfywM!HVuZe%ub-p|JSafvSBPRgiwG*F7 z{Hcp-Jhi?K`Q#zYR168PiVY}dDf2i^I~v&}HLe~v9IW@q9TbF~DqWe9tNJZD;_0<} zSg6Sd83g~UN0r~M!N9p*G*rGwS)>Ho96NN*u=>%w$NJ5EudsTOVD;UZo(AO+fS@@m zpk@Wb>c!ct*4e$e7ugddV7kcJv2l$MvxVshSt(#0!bzalY(;705rM+mL*gr)-gt9^ zN`Y!7>vQOvsRW{<<&uJSu}&Ow4c^@DS2jCTlIB7K8V5VKBK&thG{++g5}l?ZP($Jo z5d7Ki(^4}yl+)%|C-txIeE0aqqlSD`G)$IF9L`BO=IpgUXPeChH_*;MO}Z#zNWiwMD>iyIue|XkMroo zPS2GLWW)1BekM=7fOc-=s*G-J4;mx7jLVf?7dnlS>+OEE!r{mS?*G)#W!N|lFn_Sf ztz>iT*sSxV&vYPfzuSq=QI6BrD5uRYJDMf%G%nGrIOC?(ANChj)0SKd4=(Ne6F|eH zAFk2Q7ImF!a49n=yI!?ul)Q2)(7_-XK-2Mt@80nLm_ka62qyB<$h~^tpBtP!UYVGj zL~kBgijlUNOi1;Zo)QVsX!yM8t_O14%C5etZNid0M_G*IAV-m_3=e{%umx)%%rY z^P2X_X_FfFU{2Xe@Dj;BO10&Mj=k^0^dSuPSuz+$OzI6ciKiE5xrC0%yK{eprw!R4 zED-^&kPX+$FkJOVTC0O9ZFQ}UN7`c7B4m?M=L0RMi)nyw= ze8_)s>ihMGcL1xDO&3c_>vPpcqtSYIWf_0zX3Fce@K0xi74pLVkjNNI*(~HTF7f$A zqY?H4Mmg!zw~Wm;O7R$u&%DgT>iCUy&i<^+#Ar02)wKaRXgS;Uuu;oGr15BL+r3qe z?~2k>6Jw+NGv%4n(XCMaHkqEw#rmf-`ua3GSuP|%dRdATfZg{)8Bpsc%%gJLObF9B z32j2ou1!HdoT8y|YEkWBqRh@mGq@{L^Tpq*l@$73vj^t5|1WmSVn{{HD4 z^H%H#eBw8MoK_!V(FNRoFasy-Ns`8isj1-o!*5O+DSL$* zb1yuto&HdEV&DtHsoGQ*@5{~f$(mf-lE#2TG<$pOdxUhl;Y%O9W|+&ffMG5Lm5OV3V^hj%0nOggHqRj0JB!C>g`&K7rDQN z93+q$33DikHt?~G0RVA5Pa}6xP71lR$bA@*-04|GnY+WLKGJbAfvrH~XL^!Ae+*ru zO9Cny;w*7h8?~M$>tSH2;NWP$FjTC}?E|r%1S1PcSS+N9J9 z3Dfjo9~T5M2BpF2-@0r2^2RBtdodH7?7A|BYZIq|dJj&2By6cx?*e9UX`5)tM-%R- z)<`)koTO2^c%H>8jgBH63$H4LgAWBE@QI!i4;VdU#@zDB+#lf~)0RGFosX?epq3`OZlQMFJZL+7Dc!l%*{)q-IM+Uh=AW zXyz|^1#5CNzP)g^Mf4UU=(NBw`CiYd728t^4{*J@V5Ym{DL5A3^t&Mct?iV3ECUKQ zgSu`!x`hu<<9e!_*k&a}oT39I5u38>&H5j8D|n-%8ClXK(9W$`Gi+%LkuHX>jsAHC zT#`T?$ll?2k?#}1iVSTjPI6Hx=tBgGodJMGq#emLsrdYGDkrl?;Ps+F?I;GdxrI*b z!R&M0mrnt&=ixUvRrvd<0Q21m&D$#H+#^#l28M1b2d@g$%6=FPV@o0jc{?j1u;CW5 z{A+XFbvLA3u~&oG8HicSG)JrM7;u^{bjJ1IqS#F5$>!v3;j5EFf?sApqZeg?pLAIX zYfD@XeL5xADI>9?S2p+)K7F%EaPn1)S_)#c4V2FI+g*F;)%xa0Bo<4w(QGV#b|}E9 zub9B+cEnCnU2JMyF@G{ZM2i9j=l*x(GD}Of-+~_ojLTsERe-^=r^B9Zu!NbQ`sWD~ zku7}anJX=A$?GZ>KxS1;Rfo9!QQ5_f^DCp6Wlf77o%fPr2{DPLjoC3m5S}IZjdHoZ z^LT=Rb%}L5EF`CtfwZOqf~ts(sF%DV`LyNjSiRhPB>VDYcL)|-YtgTAvxAS9z=13% z#Ur&y8Tj23v3YQrqFV)94@gxmKj}g1n9;S+kyzr@maN6pnbCuXegdL%mN7SDw#)An z44i(_P(|6`D4DDH{kOoUI8JwtCheZOe4^NR6$e>>C*!KO@+v9%Hv}3;#Ux`MdY&3E4l@-6j`uwl1x0xXh z%U|)quqZCghp@}(TMsTSn6_huUH^3Hho!+M^{KbFlGcb4GnGY~0B(AB*l;)a-Z`@2 zuXh0j#e2)9I!lf|8N>H$7Ilj)U)P6ue`n7M=hxIM9uF{C))ASYE=|lUZEPalDW-{h z4pQ2%XHUQfId*AGt{|vgbzIi~S$5hmgqX=gA$ zDGf4A7U8zOyJ}mj-(yf2+OSDn^(S*FF+`6}4u0}@=roX;c;OyD?CzN?X6oFxZ0M&$ zpVC7QwkkcZy;%?`Kr%PI8Kul9?1KhgHm^5XnK^s0B#`;-MN~YJV=H0mnsuP`)V09v z23YwJ$t~1GL9_i)$7&Y@v1m$>Y2Klbk`^YLMzC-bdj78UueJ;1FnR*c3|;+uc5IOj zOwf+v6`-a%BSczpkFx0!PJGp-fCB7+L2k>E zm#GV6Md74JqZzyB&5KVJ_Z#4d3;Z$N;Thg|zr0v_(S=b5SBu;#h~6e@s##+N{op~5 ziU_85-5#P$Ug&}dlJCZ+AgW#zh&P&!CBcz2yp?r|OSpuHYi02mYy+10_P~54Mb8P{ zi{(PTA-Kt6HuIh}KLQ7v5n=>Mw?S~4>Vro@&^2r3!w5wUH$xyz1zfY_S_gF|2I`mi zC-Xd}`J0h2C})ro_S4eFG5AWRMFvzpDo?lH<2>aV3667zLy`Wgj!us4(>pjL;F1on zlP@OcECf^_U9RFpQA62rKoQhFH1MR4YtcU%pPmLPH>0Z2@2R~AeLcj`_d~QV{9-4m z$~CZQ#>mmPw4{+D)z(vKI#O-}6f3KM=?}-Fu1`6!>l)|?LTs*ujk&jpLTqr&-vgPp zh%sw!q^k5dyuT7kRK_(@qDH270t`2=f>&!8c;a<06|;s%t}Q&t5_pgWOr`BAD-bXy zlhg-=TUqwL96nc!`>mxKtDv6wHrDkLAJOB3M7QTKSr(;i{ zJ)P?D>Sg{1%MYSgf+99we#fVVTp7hxA@xe(`Hh!;KGx-?l;oO8@dBo_@fZ<#IQ6EZ z!s;zpA3b>0nl0ry%euNfM)Mp{=!}h3U4%`QEZ~~JI9wyFUxCk6FTY!_0+9?MgpBX* zg0p-m8LkxkQw?!sLE$m`I&-&cYGt0nC7film|5IU4lR^}-@rg0Y}&P}_fu6@i5?H| z?1iclXdCN~=cn?Po{}-xF}|F zcgeTF7PhmvCu5%=?;r^)}N=+z*w*D)2Xfelab}r;w?)!n zGtBHS4w+V)COhXdy-Pe?-9h;8b}eZp*-i?1=D>3qvYCl{8~k|F#WS5Nug^o2Bh~}w z{tFc}|N80ML9OnwEEm;pop_b|mCvEY+|GA-p!1qz(Xux! z17BFYq&$&~a$5kmdhA4sw{B!x&*+Ve^K0)WhxEfz>61{g!8u~|=ZeP=KpOFeyX~eX zeQwn2^a-yGjm=w4<|@Y>(}5M+H<@_)KX@xwV!6xa+ApZGP$5{GG}j+{OF5~gRfo0R zN1@)+#51ebfJ4AcpcUea*|`F|=L@lT|dEoU*rL`CY;*gxv9u>pW3j_ir%}N|}L=ta0fyUvD3BU>INJ z|0F+9p9=i$F-8_G#nb)PHDs_JNEcp{BLtYcHjgOM5S4931QhO%#WrF@SihqTJjFH{ z=pS(Yxs%#Dk5WL0PNh$MZ<$8PCS5Q=)b|i146m8DUjfUjY^J#OwPnx(pffrT57I?!?EI#agm|4lz~|M8 zuUIY$JmYv~)9u>?j-Qxj6p-LG0H_)yI^#-2g6-vX=CuXQDEt&U+P@6ENILr1QbwpP@db2m@tIip3(fP{{xmN{I8pKYi8J zg*_f3*gKWULRsMJpc=*}b@{$-Q!@ghBj50^9)>D$MVbJ;V=klu0Vg+wTb$`)M?(2} zQM-M?)ua5G_P$^4FM8t@-*bL~<7yyQP(#&w1J%Svu(gl!j!NB#!Aq(%g68_0J@N#% z{M_5)X@&*xLr+@-ADu+!DE|x8X$WUg0(i}A<#E$S@C>lA8jauhj3T~Hy>DR>RU9zQ zrmxv-Tf5F|0=P4U#zNr)nHmN^J{nHYrw?(+OTzUR-$?_jCakI+$G#}|mTjK!f(ryk z>4eXeZ9_FS^H55dtbPhVH5#5^2m_Pi>yjFLr%cpDa~zYnPM6N|t2L55c&g3?Wd|q6W)^ALXZ_iMDemYlm6r9I z@3j{T#tXHMKAR-8?efcNL}|jnvOC^ftI~D^SLIE4G@*q5K4uIvn{gk0Xh(^Y=NR8w z3Fi}V|C%3l3W8SS-w2zIju^P&vLyU)NF>!+#IH{2B+u^rrGR+S!OR^~W@k@1n$2*%|m=c|AtwPisxVmFCW!nw+ zp1LWd#G7Xr{vo-AUD6lk=3zt}kckqT{rnpk>X;I(Z^k%e6a;>em*eg1wz;EI<&L_r zoA%7Teb$|{*YlM7@B;gl(zFqAi%zJfLqWIx&99ujh>hfbSf&M@`loVEcL_Io_@k2N zWw5=*#m}P34(!Z~s@>nqtw+pz&doFOI`_E9yx%odj}*8Dc0=Wu5V0;dWG*ci#eYz& zq0W5y@3MFPKM3*u|4;q@NeO%!X>B{`Of8xdD0Sadlv_IFPRw{|Bc{PzLn&T*@glf@G}K2h=!KQQ;)Wf;eE&B%yZlOfzEUK zTl7x?c54M|<#xFFH|2Kx7?6ikUh9eJ$6Q+n?2bV5ljT9b9iGFz@)v2o`#nB;y5tep zB02is6q%#QxhK?Ddm@MHb71MUv>)dj)wedq9T^iX+e;_y*H`G#{a){T73#m)|qC2iiaVM-Ybv|4KO$h!a- z47^{x->XVk8yF7sAI;9tL84~ZiwV8U?8Q+B7RO4J3d_?g1H;6TuTH+ev4-;T%wD9v zOC&Xju3rMEb?%HL)JUgPRO8F{MvmUACmwFtJt)muYnxwQZmL_{30mG(qTJpr-%UK0 z+ZX(CxOdc3yZrEV6cd$psGae=Z0WjJeDM4I2S8QoON~Ecw@G{YWs5l#);BkqTgY*U zgALjtymPtdUg!T>2?fTE>Co2iFb?);1FLJ$nT?@2o%sE0_pd=G*QBMd32M38qOS?Q zG%$hwKC!WOKwCRtuIXMAe*m?4bq#e*P!;{o%;2$&3-r&w{e*->?}>?B6A~A`_fYij z=PwQHp+47y{?%Ua6&hpXXm5nZ{A=)+_BKYEXa}gP;LE4apvllK4%Y;gtf1K*|NHBc ze}7f_JJxG;Lvyr|!@u=)dGc82n)ttsD=T~L-;V#dgul!Ck4t!FX6b;o|2xSuO9Kb= zQ?!xIJM`b-UZAZ_989l06#m=!-(*1N5~q1v>%Ndsr?41s|DVS<>5XJqgzpPW0P=D_ zs`~CISMorVyC?ohJ2+eae;~QPtND*<|4nlLv1CC_M?;5y$?{*9cTMoInFHn}+Wv`+ zm935SUkN?aXno-j@GqZ_K}s<7j1# zxhC}R{{6q#23_m_R0z+}W+tW%*M#pwP5(n8!r~%A&~nratp48ne+gO;Fnb5d>R%%Y zI%3cmrI#yHA9~0#q@lqQ=i|`Mmo! z`s}@F5JOYKWyZ;%u{z_OIF@L{8wx^(Qc6L|49%<$Eju8zwU2hR-c5dK*!eD8eV^g~ zzGMC67vm)>ICW}%&Ud?fxGHy$-7~H%K$34~{fd53lDC(japE~2uV;ZHYW#dM$n!R1 z=Zn7Jjk9&b*5}uhKXXu*EW;{3J&XofKcymA#eBgo+sY>x%2_FoAW#nr{HX8waeCw_ zP~ zILqb=oIerm;CrS2yzLZsAs(s5{CnvqKIz-iyY@m1oz~H}2YiX;LaS9CqhPBfz%-sQ zPL&Q5Ip^gWN8Fpb`7C01`i1_AD0zwMD?Se;1~kH+%cV`_D0`%(+0TE#vlfW6Xu;og zUlQX9tH1M}Q#T0A3rG$;JNId0lp3^p(mJHk^W>8^&ls+aVtuS$e@4j7I1}5M{~#`H zDmILxPCJ)pvYa_PYJO?{+3BwgKRzdWN7YCsgyJvM>0d=fzZFc%(L3|CA~Zc-Ip^i< zH@>Ww%&iE#bX?Z?VtJq-^&&$tUBR~#7)M*jGvH%RwcB~-45r^_mEQ}Wn~JV z4WvV+_|KR#T=-Z)Pd@wcLOK%-fDjjTU<`&BWUtc|AMu|hUb_PWxXJ{ER1P`<-7?3E z;_*9L1`qeYnSQcY>{l{LQLk!2s#e`0Nan@ksW)D8Z{N0HaeN4Sn!Z13KB=A$uw({2 z7tGZ9R=q2e^H9n7U8=oe(6vZ_x<2` zaITC|?Bqd58RC43H$3OzN76(!27S%J+16T4Uh>N`)%z=!jac#}`X6w8DB3uwamB`) zY%)R&m7prIy7;`HeLqUB_Me$01I&N0&18eka5(tNPUIs=4}}~Pi4qK5LZTa*+F?kG zAn$7i)8>ka-=Ev_aQ(pR{KV5Y_^CPM1(+lILyKZRyY6;j7mz79=S?=)Q$1ToR=~e) zWC z6TJF0yYBqAkD3N;?)2af_lJ*xO>K3ni8u{M{Tb!@Ck@kg%9VvUbb4Se-b+Z0LA`?W zBVx4(BaYf68o;*HJDu(rU-aHO*7yabfyH4;4J-G_!54JU8moAC^!^DmKlB}Sevr*p zZ)>GJN_Jz|DW?H89;Op6j+&oL^!H~I{s4b|<2;&=5~u8Zd+1!T_ibU0+ZXg^qv0ku zY8e={g?_+y5`WtYUY0L0_=CmQ*TOO{bN_;GztVr_b-O0xy#INc+inqb;M1vXgzG=7 z71*MTuEs}$zM%J7-J1~bpaO9YbvN?E3r)ewuSL?U6~HMUSQICA!@8CA)!{oZD`WamQ&kioh<)%a-w_b-A9k-F#uv!fkUsYcJ zo2!bJ`ht(wt0aF7sLyl(??^&n~m9 zsxxa)HDdl?HL=PwH`a9rrU*CP91*-(GToMFR`~JP(YA?rzpLCEIS; zzUB&$wjsB&BYPOqE!D7BL^99rmF5^wk(RaF(Q=0$#hVD4bNqw%omfvUzlXaweG|4- z#N8N_-t-`@ys~^Ok)`cx_K2+S6WN_1+?DDPx%aCR<;34t5WdHKX&l}uc8OkBiE{2~ z`ue9>9tSCe>E{-0&maHF+%ejJIxU3kJvP&nDnIR6JhkY>!z1vY-N*m*M*qLC0jTn4 zYFXVipE5xZ`&E4KV8_N{RbLSEDJAQhgrWxDkhZQQVZYMrh!wp+cYW)fwd185d>UU} zT{!QWU)-syQCy;v?o#?}GHMP?|MLEaFDY0u3@>?^aB9rP=`k&gy8u7_4BD*{5E4o7 z=eiO0w{6j-Kg)UPulvx248is;&;aJ687nd+ca`_zLjJBxDeK1qy(nB{s9{GKKI;CHg(rWS>P^AmE^ zm-&R4X<(MWaVL{Hj*rv?)ROUvoOT|hWO$E!-HtMqCS36Rq z^*tyH_ChtUSW9*Vc3<0spIO^F0+fBV_r8V!S&#xUk2@{;wqn2)8#R15Non=wu(1%7w=2i$VM{nbFoMmmkN+p~V6{UnaFxMS#; zLsy+$*eCimSHX@5oZWh7goVW%h?ZpVLg$DK7F? zQ79zuA19FLXoot*v{|sL+U1K4)$+%!{2}O3Yn;{yeBk3FwxnPAtU#{7vFGX)*F(+i zaSi{UPf3e3Z~xDH)u+c+tQ+(6mk(|iwjfLnjQ6O9jcIlh_4XmIfyYS4I+IQyj3;rt zrY^+q_X6hZCKYCE^i0kTm{{m`EMTxli@Hc}N84GOL)`MmRXt|*cBPFp#r1I`HI!2` zXn*!9MF(_PS&9+K=0yeN7sglEw+-c>YW-G&d?#kD?4HHB0ZD*n(0?xfQ~6+*$u|qhhT~lA4jlY5Dk`H@I{WE+v*DKKdE=7 zJ>U!C2S02}bYdbe4|`cYG(DGmd+Srjxt6zv?<1eTxoKqQi%B>&pru#iFN;xx8-u5U zub{q;I`lr~iPMz+%=y#SE_!bvPWwZ)uh1C5ex*nBh88+BfcAw7#$mT}nSl^0p!PNB z*~wJ4K4Qn?C3);um`Hqy$J5xNM<*2x{E-FZ0saav-h5mmdFq1u*+k?gPDZf# zRAld&Zl7}6@u_pSviz6HkGCA$b7-7@UpP{H_Uz4`+vIiHBHPlS0C?c_8ik4hR9+(a zqJzi@;3QIJ!%R>L*q<~%87(qPem(nr^dIDIG3*=I%5ixPRmqmrGHD)KNl_5@)B@EK zW?!-aufraJ_ZndDR+v!4wZ_xF8l&c2#NvN|{g7G&<8hfd4+NrQjzs!O{(wUuWhjju zS;+W`#V@Pn{>mFAC&SNjr-C^Q9_@ziB94?T@FJmOKqhh^m7sjX8HDx#p)OBnDxF;P z^S}r_MU2zr6Sst(EGV{Q9o-IiIqH7hxf|Y9;Y$bJq_b>3LamVY^jWQ@U0em z<=zsq<@f{P`zMyHTkqpNMm}WVc|-QmaufNsk0-QxTO?VWc<=#wftn%vSC^A5@{NpGs&nqb$#S=EBOid$#vk_p?c5YGGnF1pD!$NqR1D_k0yrAM1L0W z8d?5ciz*6~VYxcgo3r)Rv^>#nIDY+LS|t*iirufNpNO;9f3QOI=jcRTEBQmvF`t-sj&F-{E8kI zIKw}uG(!%Q`Pq|rB^>!hi3Bf=+W&xT)Yt>p5SMSc^eg_B5=%6;L)5aFA9Bw|`N$+65kcfh3>jy)nBX9MeaN67$sDrRJu4|S0(J<*SgnYY`^^T* zDh4BZPVhxhCJzwyoj&bx<`MPnO`Rlsb(;COdIDa4X0q)C=3GLTi?zD7Y3MKT`dIz2go z0q@saI({Ch{{BTgQD4AW7+E)uS` z!HRP)pWTH$?-Ccp$KPX0!?n|IS3WrHGOHZ4ZuQFWOy>vuvV+%it@9D1)J7ff$7BG} zT>R6?Xt{3nM7<{LM#f116ZSD?ybU$P2x^&Z{?%j z9xh!3lu`!nG4rY@PFu(=^V731PG-6VS^dCcaLSBlJdvfI%^$D_w%#hp=r`WXPnmY zf2k=g<{T3q9tJ|5~fUj1`XHsO8|vPbdY3GTVh-CxU(=Wll|Eg#;}Z1tK;+_#xjmrJD{ zM~pPZc{P?FsN(1j9hd9(JX(YP@l>4L^Q(7PERm8raF#nH#;us*kBNR>)USM+F7(I8 zutX=dez~3c-kX!hQE~^#TaM?)6Ax@^xZequ_Z=on%$GagsykAzFP7O^_YywNV!jg~ z!8AP*0J%FH40d(e8kav5al_w>l|&g2vGNISGWW!%nsPy@ zo5x2*>b2bdY+Iyd{3GXC%<=rl`x9QrK0Td_o)yzZyFESSkFS+(e00hKxPT9{cPZm- zk=Gapjtbni&K@bctLs+Enbl9X-6{7{{Ep}PcSeAgS_B-di(RA9*`TxJfim!FATd{+l}Fy3R@+t7Ve9Ck(DvAEa>@m)&AT?fNPNHhCVa z{)oJ*;?!8RzhFKVCgq3_e6s^1y4m)OvhCS;h=5cc`aa4QlIQ(Yy^2%O8vO$GBD}l; zyqEj$r?vpN5sFqpSrM9?)wakXkyVu**tj-L2qVUx&W!{v0`T zFg)I?+!5F&SS^mH7V6dY1;e)|9L|xv1NR;JmICnCg40wafs8k$8Ns?`XJ-6p$~6Iv z1s%*Tw95su9lDjmi^MPO#HYc`bMF-#YGcB4()wS$)w!~CJ}+tB(YV15$rdFvykj=%~3rw=guyuhK% zemC+^?IaNCr!|Y>R2T?K=_Kw+iKai(o1+#QYEX_>AE&oc?xJ}5wtmwOX_wv}qK#Dv zi`&|+OrEH=F7Z8*ef<-DT*_%lo|drgL)_$qe&~}Q0|=^OSaAX5OaG*M;1UA{Gbc8a zF6uRYm&@}}?USyzB2`sNYH7AD?laI`>ohyEZl`=CN;jG*)y+~LK?;NVm}$#fO{XJL z(K7$#zLq^972u^)DGea*x-ee<1fZ;>S0L(gUp89~Nm=*wd{&ApRvs#ATZ4?iLP(bn z#q(PZAVie3og^%&TOJWIYWGmX?v)5PgXRJ!X~)g_PIDlPgEhNy9f|DgD|TK`er_vL z77oUV7tRv{3>D|+7hG8Nf8tdj5*f&rAx3>fB2=J)>Z9R2I2M2kn#qF2ZmHQKsiSf5 zf_?;Y$z0sxHBYavlFDwb}Hbv`zN#8)#as7)IEA$zIl zlsP(7eC8tgwMRTBGjh?4*iXqjP!1Zr&$=jUw%mnayTCgj=pfhwajXq!#tc67FypOO zm`0*n2ln$YQFV($8b9&IW}a9#pol|19tJoOmhb)!w9xkvAt(!-V@G_-5k-Nau_mgJ zz7H?&LQoQ$7w=Q9bb5CHzewfL?M93r%y!N$Ee+26~_4D~JPNs3b>J@+eXUo)^aky1Dva~5t zbBNODpy-$&=YuCSBZj8jik7ITJR4S|$oSOWw)}cX3tSO=HcKwg0lW-)O~>n9=2&%{ zwuL$UxVR{^ab?~4DhchrdnhlVq9@MZvU9-0C(Z{$8mKmG?-M|Nw(-_N(|0ek?4v68 z9F(A^bT2AK4u_46@w;FH4zC9ham+S1gP&%SWV|X7=SkC+lfg{k_=7K8y9OVvuJkNL z_H$Fnszb$ie4WV$6=gNP7pQtzgNzmwKq(x!15iKeA%lQlG%wECukYzc*c@kz&%06i4Gy6u=vkSwU$WP0zV$p4l%6`)EP9`lN7}q+_qV-i++iw|l!jPSrfN zJ9hswdm2#j{3Ki32QHEYNNcBhDtzxTEv zx~rbii-1t(JZ{DO5F)phX;(WdSV?(6=wI%SacGNo^rSR&NLo<&eM)hC7sy_kxEGp5 z8B+FGhIgmBd)x|bY$-UGx7F7L1~-KFGVms&xV4en_LP#H;H_>_=o_)TuKUjVrbpMr z$cXViG~m4Ep5q()T2}q>C15I@H_O5?rnrCOHESu}Ns&0yA?N$rXe51lR$|fWDzxu} zGCRV)|6pc+Btkk_cFPZ#8IpEZo24=mAS-32k1sxq$OAM+l#h}V`HPZqD^-tn)8Aig zC*?`rC3s5(bBHXxRw}=Fre113zzN?o+DsXBehi#3(Jw&(X6lbc=YDVyYhX|FC1nM2 zA3=udUIvHyXm1^8;XruJOJWB$jme*^sM@QDDas1&izChq_KbD?BVZmTp0#1nIb@xnO{dh{2>pRVD2Tk%r6t0f;V20?Zxnc z(}wN3PL#yAKP*;~2;L>77FL?bQnN(!hD!fcgmoaiAscywA8>G#K*_8ZEh;;J<40Ts ze&?Z9%4K9wf5$lV%*Ad+Uk#%9h5z0}Qb7%w$0ot%%sXm9k~Y;A`)qe%T5Q8b;IdyhC45#RLB*_{N-VxbK)a#R^B zTJCX3Sqfd)+Pmk< zRlveiC+R6e5P64T~SyKoRoj!Gk}P)P2`YaCpig zQ;|*L7AM-aMEZqAjxD=$WD;Hnmf`H zIGlt>Gdu}*TA~+X9w@wNW}sOV3u=k_Ox!t^w4HjIKj-u>O);{XNU>)Vb0jSe?DK6t z0l4x)Uyk{_cOxCz1!#L3*l8BcD?2ayWpE}|9I~0a-Cn?9Hl3{BNZ>N!*1jg71h|X3 zN6Uo)*QG_j=a5dhY~v}?)}cY{rPu?Irn(qnMOdQ`jCHdF%VHeR5qBpozCr3Epb{~p z4&cjkb{f0a@lsqSu_(spO-@1+csr=gpj&g!9(`b>XyOEMp#T{fTl#VXuO zvE|#uLO7&jYE-zKF;E@f1$ep(0Q9kjKqENVRmI2LM#+nBCM@7K*pbh4dM`m`4U}R? zWDER|hCB{^jPRJM-+oZuuM^+Q)trfTj67xMb&vWfiRjyPXR*ccAy$wAs$EKx=bkfyFv36`$PzDgVtL z5LT`ZtGA~(1ZXG88rp_*mO<}u~>1{^k*Gs=BY(c^`jnN2Al*TtUh zG6s{`2Mle(W_>pn*ZD>&tP?HwOKhsFQsBJ~n~+UtU456NEjmfnTX8>HY)VeO;3By3 zUaf%>dw9qAMESa?*Ud7Psxs^AJsU}$*x#O=(pg@W=Pr%^zS=sQeZ=VDh4KK7G|IPa zItJth1cC);Lk@Pl>P8=>1G{qFdT)D{wafi2jtdU=r{iM&_{nMRjbp#AaZe6z9^5_f zzF9C`RzCb8(MG9JIcA;&u?!Pzd>hI=ckW0jjg6(UhqbOxWLbN7aGd&p;r+F&_wbmy z{BR_Yo0_xTqW^x4#CNP3U7Z-@f7~cHxOKrMWIH@GjA)2;+oQH>%KSGR&;OQt*PQ%g z*W{jH$Ke4x+WM-8zdt6?%r~8lmFIdMTu{a{!rFq@J3Hv<#JavtS9m0ooDsmOarSr4 zS!DE2eEL0AofYvDPziEd$|-Q81pjhm(_jcPgu*IsI2Cxm=KXHxqo8y~BvD_3we2aa z9U=TW{B658{QXS5BljGNGPNk^I?7Lphd*~Sdd;WZCpZ26MzJ{>p0DgA{l9Vc-ce0_ z;k&PjfFMOmKsqW-f`HONP(VaLI$;zNkS;}P0O``DHzP%m-Vzy_N(jkD~rieXPs) zn{j8|@d}eZbLV_i?DH4YywT7*)q2i62t@`MGmBkMca8MkpYbcvRF*+RO{} z#GTl4GZfU}sf8BTzc+(N%~M62JNWOAjbQ`C$JTV zOZ~dMmf0hP`Se&5|B<>XQO&M4d7y{QyP)kR@}Q(#`PRLs&xB9#ZYyXioE%B-lL-CW zB&;ueRwI2jH{O&9ePHQLE8UD`Wrvf_Fc*EJroD5EdiOrR2@>T8;C5Dt{zQ`YiQChk zzilQDx@P2tT0z)*|HJNKND&dJW%v&X;81^-GM`#Oh}7GKyTXpZsRb{Hw|J0)&21dx zA~7qUiUcJSAl;dD!?ysnP;j3g$XBv0Y4^ra_iQ2plXpH|0Tf^=Kp;_5h4<7zhFM}& z)P<&U3Z|Caf+orckBh*ei@q}E`*t~dnItWCcM{r$ZOrf2l*I-pzmZ(J{3 zUGDz%+S9F}x{y&a;Rx{4jcYxjh}R~#XoQVBDKR0R1 zOw=7jQNtK*ryR_mY}qm4VEUs&1ulI)+&^&G-4jYw)^71D%00v6cc>>z=W=K7c(#pw zvM!Ak`off!c;;pg#RyNN0y{)@9sW`_{r?b`IwhEwpZ+VJ~*KBOs((;YryXjx4aodeJd*eQ~f)X8GQL@6SKAg zxEvi)scfv`v*#;bPyh0td?K^Z4(T`5FA~G0)yg+I1a1F8<EYPH%{;nkf39I=E1YVANl3w$zMAMxiQQx=Hq4Nk@+i? zCvnqn#1=*ciz}3YM>Acp^|m?Uc5v`pUtq-%XMzGPv&uJ#A_MSu&a0Ygmx%1Qf20s` zpK(v{7TCBygD#|{*G@I~^g%W&SXPRw+#=TvpOp3n3!}|-XSe>~r zT3N}1S#dKP!AHMh8J|gF6Fle@$f9yK1g9cLwmF?{945x;mAjLbzkvqnj#3?_x48w3 z4a<(}+|=)kqp69hVU2rDeSXBfy|ivNy{c*b_~SFf9<`k~@l^`vB*AMNbJ(UOtoPib zreH#StjgTRP)jVrGl?S{w@3cp`rreQ9wVR5;pSjS8xoc$=hLrjR@L3aljX{pbGpf7zU|ri^>30MHp%wUn9uO$ zh!EK+2F)SNyf6}Een$hBYQe=}sppTG53ie6>rYVVV9i`E;=;gH-nVJ?8sIen9>GIG zLisPfW2GoEiH`5797z1Ub%etPCMK->jd??1kQ>$|VYbtL?9EVAyz65@6&00dfGcf? zqO1}UH3)Gso7;T#_PFp+S@XGUS-tHdX2fFDW=Qp+ei zKyK|wpau_(J5|@ZVE#HF9qNqx!o^5dZ%fT>$u%3cf$+Iy^PD4nhs0s7pyV>U?N0hZ zJveN}05`nwA?3GEri4+G{kSVnn2hA%zEChU1{84XR9hf0cj}uzHDYiL*}a)*L{a6R z`l;0~T(+P*4+=Rvkn6kV|CJdhuiu;u)pHZNc-SIGJQ~;RhUW*Ll9`|3 zc5IoY=Y*qN(JfTC-A;DIWRmF!ipH3tD-lU19pbD*fX}_R8K!d~a&zv3Dzryl2XxQ4 zOet5Sby(od&`3~n^~ON~j20KN-I^O_h=d#+)b*p9hkr*s2i}hatUIn%bMm_{=`P(^ zz%cL`Pep`m<8U4j8t!F^k|xOcwZ6(j*LV$i*-KA^nmhT*)EG&eQR?2w*zz%KOzK$q$b(*(uBWJ)* zT=HUm3IJloV22Nh@1Nly0W#x4@|_Mk3+9T$Lsm^VBFK#0=mqo10oRyN#~V{OkZLEo zZsFdt$R#(1Hn}k#s+~ud&%m&MKhy!+X4EY)kwT~|zmr>d^ZJB36N$7jRlC;~LoN2s zJi9sG7PMZ8cFxI>+(dN`$;@e5nM4RdL!ezs<7W&J;Nz)zc_59<8x*a2=1tP zZb{G}!XY5i&GSWM6{Yt?Iut9xhokrl0ZD<|e6{jg3LG9VZ;;^pK2RH|>qWpwG2DyP zt=g3Y^j(1U6A9cbPee@4K$e00Qs|AAE>zg2qdU2ss}9H~Z&+!pz2cCv79AL@(eZQ_ z2c9B5?~=BKvY<;v<2mfu=n8}L5Gd(+E~JA{){*s;N>7Bow2Zq8I1n`-;FA0PvBOtB zjUmbXIzAlzg0161$c*jFTdrmAbXIxTh*LX|@)c)L;Y{{-YQyfG4H?dCwQkj^0r@Y% z-*zuPM6%CU7!~J2v4!pPJxLg95ZezasMZ4af1{=op)_Fs9<&kD>Du}P?$YYoB)_RV z@f3V%2+!r1w)97J!MJffx8S*$rw>Evk9!_?Lh`97QxVE@b>5IU&9oe3G+RGB(2xYZ zfkMBK7Q#vPp&)PZD5wV9q8vacfbNAm?4-$n=W!LO$j7z#OOcYIln~?!E!SOXc2M;n zINigJl;5kl`MKG2qrT$g+kE$pR+4zIn)T3guIH>L+N?1+f9c#`^;yfCs(^zb=&$e2E`2f9+p}YjOZjzL1 zB^b#j&eA@0hdV8*{0Z`?`O2Mus7nH)$1RmbH>M*YmNG3iyVYn$soLS>edi{~BET!W zK14E&HpIFONKv!AK$hw!~yV#FHgEz1q* zO|{-_3+DFmn5hflTQ6%1;O?R5kxjhMrH#m928_tnLGiBsnGj4|`=(xx(?b^?auKa& zoq1o7*F^#$;yX1>S?5dP4m;Q$g5bLcM?I|Hrb9{olSJqep(FalHoTh84=d>hys~?K z#*F%l3S@QGS`_}cs}RhJJDRsY4nRUA`8sH4D05%w$~YlW8@>lL?GRAG14ev9=$Nf# zHw+*JYPLBje`~x3fTQNx2xVIYTHok-{;k&*D0*CSJx10OHK<+MXtEg{Se?^^w#_8=nz@Wv&x8Q@QOO{F|Lv;b)>nCHtg&NI|7||<6t7Cn zl(Cj2+xDUz=i5$Nx{HKe|GzSZF|TrZ?8`gsH^emtxX)^R|8QIS9@83&FF%PBlaXj& zTzA&3ee8N(+2{D=(BztQphlyN-=)RHg7x^!a20iDEyun!OtrCjw@=Z%!7mx%2Xknz zXv%Di>CHB`^yrJ)`f5FH=2?oFtD@XSoB846u%{U(WnhHM1pd?6D)mZYU*V5aF<0S> zlWCq7gZZEIghvxJ7GK}-4E@IscjuQjO1k{_ib#A;`yaOwsoyq%KZW=Im1{KVe*5^o z=XKAHt~t*O4^u_Xh}Yebv%5>sI^Lng-r@rFTbpWvNDY^rq)5UE*DR>J>U~V#LJSqq{Qsq#JUNmdyQCPNU80 z*}o}ZSjsAfE}_D6^}VS#>9%{aKT2Vy^Q=>iUKnIYV+lRxX50PtpAQjt0sS6Vd1Sa} zOUC~`&J!OkZ3BtN$ytUfi1+L+N@fA< z-YrI*HX#8&2-G@&-G*d2B}NRs_>OFg1)g%U~(BcXU(uwrOH3X#56 z9777*ts^0rymb{;2Q>c^y7aCd__YTAF>ngY9NOPznl_g#6>XGbt`I0Q?(Sa!O3y55 zwZuverNbtzhOsVzJ=r@+58~Ctk0u7!pVfhR9sN4Hsk!5uiO=#HkWUnDdY>HiMRmRZ zyuG90k>B4^+EH|=(wyw3B&qTwT$kg)b+Ux4fc}S&f#bK_Fv7^` z>0SKjS(Wo#MCm^c<+N%clMUDRA`X#Ub>inOD|>O#unS5wgP4t%uo2HrWnf*c(tr$a z^n%G;rD3FIr02k~(8UVUgO*!tjTNX(5@rO*bThvaDn5MOp6i z0}5m^hCZbqHK1h4bF-_cax&>_7_L-LozZXN>X2piU02UoE|wvZ)5_vV#_6dQhlVcQ z_1ZiZO;d0DL1Al&z`tF~*qvetc zRTn0>@-PyvQuZ+Nr0^%oKuT<1k=Q?TWH^FZ3m5W(MBn_04Jl9~3w|$jT{b=TW;=>X za8wxrpG;i(_;V$NbQx;2AwNi?S7K6U-2^#&GmV2%ekOQvRz9(xO8ErRM1&c)n_r?&g==$W zQeque;3qS9XE&*45<}kkU9>MV9YR?)0z{LVZs)(@aWPPRxP=VvjDSX7c?zLiq_*n) zV0ERb?2M#H+i5?#`vB)or^44&{<+RU0idg+C%hGsEqOtb5$NHB!NuRGyTI#K@&vG- z!2Y=24lJow-KKtY_XPz(GZ`AbMt!YP4RED*a$iy)B^&%u1qKL3UcsO^!KN92p*W zEVwFsKRXl&ljJD|d4)7cg=s7AJj^Zp>Vtv->t#fi5CG?zq6CT;(GPqSyxwyD$7u(S z-i8;RAjzq&8Q+ApG{Em|NRZd`u$)Q%hA*W^3^ciZLBB6_GDvLWXQ z@?MXieL52;2DccnrMdk)z`SKh&4B;&Ga!E+tpdEc=jRS72E|=EEAHN}c(~Ftp5G6F z51M5@-OYI=dHdU@eK%}#kIn1Hb$c@4;wx_VlW&HkEBPJdHnkQnwSpWV`jew)Vn}N5urRKe8xPwa>ke+7xo@u_GT!&CseOvXH}CNNq&?VVQISIwOXOu zE{98Y>xZ1zyaN~!^-afUpQutO``i$IPYF>QKs=yNlJWZf=%4OkVhIfkM>C39_G8@c z8A0<+u@qJNMk%I3YeBKlg+Tq8iBcmCHxP_jX7&@6bN^91r6r^gbT0yQVECOzB7%KN zoPfCXf+p_d41OIA|E+4K@*3`g|5V*kgQQ(dg;y-i;88RMmiWAj`qfowGNjnS>%YcgfHV|vz9E5xh$r+4v^K05l zo^WGKexcMFA7&&-mhR7JbDbyH>JstPvW+`jD#8VVbC3t#{Iwj1P5lfn6LmXaw7PuP zNt%=)@w{$h?Rlfy$;8At_5z(KquH->GoQ4Zis|JX@Fqle%9ESe=m`WP-uXdyzu?* zqVvbbGSX8^=IvVS>1BVpW@GQs`>ltKxjIpabY`B8>g+A`QZ61(kay3A%S~<89*$Y( zrs}itO$Ox^2gLnXTecICQRkfYWH|J=hHCrjKhIPS)C057$%cXQyGr+bZeCV17`$TP zsf4a4AQB=U8r-^*U^3a4Vxas<_70fY+=2J;0eSl{h=cI&-o==Nh{;K?*WVOu)j z*8iae>%|tlT0@X!dTLvbh|YkEm-LEp!@`uwQ~3 zxin&9>a0$>#OBh?MEaBKPL%j!6z`>0y#2-Tsd&FU?LhurA6k0j=>FCII8CYc*(!{I z;p4wY;~PDjX6|bEg*|ZWw%<`QR4Yidj=gN6NzvT~z{(?tL=r*1aF$E_3wL#~cR0c+ zkQ1A+xwU!Dx|IO+r>nufv_t!uE)%CiFc|4LHgDV_`Y+dg2~}W3Y8ef)3J9VIEr|NS zGU!u?iE+fXU`SEgtNWys>QyueJQn&j#3Ku5Sx@})%kMKbkNd4EF#V1Pp-p1vO?q%V z$<$7m99e5Np6EsN9i`Dh_bL?@I}KdE@Zp5rR8#*jDQP*o@=k)UYcUUh;+oVS^aYQN zaF=O&2{a4;D4uh2W4r>7eITeUTEBen5KhEpE+o##>5a1|)L*lhotu~+A=RWgZdp`1 zYy1wG^1Eld`@@)|iADbjnX4;zTU+T`c-9`>ZZcWMY@TY&tdK6K$Ui2X>VML2vDE;SZ6RathAQ9KM z6&9G%cAqZMKa5MXvh)UmpkvV4s_;`Hp?uf8qxG=G>I+Mj1lQLW0>28P4hLau8kjLM82ml@B<27 zJB)1`yYQRPzNPL}yz{p*4$|QFr*2sCw`{ylyyAl)*t1R>rsR(C=fJ;*2My=(CT#j* zwNrigRT+uEGwn5s)lSD-f({$-Imr|P_3Tp-cCFdT7b$uj?zG&)G?AWi`WwF}So_Un ztUeUD5i47>(evKaVjCY8zMpMNIad;Wspq{(dq|bL`%?0m^O`=co(2LeIqE}ZL+5c` z&}8|ygg`_*Fbpqz(1&<0H2rXClahe`q;U6u{l;gO>}ZPOVczaUin!h4`KNU`7_6Y+ zdl{`NxgjPe8V7rvR>mfMB%9EP<-EZqZJ*GMBNW#;yHm|>7Sww`c8p1KSaF7-qME2x zPp+o;4qqFxFr8wN0JoqgKJ&kfLZ_XVrB^&p{#gI%A0 zf}vj~w0w&AESDI(kut>s4@7{L@*4YP?> ztJ$K~xfQ4-U+ufGW=W<$A&fA<%4sY=M*cTWrqd4_(#D$~;NpS6meta23(*P8&~F0Ih97O-2{C{6IS( z{68O<@Zu0Hzxl)!W)U>Hr6fxd^3|SGBj%9i^_bIN*xgR~)bGzoNk-ZM-lpFLHv8bU zTQ%+RpUm`=vf=uxDLXpxAbblBn+Rjy!vMGB>Lb6=pM~Z_Gvvf9f;1`hSARp|eZ%s6 z0q3-uaSsqaHnF#!<{P+F3iUXOE)v03ExkW7sxs?`57ER;j!OXdh-B#^wLRq(G8{7k zkF=ks4M@CuxD|RQ6B|XeHsPcU`8Kydm@$tL`5y}Jhpf7Pr(tPV=b`I&4{Xu;J2xot z;(rrIhv>?i*Ieo%rv=fHapjt7Spy#6Je6m{j%*Tte?g$-3o>lT%@-tj|2H++L|I4r z_B=^Xg=ZQB;xh{fO`HCrW*&wsT8*pr4<>UW7+Zb^=$`+jl?duhALbmR2mY#m zB1_CK__&$k?DbpQb2c(df>OtgWH*Zb6|3r|6q+gZXv-^wGx(NnX`_x{5UY_6T&Ug<;TFhQi*d=0~{0w>izU36UftaXk zQ7UhT(C&?ncfUlSd?QMs-&Q9f5FEM~JU6zY*k}RZQMs7s8!B>a`3LjS6!lbO03AXq zjq#e!r;CRR#}1R-MnS(rp1*E&{kFf|GH)9*!dPT5UTnanSub?mynFucgtyyLH>?HC z6T|e@Fu{V<4T4ShX1ydu#1VQd{_Ek!wVb1~a4l?R?b~)QwFL|ja$`+5&luEIiY!hZ zY12l|zMQ?kak}h)^QmuMn_M-@()q{VXlfPmXw;*({WKs-?#}NZrgauUneTD$n7y(( z^kGeSAL+m4tnEDXXMqbYF`a(Ka33x3-&~PU=!}1k3$i{VFf)$Mcc?yFDz*9cz4YwU z*GIk=j29BIf_2>djf92B;mHk8IbrPAb?+rNFE=&ao2fLM{;9IT|FKCRD7SlD&d^e_ zr?=o%Qoc>}E|2(*U82Hq@ph7pDLjwyfu4KX&R2X{tUShl7W0hCMSBJQ;GmiQRf-*& zj;Z{cWZzrbeyG1U^=5UMgtgHIGZ`%8zPL-(cGDlAD(?eFgvs-=lnvXTd$-|b60f`E zr?S0(|D)O%JN~svHX*%}6If@xQv_3oO zVeR;UgG;!2q6Wr;JBL`rBs`?fzMnK~oiavDnv|NlHH=ETsxfV4PRIDn1VWv|p(BkM z0m2PW;PYrxw;B95FVVSY$_K~FSck)L9bkSbm()WRdih=)93IxG?uF0&j@ttb{v$bF zp@^ZxFUCrwnBpbS_O}wO@h3WS_hma48-1V&%-Uy05tXs*LG~rswc-inI~3*$s6^8s z>FSw>kfdK=|77ki7034Ww4T(f5UbrS_Wi{D5rg)CcwDg6{Sl2t$q9oM{T$AAY=0#z znK~~Pj5BZhzhxQq*|RW_xY!<-kWj)rq-(pl0{=08#o3@g5E+5{wTU{Rl+cE}K-?HG z$^1}JRNAQHCVHKdOwNjoJY~32Hb>yrMD-0TvX}Y~mA$@-NJkDxI<8^^ZiC4aHL?uq zw=!_QqRe6+#JwSS=^8SaW*E>R^s^gc%eaw`Cp#Nn)vkxDm07*LtC-1ue?I5eF;cgi za$Y!k#f!79-+8gepq0xhB3)}*bMIIDj-Bp3+H=!N+_RbNl^Hw9Th&_^Y!#sbZJHXD-eHFvH z3%!Jjd^)T=tdL4Ur~KYe1rI{Rtxf{*R+y2jc?^{2?oV!zR;rpkj?ral4U_{!~|?Jht51uHo(J*>@y& zi$CKY9)OSg-;yzgAXlT=4?2Axd7vtfIB+dRHHLuc<4)~6Or9Lq5!sg#GF`f=lL zWIoliDWD)7xes(Y0~tI$jC|9>&>pC67)CQ&Tj;ECK00GSsf1(__;>Bwqs4y{HQ#g1 zB>WIEvM+$U3yXG(n&xjV3+8)(MCCX;QseGNv5E5dn>7lGW)WN!y~Vi`a%m8c&GN7j z>WG~XdBv%NDD8*Q)+ouaLx6)2j4VNoxGT^;2tRVB*X%mSy(Le)X7EIlwtK zz=W30TFL{jG-5&QA^901^#`u__^k+gftoeG3z{O-_wD*&x9;k-62#q-cQL`xY65!8 zQvZP0QXdJEQ_hN9MyN%XSB#Br(u|-^Zr?|Q&zd7)5sD|qXRR|3=efDI&BdNZy@_D@ z;*fBU@{6CO1_;q21g7g&+(@5{8OS3271W|=5OJkGGG4OxK}ixf9!B2*Yxyuo>**E7 zNYnP2@k^aL$t4RWz*WqlV&n}2+G>L(7q3~#;j0m|uj z6%J#L*|Oi*yE3;lq5fc`2^Hzz*wO!t)XFR?;$=bbi%@&2B956vm~)}^^(j-gJU~v; z0^{tf3ZQrEle2l0xJM!4{4a5Nl?&!W0wFnqn=-`~olqy-OSplW-)EhekfTcHoW8KN>cIUm}= z1>(D5y18HMhFrJ7qzK8-T>^nUwm^JSV_Ve{1l)e{#En} z*gzAiqh1I7rt5*KA8V&Lq3eH0a_7nS^85BRE*k$jja?Yg2Y!F%_WIR#a`n5qyyNC; z=cZ;3;^X(9*B=p`ed3wCMHI)=>C8_&I%ayItJ#W|uP#1`T5oTS-)VVLoq;6M-^a=!Nj-BQ^a8Gdzi&^PeX4DvNO9ou#&t= zHn=qjN>B$jNlHIBHy9CndVRc@!+;^Vb?bOf?byWp+GCcV@uM~gCpO?GpWf%=yL2?V|0CL6@@#RqHp|@0##OVo5WH)0SxF-v<)|dn z3pN}5lsyw7Kq3uCvT8_Q;6~6K7W4`Q8|q1QH-RXEF3tJLjmvAkob{wSz&jPQrRX%y z7PKJ6Hy>{OA}!d<5X)#Q>0GxG?G<4vws0@WIXdnE3WU@^pNRJPr`-+q^R=FBsylWr zd08__$y`{6Zdj07-{QQm#j@r~FjQg1p-T2_gL?JmqOfo#(@jKN&mAYxMu%a-)}@2b zqgT&Kf%3W?59k`eF_jwzI^Y5=b)EP~?{+#c7)kOF&#kA|& zTo*Uj7vieQ+&Y5KmAFc8G{3S^c_*<%ZI}D?{lv>{VI!RhF9``m+#u}!?TMeewnS=5 zQpM3o*?Dkt>NGrf;r&RLn-4j46XaKm3$7;=DmV~Yk{qX;X^_eAEGCF!l2Eb0Lb;^W zqCB;R>~~Gu;*BTt550Z-(ax22E{pa$=7XV%z`16Xtf%-A~IexU-T&s&!gQit={4cSHtJqMc)j znCJ0>C@S^&4_jFcvL1vUWJ(yfXMSVrHp$u{>F<4W%|Yd}YsGsctiO&!ATR{{_Jl#! z=2aTbowVHeM0%VN-h;9!KQt^;mlgZcX#OR;L39c}Io+7ogD2TEGo&(oSh&Iip)=A= zW$BmD5AnUz1tSNaJp(#zlwMDWe_PcT4&Z;|za$Un%x7NtZa-P8DeGMnJ4@iFH9s+< zM^L$Xz62k?L!8WOB1ekmq)J*M;EFZ*&kWf0;c<7(9(|$#yQ*!tZuwl1b7I%Kf1$b}OraiLZ-xn49UU%LP z+FE02UT5VF6QCvshECrOq7?Xn+(T7BL+%_>-k@K$?%*8-RR-hBk^By_!LA=mRVfr( z0CftNsP|5SSmn*TQzD%Hwj|Fw|Km@=cjYr*8p}xT@av?=3%9Q**^1}84`eqf@|cmE zwwqA=%@mF-Tzvmx#7@UmfNkP^Km@oO0;N`&1DYm9rRUHPO4)plEj7u`7JK&t)$en! zp1m%+xZ9uYn4y<2MTKptPNIvfO&H5+s+^+;a!-8v4Ws@({gaR0&OVF?*T&h0b-`fK za_y+#FRyrkm3rte%3utOV3aa|S9cGu=1ln4qY&VK|nv_1A==`M~W2}OcFDBR}ntOu&##@v4tAiP_ zLy+*nazankk80N|xma|$Yd8~htUpLF!)XxBO5)$aFz56(Ezgls>{!MaaJ6j+Kf?&* zd54eeX!Az46-?AteV6Bx!#;@Rt-1zSA@S&n-*{MU_i5&WNQGK-=j%>5smU-O?I^x5 zCClxMq+Mo^BEY()Bfh|fGuQ)> zq4c-9AYn)efE}^f-H#H~awThtTU#z4GArSWilpYxc|(${p5S?$$55+?a8G!B&pmf? z{!{oaDS0}p9mRJ)3&Zf7mtqC-ZB`7+u8oM>`whDb92ECMm{*5jilU&a)GJJB9THFY z4+Za@fjwA(XT5tnZ}p4*^xl-#Qsi2Xcj|9pW}N%Qeq8U9WT@ZghgXEa3Sp|A2c?TZ z+Eo@3F{4ZoBBdpz@pZUGJ6-MWKsPFFd9%Msy`kK$skD}4eQJf&`wVD_ZceefB_C~2B6wA2iKy<=RDVR2@;+cl3?13D2C_*(WKg*p_yp~q-! z3%OpATd7Ckohspnsw>e&1K%Zpna^ptpBx0)Fb%vZnxB87FgIU1+FF6)wF{*%|9_JO21?qeh{-6BGD?y3fd$j|)Z}j8T0- z0gOpBiM?cy;Je`(zNCtt4nLn0@$w9is%;TxB*30@YIFRCeg|bd?82 z2bjLXJdDh(8U2!e3kpv&Td^KPMjgM*O=kC*>FnBN-eYoX?;N4b;y}Bo1En{s9o?pC z^R$*1(P_D(Ir>~xilKh&u${40>V83#ymitSKEV?%CH(H$Bpw-3d48?TSGVTlwYJYl z^B`S%Tlnv6A(P(hivC%9f3eY(^F7wDCjE*@PrfK_)2$P+$@A1fD!(-2=SGFtarr>CeWZg2-cx)zp85}Qans)fKBx%$w!-}+FsZrh%<1%# zo9ffNCt?Sii8P#Mx3~4U8tx~Q7+*=fX8YS>FqUX0{#JSa(7?1v`{{VZ<@gG#nS;6% z<@Kc04CIu|@K5?T9Yra}su74Xl3R+$ODd<~bU}R;{V=HAlEdsyTYql*XHeyhVk6T$ z(e=o{aD$TW`YK>i6X1Uo)dr3URAGLcsNm55`#t^yFL8W{8u-P{^Xg!aCHW zN_aDC-Gya@O}u_oA?%Sr@7FYyJ3ps1(;WcO$p@_$AEgO9wX;}%N>W2SwHy~^L6BCW$r9woxPSm0U-jjB>FLHL%ER*-^geQd!ZqB(~2Re)LmJ|Jk zEj&7eGrS*QhqWt4ke>S=;q^O|!f#yy46Y*LDszQI;vp(HSL9ILtJDkV znuLc4n?}mYw*F2In6hRPika1D^R zxc7pHb6iBH@ZbkHKrTyM`pCK+nyt0$xJP1Q$F`0m${X zIXxDBocC%pA6hqxVvTHvDS9r&V7ypjLSEG4nXsyv6A#v?cQJ}w??_7eUpeC4`YROf zOLm~9-(=?snt`$xE;aFzOVSJE!?9a9dTIibT0{*W>uD=@eqX?z7;UM)Av~Y$3C_fk zEM4=&agv|SX4;A$49mx2aGliL80m zGNMF_ZRItdvu6e-<*}599>gy{e_S{IJ<&W$NCBAWwQO8(3*SMpm|0;>r1CuYqcL_9 zx+@&P^+`<-y3m6gZ!25-17UD3YKy0c(v-my_zM`bX?iGe}xZOmlaqjF!Sg2jzD&PL6_kS1p|6gACbbVh3Z#VQ< zNH0iK&ogBNueBE9P40}ILCiIN21&_e&HW8ecw!s${qQQ?MCKd6d>5%a_Snlp%IraL z3m2TsTzVj2#(!rqdhJkY__~hGe{;KTM>W|s-F8P+X2;G=1HNo!kF~UZ@_ZJlW6(V) zzOXTQoQQuaTxu%;`{{5@b@4a5=+f95GdHRVg(JSX;s^R=Jn;Tcf+BVf zI3gKv!}gzPcdBc7ZIyPVl+TrY^TU=*8{HkIOdnq;P?(4ld98YA*YX8gFmT)V`s6;X2_)gZL* zK=R-@JaR1@_x>^eG~(oL8405H8y1k|xbP?Ji&_7pa@RtO7~_T>w(W9|f@%6c&j7%+ zupaT#QUUvM&7r_iTs!C;_KM30s<9SI$vW{wM2taR+aKZG^rEyJH)n_F?VG~I{O~P5T|X|x@WxjeRtO%K2mkPximZ?5xtYZ=5tVA! z+;Y_)n5$_hf0oYmXkYywhy8Cy^9aHCN0ZyuR0(6AYAIwsZs@aKX z7YmJrSU*XFN0~LL%A;?tcfMp98WvpC)ZQhhv;FF}OT9naD`KEi8TK9F{C_lA{aA0R51XPZ?jn4JOw4QvY8?Y!~&X0 z5Wdp$67fUD3xq%X_*s#zllHS)l@`e!ldwlmMU~2myH>dH;o{-s(0;<7V2p{8q)SoJ zh%U)`hsv`z?S_Sd4*H}>y~MWYw@W79E!CAj0ufBQl(Gi}X0xcg;ENcHRfgb={wi>*rTw3m%iSTCE`buXfOfHQ{gT4zb|*UMa@isN(AHzeA8dGGQ;$#@Rn# zZ?Ptn!cbptK&B%-f-6{bs>y6=uj>oNp6%MvocR*(q};;c+*6Ee9@@2J8q5<(DVCZ^SdLf3RL9m1)f-V5C8r(m4#7l1F>5=kn&AVr|gHIRv(QmlnUVWI1LGavgt z$|JQ2!=!k>S~eMT&!193yC+!nL90@K(=!jN)*wmBiR&Q}$K_c0@Pbm&JXAB5h0ch4 z!tCu21sJm-Dy{igRp_q~vvasAgs!lrLvZs=C5iNR?*yd~rb?PD=TgO~oEsgTNu~>- zgcLGTZiDq-?u4Gd=(aovA0(F4jUI&PG=^!ZS5&i`mA-eXFIW7iX$xQ0BJ*C*%O*|l z);>h5@50H@kJog5FOIWRP0YYpV_Jacw`1a)P?QL11vm|fGNaiz9frAioRr*b8ISug z@(D!D;!E9Ed(=MKJ-?_>(a^3sRu9P`p`6t4b@DErp=*bn@Fjt*5^2qq^_aJOd{y&3 zlo%Clj7CDIK`;aA_YKC|wZ4?8f7)#TKiCTOiVN+nuuOubIqZ`;{);E9S!b@sui+<@ z-qA2V+K@^`39kQ+Q{basYwgY7L4&Y#2rbz&S2c;u*g2WzH4El3rC)9GY?BUAN%mcd zT}`Sh)B_A#KO=E!05_a#ftDYDxRi?H@|BQ!->!_4>)x|bpBrJG-{P9na0)7 zxT0d9=5tfAj&%lE(3&1RciUezd!Zdjt%~A<+UVP%0i?x|ccIK&&j4ImC1KpnbEvK* zs#S^$)oNYYgCc1Sc7CHe<*g?(NaPYjpz``{2@*p(T&z}p^mzLrJai=<{!WOc{bs2L z$qgLkKBk;U!oVtD0rPW1>sJwRe{DbkEx2;5>%$dcMTu2vX$evN8rdSp3aosyESGy- z?HR!apoDElOaF1=vrVfFF$kvO?|Du65~%VZr<7UgA+?&kVYCP~97XOYp$iIJo?LUp zIIp#6Jtj81;V>CvxcQGe-ENIq^ry>(br8?XVuEI^6?|iHz=(UQ0Q1s*`n?}5z=RBU zl<|`tl0d}sH-?q-EO*&Iojy;yKV;UgPqM&2|9C{WBB4gGx{oI!}{g4n$AC8*PgC`M`+96+guK)e>8a*4j+dYcEq08#RC96*y z#baN5IJ@NAe&g?X^$rQWi||L~4!-4&uwO{H9cy3HD1-Ez`!i2$4#t_hCbB$+Le`4Eau1*=jw#CZL{})LRs>r$7nB75ZA4Cy0_R%`f5%qE-&uXm<2HQL53eG!(Z~3FHFczAqc>)JJAxsG99H#}Y< z5vs=27gy>U&9iVGo&~*=$qPio=K?BPYFAf9Np`X-c5GgICr7E>Djc=TTPu$kfrW$q zq*5>6mjcJ1jLGT9LIq=9g6F?5Oy9^&T$kL9oR`tfzpknr%%eNz|7(IMbuu(~+mv1q zKg~m9)#}DX2@^gb8i=8-cxqDH1;2RU zqf0Rd>(*TmyqAw#Ns(s&HA2l*?I3TJM18k%^ZcqUa**fh7zX6Fq_=S(!?P2i;?Z)q zp8K!ZED28@mjy;1>2TdKicS+A$jkf1#gQ&~r!l`mYRtuQ6FOlW2U-T0^-= zjBd6jZRAy;Ec$r8zW6kl*F#%(cxKo?Twh<~SQRs~KVT|e&5@T7p9hp%v>p>try zJ4R;Dsbyib8NuZ)ndbMccCz}Mq$`b-DeWoG5>n?E=@n%&o#bI6ZdSlop zbv+t0elwSjqIO35pTM?v>-@_d%~z3Yy;-My&k()>xnLtb$NZ}`@qNncxz*;zl#qxl z=sUTIy#-0^%x(5Ws)7!QG{}7lT8DlQPFXtY6=)BkDzJ z25fkae|cC?rkd~n7H31xyBM|2*6u$~G#&6znjj497=-+-c#yG4Pq)zcJMauNRs#5n zpF2w9`qttn`yqZ(PqixKs#s0cO*sQ>3H?jH*oG|i93nqPV^;2-6D$o-r;}AnS)_9r zrRnD75MyrW6-k!e&v>VD^8o2{$p#=|R#d)I1(m!)A@cP zhQ6M%eJH4+ulZHBY)=MTPu!-S0uxyIj_1Od^$vhn$(1 zAkSs`nkVrak11=*+EME?{^IDzdEC0>!|lKDZf+=sS}>J2TN{io3G5R7olkY%Ub}YF zC%1YP2xbm2mSQ-}EVVuHAGD^MDEZY_a?QR&CR$}*tlH1iM#qmrM)}e>fJ7PHZKTqy z&bZhmK$d{}?k^a^GG}4=`(*|$$8ADlf)o*6rS zf5EshR>#*lOXxlYpqD_F1|$o|fD9BRT2-r3@YjGnz&(%e)db((lIIse3 zcJI4#nYAo?!4%EZ?Xc_ zodZvw02I!URyx@i(LiD-36Ru^2CZAb%{fu8^7iZU3`H_NDX&oO+9`O3a z?76R}4@>Nbp$AF(;9OUeK$=LId?;BA?whWcPT9sU2x2W8lOG!y#@g^q47N-oVxmHK zrKl69kWdBz@c8z?Lyt2j*5(84LnO1tVf-cyoo=KlR_2IP>L&uF!Ez{W*#*3aoxdwy>Yn{($WJkeT^TzKdy) z9j5!UHBG0j1i%(y=9%??Zt-v!L^V0L_hC|;?xEJbUH9$<0+>j3i{ljYWnM8ySQtU1 z^Kho$A4F;%&e?D3?8rtxc=#Dc{UfLJv6xw1nkFKzxndH7AXc8(10$k>)y}7xXC1!) zX@0+B)x(OK52)hvYtSjRX+KTQCPh!os}7L)Z!}!uHS2{uT-@G{y}|rW<>^jL_=Q5w zWYgEBIn8TI&o26b->1|V%?$TNiD!6MKW^cNH>?s}r!K=c5o`s>wN`yE zbbcXT{u5sy+O(q7=!oqMXRYr+A?s!#<7Q>87igaBxJ4a&xW`Gh^EiG%ep$4WoBZ-E z$|F}sI#7L_sSX4?`w4Ma$zM?!@t|AD@{lMlh{Vt3f0dVK*EkjNI+R@`7cM#n)#Pk6 z7T1Rea<{DX^1V)XwS;}$)OOs#s3e>!`r}+F;dSK3X$%xX%N-nD(;ZIYibl?EHKv@# zy4OBiaCW0NfEM<9UXex-_R0UuO6yv69i%rKE1p>W+Gv zy0_fX4S?JHQfE@I;-sbC#Xr`BJ#CB9q-=8jQAncDE~TUQP-2&EyA}4W{-a4~mX#t! zTr>bk6Lg}2WXkJ#J@y_>u*rTBJQ-EiNqocSkkl77vfclxYe8|MDq;L44{a4;oeq#RD&1CO zwOoI@$2Aneo^+Ei%Tpq}wZqQD{vvPfpp79YHcX|J8)hw5`?}S|SROa;_{z|E(C^D) z_Uj6vjO)lSCtXvXU@=3{&0?C{fpU0krL@sPeptm2)#0if2KA?pTM+roF|vJWGe1^sbtQn3;VX>tTw%%7GveA zVBOWvVb-@pd$M4IFt2M_BNj-Max;>TzEb`~q}K`f;O-MeOuS#f>{{PZ2X(4M`d#j?sj?aY%y~gld60>gm&0iSYwwwOJ96uA~yx=ieF$~|;KuUUx)d)ep zeVD0i^$fQq3GtDqLXww3mWW8Gwea$4xv`ypbSLnPLwE^8A2s9FQA5RVcb0!J$#hBZ zcy!0P(Ju8Yv`NkBzlYUV5dMDsnt094;X+r`b9u4(`5KW$BpLhSo9s)+7Ra}_!~@Ji z!#z%sbCwK*i0h;&bt?d30g>gkxV*=a&om^xuLrm*(LMy6)2|54ZN%kXKN=8e+gf}U zK|UI;OBqaEQ~d_q_0fK=UeE6jsCRo?=iKV8mV{ls0?cBy=j=Jv{ld2yB%G`hxftv) zu0!%s8cpyOYk-)Ymk=bttH?ieqy^O)%kc$F-07!)^Ns*aOfbJJHY#h+|Erel4ZNXd%q z%8O^}(p*|!k1p>=apAOZ-pfNMHrQjA55lnQn37n!$|VqPr3Wx4PF@Dk)Wc}#n|R{- z#g_r-f@6-vX@n3fjIp;d z*UA-VcOE29FWQ=4c&7w1j4I* z*V~(T!79+jJ*8UlfaA+w72JAx5$187RPOEgveG|TCD=;3r`PjI^A|7%q@KK>@c z?Qjmhpw`)s-;|ZG8=?S~i^*!HT8r+zd}NB>u~_L*Z^)!Ed?DESIfu#X2Sm1)-9})F zvDIt3mc|F?i5o<kY7jm?V&KRS8hn4t6lAdWk{e-{^5 zh{S|iR7upEB(xR`lECA&_CNmIY)Gc{!~-ff>NEqyx%0b9q3Wi8^wR35@LE~biotQX z`9H2)h?Vt1@M49CcF^{=g=@&!P3Q2J!;L!gXma}S`ykz)Hzb9}gr7!R2xM#`AggE$ z{_&&gn6F5#jI}@CLN!Lba3pL9jIRC+iF)?tLjnh%8fKX9M*hXujwhQQi@Pv2&{Li$ zWF?_1K}wH^OIEE^-Zb6)K@Y)JL}u(gL*{Uth8u;Kv3DYgHd9@Rv=?M-*W^0MRp}EN7-{5!6PjX$)*QhXu(WL{OJk_ z`7A8o9lx!;vjqI-p_L#z`C|tv zwVy7#b0K?0l~3(2W}>C=RJDQ!=^Ed#stzbyGM&20($ItlBRhwE2o8m}ZwDaJV4m^s zJ2%<&B^Z6IsaJxoMD?8vnEPZWSLwnQYkguw?b*$)^BQ)8&N1#c{`NJ8$qf?=*?EactTmq@H8@H=ZmCJZH@NHYx83E~N($gLmy@K| z`aI*g$lAJMFu6du(<<% z#C41F`RX>6R@P-mxUUx8viT}Aq|^^JO`5gW97nK!jlXuEChQb2Uc>{$BWV+-)h;Q; z`w^c(bYtnW`_tYNw@%6{G0+Bno&(KSm{{9{&6!~jqClS&D%||xRQ;HpAuILgboQVN zF@10yv(4qRTVtBax}Ej_zta!dEYq4>m+hkd)>WPL+Fu%@cM5wuag*wbkE z$6i>QL#z$!L*@18$H(ghy`9_#b$7+L)bzKGNAXueu;XaEV0<(UBf*03&nDC93Yd$V zml=N$ZPdQY;Y>Z)A#(nfgVWA>L$S*Q=c$&jcwllDo@@Sg2avrb+xn95>Q#1_`GCU5 z9Ds#zSiE%7TRtNcERJEhTZktJu*SL6$%h26cezqv!aTxu% z_{#7sk9SiI(f__4rx*nDKc3|b0z*{QpK|?J* zc+hl7c=qzwa>obT7*SdI2*%OMc2xIh0hg|v{6l6b*tbXNG8V7i$XsTSJfZyFU2%TU zQ1^KB7K5B-f}X-9%;~F%e1&xI_~^m6(KYc?9<%euw~ytS)fojgw@__Oeqr&OYp2hk zH%CtrY8-xllM%3OG2wRAm|%%F;$9jXrI^TgNWAW0gUCrbLrt@TD(eR zP|tTWFq%@jBZ?8^8lE*gnRQP^3N6}{6Rbf=3l)Xy(LR;&VBbxVhuMxkk1$F%(^L%$ zke$V0-nq%gX?lC=XM;B>R8sXY=o81)=%nW|UXY;@1f|#$ExKG4DcvD^&+yAOuJs#K zx^xflW+k+o^Z=7mUJSTIjZwfpob_l69w@s*bQI|Bl~Os)p@SHFCv!4c6cwLO67pe0 z>?)N5#_~KG9eAJF9~L_GlECqgNf=?cOaXcU)Q9*1(~{R193AssC)%bOGMLDD;O(J- z12`Q9=51Jt;G0p$Odeu zRuWCRd;2enBV^wdf!JPXTekAHjsXe3xZ7~86vUN6pRw!>c#*^^S-_E2{+qo22a>T#jEI8;gl2FT(?yNWU-fY;u~l1|)z zNXu+-?T477wc)_TO*>KUvMZf5Bj?`gz|6Jgl#WtEg!!aOvcVexpAt!T>xnyQ(dh%hBSUEeOp=5D#{S9D%r*uGg zCeUjHT@y)4+|mu@msg>xr+Lp73b30Ky;rBR?I{t6m-=$i^A-R;e$cAS1TV7WWA=}} zv&pn1-fN@4S-9m%!93-{2?+lrfyH+~M2`Kl^>wp?eobw6&Z9OBRzc!R(Pv_IPj;{XRe~Cp4UB6MK~j4z?>$YI zUipRpXc=+;1H+RevCo6AZ%+Jb2I11CF2AYccxGZdmWb-*XMaLue26VrU%EbS5+3c- zqk`GF64Pjy$;Mw^0t=I%A(SGlI47cY6%;>Q-jC1z=t_Krb5?3>0Z7xOnl^z!!uods z;M-(>$SSa1F-osRjL`KtcN6-Wig71y5ntcxfU&Bssz+;@tPnU&RX z`JZmGb_lHWu>Tz4LdxUB0FAPoZ`z0*`?vHW(ZKMf+>%5L|6SAxdC@a1YT`*AqlG*z z0#EE0&92`_O#X#(5JbiqNfI@JA2ZjyeVdzBCpe_T<8O8*MV&?i8ece?%tI(&`I z#}%&MRGa%o>zXGG8#Q%)Y2l;j>U9IB%peDwa3Mq@X9!BjBwQUE>3<+-A_lSfYF^`S-!*uCsG%hE8@XEJBs4QxjxTI1`}xlH+%2A zA04G2nH)9qDecYxqv0=L6VxP@cO_dK5=g8zaDO=!VbbjXWQ*z`sCi;_W^r6zjGf4I{~ob$wdA{|j;#wjyFR zocr+0atv4lW~fhIO&8<6LNp1gO*3QsQMUwpWT(r{4SnNZgVb+)?s8+vYI|OU#E*aWP+6lkiWS# zFTKw1^Z6&W*SQqwL^gyIofvm0Q%Kc5By&5rWUQgLxnRjwX$JrU_f#A`5$yR6i(K1{m<7)f4 z!CIECDBf}088g6Pq}yQ;_I0C9X{7syeERswyX+1nuQhE02IhW-_q?>8{-Pe*dUD0P z;d^G4+f7b3*UoW14#d(js{vlY0iAmSPoLQZRr~YaO%3#;$PfEB9= zeh_**lkKMXiKvv|J4MDlK7a^0G|bU>dx<{4;pix@ONBkcTdT@2m`}^F`}NtS81N^V zm~30N4AWwQ+6B+byII|+bMxs=w`Myx=ju&}kc+#A9Or{3&O7#J6G!_fpupeJV2Q2Y z(I|q+;F#6q$II-`bP95`J_z=>RP&8 zfo}BdiuzJal=q22+G=ONQxpJw&`kz!P2f}ha*Bi#YUN^Hx)NJt-Yy4-5$K4WVmm zOBWxye}q5LC);?pKVM0irHK{J##^%6(7G`^OAD6_*qj>pp9G14RNdnzX}Y#}TOV(7 zpYQE>#w^~3kb0|3cFXfhmge5l4#6&WTrZ0UJ{X<_jiF-NjM&R67SR(tuxW%>^hv|0R9Y}$` zfVuq*PQ~b6FCb4xELeuf+zH0bcskwk!2GdfFuEOH1)K?X=9vF9@XVjjCB(-L;wk#c z$GZr#R@NT?Nc*MXJom$DEyAZ;6&aqq-$KX3`pW`>?e5p2ZFhhMsq3X{^D$(N;lE9} zC+^SplmJ3xZ0F-A+SEu--*aVH`T0!xg0=kGyKP^;v}1Nxz*F9q_3g%Md(1iS*7G^F zLcY5)jl$~Db}YR*&@W^%s9K2Xr`T?`maY0w;!7t2VCq~m*sE^V{Sld9^n%`+uiz*j z^>@r}%Et0G?o(5B6QtcNu;{Ckc|aLHYhKt;W`wu|BB{5e@O8Z&3iFXOz;z0+kH&Gp zx{qSk^g_w^sI{5|UFPoyXE597aurfMohOI2+)d1U#3a8|4t<)fP@DBYH~x1J$l(hm zf0)GMeBH+$HeFx1Rfvu(*3}AMF|(*F7+AXJYPRlWkY8epUX)Q4Gt4!D(`*EDFejNk zCbnlq^3OxZNKO*I%`;JK>c+lfD?)wW?o|-4CL}PjiUdJAu6oRNXefnor$qY?i z_Y}HNj{)7|TC!Y?=~{Q7jReF@Jn#M5AJ^;oZ5vW9L-;$$d+6T`Y@JIU(d=& z+^Vg>C5iDFmH4dl4~X&mL0LeN_-Y=Qhaz&;5!~6oOL&BZ>I6J0Bj>zahx!nzA)riL zkJEDr*30a-v={fT;(cTaIED%1!QE5U1w3 zRfF(z&1)CL38+T!vAI$>x=~;WVeq(VMIse5GFP)z(B!7p!_8boRRl|gbe_kdhI(pj zytM0+?>OJ8ru0^yfga5;P(t}ZoOj{^#Z76N~Pt>D% z$WO#?)7T{`Sm_aGBoV?qibi(W$qm1L$9%l>KH;+Wjh5}erb+`ukV6+}CcA6vuDq9q-IT%}XjTAfVFjWqc zdkY~S3~6>N4qiU)TZx_g`3ZqM03P@_rbHl=X(PZ?s21>nf1$6cCc3_d(ILdpJdb)T zCM}O5s#=v>C;?2|oX(G%m%Rr+RTsVqD`>* zZBJZ^s~LU1cpK-oy#VI=d|V(MaAofiHy~9fGV*d|E1Bqy^h}hbuymqANG0FDS&|7_fp@bq65gn9J#}?=dn8L1OBSw#*;{L;- zwt-+uAiE{HJsW3yPS~MP?!d+}*B;)j;REF-3SVF-+r0Q3+K6z_%0QDv3X#hHTE97Z*=_u1=hIH-QW! zZX_+Y4KafOCNScENC5EvCO6>!H1U5d@c&Z_z`x8M-Tc3uw4cN${C^p*2O^2C>(E!t z7is$?-B+B@(`-ohcpm~11%pw2dYn7{z%dc`> zSu<-Z;{~;SzM}yl@3fj8?@{()N%ML_u0~(0oF98Qw_h)jRxR02b2z_q+@0HL5+%6` z+@Fh}(^u&cyfi%_U2Sk?E^w?4=&5ekIwfNs*Et#=E5kT2iO++a&e^u3iEI3M*6gQo zO_J-Tm)vL7q1S!8KFwe8N7jlV^?56oopXzFdvhnmfLkm!AI;ZdDtqDe?D08wbx42n zqd(s-<=(&5IoUnlGxeto37);GzEa<5#)SA?y5(L~FZhI^99%`>^@CWluH=pQST}|)o&XMlN7Y|cko_=)+_D$N8^WXk_eA5bqOpo9}xxnpOamk5^6Vv@c=Busj_Q&zpIeQ6o2XZzSELVq}rOe z>-yF0%vhPaXLIZ$Zs^_fr zTVW?^Djfv>+P>SgcM7Es_n#)*Ma??_ih6D16sBPg3qm9TomfS@v(25Em(OEZq5EAS z4vFOTMk$3tz}HVE@Ke6#X+j5r`|J%mjCA!z4+x`rrkxnu$KQngj9xrC{O$?Vbvui+ z!+-kauGb^rcs4$Xk^%X~EmpJt??2xec&|gG2D|o%teveqJl(C$otS`6E*ADg62eRZ zOuz@GXU~}U4g6fKnfP_gZGr!aF3z6T&Ym7j#!M0-z%hDENG5(wYb!f*1s7jnrvUIP zBqYWsF3uz*AN))fA;Rs7FZ^`E*7wJq$eEj|BT)>lzco=HOVU-in$GX4ASzfR$w?)}#( zDBC%DTD$+#h_a)(r}YbKOBXBaf2z~4cDD6=#Uvv9PvL*tfXFvPpUXf%NN7Y@942r> zf%So<44JTiup~@g?n}$$r0x%PQ)Zo;Hwqy4O8z&N`=>Ym)$G45_g`J+*Y~pU{Fg2N zb$U$v3U;0zI@a!rE>5m4&i`0Q@E-#^y147Rnp*ald}htkcfc5Kj#LV>wjwm6>B@&SDsA50>GjFWf4J1VIdJFel2sS zf3E$%49yR-vjS}OuNwKiJghxbbu@sc{-1{1n$?b7UeB64>>P(}Nejy?KPdmiF!aHN zjl9cV>h+6OgLOL*CQ7R}ZMUGQ%8%1FxtMc5h=^J<(tk)JNK<$eCC}Vk|J)+{L*jFm z2P)@LIIDX5va;x9~K1rcI7nFwg)r4m5Zd#LBl^XlK zo*_7OTkY^Ne7QZjPSE7_doz*)XHlK-i?5ru59G{}a+v)2w1mIDg^b4vHCmbuwc=kM zOjsX187Wy=nb#|mO1{xglT0~z{yoT+A);Swd*{w}C3v_)!Y%-x9gtq&1l25z>F^p< znME1fA}E6YX4TT>zEFbX5c8&|6Dp^XawMqeSq`uCv*k$&5<;iY;Z>AY5gLg~<%L3V zQ4h!*Tz^!FFGQ$7OKl)&Y~oK620%D$MQ(0?yt;=YNs>ZX>@=20m0!@DeU7CYodmB> zf)vByGE5z5C=^yB3zEmaQfh^ANGL6tUT%LQDUuz*1y@RPtJ-tiBSA0Z_kz-FycWvU zI`Xsv9N)9Y@qxb*Z0ZarVc(x&fA*AjOLJ+b)l}>?_V)ZNqp=GPC&sWzNAGv)rbD1? z@`nNmSO$A&`}i)E_OO#ndtX-)#}Kwms%IyiMNsLJ15}c45RvG##bDanXGazj`J@f19xn$pqWhbjr+(3;t9Q2a_+ z^tu&KyCWZ_=M{7a0qtnhTT9n7LZso9=5)(%=Mp%Jf+fREy3|ZemYOChD&cln4GecF z%cZ9CuxW*5Qm8siOqZ{)L_R@xfdGupc6pN!`K!(XxwJ}wqL4LH(G-Y6J=m= zSXKSoMneR{;jNp3LjGKD=tW0yc)*b-ShW=qu$?J>tx9}R`4zN`N;I)eFa5aZGkK`r25@mR?UlS`vrm+?>e!Fl~q^=={t=DkBV>wN)5Gqpz zx|V7M84XC>p>I52`cOOg6`3KEX`M$OB#S9wky*#9Li@|o$d9leN7@aNc-SzVZZ)hc zVc}8yLA^}ky>JLel4R;mGfgF2a_d;yLBlW~)e-pT+^VXPLR?YoP)|MO1rz_&8Cp#^ z`Lk%ZQt@SonB2Fdfr&Zw#q#0)Zai>@zvFXHM-N{i{nxPR57%qBLYsEg9x5DT5 z>y=x1_>N1n>q@^Z#10Baba!W49X5#BHL;F!&?E=1An0q1q{Rm^FRZKw8s_@@^qhvJ z8}~%NmIM)_j4y|3_M#t@`t-oBEkxw-zfS!Bmj{z<@$t0Do4$*zX_K3W@eFu;mIr^@ z#ATXn1SYlLcPDt~f|0}dV#`#{r(|TScs_LgIL^=FXCr@KbL#a)(0+BS;14PeT-HU( z_TKdMCI0Gqs^*VeUEo&mWMk0E)Jjd=`1pYfpx#EcH+Na`6Vz;}@#<<+7#_xGV$#`+ zz+J$`9vt+_IW?`7pNW@ciT^RLA9k}=J`(CTm7&AquB!R6#G99X8EpTOIjxjy;(RdS zgxww8O}P#&`uwc4yR)G?E~dE<62ybbd=d)(4Kagu)>v%UVpWORx zEUMb?;Y7SeMS_Z|U_nyqK#wP!AUGJ0VvZ}nhj~779@|0Lq`DR10Od?W)e2z>MzAeg z#k)rpw87TU(rXhQtIFhMwUPUE*iAH6tt@TWs_v}E1VwR(M`Oz>;V5%!ZyAh1xqaQD z*$4g#>K;C-ZqO%d3Ky5~>aGby8Ik(9^`R1)w@6~6S8K?Yy&XHybCopvi^wIh6jiFU zREK?%YS4>$w)RK6JUS36Up=oSWLKVnN*_Q^Q&}h4uavuUz<;8Lu#Vz#oEYxOzp+@c zukd!56-s7xiX;tEu@7H{*&Ket`ZNAqe~tAIg3j^UpeCKKETCQi?>*#Zd+MBx(@_<} z=iUJ`AHm7(!NJ}Z7e00|S76A5b>-K~oHPgfsg+zM};g>oqof8)Tv^s{X0_l5)#+UpgN z1(^;U#G>t>-A7R07$_a#$_7TtaT;N@e1;7bS}#`{v!OVGPi~*B<5E8_*0g(Mv^5S+ zdbv(oQyg7BbY2;7i-1phd*fkC<@@qwX}xF@6r{a&zXLurer#Ee_L0J9luTj=(3=1P zr)+BW4771R-Mt=`Ki+Ur`%@396mt79d@W*Jjsv{tEeSSOgPQx4v%-;ijmNAfS8?8z z6L}l`dyPh2J$L$_P2qzhCS{b|`Bq)xi&oC4MZh6$3IlFxeLcDL{-jHrO-&=)N1wh7 z^t}8q$%nB|!(Z{);(zh`7Z%^nLX3wjm#DsiUMZXuTO*QRDR|(K6RmK^#P{@@OO(gdj%^x5d3$;=6|!lh8HCF_V2k_m6nAsLretAM}8h^OIe#wtg#HUau5t@7w!JdwK7 zn;}PJ>AuUdpN@J{e^;qP*V3@D=c;gG^=(eCKj8aWkQr_8mI%gI>4)1|Zt>qBsJDcV zzeZ*++SybE>J60hfjiZWA))xbj~L;UT5!1$pTtO#+<6=d%~gKcTXAWl;XXO=S#H&9 z88qWr>@eN96*snJi*xnU%hTkMw){O)s{y_XZ)CU{j)1c}sejkpSO9e|R$p$0V~2ST zucso?Mnk|Od64rDY?#p(5TmzwZXIW{Oz|(j9^EieN`joP^k)Vv&y<{th+=H}WnxPL zH-<^d(N3Zc%0G8x_m0&Hm`R=;RFi!y zy=~D8c(|th(FjL^vhLS!F+Mb%G)v~x1)z;kKs$w zgQL7n#+i~^F)y|XPCz1w%_fPfS^}6gIl=CAgYurA`W}us3fg`mU{w_piZ>P1YC(|n z7q>p7DCy9DI^P5F20~T02a?=*153(sGa5XsSFfCN;G$)4rKK{q_`vC+s<;7AJkpy5 zP4RTZB<{#luFPQVwJ<=nFIOa0>?JUklQWL~DBM}=;$-iYKfOCFlNcMj!) zD1I4=NP{eu6M^6gxLhQ_r#{-P7Xo}Fp&G^$)>7z2U^sv2tl1Nx79A@5 z6%)N^WzgH!SZH4^HH2jE7sasgv@94*eMyTQP-DRzTTQzYL(6E?p`=q-tw0tev<}9g zo(N1BXV?lBywddC{d(+?m-nYmsojWjsU%b)RwJRC(hk}e2yH^JYnAoHvWfJeoy+$+ zt2~OkA5c+N6)q0bjN4GCdHE#8f~1RV;q;wf7X*6Nbv_0>-Kedyp|I^NHMj$}$Q@le zmk<8%3Yuh^k$EQ-YKw#>T{e;L$eebDvh<^MXv+X+vk2bZ|E&bR++i#F5nEw{3NsrS zQy>>A<5r-jM(!woPMB8 z4Q9(uJS+y5N&ox`dYp5L1reVPYerW*Q(b3UFB`rcWTcARoWt?LR1d!|t;Oh~x;VrW zNhf#0l2DsrW#jGUjf{|&qz5uz*Nb>bthDL7-*1Y19@YY-&eHXgTH2*Ry5nphnN{az ztJ68w{zKMyjdFC}EFVS9Ku^^&$lU|JjD#*nV=FGJ5>SHLOLQ;Gl9pLQbWT<(B97p3 zBACM9r>eR~a8W%2(p+n1I8sWI#2bD&_(=>HCv}O12Z7%n-s%G$EcPN8Q06OqMFOfK z{ygZL))_Vl4z&q_7TDW0n0tooTc` zL2kn~35syHq?5aVzQ|G4VXoJCh>e$rg(>c63TrWIyHaNVvqkn*5OggX+aiVuOv6vu zF7L@=x|uMB(X}=xZ+N%tClh< zYE_p(r(R1_FE>^fge4216bGg-ie>a>nUr05bkOWCYsd-Kvlc7!@D=nh5b9P<%4b92 z1@GQeE2rsBwF=Td#81T82f*{(qbX9>JVN@n%j-V%_DEgcj!eT3mbbMN{|epye`{iT|GIK10F zFdMEaGu4)S#Kn0&Z+QN^hvVZBeqzhvyvMe3uCjy!Cu4So<)bV^lUkn68m(JMzLN!B z@i@{%+^a4W(;@8V_P?M`dWy}76mGk11e!G6ZaUD#oW35C@-%};sYzSZFGOum1qIhM z%e6Dx^_kU2;PLM^W$lHAckc>i$D_{oL>+O$X3>rA+tD!^ zpfQ{Hy!dLQF=GJj6w|Y=j)tT|^z5N|HrD(VpL$HF&ar&cRj(vd@KM{_waGy`S7K=p zKdVX?lPfVOW=9qbh9lLW%Om=I=nB8$kiqmWwSK0wsuF&@u+Llwq#FoJ$@pE-73?G@ zuGdN=mB@l+!o7CY_Ul<-~Mz_flF#O4lJFTZG#h;rcoZ^1@oty1t)m!mez3wmV0 z?e3knvoX>nv3M*$w^988wF_6>AF%~yV!IUBx%&~X@n*pZ_TZUe=s~aD?@^#lHcZKK zRzL6p+GVP^aiklJec5FP?Xb1Jy?@}wCH>q>uBH@Q(JU120K3EIBJyyy3&1n|Xd18| zi^S6R)+Q<}+~)aH=8lBA2Xc+@VU(w9O(yV63+J{9GK z3&B)c0(NQOk=>8t`lcouS&W)bs46e`>+IL;qnKX^s6!ua?i9>D%y92O0peqhPGoG_ z`qS*~PodbX((Qq2k{w?g_EcMnadaR%Q>WkSX-tHs4sDQFC#|_(xqrHVg4BEGSZW7H z4$7xKzS$4zataB^kv5sK^@4A(KT+j=Hga{8docv-m8~S5qhEFq8;6dc$$X3m6_LoT z`CNJYeQAp#MI$=B_&};ZW-YJvsCuf`K`NUlb4Me2r?$c$e4MW}S4U;UF^l2gJxqE@ z);Q>(kd;kb=70V}sR4AD^89l7dTmR-&n(+zns&k}`)JCtpdQ4}uBx`z+jrHNe*7ED zCs)%}_Pf~B=QiAFd&J61@se9S7K?*hp7X2=)=y=# ze9fg{v&luEf1sC?Z g>%vUlqXZ^n*+QzHR2=*@m$Z~ow7{A1uZZp159V4wC^3~@ z$;J45uhY8ct_CP&0<$;m-RGW@;i^;y_%f!{YPtQD~ zPhMK(*|ZBYY%iL&@zplmSxywQ zbB5iMhuUJwqM_EP>ctDEG>BZ<)H-vxef{t0K*QfzhI7Q*N9bOVTO2YS(y$j~BxhNT@pNJKPWolakeh2oDBNa}vc*@j82E zyv<6(7Y=|tW8m$*gdK$>`S@-Gdsg!SoShciw7!m^!jKfr;b`P`3qZFfdl)^*OI-@! z_-xEVEw+EE*=?;H?d7)nON;QEfd_o849cj7e%yYx@kX{r0Qa#xjW)%d4-++446Wk8 zxmKYm<(mIspA@O=6(;C?`TDX}2pb#79bY_BYM=p<>-kA2w$B=Xdh@XN3@Yh-%6)K_BTwezVzOR1uz4RW5OrjWU_? ztRk=v9rYmSZDABBxd~M*IsWob{WETh>*t7|ciSZnWmiLAi*O#!AzD`vhb8Nl{nOTn z{lHzWY2vo=7vpdopK#E;8y23IhDuyav0*pO6&gz24;FZM65ev-qUG$}+>3<|&Hg5Nd)kD254;|NFivG% zDHxu9EAAB4&@=2ZXjCqPt&o(ipJchjoZ%&3(c$U55cAM*aMF5Vl2HQ@CZJ7SJh8R6 z(#9)o^_`{Ev#$dn(R?thjDP+4U8(IaBs6Z#1L#4PFK{I!G<8?eh5W2$Q4Hhw5%nU7 z>AXsI_{1%zb%UCIXOQ&C_$#R1(uJ>^)Gv*kVx2zw(N!}@o@$WaxcEa)ewPcgq}tu< zP}x&h7PAxo|Ha;WM>Vyr?W4Q6H`@kV6tE!{iX;e%G^yJHNN9p)VW=tu2oR7i{U{=b z4#9xbNQV@VgpRDB$;Zt`lD{q;@6nx553k#&R#Ce}8VQKxGHIXwM`jLDgK@`_H$v1@xN9`TWb zC-&bF{hj<;66T;{kddu#?|6WeTmb3_(qFs8ULY|Eww|%hoz%U4ap{VoFTNKV_36ZC zK|3k)9o);Et??^b9VHrREwh)qOJEg66Os4N+%}I&-G>yHP?$a|x*AJv^^LrUz=lNt zBEEOzu9s{-xPM~DTYv=)yBJv@ zTA4X}+dWo4+d4jXkB)CSL!r+MTrmI12)vkKCqX7zWC12Y)E zB@FaQl$p#@4iH>&an$8YJ@)sxZ;)Kg)Ztm7@i0dL~Wn;89J10giBrPY&ivN276H)^m3A!pG}pcA?JP{sWY079|_ zBFEE$4%m}ny+wk}r~SdZT@FBjE7m@vA~`z4VyZ!oQ7Bu6_+%8ncC+G8;lymKi`*yB z#+`hfI&8H_!B6}_ZQJRTb-F7*oaQRWc=6Wm&S|di8?EF@x4stBYpsc+_eF{p$kZ7! z{b`&!q1%lU4s@P{4!H44X|Pt0!;|wt((;BL?$Vf*i!|<=zTHa91@!jWFdR1bZccmW z1_qnpC#}%#76?XkE|lme;-kxz+FlarVFkzZr5i32CvGrJT2l^4=`o33_uE_TORb^q z0HdI;iaM#)mQS2ID-HvadhzQVd_L3$d*+lIV(!bANqs2V$sCd%fN-#&Xy^4pd?=xi z*ew(gIwdwk4wa?Z4u88~V3E8kVrwApae5uGW%Vk4ZRwWw`{c#02p~{bxp)^67%MyA zCP%t9DiUEgm|@Js!JG4jQp5{pdZe=9Jc{Zn$78{`kV|D0_cw0axJhgsc^lvk>S$tY zR02p#Z355_wG8f8&ivU!Cz+gV;&tZp05M>)$SMb$>}Xw@)(czNK&Ybu?T^W#1;@9E z0bhIOJMme)uzBRFi#}93@V;r!jmGR=>RbW$4O@hO0#G>Y;Js`(=o1YrMFd_by}kP2 z6?|*Z!>(qQ%0LuF{hfO@zY9i%mlOrRbO6X=f@R$dGUh5}9_*767{IIbq#Rg90M=zw zVNSPm2%tYY7-8N-#D{$g)6B%aZAV@1KUymllkYp*_Xjrrk|ibd$=piAG7ox9*8^xr zf1fpif-OlhL4$?8qmxm98yc7nrG#Ekxa)WNWu0XvYZ*=36>(YH8M(2UBQmJ=w|iq+O-K*j;75B{8la6{zEGD7-RlbAec6kW3UrbO^7A|8;&&DeIql|?jgaP3U^fNNmsF5HSo zq1TlU+V~?-jR#;-opD)phV03&9d7Va<(HC`vd3astuQB4P2=f>LT*~bc3pBSHpsKM zs0Y;Ko309oP3L4B^70$kh;bYhPHfCT+9cpwvi-Hez5}v?U`*Gj*f5V^i8cj4Yf5RC z=ex>9-9U+K5nZHvibs`Cg&m*qi!4NJ`JdLTq~mE+s<*^kUy}8mY0yvgmjex-X5=P5 z6r?(olsXCAk3g#=Xwx+!2cPQ`xLRolzp17*8(DcUzK4M#2YF?4Tm+N$l9| zuZGSZ0{uaS<<_T|=^lQMGYJGUqvi_$ULJ6VIq zaraiNFF7?efp(G<7TfmJ1>U9q=OG%;P(N$gtM*)oaN2&AbrY@vxv ze>gRHHl3%th6Z=Yx#ltd=Mw9eNu2|UE}%m!U>VOA349JiNlclr6^d+(_vk{c z_JYqTKPtPO(2jo?qEz;A+EF+s67upyoVTwUoyFnsEDIbAD0Ew#H3I z!vYl>ZI?y44!46QB-Ll$ShH7EQ`oqX$h^ z0FA*l+;`1#uev_X{+-YI>S8SS?g(u_%nR5u4GKMZHF*BkDxt>-(|;*@>~PxVl|?7d z3lny6=2V{%$(4IU0L#&Q#Uf}-EhsJ{Do&0m42nwl^HlJ(O2h5zScBq)<}Gzs{t3jz z*DUiz6&m-i@KE1iwcrgi$SQXo>Dr}dGgL7pV9AlIbc3x4?%gqa49_Nw<;JWwe{bj3 z^NkakRm)AxnJEP@1h@F$$Y1qQZ-x7O?Aexom1@p~%||X}j@B>6QoFa08E3L0pJ}$7 zi)nmcXR~-UJ)QBnvKunG&Wdns-Ok!txxQXD(7mtiW}{&LSnK-u1gY}lrR%^Cj}zV= zk1XdDSva$r)h1Iy5_%Kbj_x3XJ$JKmwjU2QYkF^5#WF+XLjS13w-d&O$1Pd}&gz|( zCmx2+pKM71#NBQ5@oq9be(-N=(c-H;uDI$fh*^!`s`h6Q2QUaWlH!8|YJHJkmlSQR z)R`f7^s!fST^`Oo`DBrm^Vk6pbV14Zw)m=Qm+ne33a3QZ4r{p?ZdC>bVAoOUVpMa!X%JYDFR4VPCpXcP{7WH7fAJs zxgmy!+ouxJ4!WtYHsYLAa4MG5`aVr}{$#zjDYiDazcu%<*HLJ$I%Jo#tN%r|F~^~& z$5`2;6tR_3r@)9Ojw~e4#t>Ofj#&(<OVaV7z!S zsV+;{0XraMEq{zEUJKK^(OUTvI{aQ#f0V1LpRgWt-p?Gu$N(AmB;0KDT5A!8fvTBU z1HY}J-P=A{eufugsk-In*>c!RDb`sP^(zWV)dB>7gRi*Wn>TiX4ZON^P4 zrY+ls;I#|(o7uf8o4)0Cd@m?XgSpQCfKH11Vx8kHP^1kq+IZXmyHh(y1jO*#^9WhL zodcdx`@(oEqTg=uaJA(-Ni09Oq(iJ^Y<&?NR7;qCKf9Q!58d52p6^;BbMZG>f~|os zX147fo8-l7KcT)+=sJFU{9bBA_xSU>fo|H_@G}C-Y-!H}aNEJU?L)6469=90K$y_y z#$`=YLCTg1P%(yaS+l_EwP@nIs5Ln3+LBj&b+rs?fkoU|Hm6`hJEAJB7@#P?DF{0I zxexD`hKxo!uB7ev+lw3jL_8B~DDDmjDx7It-+>cG|}nJH}Yp*?KT` zE9B^m!qc~?z}}Z(4}nj@ymYkJg7HZgxGAy(_c{w%qUrS6EgODPa_%82{(v#Ezzuh5nAPm!FE0gU{heF2o$o`E%^+%mt$GIgg~b{ z`oPeutkFd}xc2lK8bCSTdgu>HN;biEll{>pXJJ*>!B zoizA`b{&*_ZJDaz6~-h?7sL|ujARm7y+23_iuW_?Pt=@(a>-=z{O-TQT6{yV5Lz>5 z09U!0b__gNzkJxmm_qbmBe9kg)d3=Pz15S(eVoDg=*GVs1TKFFhcOb7yG1;JgV&46 zg9b_twpG-hcji*mo^kt)-XIXS3BP#Gf)h zfezr1<4yw0zpm{*f9A?LWtFCX?p&+aTES6P16i;&vLIP+s6e{`RN05@K(B|LUhQoX zcu(ALE1I}tp!E10`;x@l$hv!(i4ncnUc9@()jRckc-SIIhCd*-zrA+vch?+7L!B^> zCt1gLHqU;dPcZGIwko2x-~F)HX;dNH1Ma~Z{i=Gi!<Mx$#JQQ=uu&V@vRuq)H$jy0obTqm0YPpN5igCi zTD8-kWk{d`06luI=~x1rNWP1Mp9Vw(g)q=~UOQ?YXs=Mx%Y8I5_R`@W?~vk}zjZcN z|BNLr(Rx$EdE4uge7TFi3b*A8ZZffV?fTJAC^cmnwu!Hw%8G+l)B_M1R+!8`tsvcb zLl7s;jGS^ZX`07JMCsyX~P%v}Za9<_!LlJ+NOV9s|#A|hPZ}k$uMWAGFB*j(2 zGb-$y2&v;<*eHhsT81gnEQKOmT!x0>o_(p_c<mUepBz3<|w-bAL_^`e|>+Er=>UqpEfzS|L$u%c;og${UE7VvqcYP`Pog+F%6g2*>Ds+eJ+U9Z z;5j<|k=anP$LLdHe$%G*B0HFGfXs_(Sa5FpbKI=H-Vc{GGTWdb z@B4Z7LIgBIyjVZ(%@y9A1i{^fH4}e}_Pejbeq}GFflsHj}s7vCv&5;LCDa(;Ao6i(&fj|=k5jHUc?D}!hP`q zqRabbHNqVVKH%~@zjg|>i5Nc2rC>nPAjB`AXXA_r_kp*|XNLy-Uw9l@cO_gU?;eD)|rZNVXp4WXCGoU)-I zu~bot-7ng`xO!%jF=NcJ=}H1l_-w8Vi7YG?cZvCU%c2RCLeiU zpaC@?Bk@JTS+8q66a|)dP1If)A;)(3b_v1~z{noYGzed6KNy;IVa>Fej0rYoVzY-JyIDo-Nxr01!%BX}%>5QfVg*df2)2`-8Q8mQD7b&XE>|=}<>7V^C z-WnV0J~h2=DlF6diBL$<=|gL4G?cF@}9?;fHMgX$Go8+;lW!ro8uGXz?c z39$z`Fk|U_Bx4O>sFM%xcdfnev?aP3DRW4QQrK#%C2FgQgWpkc#d?P%)tB*pJYp5LrB-QUvK89kDbB6Ro&~GLD16|C0B_W=O>HB=M|fY+y|lh<+}$4R^ORX zzsLFNw>5UXsdCV`vMZ}IJtw~@K`Xk}4pnzS#=q%j6=%E3{n8;a^L~rCq72oOQ4;Hf zS#G)_Iz_K_Lo%HwO=kT%Jz}>Fw~1a73?o&KgTvN9+(3|F!!Mw*FhO%%}t zZtpM7=`Q|gt4;{yy}?VO@R>_(7t=ajo0>_c&zHAeK=@?#`@a_ozFzNJ@cz)!1?$RK zU(Tv&Ui4xUvz4JyN&21?SlwHyT{^qY9{YJ?`2=&cH`Rhdx2wJpg-dM1z2gM|qb(k2 z8K>dJR1iNryNyf~)%HwOYYEzrRj|w{Zx*r6zE3W~wx<3qzk4@>tz z-l`JPcBDvI3KfH$j~^W!8zq|cA^D@!VbyvXcbKkZj=V;&rNr~$q2`{O!|tUB2V%AZ z2!_m@A$8;F6-|$wtI%==N6lqX$9g$%`M|r^a`kBVOOS(jeF96gjQhUp%2<%OlDhSg z!9|jZdG_!-FB~?GeM9YX7vzK)ddKHupuhwO2@|JLPnX49ds%~dH}cs{F30H?#+&#J z1aI%f+rQ6nOEn0y-Egbw#n+ELw}@xhBf8*$-|R_Lv&*PN#b@u7z&3jvPGFb4R_;>{ zwAb!m<&d9r#bh&n&dF-W0J^y#>JL<}Mh?v+sS`A?jp6~{COhY5hgp1j>N~1;*}UB#=#gy$=Ke z-QCjCFqK=*7?=#}A4w^)I){+^Fq{p)r>i%X!gN7C<65cV;$0Gtqtp`h16PTkp@LKrBR;>>KgoG>@e&C`DVFPF#49KV;K+%e3!} zy_})16a_-+rG89*zd)+2DqPv@pKBs2uNJbLdhklz=1h3L2dK0`Kt=8vRzMYO_UBkOPH0wL z5rSA1D)d@AA`5%P{H*!%dFk#`+xPH~uR)LA27I3wj<2Dowha$DC)8*;M(NM~BsJyP zjW<@P{3%x%Acnzdti0f28l0Lo5YVX`ge|0@!T465HZwcm8QT6KPXpquR00jHxsK#a&6e}HHr86}m1)#{fG37{)QwY&^j-U~Ixeh3 zRrNp4D^<WTwP8Wr{>B@s`#Sy7;5pk;#j)eJ(I=|nKL#G6|B^P zaf(Pec98DKmns8gLIA%lDrZW@{`?t>Csn~`c1xm413t^@z$@d$lzm%+dWI)b_L8=- zb8I+>OysCM#EC?0OLclE5<*N&2V2h*YCAmsMtm_*>mS*Dt;gFX@SpWJftxd)GpUTeE!H&` z^-`zx#dhALrhw{N83kmCyI){__dslmF!v|BGVxUBq~$8-GtZ z$xEZlLrc4-2ZxH0xE%6u7C z;oSmk>Z;!JLGQauDk zKTOH?M2>b6GgvmJrb@2Z%8Dvk!gJy@!PmK1#!%QXE;^%;NNy3E;%6Y zcW}vOy{pB0A2|MsM+3BxMW-9f^X+*l% zrD}aba`0vbH6I1HG%nf%UnMkEG~4)$ZY(x0 zm6@7#!P};qBj5LA5V#*@&5NZn6);1ei00Zf2+DfnAb*6v;m`x|zR}WqC0%mr6DJ@} zpCGR|@%|pFF&FC)%5Khshj>kB4~A`!YaSQD5gaS;WS$ZsVJ?>n(-rRJfvTe%;+LN1 zXn=yAr{GDBMF!-UUnlt-yv0g!JY>T)D7bs!blJhRWLIP*6>pEl(h60T1~dn*`Oow` z+?!a>>4o$YAGr}-8J0L?U^xPgfz!?BHr`RQ%YUQR+)rZ&N4vR9d!+rsNgRVXs!rpc zJ>b__qGi#fI6w@Khf*LkFlh>O52Pc2-F!e=wkXau5EB4S9BO{4;b?DTPDICmnKCpT zupHTK*n%k1`{Rig7^^cNs!bD_%|M+_jt5cw!Rk;ueRK1B24)A261zPxBG@Zs%MUCR z6_dNL2=(AO!B-FrZB;B!l=%$m05&d28<)WPN}aONgPjm%nCCO9n>wLXilUw0g&!A@ zBXlAHkIk4HxMeVM7PlR`Ak+vTwm+qZYEj7TcqM`0FFFFoaSIV5V4~tHq8j1D#j7SR z2aYPcFzUe^ND~vl0z^a-v^v$HnznfiL;mK&YE=S-+b@db*t<;qHtwp9s20nYryq;( z>h#Elr-4MSK(!0MBclt!(1$j2wZ1glAsA&FiE$Ik1PLA#$4GO*2HgD>QSzzB1+Mp2 z>Wq<9e#;3CffD~&ic@_lvsa|#QYdhygj4AP2d2Be7&`5{poz$WM{F9tk^+?o^Usrc zRQwR}v;1*WY^^GEoLR3;(0Y4OjS$&0+RKdu@f*%I(~FOSdU-@AHP3CfrI#l1OH{2X zLa$~qL{dMP1Gbw)o21`E!P(x_8hHvU97_apbv7370obc$JuS);Qj4P{VYMUUW3v*! z@i@8Dpk|j4{~AN|+A|H-BWwt_DeLXS>Q(w_bD|owf^iYgOTG^|V}nD7Gv`Jth}=(e zU5G}PhAAZieaMP8MiXyhBh(WH#x0yKIXFa)TfTBM<;^U>0MCd`{VW79fN)X2+)~z| zOgm3_dU&xd8(dL9xwwAQG!>pg)ChJ)999^);Zoa}(#bW}V?WmVCRy0ZI=%gMy2HaC zEVjfl{z7+pkU}@>TxtQma67Us;Y{l#1PLxSoB z4;xar(Ri{cpLo&cKk6_HTmJvOspRPYs2z(Tx^C=L`I{rqWK}S2v(czIIduK?f<(|& zLRJ;EWf8t9B4oFDMXrWyZM1GN=?60#4B|$dBKL@UqYgUlCtUd#zI5-F8R5>_&RJUW z75kS2GrEI8e=RLM0c6CxqQq#Lmfh)LZ9tFFleaB+FuGhAz_t@CdyoZl9;oYPV{IPv zV1uhxo9xDre9$Gw9;-zE<|Yy z|EVSY55JjTX>~SVgBrRY*<}5RblUx-orW__Z#eIpsas0FixHQ|U5s_N*|;7NFi?*Qr=4k%lc5fa<-DfMsb*m5VrFM^q`7>9uIg`o6@cPdvN0_K^F z$vE1kK zPyzZ^sf8!adZw9V*vcT&jPBhl<~E~+VIsj0{2y5&+WKui)KTw54_uz&l+$lx@*LS?XDhiEpWOxdiz(7cb(5eWIlm(E zU>1xuTm04KI%aSVm}J;V-C9WpRuOYiwPU?^1VnP4cOqB+RV@eK(sq$ls7q=l{=^hY z&9%r>^fxC3y;3pGhL>+3ObF*llgiLCj>%qENw&w5B8x{pvvU2lc7Zugl1Lia(KwYC0_F6Wo@<;!q{x`4PSLJO4-ljXSf0jq-s>=%|%(>NnN2ZXe9NQ*Ez>_u7$g{$;3%0;NQ(B7=wtD%=AONs@lD zc>xA8T-8cFUcs}}rhQc;Nsqxh|I>Om495R^KL z=ndm00pSx-bo~R@D(JqM*!`ZU>&3NdhiWQMb{(N}s_RU4k6-Scm#tiI&pG9LQx=Lc zK|U<_S#SPs%I=30WIMqj6OMkSU6DvKllC0d7;3-mCb)%~VV`P>1?H4pyk~ z5c$;s2lt+Me|m)JR}9WI#Hthjl1K9e1X6q5=#_C+4dxL_$uP?xYv_AgyFxbH`^*?q zVDjBFkXI9}3H#9cC5>3vaQ`MB#`9It*z0T7)BTFdnf+&k(td1sm;7VQOj!u{;ZhaDtyy;Vz z66+OTI*()AK967DH3>MW;Q)x6fVl)`WSymwv%$QaVqG(%5*h)-(1bq!l0+;JMasX6^Y;w?Jme1nVf*gLjfhd zcoN%~MQS>Qi18#t(2bfjh!+J0j=Xm~3V3=Ctz%W65tQ6d*92su5b$qMkWGCNw=R5+U?h5^A=tBunXFWqu~Gz#G>e;*ft`qCQ2p$Md`a+uh*wv1sH=FeRqmOf=?$3gam6l@qyOX z8{00Tf=DY~dc}@S8G?6;a)Ie9Ut4zq1goLi+$;76MRb6vNw4nW7%?w2nas>Ay-p9Q zN->L(lB-r&m^d0hM>UrotzlZrQH?O^dzx|iP)jx4@z{~|`g)Fs6giYL)}U13fEsBW zNNx#wJO7!QkJ#FFIf+v2utZ5WOj)}+3~7%bFP@lVoTkC5`rGZ;&vN99RizKwsrwG3 zT-)2&-oEaUMT%{5a*ujTl({8z&AP#UZM#Tk@jkZ57>ps&d^=|;Z{_&b-XsmO{*hVq_4LuQn@Q}JT#U`yCWbZg{{W9z1i zXS0LKnkh@Ne1=wE#owNHixNg9629!p>~-#L?0t*MG3XUClpZhIDO$GeENpG>jfJoN znY%B_E8jp}{^~Stcd2!UdtJyWK<(0uoleY;*;KWS(j|9YRHPz9d2Jd?Q>I>CB+ks7 zN>iKAE=oD#FB=Ejn5g6C_)VXv)fkuGT{dWg%+G^j-6@izo73LY{58hanXW%p-Z$z{-ws83U^R*U>a6Ru2 zAr`l~xnUc7oy$KmxX6o+QD8iHv)Cb4C27m_^NxKT?X-rk9%5GofDV>MZkp3~1g4oC#ReD6UuGRu z6nF9pJ5|-icR?1HCZ6#Qv(vBj?8FbR10#ulX_N8wAT7$IEg28eqcG)A^a+E-dMY<_ zBlM@2vjk?_)}vVRfwtvw)uO|1$^_~jD<5VD_ia6_#W@;_txxNOL#T-?{VZudCyxIn7kMt>*+AQkF69{yvEFnok@F3ZR?dc1KqNn3yt%Ax75aCJj1MW4v zz=lilFNhj^@WZ?{Ow$K=k_3*Hdwq*|{Vj950B6u}jVEdVvRQHeD0-+6_?Cxlkc(e? zM$~u-!roL-$)DMdV9@C-!Cd_u0*#OF@VE50F-dP0Jl@0YZeJPKh^BKQ`tZ(`CUvKVzUNW@3_oMfV^G5##6Pd=pFp>Q$ zhnpsN%>U;cZa2lfSo%;d-5$BW+4l(`yDe8=mr`3{K@qW|$Y#*`{RSe@5BXd|-#!g`Gb-)7mz6 zt=qDHEwss4!l$){jY52+Fu+K?N1_QeU2=IuV1v7=Q*SNr>vwgqypss{nRftr2{$Es*V^Nm`?1$*dr z51%wa?-`%!-U1@uESeS5 zL;IM!^%mVboqM@nc%#xuSZtw&I?|}iJ1G&yj5NwPYXF&f+7)XR)ybUT zN*6h_y|RIz1d?KUA!i2?0?(P++gGc9cc>L>;^-Pz*`GDq1{4r=v|TYXZ=&zm&V9%L z%COKv7*ih=2xOCC^MeLQ+@a0~i+Zu0a1`eJMShmGt%Ff*9H*7K7MJ*7gM{@ehl2Td z=5G%%kbNOzv+4OYO+G#I!I+5pRz`w;k>A!ua6COK8>dVwasEe*f|FM$+K z6!y?ohra%>qlD_BnmjeJ2G$F82nr_*?n5HWNYrB8^$P?gjN!%HT5?EgFsX+Hq}AZp z-@qj}O)Ph)G|89(DA2hNM=GOP5andC8o2UgxmNj4C$c%~WGxUqU9%;BErFU|$3RNN zB2{N^ZqK@Kx{y}CkvD6!(u}1fK>ilIZk$DzNSsd~B&Qgnd`7OR%waZ&Taz3=d9l9C z5WPA}_hE(;SxJ^-+JUMB#aHOqLC`ly`55$7oy#eV~1_hqjHSV zfkASlku0A;o#et`W$M5kTlG2pI&G}sImMA%6H2w1q~v+q5+qus>z-X_MtL7V*QhTT z0Lp~dz9!fBnaj=G(9Der?7`W1%vY z!{!WlJ_tP@@gbN}hgQ4d!qp8*jE=$rvWW`)lI`0Qtj6Qq>KI%3^q- z$hq@~N*2&qhpB$9<2g}>6}=Wt81UQsTo~DSpcahhuk=PQj?^E(4d!CYWFnzQd=_Yp$L5^kBT~lI^GA3l1V| zXHEJ239Ne9Gd-`sX|W44%E7?;K4jEoW^|PKy%>gXZsx|LJ=Sx+<;%LnKz4rC>%Uvh zYo#2_`9$ua*6kKB0EGCo*bQ``!o|hK$#vLyvgT?k|9Yf&qzh8X=jG_4cYWF|F`I_WJpXW}v`6m6Tos z!C1E!IuOq5sqFg69ehw5HMxE@is&GjQ|`$)Ge5wT765{iEy^}XCd^Mw-lG_v^-}fC z8=D>j5jFB!Uj4RKtx~Wm*D^N3OD4ysgmB-zJMD^vll@;L>$a410r2!?XobqdEx`6} zG}QxQniIuLH0a@AG#9t!|320*lQeyZa8Bln!sE&=lNCC{%9S4dhf~h&+$fwGk6aE@ z5Zt_2vSV5l)2gw&S8Q>liy=tRKIY#;bG(Umdhj-sH`E3)ZFx!^*t_xehY~q$JH2>ywQhI)k+6wr7rE!V&D$!=I`uD_*5kW+dCfbIUWaVD=Qjmc zcCN^tO5#c$`!+VJ7hjoiM4g#?u~&vmBR`gtKEtUhY`J)`X}naL%my(*lKP#C;O z3R9%4tV%7d{rn_qqgPiLeQ;wvkZ%JEo{4N)c~~xEvmMfbT!5|42D`52w9G7rS2zg^ zt{4pKy$jqtZkR6-+!WRv71bxQ8doAy!01c)))f96pnd=D1JhnuqbZjBkeUPfyis;a z-(0AzoD9msK+G~W|LLizxxTCaa!3EJ;LlV?Et@hSeg68)BxTu5_$szkCoVWxbimfq zmDLf5_&O5Y^UF=z=pT@XoyPo~I@LJOGxF9SVM+JPUey_m=AEj)EFTm&n`1)ua3QJv zT|a0ZcIoa3v!w$rR7S)K_Un2u2Ww9z&QFD5vpU~K@6**G;mAaL~ zYu47c3D(-`2T4=}w1}jN5Jmpd{ozNq@E=;?m0+#?rV$Hb>n^dq#Db&&E0-_;LhWm! z*q`;(CW-zpt?(8SHXo&p3A{}CK->6T?e95t@vfxzjWh2Gbqeb1;t6jwOwPavm0#UA z0eK}e>+JCXAWh}&2?N#H&o%=<6j#&brX0!s94T8*r++gHTVQ%B1V{(c?7T{%iE-fe zsy;~MC@~-n!ZFo*50KAUA|oKAt{K}oR;CPiugci|I?U<1FC&n!%V_uuiG5;DJ z_@)l4^!RBVtcLOBMWLtNT*iE*ekaW~(AhfV*-H{ulpDAvA*Md?b3Y)ol$|8#4skk_ z>OIVA2dT0}Uda44l8b?gax)M@E`b-tJ`R85oA&Pdms+~CGb&KLhJ-;7UORdt!6)#l z7G~<1Tno?Wsilveh$`?bX?LOf)~SA~!RFLbClFAC&MqiRyc0{{D9Yp=yUrlTUmfE1 zq|sO|SUg-8FOoC=P^k`lPR&)M?nlu2FL=6hM5)f^sIsel|582XaK?g8 zPJa@68y)sVU#yOljRk}lpOQ)X4Z9@X<7V*b_C{CN#n&({Id}wYSAsc2y(K{He!`JO z9T6Wvwfk#Q;linLYIp5Q?C@?(q;x>&1J{@BF8H~IQAsQB^LqCd#AlSx&o zS#egBE;jNfO?;o*yPl5Z=@>f1$4=rPsk;V#4+TYtnnt;Q7S)>k+1>6F&7M%)*Tt}h zMyQ*qY%1JpvtrURPPsw%f(o|)tBs!s!uVF7g50|JT6p>7`Z5?CZZld6{)G)->!>_G zXq&;L-Q2v^=lYXui=G;I6CF~(C=4X|p&8w^u;%*HGr|^+>!bB2hb@ww9+Z;a2Q|i% zX(al3?fwWcmn-DF(|Zuqw3tjiiOVO2OFD=+Y=etfEG9O0b$-Tb%N>aP%lzI7~fd9^pkt# z`IXod{twYRsFbT}*SG5~j8pe!$IqQ;a7`q+l)&ue63p(|2G3E8ZzDgM@tx%IP8uwD zY2KNs+>&2DIwpGg!_WBeeWL-)G*5b?B3t;LonxtOi6gMMOjnmMs6k)w&E9_}@czs4 z#l}d~#NoS|77dN$$Lv8(@43?q6;3bK@l8+OTraONH_Wm$6aQ)d_G^uI85NeWEo++7 zU2p?|T7@RZ0d9CGDuC2O4KRo9P8xl|3w|U8JoHZwiU~usQ{rel+Ox`ngwB-wuHFw~ zD30a>OXx<+0MAA{*lo3ovB2GI@0oHdR83&7&m1(!LuFurOKkyL=-mZ;KqZ{z#L7|l z2tn*@Ex)&P6WUByWqD$`%p?-46JKrcNT{!%Q!j81Idj{gzZP>T>|DLtoayk%megm0 zx3dSrl1+*vxiQzM>;qoJ0EAIJ1_OV2zw?jUebIQ$O6c#a{P4#%ZchDY45nAY+C+2p0)FgztEUF$QYs6AnEpIewe4V(RQA zynH34mCjJ1PMI!WRGN=|9iG~;Bpt&UeQmZTAZSy?&}sRZ3M}d`h9?~|;*yVAK*P8; z!wspxdQJ7ikmFr^lyN09GfpY% zXZ@a(>vnVAIHJ62YvrT1ds@Qwpr^QWu%^X=a8Vau4t6qR^VM*=}zs7A1;kk9bu0h ztZZygpcw(A#V_B^OdDHe&C(q_pdqhROLYl+MW+{|mFU3pmKYX3L*d<;Uj>|F2d}Py zWZ0I_K^3>(tFdW|B(CWRhY>!f7$)flpt0F~Rngk6eL$1wbOho3tTqja&9v=T`2N}FmVCi{+apYn#@-B>)AU%PT} z!Mv^y!UP15KG_p)04mJnZ)GI>ddOvJ3P0qsrJv@OBks2d!XGIwgV=<-ZXX1X#q88I z2orsC(-j#{Z!z&6nueS-AFNUxz7{V3V{dQ3V*@5N#V~@vy{t?pnz_{P(1s9O3tK>$ z19;N~o)DBHFnNWww6=#%0)`TN*yPt(u^Cx-9 z_C~Q_9!8%gZ13<7x)_s`OQNoHHWgjA3M(RUMBX(5OvD9>ae2sWKa_ z2la}4>6@*XW{U#@w?Udiq(j>ld!70vC|r(>(`wT@mEeIhl8n<{*zjcmHgxVSJCkTa zsovP4h$K8nY?Y($j6=@o!h<4I3=VyfG1cVwJ%rr?o*JxTM4K5rX zx!d_#B-&xCmv0=gOo{q&c`ilRJF@nHw^Sd2*!o>__swizA!E^7aBgZ|?L_Fm_a8s- znpmeejYU)$>{yLBX36p5)~xG!`yPZXQX9vwq(wGm=Rf9-Ams;BWK|Lk25inb@h_nG zYu77PQ73GQ(C|~~YJw{hf`W-g|Ih=ueVy3GWw+EW4xtXhSJ=JZ-f$XCpw8~c%BDm< z_n6N9Bl0&{$6P+i3@V4L8iMo#h~^y=!lN2oiacq}3s&GH zX3jc}F8R@o^ax#2hQydy9hq_VmgvqP4f09v5m0t*JfC~MXW>tZ?kloq2~7YzRQzA; zy?0boX}>RiW*mnZ8{;4{h=3Ip5CjAiDIbo*s`LLqMH8yqngaD6@(a|0*uX~bYJ4BDb5GOmsx8#l__ zWbV@l%0V&lUDLzkXI(cPC%^l~`ki z4q1ky(+IkA#wxJUJN};Lf>OjI({;>XnR)8AhO(s{DtK4}xx^E%0$fk7XfpRgI1}qo z<=%K$h-%E!rPs1SZ)oWDE6$tcfW;LA4`blpQ|E2u-y{9C-*r{z15=x!vcR~juS_q5 zC0t4baZEFZwr!zrMg91$`Y781S1jVlQWRKh(t1FkbQl`CH5PUT(KRhgYw+L#;n!qr zppmgt<}YQcRO5v?xe+-&GOs&_9m|?8zqXdGu5M-p zb}3t=jWs&AWu}ilVeHA~`BAoL;%oYCpPFBELhluBP;YGRYc&TgUYER<0K?JIZx^BU znZPwk5k+^O4}1qe=om67x(^;NTAZGBFG6weKT!TVj>Ui%V<&ZR)!{;LUqK5_IH#qfq z4diEs52$)07lT{mPqxU3J5pw2j)QYb2+#G>jBFO_=RDneoIvtMJ@bel$FHZ-eN}AF z*ko*c(US-pe=Rqv=?z9?p7$QUxZ*#q_@BzK|2X)U{lE^BEru7A&pGZgk+TSAcydEQ zN5tG^)WrRmnp<3rRd>e{@iF5K553bBbfvKH$>)aU@42&E#3TIWD>Jb z*^ENY#!2V!BVbE?kwmAM!6_$LNfcMHVA$L)cYJ}Yv}?U(Q`TQi8YG^Ea%%5Xy{~o6 zJdNdiOz3IgijIe8)P>LQ_FmL`nJby?NpqYmz<}mv%>Hq8`b#$8)-Zq6x%Z=Q6`TLi zraaX93n#@y40UTcTju3TP(&s!In7MIa+NpVaKV9JvQ@aAu|)#JR#xM@m;Uq!KOwbx zn_9DWdE~4o{GN%GmF0n%`=eD(54tbgU1`oe`xjj@>KmD%Ji~J`nJVf&Vw zodmlSTK9iO5oJ1t%c{Qi;0xs6P89yx@uL5GN?xqV|d#qEgJ@79gL<|7-W{sM%#13~|uKEf8CY8bY?+ZeVV8@ZM z^V!yy!yylqD(i-KWJ}Ne!B=6b2Q3`R8sY#0dQJ}p{LX+q7my|;-HC0>RM>~13(bwg_jPV#G%_?jeT<736H%Wpns0fzgmJ%FYbu)*gTG9;(OMI-D0FD zZN^A=p>GfNBixrq!+CXf4--KZ>VY-qPuUVf6LUbH@Rzh2k|jnGI}V=)i{(K zG383|s?`>MhN73^8pIt?cy)(eIr{8N4r!-6eCg=BP($fOCckh02|qkec0=+Me*nGN>ES6+Qm8ECXl&{zY$621E2G#s z*@23SI9=uMYto7yu1$|ANKB^}irQEXs+TIVcG+;M{zU3YIx?KO6Eeu-Gt9^R+6~bZ{B3@?k{A zwy$j(u3@iBwKPQ8R~Hc1DEquD7aCyh;{K!eDU%1_LheYHukG!HmmE`C6)pP3 z6ME*~N9?}ViHatTz57QSYN~-SK(%1@II<7!oasmmnz|-U&f|CtKTD9U6kMg0!S@;U>E8~yA*W-Q6t0gj z$cDm|#w?d|Soh`|7q59Ke0?4Q9Zg3L>%@YZG}dd?Hd3L}W@$d@VyQEnwF7#wsDMG9 zRCjFMa&AII_*!=vG64Eok zbn|M;>zia!3v|dku@VOq`e?`r7c9zkDC&;()5a6pU8BDumE*wc`G~tec~LSK6}Z5q z4$&U0d`c<7rOJ!#_NE0oUXnZ|dPXMXM8tGTXS~6%iA*c}d1POW^%Pvv^N;d5s&yJU zV^P6FIkAM)OSYeb-j}cLo;ZUf+Vt2;wo@yW+&Gj>qzP^%pLyk23k~R4tpYqZDX>(`D%2c?5(d}!^R=?1u;8RN zWp*L#8T1F|M9gJX2k*^XaM)M z7Sa;mrNYp6mToW65YsteU!B!*Et@GPUM!6a{8|{?l1`*$ME2jVO6fc{00L-izntUu z|9n#dYls%LFsZE?&eY5*t# z)oT7rV6?{dHK07U(3jJD2&+AP9-Ls5Qyw{wm;EJVAh-_Cg9Jpxi>++Z&77f}J)=(^ zDj zcAY~3GtkL&5%R)EMwGZU6y+nZi$x~oz9<*MF&XiyunG_dEVV;8!m_sK)I0BfZCX`& z4t{JS_GD+Cz2wK#4MQT~p_a>;{%1?qUzmU@XMA_{P)L5Ex0vu;HQln;`~JdXo0#h_ zBRfm8Q2Ac)1iSXaAp z+H6CY-_GiPH1B5tMzTc%VaPh~*wV4O!*b68X#SBx|32fp-oB{ltbwv6A7tfXfPb-u zs^azh)dHXpzVkG-T6st*!G79NWBE*K2V(UKN*;DQ%S@uqqJw8gexpD@Ltc7S$}oy( z1CP*v*()fMoPk*e-AGT(SX)(-DoU|(Nqc(uoJ+OY^Q`#MnLm-lIfYRm3^4woOlC3- ztm$I9KZShdR{`IYM%(G@plGBC^=gAi=gZ4>PoEnjl&aknkWLZI;*2w4D^V9sU6t&M z=u$HnrSuhbh6He zuSJm4$w2k+O~DKqTX|cvYWL*lulV`zTcIFN_XTPoPku!k_c%)!X>V8lyF<`k7=RuD z2{6#=w*slEr#y?HU-TB?=1li{U&hzrO9ICjco737P4XFH)&{ne*qY63INUT7PK$7D zGof>1FoFE-#&$aF@W`a8sKh+8cCN8V6NsOrO$Q z3I9a2KsTGXH(OLb8&M02UC&}snlETAFy+pA+h!7Dl|%gF35u`rU0Ws}UBI_)sr-D} zVLWj&`!7!Y5vNSvt+9}s7t_<7z?)jf%7J@&MZO-HVB*8_(+M&;{pZnHL?FPQ8+=8{ z3PdttYo^ure;?%lXjtpMfka4ZPt|)#I{yrYRIF3j^eVF+QH3w(`DxjF&O^nB5E&xx zrDlv1oHQDBw6evHO$$`(0Lo(1ef6@GWh~leUh1aXs48Aj?4hcUAw9X)yc$n@fj+$*R%lVHIu@qB zgdIjD7OBxS7nYYLK=>hz&-AN2Ry)R(o}z~$2k|$sz0~=&`+*sNy6f87YTQ2k3th8d%l8W)PB9f9}&d>M2l9Gn-zj|Fkr$k|?rq;pT~P zvyZ9%RL*NMp~WM6e^`hN=cFTS-8f}KVh|E3&84onbm*eVoi;CMeeG5h7)B&$tVf#7 zUzOz(5na^z2GAoT6GsTa2f3>?@q1B(tMuByD%q1T_o-+N*hmr3yJvM(lp|u|pEdq; zBgIMoR^wpKJ)zUXy2 z=O)8dJ#@*J?G6O34ZwYfoA2(!iRs3duV=*CO$DNkCfRnGxv=g^%lIS%n(myiFuSGA ze9dW-69{sR zg2)Il6K{V`DeIF2-yw3W!cIWf=*wFDMZ9+PS!A@b)e%Lx8b4Iy&q3WL0g@8LK39W| zMHTULnmYSEMt(B)C+XRvfv98Aa2Adua_3SXRN2bU*bK9NrCqlwV)81!aKd0QcQ5Nh zx2(7J`;a?Gp4v$XP;aUG=TjZ;Hz?x!)s*Au_|zJc%?soC2wlE=g%+En)BPZJPPNtb zJEEDxAO89Ih<=*&VZ{qpcARS;}Fhu|sDyW<}p33Npx{3_@{wrbAlB&79Fc zhK|g;mo}*t7i;V~>TtjU=&P?I+ZG(An5aS40#X&vv?$w1ss&}DLG|RoP~@3Og|p%8 zR4C&th4W<2@mZ2u}s1u*_u^c6-1&m|($^4(UF+Y(ADKcC0_4}m&MT&A(I1sn z0=l2JUF@)?b#X;LRK%0T29Iuvt_%1PeSDRwV=U`xgqBa6e>;l-uOYL~3e+7OQ4=L2 zWwnp~7-IPGwwyfj0gTXuTDQre!F+6RH=V_&Ao#S*6`lJuqd%>qRdxiofO#QZr^Y{2 z>@8%gM>~r?%%FlNe`}|U8g`)1G1Q~Lp(}BsCpdZ0n_D~9?icPGv;}Ibd^stK9vl%8 z_M@}}Ywp|E@2KUW8S&HT@`podC!_%#9h9eYh~wK+Is-hrDG+8MFR?n>Tam81wQf-1 z-i$`m#^>5C?z^O>_L^o{zkaXc?sIglwF>KC+ea(QK%)@4qD)_6;lcIyLC_-Q!KLlc zd!7B0sX|g0Yz@bjylF7(BDq?JHtzlAHB(1tX5 zLB*u#JqRZ?B=W5LqQI;Bap{2M+gue|=S6BFtr+D`u-521N4ffh0xdouF%TrkyuWDw z;#KFAhMBT%@6y}d>fMu`Jgv!>DnLkt^Nk1tHPasG+EG-nG}!5ldbDft;^&^@uAwob zu4m;Oi;SlpZt#^YLIT|Xn33)X9?!9M=*fQIh-|!U5^}ZrZ0b8Sdw+!viS zBdWtCt9H5&uZbj;;+(UjoGaqFSh(21U3EF zzq$W+=Kno`{|}yk-?GPC!|Y~i2QGC1<>1Ml+kWmZ&7H?ry>a~sZYe{2+vr=Sy=`7* z=|VRb*E;Q|i?M61g7Qttq=Z;?XQuCp>=&7eo08R{$U;HP#Q1D&;HIz@Iyl~bf!PW!6xA=%lv#`R97udbZh zs=_kc)@xa?<2h+xRh_K7r|ib)=JCAEHHic%Z(%l?A`1B}Z&TCPQlf@WS1S>;i!7qu z8LVr_Y0X!hRv&70R)=Wd*rxW>kRFDU{E3lf7C)y4Ym$XWCf{o~7D`l$TnI0vFwgmrq8>}`uS%!X|++&WFwCCVZA(6V28INN1doX=+Mtgh{rReMDL9NV|$5*$FPTU|^0O|<@^E&mq^*JbWg@2j!Fg5xTg<5K35H zSq1(MRAc_o&ExoIzM+I0Ejsge1mCE${Ck5ya$EZ4&retU0fa=uXQ?EGw6!}^2-X|2+*#Sn@Xu1nFKIg~(n`7v& zc**9$t)iFz3FqeQf8gBw2e#7LQ-8CBTn=d4d3vC4nd8C^px`5?4(RF{Xc-zF&^@E4 zb=u$neE!O_JsK{f3Ge6b#3*vuA2_GF`n*0|F|~H!ouRfS)IS@{a@Kie|PVnw4wi-Y$d0E zvX$I_DE*I5?(g3Gv)TV&vz5-A)&KWwCHO7;ci2h-aQ{SZ?{eV{fo;-mTxjw+~%4etUymI36ju_p_gZ5pI8_RwoF!aL`Gpa`Rc};y!B3|qE$8xxX z?<2sFJV^cech$9s^kp+votRa3j@CzQ<|esQ2t5MBXk|QZq3)!e69J^#{^?irs5OGO z=iF==TfK`|vv2g=OavcJ#8|~|+zc7;44>kBddd+7HYE(krB@Yn*A-^HQ_6309vHP7 z^t9XI=2q`{8Nc@G95vwZz|HjfqeYzupQi$Lqin!%&h$t8i|^8d)yzKYRb1@$1by%HCqXQ{}a8^UAu6vetcvQRga+c8nf-i932f{z6Wr zmB$t@T}RhXqm1&WACCmHAB07=1JtfmlKPZe}VRg&EH%7wAA z-;Zh)5fNS#!g`Nw0m8*P<4o8Y7vCjKnyy_prLl%!#qCxjs7acx@iBXQEG}Bx`FXnJ7@^Ek z4@UVBd_me`DPnLh3GRM~C1|~!^kOG8wfY^Z^7eq}h!z|^ zW$q>u4|u_`$A&2VRJ1T5VH$ct6LljA0iX48h#gRYE(1eF^wBYfNa|!0p+=3-0j!3n z(=0#>vsmA9AA&6OzE^#xZW*$VmL9koZ(t_NR^Lvfl+9*-5w|-GWm4*hN4_{HKzo}w z;bDh9v~mFKL3s06Wtq5{H7|~qb5)jDIVZHz>MH#N{T7pVdE%1$Y*8MLWBO@0kf2R} znv-5iNP#ldjLjB1EB3mKQV}zZw=*6Cn9)a0e)Mn&0f5J=?Ia|5=T}HVYjl};@!v@eMw1@&5ZmfS<&g6SIH%QCthm@xZF=)@`*A%UM z!a_LyWeLtxh4sThU!=(wLyFOw-JzwC;8V@}TyzTWu9I*a)m-(lCQhs~j*5Wb_?WO_ z+yIN9_GIlBr@Owdw`Zv+P~&6v^;rB|w|ndwc&Cpp@^jCr10r^W`yq%H;6)T6Y3diQ zg;~PnRjWf%m(B8@kJFxpU?+^M@@$?_NU4wM#Kf8V+LOf^HL%X^PmOt6?|DmocGxHO zN5sckV#Nt@XkWc5fyHp$&A zHEYHvzheGq8Wp|DJTiDFEMtkzUK4hXEi2&p_g97+=iQ#%$QAUxV7d)kBRP(G+Ox~T z;Ps=k2v6j!6$n1cUhqvYDA=pA0-`SZq9%jQqcMS^^Twz)G>GxLhX*Ph;{ zHiGph(%PB$JAPI8N%zeML&M(xeN_1@k%x&uABv{9J7*1MbaU#<8!dcNb4S>9ccg_e z=Gj=|@gJya994wkANU($!#xMr1MubJ^YuH%;+F$o=jd?0_m-5`qQafiV`m=OAHaXG z`XQP$nv=7i_QTvrxs!2H(C)Jf7M#m0uzU1P7ziUMlR`nJfG zv#mvYqQQtFfeju(au{_@47vj$I+bh^GGj znnovUGoJv(>)cNX2%7I@)dSE8(T^0;5*m|{Dg>P9aJb@HMCElL2@*9@pT4`wu16Fb zY~I_rV|A(wAS68#<-2CLo%_@cKHAc0Onda2WKEx*4>P<6APi_2Nufqtm3=m zI6u$XFF3k5$e4)QApHrw--B$to7|@VV6~H=n$+zZ4imINMyKf7u15)#Xl&`hdmY zf)G*PB*M&1PVWXoi?I&_wvHS4g)6`KqXOaPM!pS(43PGxgJE%|OeW&n zo;PlJRcAche1#rov@$51GyXjV(Hcy?y6w;xP9B2M%^LsgQvUGVL9yy)4nK7ev5+A5_%XiEns6G4C1_E%jg~5-Dr*Gah|E~+xJpuuS&%T9 zNl@|r(iov(^2reA8A27&ovE~a{w5(d&^nv3a1C^pjl0P9y99ddgJ{YMOI#9)QYMX_ z^cx@{DP^5#1Qtv92w?pXnrR>wS~T!3=uqdeNe>}gH)8w!sjI0X`~n~yKaXo#KaJ$T za2;1ib1{c#7z32_)x~6J(ZmABI#IK$TP<19FHDCfihpGRPkD19b#d)X8ENONY<)`G z;%oMXvNSK_SFk`^&a9`xhfoK!jY4s4F%9Bwg9mV)NWLz3lt?FC3KQb z?4L}?{idJq8fyu9bdWX=EMvf*Qn32h&&2Hyb&LaIhy+bd?1brYcKXWs(Q}c@8eHXVQ;QntiA={z1)LHo|*!q01aV5$Vi%v&I!~eM60gQVj#|`IqW^eW? zX8iM`u_n2wJ~~^!^v8t6V3a0(oA#I-mueP1K&mMVH=$^u8vqSC=f0AslaSUTod}$3 zLAkuM9ry{`J?(>7gn}j{2q^C1l6>>X&JOOEL(e~p%359NGv405PTd~nscjqRarVm( zB~|T!_R>cBJij^*Cu{(uHU)GkRdYr2^r-BIwm@QQ`o-7t|8jSygGdg2H+pNcQmW%b zrJ+NTPGw4T8SB{qrQmTutiBp0;H+N3$*eB3r}0+F?2*ck;(dQDYlo+2IGCrhZjM+L zedu6S9a%3TFpE}9Z-k#yl?<30eS1f(BuT%qQqLiufV~Y;*bf}21l!Y=`#;m`SMu!F z^^}5qLcHwl%O2NRF^YpHz_R)W>QCM{Y;&2h1)7#@dw2zU-IKYYHfXTEm+PTsmmU5R zj?~d4UX(L^*5u-cNP*Ocb47ojN)ncZ$4*gcyPU}eHc)N=wcXa3oF}!Y zD`P4HN2g<(*5)|2;@^WVw?9*0lT?t6c|l&o`Np(}!^@Dl$iZ)T`*O3Wmo%Z9>v-Nx zCaW+UXgVOIvAx3wh{1nC9==fr!LHfwu)!T%RZ=f2b|J(^9)n)8*pCQ96GAFA%^#L? z)stU)vDNWTW{M~(EeZc84bD~<6uC@v2M<6w%MfdO-;RlhV{7-bu`PKB;{&@S0Vv~sG31h8zr^9ss@0Rtt(l7}O(M^US&0ri~$%9`HfXTU*U$txlSL!&<3{kt26 zW1K;M)HLk*XGw<9PjyIf@_GzZCAfUmW~|dn;WQ}$nGA#) z-bW5Kafreu*?3EC2ii2+gwY1nKfWT;o~CaGR6aVNPuRgAQ30ppaNz&N#^GvjT?Wg= zsR5YB7?JNE%s#m*f56D4o7h-^O$W+?OHSSbHH+;X>(nJIRf_4I5kp1s)p~ zCjr4q?1bOkl&2bF^0f#7RXgO&xpeh>PTfWDTD{}gzK?|ZZ0_j9SE5A~Hhs=wZ^|Fp zu-rnys7?fO_E2}05@u12my2yZS3($fz5I>(9lLjnuYn}NLMl8l?3<=XP5MaGC!$=R zCuQk+Kj>Q?;S;PPkcr%b%5I{r(ZsYI*ss@4dRqG`LA)21JWO!&hJ%&b+R=S1vB*;D z`AYk76&C-(F|cpq+r7&_*LL*#E-XGtYVe>S(&K*VF?-aY*!rQ_1Wp0{+}tp-tecf! z?&q19F2&$dvljw8>ws9=Hm-H|tDbp_-Ba=R3?4UOSyAA4S1JW%%5 zssHFY;cj?W_rOJh%YoF;f*RvyKHu-sV%oy7OQ5v&ENoCdMBxgS<8%J2WPHDaS5+du z_fN@fYG2n7XxV#o#y0)5fvWrxT!S3zdZDLAaJ#5=B!Zh>P(1R;(9*H)`XP$$*__-X zF}a&=JFvU`XBFCF@>@U7{;KyX?X=x)kvaJpwN&f-9rjGs7E#;j7`N>5>D}2Y)9D?6 zcc!JnF(-ipAXsHF5U&N*-otHS8?|0Tko}r**%{&7;!pdui`>OU!Ne#u^URg} ziL1agFiL@p6wi8S1z1JT?#(?jaX8rM+T)}O2MfCwd(P<5TBdblKRhx(IAJ2hx#U?_Dcy7(2L$-JB|x(y-JH#sz$%r@Ly<6bj>4UbUP z(&TSPp`jBl1}NdJ?&93OFzZAuYi5>}2Gd8L>0X0dT6N^IWFgmTG+kHM_A&Me1#?>? zm9o#nhm%q=Vx11GzLhmWl!d;wAPIqpyt=3kbyeiiXs~e?oJgH8vt0~{l%e_0uoZ-Y zn%LEB4TcRZl_GQ~w=17|Vg}Sv7$Pq)+n91&`9>2o$^*mP1#p*MdModc8u`Qp-|<6C zR+fxGQyB0BbC;MGLO1qmzh1qAr%~9TI0`)qJ2bGR?aMby5c`b(EJ`{+96;`Z=G9!# z`oie_clWlvFY6-hh-iHo4w{QI;sYX`Wz2HFFv@3!FT;X9>13597;=+5WNLp$&aCwc z?90!L8es9>-ju1n;Gf*!fvJrOpN5 zHtynAzalU$l{DOb%HW79YT-Oiy)3(s&kQQZLR#q~9CGTk>!@EwpyBMyXZ9XOs7$n# zBFN0eySgrZ!ouoQcaIt}l)3S{MFC{LG*(foJ`|uR?Xo?}E3P4O-n!7ar1raQDbP@v zaB0Q-WYhDUjQPLHqfU*zo7`5Q`mNQXMe>|nRMPs?Q14%pb0mCz?)6EtEoWZ@$GjIY ziwnO?-@dSrixYpD2i>~3zF8;#_hPDJYr1NMg`@KaXZ|ibmG{EdB7+CCUg>AL<2h}^ z>>LEz8#LhcvtsKEg$@sLb}ilRxnQFGE6Ojo`&oo(oK-kZ!wknsQ|c52VxX#0&cey- z*)%x3CDx|R|7TP*Jz{MV@=SS`$Dx&n)B%9j%I$@F!gkEb`ACBRx^t*QU{_;X1i3ch z%QW{!p#y(Jd&C^uqjH9ZOe*$H?$eCiQ{{|OJjTosDgM}_)&MwlXHt;o%3b{sN6jW4 z?nrl75vI@)$8Uqjh&h@wePST=8jhWG{Wjjo8vJFoZ@w{@U&GPyr|4prUY;7g7hVy7 z>FQOt%5F5Ue+UhOEMqN=ht695{-cm-g~gq zckb@Js))>vNgIDSJWnlx8F@!rQsv5H_G*~aAv_tHG47c{AVB$aB~~di=opf7@ceX4 zoyjI}x!?9%E*aI6&Jvg!h<47AZtI);|j^Lb$tHPgIH?V}Z7nHI|neQ3^ z6m6O<8u|e>5fM0e*U5NbCEj70+r=RC0K7CXL)$job10SAnhNX9 zqI}@D7yY8kdmx6U|lyyjBYs-L?> ze+sWjy*aa?jy)Y92T#6GhFxp7&Iw%da0H8~SYX-@p+EUmLqDvPP!A-Xn7m@rANXRB zKqiL!Ru{YChb+MDPWK({)B5Rw8F*Uh!)jsG#PEFMd(r;HIr#C9GpkNJe@_o|4m$Hp1eq}c)_xn~ zxspzXICR3Ps;cEm2?QWl*%w?UYhgM{M2HEl?*E0Jy~9Q#2~x9Z_THN%f9R#^IM z{nt@Ucj6HwvWKO-w{s4IZ}aptp3)gRTz=Rb$MH5HX_Fv&Q^YYeQ;yh+OXN-sY9GaK zjBgrftsSgcD=|-BZ_{=IlybeYe#hhjyuPL{QsL}?m8%qdl zaf@{Srt2GzfZ5WG^XU@u*>EM(HMYL257ldVOeI~TYO1gLOP)2}aD73rz2py*5+>+F zZF^RC49na#IA%;~nA7>>z{k|!7=kIj4=kp{qo#AN&BW}1x(l9Ft6GAH*|lEHf9_CE z2xl&JV6fJeYgZ?sswie(Wrq)yxx9foY6*G!5K zgI6_P`v$uB_o?NFNC^MUA)dHDC6B{>7P$P{hiX9NOOGQVyAz>ij{x86tpEHJ<~5-o z7vg^!Ih_)G=W9EYpEquj|E*b`_-p&c_t#!?HsBYDoSv17riqWEAhV*K)y(zqK*)5( zRsCx>1Tyq#%07sW0jWwp`beA*Xl;~F+Z3YcA=WRKsmRTcH?RGu5w10F`6T2y;m`;Y z!tt_}a56WG?@tyMzTg{G^s&eTr)Y2}Tu5{|;;i#8$Y?`*Ck*w;(D9ykEz<;-+FP}p zy!Ruh+PRRWI3h3?giE0M214D-*#e61vA<9h(Xrx17V>X#=sH?q;40dFhDa%wmK0Y}R|c=17#`D9-JUUI{Xk zy0EKAgjXOmP%O9=&Wo9_UdsWzSHnJB1P}3J9J^W18*FeNnaVL$fx`@XkG8MSrrKB4 zo63o*B*kTUTnJc`4hb=#pw~p5zmNWug?%ZfZVh>~Wz?v*)xpvXR%$992Ygr9?ut*?t=n7NAr(cGFdc$pPxtC4m~Lo=Y@9_+?Dh z6IAVP7GG;5fw zP`^-5t(!3uSD>gVw%tU@L9oj2J*;mTgj!;wRtAz%j)!cPe$dHq$1Yt#9$f&+OF!iy zQXNOFR=xID(CgMshw}_(?2@54R5D1wW6BI@q(?$v;pz?4_}YCohX4D?dPmcm9~ogv zt`I#?c;|<)aU?v+Gy69hZ5~eJ0Mv2!*xfcyb&DGt-klu|4joTvybPA_^rB5zG!cI*gc5Ni!MXM|!uOGSR_sCm%9MghS*Uok z;Pz}53%d~qFI;D!6R0O7gZu8@zJ}H(R}M$YS%AY4+MMv~E7~^h=iIY&71MK83-~52 zZA&c=6Xwv`)Ihfv9z4{}+2Q>zAm8MK=jS^D1GT=JogT{BaQXlgXgJdm9myaf-o%|# zbp&T?OIzjDu%T3SuR*pVOjWxZ(&OsqtIwD<#e05)s-yTzrRU=(4??8L@6g;@o z5yZB3m1!vL3BZfp{e%wX*-*|bMt)`#htbOb<|VFXElG37s!^V7Oq92;4LHYH=taq+ zv3}iWQrQ^L5+oa!Bu4K>5fri@?oeL2R)4oB(1%d5`Z~FqQ1ieF)I8(#CWMk{1?H*5 zf2KsZf!$SQeH@W_&pWsXlc3XQ<2dUtyo;uKMses>cT&+uc^c@Y+uoq}Y9%c~&vd%3 zdas3sVoZxFbz@b0*q5^x@6nu1AtyZnl-62jvBFVk)KJ+IoXf>l0_L&j>TkUAfA6JX z()ufygKP12x@@Pry`>xQUiP?4si{R$o<_nbei%nRqa|tPw|Fd&Ar+jHj5MQB0*{v6 z3)Ppw^2iW_SAh2@V`nV^zv2b|08d*D+GUM6!07)1+7ufj->v zxo+(YA(6bE45%4S)UkCkhW$BvgPmAv194v#9BgL)&_Z(H42;tHTdX|JGFQF&rqKYS zgXKDCtjf9uu2jAxPn9s7_@?X4S>{Y|u>ZMF5h4nA+X(75g_s?rrg%7=6qA3u!&vP(?L25%!$ z>O=LlKFd6}DK4>*jR z#))5@qtvzjJCLFvvtTgmx=NFL5tDk){u{`Mj-#SK8da>h=_{kbl$&H9D*0rH-78KN ztye!5nB)$nJG|o5{~I>Fc^#!15Bw{x)bIGZK?Vu^-d_G^XpVpHP1gQc{S`xNQp#cA zNmP#l$(84M9ai~j+TSEJ1`gi21`HQa;OV56;poqH4I(3<7c)& z;%qqQ64_VKH)D9tkgHEc8YwqVTY}QLfsg+{wG?2jx&UY>$KnKc<7t22)|=PPWUt0_ zrhZCNRiS{oF|!sr*pT~y`NN>@N`YNd{pUq%JUEU~@gf8S-pkkRDGK0S1 zpW5oqNq2`h@|~&2;NdYAMhmsnFj$R{$Ke}-DU8kspX>`7@y02mGW4G5l^+Ca6-#zc; zm(Bv~e!W+A!m_1;AfQ0M{z27v)>d~`)t!m2XY((ON`O!zVrXcIfq?Z%a?HG5P++Cj zK4ivuIKywjO*EoW_b4<^dULFHmqBTZwZt>kuw2mh=^{wks>md z1&6UbIkC&QT848u_9DGE;0JX`m+3=*ts2K((Sp14ISK{FQ+yTR@Zq*zl6qAyiM`{uh%FNY~bfg6HV{vvOaai?sr6ZnjwxC z`-Au-#D$$t6*uT2YR2M~)3m1n=B0e=`tb#9q$y1uEu1m#)*&dPJhhgXI!(hNl~eJ6 z_^n>#ZxPP#wCU{0&<4P=maT3!)vWS7p#cPtPWU$C(u44o)OJ5#&lYzj8nrAwyKf7x zLu8{wgYN%*aTD}(Rm=hwfK?2LX6`bO(oEcZ<bWM1t$?7`K5NbzzwA{JPd5vIfL zyzF(IjEl>J27qDK`j&`5tmH?WUUHANfmjSe`qc*mrz!IfRVJHUu4UUxf0^%9|D`Xj z4b^wbpSR`?+fD4G(fhGPi*K+5gvD2zi%0Wsw!SR&l1??~5lba3L{^>lR40u_T9is) zZ&}Vuowm4Tna)P$EFX@k2gO5oaZa&zemfDLi1sMH^lcOZ85g%3yx(wT2PH`fj)?x(4)chn14Bv-cx5K z%kRGic7K#L!+_lHv4rt5;LPd?rSfa_sMN2>_8MCJkUVcec3c3GiXXB|5=$OYe@vRu zwZEAauWD}WjIiFnx)dCy;JPc4qCdI)|#P_=O>y0@}I8J>@Q z2ci-?)H4XJZ(wT3J?4&n)srCBP(=|p)Pu)TA|SUg&*5bk6IG^IePeu{TFr7#wTjY7 z)0Qg?Ivy~U#(q>*v1r2fWS zwZEq*fR_K~Hy+sHRdJdZHd4xL=oR_Qxl0{Z&EbWE713i5w zug3Ml`A4|W8f|-)>yo&UOq;5|zmy#M8+2WXG8kco-7?i6vB)dmrsrwgT}7{O!rrka z1PQH(;j0;s_HX~->S$tx#chZ>vaIjj^BvzWjAKcP$>hPGz4v-LGmwFqg`Rstu&2wh z4pTWuvvj-GEaUn&H7p}1r?Oe`No61@yV)koLapgCdNmt4UV7F$hOF#P9{kmRwJ3)= zmiFB%tT4%l)Ql9Hi*;r@$S<_hAQ_uOT4Tpi@yd=uay8L^hL+(i*CdqQ>ei_yscH5j zw(Kym=L%`Ph~MhIQ_=^AAIqT0jnn}jp4eVm;@Th-<5sPpF>LnI0vETjK1D1RZS^Q zG)u74+?Uc#w7?)~=jp$o@w}5%$$u+kabSgQ*~p6Dv{v)f+aE|(&OIh}9niFKcOI5% z_f!s@r8nc@>pbVA?4w-fcfD}kwu5TI0w<4LFS1YgD6!&dl*;>w0RrZ>-{(fjPOQlD zQWpm=Q}#wk^{tgH>EIaVo~64ek8rV?JWCwO%xt*+_jiF^l zc>(*G^&A%`NR(v`SAPT7O1FD4K_J#~ef#^($jUvIIA51-kWclrV{n1KdFs0L$=S|I zn#6b$5%0sS3J5AFa+M9;s>voOue4P()OF0!OAo(a)qn*uH1R*n%cM6AEA{({1-czG zO%ksbg>-X}Fn_G>B@3KzR3Y=Q_RLU4^7W|ncRSLT>*$v+{oY|A{~cZ?QI(a#u3lb* zg#@RfT$XDbpZ@p?=Q~aP2Uomc>F)2#+u!&|ky%Y%ab=_+eyUY}LS@$yZ0!=U!C(;RniE8ad4QlnL>vV%W7WC(0tCCFU8R-q>tm8l7 z*sn|mocip3ivTiqRfqN-1icuuAbqq#u%grxcIR0<%+Z6R5DK#{-;Z6d5-Y4L^lXl< zY_9B+D75iWm8l9a-ybSHs!A_qt{hCl*RJlY>SY3!uPfZNf9{uy@F0O-S9M!Q&bX3R z*E1xyq}EPN=g$|GtE~sCoB!N)qHy)Bo-5L;T`j0QpJ#E{9U%GWpzGFL!M@s{zx$Uy z)ptzS+P0&@QbI{E@YUB5Jo9;6R(xT=4 zO1SM%p4SkdM^d2%KS~nxlW=*HG=*^`khMrE$l=$y@+{)$LaB)vfrS$dyfE4G@0u>_ zkFQW%S03an>rZdj2%Pb)5@*E{un49KH{S$)KLMAs+;7taS;z3|)3g7a{-k5J&>XUO zGKjhq(apk@faH^XH-4xFXp#aIcxzNx6x1at4nnljX2)dG*}YHB+Yc;v`~#rY3WIeb z&PV|kMRkU?csAMdXsFg`|6VxOtkM2I+BN?#bQ715Bf(p2m6iViZ1WFN^xwiZ|7T1| z`rq)N|CceP2Uitj{$ot(pU3<6SNOjZQ-c3Hri3|N@*mXPKTq@TxBdSyrX($?Ab;oo zh$%hzPhm<2?NK+idq>{DT|i;ZWjCvQt~*+fv#f=h*f#dPhe|bvE^=r5}B#bsZ zz2*{m_wM)h%h9HU4N`DR_aiT_KsBWSB%vNUVH6#$|G-Z3$Laq<2l#*J(k~J#cH0>S z9&0?&7L((O>eP>KE)P5V6$$+944IhQ*Na;@R(nVj{44OSyE3{Z49_LT1-RNct-F2O z;OcL89_yYDydyasrT%utD!yNnW8GT@-NN=gyZ}2zcl&1Tfei24dwLRlN2>1j``Y~O zB*|fSU_KodEu}4-pa8f}6Y=g+PeQp?nU$fs(WGY*f$zZe^}svF07t1kE5PpY<4QPm zu9j@p%Q01U;6_cnnUD`d=E?QZ>!p7B%jlm>V~`+V0gs-K6PVpIODNU7V+1J1EB7I7 zH=drC%IWMjNXZiuppfFUvF<-Q3=YdiiEG>wOOj+i_{ESTVa8nx%gUOv+g5E6+$-Ct z92+~JFpbP6*1fLW1WZn}^6DwfX=CBYv(QzwA39R&4BDEuBpCzWV25u!58w^)4FO{c zt1+J2bvJt2x^y!wf*s0KrgmGvcCM0ce zovL)2oQZvHEetz$A{FZPuX|e7JJ;A2c0R8oVSUIcWv#Pu9-_*~d0IE204`*M|MHVw zNjrl+D;suGS49zcVTd%vCqDSvp=keZo>qBZ0W7--oFJE2JjB5zMQn3kkVN|EQ7dAU zlBiw++ASxRB+2jI>7GAK#?pTXdWbb_q+8Es`#i(k(E5NP@J;T;bG4V9?IWx+qS}#J zm}fuf8GNDNOyVSsmzbYD+a5)!;|M%lK0D!^$i{LEe>y z=I|4c8=)oYiW-YJDFb%Sdsz&`&Wex7JB{-ACv_jD((+2Ze zBmP#L#K6q-Y!ccCleF=XWwNhOECNY0VHFnpn5- zy?BmHq_z;!JiJ7maZ@%px~lIXKio(f7)f2ue}P)@U0xyc95sLqle7|2>4mel<`^0a#(JH5=P1I3i=>ZBn<9Sa{Puj#zhqgvkYrWSUV_AY)a#-gHfem;!;Jid>P(HYyG?|IYT|y!-Hc}b0Y0CB4c%~> zn}9x(jnuOR(B^`+9K?x-&GEWBK_@SmIMZ(eHg7n`Vb5gw6O9FH-pvNg&c@;fTlC8B z)6AH~Ln1f20&n*rF|O^-KjR1i*~dM`=#R_VKtBE;MeH7=RW4v^C+R$%>Fg5qkc+$P zdQraL1J|G-Gh*F2JlY_J7k#9(@Zw#yw)eS%FIya@8!*epGbiB4mCEfjnHA_wJ2#Ds zT4%p2l@SkH2X5D|S*8bgKc=Hwn|WT2)!S{bG0!gjT3qg`@cy67CCffz5_h}iMv`>* zs&KQGyK+Yi^&;=6x9LVbp03*`gEK}>cj14((^PvXIpw>%_v(o{I%WUKp~_0?->X{g zUyWuK9OaB$l^oN*36{Hr62p($5F&>{u!3!z>gaD^Ezq!YFwF+sZ$w;8F!AJUb4iVQeR*nJTrW|o~jlUrq@_0 zEQ9nQ7CX5*%FnP?UxJykYL<=Z!=0{sUBVSr zfBtYSyuK!Wa859Ir`C6;{xCcbvmPikd8GYGbEYd;8h!OXVn0QbhRrO914|P5gfWzb!iPehg!Lo z+shiA5@kVXl@%lg-IPyi(_)+eb3b2eN+i{MrAwkD(`0qgiDonTq<~u`q_uofttz|U zs?md$+cBifi-go_j1o||9eUUfdb0380xU}epa&ym=6|x$_1291Y`tn>rR75be?Q^o z#nA`np}9}Got)(akDC~*sCo)10p}Y(J@^+X&CKA!^~=vvVUr}W@-*)ajXsLs%YgDf zSQEBClNe;M4&DTwk7B;OgeiICtU9uTxo_K$&;gMSte0@>GG3-(GT*y=Nm2uA`(TPK za)5*c4>M=bDtVaA!%i$olq^-ToFD0NOQHmpH^ag0q48h|G4DkYt<-U^%QSPxdEN2K z5nIOx2L28D0V1WF@cl36AjO-A;{020} zQMH~W8S%znsM^`wJisBvtNr@PMAW4&2JF=;CaK7iLBoMRzR=01Q(@)Qz@fX+K<>3` z#)v*wB_Pv#BgSqrAZNVYe6Xi57KL{Ez?QH25H#e)VqP-jZr*uaciuN#Y4;D-bYw7( z4$CL4p9FI~LC<-#LY0{oQOVNHvHKPoaiZrJp>H@y^?3DNZfUP6f4E!u+tJOGLx%!U!lt9P@zPV)+rNjT=NrX z0e&7jBqHsFtYXaG*IR-PT`3vaYO3N$&)ded5pEkD*v}xoBC7#ieYDrsCEvtx<0_sz zONfqSMTk)oM3=uR#*0gH9;RDoY3#j}3sz;^M*nQ;IYq{aQ`0Epyn83XnJZ=g%!wze zk~-bEJ>`JCpmWpyrE>{r_rAp#cATvjU$vndRa00J*Pf7YQ$#HyHtnaQyFd!VImi)u zn4F}++tt2DI1FwVX#rg7izWuy`*i+2@a(_sNdH%U)!mGxo++yQe3|{_oHq+;U6TfP zm@X9VM_YEvsh<46!AV$E%>XbMiRS6wM+P~jHO)~?Crr9$ zBh0a~OpDql2?l4&X~@{dbjy~|xr9hrRgbB0;sW^88vM~YTt~Zo*u(~8RJ9V!`Czr2 zSY%QFmX23ioQ48)07qwg#wncd0;K)S`4)njvUcu6T3QskAzvTD`ul8-LV~kRhTPRC zy2qg>{ZO*Jy@#52r=SJiUKt-ywdbMn3pxrec$E}^?xn7g-JM4kpK@ITr)IwM>!gUa zIvq3a1jU~-`VvSY7VWw|a$e=kn{>wR2B_JURosk;cQ?7-MqZ_hRPoeo^&{s#BwHJS zNz~YGn^8>P!!GffVY<&WluKOdcPYJf-Wiv(SX#OUCKWBvl0%1TsRU-c*=uD(j++zo zrTUWF+7~$}(UNbtC$7ZZHnIrhEhT+?`L=%Lk>aCZ#`{U{!^d!a&Q`(wya7)_$yI(Y z#lVL<(xOTSiurm{6=O@tE?2;kfNh(;IY<-`s0Vf zNlxX2`d=e%G?5P`5mrVG=~)@~i!&`H6H{*{eh5EA+0+arz#0`^M4nu|gHL(F6(q!e_kgrvuEY46)OjB#!7qMgE~ed+025n>nj>ydE=AnYOF4t)YNC^ib8hg% z(T_hdXCEo(fljkj^5e){9@slBh_jN}Ds(pG1_$-&OWe5b4I67weKusX`($E3wZqig zw(97t$`8M9cUp9?uV?&@!?W{U?kZYkz-#!}+tSi!@p7=T%ddl;^b77H^c^|cyJh{a z@uw)NH^$Z30AklBzqofdb;zY6oE0*UhYS-Kt^8-j?Lg6y?o0{g{EU1datS0@*&0|M zk}WbUK5qUi_et#ft$9U@&MmpJKg4bTv;Lj4nYU)_5#UVt^A7B%-eo)E=8}o+PXDy zUuV_ZI6mvi@bp+DD6tpOrKZ9CXgLZ+O=8LyWKIQ&oL>hb0~O9xFAGzk`7NJ(qd0P2 z9LIs8=_$=&J@Dq7+hoNq<&n6}oQk|!m_b?RiCHu4M6hEcpLkH5Ij(8uir1t!b_R>I z&79)hTl$H7rmvq(lHf&#NTr(P%iJn_1{^*lNQBZq1c#R>%mit3I?OyFRQgtBktCh# z$BN!>=7g1B{QYj`SJ|654ydX*0W}+~mV2C}ZLK-{`Iz^^dd>mS*>~9u7Cpu-IRWs$ zx{+DUAD!uBsfl|7Yj&L<7K^%By+^r`(wVRQ*egr3wYXwEunow1Z9*9CcE;vtMMQ7D z%QcQ4e&;}GB48Y&C!wEoMmQr;(YvvomJhd74q{5`L~En>19?4=yO&iJ=fwg|vz;{5 zZV+rb4Nhz9>6!kBx#q17u7^AzL&;Joj1Ax=yV;ORny2-e)Vi+AlcBLNq5!|BzIj;A zMBhC0ld+sAT9ysNXT$vy2|tw^hvlVU)TeYv55o$dr3~$maCw9y;tC6mO zI%YF6qRwzNS#hx&!7pr@c|C0r`n>h;Sv7*YBqU}sE~rfL)8dJ_ruzOTVFrcFLhTR& zHU*4M|Dt66@h^m@F8Q%1s9CJ4cvby1-V`th(ghLj8S}B7?&d$LkhaQsouSH|xr#vS z3sO`xIzlNrmGmBMaC|}`Hk#DgFo}<1IkS5S6xW~ruSjL?yte%Es@H%Veejmh-3p;4 zirU{2hcPIFi)ivNK?nTw;OdDdZ=wH#IcSDKh^Y2Lms)(Sn>oQQMI4 zz7RArcKV6C%oxmMh?1$O^-GGJX}ESjnsiab-U=R#N))CjjwHaiL{dq3bWQ9o_1ZCc-2q8t3&51g#k~NZJ~5%nyKLy~y);Z|w$e<8>pa8A$ws zn2SBYkzjx!8DKY5D60%wdH*40o#55IbEP}~;?Q|CIT2PmiD*T!+9l$H)N}810#H?> zjxFbJNUFca6di_}LS{?1r@%nAQc`_E49vMUh>;75mM~EU-}V#7IbWS=pN_pMo(ewe z{Q}B=zX^PRv1Z7tz=}PaXbEX^@Foz~p9mWuk7J$#73otYfz$X*sXj`kQK;7{Ya%r; zR_~b5M7b*+qu}Gq%p0 zTk&TM>H8#N3!HHn-6gLyA$#A$bpPZPiGu2`630sJ-{pJ1#=Gma8nk*@W@c4Y^&zzndYecHb^`W zE6jkU-grtt8(c)XFNC1o2le0`XX5*sSY;<1uK@_RI%0Y(%=^}J64N8{{_#^Y9N~B0 z+<*K>uzI~eNB;Sp?1Cn`WK(J0JW(}=US)M(_AltJg3ZJ#v*yv5y`z2<0yKQ=_0U76 z85FJ3UTNJiBKCiVv2~yc-{CGO&n9|m5$DjO8{*EN*Wawqb&_>F=(!#Fc2saXVH9&7 z(q68l4f2QuxYRSz21AJ`gT96{qrD}WMkiAHnX$^1lL1JNoEou(vj`n5yzx|Hrtu9C z;AJz(jBo9=hmyt;!hjmt3{#X#H*EQcfO0uhww1!Zn&+f)wud|f2gQ1fRF3}eB)#}PXk21v~-Lj0NJ*VJH_z`WF8rJ7J&2^nBSLXrOvc}jyzFW9!*^&zWCHJeq4N?N@*KG%#aCEc||BCZ@ zS^6L3!l>k@&CBBG97gZ6C0nB+8~vdg!2@rKLC+yT4f(}+hn4| z;*jiaN8PR5rouR-CgPY%oT%tWV0OVIKSI<(v}r$QAUw_9|Er$4)|mkmZxi%?JlS-hxXBK#RV6d zf1>mLGupn>v3_iSSV&^^L~(@7wMJCV6RIGe5hLBz zO}vJd9yF&$363&6+^w^$j?S&5?|+cMZFq+vcWgDl@$*~Z8$D20vg_!f|LO^J;iIw6Ch9E%nrvUnqN1#n{Er*O79E zOG=CWCjjps{P~24ZMX84n=^^9q53m)Mump5rf^3KD*v!`RN?L&Td9EiCL6Ac+slkJ zcUd>W(&=Ex+KpGRwCxe2`_-~n8H*+YB`N^=ATK&paVPTvJ+~n1cCf_vTEOid=gLn z1`p|D1K!&e7ZOpk?tWa)JII-8wyS&v zrX?hOk)c&kQJpu?2n3Xt>x1A=WYE@K%C2o2VffdOyHa@6W!G)rfnG8VozgprS2}$a zn6+E$3~L?qB2(nCNL`d)uODAaugHyvhhXR0NtDG(#E#ok<_6ts3E{0-@K9f*I;Ch7 zYMsSf&0~AR3uilqdANjEX+ed}Bi2C~6ufS6w5nz|Uf%FZ`6N?`t)O2j{nS}dA}_#p zXXi^`)IgC(pT)|F6oX&ui+Em}!7wXZG0xO#v%V|!TG@l)e5Ec;ZFL{-?e)Kh_f0^GMxf-fbyl(1egXh#}g z1Wd7<1sCu{1DD2$Di!m~nLJfAR(9t5-yqa;eUP5iJzU2mRHcm*Z*WHyJGY8f@(U_h zE{$3;^!E?wVv@jGwDEpQdLSa$YDdDm@$H;EALozm9BW~8<4Ul~VZBvw(@wlgo1mpf z<$uXXaGEsUi0tzH1M)3^ir)Earre|2;IZBJW%^q4VVxEKHIqn|24E1@zE*eW+uotB zS0kj3Z6WD`(@4wfk-0bJZ25D=+=AoS`sDiw$W-^&-C7=HyOI9%C`Hc2>Tkl5u-u&C zC*PA^h=5i8Q;+H=ELv_;z9A_M$QxC>H8MP{soSgI%P=)|HIuGN*r^EpQ#u~rfXi39 z7m6tuy&9EP&BK?a%Pf}u9o}3t(M(yzxIEp8$0hU%S7OC&im2DQI$V2gs| zisF{k_7#(d1JY4LzVE~9YA{^&PpxlNCk1x+0YUVX1Xgyf3gi+kO&^_;IX|>23Au36 zw*L$A&g=u9kw4WqgDo1KNz9@;Ml4<2%BPd_4%|+4QFy4;>GDnCw<0|07`1^{ zUw;*-2gi^I&92i`>r=nz1M|>??ibT|YAFe`QISjOdxVa#2MrA>I+0aP^uSa4rsRD) zlx!ao$gQV=+e>r=kpI-QYiM(Co+;8+u<4a{R~Rlx=GY$~zYqEj9*zQvw^Va)yspdh z-Wd2SV+}mx3(5HO)uShE{c?my&3&bNYA*^Ai|J}bEoyCANdv1*Yf{rQI82>^w_HhD z?nD26et)Q-#lB-rKSak%cwux;vDSFjKFcwHwkHnR2PdPUK1IzwLx&F~F9{_gmZdBz z^pT!YY#M?oF5#1y{TFw~95jVw(rwatq?*8hj?+fX%Qsq=?^im?UT|~tw@~IP<}9nZ zKtD2gZ1Ax7jRV!4{?@0J5$gRC(cBXtvC7MR_@W{iHOqmC@8jkg&O|C62^4kRjLr2Q zeq$CrRu6mbZk&C+iYT_C7;$D(VmYim28Kw8bmkGBe<>5Dk>R8crfDbfi$3}of)IEX zfmSd}FyU$s8J{gHnLgij-@eSM@2y8##wx~hI(wl*iR}w!rNqI@TC}bz)A@A_` znbz7RLwS#VfY+bKdfMLrey z0yB&)2)j(4VXuOA$6bnHYd77LftNwxkVY;BA4={uy`nwNb>ZgiK^$0>ZY{roEbFwv|a#Pj_`T?3G4T(?+_P*ex5;=DIUr|1y*<3Ce!+=&Fz)dLEzh(6IYG?4rU>T5t|NNL5b{|9vizgg=|K7U$#LO(y#M ze7qYVY%~Txqav|DChBKbeLQ!=97$o6tlJaaSTzz>*80pe`Q|-C(=VWpPw_|1vM{1& zyN@SCJ5=4n@V7dh@hy3`zymo~toHtf{R54;wXLq8G)~!IYezZbiX#V~r#i{ORyg>S zp7%L?xZ!6Q^2ni=uFjx|>AklBgvl|Xl=mOrpsU)zvfB6H0!rI50{!@|XmAFPbZ%uC zVm3-fH?5kD=8Hhy)ZOr95TUQQSFV`m6d_y@J;Fd;jOT8tbKi`?`^^*-L^=CwXia7) z&u-qWC~>P}g+CPfoJH+?^2yomIZC!bT=#O#=q(*JUZDhx>mn-RAk33%d?wLtq?q)* zbJnaUPZ@WLtY~D7gBbZzNiq#4oj7nNbaa#4VoJ#m`SZ^nl6*9F zvT|=FtP&-22j5f?ApICFZ|0!k~@kjE|pPv0`E- zdoz?SzKjeu%VMI-SrcqG9gd^URSnZa(CA_qo|}m^0<&4m^oO7*0rbczh2ee4q1vBG z@}9D}B{?2&kvVLQgk>u^^Ym(ghu611W4Ws`18n=~@{vw#nlA3h5}3+A&N%FkonR*7 zcquoaFDhq_%ZVX9zW{jy@*p_gsMP2f0nesskMs3cjEe)#(Ky2WRPV8z0*aot@*(tE zk}!phqr^xE8#DJR;2aL59bS>?vVLFET=maBOcI*^0y;JOiRZ8Gbp=r3$4ipQt!hOM zKCL#?jskE~ivx!{w=3^K-4MaTPwbF+PONkScgfXy-)WB>sUQd4Jq8w!a<41N8Vn-b zFIYM&QIs7HOhVz3;b6cLV!I8g;z?fyT>c<_{COrS5gG$?1z#n60POj0l^g41DSw{9 zD7#HH5mKs|YmoF?pB5j1h5>M@`GlA-m)1NHseFOo()ToRO4=oh7kVK2`6-a!A{U1? z!{!7}C5%ZiU|`Mec5@62%7NOzzxw<-6K(1dS%>dK4knQNz9Nkxr%~``P~OgBj(Cwz ze`*`Uq+zQOZ6%X+k=1Vl=2&86?w|Z#Z7*d0Sf7vyl!eb-K3oD!PwAUMKQyA+os@5~cZafDp zn&w$fI*Kqb^^35GrWXrT`*DZQM2Wf7KeqMA*1EyQ{2BL1=&EVX)b?b9`1`Vp0#f1V zj&m0db{-S<2^<5PAOh=ky%c5{sIh}@+_)eOaKt;3)qxLa$Tdny&?v&-Td->r-JLC} zyqq2bgS%5c=RWe{Q*xtbcm&>qpFZ*V_nJKxiEXXKor9Pc1Dria3c}OY7H-$E>R_CZsUQBz%>#5 z?U29+&-0BdSe^rYU3*?f`(?<%IE0^p;;?7=Kg>tow!d1RfN!Nj58O>-Nv`-d!nQig zntCw6ao0^r1B>i7$erfBP)cD4SZuu7?(L(Pa6-@$n7UT<@>C zMd$m%avQjIxwRiBCWVAduYI(Soy33WAm1CMu_PFyS>`ZPfpB*J@|r@=-RnK6QARCa znvf{Li<1aXP+oqa8HcdO#EKbR{?US*?ISE*Ml@x`y(=MI7urQ-=i1dR&d-+p6zA)- z1p?R>(B&_Kw9_E@)!$n+27lX|YGL8j;|u4finPBgC7~1Np-`8P*U-;yI0w$-4f}r1 zGo7ZHR}ZY3kga2)N9(o>{HEP7gk3H^>3Iz4vD=9d{en1T0D(tWTLb;>r#6WxB~)!2 z>Ua!7A?62NRS5)Y9)T|%n;?OL6pVr(+ROQ;qd$j?k^DWz*Vp6kzsI!m^GU8r&h!!{ z&)$H#-Ec%Z(U2PXapx=F+XHcsq&B3i)0|RXx~Z2hfw`%Gk@~IN*+E@2`7)Z+!Jhc%FIQQh0NO*SsQ`eD@-6zcoF( zqV5SJfT~-+`LC_agojg|&FZNW7lXQhF)uwyj z@g08Ma(!Iq=n13D&2V_EQem$B#?!-TQw*VBNmK!OY80Dv$`F@dvp4`n*&vB`zIuRum`BW{LY(}w76Qe zgj_xUIk9@NXSA|!z_OzB)ZAjiAI$|6>%VRt1H2nY>V95WHmXj4)G4;o9{P8(5=8C7 z@Z%?fbvajb!fm@Nwicf~14NTvzLV7oj3vo>_btLMfQx#~8xv`+otAYPB#HAQRVP^@ zaPI^1L_$@2DsP|vV_P|B{G-RuDX!g2{pY2=56gtl(H6Frvg$Q%%x{dKr6=y#M%rF{W z%5|IRhCjAK+GB9CdX;a_C-_TbH?lQ(i`|Nq@GtOFEI2S(FckN#E{eR7%QC!g7~^J$ zPVuNhpVzarhTo$%C~-@8CSr5l>dW9Uf7=@qw7dCe52Tmt zPo(Jf?>k?niDX7>j-AT@l5)@GNLtWE+R%HfcYb|3Ks&(xO4r9KIvtM+G9k z8$en(FCBz!$Io)N&(pS8yAGHg@?DLh_85{`XMPE%-g503`VZu+UHp1L5@#)pDz$Ui zaecWT&g_1PI$@?+Vv3I6|M*OtZ1pS6HIEUdA986BtNe>N-FptTQJFQ9aD5l5HiQhD zr%{XTf%_?|2P$v!!z10DE)b^tiI`_=snT%8w_@|-dx1C8F|s3y4-&za+NR`HVJ?ZZ{)@14thgv!2aKGj%*SdbTbjU+qt5U9l z@-fCD+m=TEx(j)n?>$OI1Q@4qK;`RrY2o`J+AmjME_ong zzAIOw1N-NR=lau%NhFspr72qXY-3*k@|HBvGrKcK{B#P`M7_8$kBHm1(3My8 z4tV8+BhYY)e$>lw>f>t1vdQo-mPOIjC!iW%{YdfUfK^{LPR2=}f zhweEWco&{WSwsx1pYCd*J20U`EZh15C#oal=Z3m1eD-0Ny5EB)dHg+R2{!L$f)4wa z+hlCO<;`v+ojg9Exw9jOsGLXVkhY@HJNcwsj}27EJ1Lg=CtW? zvC-PeF_TQVm>t+Hk4P72F6K%lZRW3XgzN1aQB(hpunJ5=6I!`-#~S@Q|M|KrN<4D< z=%QNlO4BqI{S`=KzcjEPfZNDj#9uCY6;tdV(qy9liKqoiu+lb8;EvEuAoG~2wr1qO z5I5E81OZzM+tP3x*qD_$T=0RfHGN`{M%7}JkOa_##Xjexj@7__#( z-cen~={m7_Ns8Zx-O(}Y&zya99V+|TmCF`LKY@P@aBusjoc-Fa=Fa|?gi1wr6{QO8 zL9LxD7rXr#7MZgj`t}6%Q(RRU2R{~Xw4dV1v3Vl3`_q@=aj{Bi8$gnrIi7q>1V=?r z8B3O@>7m2+_e7YBgJe8YBMmSr@nC1waS61twM$ucnI(J4_X8Y=Y zlEmkUVm`Bh^3yo>CHYWKZs~wRnhTE@f_-Nzim+GKnCJ+=Nwu7ppFMz z=!;@L;>XA(#%_s29>}|?u%J)H9`tP0Pn}WeToWR*+L~C%5AS)VVtMJQMM0`3$U(`J zB8pi@Ymg?H;;tWe6N)W1CFpLlsIX@(J2c$vVRy{O!I$ocWvY-w5w9P>WTI#9{#Jc zBYW;mj@j@3RTBDf7e(N@q3gPxuTBe$v(`H|G8`lL^yc%UfS&3;aiy9Z=5PBSxF+O; z@uC17wzyS-ICW0&dRCnDE~#12NF-ZoH#j-@GEvF(@b}(`_iS3`gL3(2))&VGlwqGG z0e`n6|2w?>zXYoKdlSxMGzR)kS-AS2`p-L9{Tuh3m%eCB(w8*~jq-Y(%eeyC3#Yjb z*V1RM>`HW7sKzV5vrVO7z1MrV7iCK)FU)1iJ!9WJGSg)qkD**F|Mq~Fe5CnRMb+fK zXQ~os2hZ=DoqrH4_G-Q07d*coJB}3`^KybWM~1MFg-k0TlA@ezn~K|;$M2=bJFg;b zfkEAc7S^`9=R*_apU27l1FLvcQyWqnw8By^e?W5!*nGoK+CiG|9yEsZc@j|y69`F* z7Xtj6DK)YIc?}+xeW|b*`{qSu2QOAc7I6_pw;R~25wF=dkU8Nys(z)EbhXxrHdj4b z{LOhPhICzVD*N`(*wgp(D&LKo+5#2xzFv+cT@U>D39%A@&H0HOZP$~{QF?L(;vcmP zwE+|*s%TkFZ75%8kH%Qq$g{EyEriBS7}~%|58m00tl_Kf98C4OAx@oN+*$pjX7Ae< zq>2YY(F{u{M=jcXABw6 z9B*{pc(pW2sCxG*`_HKu7d z5Iy&D4z=Lka@EHz-WM2@P;{e;pXHDaxdg6CiYfxK@e9gqm=+BsqZdWYxFSDb&%ANA z8HZ!Fl(A!O3!NgRR|4xJWA_&D8pn-90LjJ$G3*lB7f1gLTisEjr;?l(m+oqV2m$q4 z4}z8vh7(QTlb)&Qox9837l-m*M3wg;;oxqyM{MNR>twdjp}C5>_b5{r`%xX)d0HZF z20z!fZu;BUyNoEP=yLQBtXeEk0#FtTw0o&Az@699>47KBa3~s;zp%KnnJ^6#`1^6f zJWZl1^IjZAk;a*ZUT_{AUS9wPhb4X*(15rXR&{n5U2!o1mCGY%Ylgb7PjFtH-uETYES`WR(gb1IPpEq~^onz)vL*&K$9oc`{M=Pj)|-#i%}g0jfjtm}3`c9Gw6 z_HL@Wp2f@eArlwbo!4|tl;3&K>8WI)@Dfvq{BbX1SoeZJ`YCHXchxh5;RU?2X=&B$ zU&@|q`XgO)q$@|;^-j)ef`1i8_DqIh0!Gg9{M~=FvbpIX;zL>B|Id#Q|J{}U;-6qd zIL|u2b1p9~RC!=A6imQv*g&lBq}K=zmaV|7bX`B zvXGQ}gwCIm^#@>VB09Xa({l9}@^**m)f!tbx|aV=Z=#bR9vl+7aBTv4E>qOjKEv{SGse0n@o(@!Zrr8a`PXdWlS5$9!7bLab5Ml8&i`@t*@`^D@q^!eEJr~kmt) z)Zof_Vk>x)d?{RP32o{w!zWPfF%??ija??U(N754=IL06hya_7rQb^|RuhaQ4%pj& zSkaD&&$Xo!wF5U%twkC5Vl_jZ=kv!=5?qT@tUSxXJ}cjDwb%kV!M-?Apc>QdGq0yV zi2%m(dCXU(Dm8y)MXPn?3_ZP6#}m+S`ykv}yzt2!ld1^#DVNwcj@%-5mSOfD5qg4F zuE@kjKY!QT^i_(ics-d*tBG#N)=OB=yRGNqMo+md_{wh@(N?Gq77QVQ3Iv$;yu`h1 zRrw)Ur)EGxCq@_cRQs(y&@-vR#!lPBqxsLoq7p;NEb~yXhXP$(Aod~wK4%uNW0H0% zM~w?YCUQ;-0kP#EXfD9 zF+`4Yb1Izfu0*+Hl>;+)Px>zF#Wz)^VlID@7YD&fyKEI`y+u4AvV$IwaM2(XvLX*P zo?hUdlj`oVp-$-M{_CJJ3pBIdf>ycJ03%TW+ zlPY`X;7gC8aUxlkXb{2Ia3bt!FTtIlbfwyl`ux*JGt;GU-#g{3c!{V?=O2BB!#k;m zTS6x|V{>pFDcHUlO^I^L^4GzkGf-&ry3=ZVjjV3DS9z>+;Oy>b@NSY5>J&`{7T=K) z+Mm;1n|TCBkdZ7sJgZMtbqbSF-6b6brW4P)(7ZJ}2~U#G22jNqI(ekgPS7-oCe9l? z=*$ohmJ_^;IVea5o2m##tY+yGR~;gls<}pxn7?a%dk5zcMd@C#q&b3-_d0@kZX+Ky z9H%o}n8KsFLBgdS=qmho<4*7S0BZ2aYJ@<=9GXHh^;j<}2VA=@mkQ(S8G&KUO1J*$K}6RxPX( z5x9Z0E2Yk7y(c_S2cNCX`s&^H8J{=_qiZ7*ZW}Ur+xPaLoS98C{&1n0>(t1;_|du+ ztnIj(fC#hR;>hRPoH_psM~weYIo&u zAp4L{b-&Tz)8lsyUP3{G`~d#)O4q=KjtqVL{O4T%^THstD81ZGX|S=}dy>WWYvd-I z2G?8Mnd_;hkT$$;tI1T1A#O|ff5!=2V*g492Pp?RsKOZ^7ku5Cobs)@I8v0HlflRi zuK?%&&JKN{5AECno-@ACugj7B;uz|I1DBGcxVuy9$DX;LVig=O4J!2i-`IQasHWO) zUG(#_pjc255s)S#B?8i=3j#{7VF@IlK%}=22%S$6(9jeJRY2(^un>?ELQ#<31Pr}M zuc7yPmcPCC9e3P&&e*>*?)~!&7$ds!_LsHReCK?gXV#}t91m6>c%BE>#nVDMSzCxD zZch9K+dY(h>k)YhWdc|ZgF!XTM=2e@lD8Z+9FA`phK@aV8VaF#UF~?Pd|^O!pn4Y{ z*#s|f>S#cWd`S-Z@z}Ex*z8l2f{T`7Yk2B;`+qt^5Amh@QMSljo#xc0>)Zg*gf(11D&wX%lr*mT6Ip6sEMtOxO@6bv|9J+*&nns=Y$Lur^ zx8e5MxMrZrW%{PiJ3{RVSO1&^|-Sg)9aSXd;5pPbX$dN6=q12nO%(WZCU^es7Ddz=c2bp8}mCnO=g` zd#UeX(0y)vGR-g9;n z;UDXP4KVNF&thI87Dbdz*&X_R(_CxTz4c1z#wTNRN%^;>Q4>9X9IRk(i}F15=%Cta z*cb@K|9-*B17h9r2m$s$_gTAL@q%@Yx%BA9IrRoLw`k&|Oojel{m%HaTMn~|ZbagM zuxB(;?d!5H9u_?$U{tZ7o%G^MGEI8}g7lyb@RND$m}hp#j5i-w>5PQ+M@~oH6f!PX(iW9-p&NwZf_w0d#HWlQXbKq zkuiQ6#xNGNYv(a78b6>PUVe2gd#AW_1V-|{N1YFfiTp{q9@7mt+xdp zFEy8ibSE33AJBFX57*Bl{YH<{PL89qLt2s>cuoT&!1708=R9nw!3Re;^yW*EH(&$h zdng^rG&P%5c5xFNq$rCW%izq?YHs-+crpSGLue&wV(Te+`sC%kp3CKEA(*jtaaS89 z$!UNE+DhG{q^tt8RhDF`04XuzzL?9FLCTt|N%@w&n$KaFMKHZ_hsh|p00Rg7hM9mK zU&@)!d`w0SJ8O@9CBxOSL9>n2s|wnp&wuvh+hk7=v-Te#J?98{Rqs{gkk6(Wtv&L! zUe2^!)XD^q4buCb;?x-1L|>}rFD-{G`j>lz>C!U;hE6ktu}V23+2dK(`SsEy-|3yyJbe3SLKsV#(XW9@!^m-L|(BC%A z^{d+S%f1YAcjC&j`$v0-6uf`GjUTvt@M*G*rl*~$B8tn@8=ZMjvTuy(b-)}>Z*jc$ zp;Yyb)P_fpzo)?{WJ1NfD9|YlR3wRFGF6>AD9Ghkn2~*QT*19#^S9MD(D zkY)MBMmvMGVgU-y*e!5vhJGO~dJYVC;Z1fc1HnY2-U(fuLu}?zA!HbqdR_|l{~+fo zelfdo)9k$CJT`R$9e^b^owj;0s#AHGi z78YHy%DdW8&U`zNQ=VZWA*Ej&WR^?8it`T10R9ULS;7^uhQ zzAh~w;ueu=EpCQ@?8@v&BjuCd)(g>`$=kZ0kCl7f$qjh^JAJMl?vgz5{zz%}n;YP= z+og`ujc-i7G(mPX*DP)d7vq%fug{rfZs6N*XhN~ zHSbJV_T1=agw@r3R2$Lko|hb%t)4=YIa zFMx~{aA%b)?@lf1^{=R~&4ZUG&Ke-8$48eIcYj!}1`8~w6InJWmraL{79TF|e%&T+ zrRUXBx=kb<)~L1Cw9|{ z=gM)h#$vxO%X&wtxg)33m@!b+Ky?v63odue{-W91FZpekQsuTKg(4rvl&}>Oby|VN zzQJ*O`qar5-xia?6(dY(UbQ1T+j;XAXd-WjUTo9uABCpvs3tBYP3aEKHFDJ=i!+cZ z_&qPF7)zz5PO29qZM05?sW@XZXXR(Q)O`=B3R9y`3j!j|R8O+I=52_PxkA+E6K}G& z>4?Wg<@Ka{#eH9etIB_z&J>(%`mrm@ozG`}VhLHx?pvx~(+*`OhS=Za)brK&?JF5p ze^F=(;Qt{xvFw|Ae9WaMak#JfR-v%+_`}rz+b=PrMS*1fF|KKI+A7BjSS!c^FM&QY zMoW250XvG0rnRhv6YqG(7o4W9$on5q1!{c5#z*;%JZxL&E~fUSNTtp&R@F}h+#5HS zIf_UR3K%->v^WABk)@dRljWfRjtDzfL7X*D!1@YfPuGV0Ok8ZL#Y}+n%pDE-_D(O( zoj!v&(UU!LfXUHjjXkkU*xk6tsOxy$bl5R=FqQv!gHES&Y6N<$Hz*!+r?}pj2vgprxlw8z(tp z74(m6ra*zrHDI(bctmShSCK`A*v$vjt+$bQk1XUDS{Q|2FTSiO1o^>rVbaHdXVF8zS##K*R3-rG_cr*M{@ylY!muqB$>v4pCRq|T9LoQ-O zaT#)H+G?RQ-#iC0$4mjo@qu?-0FTPm?sqHEFwPDQo(#s$mcdI%1}D^~8akKz3qg5j z`953bkGO+$JM|kGcr2w?Uj<(5z4~tfTOML9Wtbrvi1uP0 z(3!(}eA;`rFd;#npQY|S1sBq%aF(>#`>(GGwfJGV2jB*Sp|x^+c6tW>M)6bXLxF#MsUZe{KPs?K{t-Brv;T6T@MIaSnv`| zJaUJ>8HLw_yn8Rz`07Z(tK4Gh8Up>P;_r^18p(Fz`ebOo~wgP#?oKmy3{ImhJL|82p#Xx<{Y( z)DPBwe|MiILr@7C=n+_Lv@Rdi>bUan-htcyD3n&6HplOc>-dxW&Wif&_=L&NoH+mP zTP~6MS=TISa_o8Fi_G+ekL;cWPtt;XOPunT2uNznB1_HUXpWBnlCGkoauXd} zurv|1H%Bgj^^gVn?#3I9!rcNKlz8(>ylQ_0J4qLB^{=4LNMZKQ63 zpvCPS=Lx3@{@UjSm3t(gz6Ejc+;Bborv|t_Rsxz$Yk?jmUky^5k1Epfb>=RyOJ6Pk z5p)Cd!u_T#DibC^+}b&yHE3?uRS2-M`)S$h@b;$)pwNytOcE3&@ze2+v8-RjsYL-lK>==P zbcZ|>U&CGrsUw+WOJF=Don0fhs)iV4fp2>2EjQi;}IgH!ALRph%^+EDf7u``r^jXHmD5TzY25AO| zI7@A3z&6Ud)h7gPP~MK6Nfhk=U_+wu(zha+j~vEHbd%So3^9VmM3axs4R8Uo^ZORZ zdv%`%(PSe3%&(u-g~WSXGRf=k4q*r*W^2u2^-lCQ!+>`!$iLiAo-#P2l^v+LmH=ra zvD@xFmOtkuRygA`sO^{cL@UbU`{Nt$iQgVSe}Dcsi*bJCCxcpBYnPZf^mx1P+=Tx< zmLi%**3oJFTJw=vVlxc6mgD>NNraC$wu-3!9#(KasNE4wi6RP;9|)S1Ni3NC`Q`CKslWTqS!@N$XJonnw{x#Sh6+QK|r z)D`1qGqi;3Oop~>p@Z_K_xD})?icY$%Kkb**eVjqlt{JkaG%DYQFDl)Ti6z`0rM3e zlzCazYox_h#+^a?M&pAi{@7T_`z$31yM(N#GZ_w>4}UtRFIThC-P1L;#!1UYS2L4O zUcBfeepK~|atl)c)Kta?D0fK&c=OGUtrB9+{RCaX-!bSYJ8r(AFx%!Pb>7V3$M;d{ z{Oc-ciWMMx|1ufJ#kL)}dEU4K!891v+~qJYxclTh3tA;14j1&PW!oQA^4O}(F@3z! zV07d5u@zvkK=4xqJ$D;(VSG}TXEDsrfr!?Om;#%d0K{NOOi7kB{_$4F~$1`PD z`P(iA(WQ0=qE7BQe5s{ylL*=1#FA`0LhsUJ5K`74bOj@{0wCia{F{UplKO200L^g7 zi*$|598mmwVNYg1Z<=@3nnua26Ko; z;%NY~_In&I9-WHEx{d-a=>f^!s6}w^b z`n^9Yno}DB?m<1Op!6 zqAm2_7{F^9MZuV^%xCD8^4*+1|9oa4aPpcM3z{-hG{Ud=iYQnNYX{5m9OMf1!W?U$ zBgx#hX3t(VR>RYKLz*Eth9$7V?h5=9?JbquC7fNFh{Gra%Biw^4v0chN}2oeqi(#^ z6HE{rprCLn1C)0ev`^lv{5IKmgOoBZJ}aHvA5)Nc2dy8ASo3I*U6OGQL1^ulkFYFi z*_}-4kD#Z%)o8J*>)7+r$|PA6IDuEQo1g@JSr1+JM_n(InYXJQ5XW0Q%}x~p74u?* zo_s9e{d^-HJ55oWrwdiZscIqhFiz1#>1m>_GGVe`G~s2!E7+(uzD!g-G|Cm6wIv|C zd2o;JtDs*IeGL_ISOJIEyNa%IwcWH2w<5byN}4YrTwA|2AehG8wKBn)5TbN=`?43Wl-AaFy}o;Owwn2#eARb= zV1vRI__(GAO3F_p{D}OUU);mYHA!;?r}I%IzI4mAmGY*pvxDKul3>{u3dr56xJh}r z@UR&!r`0Wo$en^H$sdSdzR(R!PNrC_;zlqm&KkmM;X4^pY0`Q12efC;L%;!$_xa>{ zi{3+{_gz29>dtvLb1#!LscF^DjO~!XLA?p@ote^?o$eo7r&=5b;p$M!q!^aJSHKTi z_@VdnaRT7pQo84FAv8)wlPkxSWu3wN)ujf2eS(EuAh}F18fGFOF739fHY%7tlck7u z#|!dRUL;i|H*!OXCgpl_tCA%;sMM7Sm`Fo~O@V`==&n#7%~*YzEia37pP6G5o^~@I z-%6dvW~piA3amJ7@#}IxN7Z_O!5n^JTtRwF>2}59;ecxZcU}O~)JhgtL=sx;ca{h9HPM@7&0BfU3a#Gb0ra8pQFfkn0l9vD`w14Q^HiPUG%@Ej>R^5zDXV%DwYQSG&Kz9B?>C9@m>YA^ zSRa0>z`}ZmZ$z)_?8Tko2V=K3NyD?h$eTylXEUF}sI&mqnhV^t_C2A74s%r;7yXHN zvUp zBU1b&O@z;!el_}|5_ai~H~lGa`4VCznPj>8ZeV*^*1=?LYDp*E&l}>yM!GPcp$iG} z{&Ctb*qLlNVqbBvdbH^kY|1t^sF5X33hqn+v`$><^XVePpI1nxY*4KB<1ZitL>;w^ zT}s~dhCFFFfFQ4#&u3^+2iE~n06ul_uD#b|`nzZ_QAU)x!aJ!W&@Pm`@hP{H&fVWy zix*OS6knkep5cGklApp65fqk^zbfj&KtiX%!>c_w<$A4LT(c zmA&LRfjc8ShK@e$?6mWO>(8=>W~`DCl!<53;;ysv--XK)p|=!f==NAy9D?;d@!Bk` zoVmM*C_ySxedxhG{23F4VCao8bDmINFQSAlh$L>97g>k?YZ7=hM*ntk*^S@ohfr2Z&-(i@dPr7BSV5JUy!?)%r^L z$aewfLsADXDX2B?wS1$z-}kAHxc)<+oDT`D{pjLaOu*7d}P9k6y&*E@R5tE8G8tY)sERlbXR09r@a3A-#PyM z)A(IyX!O+xr)*En47UCGf=*~?2?ZEP%3s}&-Rt=(sRNf>-@(XMJ8d<)>^+wcNM&OV z$K_w3-C;U0^w19mJ-4I)n0I#t6~-nDW>|^8d=b-%dOZ)sS1?~$+2vn;1v6E~ zDnJf(ta!X1)6O@zKw7dJ%1F?IX@6dD0jxB^h(EC(71GuZrS}LoF?@~OI?Z0@J#8Tp zzdRzosD6oD&MH)ZE_tZvH^?S``wU4R>mttT>s&(Q7LM$~V;GnCwV^by#^jF`MFwhp zfqO6nC6xYG_VVQE&(mh_LqMf#_I1t<{O=bw@0Ct0ks@;AnoOdJVwkzR$76RJZ)BgEY}X7&V7yH0`QXo zMFUij9w@hqg6RyrHptG?b(jm2{em;nW#zehaZ(~&Dh{#sDlzzhCMZjiW-AwoJyAhl*ZpCGinN*(|B} zyMzk^UO5MX27U!$lNVS6FM<>NKxb-A&N=WZ^h?uv{Wij*+Pr-7BfcL7P z$h6tp)55b0jgaWhG+b~f6*@pr&N0`WW_D}Bhe)KX3g;wF*+t3QJH6%s zP#*Z$6@;2c3I48A7z5}K!DInZ#CGlGaNI8ezU`@a#l4HJBC`ZONP|M<`clhJFNjg- z&0;%zBOkq_E=0EDCf(5+pm390^bA|w@l*He)2dCzaiQPt%t=E^W==wXH>PQXugaX^ z9u~tPv^oQCxU3f{!J{hp1+0T@eetIB{cr+PxA2^ouRQ(T;kV6GMUssH$|@2Yed&6 z&-mEHRrhd{TaBhe?tp6t9ELuCoR-q(NG;fu%iKWjJEGR(R=7Ld#YdVX0vXub8Rr8L z^Bs8F;oeyT(=qK-+C_+K(AS&oW@_#MSLmzOvaNACkg(F(`rbk-%@Ecj()T^X)Os%C z2^iL68&-l{YSCNPa%_rbAb%02qy5 zFOb-9q~13t(+q=o_t@j)h8-&EFnv2O!_q}RMAnNH>6%x&oME$0Z_2cE^i-&uFxn3C zx}5AH_V(>FrK*9otGHLvNdmeqY}DK4)!Qm!%b{tap8YxQFW);_FqaVu+~h+>0k={?AtNXEL?P3$VSEmCMf1N3OutY&zexjm?sMwfMStB-mY6AC+@$N*a*<3dGF%gP_@*fY8O_;yBeuJm_0Of?`qGHnq953#Of5PrQcX( z8-Op2<7Kw}=%uuG`JAo9Sf79Wur_-b@i*OI-VXfW?Deu2R&II2-{4%HQ|d~FHABB( zLRgDo+~f)hliTRHwIIC{rrBa;=}VuV*Lq=xM~esUu_d@u$ExhkO~A@dSWc@@aA|Tm z{*lh3H8txhnv)W2YT4=VVHL2)Tw!e|9pC<$ts+f1^Z5PgojV;>atE@)(D>8&5+ZG($^1J|F0 zM;rBqGmA5(twtfT+fcQGJxT$w?NWp#Ti}CptS7sLR zp93P|5Bi(H^`_Ud5>M2?QE^I!p4b2i@cI!w7D(`V7Sjzcl8*!V=VbNS)io@(-bC&j zbz{W_ySF<^OpBp_(-h7hl82k`eiRn{%tRD@C`r~|zE5}h3CP?-Ld(wWo>ifrQYSx$ z9@;#zIeIY?5d#di@6u;vNd!n)xFz9Qe$VRs^f)={#VA8Uj^|TV4|q7QkZ$!`J}34H z={eO_H+X(7B>p9S5tOBSsfN4F+APc4)ntD6k92421}F(@v-{)hfl~y5x=Nzh zf^Ej*MrmOTzM%>7mp4hiqVesjhA7NyziqPA0za+&b5A&kaRAQd=ybiH3I8yoO%=5J zfLvP{*9q@r3Ha$Uz&1q-0GK(*h$w=o_woY`5TxD^I1NaU*PAJrA5YNJCfq4eMAuJE zp)|c&c%CKo6&z7DsE9QNXr{y?rP%(OQw8vulOW{&bwlHEC%%`okrZ32YBk^4L7p*f zWb@L3UG_SD_5-uCOT8A2WJM9m62jLmEr^ix>Dlx*aep6MANmIoE1PL9lhMH~J9u!Z z4bs$~NFzRN{InKij)t#2obapWZ~KN{M&yb;Tx_Fg|DcwdjNARl_C{}Ip9VTl&`XxV zk;38hJN9|_?21CkXcRyn!PI@eWNqv2$maN)Ga zu}{#`B8C<(vb}x(dfRDERr>5l;wZ&S(k>m% z2qhk{)wxVJ?5Vn?=rLWfzK}U_idkzu0*aAZd_;uX*dwCbK;D~~%;j=M67l)B%4IY_ zoGgbhUCvJ4r=pQ8n4$P|!UmMS_%KQK`U~66REFb>8`&b4(Q0cq%eJ;q2d%>$-?%nD zz;G1LL*f!7O%e^mspKB3&EhQC9{I@7E{7p8+}h+qX6|?E2Eda+q}4n8lB(mT-djPx;p6a~GsAF}dYA>0MTS+mkr%Q0+Lz%W>!uB_k-$RFi+d*>6lvB)G% zG&izB%rbJ$vsJVS&ej)&^g{9g^=~aRy#NqP$=D^#BUA(n-lSI04i7&8aWpFgH5t2o z;_TNGKhx9>N55pEu!hj?*tyb?iJ$rzHo6 zp(F+i39l9&f?8`p9X0JM!wBt0gn!uj2sVj_V3P;8z?#Kt~UIM)o=S{C$@ipNA z3ROi0)vpbvTWw@QCzY(5YPl=t&;FWcz{<_y-u$%vUcGnyVEgAY!;+^DF48}o0o)8! z7o8t?BZe33T;=J+!I>=0?RrYpN~2BO;HQRzi3JExEm)#R4JRHL2$|8bc8++RIoDsm zT>%T*Esq$9`0(!>J^%V^i7VfCY^%Q<{jt1E7%RUSPjbH`IZ}0wlYB+-b+eFdM~IUI zHn!v!sYNHX*qSb6TjY2rN_n_FD9jvS;IVfvzVd8)fRBRn1TA2<`$8gx0*D<$NC@Ts$O+8Hr!x*1ak{T` z5{Y6m0%Bh_+`>YNb%y(hdm?;$>tRW!N8S_VU!EU^@z-3Fe#m6sGxI&;O0@vGAg!bl zgKzaK+<#5xmjp5O;#h@6IC@K1UWYYrkCzZ@G`Z}Xj{k}@dvvRy+Fx2ykqI+R1137% zD2gS|2&C)EN9t`EzKy^14!uN>-q~KHWut9)_9ArAD8nD<`E=WHp}gRl;#?Mstzhr# z#z0t)2%UfV8%oS8|Ap_u{i|NWRqCCAQC(wV(!-pQbsrk!qce#WA9(D(*9j*iBBYkj z6y5aFjTq+4V9d@l$rdb0e-79V%bEDg*d8JJ@p5btejXoXZqI6$hJH&fV5}mFrN+b7Vjm#BoLo}F&Zpp-=8Lb=3%7dcf>mqcijYnV0P>$Wh ztZxu!`GJ?|Cu`-75Lcm!P{k&Nuc&tB#-ck#+cJ|Pvc6gVEf&%(zF&b~R^ID?C$2C! zPD#&+mA^1Gfs5g2lDJ+`jJo#|zD^Ow6>nyP>SLF`3$G8RBz_Q;75ppG&Eqq#*;}w; zNp+q>ZWt>=+W&d$*d=ZKw_(J=7aqXS6JMiOs`2=;dNxnE>uh4<`h%gTi?c;7`0*-n)<&2ve4; z7NdAc1Hj@pE@bp6i12T$CzTd;)t+(F>WJK`B(|)dPpu+mCH~Cn)Qs*MRowk6!Ht^+ zJfvIV58p`$;pL}_*STYhyWwZlU zi0$XX`p5*nyUAy&y74|%;9+6dV*o)eaa97%t{_==z(YMYz7R`p50nb?2Brhw-1zCM z8%TH=hwKuzxrv#wb{bRptC`QDGhc!o{geo^l&i<2DUV=V){xq* z8|H9Bed7Wi0|1jzbjrg$MNmh#+V0^^imVF)ow@$7@-z^Iz@LVY{}Ub*M120;ZP9BJ zq^pmC2~D(nd-4slizj)jUggiw?)o$3RZA9nPs|Khv+th%xTei3p#yfv0L!nD41ctU zF*zx%`*)8X%DlZw;|8Y9X`|Dgy3eMy0yI&LR1t?yQ;Hq@{!i>%_Lp?u7Dqu?#+wM% z)wf$)J9abtZBN+M@65bxHGX|Mar7r!@9^5 zLCp*ytW)Yu(wF~_;L$ih;~7AQ+jyGoRyLuXCwx&uflr_c5@;F20)<&0DJebZ_$PV&UpnXYm5)S>se zON`dCVf+F1PUnvUsXL{thh*A5=9_h|Bu@!DMrZIVZoH!$r@= z$u?WJctWGuZ1JA?2b&30wCN}dwMBRD;$s$G`PF*Vi65G>y6fy~d&h;Gqwd(0KjUf* z9l`~v*vPE53n%%hzbirk%o(}94|V$Y;`_s|#61Npm`At=T90WR(#i3$mXyf5!=9fv z+;7v*$;?@Q3Ug>3!PFmq^%h}&A}LJnALhyirH}2=Vu!2w5RKf4VR+gBO|T>=2I_xQ>NDZu`p5p!V2td2TYzvK9G zX-@0kr5*Nbh#jS>TBx0NM2?j&SdHVqd&WBckI7X<@mdg3GVoXZ0L- zlV!-r^3X?Uy#f(WhcCD z!@lh0{ZCQEjVX02;D+=UnBLhA^C?`T-GF%%@z<-3U-)E5r8xPMO$>r!J+?Gg&dKr` ziM(GfeG}3drd=XHY+de;Vq|HjreFx?RhifcF!DKNKNTb6UWXJ15{=HRDM1p~zb9`k zW)LTvI^gZ#>;6UEnC=rfx+l6G;KGfho8pLkjw!u6vxpKEzxam6Oz-C_IPK^uryAti z+gH?Y43QH9H@6=!>ILKt;f$B`nIAyne)2T+9 zoh{I?F&F0nMLr7lbKVeN!9Y3_QJ4C-k3kn|d(cl%RXfzQS=;9_Y;Hs>!^Tx-5vl!m zX*;hQ&nWOy&1jYfAVD?+pEqFpi=4IVe7149#8VNB_;Im(LhCm@l zASSTL0KB>J_viQ-Vv!rZpeq_yOl2Lt^BA(-axDp>h9yY%^*;(mVRU zlf(3RnP(ZAuvZ~ds5J_vZZ&QqP1nYVL3>p5cZGKC4cPhd4W1q6K>_U)S!^kcBdsCdnSs)ErN|=Uf&{?mGl>%~jQ$bg51nrZ@Z@^@ z?<;trUvZ;dG>`V6)PRc$9?m9uQk($U=yP6TRQ<~)ECzcpz!@k&FL3j;5Y9KAl2m??SR#u^}KAC>s%c|IPmV#pSf22|>} z&fXZ|@cEjTf0OH7#HYKtr$3 z^3C0HH)Hdd?T_4R&vT{k0iUs%L83uDY4X#?iU%jJY_4cvb$7)wxKM;=ZfYlUF95}E zwa!e=Acyzi5zX*)86eApr&|Fw!Z&mmXh>m??R`%a122&Hx9jn8(GurfQ~u8XRL+C- znDzni?mPsqdr1bz@yK`GMqF_;&i6h0tNdJ5F7N=2{2e58mK(!Jt0hCq+CMjhNd%j< z+6FZbl{6(15BTdR{v!XXy>yut(hCBpB3##$XWLsYBR}xs%pn?{?KCqWo;;GnyMQPe z+up+=#hdZe;G>CCx3+8H&!MBQyPO-h1<;ra9bT4NQm-KSB2;%cU-Fuwxd$jD++)D- zQafqF@{N7*cMJ9!PYPkduBFira z+dWQmkrjCXU~f)HQOb7eDDmj`p(RgI713M2;0Z`qwmX2y+u{`x-fo7FK$0Gy0peVj za`)RnF~3dz$PLIOoswWO2rZsn%F?9yWV2sdy`=6abiq7aat$Y>teh%TY|xxMXv|Fb z9aHR~cU^_P0Sw=^at#(Wx6iQf|a;^R7ln`P&uKeA#b4W*}y*tl12a4ryy-ukfBZdS})T zujX9zn|f+-@nCb6DSP+^xnVn^syut{7@?;nB}fu69f+gR@u0jVX}nf&wA5jf-&+pm z*ycPuM66RqI7g<=Ic1T3zV@1qgeF^f3vv8=hxY$d>i?|3|Hl>hCx1<2pJ;i=*MJ*6 zI+abG3l~*S!ZZ@8<4A64N&no@0 zP`}!Z^Qva7J+x~FG&|ycTsYb>OF3q^=C_v5dmwg9saQSSPw&5Ktz>v|uz$jdD~%1{ zJdR@QtbwGl85#Fa_y#=(j@tp@xrS|@EsqyMV{iInYU<05zx`M&Sg`(QEG8^`?Twq| z8diD!N7;$D0POSeeC~(#35zkgYYLwGL9I5ZUG`j~?o%%;?6+Ge+4`H#{!_0%@20;D z?V1m8G2CmnQYowY;ipAgULga4Gx#A`Mv}|4WR0o2zn9u)c-3Bhz?~!)%ILB9N$X}G z8o~D?Rcs*RNRub^WTfi^ySa0GH)eci!`iGQfa_y|Zq>VS1^+%mJl7!I%0%=D zbt6b?VV~^$G;?=b>Ci>+P3zEcltV2%=EsrFJdTJm_ z=b(p3Y1;}#XMSsIB5VwED1J=87oc$6P|qM1jyLxj^N1TOt2+JP{t-#M2D;!wqwiS1 z(ke#scjC-bE}L?$ zCA*=6FR)!Vl(RYQgJa(npQ|L%w@k|sp)T%#L*Dp8MA-X+WzB&!hZ-)$bGAgsm3pV2 zO`q7bW;@K|RnJn}N_Q+ISEX$V%Ahu1i7I}ljC_IXYCHP~c?4F_UI&+huNq=|hekt3 z9=(0c`LEJBLBr8(E(+{ucpX$&>2vaU#Iw(Gpv>3@1q)(X72SV3-~asrMyn?@4@`9* z{7*8!i~qkezw5rRMsWx|c6P#`oG@-2rW{fd|H@U5`<1N|ETNv_^}Fyl;pqKm6zxEk6)CN6_m4{_Fu#M zujKWrwhkB+`cEgS4lgh$Wt63}73xoOnkXl0j17mF=%31N5aRrWBdzC0175=iA|gGa zlE8z%l(;Th%F&BH5S0QH6+YDt48Xs0n{(=(`YYS@eDVKe<^GK3zq&Q_a)H+DzlJPi z;BJBW*Oh-wk3&ew7UQOiLO*tPba8h2vqHju7TCcVZQ%045~`?-^02i;JwdAJd3rA=my8l{eA;8uOTC0DxDCF*ja#PdQgu42_FC4YX+~KZ9ICO`C2c7d6!(py5~+!lL7xT8+5z0X^JJ~Gs?^$J=0M7t znzEddupCJw1i+C9({I@l}0pB~Efml}N<&&-wnVlZAG zq%C~jqYrqb7c`NU?ex@R8k%ZEK9?0wQv2;`YY#oTDY zH)Hn;CT=z=m<5^iNoU<9{!M1q-BYn24O-FQsk^8a6lack(f=s1yE}mKt07}}6aV}V z%g+kIZaf*YzaKs2?0n39bg_EZwcL>qbrB$1c#D!n5}1J*?#!MzJjoMynB&_t*)_ z)K2P!rzrXG4>gz^6-su-TS55sv*@PacNpi0lT*gkkcr%@5htAnLEaa?7?&c z2841lKP`6?#bt^A3v388PjKf3{I1izK`t-2EVbMNAb4vgk;`K`jhO$AY3}c5x@hAW z+#Q{YD-qoc434)mqKL(X#8&nE{kv>u2r~9+p!~YK%M^iaT2VwQnIVY*NB5LpOuvaBTCkwWX|LX zSx@2dh0B>RT$K%08`wwp=fG1N0)IpPG_fG{5*@GiNO3O={8tvA{y&L`%e5$9<9@CI z7Z=pW+m|X$wrpk38=7YszQ~OiBwPR*oAFm)rrOCo*1*?EAdx0ou69mMcujD9F!xWR z5770FB3yuxGJtZh{(^3D6v-!EtPnAw&E*x3dXD1F$tlaw%6bP{O#Tnn-aD>|t!*3K zd%G=&V!?nSMMPR6umJ%n!WJot0wRPFNI(#zw~&MmTM>}Zg@_HMR+n#&}a^A`tq)=B!4mS;^eD8DAQQw-!a0IB9kiBU=+T^vT4C_mRl6gWbo zI{d!)Oyl8)_E|Vj-R754K+~{cM25%=9`m*lY7d;+ZU1=XzIi2^x}5v6z&4-Krro#d zyLoECrp_(?$xkjEe(@QP^voXov-^RQwZ-Wwy#zHvX-N^{#Q%8s`Pt|iPgZ@A7ou}^ zRK?*SQXuH$?a&`RubQ6j&NoIUsqL@q>#H4ncpu>8d3cj28^eB1VcdIHnOv6N#O4U68%?MLPS6dUyRSOWP$~~{W zI2E{~5b)f*O7HlOcPsZ!AX4je17i;sjYju+)R-Fl4wuaR=c1%LQl}|fDeB4PT!+b9 zKgh~E$PEFabAy*8|1IB@t>}IG-MKjTw&h(u7VY8dQO}hWn$`GBCc=FKmT!lBRA%}c zYGYawHT=ox(1*eaFi0H}mSvnko0{CgSMn<`0bnDbASEbSrR9Ak{%Gu->| zLP!_fI1i*Sr74|{s>yTASiGA`=^qlgNWKk+v2NoP?flFd{2F47G})S!`KAZiX>td2 z!ZN;?mWHqaA*+IBV&1o;7CI>OZJSQ&syM~@%%^*Lw65|>52PN2UNVA|UesCHnZ?4g zGSwZr7`=*oJD)9ey{C0F*@k?2Tk-aXkh4b!)2RNpf^i77S;C&t z3eVd&gIN++sSsIcO+}>05yfE6-J7O6y+bIB(=~tt9!ULq@yGnk+`Uqp`)}QZo#siW z?xPLdOL{4!pCzp@)@`#0biXDz;BaPpyd`sL-U^#l+6H?!CXm%}H<1-mC6ie;9F4j+ zQtVN`@*9nW<<@m#`*bf`V5o3fb)J;uhMXnx{e;gvaxPzXtoPk`biDbZ6{M@Sja`n*sE+`c}TfiU~lPwSwa6aw7s!=C_!%?|Vc zrj9<9{)Pgdz!ar`R(^8$tUD2TBX|&73;7v5t3leAkgJEoCAs9RY_FnMNU`KEj`MJN zH%-8*#YN9;ub(nOvp^43_7TPR;>n8+8X}@DJxH4Bjb}P*ntt`-lAmSi>{qgrr0 z%YIhoRrAEo>mZN)z%QT^uNC*ve|Fz|WRlH>nm5IU6VGU4*WBx&XMnM$^Tav_M~|+lE~agEmOP^go$I!;Fi=KatCsHSvhP_i&XTNTxVVO?eswoBGw=uBgw~E!`GR`?3guFQe7KZa4X!M;E9b5o8 z`7Ew9{DDEnAxw%8J`jvt0+Mt+ksQhNMSDw*laemSRP*%0NtxZA!HPs=;#$_XZ*yOJ zZ{s)Ap&#Le`^tk8H4X*aV7W?Zb{GGJgy&BU?DeeCuZuta5m|mhhVq)1s*F}t9DCcE zyK^ls`mSxevNFydXSsf|gH>q>5EBGQM`k&S1nxu(E{08D}hcqg$07eMN__XvX(JQD*eRx%RLkK+eq((YutSbq{$HozF3MfHQ3q{5Qd>H|9WJ1{x51f%xBtoLhDGkHQMiCbrZsKub zw~jtdAwR#xqY&bJmABMll3qY|pfgx65yeQT@)#M5$a9R!`$$K$fORhs%0%!Z3hhKC zYsvFE65fKXFUe;i!a-irJ;3NX4y20%<`!iVZkmdD`3t155XdgYnMqO=297rB$FUgi zU!$o?$?iySPJ{n1EjfoiJG^GWIqj)ht$xD|@oRv&xxo{p-gI@}OI9CI`T8dT8hjxU z)t@`0+({hGfJ#n;>Tla(g%wrHPSszbCOrUNTZJS|BBXNR)*Tp+0m{VI+(U2)wR9OH zeB4D!LA#3=R)F6#q7*vX<^aXf8yC~NAWz!+I=_wT^J-9@`}Wo0J9~&yQheL0gH8apr#kmXSc|Ps z=MNr%WnJc|@`oIh&TtfVPh2WUXK@i({kc)Z@dnL7r%O|cc}HMx=RFq~xf-!<)Q^v2 z3p2kSP+QU+AD|EJT&d&{@o{+G@e8p3oP6*V88|j~Yz8UtKaM8<%YPnwsD9e{r3aRJ zrh4^H|G+9{_3m|jD=r@XQ%*js<)$F>N6*P>+42+TydrLp)zK$?#=XGTH(%d4Bb)H? z;skI>|7xkV%!jsYOCU4*llMYJ5AxFVs9j^*g)E{wo{itl$ZWP0-}Mkv-(8W3k}mhiE^~Mei_7 zLIjk*W;^dMh(=RE<|A9c+Q-7T8U_$-+vc%KPhvkIgWbF$H$P{O$n zSy2zF<1`Z6!mk+3!`BiyjWf492uWx;b>z`Jnb(b!Q9ZG_Pn&(P{U}h!XB_kBEnOJl zjDbC{^k@XX6V7?yH8vs7wPuoU z^Qb1(bTbL*Kg%V{|01h`e&#J&eWI6d?Kc$XlQVjd(&O+}8oddr1seO+k%L+`F9GW> z^8V@uG5D;S-M(uDSuqGw*WT?^uig?cK-yC!?WH5S|L@63Y-C^{Kjp=*jkxNFY+gx+ zOM{mRZ<;}2OAa#=QOW=(P9d@WmuVAaXix7y7%3Tus87j#1Nr{n1LRl)V~C4&YnEQa z_=0fpOLVizxLJ165Twd82|8I!dVATxl*+|NG6WkMRR4606-$0x5{-6t?H{4iMbS0| zIRE(L;r77bWs9TmrVg>aWH)5x_{WOE$V-ouYc;%!E8KmX$}WXW2VSO~^c(!>k>#ff z3wQD46Gi?S&IUxfOhHc9Cb8s{#m~wf)UI4rJL2rXj?q~gK)|Vx4S*7Kd0VdlZHSsK zk%EAiD?#pP4rRI_0qh6`pPjz>FvvifdXeK>9NFqQqL(@_x4F3^Mj?HX$Vr|G?(Pu6bOvs;4YYpN%1-4bAN+$k7?>||aElm0Cm_bqvm!8x1Eh$VrgLNyGQqo!7 z)s?ePSmkGUY^5e}HpUCI^&DIBlXc8n?EdQEqXjftT_|nz&3*A8%Qv?l|I-!{SmzO= zYK0y-SbT;S7noOf@kP7mkxTRqK3&9g1mBVFZ@)5|MiLj0Z)R*BTS`I14OpGT6KW-A{uee2AsrQ!~nl0#N_eR#O*x7 z_nGOO-=03*B|4zpeTm`zc^Iy2zR*pCDib#`eM7u}CvV#^{?NMo>{-0<@eSPS8tH!( zGJazA!>9iE511tj7Zg=>#_$f&RZ(TP4Fe>Mn*zENw~bvXrSy%g_B(&vFXdd?wnjjLej_m#)r!O^kILh)oMdmAlo1qfMZ-{EbG3 zSh9AFOEOuc=lI{44(1tx_Iks^^J5`3xxWGY{uhc5Rs=49aG9dKrM0iXFO9#+U+}IR zB1&&Q2&24CLeGXjch|1hfaFKG13aUd0v!PZy-|kE$lD;l)b+f~0;xBYN8H@S%I7`6 zR8>L1W2y@Oi2%a!$m=-9bq^f!OcUb)|20THqovKGp236H)T-P2()$@v4L%!9gyh7* z&B}fa0A)S+sK=TahAH~h7Q=dJF*R4iWJj~%v;OYWpRk+HAYOnUJGbmgEUJGf zwT<>j-I+wbV;}GCqb-3&?tU_;&+hk3^)Nh5Q+mDJ;HV7jbX~V=+NO@*xGfB$DGl_S zFi970Fdc68ay5a>Z(J90^lmKGZ_#HRJka9gHp2o@F3Ne6IE9wEn-s**B&95c6vPU? zh5YHmJfn}v`dl(3Qk1XyHZ;BY&G!^`DYW3!Tsu|Lk>>8MTw1F90Xc*9R=$S)Yg`7uzZ&a zRyOYpxY_?am=YM+&WZ-qwv*Ge7?VHCSLY_xjM$f>`$Z1V9#p9Xig}lYZMZJ8#sn_9 z3vI4C%BNO7u5<>4x`4YLvOuXVL)7Q^RwxDu?mVdCEt~5IqL^-kjr{7y5ReMql1z=z zLD0|E25D8uS1}KV(gyTx>66*<`c+Ukl=mudQ!y`h;*gCmVDZeM#`4|>n>fFX{s3e2 zqs39}GmJUCmG)ObM^P=?T@t<6&#OMqG>503^dxuCOh=xd1fNkZ11;Kr?)Yq-2YRvn zj_a)iXHT3i^#%FTm;+bY+&{aQL;hpyuYUz9BsHjKb^pXIegSX8SX$7bnPd)T^*><@ zNiEGYxUk{~xU=?9x>n@W;q$G3PAHo@gW5O_?i~5gfamYsX;4Q3j#~{b=|UmU8@+gi z-$11?lG;z=aa%Pm@J-;SRFeWe@QwB{vuT|GmosH^e^UQx$2pwlY;gSK&vK=hOpeAmNW7=qNUD>QNo)y3#m76qP@@Gw}%lL;*R8 z`uz`pqK#@cK&6jnGC{X7ESRga@>%2Nofx=cYu-^T8-Wfp#Nf)m5i>sr$b5V#n^u?z zLSHT$px?}BJ`ZT!ls0h4g_^kwcw}LvAiR{({E?Ovt!ex7Emm08Lutg4jyw&>g2y(E zB1;~WDcJ%vH-^Mxcd<~HM6ymYuP%y-nk5^uT5S;ZfhY9bPuq-OPzrcRTQ zcH)C7`Cj4+vZKixPz%_V!r(e9M*akXIlH9r8(|0g7e-z#kG8s)ymV5#QLf7#_cOD~ zR11`h6gv$$UHN|?N8f&_Q^7X9M(IvitkKViCeHS1Ca^0Y(C8$U7zFG!*n(&xEY3ya;;EeSLMa_VrdU`6 z>QVu%6=u_}WU)Zn-)n=iKuE=FK$j^7*-D{40k+?ZPd!4pWvd%Qh&>HiI9yl&uIGyY z4Re~HWZMeZ9@@6|W(F>B9V0hq`^CgN{|cZ;fk$*R)B%^$>s-{rgB&pjd=?EUv+tnw z^HGcM&CSqfT|_z@gET`*h~-H}0v~cxqtKB9)}OjHEt_CyO*89V+B`#LkaLf0-Ni^9 zx1*17CKZA&6@^KkOp?J*0+aTfF`AoJTCXGfow;$el82CRU|o%b+W z65&&$<`W=eELT?M(`DG|?Y|K8r%aMlI@yw+pa>)%uXVe~RhRymjLFvoH~Se;r?}%m zEjeZZ;?PK+lB5Gjb5%4DD<>z-k50;4BcfXJ8$rp?an?)$G%U~@AX(46_Bh1w=hy#y zDzH3XP|Q8EW>;Z+*BjV;0!*>5y~n{B$MeGSuvthJ)DEoOEvKoG5sl^JJ_S((i!*9 z)dEZlYnzZlFJhLt<9CKaK9!x`cA$_W?YM6p4si%*SFL^Lc6?4Q>=HS=IMP-e9<>tfyJvRiKp1xPIQVtL{}YLatLTC8~vQz zU$_YRtjAp{SOmd&GlZ?V>r3+ZH2$#*lWOb4Y@K)Z493bq-?`Tn;Ie_h-fw^cg~NqL zzRbEkJa5-?IsV@>ksIGa#}S76n1do_N)9EV-CiC-W;G@DUUm;WTVVIEnI$dMftyhg z^{nFdzb2snHjy2tMi)W-c-L$A@6!jD=BSkdMYX@wFfd~dN$=Lh)oC*r^Y-!)Ja88% zx~}ls-+x~0-YgnwXDr~{gixou@&slrirhj6S=EtPRk{%YKY3 zkQD^?dex4>%nxq3`}+!L$->^O3D6S3y3^bE@qs|r%!o_V`4Bkb2W>v4h5}uyfH>cH^wkb)lQAHJHGXPJ#N} z)mlFx^|(&VcrgB`vuu3B&3m1$dcFg9X$-LGj-}@PAD1Ky2Of1Ib?sZ5%Az@lF~v6q zm*8pcn)dgV-qe5&mjXRhCB}5Dd&?l2>s4DOJkO?r0WOq7;rqZUoO(X@L5qV4jI26> zT)hOuFRKeZO4I^>N3j)XtEOT>Jq_tuf+Pg$@(BX|<>Wdpy}G-9)xz;aUmf5xc@)VF z@u%07Wg)|vEjNIWWe2B{uo&bGCcLzhSeOhZpO9AwZkZFk(CsR1TmsJB158jhVy#wy zi5vFxy2<|M#~b5dyf8TQ5;2gBs^9Vt7XWxEz>SwUh+9m_)1aYnvY?;fW;R;xE@1h+M`2cHCw(BTDTvGa zkAkmI>f5Kv(e^L0v@^fah47G)(~3WX&xNC%JzJj`(sEqTEJF~lDZS`Gd)hezmj|O! zHkEfNZFXi48cz+HHx_h*C!v(lv>{kIyn_#M8X$@SF0tg+_qxv-kVRjK8A{l=L}%Ce zcNkVb@rP016jGkDYBDCTmUii0Z;Qk;I&!uNd66PRK)GL*p~!S1g#o`ZL_PhZW7SDw zA*4Y01w`pd_vDJ{T4J=pEsnm;^JoJV9*6p$53JK$RBW53#d^iZ39^fM$n*?FKki zkgXusPEfA_yl|MYZY;l`OZ^NoA5hb&Pnsc+qJE3e6&GoPY~cIzTK(C0f zNV3-|(k=v%tF}53)BQCQ|IMwV!!zFBE|dAzYE_r8b}g8<55-rGFK2u$ZUoF{?EpVAp}JteP)( zt$k?21enfXwHzJnC-!>!qUKL@6r`f~ntBDxPku=5uQlYVIFOZ`N$d6ubaK?$O?4*$@{5U|*C8JW*!>J0A|fJq^ZXR+4 z>!i9b*RY|R6I8VQl~Z~zAB+=WX52?YQXG-WtZJfHi^bKNL-^mQenfMH4$$8`yv$jn!^Ar#V0u?0R^)X)n}7< zK!Iz4JQyP5o$9R*`XHV#Gxx>ACiPh}@!Zs4`oN^OP4@+4(9Pb2%QVuALPasXw3?Wi zrcdx23*Y&Y1LZz2S)xUSO5(>vWJ5Lm-@MCcRn-GInu)_1D(`xIClX1OZH_-RE>dqc zF;ZLn<4|(?gz>NUJ>G_M!qBmtNCEDeyS}DxV|rO%N$`BKP;*AYbWn)#Nhz{Ol^dy$ zw0T*z2JUKJq71CtOLgP^co-4iQC4V!fpUr` z+qFR>C?69ffy;8B>&1cK1AFtI~&m z?Ew;wb@ML^R-(!;Lcmd4I?uY1w)J z1#?x3Vk;&E39^e z5cu{6Q|_asr3s&O8#XuHG<_>Qq`&1|*cSnA_wJe1%}Q?=#{+^RTziSxefPfw$9A1z zB;RQ=_t}s+vG1`Z?mQtN$H<-Ko94yNMDwOinO`sOq*CHDgnve`&Mi;0gwO7atrXu1 zv-)ew$V-jZ!qxdxYju-{=U zK@t_Gs)uJ%q+Hi(zSpC(`iH!K+BJ6f{GblLE}gMZjGBTv zPxNUF0w|uk&F*E_^{#BiTdlQVi}MCpfyx3!SvWHSxTn z@>yCTZeuD$z&v*>m|O9TLBqE6R%+wEg zSK8a!I8y1GB5Uvt=X+gWPHHLc_dh=T7rt#kgF-fs+cyw0>3XDvjzk%17U803CLI%S%V3*cRWKoh7^;tJW(B0dsg2`{P>9MC7d} zxctn$?sD_;U){vYlX~@!zwnlTs-6;ZD>3GNp2LElUoz*mm@{i&B~n2jP|=KFn6!m? z+`O1io-0CuoM|)6005CMfh!vB{Q8ID!tB2g>=ZK(Pha3)f zwLQM9q@230ADpg|V3J(zjizys|k|8_-Qf&3+JXLUyiW>O-%Q_g6(MJV*1% zL&=0Iq4&)swZV{v`FDO^5zyy1myEz>&$SJ9MBe9lddydZM{#C!X5(z;lPQSgVzXQK z_`96}M{5|=>{_n5w;+PbK~1UA@yuxt^+(yjC~#6oTkuwX=EfA(?1k0cYM z@l+yoMk#1zCcrrQ8RJ_xW77Cx04Oovs4j`(T%G6m|K1-QFzL#szlGKKgyhRkoxg#$AO0(|(~}lHxE*6Bs+zgMLx0x|A)~qi%CsNbTfJYky5!AwX2HXg-(_GxRofRajjO8YP^)Tjh`F`7 zJrPu8@?{-5YN-<1^nL>T^Y$V1A1mN~&~R{$)IN1reWP!BF(IJ2jT-o`?aw>^ZLv|t zw!G2uZGm?=$AW8jb@`2&#NhJc5q`tFYw@LLo(6b*bFDmv;99+Q$Ub4=&!hafzL&Nq zMBbWi7ut_LeBcfn9lkh#WNJ?Ys!ezAR#l~yr!6d`ed#BU?x8<)S}Pf5oKCA5)Ve9S zs=k!M%a;(Sz3AuT@#8axwnFgQt<2Wx4@kY1uvblHu+{uJtAnKhoAJ< z?fgFYV=m5jo%!=bbzqE4z^^MuepY#6wo8YUD|R@4&INf2$buGa;Mnab@NkrR3-$#F&FPggNt=ZcjXfmLu4K3$na%Fq}bKp0}a0>yS9* zS(n}I!TG56V&@o(EOJ~CKd2@6dHIFkL1y#gjLzAFrZr7(FD!OLsZ6F@su?*mNtgGS zby!lGNq@iW?am~qQWCK&oL#BKGRa}^N^djF%v68<08vth$ zMej3lcL&wxb+Y&vFDm#6-oR-}SGS`r+Tg?vnaGOzUAmLgI1n0i9(C3W3M!=rS5^i;0Q6Fubh&d1fP7bl#tSnoj--xQSpHL1Db zX;ddH`E_e_H)6UQX|Gpr`K)M$93qkSj^}lJ93s{PkHmolA0{1Ry88yz@9ep8gRBh1k9v_#C&Yayk1~Ay z{mX^5teEKp_MPKSB=UA)1$Ng;Dla2^NJVW3X;N=P>sv$_cr#oQ>RB%iejQ}aF|qnd zJ&cucLz9byOYvK{#9pbJ@d^;p^uj-F#F4xAZ`sF@O?ksom<}`RKWcJkbXX|==Ln3j z2+F=d$Qf(1!3yr~B=U;@m=EM7^Ep#mmtkH5s2UPM(sUg(HQzdGUNtK((HfNA7UXcY z8#zs~25RpCb9;^+^#=3(cq9zO?#RYgwTY>t=j! znU$s{KiWW7IL%E?AUxHkXSo@wrP^yY@a1bA&Lp!p&i65#iu#R|g9uf28)*K5Re2<^e8L z$IYWIm6BIqfa49za7frtAb)HG;(oO(o?1z|h=y^iQhi9FyoNV+cBpGP9m_l${co6b zi)jZhmM3mn=S;4XfSkG%HG1+T&oyoV%09foG*T%$>%K*5=##WLg%U`&_g!m_)HY8f zStPJ1zm4TvJK64JLSl?3e`U)~JKx-Om?=w1E zIB#}cd;iE9Wxr>h5+)8{uZ5!{-+V-)^*)j%d>dY({ZIL$U`9MC4`@Cy0Wyv=4paPX zzX2s}L4y$cmcP6K2Ajq5UEpp5RR!cR;pi3IL$ohnX3Q%qgR(h@%K{w1WVMG{`l6e^ zH30V^Xj~sgJ9$kP_H)r;=~A4W2hIn5eW!t1TVW)yuAi1qW^Gg}KZ!&`ad!S!WWNNu zK|ZlB09Po=d_%)bh*Ol(Om7)@rrOPScQSHpJKqq21v+GI^<`;KvP3Yg)VT>$c-osC zEjMx3TO!+7|4aC41>1&5d1jLPCGL_Q#{EhK_m4>|a4Qwqe$G9ZD$_DJxV$%0V@gpH zHA8;;U#RH=DQYjgLsB2Nf--PZlgPfHTmIJi@q?+j{%Y3P5h9KN-q z{3HeK|G1nJrMXnF+{l-24z^BvJ|{!@-HzTVoe^lpWAX1oN*VJ+uu>ja<*&?=D&yF+ zt!N={I8?nLAGE3-t2|pq7(!DA_T-rXAe~=X5Un`|@5(EO`!4(roGT+hQ)-?xm&AW; z{d`}6Icv^sWc%_j>~ zeE>fGOkS>22)ut{1=VzD?J4D|!3=JC>2>X3Rc$Z9{NRlFaWkrb-RRF<^&BC-nlwMP z+@c3nOSQ0l;l-!UHHVvfY9lQp{)bbw4%6q)TWA>HJIvYIY7SFhP&r3B7>;yU7dXSR z@ZqL!UD-zPGh=QxkHm}xuDf=V3dI9YEmxe%^A07Hs`^~5JKP(#P#W5=Fu|4Y>Q|l* zTzvRy$6xMeFa}4e{LTpa&)Z`>O9ywDu1#>X|ECGToX69?Er;f|hZSc#4k}*MhP)XY z3GhR5KU*0O^jv-+@(_XD(Cky&R%7_=t#(J}jrJIaSacxV-!ibzCL?vf1%_%n`r6kE zIOr=^Ojof*j`)8Os`R~@YJGLLc=$-bWZjmT>pKfDd{`iW*t4W!%xUre5eEFrcS7!P z%f9}2fyi}U(N;nsUkqZOB(UJtljtyhg{L@X@h_BlLk0hWS5IPnP|^2vH~U+V(&QTo z-4u}IF!~J;q{5#W`=1C$<%X(|HeRAwvgGz7wDa8{&-VM!;y2gb>hl^Q?kbV+c`*cK zBkRaT#S|&x*zF4)8i>=q8@V@QXKmt*Xzp{n2hSlElU?D=NAXGW?H`oMaoU_LUhc$r zXb%xq4R>W+>FZaa$=xuC3npQegW2+4e3Q?JNg0Y~(!;yhEZoW;UUnDBJg2W=U)bS4 z)u290vSjzhz40~os(#uKix8E_+* z{19=|ixUx2b+h4EIFPIQ}MxBDqhzX zqWT8r$6k`VXW*9^?s%C)F^|xKwvU@ko$uP#ZZx!e@;5gs$!mR*IhTWj`AyTW0rm1U zALDBP4vP$v#oN&5tVf9A&B)>k7IJDemYj4ar?!XjD}|novRNQtKAA5H=A9xb>r-SV z>|29uZb5k1W&xtA0>tPO2<^yoBypgIFZ1nllz+lISr?O$XMo9Pi<8t7U5CE)m%AxS zu`f=F(soZbro+(388#1q>A0X`SD5aIHO|ECt6NO3wx-MGmXh{SZ;Xu+KtX!9frX2B zoT<@nLHe0IgPF1h9c<)AKH!<$bJA_Y?RjlRZ_XTsU*|K_iZ+;C%DE~EZU(OD1ruRNjuw!HjjN4_Z?DeyJv$Lt#I zrvI|`$`h32=$F2i%J9LgpYEwb7Lr4sYn#k?zYiPea|Dd5luB#%VzPEDzK%-yj*JW?J~TIx4i_pnO-?UCV%$L|;YRyBLtRTS>U)$1pQ9`J8` zA4!SRY1(wfb^f^Nn$~PxT#om!a8Vr5mX*Fi5uaZ+`e{{d;nfADX@Mf;Ek_j6(AQH> z1huUSPF1cN4|NgKuvuhBv~EB!w`IUd(MFJ~E$FW5$B%oy%FCo@fa_;-zqigj;2Wn( zLC*=DAtE_Zp$Ktn#S{L@ZRON$9=%XYUY6%VSlNolqe1=9q>pV=`Uscc4P@H?jn_rsPs8d0<{LT*F3Mi+p41RLa5ic_; z*|C*sznRkKC4XGzAox%VF2o}vcR|`{t9NU_*;`}l6Il=6*v|!>hy4Rlp4b&%CYfBWKE#u?_t)!ULk!V)%-$9Ikp+H#GG?M$*FKM zBGtm#Pf#y(JvR=z8n@|ix3SDc|M!rv1Pj;8%;Q9A<= z8_#f3!V;TThAiKlK}6r1dTGHHt9r|IV&I4zwi$9X@AQ$8d<}7Y>8Dt#f_mKTY`*M3 zs`jf&_gtIpuP?#+OZzKPvr3P{H?MVBr2am;rnS;4R&Mtaycv4|hsC82%RaiYZ8Q^4 zj(9pKo7&f`0UU?&sRH#p95?;3po|(G`Jjw2KO55rt58&69hFFW3vw*O(G)WZCOOZm z>n6sg52+bg!Gt?@8O(d+dHIACPIULUJC0Bvy%CkT>S1&-EPWzEaS^WI9wjtD)jzZ` z1Phr^eQjnfTMHYUCmMV(O>e-3dLqs16FXeS;jR;z?%MI+qU#HyIGa1?I3@XI@L2?= zPNR4A1^>`R)FNURat3@mtU_0)ibb*Gq53O#{-JCS7j()sQAjQ?a=dkgnC4NOCJe!U zD{H31y4QWo0BntJ@{OgK^E+YrN_y867U%p%kX$Wz_bY9cuY}$ws4U{I&!j`y)PZP_ zwDsJ${4V(DcE@3NwzAxf(aip$YmI=u%ubr*A4Ei*i$R(upy|(}K%x;eBb!`fk6*@b zq~maJ`i0Kt$E{tEQC{rNC*RbK<@(t4=_(suDx+y=`WcWE)XK|jM(V8)k&M}=1Dz`2 zU}bZwXW_u~7X4(Akdp!56mRSWB1^wR6eWHTH2-|~L)Ev`{6ba4+*x$$8bVm<;& zfJiOVk^W!1Z;WjDV~@7(N1ct=Xf>&xbx@G9x^8NgIwBMf9xK1^Zn$LsxTjGT3~51k zrZP#8=pR1+7-Zz<&<8`-(Q6(RY#6!So}&wcIiQ&+KwpF%=}4f!FK3bO0aRT;@FN0a z6SaZ7o4ZNBjwP;MA*OdS-a|`@UT}3zUe2zlmr~fwNEOopbqMZp2uc%?UNl31!kLQ? z%4EXP{fYn;hxC=x19)Y>r84KN=!_prC`PHfO&mEW79qSEhSdaDkAl3&pHQU&cU{s` ztzqg_f$Rm63%ZjfMO^H{LrE`WtD`uY)eV+?L~8;Y`xI&!1;IV^3DJfmW`WS8*0j?jq#VGfgVfq!wn4W)$A? z3`Kiye2S2WFL3H;0Ij@{ueg0Kw&1y2@Fd>X`*9qbzBtm) zq(hKE{FOLFO0NxuSb)%EWM5sp_u<{X{8J#8E6{cpJ_J9*RotHARjSX@#Mqq4g?BO+ z2(M4kc)oxy6R<Uf>(a#7UNN8VYX?i17tvL{;PSdSSIV9v;t1{UV{k%gwnu$;l5p^x{E;$2c#u?a_e-8p8j zj{Y$5j_ULPZ;Ap8S;c(FEZGUK=_(8;vdk>8e{`J03zzjQ7Gn9Z`l~xo)bk3|z~V-z z=Ti{UI*{pPyYvxltLZNbapcFc5_z*y?ht3ySUTuFNa_>01AfWTf4Ww~MmgV%9HvZc zl6#2Jpbmn#)--g=YCh4-vFk+^Al#ryQF zy*1_bKc9op*8=a~`jklq#5rBwD*IK~ZR6zqHIB z@+xm)%v4O$8lEu;yS*0kB>&gK>_bQ&hG48oxss~?rvdK!sM$`dxKJg>t!49$CAom# zoQK?K-x+6QK`gCv1^qmOK{MUkPgdQbVZ6uQ*|4Mhlkr6UFw;4DU4?&d*qf3}%wL?J zZ~A@V0LxR&+CZ(~rJ8I`#!JMzM(sbfz=lhM4`@2uo5#R`j_evbFW1JNyQ9*=YX|kM-hRma(f!pY}2tu=8>}aTZ{0liA#XYUW=h`5#lguxt@f-MWHW_cQqOd z5HvfqHlL%2lV_UWp^}@Z9&+tr8zw7)u=zt=yW0}_5_PwVQv4pqWE*U>;$=jNe^$Z{Xy^a<`u1U^G z5@7rGJS{2v{Pn4~4%6=<^yN0SbC43-iGQ?s&f8Z%GhQ!pCE)j%fV*+^QEY;#w|ZwMIe7|w+r_6xe#ttwDW>|I&iC+3 zmcQpsfjDxAZxYvqUUyG|3|HEwT|MaKcPwD$Rhq*Zwr<7#?vC>O{f-n%xcQqQS^0qv zx~aROZqZIk`Te8Yu)IqApFyI(ZWrE1d%w>o+oQsGm-5Qc3%jW|tXu%d+dfkU18# z(!N;f+Hot=6gX;g#rV9y?-5{G?_D=TP$qkFhkH~Q&~XdRYD@;x5v5;|l!>z8wX6W< zTugL6PIGz^iFyX$=5-p(8>Q^fSeSkoyAb^Af_=4gP*VotTw1rTcTDjQTC*&zYvp#q z_r>`{v2>0D5uHdYsUpiF?{ z&BT@o&TCHrk$Pa=KEA+n>(T=}axv`xV(-19npoq0-@Uh6QE4g!1Sx_Fk_bqzf{K8G zfRr$l1hya`QCfh|aVr86nv{rAr3q$WkWLbcigW}ip(8D{(4|Nd?(Fy6_pYjp5OEQzTeOH;>Rzue~^2Dg>#=&h<%z(=iR<4XsbnZ@TK|ka8{b zzosFxAW^wCBQOq}$|})IBY9I4H}={ni-U7(UPS+~|e&1n%Jxo}QK&w*U=|r=1YKPD^I!IqH6E8v_Xk<~TO= z-_VcC7Xe0wzv-t$+6Q&5%IzE}Ig9P$`|yuK|HfHuIks6_uycRz zEGZu4BabH;QGclIx4Yrd+%0HrpoYjY*sz{_IaEYRe3OJH+L z(pVJF17aLMxv|q}aM1J{I;}gbN$(qa0T~Iwx#Dj<8>Z@ERMH^&G&a}N4p8|uy5p=z z(BA7SmR4?J+u%u>M7_H0K)Ve`=nP3DD=$Z#IXp;21%C#9-G+SSFT(H9s^}@4UUQWI z5BGU+{Qxh$jVz4dMeo4x5GhQN&7~_+e{`W6*#9m>@m!Z^y^PmBt)}Vl(0*{)5Z2er z&Fa<3WqLcrgLpxVglb7&1}Kk}7; z`QRAA>M8FJo@kym6`o-Jc5PTlZySSQ&%~S zqRT)kVFjC(j0K%C7CJV9)E`DCc*7(S^4CkTuRoCl2?%(Ny$_*nrp8BiV$Kmi!*;_# z51|6PQNO?72BG5I5MNPr;(0ZoJ`C%T(ryg*Bn81aW)!AaxKw$-NGM;FynRP_H$ep!=iOSsxxxJ2Ca>}LX*YIKp%8`sM7V8x0SHfn&CU5_CHy5r zPa*S}6O^n-^Ts8%MO@M9l;WEaZf6y&KdSi2>%1*c^x8}5DXs^|FuMs^o-CI=^y5g2 zT(Tt~<2cUqx)|gZ{z5oLaPZBSbLC~XjN(%TYH70#+09*~zpb}U;vMq4^Gx@I;49k9 zi(VcnqziDn{;2=B5oX6A{{`%q9l*|VJRsfzi}(JqQ&-e-%Qep-D^QV^KzIu&$Eu9f zh5p*9d8gB0A#u3$1Q0qEHf?pU7_oh)B{4)f8#9QnpmyA z^;K8Q*-*VEm$X*@su-InoH!-($NRpH&a2>d{wV6uf-vP?n@!!%TNU|!D@y5U@bL+t ztP_}#Fj*@lX&8B@etfdx6DWSO#?t|haFfY7z4J%fy$gvK>b=gCOHR4JT9aTXv1^X< zyXnk*3^88ye1W8z)JEmC9r>*`7o4qhpoTI_lzmZSj~|&lo2O2#uK3Dn9#k#8toDhG ztvu+!ZY8_P0kSa?Lj-@^M)<1g{@}C2AC~>$mt&4J4K6b)AHJvFtuG9Ik$vl3Wy9&e zFL&qL69WW?deWBWKiW&p5mdGe0yLS_-d_jp?#rOVjlcHocWJfzivgNZuXIjKICdu5 z#OP!%2h$qVAW0xnjf`!YW3N9~vt-wc9-lU-^Dwx|IYX|^p3nkVVgo$o8u4yh+nbVM zqgXlD;A87t#vAp9=%4MtHusAfzfkn(a>~B)m7=;1amU54vD=%xPv!w8+49b%#S_2Q z>nezD2WOHstC<&Iu7TO()#Z<(uZ5<$<2*NdC@2PIZ|YQMm0Ph^+yig zjXJKUSJhvVtPhmJDTG_CgHsi%9cw<(AVmzSg|_d!5Z!Eg6Aas8cIP-N{fJW{aI?Cm z8+uex69K-1J^J7PSLNJ~@j1^%NbkU}b_VkLnT(llnH_L+SMr<|*PSlR(Kofr5o~N2 zib|RAr}1Y9!Re>p9H7N#itdC_{0^p4KQ6-g))Jw{}9Iiowx}IRm2#^7-+bl4Eldx|ThI z0k!%YO4;GbO$E~|Qrjo(@tvIWITJ=&YVxxu*NnW!Jtym~#PT^R#J-~e)pr}dDO&~} z52T@NE>89O&APmu=BAzT_>(Ti`lRSZ<%725fWN;Dn%`7Ay(h$iM|1e}+F?AfR5 z$IL#7{5j`$-D3BPvgN?j7wbi#Fw5Ju;lB4&;QdY9Ud!s&Z{O5s4;(xyOas2ak>(MJ z%g#%hJmPCRb?a}V?|Gf9WoWdBv2Ob0dJQ?U|J+rdqHVqEKt_%p@kTh&K}yD-Mbm_b zdBGfTSePJ9DMzDm5xK>ScM!1OyPi|*x$`a{_lQ?U`#L{DMw9qtnzxG|33)r{MM~yyU*j56p^F z^tcA@!OLoBJVKZWBfQklcn3Cqn7m&hj%ELP!>hdWAGS+P94N+t(^$|uN|OdgfI?4) zTmD;7*ar21tv7nmtp)hOsM|sxe2z*#Dg`CNc87EwuHtHBR(u~?Xo?_Gn=qpsoA7SF zx9%DRF8k6vf#c#VpLn$bOnPZ=j5nUR+Yp^VZxXtR9Q^6YA%ob43XYL{7vOnb8&BW5 z1YVpqQO%4Bur5X!>jH#s($zu~YGLK%y4@mqy!Vxu0o+E8J*v5)!Zw6l`Bi5S25UXLtu$oxK1iz!KChc!=DLAR7rqCbGz({Nh!7 zUe`o=3rrEJ#{Cbi-(6LIR_zOI{|H!jUR~xEmsny;C65?33R()pb_UZK>TAzW0yd7d zADlv`ELEzwF3)yPK2wWa)~|vVfW}X65sBgo zffr4#@Mkndz}dy#XRwIi&*>iP zixRKMA#{DE_}Sjyx`56bw<%w?0PV)4ztwY5y99|r(z2tdazxLq8D}VjL8N6s|5zNg zJ2(}2i{(FVlT zW=-a+VsD)meqG50*-^9VE+xUCN!_X6%*=|xb}4+r-fBU07d?2E$n5JP<*Y zt$(9V7Dr{F()FTnx8TB9J{enMxwNjlznC~~|3vG_CcYazF~x9sUkzUl=T-!cyFPc9 z!3s{>10rtNX?QtG!bGV0p(>!^h8-kymrd3fz_=XdivTIlK=03{5iS1kO-0q=0QORO zY2;@5)!XT5j*EKh&pmh-^{A!Xa%}P71?<|NKH|hFsgw2bpkgf!yYzl&yN~{{@*nom zxY~J}?uvE~uXo`ZBtTcTBU}f%{Xh#c+_97p&bTR;Cu{3Ljn@Ipg4y^bzP>SpU<&#E zNBU7sej)7p5pBRMLn9HPneTtoA%M*iuGlmDJF26gF!dYKnx#|99WPAtT3(L|ckwk@ zqWnZZJbUbD#(JEc)BWWnnA-YOdF(H0@Yy&F+GFG;sZy?)T0kkt#W-^GJ_qH0TI&IC zrbTRz83b;ve8{gl6R77AU@nXhs5DJIOk4<&qLABrs3y{$zMRKJ)~^A|_kT6>y8*PFX&wBy2zIa7aT&mjDSKmA z)j~rF?=Mcf18BgAE>{(JbqVRqnok-v%W{e z<&m#Y-VIHK?}OXfS;Z3|va*|hd&u+v-7F<4=CBen*`qh)zmfZX-x1h%=cM7fdk3n0 zlI6d8Jp5D|P{K->wwKFNF;iUqqXBUQ7`C4ibHj9CZ5JDv@VuGbMh+K zwYxTs3_Wp4k@BVP!+7yv{iUqH9b%r4wUvY$$7IO8q(IZCekTp{myembHpog~8XbYVN9_;w)PDj%Uq%gk z`B0Yi@%ru5=aoOj#>INot$x!y0ER{u#@l|5Y_F0fcKEK0@w_WryeQq6qPFJN5fVDD zQ(4)jv350hbjoT?&_9rK&Y|*K)Va4h_P09-XDmD?*}DTL-|ft;fn6sRc9^Dn0eE$W zeDMhQeN2U*u!mjv>LUKY(P>rb{7Z&@|Y-HiuC0z-y&^ z*3k%x-Z=yGIPYBgwKuV}q`5RvRR~JAgd_yH3XWCq*fnql|D38=|FWaD8=N9!X5|u| zS@h?>2$Y*Nlg0!BFHIxLv?77mD!l96HQ&pd{zdXje@>o&Dk>%nZ@@U8O2-f2=iE1cB%p##NNRl% z_Bo()Rb7x!c(`j-TjF@FmnGi2glS3bXYVu>O&%Rs*PxW7fm$OLZ^9=n`U86s$diEyy{uu#xsk0Uql|?&`l^t)p8JILb&|!xec{en-hhI=<|S7 zxvg=~w;x=#>Th=VC}fUaGN)V3TQBcq>y z#b!AcY&}g)^{v9YA%CFY`pWKyexU`mA9Ogx&|7->xy3w-=A!mz5)UUsOh!S5I*~@~-Zs z#2*naK^7?v)7S2MZMt+({S6Hh&jSHB2ijBDvhL-~xG(CN$8$N}h#@cC9hynx_sy!3WGw>vb@s?2BMgHmmu{CRJf%|%iq71)fU@p|L5Vz{5p)TOGqqbOsWZCqSTmx3C(MxJq5k+oa&w@uLMXk= z%?s^1w&A4*}Y~mKpJ=>8&3OWPq02S^qcTqS}1Yp7>sF z!*w_PhG9oqN#`hJ2puZ~Yd&l8Bp#8N_H!6S$6<2MhhWnxA>v%CE?fjTq^KlBIAeGC zfZ!o|OEbMI6}*Z^WTC7Z!H+X>tzZL0$O8TQ5KT+7Og^Z6v=|0#8I+LwF|~c;y}v=&5(44TyXXL+yZ~!Bf+pL?}r3tr}I8 zF!Xq%gDI^ERB5}e$seb%^rxRa`10B#A$9GXl6OF!N9g3jTYlPPg$ABv@CAT56uYVT zRb=OU?Thuhu<*xnf&Ai=Pe&Im$13((;yX_my?aE@;}Vu9CST)nHW(GG_LVMB`3ABx zRi$O2_$y(V2)oj!>U(?%ee4uc5s6Q91mrJixpe%wl2g0VKZ%mGq1GUwi+o^if=*Nc&va^)cmz;HSR-JBTm zqEpEUpcwU}ix9U(?%61tFe4-v0jO7%hH6cK_7(W0_+|wNcDe?BJE^2l|u9vsR20 zwb}xU`V<|t)2VEMBHme1K^hM`g|};Qyt#^_%i}Tm&X51vgb-f7L#(1U3Gnr`*5Y z{&)HKEUZv#U3JF2IM=>X;cFw}&C*n|JfQ3<8M~(tebRg{9jV&rIdM{F8+d8;|-Bofi{bLP1py^qdn`h3`+wkL|J2y1GcB`q^AvHy-LfUPL*U@vU+1E_W5r~qGN|L$@NFou{0y)K#>gClcMMcv*u|wTBkB z*{)jy-OF7^uNGlbePDli*qP+q$}jV_zKWUtQa49$UB(()i2_Zs=2_l6GZ@M>mE(gS zR~p<@vA!qCMlsX(9%>o$Ga6={6 zD8y;>i?3g~6&^>TRC4Zp%7>{86`WSU*XJmIKCB@3nrePkbT9tQ$Qb}Ith=CXuz>qU z&9Zy=&q-xx$&4&&Cdn@9Jz*H#6Hs^@4WbD2nNRXR-^4<2HVx$|%+IY6_h`LzQjEjQ z1+M3>rCE9Qx>LGKeb3&#YKVO)nt^$*+@xCB5{2=2ZIdy*IryDp1%Jn5?G6C`yT(uZ1tN zQ;b!(8(by?(MNwwvD#}XXd2hfXvhj@gPQP%(zMs{<7up4Zr~gb4|Q@cWT`MYR-LZQ zlIcyuCc1%zbEdsX!aDlGl%O|kOn*B$pNB_01NDB+N<2%m7@Q*sv{BbR7xWA_Q?39W zmluqNSG3wUWsZ90l)OJZ{7qp--?{Cb1@9jV2gamNS{LjN2*n&qJ@3!Bxoy+~>ez${8y@WJR`wreDW5X>VrUat zZ(58x_#R<#vtnqf&PYlsZTnKGDeq(~&@`q|EPBYYmMH8*mp#|Nj;56u9%M-z&O~5Qt(qKqc`oCdPu4sN zPl|LK&Yc}}Tix-ru=<8}K1HV8k%QT`2K`gKMs2pIrEhH!q>G%CprbxdhB|p5N!_u5 z#Avqr1KJOkjS42q+_b$faFR)D;Tf}Z&cvh1rEWGa>b9PlFH4itYoDz4PynVgAEo&b z*<1a?Z$F6DlPu3@%N!bZT+1~=|{~UP^^hJ!hY-uYVuSX02kM7W)pBtX#?SHa+ zzU8xV_E%%iap(RS=dTJ)C!C*KZNin0g~+2SW;jCo5`!E&x$yCY0OW7S;d#H}VZjIK zPpQ*y!at#k!p`Sn4&YW%7Ar&$^8{A$cUM{rgIzreDc1Wh2eJC%J&vxs=6wn~j}~s|e~M_Jp@sinWn%s2+J4B161P$OZzQ29|GOl# zd;cy&PUT;++u(4r|CJeXI_G8J+kcp!_J1Qp&fs4| zMA_xrzdiriIsW!e8aMGj8*`_H7vVP9O-PZ{G?@#~d&6s^`F`l0C? zQ`zyChq%s_?WKO458K&-bLUP3PUv&O^e}z~YkBTFIT++5YvY`Q!ru1X>ig?zZG1GZ z*bqBEpR`(S$<^a9g>LH8hwg~`Hs86j6U6H~x#BFx=-APoQF_njVVc}#90^U@S!jMC zE?PPnar*z^;8itNmNiNH=_y@JG#*`gHzG63nq(!I(#4fIH#0Tod@5|^Sm}zh!(#^H znLF38PwWTE%LiV_b5W;czOiQPcw9J1_0BF&eY=_O^)=Ycx`PV)V0Ng*|GX$leEtUN z`P#;_S@GzKN2&I`md1k~=F631*7 zf7bF;h}!w!fd)%Kqd07N0+hcPG}%yGXxHal&NX?$(r@fuz;?xSe%5Ici926$ggfv> zpL*Fg5tA!eNJ=tJy!h1U-Sa~*f2U>%{<^)CE~)%S?z7AU@M%%Auy7EA>^0d794IUN`K9X zn6GX*KOZvJ;M>ROn-GzCtlz19Bj4&JsHeCXf=Q$5B_6y?f6i!yyB(jJYzuGezrk2u zdu#Hbjk{H8EEJAYAEkTXIg=@b;0cuJtK=SGey(3G_*?TuG>05pbTH4bj$-X=Zw zB@fWk$!(?@$|+8cmw(lkU6f4^8)ca#^OU&}G0qe5s7{A)jOCLntcRa-?A_;1o@<7) z=X)i8uxQ`gJWWA%ot^U?&EugRH9Fh^L&gh)ca-@W*EdP zK15p8zuxVD$RPwtOQfcJtI1MMJW9eIwIoB!QXK!C%HO@r$7|FKOPE{;)BAC|U3psu zO;6=2y7IoSUS|``RTKl_G1^9*$8L1_t1S`>%v;cVzhUR^=Zt1sB zVz5<_IHVqI_$IAC1(Ey^<#>8iB>@`x zjtFHJxEO^A%D!x|fKlM=q+i{FaCkZ_mUmcz?fTX=pha(&U_9s_nJs}wI{`O6R$`LMYpM3xz0pnV{HjX9a z4vXN=--SI@vJW`vOX^~#`k9Z&O_P7CeosS@S0%oTzw+EZkG*4VOkE`Eo@+)=faVVX z>K!OQz#>gs$mu-by@LCeZ_1RIFGlG@NF2Km1irF2j^Xod&o$;26g;<}%)_pFkEK%# z5QuD5E<@uT5G3#;WHJIRgy28ZwbYM=!^nIZE&(O|E3P7DPnr7z*g^ljA2=!)uOpw# zyox@DZz#_1fO6E3gCq$7Ke>g`%9Jn+d)4K8=dFZ!dz*@N7s&-JBr=w%wm!~EDN$Yg zfcg}|c9eu-a>S!zCVK|YtsThw7*S&|2c%cuq3FZ3UwDFVSdmZcv2OM~9+lDfGCEp3okiP- zpWN9@_xD+9^lOtMd*XJwt1hp+Gn_TC&wsv;R#m!@JFgx*X=?E*T}rc%`pR?2F>`mB-gw#W5gQ!VfA8{+uGLgbHh7dG5e2V4`mMn z$XPZ>@Ram7~vUZOv z5SVcgHJc3={bl^*aoruwE1Ig%Ise`HjD!2T2En~`2?q?#oQ$-($R))?{wm1^R{BB4 zB;^#@z_Bt|Vv&`&RNFR2`1VApNgkzA`#Z3-wxO#roE+#lImT0Wzu{@-ad&+)x5?Oy zC0pW>EjU^SyScRYqk%doY`R_dK;D02x2;mz?LqnCIlFz8>6-0&T!vzNg-IWAs+%cy zIJ8^$Yua{OZWq1Y87%o_QO73XaANQBj!*k+@y%7#agAT{#egzEgQwGj5+v<@tOJ3J`K`cTy=wxUPc?KW&kmJOG*cFyt@$?yhEcZZxwp8;Yv>A-fv~8@>IYR!47u zyR?nnI~R7ay|U+}Cg;QGPJYVJ=v83M5vYZii)`n}t&bAA=eU#P2-99nc9-LZlst#G zLuo|Q<~6jY6#ti3i&&T0r{oUOcQfD>_UMhLrn9Zlm=j$z=3Yn(NsuOM#-Vf!UvBHq z_rt<=1(&r_{S6VIcX-!!!R?PUl#rVeiY9xGsn@p`3K$5vWq5ik%Zc?+@MKT4WofNT z-J^I^-YXKQkD(*RTu*Aytjukro3s(qtq_x_b+zImGOw?4$%mbydTNlA9LXo;gHVF| zK@0Zx)&3dU)cUX7n!_xq2Y-z$K_Lws@Yyc_z(1{QH$egXuvLB@Kr zJ4qTha5fnhxyN7T>p^a(I`$5g$XQDp#8 z?so$-hb;G*-vx_d0r`cLa@Rww?6lq$k6bZq?(ck=O5f0_?$ZFiAxsr0=eKRFIC0$1 zgMxF4`DE8kf@$}Qx$_Hf)+70$6O%x~&{LSin3}Mn-$>S1elVZgcN*IV6)_Q~n{k32Co z(X%q&qyVnA4&H)(X2S|6-V?)~9hpuTynDsEY+WBapINt4NX=l&Hh{_6I)%Y}P<@3WJAePlT$+^U zv^>Si{LQti18CgOS5@&8bivPz{Ig>@;poQ$##0KKrm&i5TF`ZES2_A~>W>i7t+k)R z#VB!Wo>N5gvs7NStQWP6q(>ze?IlCT^KR<#F4zgC1kWlH=z%eXMYDijlT3uT7&H-<~@2QUX9z$~@; zZ8uzddE+njQ8|4=)q)GcZ&bqx)2vZ5&o1zbEOZwu1HKx)R>ejde-5`n{Dg+E0_3QN zb3cvC=egSV%;prVAZvFvh3y1V-`t8Y?QBVY)jaNTgYLhf7AmcMFJ!Tm51)%E?+B_w zsnbq=7LL^6-Foxxndfyey&@xu1ly2cF?d5?FGo(`9(#4g(*r=Et`0fc^{z^F$XGmc zl|}aTQx`T}Rt29Q?Us0l#{%DQAv*CWBYliFGnzHoeDZ=c1-UaGxc&T>;H3~f$WSu2 zdb?E-K_T`)4-s*=4-aeB!fy)j6Q)HedeZ8FpM_}M44CG_l>naA!#Cu<_%jBx6pKM0 zIIJK^V6=z#2kqnm(&a1R8H+^GV?8;&rDv)g%T*hJC68@AEok3c5Dpq1M1&hJGRMye^@;*zyZYLdBTa@-Vo_fe ztB=kF@^_NP)UsUvQu-7q(!^E+$`NvXBMS3xso=GBok>{ZEB*!jRh&NBZ9y}bO28@O z*(99Y-Hd+Iia44&qOIWoNWj2v?#endZvu%4b_>mWFMkpI1j$om1#DG>er=$CiPE}T z=rT0D;)g9k0zacy$sE>ppAiZ~T$-APZkf7819Y2x(}NoZh8*QZeqwoGI;6f)ViYRf zl$EtQLKC9I2ZvxR@rWqp{jl8*BId+eYG5FmOjM%wPpcl7e3OMw8G~;l=OLPi2f!l$DCd3uT-B+n|9p1o-$iHB@5srROIKX_K-}_JQ^n)wFH_&@zfeDc8pZPy6HS_lt@9s> zp=YO57fz$E*qL_!(Gn4&0}&amYh}&lSIzef2)PzU^`^VT4#cnFB@F$h*&=b7!iEG# z#c1)Pn)EHGdK}{fi$tC27XgBnm`z%E?}qlB7>tTYMH9qE$r8Q9R(A{PrB?dE4w}SH zXebo!r{y}Qbu+CB15)~rzMok1C2k}RqWKaN3^jQDp1GJVFpzz%yb2V(^$TtnGdGS_ zJ~s5Ab~2ESy#v!f?4#`g_VTcc-*^c=a`-EfqWSN}ulByF@VqpL;Jcu8Ym|b_PIwhK zl=ihbwDiUGLfHPaYb`&8M?7df{A}rSjg~c=9#i+O%t+~i5>r$MB1-^;d^D3m^yNpR zdOv-$v50lZEGi9Ut#Xafu(sD2mURJ8ps2!1e4Y=U+NY0Dve3yTii$PNvA*7;E}vvKyxzD{}`!fkU(g7ulX1sgf1gX<- zsz8Q7#?Qff>e@>+V1*B?O!3Tni8-o*&z<`C{wq7by7zB;2jk78!u{u{Wfqglq1NO- zq-ibC1EGZr!uEi-cBRTAn_p(lyT$|u*g!VEwiSm;!-UFrd<=c>v-ujcHV^6Dwx&MA zxIF&50qXuBlOf2B9zQTJURO!&ApHeQ-e#=xhME%Wj}$PFSn_p~TO1Vwq*Q|Ud3?K- z>a?Qb!}EZs$|*}dTL@0K5uptYyuIIt@X29So7VHt4DVE1R}hWS>rYnlbMa+fE`>4J zivuKn7%m9OV-!R)Qf4E0lq0A@G+D*NDez7X@>k**=x~2ntZ4hGTd+l&;&&}Y^%{l$sS@MAdhvNKa>{N_M$eK{y4w@<_mN(o zF^xh|VCJ31S3o9R2UKywn_{WE62DB9Hb*Ntlm2GKzNsxMcm~>W8(+50+5a=?lb=*? zt8g%j`>TjpecMg4CtWJIrYrTO8=8r%$eJ!w2di)^X(+>@;Mxszhf6$0QsqH)tzM80 zlq>=8I(poOY}T@sz~E1krb)ci_%!emiyhvw0m1o&K^}airFwQf&z!g58X?zwXI1U` z2BabBuRuAI%-L9BwW>Pnb62gp`{`?}gi4N{#$wkWZW_|IY83yQW24`ba)ML&#OVMl zYmyO^hN$4VDv>~29amAQ%Ock>f4IQ6;x4O&C91Nl*S-CG>rdn3Pc%)=Gfg|}12N^F zb8cLr-#-buYWQ-s zjDU2kOHyt?allj1W%|q3Nxy|W%u;JNEltu=+MuuzI=PqSXJTPoSgTcedzM-D-LkB1 zQ7wRpMh^x?I?iIJLtSuBd` zqgIQpsXU69ahzKu!SS#Q`OorOz8Tc+?zCu6k3LwejVwoXgL1pq8$o|%&Y zUXNC9KXa=@`|*EKid-Og;*zM7KEnEV1W%t+&r8(Q<=?(~?2T{qmV&t}Q)k04HR`p} z5I>!kM%$;Qe`XPY0BK*F(M%Fdi#uBs@ylUH)G6LyU4}5qBdh5yOt2(dWaHys%mah$R!{w>)#8388O43zq108DEFHxOC0Yr zWMKjY)C#LVU)t>CfdV0DJepBkdQvsN4ckzH_}PGP`ouHD_tVSx$vs^mXPjB7vST}x z*bgr)Ol%staB%Two*TW_MpLi#7lv2&h=hq1ZRQU~tEsZfNJo~(vBoZq^2jDe2}&@^ zHg_e}NZSIL6Bj~iEK830#X6>Idwyzf+M@w0i%0KZ@8imS3%N(60}b+gShxu0XX}!m zg1f8lWReQRXipZz^Q`l(qRcj*d34>iC{gcv(F%O+2t1sVHCN9pgmx*FI=rLqzpYDT zI9hyk2xwTL`Bzmb#4!yMg?fQ_rz5KJ68CkyjqffRIpExH-&AoM4 z3)A(d&3;(!QYj&r=L&)BuCQ^>iYwCrH`*!9~u=r zA)T1 z+63MrZ->5_*3re_k)w1fX3%?OhyE0#?@+Ob&E6i}NfqhGdZ^UPPjo$N&`dKqp1`0h zrwiW%cOtg+u+yDy2^wEB{@QM7PyCbDrgKxvr>N%~8h1ytNy%+)D|^~VlOf#|;+V0b z`Kv3)16{3Y5L>>ZHklHU)vftD9@pJ5kI*=5gJ>dw`O3H*5zRf7;JVrj!vS&%s3jRl ziCBBQ|JYw{rI9}3pog+K>dSiNSKQi*$~GH|1TZBfY=Qid&KwB-B2}58?QPFZKSn44CkuKm)_Z)^4!CI?Qu!t;(Vd8Ry zxkjtOJptQKXiiLFM|X>&PQf63q%5AZpU&IFc8rHci?+^!0s?D(22Erf|hSY#1t1Y@;Xdg}@a! z{AVSltf%BQ+NrpilE_B(DU#9z?K2^BBA-wNI4FM)MYGyI(wE}n z{bcCIp)UorGOCkZ_qw0(^DVYqA6s4;o|hg>^@AoK^M8y3DL7jrO|0_c;{e~aUmFC> zX!e*vyKsm;b|+P`Gs>o`2PNg@yVHZ{% z$4ljJryp|8D~SQ#-rZ3)8PUT=??b%QQ*wXKJXr~R5*+J!W5n>>y!L4w*%|Cnj}Mk` z3S|5p;N}YtZQ-hyv0+j3_W%-KZ3Alh&%WW$Ed)U&%=;iS-)7jE{Z}UbT`{b+M_%m0$jT|SkzOfR~cO~ z^L)9^_SF52bG;i5KNj543cHJc0JB{Rp3u7mRKw{zLYio<${G-0b)+n9jvfJk_eJfw zP>hrWknH4XaO3vRY*xBtWmxQo?qo{Qist!6LeonB1QDh|{Q;O$YxJ2Y!S-;Ain4x} zH^*9QjWIv0u;(^eXnQwb%3DkA|K_%w22$J|ch6n~a2v#Qn=ayt6bOeR2Az+|@52#4 zdM91B{uEl!M-DF0g`Pu^p~B;!D=~g=3YR{(ixUu?pGOq>iV-#&pyVSbA999@0PmHw zgFI?YH=#2|=_i?d`EM?sum?u{vWi;h+nrDzP-bT&F!#prtJf%$B3LYGBL+xO&ZHZ8 zp>Wq5?D6H&j59zsPV=?C($1@@5-=ne5?FF}a6C3Ji@9bT`o!4|C8>{GNDAMOVYXC| zGnVy+7xiRhun3x2K6 zSqNG5n4zq7zuKI^FkEO+4MGR9QdOON$sbH)zqvmURWWyLR^U9q4S!ZLw0OAgWVAj2>Xa=_pyj7v zT*TJj81~C=qdK0q7EbE@9_kDCAVF31mDmzn|}j8oxYxy%W)r1e?1NL z30214m0u*^hBgvG1ccsuZNB@oDQAwWea}}Gr|yKIb3w|EXNP!oy_^iN4uHR9&@{O0 zWd8FL{j?w(w?TJ@7~tp{o$fRG%a?7ZS|Ur_7O9v;-W)UmZVD_nKb@+F%B0!yE_!v& zMaWfTQER-^Ft+G~6~0)xf}nleXVSZ%iLqwOC0@#|z~Rs4ESsN4UDQ{a{7!Y5i!+eN zFZ5n*jmv`1d0z`UZdbYdwz!)b&~Oy`oc)~?@yL#WjKa`~*!e*Pjc%||Bcf>cs6DV! zlmGlaU~`X4rs^YF3$pnj6t~;q9S7BVkfOy4`L?l{hVPuN3sI~NtL73>s?T20RP$ie znOxECJI_G2^tF~9Gf05t9&aL;g&<=1c6pknPI$kO%KwQ#`z;df!hOCnte1Pv{&)^P zQBmy7uZXbjPB{Vm647NzK0y|s@%Jw|!32y5Q9wMKC)oc*STbj(#0y#Og4MZ)Y_fgy z%gK9jM!{bn|FuG{(Vg}9gT8dXv)5tdl}#^K=)1Z+>_);guA6>;mRTKC5XQi98yV7e zGswONj?6EUV4I@5yv2a+M^8@7&V|hV%uK?)I8^aR(v$asG=9>XE~J)E)i4R%dJl8z zBfv*j@zZx}>o}qOzRhqdPa%?*hQBe~02vBounSfMvT4wrDyPV^HdX!?N425v@h|;h zIkQNR!ZxBjWDLfXsQUuAxh*rvn2JaVAZRogpN@Th6fzt{ODa1K$T4v0Hb1Xp-(==0 zcMB4yq5MyIR)x%0QE+VP$x=v&v0^fxuW|t>+Rr@2EqBFT`)0)eJ>OEeP<91Zrp4KZ zK+AX4VU}?|)*e_hZ+#sw3KNkuIc(sLZpfU&)LQf**bno34?rj*tq?w zlz$p%{)^F!*z{;+;fsvHE=5Z687(}+{vYhU2T+sUx9|VjKoJWfC`}Y!KoSAz9RviF zDkTkqNSDxi2LWkOKuYLEIwT?V5;{l?9gH*q=^dnZxXz?bzp>NU3fI=f@Qg$?{eU>OK%! z_2fYtLC!^pwK7dimhgAYJ&jig$+xgsJ_ha8;jKFG)Xs~a?OU&{0k`O}?I>nVU(Jaj z7une)?@EprTpGw@?UXx}oXi07Hz!(*VDEH}9Mi@UbHQlM4%&WK@;zu%1EDE<-hwTf_>X{Y>gJmeLW%WQ3QH z!`@dC`GbL(Pu}Uy(m)3tT`Dx?IitL^M(**{)_3tm6Za89EWZQ!`k-UUl4P&f-94X; zCTF4&A=aRvUqC$KI}Fy4>ee+vKGl#{92W4h2YBGFhalwMPJ-xhO7q7v>Szr}R8=0PH1=GzHp?aCwmlJvN(87<<{T-Y~$i9(z~;~9QDut<`sGX=AS%} z!TB#=pponrK6UeO<`{J@QoEocvt12LkE*pmsCUSgr%%?<9lndvq*~;T*EQCaf~lNg z>9IkJdd2g!^ZZ?U&2leW1+H!lzU!K=E$3vuF5uC{?p&YT>1GRkw~o^KDIGYLSu@Ud zocY{NL`1W{Jew^JEhnB&`Y;He6Vytt3C?IIMjPgh`37(JcyJF24@|bm2oJBjrI8s4~OcpC?^^7zqt)yO;}fD>kSuyVlpL>d{;?XPhEfTdL9Ey_=L< z%zg3Yt{!$mK<2C|_|Kv#i`u}Wi~joQ1QY3thrSovJJOY{2NT{k72F}(2_OHBzv@5v zA)%>nb@JoMYwhPqBy1u8x>Zn<6h>UUuE`Bw`GnH(`0={F+_h5nAP#!H?tL+>>Dy%* zfGba5Q<4#HzqipVygVsK_|ctFX&(u8&rNdXeF7_`Cv^~7%5Xq2`RcI*dvYVhO1ZKh z0%670%DFh}Os>03C^0VQ>Yw#H+~wO;o{JlQNa;%SJ_uE$c;mSVQ4F1y3CtvW z^qv}*mkWdyv!?v{B@jpg-u(Ogn>SI7(DB84KZLnBDH2ySMa;OOQ~Ne)gY;vXNxC^P z>P}Ic82+H3ty;$1QqMkA)SCe;*+O8E{;} zuL)mLoD~$pR=_sT$%%mL{_X5=jd)gd%6T6FR5=V>zhOxm=;HudLf-D0I#C?px;_dY z4;kx zaS4u}+bdZeO;$4EC5i(I<~3C1>MZl%J*u44eL`w8X6|mxNx=OVqAt!arqRc}8Y(>I zdwfJtUj58t)k1e5>`+r8S^HJLvl#bs>qHHSy`Fxj&R{k7fhRi`$y4!Sy;lzyD2;)BmHB?{`}~DPey@*;XpaVE0Hxc)p&NBZt~^s6!>^)bS{vY+GjG6b7hyJga{}tKB6TLsK=JLc zr=EmRU>Q#Fjyy9D+;c_GpMf|i01iTB)br2wte*D8fOSpVCf73v2Nh7^&-zCw+32cn zvQ>e?=DRiQj!aTT`9M9|HMn|moN<)L-jtp=mWmX05fWLA6`3`Dp<~>s0)#uZdMYD; zS9D-jZr>QYgVR!m&>KMzPVLlW72Cu^kiAcdRDMg?(}LE9GV z2ko~&!NEiPEMf%9FStqHXMMoz`+-GE0JY%lnH=}Jhm-9?Dv~b_XI|gnVoD!U?M$X> z%|be6Wezmi^`-=!lFw{#;>3GRpEh4DO)f+z5u8XX4=fE={H2qPX?3+0%cQW=i(xJc z-SnN9%)Yuzu0(gA*#p=GkCyy&9+f2BfpiU(TsA`$5or-ua2@M;M|73W{Q136$lVf0 z=RBzzlC3eUj3%7(Y@e%}9p;Z@;SkAC&Sy^k*6;=`if3>k;J;NSGVR#Yltp9ej$Q4? zn7e4z9X$jgDn2nTVDqqqS8kbI&53+8r9#Gh}$Ur?^zo+&Vn61a|2eZdYZ1l42+Z5}H|oVB;IYWpBsj z@N2$XEMN8W!3`0&X==2`j4dX@GbS>WuH1G(vim;*N++K?-_Z*3=I(cFKsh{ zyxgtZCqSyFLXVtNJ81D5k33pjUvgc4U0JUf$Tk}kS(s&;v*=ouDLj?#eR7ww{8^Wo z4Dp`nnWzhpBcSs^2>@U}2}8MjT0*Ae7{3h+m;=EKfD%pxcve?}|6`a%nTp3y%`xCq z7$0n#L(7OPF$tD1JG5RH9C_;yT?rq$qH!4u#@!lK+W;X5xsK~FzA}o*K`+IO`8Z%E zg&pWjJzS0b?bkr_9Z`Q1j9@==C?b*hLzCo<6e2c&8Oa&o!A&VZutIf?VB+l+$i2}B zSdSm`Tb3RMS?nALvPEA01V+v1^wufPqYb1t^{qoWjbRe5i^|Bpe^4LmaG+dSzSG>? z58mvsoNj_wcwrQvk4MWL8Kb32aiAK9QSzqOj@lyHKjO@D6U&v0Bqxu_J9-1@;HaN; zECEVob|gAPIkWztqb_@mayuYWr}8GwxQe-8wtrgRaBxo4pV0SqmVy=7bS3I{My*(Y zRLh2n9b4PKr8=_vVkmB{jX-(`*viOg5}@iNdSpc5u27}upmW;@cyHmwmBZWm`Ic2E z9X+ibg9~RD_ECs}U+o5xu68ThS)!F1JN?&3;~;{KNcrEeEo&!_Hc0m1i$~>!b1QCb zkk(n6y^8)(2$;#i)TX1YwPURQ{4xylJg=h&_pDE}`%U}%NFdfQFAf7rq&rcE&w`CR zF`qf*=_TgTlrl^DotPvCNXi(xy#&9a&oY&bldX*f_gX`Mtr+4HXD6N1%;g#C%78ks z#SS0*lm4>yg!&e+Mtf=ie0Zj!nK!TsHT#E4$v5Qk5_tkOjs^9zq^KwO8{&6*xx zgbhXEELj4sIXfQQ>~fzi0c%nb+>$fSU!Q52!jM~9cNGqD%0|iR4rKaXQH7NHloFqG zAlzRwrg7Hf5gdKF=4?%QD?V+UXZaQ%F++&*2m9|wY{cs50qJA#yDmuY^Y#G`;8)18 z7-K=?tgUqdg=<=SRflgofSyP9TIwVKw86M7xkBg!#aU->MvjI8}ruy z<#k+~W7Li0T@h)W6F=C|O+PY^5%H zw}_?<4jmYGcutbli(9UA+~aT8raXfibP&2bF!S-#;o-8b+%UedrF_Akt}hAd$Cr8m zKLJXskyx{hAIZ~WM7xPqY7X;a z4)Yr6L4LY^L$N3|&cg!Nd1ZrkNKfdY8?{)7viFzGp%Fs%_@1ytW&85=YllDow><*I0&?W!P53moyDt+le*J^**&J7uCKE1~I z?v=C1`s0WvNz+2T3!*NjA1V_!_i#gdpoVI>JW#Y=74N6WsIf*g)^2s;j+HM20jP8UlN&_#de2ZY?V|D7zk5 z*p!6qXY-&xAuNWCkBFDlhTlNdi(hz>!^XQymBut6C$_L7^q`fDcCYYr_u65@yzdlu+PopdsJ^{{%NJ`1~WLAR_XlTw~RS5uwO zi1@rTRMy9T&QfoCwJ)1nOoh1+Br0Wl7X%AmTPga}x1@e?x+PB~AU~?ce>}R)8i?ZSFbHG2Dyn3RafbA*H=g_dQz*oSjJ35%;W>%q9q8NLv#(pbDK ztr&((YLZ97gnRzPZstMBrutW9d*G=JRexsUV}sG!83{2Ht@PF+2E4p6WlwqL=P>xCAe759n1t_<2v^e4-uqQA=>JB@~Q$| zI_H+YD!CU4P6m|1Ixi%RiTTk^y?zgdS}NB_W`TaWFkuT})DRIMl7*RhD(DH;?0Trv z$C)ee>>wxPQwPS6@_7QQl z%aAjqV-yIR_^CgzFS@Z5SELktZ~cPJYaUjVqX-MMS zO8n0D1RnR2Q0{YMBm5B_6Iz+ibjfU zry|#5C;vRfny8plRi>R|%Pb_nmtd~6gZqR&r zn+Y+yi2}ZY3U77r6NWy+VO3*B@@0Mn{!Frkx_So;@Np za&2gZv${Yq8y1m9e$7MaG)uRllvUJ=l!W>_Fulv1VxG)W53f21eaM&kJt1xDx=a(w z^rzC^Bud|%OLQvvPkWiYZ0@}oTslsXAlfteW)W>rAh!I*q4fq;xSOlZ^ZM;X?W^N$$T2Z7JHlMh=Ex)bG4lY)}gBX>}$=U&4?(%&-}V0!9thbQ(%5 zgXTrQ$@R~FiMMBeP_w-TAaxkh^f6CiP9t0AIA~n%R=LoAk7cU__+ z^eZ@&7X|^_6G$iKnPg1{#bJKV)BaBrYouMmGdZk&D?-^!zq}5dG>h}1RT%=2x70=>m0{A-S}K#A2Kj%a0L2HkRI_mS55b*6Xg; z0t&=jd7Oh3QbFd=kwje}?ptzp4l%`G2?x_suursV@zN*US7cok1XiLtkD62NsZu@? zy8|TABcJZZaT>3YRI7mOVsn_9a_oAwv0WcEk&YPoacnw%Y^Gz5;g&|a zt|SZ-5#<5%7$g_O;sTVSXqh4Azpfq-DjdBr+x&f1;++K1>)DmjU=}3;g=U&?9avgS z{+5M{kX1BJlX$EFw03L7e(LBMF+=&QzUFtv^+}sWR6h}=I1efh;A+27!yn!Lt-&7P zy<<#teu1NT)T=Y%UktDB?yV_nU~n;uglQe2`(c`n`CXA<)PiUq0}&;pq*btjOey;% zy1)L-l5U-`u0S>58n<&|L@CbE_E{}xWHMDc%>iRf;jqWECu)MNpoq*UEC#RJwqwrY z_p37A?HI(RhBw`S0f2LsfH4iAbV41bR%tJtAuC1Qc7a9$Rcr0gY7xXqqFV=gzQjgE z-8WCnfR{lw2j9bbSY^jeMj_ucd{)yy!$cCFe7Hh>Mx5BuJZBmpqETLS`SbdODU4yQ z1Eax@)zy3olo1=ni0F4eo{+AY`TL7xbF6;0bZ_ylj;iR)b-;slCO$)WTmw3MIOk=r z|D0sZeILmQ3&!pySAKo9^Mc0tl3s$pivyVhCf|^2Wm$qFM934CBHZ3CYzzYtf2b_h{mKa0*oM;kk@@ciAT2(} zqfPUy$I0UNROU}M-=NuW;Uuvk5bko>zkCAe7KINSuVw6(jr?SO>g z_P<{)#_VTwB#{W0YXGGpP#<`j*{hSTVLnGc@{+nm(tdV{c!&<61m`ja`DXl8xD=qx zKZ)2gh266D*<4AcW^8|&%1__-`1?@50ijKRg|S0PpVgC)F7{RLY$ch`&v{Ry>#W0QN{y;ci*`XL@&fPK?#G& ze`{oy<;<;QbsBegfxhL$hLz@*Cu;EcWHflsJFj@wqQ`P}Q`lC%uIX&fNNhOxhVT_A zMOwX~F&Dqqr~s+Wvdy|});g_=W4UuZmj~sQ)HZIReN-dX^XR52Y*)%0Z@~PAHCjKL zZ!VL`SwXXGv;8=4eU@*|?Pr$X*c{dr=Ec)aUy$Aw;@>cgbS;~|Q#+721-CCt>19w& z4p5e`*`9Tpay2*+fZXBcivduDrOffNRF&C_VN#Ye-S*8-{5LcA}fAJbG4%k_Fn$eF z$jt<_PGVdIJqC9=_$xB$Bc1=Eqz|AkFrh}L!seU?b0OJpOol#H|EyATHBG(? z#Da58siRUI--XO!7rfw*dfN{~AuhAvo=7lz_`8!}JA^oMHNby_k4>p%seqDRMN_L5Oix z;%=WBbC`f?)!5o0mZ)>saP1-^FnxR|yPR_3r=O9lpn5eR$rs>#S|b){>{k09C(;8Y6kC5+W0*)=2= z+D8kM9%}rot6OaeN7|#^>f=L@3BuR3e!&PL5;|$ki5y`FO)olMg(rR@+?>yY)2~%w zA?JD^#bj!IyUULM!`%8mKS}D200MrVZzO6S>o_^O956X(97#{r%_ij}x@*QmbrxNT zVwM@5L%38Pw`>#^sx6k`TezJeh|>ir(w4~$1zY)p({iZ`%;}>aiRcaM0Vc&9y;AyU%NUMhR$HFS;?W(Ujo@R%at<_+|G|(T<&=mj%5?fptq8X z-d3-;RPIQB)fXytGz63=ZmHE`FrVBq&!lP8=Q|CGt{QsLo0eoNI!A(5`MkMIQ_TKr z565x6Y9BAt*-yChOGK^Q&s`7)@*F$sA(3m%o=8Jr8z#xRYMfBY2_4rumUDMvgzkU3 zO?-DCIpFzBl;f7yX%OnetYVcze)3fYne5!%j{@S3ME+iLm`>)K)DCF84md?AwFFZd z#*`Lrz+=NSOX4zk`=jy35ATFrxpRG?Y2{a=Z)It*We^t#;(V$~($tb+JS?w}`3$C_ zch%6X*NxRYSeWvRX%>skd}bw^?h4S*i*bJnnXz-E zwra3BFp6QSnc?7x12;uPgAdA_rrz`}Kh)4O zB)?$(it`)hD-WGhE_CGGpx{I+{;V&PEyjKO1!UdHb`X>cvn8JWid3~}dO_9%p^dGB#asW4eK2MUxTha$F|=FoD-;x?af zQmCU6U^e+b0whe!CjmS2%0Gdb6!T{UZ_Bztg)a1fd9A5cIgo3?Hf+TDsF|8IWhHur zo+h)ZnHN~ViHIYPfzIzZlqYEgR)|H{Ar{~Ly0xa9QVPcC194MqfH+XhvqhUpL#z9J zC)vez074Njt;H9YTZ?vUpLm2wVo@NLmjeL+Qn>g^SYMj zltThce_bVx<=W|t6Kr@LnpfvmT1PM{#{3GKBooa&vuX!p zn0xXQ;!Jf4l7XJ?6KD`_;9~kp9F%|8ma?kl%cX7(ZM(t84C zjpt~$i%|-verXpEmE!zPzb8O^dtIj=rzlys>Rg^xvupiB2c0--qI+1wPpcv_eT>5m zF)!}y3=taT#wH=) zG#~KAqXMVHv$2XJ4ma||#qe^)QR_wAhQijqQa!Db=W_U=qjfcHUrYI@M&;DGqR+nC zx1_1NQ8MRW>sx(los7?Ted=#f#`$pD5*V^1G`;Zo@DR@CcLpszTQ?5`9`yS<))x2p zm!nH{PgRU6XQYnQwbP}3R%T)AEHAk>(`qUdXM=v8?6)Dgk5!~Zsj8}}wkeQ-&YLYP zn$nM95s#)e7N=Sat88Es#amnx^|MKR7c-F_2h!((o1gkc4x~h;SFn3z=*72QSIY6D zcNdFZINjrphN+k>XUp?h-IlxOq=<{87koavMry7X!*@2Nb+-NvY5+lh)%(h+mFL9c z4p~>(PCFZ_p|Ale%@kqYz#{TugV$?6a`gVx`RSRXW|>A3=#F5_rd3bt;Lbk z>{u7k^IeY9zU4X&pR^5`iIyOINL=CazPXCf*HB+qScrkctJjj%-mtA)rlXj>!7_+~ z>*neMaf+u>om{J2FcHm4nGd~2r?ZRA=Ry||wtt)bd*{GMy>u?4&#bZqigzJZ=~Htu zZnZCb$gDqX#GxN3VgHa&Yu~h1DBmbJ6weF9>i_e>LqY5xvkAQ|=NDF{4Bge0GpoO| zAomE+Sr#H{7kCOzp9sQ1ZrGLcyTF>r=pU4J<)F(1Ch>omlx>yK**Y9^+yy^!xPb zZ<1)T>pKQsYGlFdyKTnJ8{`kZU)HND|5NBU|K5Q8e>~oJ<@W_8#4r!`zXKxj{TmSD zzW@>c7nmg93;usX9RGi&Nh$#}Nr8WM4NV z|N6QA591^SMa0BJ|1C~Z=|6&#Tst$cVt=zc6%4U0%o*-9LD4b%0n*~Z;G)Y9LpXgu zzPRyS_xsCFe^K0j3{*gF^Zjd4?S4#)V0Y2UIpMu{$U5K5gG=^;J~zKU81IlzZXDRZ zbt~f0)v$oSWIwiyWwiC5-@P%$sFATg@Y7}9O9OJS?&<#KUGFYCv1YMGV$O7`o=i^D z(|2C!%cu2!{rA1lS8S30uise@PI)X*pQ7dyLNd$*H=^H8VL_B}7N2fkZz4YSw_Yqtl@!FH3= zBdcMqpDKM)zx2UvbpC9e$$ut#O|n{Itsg5TF4IGtB(VRJeAJ^;GRwZ{@6~fMNQ1 zqp0c1D&w)!*y1Wp$^Y%2eJR>x=Wey++19@E$Xx@(eex5KQBq*P|ATh=FinArJHCZk z0S#5Y_k9Ir-koI?O79Fp3t0|phO-VG55J$!k27hXW>fo~q}}X#IjTP|!)=*F20l_9{k%VanmrQPx5J zi>({(7w=dap7y>GzZ7Q?L{0FDJ4F0p`N5cL#>cVq2`?%GgXe?ss^U`u(R^U(x48m` z(q2Z{2@o~B)9HuFQmlXvM!y}qaDb{O+jN2^J$=KRj%p$D1)62wpbt*dw>Wd}a*7n8 zD51Hl_+yodZj(SvxNABL;hcncqJZ&(Jiqm_v>Cf_<&^FZtuPO4i>wHpZ^T{(6P!5B z=+X-7>t}2O@30U`R|0Hp-(wExjiK`tP-_EdJmi7OcMwkU{ErIsNF3)S0G2XR*u#9U zp)EzvKfqh{Ve2C4D)pMopF)=fjwawo=YAw8;z_!W*2Q+6VRPQbS{Owaer(ry=LU!)dhB2oL8OD`3ko6&@kJmb0voveoxuc&^v%YW z0yg~nv7_Yj3wSHSP(_<`Q54lCpPZ&$koGa*K4aHud0W3f@vlM=Mzr$?nA z4l`58ax5Ncq7b}0?8Q<&=ZFd>e}3)1Nr^|&Y$ghHm4~A_MhftWshEit&}TfO*A4Nk zmN?g16AUkc&IbbtHGj+9m+%FWi4`t!h@@i}C6!q{MtLx`-Y{$CfaWzPCNtIPLR6q) zrKl70qUAK%@wk_e7r4Q8HXY}H`~N2U{9gfe7}c6YHvwOK&oX>PKHJbP_xnYH~0~kzrY)pxsyt&TTJia_}}?-Oo711 zVnR5^@?{ip1nzUAk5n^uH^0xeDN1QZV5fLG{ff?_xg;qGTp~M;!cPM{NLx5z-A2g03$( z2pK_MfaSR~daw^mQ3TU@C_=~sLGYhR`b^<%v}f%j0q*ImJG-~o&Gl#4~psVv}^d&gitQ&NYf24}974N+?4Z>}Ma7KZUy;1yg_;iq5y&jaK zSSyrVVx!@mys+$ypLy#Bf*C`d`;=M2;71);UBmL>QvNGA4uitNW^r6hLn`EFDV2oL z{1258i6HBb+;9jC5y%H7{fSPG7%JrtIQuZG6c5p-#_#7ph@5Ivw*Ic{2dR*U7H^K1 z&IE-xV%;9*p%X4=)!o9E(BQrZ_(s_$d2oY8jIJ>nLo0qqMBch**==L-nFEUOkUHk! zVogpHb~J{f#15r|z}TCOq(eUN1nhnHN(gT_TljWkdlH_-!DNz$ zfK9T@K09E5$&W1@uW@tnph&=&L*+dcdj2Rvzq1Vajc_Z^a&Oh_ZgsJgmZ(6@VED_W zBsXf4_w#W9Y$@XM6*c4V6p+mxG_`3JKI#W7g==)sOo@dj@iaIrYjpn52iT~VH*k(m zh~r!yUS~~hG7^lKg;X|^kbTM+OYg<-v_H4-KcXP|!bu2>NGW<&E|gAap~ieZ4v%$) z(kLduO)HBs29<=4K;SgpA{wxAx7NvI7-E?T&PB)vrlkjTqON$`V(^>tS<@5VEiaR7 zv^H&Jk@$EE$>u!-s5(#5gJY7%!Fa8tFzVQYCTv*MJ;vT;MsS<}_#LN%Idn7xB5dX? zT!eCxGJ{yXHx-V>Juluanxcg65fIK>gIB;(9u)e;++Y;%FkExxSIl_1c~Q3G>@6YS zB+2xgI;74)pp5nkmnMoB$C{|oNPoeXG04Ed@$=_TqWRr|Iibh#NeV)O5!Z39S zWT8C>e*9MP@h}vzH#OsgADJsa%0 z@FK{MfQfhNN-I?0)>4q~n)Sodl^;7kJlF8&#i?}C9)S=aDctjL0Rz)Lt1z+$anRf5 zDbDHES!Kz2O*fN}jg@OF7H)2O9R7!N2wA!Fvsg!>jzqeHPXwlf30?cu)!6dgYsf5&0QeLuaBH`>Szf6JK;JuIEc(jm=zNag!)M zc6d+r@mrYTfZ7P)d{oVH@eVQEo=?FI%&V5d#b}XX%^?}1YzpX}H9nD31&VraT4(G1{VR+eD>JTTBYu5w)*Pf$!}k)5U(9=p|VLODUYp1h;-@oBIG%jDqwy(ppz^ zIY4a9gc#-3``#P3;qPm3^xwKi`DlPl!Pn#A? zS7^Spit96l423N`5w`8dsu)W!A(m4yEUIep%2p|{_C8-}?||{T&idZu(rt@@&;TJx zF7U3!vCCbNOf)x~Yz);m5lU3iH-@yGU}bLs71$z^dU3r?{Q~w>0Y}Mz2 zk>3Zk^0A-SbDEpxzRwdnWXgF$|CfTD9#e?0p%gX!qZa1bBh6uLA7!ygvEE1P3+AJ98am>v zFKiFfbK=fy7Wi4cm&7&u;sMQZ!ng+pQcohy^Yk8kfg2VuYQ95oM#HCbw!9otLw|@E zLm3*%YU!m)uqyaI`JFUJoOWh61~yjKR?S`>d?0f%oWxW5Z`e_>4@8v<6CKUXNxr zzL2BQW4_PZ7QaG_XHOd&^COP~7bo~Ao5m@76C>2%xx{1|w~Wy|46*0n;=1nQc%9&|uojpi`OC?`MJMa;O!=UZ6>+tpiFkg!k< z9qHq_`)GMHDIDkv$1fP1XiwaZgbb7_hd>ebVUw@)SY*;1SKPe_*1A&!;vSqECR|`U z?5$D~3c-FB^<9sGOmaX^U#fP4zQFAjOiSx+Sd00a_GUj%L}4}rY8FI_d$D7Q5Ca0z zYYioI7*CBK6MZOdl-)=QgOBpplOtPT}F`+5}wRXUU#IfP-A`+w*hhuQUn}~fI%ld|t zR7j->#@Y;%Qwc1g^HcZFoNSc60x=r+-dOUyIJo^ar3i5uPFw=-a^a6}p!uPmtsxK$ zyu2%_X%ASRbz4dzA&EM9L^~@p@+|{MMJNX5EhY8@+$VkeSNrsF4a8W_NdR2=92SOd z(~LIb{RwyOs?je&ufN~!zlJkwQEoR(otx?kood7)O0ZCPpnj3RMT_FgI7j;}dwS{T zi}a*{SfvI*O!o zAB$nzd}~FP6%MADST|>evn$5$^0h|4GEs zxAHh=Zc;rmSIBvKkCbM1cE(F}kv-j?WxQojpZwyfa(*0{e`yQ?-6?OF2pc%wIw6aDL(#{L{E4NFrn_e`U22a!fcX^G@Yk&?uMGj9RhDJk+N{@fa; zxAS9}41P4d`B~c0IwAaED&q<+dG>z9eXjK=@(k(5s_Q0UrfPca4WhOC7XH|FARn*E zK;{5X&D@5Qhl?2f;RKn0{UC?EE=*}*$=D1-Z35Zu1lT$>d)pW}PY)B$5i2^1Q@d~T zsr$aI8sLZ5MKCu-#P!+@3Z>H^defWEP@fj;Vh z%Tr!=_Fym$i7y?KTg3zA*vT!f#=S_PBL3ZQaqS5TsB8UxSYkmDd~o$L z9I&I`JcZJExAth#|3uWyXB_yA_rEE-zA=)u&=b3#mi`>FTf(<1*;-hnxUbzflQ_BO zbX*cNPhC%Ca>d;Y^JsFH-Bk>}7jalMzhvn1TGl(oLbRAw?y$>)oM8n0OoL-clTo>I zskB5%Oqs@?$Cp~h<^8+>$QlEimbaF^)J?&C_eW&`KtIKEw=4P@B(UdCo z_N+Ytrijt0X?V7pky%~FMWe=GAHs6}_L%$ZG<*K*cjkc+aJ&@rxM-GJKUb_&WiEmG zI7w-8!7le?XTXDOCuisk&*k79`~Rz!j$IFK*-qBA5Nih%nwd8S}{oKieFgo>SBE6fg}H={)uldQ|cL@vWaWa5}r6pPjA}oI~ z)cGpDNz}y%agHWXB;GjW;PC#4i`S;gLgZVQZzd3gwyc_UNyIg?F zTe^#56h*PAx8JX4P+*UZ>@N`F^QxHby9<60k@1Yu>ptE=oLo?fjOKm>Aa<7#oZ6o`jlx{6{cRAlo#5u=xfkLrou5Tpftnl zPb_cW^u(?PWbhHC`SFFfgoHicKmU-tE-T`Lv z>$bG!IaetvubbGN%7^oo&hJ<&?Y2-3ho>yHF?`(Cy@gk2!`Z4-?`DMcCt$8=-=r!U zr-b$xPA;{OFhmiA$_@2)QgXVpez0AvkNQJ4K36A&Llp2I zv$=U0`Rzj>9oBK6816o!QSLkdH1~E7DePxMJ&ZGZccCgM1t%B%=v@{Mo9YXp^M;hZ#P27N zyB*DzUwYP) z0wqD$!|+xV&>;2r@%Q=k?cdG8_ruw7MvCj{xL-F)`HSCVb`6Db-vjes%0tq%P_b91 zdsx#W%HIp+;$Pt0+Y=J*;7K|LWQ}+T9b#Z>XBnX>MWgn(2&GA&?+Jl~o>JqhQ!xy1 zF}P4SsKJl?D>K!FGn*18KKrD%ix1p2kA@3bdC`DJm|94DxNDq05}l!RQn%M3P~j3P z?GlIAOo#|PGl_ipb@(B}Zn3^Po+<`6Bn0J7cwmWtmO=_c1WFnhUSpQRoikX);z4GC zeJ0#%U?U;D76)?ajCm2<-1$}CZ-o*DmuB=AR0Zf*j77QqvXugW#n_*(ZBp5jOM z_#-BWPGSFN6G@<|4SoCclDJGHS>PX=jQMW#mrKWpPa}?O-~DclTf!57zOE}&z4TVV zV>__w`0aeeHF7Dc*GXPTy!&wvp7{*rWuj0}HJplFJbfT1$BH8s5Dwn<63heZ4GPBD ziU(V$>g;7C141#z&?PVv>VipI0Ehih-z+dv_2F|kV!3`(^{v@DjdKVE6rqBr&UO*w z#${q!r8ziJELnVHj(gaMQk^}6!}BkX(%IqrP^q8Q<^Do$QhA`Vb-Ao(Lszm zV#VUz<5AB;-@-mna$5zZLKal`A1;{O7NQ68)FAc%uVe0GCc)! zfL?*v43;QzU{^f|TGzgL60^DwK&`vGA2=2bnhdYBpu2kskDPo1qa5%I-Ekf$W0o|<9TJn>k(WhLggH*Ys77S6K5 z;M{0u+l_u__)^Fm>TDEvjJ6xv^j=ZW9LQfc>=h2U0(M3^6hKUn1V;HZE=>b6XSH-I z`|7*^+#hmE)dVU!dtu22UMY%WaAwdLuuT3!Hua*I9r;U&irCsu=i#{WrQL?eJJq6m z|GV9#^~dE=-5`z4ZD2D#D|)3=Yh7D7YKixe`L|vhE6V(VZ;!U?Gmf#JXQ>D36Zh8N z2k_ngzW$B84(mo!-b@r7qfL`t*=u~fiZH#jlV2pzND81+G=AZufG4O2`|{&%mME0A zto%}dK3rA7D}SlB%h4@rKBVnljv6EVx;+asH^H=Tfz2RkEk7f=Js&Bj`}dbjsN=DW zta&qsbSYEguq*#?arTvQlw|Z8_E8D5>|NP?@lz?;tvg*4S?LOR!A-b*MVAWdMS1f(lSOBN7_^xh#f5kv1t3%x^VXYuU!{l4p* zKj#;$WL}wbtu^PEV~qPA_vC0El15A(6tB=-{aSBVzW{7`C*pHH$X$+&eDcA|uc+^H z2+C7$r1`dO*RcEOlz!H6_B+%C^m*6ad1xd7m@L5y^{3dnJYdu7OMUh5n`zGcg}s}| z{%d2!D!fwdHQy~~o*bSLJ5Xgk(5$b&@!Mp4qw-hudbxYsw&WxA?&o(`X{otB69F`F zh1o}c7eq4)2EDL6_|f>gpnPOspEB%2E=-kPFn^qKHB;FxMK+Q|tbe`B;5GM|R46(k zR{T&0M;tWJ)&@gzKSTf2VX%j*KiRJQ9~?9R$J$OBnilE{m$k`EDVA9&FRTty*wDp@ zi5;xjrX0LZ52VQevrVI!Y2D>2>@sevQFH5?a-1*yqo>t4R53qMx00xbFJV zz&|72%y;j{GI4FXm`X(IBDWxBbA!|Va|KURC&OV*YT@0Exf&i|;i$ecw$%i#U4DT= z64|UT7*hHrkc{#c^w6-7DVC2uc%5rrDA(x0L2$_Z%3z9XT21mOBvZF$NrSsG;i$uF zzO|X@eQA(0?Sm#}MZGGYp`&S{3bU)qiu5?=C(I9Aw1Mua0aKiRx#PN^xQxFf|E(UZ ziE$}8Jf$2uBF048g_FQ~|B1d>Mt-`~+2*=^^H7GAkwedC~i zw!eDPFba{GN7P|0Nv2R^*zN*Fe=ZDqK7kk^{wx?Getobq^?njB?M3QnqIbKI zX#BDHm`%-5Gn~LLb7(Wl?~W`Y*J`Mf5)wM<4b_D{tmyRvC22=Tb0{SMZo9zeR zqut7X$=|2HP>(%26s_(6`@f0GmCmvj|F*{}e63D+dvppUVv-L@lL8Oubbs>`R98PC zr}g!0F1bA}q0f&rU|`NU1OGUg8g`j*dG1BCt%$vF1C`$NLaIx*Oyhjh^taA>C->9q zQa213wO08(3$@Eu5v+Qnf8^g$`t+E7cm#*hSI|D|4eIYsymx~RP^9!ixD0Xv9Ic7S=uV?9TA$-DHy+fVok#v5^J+RQqMBvcJmBxx z)rxyL0vw`Ku$GGk74*PhQA^;PPO+sHHn*7$sOSG_O-E4L8t-vBp%6Wf|AaU_o%wOe2uHX>rhj$kJsF0e69u5 z>Y@h3`BPqYDT@-kFn}`_8BtP4MH)}vE%aZ^3#(Xe+`pMm9^|Fo^O;wQLNtNuFK}|1 z&FpZV95@3Yi8WUQ;$NA3DC3;|uGtj_gN;e06y60E8Od^)=v7g$?W4AgAPUyb2p3hU zPlnW#Dbj7^yEX z%H*JBklTCOt{H?cY0`!RhlCy;@SuIq2rYU5cSn);)L z16%6t$Dc{=pZY4$dOahuH&?HuLT;&zayq$$7N%PMd}Mi+`ttOwtQ5D^Tt1Z(#3v&z zM7Ch^=>So~_Gdtl2TMvVsYSUo_w9Cm`>nr|`F81U{amP^Y-_QkEYv$r4U;q@Ul zFsiDHs=4WkH*{PhkS2%ya5MBdiQRs~wbRlJtTu4kCyTYz#Uzb7#JIX9H`zx|{5)I-}#%d`WAK)T31a5z@(vJYlxaq(Ep}`TO{o=KL_US7Q%Gb0iL;@sGA`2h{s$ZiL6n#Q13BQJ zI1q!Jj-nW!2ILC(SqO*jA%2ut8YBGitAvkk7IUclp>Ii9u-Ccl4WR|YZ;SF?Kh)+D zbP(^;9wNRsH8Z0Kw!!?yDSHk4QfJUiBz!MQ!+04$HlkOFe;fdC)nXqCCS&>)-wjGc z*N16%!zTIK$@hVnHcIhM2PO)+bYrtn7_Mcy3Hh5wTP8+Z0Z5dX%Bia*rD24kL(fwF z$N9e?Ou!+qxL)e`Innb>-iS$|?W~Pk*;PWAeZ-;AoGHsUs(xEdXmT9Un&G*(RztX5 zzfe+H3TgT5G$tG-dk$%wR45DA?yMyTwD7yV0{U_9mZOlI3P3C!q2kpRMMF4u=q{W? z)+aOQc`z z{Fw~@6dRs`_oq@mmey6hAG)6}h5bdM@>`gP)>S@e2JzNLE-&?!EX+N|P93RsPRzL? zf4v+Vx(mHB&0OO8^m}9yyU7uR-{H3E_j-u53}TlkSsKaK2#SbYn3(=33uDdsQ2Qdr zRMsR=pNG95QI(tw8%TAI+>{j2WI_(yC8nO~`-NL-*%WD&b z`(LMW+#b69nmZb(4R!0!u3@aw%I4e*bt{250PUcOuf4q6bSa{1{R4`P7&`KI!NW9d zeY3`dn+{`=4|o5%wW*^rrsfS4p`%?#Z<*M|vxA-Eh!;s{X%j?E;tLeKd)w`leIAmTsv(6`@L2ZD%FWlMa>68J5L!5kfaiP5^JM6a{Eb#BFLV) z@&^T}M}HM^h9EX~3<~O=D_YL1o?g5Ir|cw!AQVu<-{n8Lt4sj4qmBB19vOuQbjy7xn2wV6@~CKI zw>_Jdcuw@8`@K@@FsH8Po<;~`p7+h0Q%J)QKhHzCiitZ5rD0b_h2e{8v%=SL z(PR(IKmy&v^A3o?BV8I3tk zJvapnJN7X(tUDe-}FX~I#yQsfhc_FVp#p8?kp+8urTKGQYYO7D>#E8&T zmr%;_Scjo+BbSlgu)J(V!iM1eG4(sBq(FIf^Ih#jOBZLr#aE<4U~=bk9~Dm9y5lp+ zfs>b2pH6Y|%{MqmpY;B+a)TW4Nt4NOP5*Fx;CQ3@yRW;325R%zh?uLKS)s00;7iL~ zl^=By>KNPIFK|Pg&#SIJ@TVFM?l*l|ZoCIltx$&o z4R-iT9IM*L2_5nCmUYR8(d$}8hv_8ANNcKbt@6mLjDg%=f+sxQ`Q`jFP}1MBZ@k!!Ze`MH+?{dRH_=UYpFe@J<(n&bw2cd^*pey{qO6fe zEVk1Q(+sAM6*=6l>?ZrJFGOxeRUeGZbMHsWAFY}={iyBUPE7eGT|mQO*Z~Qt?}rwD zI<99Q$dPdpn&0n$MSXuqMRJ!`#NC1MX`kGKka1z<_p1MfW38ekl>wCPPiTAW1;SF{ z_9eW7VOjj-naF3OucOGAQcN?*oY=$Ik|3=Mm(jYLw1kcE`3p-6q4L`uT#w;dK)F?rn4 zxOIpSA`5rh*p9MVpK%gBn`0oHKiO!SfF4|a>EQ+^l>g~U=<2xQJk93CV&H52`fY^K zL_e{BdGRnin5~|t?sUTMj2xX~S4pA>YSm)sPevTKo)rVZ-p{7EO;uJqsEN;1^1*~R z0X`>9AONxmN)YV@!iM#zFSHD1ZbnhBdSFK@awk{1)`kkoKF^9hqmgylB(cyjv~5^J zFX%20S8xOO>4d2IXXoIHy*aNx?+e`EUkt!`G=f)-!XXbKJ+q{p^Bf>x63h4JKev&$ zAKThpBSdJUV@{|bH|Afm(dteLoqaSBU!Gk z4~b)ZY8ir?dh(Zngg|ptxxRFEUQK9PagrZYUl_mq4SD;{WEIB6Ddx6Jw}!=z(^=_n zH1gp_Y0k`MZ);4Omuo%#6gpTxfrTrSa>q>1-C9Yq^lgM=L}Vjq&4r@ydbVx0 zUoVB;Ez{7Yc1$P8%3R0jvVTT{WDzWa!xnHwgf@gGKh?^D1z`k=Uv(w$Il81ribfNH z(1pbFqoNjpa;jaJqg9YqFBjw4>`z%VMs-Lx1g@FE{BZ^aj**d+z54vJn@EjP%r*Go zF0zBWOb^zE{s)zPA1-fFxb&!4Lh}zb-jNc}SL$0sgJf54OqduIrijDAh>JwpWTagi zhPUYLi)s7?&!czXGp?C1Vff#>&qs2nL~o8>fk(&`>pMytBhH<*%Wy=@#{~({j6lb; zz8pwc4&N2tH@tuoQN(u0BUC^C+1H*p+25keQ!-ZwsMuOtZYtru|KBt1%Ey23iETLV zaYysJa0Nw&frD#wl%@ z9~qIR2!{4wrhRHQlR0yfH8(4=%6-oDr-ob&9`w-LtVQ1bYxEPWj)V4Ob?)lTp8 zqpqzUq6!(gKm2okt-W(Inq3FTnc@s{$x)(J96>lUF}&>waZ zZGP)I->AO)=)5(Z(x^0f?C>s!*pvPZY zItE{@Z0b56UpbCH{B7dV!o5tWjI2GLFFu|(Jeo{7+_-(vJZc>kt1GVP{JE-ZZ6pu2 z9e?ypeC4>ycTye`))6A7>9aB}zc*98JtncGaqh;%cG;gQ1hs9^y^C)v@!FwUZndp} z{2n#3i2Hc;;+6tzaJDbSJrDGmjt@X={B(1WhaR2PH6ZLtncZ+r zrUT^Pe%HTo9IJgCt?>E#*ukR?fJL)Eb!?+64Z)7qQ;Tl@FQ;$qo4|>S8!x$LyTT#c{z?UE1Wk6vDLG|BpAp)tD7!ev9 zyE(hr7gRo-2xs#4eiab;i9(f8H8YP+Rj$J4Bg`8?BHe!m@a?8{O)qn?VOnbo#x7-b z_`0I3LE}jBq|f8SLvbSGE1=@#eMXJ_rGeOZiP)Az@(Q}gP|v3B&&gsbq=h2Q!&?_x zF!K3Qp7?yr)}D6Rwgs&5mcoRA>c7tdhp<)YPMqnuU9|J#e!k~R5F_=*Jmyiv)WgNs zhJUvEYVh_m`!hd?L4iYEcM0|AvZfDOqE-c-Z8kOXYI}JfaGIHeoU8(}{!k1yI@E_U zOBX31EkE7xFy(#S2|d(-8oW5bc?~{7k}?K1cpe5LoP_dWooMK3g@G8N)K9qrM_#Pb zT|l!)t&i#@obZVv==EB!(99+4(7?=vc93NRkQB{#Ov92TJ{O#<&2}jY;m44K zOqxfTAp(75Jc{`<%*9o_3(0ta+FA7>GtrNz{0{ZQ-P;|Si$FC!5Gc!zoX%~JgV0oV z69g1vH&zA=?!$=d6-padw;X;vAB&R`Z^!qjX!n!afsLG<&4Y&>`fL3t7l;k-Pe+JB zdGI^N5!Maw!=VW|?Fm@i{G3gN5DBy3qJ57I70E^yJB{T{Qz7lA*(5*8quwC>5D!qu zYQ^e+-wq<&6x=BqP8Q*VbgX}`IPU$81)c-}Y9djDzQ3bA5bpvz&j?MXeM z^9KvhEY!>Jc;p5qy)j|ks>|XRBL!o^A zzpM9ujCD>vhWp+fN@pQUf}i!4_WU&VXdqf!?$a$*q`YcW(1;Z;h!Jm)nyRe?wm3N} zWzfV~Y0+vC6Zvo+gK!ebBXRT7tcDIw>gV0!y3>ZM_l<`_xX&qdC8$a#yi&=-0tm0n zn@K&@!<+;i6&;7=w-G+RMu>A3I6=*ioooiwk^J}{Q_IlZgE@yS2@A+d_D+rZn_v5! z43`?HS(NW||8-i~;b5sU^kdV5yn2!k6}D-0+AA3?O=TGI`TwMy7zg7+geNB|ED_01d9b4^ZVy>uW=>J~obpD|1 zn-KUzHC@~Q8yNnu`XWm2=}`_huZhC;XTG@vyv_XS z@h(U!u{FI(>p?|Rx30guPS@Z+g6vz@Uwz^zVQEsc4>mvO0==B~lI}?OTd**t-8-2& z+HHv5X!0_wJ1zh3)(l0Q zq+!lqd6j3FB$2S~2gT^XyMV<6xoNiJUMbtAl`&-*zK`&*oT4e2Oot6~!bFetrVh`w zV`&@_u;~hMQS_pvaDQgcoJK(z?NUKlI=`<8-DyyZ1C^fq7ZSG|%voE5F%H2cC*t7$ z8l_U5;teS?>N!CaAHJe9)FZg?*ZZ8kyCauD{u0z{XpAhR!SIo)I0`sWLv=QqcCEqu zLfgB6b8KD)P3hc3g;p`7UK@D}#Pd0dzC9usQMN$$ml|e>$1cGj{wm=!&Jm#!mGE?< zd93+c)rK5N>Nb$iX$CZeBMa3c=pyAy?h}%51f?##LUZJk@e41uaeX8s>)xvb&2T5{ zw~^t}{7PNpn=boagAVj3n;E5QebKPheCC&r)#NVaVRQtt|Qci_-z0xB!>zeX9_>5RFWIjFz> zkow&+$e4*ZM2{SN)m&Pi`z;nILM(3%Gn_(buWpKBjHm~jC4 zhf*P|7RD{r0Ye%m`q4TgXq`Qzc;{7nXvLZb!lwQ6vJZm%I$>#pggjRM0 zlG1?h5bpemt7ZTetmL&2&ixsAot#ZSg_XwmpMwV7dF&GJu4+JKN@?WMt{ch6@%JSB z<1J_3xYhA5A1Ka53-~l8cPFneA{2xSUGSJ)`e0-Sn8+_wc5o-_&X*83PYl=8t-~3F zU?VZiO-1{qp#$r!v3CN$E+$vR9rv&NmP+TEmWq?kIlrDDR2n8(XNf-Ien-gz{=atV z|7E29??t)smTTzW+({>taNEGjZ~=xMA1TzF z&j}wWRNJs6df+1e!{sLhjtVVxsi-0IoE|2{dxNe5z?qhc3hAIT#& z5JlR~&n;m9rpf1qnwzQ5jew>yKOAF!ppSWB?I((v->N6@<<%fWx(>3Dr;x&Eczr7d z;paaC2K$T3YPQ&k@k8o@SF23`2mXnI1dN3@4q*lCpf1IulI)U(RjIC(wB;Id(B3D? zzN%0gOfHHS;4aU$_z%{1_RF`T_&ieG+S2n+%ad$+=)gvP74?kT+<)l7iaR2v!0yq8 zoX7;F=0{4_==R*34+RwcDZ>r1AvzMjHsMbD_cww1g8%4xdOrp6x2jInzl=hVx1GUX zc9&V%zEIqzcDOIVA3n9s$z?+PCZ1n{AS;R-?-c(A^&>K$bXmx9*2Wqgz0`EDK7mfD zWRh2j%JG4Yw0Gu~a``3k(OTeagMZoc_6^Q_s@4Q0|BZ4n^?cz6h;|p?gjEG2LU({# z;5*B!zSQXijn+5mnz5?W#@CK#?-QKzhI#-_dx9wQtaGg|su~l0Va5+-iDBFTDo?>P zx9<=#J(nZ+iap+?{n9XwLn!ga^eO-i+PV~ES=!4x!#iDHB@}c^{8`GR;`=>XCYq4f z3x6ez`f&O3f>(AT3+RAV4!r`Y@!@NPyht%pYCQZd&}>8rc%Sw}gz)l=#SWJAVt+uu{vu^3z0L&hy%rv#sa z)0#N);zN+>4)hk3#9Ncp=vb7Jnjz#2njqw!5Sq+X%M0Wlf_=n1$Q|5#I9JvaE_)j= zfOut{w*l+><24$#qWp#(1Al{J#~<1_^QGS8Ya6-+dTQ|N_silR7IXKEzz7({^OvTn zvcsq5q!{+k0jr z>Qx_$Lur`fkR4nwcyTAWuqj(L?u0i~`AEftA}5sD()+8bfN6jSVKQxS(?X%kXk^&9 z$~G3fg&b%J9sga1rsNhVPm_IZXlSCh+{+?GP>TszV+-g`Mv6y+z6M`b$9O>2E;pWr+Ou+y zZd#a=lxpxge*?3x0Eo3VhmsUEK@7ZO{gKw>^vOCLHDJ=t-`p>p@8~w4z7h(1oEZ#y z`C-yDzwvcrIILLUnB{8(i&m;kK0c$R_fe;MktuM~a`951wxF*&klSt)2Gt2p%WAx5 zgb2P)7KnFD-%(aOI>dVZyc`2pLdKZRFbO(}&v4=T=rzhle;#<^8yIAx2A;3@1kS%W|iK4SB@w`!QpR9R2QGsw^Uw+Sjmuhv3-7Q2ii_Ke+ zQ~L(zhhY|iq}3FF|)od2))OAyLH9NI>s`v4Gq(?)z%*VC!V>Q-Km}j|`Q+8xm zyfTUJp#v~rQ?r|dFj}}g51Xx_au8O&xX4>=5;t1()v`pVJ>w&7CXmz^lycMHVLp^;DIMi`&WZ3RQB!;R#KyCBt7O z%pWIh6%E-Ym5=StOV4J<-@(mO?1nkLU$+zOoe@K{v+kk_$y|H{+ayY;P|eqh#!neT zkkG!f_w;^=O#6fT0gPurKxY9sZ@n*``vphdd&0#@#nz7mSiz>&x zUnoNYeWh5aG0)1>>$}>DN+DHPN!LLIAQKt7VA z2IcEoIXeAdL#Fg~&B{5G6goGp5vW#Q$53FlqEmWFt?Nnv{g5Vg`Fzt^3tp{V<~D8Q zadD%knH^877W6znTeb4_D!0(UQ&PRQwEVtn?h^O7ek+3>?mvggENzTgTO^)OdG`hvICKLDQ*X8jsKrYPYt;{F z-gyoZ&wsUa>5bvvJ3B1Lz1VR*&T|uFPf*}yF`<|^c_8PD1hB^;dx!a+- z)*DI%{jVhI_5cD9)x7`@A6q^329KV`0?Q5efLn^wy(ifL&B$n+$`JRJRJ-bq+yc+1 z^ndG(p((6#r=gfKyP1p+m3?Xul*kOyX#BY&g1-iBjMLZ3?*f85-rj{NJ78AAhQ3c1 z$Ym)#M@9go7W_RcMlfqiCNuX=-pFW^Z(RbP$QBYcFXj{I(xPC3SRKSZ9Bs^fESEoM zkyI|BX-17Iz)<{}R#ZiyW6K3bP(Z!Yg(>a+KtecpaB?$SIPMvqvWjzr=O&Ha(O4i{ zB#QEQVYu?YBS+jM{W6PM#znLTgnG6wwngnM3=@`*kg~tfkABk;>a6S*Z#R3q?>lQ( z?!?tsno>NJGqP;l0tRLh4KY`>m;9>PwVs6pJBFE+a^dAr6%KGX?~t>qOSA<-EnbCp&%z%uh& zESn_v2cMW1UJ7}x44#9JmDgU$yk@7U9qAhEUd2ux*S>qw3nM|K(hT5Hy^6#|MvR7K zgexrbzFg7)azBFVsqy=0bKc5-{+kiQsS52oo>NxgW}G=VLeA@|mHMAJx(O&wz6`A$ zaNY9OTG7wEcL?D>!UbfA;<|uRacIr?J@>y2#R1RYf9fFuL3iVm`#YWZ-r{6OhW`eH zC>Ke)q}BLaR6=JfEOZeQ`|@e*)axyFHy3>g}fZ!Bqy!bq*pL=527ftus`pG2YTWFhC@NMV<+5Eg9)V-NT{ z!PxLGi^Ba5t`JB@_@PAKKWP8jw>^pKPvKYz;r>^D{tF`4G#9b&b#Cv>+qLOqiZ znK59UH_@@Jc9Bo)D%7D-@#oX&5YW%>Q|)3h9qEGu5AKENFEKmfTttY^u+CTGu@>gO zoFKLSa5$$Rp23QFL&3~NXbXqA?-MA@Jtp(TDdmofk<;`1M) zPBJH>mrXXJ(8`?Y!g0o(7roJ#ztot-qjuB{#f@+7ru>_IA)HAVTvSr3oYv!4deAA5 zU$;x~ChEK{FD*U!g`-QZfq@;Tps#OLKL4{YoL%4(arzI|NIb!{$Ll0)wn_S^_~aG8 zG%PZ^m?vIR;0|6>s9Ov=G&LU!Y$&y2#9=H3ScNT3^XgOyuPhI8lji)J`>C~@fWXIK zZB0EI&vXy{-s(xt5%hcLzJySgy{z^o?S(g|L2=Rk<113fIHKo0nnT@>lbLMUCn*b@ zO!*UHsvL63!iGU zUmXpd(Ne!$$O3FRNo32Lf_0G=t<%dBT(dVK$k5`B!?BxtAnmz=aB-AQ zz;4LW`}A@U#nIWD1zso(L^^c17JkamS+ib#T%aT8-?r0n-Gi+a|8nHJYeAJP_W|Jw zwtaSKUE`)fW2jXiMa*^W1)wrmw;X`8ZJx$cpz<;eqvD za!b*K+UnKqn{2vmK<}{UukFEegowj8waQyy;+@M6)FfZ4A=fv6dBvppn$xGVPt~1n zH??^ot`LE2z?3z(HsIg>2=q5HK?Ht4dOUV@{Gy4pik2>E^g}4Yh=I-D-UxUJ6Zjk( zXyQbjjlzmLMyr02AlPaYBEnX+1B76{o-KlLdaTu7aZs?}vgZEboKHv8Wxb#5*F_W# z3i$M!Z1(1CG(L)oWh#77d8q8uBSm|4cd7wT+()T^mt8C%iI>cjIZ(1?>8S;8MWvx1 zRIsr1G^)J*PVN8?VBSMY_4LgnnvW*V%M_$ud%O{^DwM!aVsUljM*IH!cx(dTk-vk^ zeafVfrA(8ks6y=ERl?V?zk%O(ES5e)Tc{^FC(wrz%*qf1mBIF4%B|CB+s;t86w_g+8u0r| z&I&0SbA}@X-pdQfk}$u&%|yN3|l%MzHT7vt~vk+p96bx_Vd$OVi_;Qq}(rU5&S|A{yOh-Vut0=xxH5F+O zz5Af6`|>t8b9oEbXH;l-eV9!f$+Z#Rmo4!8hT!y`e6;f)&};CL z$R4?4q))AY9bA=D)eb5hYV$>dURP7q60=$01+ol47nH0^Y&N?Fw-N5N|020HgoXrd zYI$?Peeapz*SZ5w1Q~VTH^&GIvZE$$GBYJxETvh9hYOT7DF-=m*-2C|-+Qk_ql$bF z_i?#&>d8(`Jvet5!!RcLF$~Z&dqCBQC^j4kF4C-(Wjf*;wa2edcn{x%`8WP%t@=7u zqlxnZsn?%PSa2$jUuO$-q?+Y)&{i6{J3P*5uiF1kO~G&t))^ii$=Dl&kcq-;fZ%u$^3Z zai8jXD1{nPl6FUQ9NHAhe&hOp+eZ|5enHzqhr33qGdEDRvx7Y7eUttN%gxR!>Qi0Z zPRShRoLhU#>yypVC+u@0&&{{ifu~QE3YT^r4t@UOhMbhr!6ikEp)2G3kTptBu1HI*vR9?XS(Ex)gLeQ$f?OSVk9bIGRDod_S7X^AzTY9>$u)mt>|Mic3)P3e*uiIP&B*n`7>_RQK%F> zov*z4>Q-TH0O?)aB(2Z#e;er(z|?bd3m9EY5C)@k1dBJH&3Lz9F*};ii=%Kt*We4U zu~}|y7&6l(o`eMCtMs-3-+xf02tZ$0#{UDSR%XeO3zci)OFKK9GZ<%p4m@JoN(`a& zAaj)=D%wQ%3U7}eB`&$tahmOq!v~S;cv9VUh-|?SgpFKdRpgc7nR07amZz<`wo7j;0}XgcBV(z)LNs#A!-X3RZSD$vOH|YI z;ED&$Q&t1Hdqs^dNiK*CWrIVI2+$I7K{fg5nZOI@%?-{a>@!||x$-6@#rquG0v3$e zgOqRvZa*sEzebpgVKjVdV!k0*e#wPP*{-)IUcLIg2l`I^sLcycN%Y{6l!Zw9Q<`?ye>qtkhs*g^+O_g)+xxE|??0s}K77FrA zPnBNGFwQmZ^Y&b;wB5f8x(@nKb_EBYMq2imut~JU%>_;Y&$QEb@POOCLc1d?xRyCR zIGGeSu2RuLD+n3-gY_lNb-gjEJbbZoCUhT4scJ*iXLQCi>qJ|EYm?=%*z7~MP-G#) z0%%d|v~J_kS6f?D{g>Bb;3ouo#(__3DC4Vc(mEuf zRtX6I&c4|cw@}`)Wkq2X)?F|>W4HczNU9WK_~fqtpu2@^EKCid?5%s5;8+MdvV>n6 zr8))Az7za#wjZX3S|O<~uKV!j+RV`m%2}gEY*^I`Fm(E{XHLFHxnX|;{xkt1Y_FV2 z6fu>u*}DKv23iQ~u9V~6OHTbKm$@Au4A#}~JGJALLB-_4O`~a>Yymve>kpQ0Z&_af z53Z=dde+RHn%gfs8R+qPc$bDyw&hZ!QTwNX7ZQk9%UR=(Vnk^xH$=+E^H_W$W<4!n z);Lju&Jd*XF`;Np$#X3wz!%2lZ&oK3pbF~hz5SRTaG!=79&H}(JXTCR14oLm6^^(J zWUKClR{i4s=N11$N$)aYk8nPu1;t&Zc%Aj-?SGchL=np+CH@vG@J#bR!=ov_yi?kN z_W>0LgW1K>pV#2S79B@V43e@mr?kXoD(T_jlvW(pQtK&5eU2ZUllJ8}5|OhFC)^tQ zqyPL$`42mr*ygvvTd4dOcIICxGt))%yfva1B*hPq&Ls09pVGb~cfDo&&+C7|`q1mLjEHFDlFRdzAJdUAN+9N8 zI`$rj!M;|}v2`)QiNf(*!#=%!XI-nzX@N1weW+GxSg85aF< zPbWo9Tv9J@=kxiv1X)8>gQ|VJ_z^6mAsB+IrXwW%*4EMrMu@v*xJnIPYPsrKAOwr) zEo%6dr6&0fGm6CjsB6cOw&Um_dYiaXsdo(4H8YK_>TNJW(ut;OTdKO%-8w%Nfn3^n z_S!1=&A0WB$f8C%5+1$G@!2@&?XuVoct(5CMf)05BjOT*paYx?EsnA~g({Mx{9Ltu zbU6k@yaX3tc3*q#&C5bSPsdSiM`_zH6e^*d)PI}z#*k&j;F!UxZ%41II>{C>*bhd5 zPlSxN&XEda346DuLp`P9Lk*k1sa15gc0TED2diEc(a=Awu&Iluqh|jSTYg|y#WUol z7`eZukDM>pJCM>hPseNJI-4MFchM2j{3zUiI*N^4ma_$q@req6jY;8oS%QBHWS8-yvX@yucMeken{GW!8BDQ;BzXiuD$2z$it-r=)9(s3c!!v8 zQ*c8AUZ}hg3FV|~gqvbk%wU!qHQXB|M}LxOyG6p#15$eC2xqg~tlp3fpRp&10Z@*&xw99{1?Xr?!eKpKh>D2I{J+Xv2mj^|Kh%0BM}cL>in$ag!#1Noud$kA)pL${wjO}a}_mmTdW5{D@_z~ z{>p#973_#>8rl)fB+cxyvH5NC=kv!QaBkQTTm%@5ZnK5z<95L1$CINZ#?6sZYokCV z*+i$()D`FbHNr?Vd_)0I*m$D^SaM}5T-icX&w9_ckk`#pDIvJD*&M%w%Uf(#x{lI7 ztl3{lK8%E_$qd$_z_HmH@*B}xtdV{Q4pfJJr*!`|`0#N>-E9*}mSZ3SD*t#r5Uuqk zLQHL;=U9fLJ6d0(xSeV%&CE2lWCdpJCd=LdB$0(t2&)esvzPVj3gl`OO)gqYUz*gB zGTFKXzWY9a25vqv2eh7Keb)8dxB&9|XgITFJWMD+PiGekJ z8C~ufWVR0UUvt&maNj@I^@Rn_>1<-oci&Klh=HIo$itwF9K;5B%sQ38lz=Sq%sX<6TJ7yODjGX){N7At7pWOtQ@&&vC{kg&<ZR)uMTWc^?kJn+{U4F~$BFX{2EK*Qy(cqPs$T&q zC6YVk3!`6c+lF#9_q>U;i82YFHn7NUytpT+tiD=gEInJoJ2IxFh&NVKZ(V!g;!niE z0>$;;t2X`%AJ&F+yJ+6T(5h3@;wx2Cr+(Yns!T&z$=H=Rg5)K1^`JALC*g^OM1VUm z<{jHG!*>RC{HwOQu^ ztIfo@h+j574ljW|=H7|r*#e(36>g>R3&ny>bgXtVT_Pj#!*=mF_~%(gb~noykhbL~ zZ(5TeF<<6g0`*G1m)Y5XmxIsr=RDlxxPN>_ivk-fpA5=@a-kwyFHoo{rs@ZBL{!99 zYB0F>I68Q8_j31RmCtKZJH^!-j^Ymy4_I&S>{nbaEg&blv9rX4J#xd}1H|*Cs=Xf^ zyVc@*#1DAx5Om@^b}oU`8oAR0Ab=d!8HpKQ2|)BPEeu&9I?H*ZAn8nM0OCNFIEdz@ zvqbOgu2Y{g?aTp8UynOspz-v5!pUkh2gU0=-?ojzZdVhP9Fq0}g%Vi24I!ZY zW4fKLM{Mw&SJ_m>WJlXoJMF|n8!Y-FCGFNOdw&ExQC6MxT zC)IGQO52$Ly4yr~uVK-J54D%V?A$rm8R3!UF$yN;0Wbo*|HdiM%M9@lrT>ls$epgX z0h%}tmKpORrf9B2NV&1+Y!VW&V_^tIp(3SvgTfc9PVqW;myZd_AdR)YnF0rwiZEg6 z`qlG}l*la?B#8;os%feEwd%wag=pS_E$&tM!G8_y^ zSRiMQuxLbPA@_!Tx8)PFxyz#hTJgkYMdVk$gWCr`5e?MAtzv(lp006X#)F)N@!Ky& z(!FeHdxTM5BMzW?$?=?;+FSD@@2U4Uz3mpvxZnhX;ylF9ouXWbng3=W$=187iG~oU(5TcQz81r>svRg`)KfyWYQ-dggXCiq-D^-_nwQ)1?sR(Sk%d z{W<2g-ECJ(>%)Y;UeuE|4!k`ek#_#}(u3c7je}v@r}v$-v_E;3D|FqPZx-m<*ITNy z-H9)*)=_kPOM4=2?EI**M%wkf$dBJ1yAyXNF;{G}e)oAi_gTpsk++_^-0TswlD8=K zJ}z&lImdG;09M4#kKNNU8OJZS7( z67I3W%UDlwA8c)Y02d@cBLQql!Mix#cBD=Pi3k?xWS_Nxkwz`u1PE-nmj=ItcXe{F z*WP^f7VEZ=R6xak$Ncb~%0R1cfiyEONGx?V0SQ~9&xMu+kKla&B1@ml82}mc%MT$n zY-5IN;&(Vqru-9k8FVxmSyc^a$Lph~i%l9?+WifwG$N7@58q+7>f-`Bh3lGP?mh$Mili!4VqpkrpIJ)I?{ zW;QV!+3_C7mIONZy#HYqsM55~O%Id`8J1!KaiYRo%OAqg943^_8|l0dXy7@!a&tpr z%#+NjLmG;s1a16Bje+s{h?Yt*w>wkqr6C(7W?%FJQhdsjWX00A7aQ0ouLmQpx|h4= znUvf{f2g}4B}>@tvk>nWD`E6jL0cEnO4c^veB!>2hBOWUyCyYOqY@;&)NKw zqc!~PN927odf-5-=)p2`I|e!>zU#hI1+y7jJdj-yxAt)=P7JU2|FHI-K~4Q%{4e?y z1QZZN3`iFcR6F(rB?u(n#5)`-W)lx$Oi)at@^CtX$B3qrJ)NTtIC7RsbIhwU{Fce|nTAG_hfCU^a z?n&4|*?m=a0m=hvXW1SEHu5D)3~OO?Guc%s>r%}hS%jylU3_pbC2d7bM>CJVKPyfB z&Ok;rSEv8xl?7HVX5a5-10mVh5tStjLaqO0h zilh}`Q%2!0%kAq0P$4Z{yLb4D@y#C|HwQK9RVnz_GaY4p)n)PgZhO|-xJt|I#sl?v z*F-J*%Gc(fje7+ITl}u?YoH8X)ZN0e5D(T4%6q$+xTxfuuyq0OYZo1^{T#7WF7NfA zDYDDdg7p5dc`+U)L4aJ*VGk_0E=~AVfgv#{29LCkIE86O5m$d$!9=0h-5}Cpzr%nA zT>OR~C}b2${gO^fT)h{?HtiYWn;=eH#dio1nkmcgE2EAgQ5o>raCwCX%yd}D6e2zt zrYnlgrjz#g#1H5_ZNi+a$^aYFLu89e`f&WOHJl-ku{d$IxA6&Y$($Cx>~lW$kXo z&O#Kra&@W_9yX}0%uoR~{|hkQKX&P1 zj#<`=ss7uq05&rHJ?lOI=bD6-h4y_Q3kCc(u~uq1_;JC6dy9fJJg_4NenV1pEzy%z zG%rrZ+lAY$PQ>G}=X<@l!&&n&J*0a9R|>468Dj}-!dnN1kh%JZYC|Ce_m)NsoD@<- z1?;7Rw{py`?V%+1mw!<__kcej!!uvH3-%v2I1IHQs)!f31!kMT)o__oFl^LyJ_56F z@8ou)1eOem%U|sj@F_-&)sa4LKsu`W0Hs7X^MxCBIDk}%CAN7Ve`a`)g@ZO zVP!1Fj%K;HuoPhfuW>H;$OW4Odfe(7f)o$KHgL~_Tl`36OXp{}h5#qve4n ze1%It#EqgFmu1GtQxOY9)i`*sFCY$QxdHTw4<83+6 zs4oqa=qIgh)Gu%oN^D0o{#>Jr_xB`%*jcI5AN@7a@U&gHPSK%QZ3!}pQ$E6@R^?N- z#*&4Q1W2}rnE8uqa=Rswa0X=pWMePSX~)-IPBQ%9_!;GZhK=bt`T(BG^a+*eWg)`| zNCet}E=o%B3cx-{Xv-6xnLYm&Kza(gWq81~a4f zIJ22A=^)9>^mahQwM1i2`o1pSOSy*1=(9d~>>aUJRe1weAE)5ojjuhbj3<>77(Kmedmw*-XGV*qj_)g@8iPVA5ec}Q(_UA5sDCVMLlm^l^Na`A*fz)FZe17 zZi(1{SN-f`e2Ow47aA??NOh&}4Dl3~0j3gyTz#@Wt{n?=3+Z3EnKErgqb45%mhhUuPu;0qx?%2(z za37B4kiB5~Z<6g{_a@8FS+8GNy$_ZIUgAwnvOT$dnWvWr%vL@ewt9!{c+C9mR9Tfa zWetB@d6?3zI~FT`^v$kN?p=Pr_t^W^@4RsIejj;1y|MP&DBuRwA~xeVFl3v-bD#VB zjb|;MYp?6(#{6vNpC3jp)znZM$TYP5=qbld=jsryDIy;}$NpSWR5XjfI^CLG6PD&V zt+co1u$5?_aHqbsK`k&><^mY1J=*h;XI}}v-OJ^rKFEYANmf68GS#(uT1JS8vn&ZS zD>vo)lfO2+5|Rp^+N2p-Yl0^~EKYU9uJ~_s>DF9uRW|gHm)c0+@-E!$xi~$HJZmnf z%q;I4QBf@}0cJaAQ(+-iSHq9gGF)m=pw4B{9`s8Q$YX@j`3?+tT5t8x?p~_(ox{m9qKo${G)fQYEaFI*NXe-?7d?Bg*!EFy%!B z;y@S+vOqHa>;2XzN1!f6+yg=pD`#d0@QJ1%v~TRe=Zcg{%jqD9own!g5ne_pPDR*J zZ3ApYy(p*jRXHGV-5(iY>9AUpecWWzRys@!uR{(M8@R=r@_J!zE!Na2Y^5Oe( zX1R=5p<&*Cd59bHv^@gFMWjLwoR?&9UUu+};nB-!#0ih^8qJ9dM_FGR&dz=M1#rZ? zXZgSG#Naz5a4%D1NXDYbZ?Niv?-L~G6q$07-vwLUAzlD6P;nJoGK=U@O9s6WHI+M9 zFqHOYPl~uIn3GN?at8DWv@S|TZy-lQVUtd4u3*?KS=hs6F>BKYs9Ud{nWmphx(AF& zti3z{BXjFGRCsk%d3m)6+j=-dH!N6+KhboMJGOHx4F>T62wGP$^?eMf!7j872psAWjed z70zw_k;guR;(*~NZY!1eRd?C2qG5-%{{BwKU=ovU<-yX@-yK4Yxbd_H{|Rt^DzCk7 z6##b(%BRNdq{~h`r1I5s- zX3sxUHT{h_@##DaB?@Z&8JE&=^5!)HU+o8<CbQRH6fB8MCkl6d%YZ$PqI9=)%;qv(&N~0YH~pu^89&z{UGjNWph~N7JedaH*ivr zE4(DbPr6~QX?KC%x24;J9NV648~pwn77FgQdY-ul(11U^mTRlHR$jxi7_4CpZxZwg zm%~pWSbM#>Fq-MGd}Z-~;Ej>Jz{PXhgM~!!1gpY_ggWZ^yVe_~+2w2Du2MhchWAw- z9!{0~_bx3E>k|t5m-i2=SanFh(($hs^Y7)MP zu{e?~@*UJq@?tuZ!)WN2%5v9@3*DM)fh_?Bzzw6Cvy2C>igFI0BXO#B<0;x>+0hE* zQ1vauY1)Vz6>IIEl$&#}rDAn?k#!x<4ZQ5aBQ-gLdDEtTDUwaSU`oqQrQ_Jrfb;tM zjIiqevbJt-4lPEcz8@&__c&H-VMgVT+aI|89`rY}o%le*kQlaT-H*8f^|6$G=f^T9 z41Uel&_{iK`JPtc9lJ)SzuCf$w@Sv{f%2~T5Zc@=X=-`6e2!=8FQ!+5D2n@YchL@C zon*p}Ca0E~i%togT53Roqj#<$ci0#N@IhMsS9KNp%QS3+Howqu7yg?EE3x6$iNo+= zMOf5YluIM;XWlKs%WNPP!0>$^uFD?otgTfwd#mIL+!~e3gQdMDR$O4i&m!_88J3vt z5K3rU)pEY_28Rjb{_(ZFlI|XDrs1$YyM;F|R<6t}-5saq1Kf{*F=j0Blwy?3EE90) z_W*@l_OH6{C(@PVTZZ%l)4x0%1vxofJa&r@?3SNjlfr2^bq#F=>Mc?x-CT zJGu(}s<+OyD%Zfrcf0bu3odZ^JJMPbFYvr4;4xm5dxNqcCl}ONtB#9};3e(ym)RuX zekXzB@>b;~R$yF#2N2SSxHBLw?1nBbAYG9LUhuZ*uw`;x9e5Ri&OZ%X&*M=D&Qf3G zo&rnyP;!99X2rBz28mD3?NX?$?sk^lXM!icUrOd&|9nc(ZS|;>=MD_l#%3?JDWheY z69-0}AI#T2n2XqV#@(+h z7^o0Kvx3}R<+d|csGDpe?%In+s%2t2+UF}Sea1VhnGA5C0hZ@@CfvTa&PwE*S-Z;c z#l_j0wU&FBSt^;KO9*Ai5KiRG=0G@F|8Ws0;_|0|2#RN_XcDWj{WCJyPhF6>ds-ZF zW~6(7Ll0(a&$yqO7n~M7tj_5(BDQx>U-++5iDD%Tuq8_UT}67xc(f^C+SflL0F73@ zy{U#7Q{}9VculgfCc14$sj?lUX;-Q+k0Tk&Oj; zv$2A7v_s+oh8^zg4|#n!ED4uzE}*8jnt7Yd90bYWrE#Z)(I4CNlPkrUr!_tPgmJlvc zl)Fm^gx;X_==u8cBkZp|EFV_o(eOwTvFi^S0=cr97t$dR%k3)p@c5Wk$Dee&+gTeg zqjR4Zbc`t-)y{oYzXOMXQI__bDg_b=2xrYA*vM~vA984v!3F}x3xL<6b~QIZmE(ag z2|N9&{;D4t)}YN!ZbxV*Vj{<}C%n*uO-*!Z!W5vL| zc=~^|n6BM$BaeE2h}skcxXN8=djJ#1lsx(#a-D!8VvNm|`|m0gpZJ5}W1fb#NEKS_ z8J{amZ%OM5YJh7p0rsP0l!+C-(jfrKht6Ec0bfuqrFRks*S72c-{f&xuq*#&s|Cvk z>_X8BeM4P`^BRK=B5V!SfTb-iQXH_SBzGZV#=x2IGE@vIi$ec93FSP_u{(T6RQk!(K4KMjx?|3g7WMTYk#=lLvbRSLcFI?7PW>)sx}H zCMkg`E^26W=M2LZqN$GyzLU%gz-9L`=UyM&L<|yuWB4ZrGi3-B-1MV}D_q!B4kaGV zog>Tf$lUTJZu~L!vn>2h`>dvmQU84QrZZu6fP$Al6_J&|Nw<#^rHwFd$Gj~QnD1a* ztP}Xz1-|P($dJMmD6R~AX7_LcmW|YmG#th$Y>0AlXu#;)BvAm$4+cV6u^K`fP?TjM z*Kb1e?Yo3BHn{wUQiW6MpA^s<*`BH|6a^PTxNn$SSg9rV@`kywp_Dh?W#($RVOBSB zFa4Lqfh0E}Dgc3*AY^g)c>&UYUhI?%#nFa->RSC>{yy}y3%ghGms~||EBf^@HLfGn z3h?Nm20pAJAkSs1k|8f)&bX#yeT&>bRga;2t2=nn^Sct0rAvva@ItqC0Wg`%X6q&Y zoC&euU~NKy<~qcA$w=P=$=jg%Na9RCdn)$VZN$#^iEtSEfR__+tg5ZY^PikdDx%c; zPMdAyTzooYQAY*$DbhK~Y~*0zOI;VW?cE~Qk}qJIvILx%$3?@|U0R#s&?il1F)%|c zlN#%#1>g_@V+^y#)0Sypz>P!3%3;8`@JMG>5CpLw7Z34iI*5-{WAc6zLPbizz4_Kr z6AO#s6J_yCOvHJyYlU=lO%pMO#p`qY)jH(ZA$P!;|KF7m5$qxf%N<)NWn9zH)>VZ6 z)l$B;tSLhSh|)%=+%d{E72m2_*h3D4dt5Slu~fFtx%80s5a$+- z>w?=Ib8dV_8;t8)bBNaK<+yjO;k1gYxSrsi1J0q^@;U(DW$SvI^4a-|<5W1PH|UM| z5A}YI>{ER2O|R{TWxE)YKgOoF7pbw2qQCEbq)LBg!Cz|Q3!Kg(5YPXldG`-z#}NK{ z@zgBvTm_q0gJPydSyyKV9;TKV*Edu5&bo5NuO;a>l8t>f(pOrgr>vFX*Oi$%gI(3Y zKaPMIDFfc&?q=1CmwN+ce?oq|;68U<8Sw2Yju3fRJ0Kn4#p$?Y_9~zG{GW}ETmIA$ z_c?9gx1^`_`>&{jK3%v6>~NsvIpStRit=jH+P~ABZ=>dYr z|H>IXd)O_@QtYsmyOT3iiCSJ|3AVcyH6iL+`dP{3FV$nHS90u#kvMzf<(EZDprq~LE^2s4 zV7dsaBb^=D#fjm@Xx{qM)EZiIL5DLmp?Cbcn860O{#kdmB34kcR5jym^=V%hTFk#% zRPR65oMvzj>xM+j6x^s}zv%`pa!|f9MU@7A!LCa@lf+{jYUc7gl1JD9i^VDhQ()Kv z>#k;2E+EIA(YubY8CC{Bf4UOK}kS!d}n9bIVY)r8otak))Xlba8V;n0RllYSw`yw$JPCyP=OQd?pB zshjDT%0QE$w70=pHHVhVTPzbFccaE{@)~@;h`PHO>dAW{x;4vy1w2T#%KPhtus&mX8DvCR|`2dx2f<8yYG_D=d1Lur@~ zE%OiDG4jnV+Q!$eN*sDfT`$sjZV>?++%+B!k=MQU7MZfYcjwhx7>}B`cHhAD!moi6 zFnmdeDnuUJVuK`YOB^MOOtDP;4mzc-9K8qpHwfMw9}3{cQ`<4e)yJUDy!v`u3f&u*$3KxaC4!HBg7KtB>GtV!jpzHexxi5tgI%lfSo`+%LPPZG%@7-;GK(~fz4D{)WKX24^3!9^TUa>qEy|J+T4O77e2Yuk0=U0_ zf{VbV3shPh@RSNHzY0B#4A0i1{KrT56%SiepO0$hW=sEr|77BVaWC;gqNQekk^{LDJk zitxi%+6URtBUoQjcvILex%}%4L(0HWQJ;`FF)Cp*-!As(cT<2u{0&Y0r~byhh1D|~ zONqF}jet!z&@*8mzgI)&?fMeuL~d_Q|0G=lFJQG9?ckG9?b-jpH94oIGIOskS=MJl zi_6L(uCWWa>h;o7UH#%QWcW*VmdN}AtSNl)(puwngC`O_!CR)h_JwTl*PE9tx!7O% zaVsyL<6Ovw5}4JKea&DzBU}b)_4k3qBI~#2nvIyGj!@4Ib+gJ?*%t0tMv zKG{O0rz!=i{K3VUwQUj`k7l-`*MO)Ycfku1UV%|d3zvR`1>%nzh8Yku{Sz-J3;#dw539NL|JUoDf|3xY|Tg=nv& zLq7Zms*VA;(IYI*RLr`^Cbl#Q22kT_IxvQ1N>FxtZPyh6&(r;C8G-XB|6@%D3yu3d zMuCNGJe+}CjfEQslLxo#=hz}3@}YgfknvaeY=?nKLU}h%I2jGL5(J{n@W*#1Q^YP2 zM0|XOMJxYZvQMH|CS0FKv+8}|ECS657hePa81|30`N0FQV8Vhv+TNQ7wBTqBGwLM8 z0k@1I+LVUJKTW{xpCrKs@&2ID#uG#l@|U_iMm@6HiN+Nhl}7r1^WRrkVG&$;t%*DA zsulr>0a00ou%0e?b6^7k{1(<`h{WBT2}KzF5`#NCQXIl8&_}p|4BLihvace+G#0~-eI`lsiRF}7As3pc6Z*2D{hfJq(t!s0?u zx!%6_V4u>VL#%o?hz2rvzm>A>iK zJGi^Rz9r=Fu18znZyLN#uY%0lU6fRDfl?eqTICvEIJK(5#?{Pn2yUXNIQl^DN`*O( z#T>`>F$5mp>Af<43=uzZet&iT$~o#Pn9L&g=IGP(elY`iGKe+mv_G?(RRP{3YPtleQ@nYr?(6QvT$`Z38Ke zcaevFv;<-FhcI3>}gD5ySz< zQ}|G-aV_z)8?;jN)DS*kRa!k{li|Pjs)#)ii_sQ$933Bh9@;rJP+JO;rQ-+OjDIMT z6Xw#@79Nx3?xcP$vY`b74Mn%D>o~+%?4o>#qgc(yp>pkaSW>@^S$dK0aXl}6wXfbN zcSVtUe`aoVQbJ4ROBtNm;;fFkqWWu*yn=P~X5%Wa3>`UlQ3pp_W9U1P&Hq-${VY;^d_Rir=m!!!T*|U zEwKx)>wmWlVuFUJ!cvxFQeGzhl0WNqDo68tDnMjE?PH{hmi4nDmlg(YDO82c0GMy8~J;lf)W6F+%x zh6hDS(ybW@w?mQ~I;q8)hM=_xq~nsyuAR>JR^z+G-VBq$8sFJlQ>&K0m?bgkJlI*m zN+GO^4Y2L0H=+z>`sG=ek#P6^h>Ji8$-iQ0 zhiSQ}*zEzi{npT1*NVUu`*8`)PIp9Vx!d}g+<1PMqB3e+D(-^Yty;`7Y+=;cncsf; zL5uFt)#|~l3nlbrDw#tnx!nMW|Uh!|flkl zI@rfp%BY4fTWLyN#FwsJ@WNsI&}63tZgk|<0i+=dtlEm>WP*g{;?h3{)yqgp%3~>M z7@ivzB#7?^*UPg0#pThuZ0->;>yF$+lKw?T4+aG!L}~R$UcNulFmtB`Y&tPWfR#)B zZ+Q}^mOPOv(@~Gz)6BOBSx?{P({|OCI2yJ3m}m^vMl9=%)R+0aja|wBOWn&P7^nVU z3XcZ|wz$z4{!^j(*qMksc5dQ|d2V0M$~YUOsDQzYy*svc=-jy3o$srk>J?OQq5{LK znRu$2fGoBr*kN1cjRnNuH;uonbRcp?U|=AHySV&9xgrhvBM&cF01^iN%Z zqa#RSdJj#4Ur464Y`G~& zP@yiO=z4rbX0X(dL&pY*F0Z*f1W)`@TC$}xkE}MI4%r&?86q+uR}1orDLriP_G1J8 z(kjAE+$96807N&=&6S!xhd1eRdp5j#!p_*(l^{;r5M4IT zs-&%}n)uaF|B1*Ae@vl^l+~Wlw_ie!uw{+OZhxwHsqRVxg0_M$6}mVsV#EhS6|_G< z=2HYlVIP>b%NvNk{YB~}wPYJa6c;HM^{P}>ImbOdDEys50X^(BH_NMX+|RR$cAr!{s^la zjy2e5Q#-C?|v|Vx6gbYy`Kc*K%{}goid-i--(kxKoq_YLxJ_k$4!dk z8X|Bq_%d*eP!0-(Kv&FHgzI%+?`hlYXBd@hX(s5}tTeQ~O^_iu$*AG*n@002zp>yt z^E4myP)LduKBkV-@NB`nh3eN>E!@IN+l4NO-Qj^I!cEWHV&P*%YU843OU`$17x`O= zYf6x_{D~mVHm#Ku!cymkLX)(Ld9ZS&bEU1cEeg>KtQLeYha;ONXUUXux%qlih3H6L##NZnj2Y(WAskK;bqhp zB2SG&%83G7ActU~YrlVHa?{AvJqezC3%6QPQldc##N-=1Fq6IWR&>(olfhvq^vmfs zHCDGw5P(agAo5Ix?$29ZivcMpNH(ZY^THhp>J@=Eb5GdUD;77Ui_dSPhY6MB9i-!Khu zLJ>V!6C%%hwsa4*ipTFS&)>FS>q*hYi%Ju0)TZYgDS-!6Nb!~_9ji@*gxNwP_1R-R zr(gN9N_-xT^7b{R>&@oXhAf*leT@S8%OaxC)tCBp2Mq4@hd*Z;_Q*IBWe(DKpgj537j-ZjSPxjnY3Y|XkLH`?FQtBJN!dwx(+m_rU5qj*i8?`;&I&1Z2{A)TKw$);=ioCdK zOvqpMwQC61ejlBpBz7HpuhOKV$>m{Zfj{?9q*!R`3x05A+^$;R@D}vPWnxkYwVWiw zw5JnS>nhrdhNU9#9?jv0OZpN6e6!H@i%)sN+*$LoE`tvAV$5=K;??*n|Dn0h@BCKk zx)y{&^9-VYQ$>~JdyQz?{@p$~cc_Y!I(OlWdd4vQ3%0Uhv~Fq;dJJ!hE0fr-uerZK zpG4pGg+9xl@+H?JrN;Ko+l_595R~tEK&!5$v$5c|@aYs|-+C%n6XtQJ z_bupGFO3+7Dw8piyvPuH#RXNEP{Y347Bm*q}muY zw%XtSwuSUvKeH5{o;oFf5U&#r&O{Dk`iw>Q4XRqw#-yT=;-rVt#V^_oe3;#G)R?qwV}yv0QVRze71vi^mmLsGmFfSg5Ddm#kKOc*Kc_x%NYbOwVyW zaqAVtQs%Z1;?X5J{f4H>)!06fl!-PM*|>2w8#mDh87Z zTnUC@M`sr93mry?lfg7|c5gInV=EXUx)*^f{`MqJO9EdrUa5`?eVb?8AdZ5Fg~IG} zWZU1**c|B5Gu&?XspTHZ;7(_Un~P7Bkyk}PGACJ?(Ta74M+JXl5Upz4ZyWe%t%h}N zCCXCZ?C%|lILOs zSQ(SGV+E)=CGz1MpL{>=L%p7bwd{+EbhQ0Ak$%G&yTg3>!6CHjgZncCc8u_G%Cg^f z{feP&`a8vTLB9jasPEhMRb9C;!8bH}nqiSiUzs~WJLz}15hI!PXv4N9i^C9sF?4Pp zB%6zs_SY~Xt>q}h^ScL(!|mmN^WWr=X00#2jLf`#$TU>yQ;6^RC6HEGEvsq}%qze) z9_Z2eOIkp`)mN#7JI;TgP5}Qmi0*|X+mPPgTXZ7)_YHtT;-jQ1ZsB>Iy#Cmb)Wd$? zP}dg)ms2hVP1k2QAv1`TimLtgcf4bR*e!S5+Tdw#;*ZALcx0awOr9{v0 zp>`aelX)lmv$;M;qOkYzixtFH1_U9#vZy22RnuJN4RXG3Mi46xK z5vf>m-*iD#FiIx(Oh7bog4|=gS*Wn>cU>&SmYW(NbCRhINC!Gu-YLZ}Vn6xf=QNu^ zQ8q_@$m7SEIgvrfDB)6@s&i$}M^TQ%s}&`qIZ(CkL|c#6o@H_PLllYC9pkOdYE&M2 z28$nK*84Z&vzhKH7#soD&T;9$X}Bybvz{eSJ(n%8wbcs`VxDCn1N`1t^;**b*Vgh` z%?^|;lw-){R0``zB2RpeALJ+Ey4p5W5_uY$bkc5@pG7*H&>TFeykGZY$6A}KC8x-H z=U$mkJn7-8Pz&yfxO@0OzLl`PeeCx`Qr1hPo`-KUb%_gQJKyQ<;s#4ycZx0hpDh90 z-ixa_H93M7z0R-uIaMCmO6i62z6(>1i7I5?m*2o*8bx1q#dg|-JPq~@fAdnJXuRE} zH!pW?AsKd^iVv^kVPFQkg*`IfTUGG6SJ!yYB;9W&d*9Q8>uUsLojm<%d- z%gW^XaVQ5P)=Z-W8}j^7Jc>xI?>|3t>b%1lMYNioaFA z%#$?WdzIsR6#87tNXwLZsrRAEyJzoNKN{@R?Z+dU2z|+W%FMj+TIg2Xvg4ZCiznQ& zACIMxStZjAxSMx#3wP<`VeT4By!f6@#@0jT^rqPPpsS%-4gA0uMM?vOs!fF1j}p2k z6vJ_A| z4SMTI)+-nW=;d&Y6$m4Na92?OzB8`TZy$Y$8*?k51Ry0$(YR}>>2Zko>lyI!SsB20 z)fN?^3Q1qFXE8Kem^~pd0)Mg@^gta`hfgeGjF}R5Q$n)+mx)>V9e8WVrzyq*5;Zg` zR`<$M6A>f%ax~Zv4Fe<6-u(h?F?|E3Jb>6fm#&w@y7PY^D|aDTp@!0PH>z zw>}_@9zkpSFyS6&c0>#-+)@n)Z_7ITx`Jr(TJm}cs#k-SmNnk=MyAK3LSTl6)WBvc z1E?^cLn`DhZYV9&r58egP0Re+4(cDzMIQ>4fL%<%r7;naQ26R@O*IU(pgOA z!HWfRkswq-C>ibFhEp(|Z&P0lwQ|zvy(>?zZ^|gH)i#^kKqRifOYsI;UrpriGy@&WPD~DwU zVsSn6hQ)7*>`@0KT(^B@tjB?_8_?`Y@AH#GzWSm`hoUS9w;bkej4tq%?3RRX;QSr8)Yh_mM zoCwPvYVt?%=+F_aTQ4%TJi>jpFlKEM? zT!Y}InqJpJWz6@V68T41Hw`oH0qu3qJ6>E$5hKs~dUeef@U@}xWY~NbdSdApgoScF z1MxT~RhkTX^}32zKiNgYElO7ll0tWN!|v}g9m&6U+;5*O)-zDni)mC7|~dW zfQ)P`s|u7Y5*D?vp@^nG=XKBM(G9_|Ds2NS-Mr9E+4(M_D*eV?$C@wc&*+R5NlCQL zye;H$I!A8L{_(vLoOa_bo2yC7(KLONC2?mt3Rl2EOri~XgR?;`kU*|7uNkmU`*!|| zx&Gvx*J*9eq09L_xVf7YD&KOx@IY19XyZPJxW)Mlm_4}eLw707&o0{|es!QBcu1BS%z8kBH@Yio(;PB!pxM0>F zo;$yz_;%L1UGAEOs5K4Rx#zARO%~Q)(GXX2ahW%9ZI{)Zkb1Pp1p?Tc947HN05uf*A1kNw@0MWhGfMxAIlr z3Dll=W^r-JkpG_$R(9v#Ve=z(EY$YAq#*id!=Gb*KM1C9*9F@*!a+0gcXLv zXyK>E!lOl&z@l0}NAnZasYI2bLy7)Gy3|k0qnvJ|G8f2Jf=AIK_4L!6l)&QJug6ui z&a#!?)_%ChN&Z|=N;Fu%chKoV>TMybEVEH(Up})hV~xqMYgcVg+!=uZjtXfo)~W{6 zkCz*(8B3RoG)8`li50~VdMPuQkt?Sy4Y0?S(Zu!~(k43NfGjuu(&D*7*?S*VK3BWk z=fG*lu0HVY5)=`&&DYmeFWz{d;X4i{sobp^4L&ev^xCv~4yH{R>f1F5{PFVh`dPPl zV_62^8tJ=pznyvaPh4z$D}9SX#9qJMCw*a9b=kvgM!x=bqRW9q!&yMbQfdRozoUcg zF|X$|J$GGe4cl(3C&b2uh%-1>2N*=N%TiG$g&cZo*-eSV9?xseI4|jBtS8Z>ev#nw zklj>#M}vDD&2Vbdll_k>xdlU$`+UDQ)s7reLhHv|y5zu=|7)@^vUaPT0}<@6>hACV zwKU&ySTj|3dL>lh=8#O3>8_GzG#WN*#vKllC8*4bpX{Wt|A`gS^hQs<{Nm zHq(&EF6kalk-Vf&Fzn%M3>66XkHAT>)lFa3h+C(LC@`$kBt$a8OT0JY9tyX3xBK3& zbXG_IvUeZj#I)?v-<~tuo`X6)ttyF}T3VfK+xE3SahV;`Xy*f-We5c4-mly4DBCh@ zTeGH<`pc^It$^2XlR{*`UdfrxN}3}(N}z6WCO0wvk#Fnw*(if@s=zv;stUmWy;atp z_U@g%&a*(*-?Fh4vooV1;(>@sFcE4R11%kYK2R4DhvNyGCgB&ieVsyH3~u}~gC6eZ zxYC8cFr(<#IPP&P6lNh#LIreCW;Ye#F-mR; zF!mRYoz$h&q)IGql5hs{)||&_M@!-7B>HDKf?8UgL0C58D`^(+43yQN5y;(uba`Cw-?TlqVE zO~m5W!L8L>!ioFI)$-kiAFm(vg_o+H0=B2RXIbXkw8eU@}19cD*1Y z^hagI#E5-o;=>7>;SlhFh)jX6k2CIT$7&80Hm~W|GD~T;PvN~5?w1whSgqe2BO7j! zd;n!IjZ?#SkDEADR%V=;C)Mgy8JGw{I~B|4rgmF7OK0`>ZM-%f;u7N7mB#A?k%u{7 zcTm&k=FC=9)*|zWOs!R_{$2qYx* z5?W}|ixdR`=>kTI6hUdp211Y`y;tdkUIYXrG^x`0@_XL*`R1INb7szW=AHTec{dDu z6ZYNKo`iL;wXW;p8dWjzVQYHBUf(a%N-UsuYwMu}C{Ko)1g0Ju;6zCN^}|pIHx?@9&q1|0;zW#)@21T+OdViZ+!8$CeqvR zhi^x5`1qJxLp!lD%>27HEt-j51i@1AWS?^$StOdL%=SI2y|ToL8*wkhw>$0 zBQf)%IJee!|UFNfIFMGY>1PmtcEDL~%3_c3rlIbW&|IkC4^uAGA zHR$9GD6{&N?DouSB!H|R_oK2ECv49V^Zv#|jSo6F=AbPi$V@)cCVXKNSg=ilc{@PI z;c20#VGJL^d$b3TvK|6wS@Z#(cQ;GUj?@UVNK6TQXaBnGW~oZkXayam3;YT-W^Z&fdrGS9r=>?nUNZ48H?uafmvfvw%N< zrxli@2bVll@782=g}jGxt@tc)gZ)-$0k1yPK~r?LQYDcXrigEkeMNi+P7PRUx40JI zI<0Z3Gy;tSW2i z;3B@6q-D#G@~yvnNUydqfE8|mosDz9$lVL@jY5sg_^upfnJOHg&v+R6)rHw(kJE`X zs(Qu!eqWfdEm#uompvyR(9CfcKOLJ7eAqWJI^!G-nVyGiv=e44SO;_J)zJc7zc1|9 z!hZ+49s*Dx~CdqLYSXq#2-m6EbBG2Mcz<*lYf+01@#<3Z9@w9Cc{;z6}3bLRIo+r!5PVIr0aVty~cQS8l;duCf%n zLl(afTj`MqI^+%o`+rmQe}{@s{hR5Cd6o?`d%nEwEE4-^kMAWy{0&6o5K>3?yzxa) zo)X2?ts^S@##Kl0TC4<1=On5^rTu9S z=p;rBC5i@>kbd$$VgS z&P9pY?;znX|J>PM;b)CZLmA0?&{)6-CH~jjPj8y@%$Y%aAg8f&IV2N9JEuCCktf*{ zsSgVu6#ZSG@ivq9<_FKw)0Zv!)zzQzSKF_E4*9BNP;|DzRu)>!Qww!F#det~VMr z`ymXtsi=qpMycl~w9iON9BS!c5M+nbc}KVu<`xG)yg)gES|AYP4-^TEdItX4^aq8!h^eR_4UXlzLJIl#WQ zyR^9)TjBq+=aZAp_I#>9YOa{C7jtdN_|8aNw(%C?mzv|~v~!GPI{9qi$oL84KKpjj z%I_%rtfc98p#XeezhSTWLMkf2U)$Oyj*n4Nc(67T&uBEMR#HbKrW%iPnwQVQb_nE^ zv4i^>=OQBQ^UlQq*EuKm?`PI+=vpd_(YX1mAB2M**0ufaF|Kv!{3c1pn}cRGpubM@ z6Wn&^PY2SWFrOZbhFG}REvu^&?}XGKylv(xp(e!qMn!LJEml_7!q2GsVh}=uHzbne zzFY6v*JsU6bTNMK@>XKn_vA_4z(JXrZ#l!f045lR$(Ef@f*8q*V*=@+W3fH>saJzZ zUrltV4<(jQ#9G3A9&8cINZ&*D%oS)3z&$Txkd}y2YeRt>c+6CmL;j`n?Xv;GS$xClx@zY5>dCTwH z*VwED-;{YRtopy4IIcE;5Cu@LNFFxoPX&_SJ2~!2M?>s5uy%P!(K+KC^&ZoHu&6(T zukPLNUPrOBZZ7(=8%2Uu__c%u!|&8O~!iP$&F9p3PS9Sr{3z>T0bDFVrEDbP@PVA=A&)j5i???m9@HpN&^ zH1N&#w7qUEEesMhxb#>Q8q8`lU-5F0fTccSllw{LqXT~0C>i$7$~~ypNuf#0#79{C zrT4G*?(s~OhRUy>=82bD6l4qhp`H7)j`Sby7=)tjmS z;n^}G4Aj5>+8EDx*DZY{KbbVRsUWH$O4+>5X5r5D(ri~*XvJdQa9dAvW^C2e3f|2&+oIWif^pwE3N4Ua*+}jkk@|G5EGJEVBA|4`|8`w^eYdy^Z=~oi+jC9i= z>`Me*VdZuqJ20R_#A^dHvc$@q8eXuJ^>TrYD(O2{pZ@9M6n@)yc0aYrKh(qx5ibp5H=MLA_|R( zNm`yuc!#8ZkV6$(5KW)YM5cRlrPI1kGVqOV_VbRO#WzCS;J)wTiTJftNOMUNk(%g; zO0nBzXreS`g|tqqNJwYs>H;-0d??CddFv)X^vqjFehjH+=cq+-d@z(?z^n=s5NeJE zss{zFj&G%`<4MVnUmbwLzpwU8)I1BD|{7%_A`_MVtb26KhQM3@I!V)_R< z4v3e?xXo&ZlDMC~m7ie%y%{=KX$x(9P$a@hZn@Gkvr?h(6lgyA`ebm}#>_x&zPdit z1DX9Iw`&JJw6RKl`nxx6g!0xtk+hI)k7QxVu(wP${kPIPNO{kTTvbnfYzmjj>$V;Q zw)Ci_dCSq;nDg+9LOxr?Y5TPj1o?qF9xNeSo*xbD>eP~mF@sZl{h8qYL34h00%6x@ zEJ0-jH*gZC><|+(sk@x2s{x$k;Z~xo` zPyXlEB4J%mWnLQ4yl?WXk?WMwJfflSmgjvE&Fdd?vMb(%k8UNl>!1oclGZMN$WPpV zCm67H7;`xB8gdcekGo$(3Z4!AlK%Q&UDxvWr(1wi#hp1}YtHypCvc zc-#6#_;rI9@BokoKoW_nae1#{{8MPRD10v)UkVY1O3mGK`SaBuJI zt&Y5OF);AWl??{6fs)sE0fP~iq+5JY-V7{}APf2Vj2OhEAOan`1Xy9mQSfkHB9ayV zpp!;n>M1&6Rr|+eDn!AK$ae7K9TC%PwoCa(8@PE}&_B#7s@{5>$J(1-VbzaRu?+oB zeV*XQ&egsoNOEymI+2vC7r*ls=(z<3!MSP?H4o-|!ffLE*Cn9%Wwujt%exdMr6pFR zrvf5i^P_mZ^&EQ;Hzpz-XcGu9Qh{#RRul6T=*83@Ejb2X#Gl%}D1HxvSM&&2#KJ1% z1dQM#Y7t6u{MHg@4|bT7QsyybFFZef^Vs!~54;V)|4S`|%?qws8T-Bc4$!-;P674YTr z%SE*B46QYoDTYSs=ZTRJ9Aca5TTtd&)qPIH9U_!%)_GN$#T3AvX|V8ExT>2-&11W~ z$DEvA*30ofbFyJp6*XXw>&l2v3+x^5*FjJ`U0)I^`y(jy;tk}l;WW%5@ddo`bM1ml zvXoTFGES8h>_FA*fL-Abk@nyKVsZ$evq18q z|7;`Z5`J_=Z%CvfO)Ug(w*C2%0QAhT^CaiFHc`TbyW*W_tUX)whM3AvDaMAzWh{L~1d`%;JYrWx(7pk>Q-5 z08s%wHTI+?qnVByt$L~hGFXo&lb^#40sEBTZ&&Q^Y+-6V?wnu6u-Gs%;Bb%ftz(|{0W9rHM*b|x zN|i@?Y#)A1E@AN#abI4dP4|hY2GK;wQmHM(q7zw$Xg7~Ad=m#FC2e#LzM?fZR|NQr zPkri&?$5oEIK{L-AbPhK)Zu&I25*(j?_<`c<2PF2Fv-NI{My}AJl=JW%bBxzX|s*e z=Q(u=IaCq1NHa;GuD>;5^k&oNsHw;y#{3WvB32H-qT@T?Cs*-iDfuCADO|9H)^|mY z*S2+s%S9zu$j9upeQF*3SDT2H$U|mcazOv1Un=(6Z31n__YRARiT~EFt00gh5$VO; z`G_&i;c90~oegv%hOQ*u%>5Rz5{lrK@`qA_SUXkPzrYjqodR`AP;di{XDpIVez1+n zq1k+4F+|cQSEMJWd-tt+J{d-Q{qu8Wh%)O6_Y>|6 z4gGbBo!iy@B^Tl4c^M<_OPSKMee|9p!nc3O>bqof4r|U2vgZ}-dQhD|T;|bX6iNh^ zk#VPMtYE8DS9W3NYX8Z8`@-Ml3d7m#D=L?Ftr$xIsbcCorL`?m{ zc6|0KNp%cZ-e=q|QRBaW)aXAqD*t^_`EL{aw+a3)i4jgNt9+#}?j}}uUMHmeq-ZvT z=l@iRn0xIzd*|1)HTJJ&H=av0-?YE=hrMll(AMaqRCm6(@8AQk1+(1IyvlBs`|0i% zpJ`?Iqao7+t-tN>J(8V|`6@#q#&YGqBX^4PfB3f$rGce^uL#S>3onb^kZV_uz4;jJF@4W;FgUmDep$LwCM+SWoZ z*^*-Wv7axu4jQw!y^_O(zJ?ijSHnvmvO%Td`9jY0E_f;wS!$wd`McjIS#G!YVDw^HGF8mUBU}wuMAxa=tgf# zWn31O0Z9i*_;zWsbypa5&QUeCbu#e}Iwf{4joNf2DqK@45NYc^TH(1WtvJ!OI9A6h z_g?cdJOSOe(o^iVy?Wfry=Al<`1o&6^_}Rx&5*J3n?3o{4=+teg3o*MLdpnV8`?*r z%`fZ}-rj8;jyo=&9Bc2taK_Dw`^OH{^q&;Yn)lX_T(}Mi&SgISpPrsj*xIVpLYw%9 zot?or>HG0dIZlr$w%f zBxM04rL8N%)62uw%7v47zr?9py!qMufn;-F25#pDqsHBjT6sM@Pn2@;SKY!P=@*pHf{*pe>!|_ z>uT@iz$q^FPwW4%1EpVv!2?4PQPB}GDI<|9PkE?p6d1%r#AJ+=9)E6`oK$Y+wcygb zdZi$Oyz+l#y?^HO?{WXbdjFoauz|O=*T3xfuN86%KXvr-)U)+ac5`{@=K7D39{pov zXEzUnmsU1JgR9v3INI2%dszAZbN$bpiNM=_w!UmmPugB&2SpTmNZ7m|rwsvOr_ zZ&dnvPcT+ii9NF|^uGC#>WI5F^g)y25#Q{gWh+A-<8#4>!lkn0Sq?A2J=h!yq07NG z2M^IRc{fDR0omj)ud;4C`PQ|P{vSQDN49}=JIDEk|NkBP-`AJT$bK>m(n-~AHIzk< zvq`QQot>m*zp|C;_ixWu_S}&R(?0J&{f&bZLbFdLdBNE?AO(Bk9g+{MWz5W1-kMoh z)Pas}ln4K8DAPxq1;>AMR956i1sdbHKY}niu=Zy_sLmX4SGsnyX|8P4_{Ov)zNE~0 z$^^&qLA36dJ_oh7huwLTf{ldf05Xm291r|xf4H*#svo@-8)(@k1?!HK2{}3lj1EOd zrKfx=$Cq_snvr#rg{K`_UsUq%luAJPQsmPhgsF=QDo5x za8{GXQTl9x>pA>{D)qw@HwCay%Y=Xr%;TX+3yJvD zL;Z9<+|wlY2RrydpQ1HG{i!njeaOkwb$m;{^fNvIxy#f?lMQe2msy8=zuRoW?zK8} z`V2ld+nb9A(pTMvOG&7N^w~bB^5=_Uplk7t4-H$Dmr$D@WS+@B@T7w`vjx4unM&-` z+C2%-NW-)KDwLt(#(DIu$=BbeYKSbmd3XH>8XpaO&8MaX*x-)X-Oj)7LAhjm`r3vh zUpy`Ol4d3{{%Q@t^^ZqCm8A8Jz`s_A4C*L2w?xT)n^n;bgXFtw!Zy?WMP_foB!a6$ zfSXcZ>2PQ(ufr~t%`O47-Im}TatsR)IvnNm%0rob3jPh5Yj2f%C{8o}^VDolAl*?H zTDr{zCWA5_uN^6|v*1}Bo8O}n64Jjrg`;kOQ|yAD+RPUDq`yVIAUp9-H4Hl>_Dg|* zBZtpz!b8zMmD4X2Jd(Ep#B6VcL-&j5D$_=Al$=v(vM{2ShL($!_t^Fu2!YSLG`#4s ztcb|$x{_{l&)TalbX306`kYSKPJP%(c_a zAD;gFOZTTBjpp-L_|&Z9sH>T!_qCBAEfX&m?caU;r;zuRO+9B1d<-1IAsJ1I@B2wh zovb9}uY>PUAZ*>u`~qL2tq`DXcFgq{dI;CB=1CRgnD4tP5+ z#?65XrjU;zhnmB*9W7=bLy6mM6YOvrh|uhVXm6>BueId$e+k1)*;ZH{h~V@)MV=7X zcY4}Mc*BJ;!0IEs>ky>V&oz|>T z!}1p2915BLk!(_iZq{nf8r*>12akps;AE}NCq7vW6WKEYt5bj*I6?~WBNVSES43vg z_89L#;%5cxlIh&u4R;{Y~UF>1k%VPj>7~EbA^Q}W`)(KkJeP!_q z@WGlc4*n1GgeHu4&Hksf4ky^&%*6ehUitc)AgPML^A8;ml2gLm0avfI=))m19QqFY zQ>Xh^-3S_vc)I>!{+@!F`(d89s*{+Y)fez2*`E^Bbdvr$$ymdaKC=#Is^Q^I(P!o` zE~~eR5Lx?}_;9Aq%z@!Oaoze@Y9BO;RzLr{(S~h`6$Jr;d$F{dz|VYE<2EdsvgE(Z z0O8@H(GV4^op-v&U>m&nUi-u7y`<*Sh8|_+dbXs65_gt1g%oD>=`XhX*<41VnbiI_ z*VDJ~`D72Gby=w0 z7ot#@{DlC~>*n_^Oy4$K#*ar5tn>uXTER#Q-Mip}J0Z|5`TTy`(i8K7#@V{4gNvar zcXM0VL*5l{+&VHLxDfiv_jw+3vMoSPd%kkH+kY&*K$P|eI0YmJzd8U)hu!>GH`Tw6 zyK`T~%ba}vzNA_>HVfdn{CsrIJu`cBI-LLW?&mjBvWDn_t7e${ zbWXOx&qDgog{O=zA*XH^nHCq16Mo^cr?aPgY|}$-AZ_JHV{V@@94XYJUd{PiKM?ru z<9}g+lTh(dBlff3%|~qe36RW)`upPwEDHTcbL*7g(pJD3{Pc08zX#BJZe=rA} z$IEMx`?`1OWZMtJ-7fU_li#A4n*?Hk+{1(>O3kRtFvz$pU;V4n)ZxYp&$B<`ykBW- z1M)aX+OA5!ey!7@6^3Ggr%e#i79!s%fzcrQdD1x0K-0gkvl=+%#80dj3E?O%A;E*8F5v0^43%^DgV{t(L zTNJzu2?bJTk=QAA_~v5tET6y~8e+wmXSOO-+0HiU3#sK7taX44T5dD8fd7gb{&Nxy z7TZMR!2WR1*(pK$9x}~tWN`(JM1TGv3Zy?48UqiCtykDDH zjw{RA;blT~>%W~L2t32cIIxONM3p<#6y5`zZ$tAfu!Lr`ITopRSNf~+DKGZK01JLG z;@v?7E`5Fn4k;>40pvZ{;O!YDq8QgWlrqOzfiL@~O-hIYJ^k*Bnl>#LoE8DmEYK3{ zR)qP{eZSb0ZdD^adCVWMEI`s?9e}Pak4MFA}k$RM7dg z{*p3EYcbAGI-@Tb*0sFIr)Dqn%dt~#^v-T0QfBLo_^m;&S19b$W%5r} z?OGd{dI3e4jjjIRY|hpV?*Z)_{H14Co$rY#``25lGMK{FR9VRYTHGwH$u}iR8-J82 zCcm}ugK%9Z;qXOxA}UGJoRvd@6>zBfsGR3@wizt>4JK3Ig2>|7kai@Ic(TMPM zU4g)y+EozOX=%-mo`5*73KJvqXG6-+TOS>_m_Sek=Rj}0MARHYwR&N$JV_P{f;Q0~ z-iCS8T{?$$_RH#vw2h6B`2N~+Kr z%sC$>b-JHp4P74!BHU`e?=ZyA>f;c2@{H&| zK`Ia+A*>d{J8*kdjC1<)1|!r$Y(!>L6s&+FRwfdN1yq|+H+PnUGfs!pym#}k0Z*Wy zXl|nG2N4F)AaH#%(#k>;90g2mHT)&QIIKB{1QKZ=fMiX&e+_NCtW^GB8a%kkXk#ut za<5asAb)DczB!399Wc(ve63R=(R)TVpM;mrZcYNl6{91I=dM$!gspVxQf{E${hg`f z#uV<*zlsw_57UvQGs@TD{OZFjD-<(cRo2>L{W} zvl)^(49C`Q_T9yuWb>?^7ic5NdZ{!QsfjVeI}>taZblsJQ`w5HBGLaf$5x!Vnc}zI z4mnizDSJCOsX=$<7A(v9jZh6&6`7z zR8iX=a-G@}N?*GHq{NwJ@2OtLFWQGVryO+1U)~|U`PRIjXXY!r$%`)zRghr%f0meU zVh-=3dA5{d_ck}n^gGEkK;)3mDLuEJtFxfnoh~b!80tj=Y&DhW(C7AXw3$8!8S$^y zs*2PQ3BNVIx$kpNfk~iOJU+6l+%}SvWpQx_#Uou0beL54k?n#7-iDEs3F=#DKm59Q z%)Ha6U$I+&x23sAQD`AX4aymhlza_gFo`H;m|ym?h`++C_$FBGckZWGuRV>NUa$kXfYc4Oqw$<~GE#5B;q;L1jN^l1D_|UaI)>%&4Sex^iq4K}mtY3k> zMvo<+vS_^@<3zoB+I~Oci(EX3ruB~>jY8%I3K%BKN!m?r~5Y%lEy%AE2e@)r5)V z23xv^9Z{whY7K*C_b9=fS20(hLF`6AYBAEo(A@ON?%XLMwLvtyOLJ4eRfPtsBpKs| z!nRn;(g2PkewT^Ylg|!N~qOb>*7vX)@_S<;g>2L`sV6!EFT`!3=Ohx2 zGohfU^fG6CS$*}@M-IrzgE4-u0R7ou(_q_vI9W2^jJ$E#MLF-laCb=O^ao{WOLf#?z3dIJws5ziiK9LCh5IX9 z3+7Lxc$Hnf8hS(fJmSFq)axU1=B~&q#v2-2RW?3-zw49fS}~bC)j}dIC8}&S4gLyu z#-;Y!-jn{yGCQB4snLpa%fz-kqkeTD1K%OFhwh1kpkj2;V(e3#{58zjg7t>RVT--WC$`q zuDzAd5;D&S?%28g_)Sc+YG7`Aa_SA(gP%)X$l*dW!{+YMZ^H_3I5wKWSeT~qt!zj; zGWZRu2VnDH*CNQkbGn{(7la---vtL{)wsst6P4UmppMB9Ih^cYynH!}8niD7&j$Q3 zjHj!abM6i)?B{0K;TNUt?QgC-{LBd$;|Mox+ngfax0BR-`$~}ozq%3%5yKHgF^=h{ z4BFO8EN(4m9?aY4;nbtaphcV|sd7vS?hnYE7wEsbpi#u53@zS!2HgXJw+jpcQ-D}3 z!6BC%!@TwQJ*3VXDkgsiF#ZZ@vq!Z5E{p-Z?3PEOQMOT$f9V*kGx4{9tk{1(Iw>pa z-Ii`(1j-5H@CqLAFOQhUv0=O{c=aQYi$yn4YG>FbLp*DNMHY<6ijsW1Bt2Z)z^xnE zq7e_oKcu9x!Y6_T57JO(I7;2DY7i!%Tfh_nYS&W@ZtS8g?Lt5gKtO}KsV_lwgCwTbbDMh19xM5WuUvLTYo>%N ze0rt++$fL#`g&MS0 zyV0$g(0Ci_@R5`2m_jhMMEf5#1DH1jBcf0kCkwa1Qv<(lzLgSJvMSA|jUq|;N!mhC z`?BhQ2zTCaX;*uVrL5$`$TndQzVr>YDF^}&Tk84YNrZgSL4Mfe!DI@Yxz7=Kv95x}CAmLQrQtQhuizxqQa&Nu(GXWE zz#&Gm%ZQyWN26(aTNINVZGSky2-NUckv^PiC!_4clDK!PK<5W%nVwgKu>gO{OGUxT z&{NBBwVy(8c3bF(rMf3J&k-9688U%A3(?|n3afl-) zHCG&hN2#Daa{}Po3^{HS*P%)qze&MGWbB{DE2a#Pm+L)6>?_Tg0?-Zn3Cq0H)g~

Wg6xfH|Gn#{k+ZzmXO0${t7E1aVX7Yw%})>|_Nq+I4p$u4inuUP z*{1CQNU>nD7}LX4?BuM1m&hj<>@HT>AE=T9rfv4_TG>Esw?D-d`}p@s6v9d;a= z37E(W%fAdo5iy9lR@{|^cM6qcHQ<%yrMk_P8!ry4Jl7DWSnGo6P<#_M)0R)r`Grq9 zwsgaE*HX01yC-WdKL`bn3lfFEJ{qM#?!dh*!@F3l!l^qN6s_9hOYd7-?9`{*THKAk zjUzaH?~aCiPVevMIHCR|Ir62k~ccWK0$t-scNwW@6 z#44j%9Qd$qoBno5FBO!LJa7f}4LDB0oVuh@75YFw@%Or_#eA2R^N^VMfyd+GL`6jE zLQ(GC$b9aVmu0}z`*+}T>|n+WfYuG{jzW-e>avVNVksLCl&`THPp6W zShwvvKMBn08JxKCQ}=WxmTPl#dY*M7`(rj#xkl1Or~kWm{f5lw7Tq6CAMS-duYjMJ zn6>eJ>my3tko1cL+3tyD)`(cm*ChI9s7~^f^0>L!#=W0<9E2ra;iH{bf$LG4BiU6f z*$H1Q=9Z@9djc7X>6#<{`n8Vp@rQ`vft zUpMK4(JSIhZ3jz)C2588AX%xcvN5KixPWwzzxKxcCL#7DKi4*|uf!je zEPK`0d%X*4kqu!xMb32-1gXG^wv#)5rI|x~X1%`zyjmM%!R%}(*jAV-OO%A0*n2}* z);IH%Y3ya=eVvxa6>Ra-JFVn)nRv*v>5t>3-#U<^vKVl!v!W;Ti`{r&!`8{Z5Y#BY zOg9}*#N9#Nq%O@@#k5nrcTR|5fYQybf>k=V;bo<)m3E2dpG?|yeKXygJeIs}XK7wt?GFdqCvq%g(zI;J==znfVH4D+(6Kt1_O(ug z#DkbU1@)gOE=-}Z5pRhZMTShOG}mizo9qE>$L3e}H2j*MQvk2TEU4FVIuXJ?eW9`d z@(c*y_;gbM4*7<8-bwywPWxNNPo8861lx4aAV!%*-&#zCw+g4@K4g?sp2=d^M{4YY zz)RLAE}LZdb$`D)tKRwtdM?FZ|Ag%`saKb*Wh*LygboEc6WXVoD87RK@m^b-C%Z z#<16uQW+7B{3!-wILc8TH~efgNCW|`kfVo=Z21*XCb058oA64qb)$l!R7!Q(Y1o+}t3 z9zUCX3tGw}u*+{Wf7KX}CRIqa<9L3KlbZQqb4bw| zUk0UTX`1LUW`8Z09(s8D`1UxhESpDVNUQ&J9Umo_ty0=BvR*d=pQF_ON^Oeo34Ovo~8I^t;c)Kie&OQLh4V`fJY>ECV$*3XF+sFJ*^(F zIKo@hB~Mp#f}oKJ?RV2*>1h+4zt=JBd0w8XgO6)!mLd$g58$bWTM5t~_LZj`6*^g# z__QM6R72@wA-mI8A$V7Ov_+2(4{+0)frjU{Oy8_n5)URQxh<9yGZF*9vMV1hoq#Zp z%;0Bo=WVdQ$Oz`*pj&(y=d5o*_EA3697M+=+LU9-6TbPhmp{N-Y?KM^u9=D5O~b#@ z{Axwu#W2ImWG%699Rm z*KZ&wDLDiQ4V03PQJ!J2eLS9+2pUhYg{~!Ad4JU5 zdDG-GfmlXl({7bvJJ7|BnaQYLpnCi%3V!hF6JTnGH(~RhPsBUNp?)=g4u^Pg%nk@cHm*ny=)FO~4(oE^t6S7{wB)G2S7|S zI^elPAAsz5w2>QUa7v7VriDZDbka@Dzu!kJdpr)4LzC1#{1A||-W)HuZPQ-4m&^

|q-tqg(^j zX&|GEp@v2M{83xzB%|43OnO^`qD4Yb(3{%8X2z&EBY#iLSAvDR)fuC&a zLq}hqTJ5Z7CR5ez_lk%N+Rdhm!}wlinP3*Akk)$ekyLT%_g<^TYkZd$zg{&GVTz-> zII?0k|H?q2XC(zG5f~#@J+~iT7xw}X9Ssc`e&XXT%@ZnP4odGfn=hPhCdQE^nn}MT z2Y)MX6pdGFP?R^BTkHJmM-a}|+Mj>+Aa;@DijvvizsFKio5_N#d$OH(89Gn?@NBVM z2x=$I3vV4996QRoLIO7(_6pr82VKfePLdtI)fJSmm^NzhV2F}}xhHJ!dMA4P(1asdsPe(VxXp)ADMAE} zRf^ztQlTA0x%MX?n2A(P6lIl)&KAae+M2kOgRRA}h7Y9RO%9jm2e&P4C0+NK3oxI0 zLLL;wyfUSGxPxviszVRCo)HrA?hXtKOP<%#_8%)G+`EA~lv7xSd4MKax7k+k>U$ z?YZ~(>VcekyKVEv8KHX~15li-MRoJkDD(RJF}EwmrxU@~p?x4gt+*^8;JDUp{`mK` zbRw@?|EG4(NCCHJK{S}rY4JOaFFr?BB%AmGBN9&T!BpU&W6XAEk7+BCB?TCs$^O&c zCtST`a$_J@f3~iV1zfHT#f9B9U(klp^r;eQTIUi#+}~$3zEwH#O;Ss$4t~eV?77%^ zx7(@O>+c?%$U@ye0UlQ=p$B`aEX3Wn`w}M(H$#t$j{fAbIMUb;ISax2IHIdxNtylb zj(?#ak)5#6v25{%t4>BabIvjU+wfFgfr@a;tYK2gbZN+mLbFr{EwK z4;wSZ{1Fo?&_}@VSvG@``+$A6e2XM&b(%qp$RJe)1))qfQFmt8ThhTbi4+x$;}#|&nlxHO?U%;~xaQgKj`?=z^mB#V?8AG8`?9{b!%ap*q&w*jE<%dMVtQV7?=2rim7DQ>cu)Wfv3H` zM+_rdF1pC|+#aemBjh3GhF#q9lt%GWfinZ{Wk&ER5vdcm4BeGIgTsM3_xb4i&*v$@ zTb(XJmk_(<26njr301R;{G18B#lyJmW-T8`!q}$N1=@Ilaa1z^1nrP%UAc2{T)8y1 zOs=-vg)TZ5nwxM1`5J!MMYa2@k3Kn;toIkgh?T@b`Uv7N#ZHb-;N zC@ihxvHn52dATU~UYufiIyv}k$b>1j7YNwoBhqcX>zUw`_A*k3x|dSiQvI0EM2=-) zsd9l52A_xJjN=A5H8SM}CFu8J<3$6+7(yVg7E4v4WDM_b>Wn6?-E$ThTzo4bqww=6 zEFE~R-uTiWARwn|f|l-0kg5frL>0QyzaG2pr#mRTd6qa!>L45`0a2nRfBXO35%27da*IM`s@&QU+q^BR+NH|Jo7WB|IrVDO0g}oxlh#{ zl!f)!^s*nNOQ9gwfQOcA-pPta@#PkG<+SgKMGp3C5)^1g8n;CU_wv7@*GqfGm;>cnzZqR)H!r z{1pXf!-pDntwRz~x1bb|Q312!a_br#wRH+y2KO{(%UiZF6twsA`1J#eCt#)J!J@RaoOo%Lu*>Pm@qQm^T~>qL_PtjuA019PPO$ zK9$P^%d}|jp}+*kL2CP>PuB;S03S7I$}ofq>TsPmmGhN^O9aWm*S>RVZC|VH89{9B zHjh=fhN6mrS~6>17#veh~R4Vby>hR^6>+fduDLl(|cCq5Xd4+Qu*9+g8>T&nLTNNmvA^j+C^P&(Rx6*Vlm&fM zl?gWrE*^*Pg!eN7E$+`!T#R9kA)l8H;X4fu%i|hGbVD_^#B6z>axIP#TI9iBjwJaa z!a4@yBC&&NR@7N{YZ03J^9qF~zRfR~y74{2xp)#U%j zeH95oK!vHalFFpJMMO&4U2JrB!$4X-~Pcp3mpwg|#=wl7R67x&i>V#HwXY6)wf65{baDDgc?DyV@A{Y;JTK z-*DrbZu(d6z3)0|pEwK#Lxx8K2mzs4T<7kXuSPONFjhTwx6T|ClC%>_yPJVxABYDre6j)(dMiY^QR$f_!*`7t=gg)V?ci?$ zrncnR8$vB0$8l@?;M5xhS3=tNT88qKv8j&JjCa9?s(?E8QxNWB5x5-un84FUuK25a;u`?q(Gx%|%js=`*xL8v5DA@ni zY!8BIc5t*~q@g5n8t2s;u8=1sEXOlI=q!!@q0=T9-2( zQX+3<^uTVophd(>)K47zE;q)rAITWCa(c3V0%iHdf$TMtl2O#K5heP%y8sFi2hlIH z#rIdg2({tDPo8QP!x>1hfJ1PCnIvG93r?l=2QbKs2d#vQcdH7XfPvAr zc12Qfej$mwB^%$d;<`c_cEdPNAdq5p`gsS&0LnK^2K-c;-tJtW$B4JdvC0l}%rF~} zo85p0t{US81@V* z?0FFhc&4!=|7OX*L)kkAB@P_1gZ*EI_jMSapJN7`X?t+??&ICpVJ%BMCUDNHTwY#I z;Z0{L2|*jj*dz-pIz74y!c^q{1YxjwX|j7E$n+2s4@Cg z@J(_^P^L`|Yh9(_0V>>iE3^c*y7i1}_l!*@Y4}%=gz0L zK96SQ|0MaC6zK|W-@>kL+}d3=^$^=<*wQPhWhl#}3=3uQV>F}KRu3gOka6hyafb_C zl@(Ar(g?P?XRm1{TXqz;qZ#a9=Y!|MYZh7i!V=p-5(Q>e`Gld%A1jxA!D-JpzuA?3#N zoSR5-M1YKcWN4|DI~Sp!PlFDE;p~itBZe~h;#K7}NB4j&+>;jzPFi$t%-o~fkv32U@ zZX}b?wl*3fJa0CiSM{8;0;*6m*c%|BTPVZLeSdbFu*q&d7GxD1KB!~l*4B;NSZc*5 zRb#7<>F??HWy*sXSZm#Q8fc}nw!2nrNCW(Dl> zra#sy(F$Ov-xjiRDfG}suxxTID{VLW{mj+$%f4}yfx;mxuF@UTT9|k)9=KUv-5%bG zr_=4k-{EdO=Q6Nb5qPjM7q{1f6L3y;6_by5Fp+tKT%BE1t( z(TP*^gnNo=cIkSR>?g=8WX1&X9O`fV4f5in^f<=PEuk@YklK!lp6Jt`^l7!VrY@|t zJ#wJptSDXAgenQ-?-$6mZontIN2$iVimvUmU-uJ+NpVos4YQ)X)9TU6nWWGk!sGgu z$gwMv{DYwUoji)i=7TJg*8>)ZHPN*yDS>_Ni7Cu}9f*g3_J=#h@+z`Wmztd` z^Hsk-(060DNI3?WDw}K6D~^puC-LL*@xW=UrJJ9*MN0&jFDWf7`H2NprE4or@YkMn z8SaQjI>&h}Z>o|`a7luJ7S_Q_f*gz1j?xt2H&B|SR@E>`s`_J1_moIcFH=(zEuq9s>d<*m0Z6LFG#Q2#*9TO09Z@6i|Ii_w}UxF(LAxAJKzUnuOY% zed={dujL4Rmue4sjuMS?G!HqBE$!)D_5KHfUX^CRfdj7M7w6r&W#UQld})xZG3@s^ z8ptiA4X-M1sYO_nDiC;J>x0Jd6za2g(Xabv>l>}nAf!H#v?F;8p4Zr z%to+AooK^0^ewwe9y}hdCqlD%Iu4J6JZV=8Hz%a3*tDC`5mYHOQRqPvL^GC_?~88* zVb!o+Hk4`!LGuePG+8|;Nvgl=rP8xH$C;7SsS%0j_~Y;P!K43}q;ZblDqp~)H1JN# zDMB#BQxh^z#ijbAk<`apaTi;ySMndRA08zfcT?xAqp#49<-dv?(ZY^M zr?u=y`Z=HeYGkdC!h8)67w56Kd%F!g#andx9Ah_p^aj$Y zRkH`7`V8R$JLY0e@M#v#VjUvz3SaZoiVU5vvpNFv`wbgqX$C#^J@iHSp7{$IA5G@nn@GR=cRgGj8^g}gkT5YEPx(m$9hf%+V%fFx8l}n zdxE;+iOUTaey6LC#=O(~-yS0zKXjPZ`PP;t*BD46vzq+pC9k)N7tc-h{vfhsmzLUQ zqM!H<-&EU3xloIUlc%F^Oz`W4IfMGpErnRx0f z?H)MBemq-VdboKzd|)a6YtivM1_}n9)d|`Y4E?4t>28 zAElu&oKwcB7l(+7maD7o?-iJ_gO2ny3!EKpF`#_wjD@7nxS{08eVi_!Lrvhs^D6~~ z$!$o-z6Q?t&J9r91p{^6!7u&u)l>e!QvCHEEDYikZe22qt+uSAmlOc9)j86l?qe52 zx_n%Dk1f~Fl!VF+&wU%8)hHee{{a~J(FD8ldQOxw8mBWE@b#(+(=-PMB5%3rOjv06 zEZfyS_jt*m*zS)qlluPV@1}1YZPp_RM@tF%jfKy04O4JII2UKx;27NRd>gK{oe}W7 zDhhzQG)+F16+53;vE`esgxH5>r3adkW|uuqNF8g(qHV*4kp6WSn)6E_jVzbsNdj=0l)0UW) zz9JrmT_?1!{Z-|g6Lfx})fUmLU0*(2#6zO{Z$ZFxvQ zwQ|G$>pe=2W!rMliy#?uJ4bTsOkwQktiy1RJ!aD~%Dqa|eU?d-&i)iUyYTLfWT! zzF|fWjjJAz#w(+M;od4DOxe>N9W*4>YF;(a`;1~Evxsr-fzrTapMHo;+SmGa-z*6B zIWtGNqUBLBK71AjSs98;;sEoch%UtIWp{;DB*NV9d{ML{wue}PQc#JKcWkI+_Gn`_ z9^PRuCp98`a;Kp0j-^&6n|V11nAUt_*@0Txn*&}3|J)kixvMELJcceDf9{u7428T1 z2xXrN?O{SOF87)R{p3eBh^KPXvc4N9V~F(Hr2MtamLxGcFS~raX)FL<$x?XzA*>*x z;75}*nt%S`3+zK#F_Vpnd&n2C8>qxi4iAcbx-HA3y6IdIm7OZ)TDQBolecqB8!-1Q zHhktw$+F{eO#AE;J3Nxg0rX44hPfo;nYn<>$Oc@USsODtI58rAEkDV?F!bv>FOIVF zq;`{TlKCD`!#(bV}^WHv}EF3+WWmP#f~EB+x}kfN)R18h0uL^~5-L>h0@Y^yb9 zkiX*@H>>eGr#{z@4J8R3X?X%0*?4tFrmewPc{om9jzCEtG}7`_7xN~+6^HFAjU8Bh z2nN&)yJBImfVZChx z1{j1le_j_rhN%FraufhJ6VL=Ku)+ZI<|q|b1IG7dNKf$fP*y4Rz#`E-j(h=iAZJoQ z@D3-&_JZN4y)kv!RGV^ujL2Puv6rWel${hQHk38|rhN|yW5^H!1c^E&MVZDRA2BVx zV;jW#&!W(9AheO$<|7N`BPU&S{9;>lFY2EI#+CreFm@A$=lH^urDT^2MSc>d{;KM+ z{Y5hYOEZMRRRGGx_!4%!z3$G8F^C@t^nx+2WI#5>`9CKvgL~ixbI=}%9woaa;DfgX z3ISQnNLzDIPek%7m_wJ(B0E@B9g>E{_mqYQX9xuZ^w8qGDNweuPZKcJU_zvA0;EeN zUgjyxAzA0;dJEo$sARb+fRw8pm&{lA+1*~>gIF-F-JdK=A1i*v-~x|2zh=hAcx0hj z_!_!aM2r#NeKLLNTkR8veTIteK@cFDbW5QXUv{F}AgF)6%?QRZYz_zrMn@cSZzrQ_ zNpH_H;tv^;Blhj!d!kN2)kA>y0p1C)Ci_Vj6Cp8xS4>McLOg%b;Kv=ZfF+umIpdNx zHSs_5*b!|cXCK<%ThEHrH;jWcjUA@p4TQGI-sgnxa6zj0l&2(YpmL?bX?h5s-!y?y z`WN?b9;%W9fhb%*?kx|j<@6z-$jO3)StjA7*1xpiwteOMTnbE0A73{Z3!$K8wOc8u zf0_R3C%$hRj90t%5l=2iX>@P!inq>>FBtL;a^Qu#wLr60C>JR}+?^;#4wyz-0)qaR zpQ9r#h~60+o4BrNKw1>fn#H%tVu>L82x{ z4jvxG!g3UUBs5N=)p`0h*3ov%T6^7`Wl9jIFG->wbkX>v%lNoxzxQc90 z1*p_B>)>y0d(4J3PFKt@NrsI$ioBpHykb$(u`)@i{Coe4u9j(4hotE7b29KuUG%oB zU@`5@Y0gvO?2^S{k7%Lyd?p}uXe0}B*XX@xD5yM|@o?0+Q!LS8v;|`d@pLa_M^TR@ zrTB;UBjRZvI^0&M8hug7ZhfB&Je5|#0j8cxgK#)xa{EVmM7NlER7kv~3u9cgv2#ek z4ygd?LbZKY_mi*gvmn{afEe8a+dPf%W4qE} z0Uvk%u3!iPZMNXIrr!^Z;y_uA2}!*U>pTA*eiaFBs}u5Zuay#vruCRvd(|Xm0gQ5# z7-wM8(V*I+n);c>IYuL$Q4Yxb%{2H8(&2&6>hUuDNzy5cvNc_sa$~MQo zbQ4$faLNbMQDT0{Pdh0G_a%U4gGtz2!Yj6}1#h-DJcWn?dY~=Lr9()ucW*~A{aXVo;SRbPIy>}LVUqwd2k?GpNKf?UT zbYyWM0VI)|Ab}~(Z<>E6IV;U%FGCSvO)KK?d-yT=# z$53StjwUS4yF*O=`AJ~mhN#6l8*xs6&m_6OS4>z(z;2fgeL2E{Th2eC-}XCIW2D-+ z{Ueh5nUX)+HV-)HnQ+%zAcAO_dIeGcly;lpPai6UJuU3^iwrL|xf)4Dh~widxV-#1 zrTH^rS`o#Iej^at{=$_9Dy#7}b^8iTP(5WeP?R_Pg7ohpYXyS=I+vVuA zv#EAf6>=sZ{{h9X#v9Hs&1(a!s9?!TmEIRRp|yVw5oBXDRmb-AiNrDE zgD1WCn*HW1j3e5pH2sO+?%_lP`sYvU@fdsz8eZ0iOTbd<(M~i3CTADOU3c(b%4H-q z>BvMkbyWoDNVEw5!3}R*BCme0rFyM{`e<&O9nE-}{R6;<#|r^Ye}}kmAEoqMz?}F&g>(*ZyX2W0&kjRT<7fcj(7v^=eMRgM>fJyp;ao_h3_nuSPF9cW%ktYOWRqHJ zVZ*#=WhZW{0cN1<>R)zC%FOZb3HQS2)-hS_OQc=nVCKbRp!|p}oac0TBb9a^QxaLw zJ){phUWR-2RV8)+8G#Ja6v#+6A|@GOxk*^fG0sV#!6mA{w#0n(I@mBjW&U=UT^J|f zxH%+V*81|u%}VUKMW{-md{SRy=<^fae~y=@RHPhEq2lYZJtusB?7SNOCc}=F-*$(M zHnqMq9-&Z%!nwviwUp_M_NW13yt3;&EOz8r9(Agea&pdeD;x6jv!zh_@PNF8WvayJ zUT-#)Z^ssDcS)@`0w^*1C0)~;KM5>q3#`Uj6mU^<_1xIL>atZpxB z3ubaiff(OsbSrr6L_8~Wn^OK$4{2$|9hDL)`+Tt5Fu&9DN&^8XMPMiAm05_ht=gSr z7`@DIjdQ{zh}F==aSH3Z&Sn~t%-hWywb{sk&q?p0)~i-5<&Wu=XmwmVgZ|XBN->YO z_PR;wE?d-OWv#NS=}=-uk&jsX`^d6onO8v{8ffkZjq<;+Ac{IJ!f1=GCXHNFS(j=XG;!W?M#}7NWKPq zJ2JUD_kY09OLK|N&kj(iulTLsyZzsM6mDEhu)V&K&;)(Des6A!ocr?UP4+n@(ECZ9 zh3p_7G<@Z&AU9LnGTmgR+kS-$e~}Yo&5{Nbu7Ej3FBbWg4&A*puC1Q!c5jbq#!<(a zyyp}dak-JTtiW$Wqn)N$+0LMak%v@%IY!xa$*6ltKpxM#K7b9s^cV9Kt@8 z!XY5s`{AF#evC7mGoiw5sCAbxpXn6M1Z={W@8BgqwhNs5B{iD=dt zy4`#Iwui1eqK|MpC}}DF{CMLl@|kT~P}sXTr%nIS;aX%DTwLg{_v@nZ1gQj$2?~61 znM=DDcD$uy5;BupT4$Vb_Wg%ROSJ{?ORHKp5Y^f!-FERUOctv8V2J@{n`UXs7S1(8 z_L)UZ`i=dGEo&H6$?dqB_6E&I=G<&=7+16=LEsV@Co#P%-yTj^-TPaC>8mQhz(Vb;x8N8f4>sbjOas&mPyeI-Ln=Qp!aZ_vO!*(9HhGy4Vfe2 z&_QvaSFSH%8`atbZA9P+kWY6^E2p6)_7#+EzHO8ltO}6BvhIObu3t8Kb=%7WFUwoI z`Z?7p&9A&AOAbe+tg4*?4j3|E@{yOsb^l1>4q79ymvYo=9=#ntHvPeJ!RAcIQLh@` ziuJ*E?NE6oQ^8r|_Go?0~ghiy8n!VWbTpR|5B5;iv&bY$Fbma75;ZXk{$-7P*?;`Ojv zA)reII1)!TZxiu@n{G5=XK_idVr2rA*ywJX172s(QkMI5P+Ho>Wus5VKq9txz&C~M zmVe!zjCFHHpY0={Ld-&@FKPG|JlND7x(v|<8SI}waGsrXGufyAtGHsD&-!Jj) z5@qrS`?7VW@?^h}-dPY9aQb6Z_1#_!`DVh@{Vv_wJJl3#q?c3*S-=nep4dKpXvUc6 z?L3oT=r;2~yM&r@vh0mt#sy7tZ)w>K#xEa0%~214G5dAqLi%l_p+zB5asMp{aLW#` zL>r{;{re~QS&ik-%f(eNMfd`PI^#BqUW5kE4Hg$({^PAlImk-cn8t(e36?}$yg;44 zT4|9gIWHZKX9rJB&84tO|2$W+6e0%$^R!?nvA%eDr!xC`5WWkwbE{^;S)LsBN2z7- zapjA#Bpb;TlW;EG6H}uKJU=*v(B-OI`GBQg6D=OBBtC%Z-;Bd99K*;5B0%XQa;wq( zbRs0kYuN#=N8A`!72uSAxyRk2hLVcJrbF`YE1j=Lx(ve)h$Zyh=Y}88+Z4E%6Ur@) zN254(ognnv9$_aOc8S@;hTl5*C`Z?9Ye@jhWLV9_j~67{8y}Jd9KR)fa9}qF{3KRu z%eiNDIE)e?qHlUMi_1q_P6^iLW#Ir+h`wAyp;h@F@|J|s&*TOju!vbXL zW=lPR{7HjHmo;elRaJPJZ}FwbB`#;M^2NGDS;8HM%=CNe3*CW%_eS1dShgUl^vtn} zWeGDeKb&m)1%cKO5sUn>5t&Z08G<@Ceq?Q*PCM~syW~_iqBM(Wz*(^KGgjE{ z4K<@ZWi7#7$>y1oRNBnm$`=c)LB8YF3KdQb15XN#iA*fag?;_Fz$J8c0^q7hTY(cJ zC4BrO!e=!$NqYcsLy9`}6~MS|9YC#Cy@fEOf-N6GE&lfb&XXQ|EG`HX>SetLbW_-htz z1{dWf>m6MQE-7{-v0#18%h#o(p_K>7GWAs%|`bXdqV z#RaA>FqJA8{8w#@C)mQu;yi@mJC9P=d#f>jS@us9I^$}$LZ%{7K%F4Thu!W1E&!)3<>W&fUGK>zvQO zO;II*t`=WQCVl$N{ZF#y;Xa#x>10+saSj)JMiV|5Z_4>k*yLl?x|+@cSra%x6bcCO zD7|zMqQ9cdes{6{!~VTjefs0dhO4l}2GPj?{O7?wSw7J*l1e%hcBcX??bMsn-VqGW zGTD$BvD95T*I#gbj(PZXQ|QP?U-M|7B37Ca=?Pv~^d3A1D7@QjhaYvqOwna@%?_-FL$5QqV7^CIUXrpqT=pkBGhyn{0;DlF`WA-kf*L} zhdQq+ueBuT)-kVGi+9gTs=J5u=)f(pl(^mTQg8(W?#r$)nH8g^xGqYY!-Z!TV}#d= zKW|Gs2;lp8eoJ|Yu&VT+$8mJLNZqfI@Wu7=$eCP;S4_p-@6t?B#Uci}4sewoFuIR- zu0me`bH1yE8VY#mgC8~%#(p%hAuBXkFvv+2e#@E4lka-=ojx%Ig7E{Ab_bnN?ZyWq zWb-E^cI?i21JbL7GX4!NJ&IB5t|YV- zdsnEehezD^cv?ht=5~u*GUG5!8+KNCvG5)Sdi%qh%m1X=HU^bxbB919 zL_HAuT>*H{6mKl`d3kc(+z`^Fidg}* z=h(W-=rDZ-rRc=Q35Tv>it4a+IKad6ZYUllSfemtM2B=X>Ub z!TMtT%F-pnwyVCvV9|8B>4d4%qQa{Z3iJFkPbX`2uXE~0Ku*4y;G%Ta?IUCHT2{#; zE`kSN8|kDsm+A&ktlt~ZwmrP*R`YyXPcg&>_x$DXz4{d`VT96r09StWM;EzT((QgQ z`VrlBPxjN>hsyjp8Th1waK6do=H5J2z-Z*rz2X=I)yZor)f5+@!9SrbwZoEiWa1gP z0V42k4ZO$f2Ts~?w5j-?uAbO?C$6aK`|qaRhRtIlTM>@{D`TOQlE)tkT&ENL&k|>T z91#8r0Z{+s(U>%>O@E`aBy42bCAh2HIrYEA)3b5eCEgvYEcKTPTEnWLWw}ay-%jVb zLB&xJh-<7p0?%@?FTi(Rv3|N{9bfMOcyQfJABsX#qXdfm_6Yp8njQT49)9`-r-{Yi zaU#5PE1wW4C5}_nqQt=glNQc(+4Q*n&nm#>;1TK^4k+~6WA;g2UsBs^)~04!0RH9> z9_UETfpZ+h@n2Ctf&nI!mgMVcF26fT22>hiBEY~HA$U&#A2v76EP=NCz6IV4Rd2C; z{k#7au~!R%2DTl}vc-mEUzc@>XzWA~fG;F7KVkJ7`?e;e_+5H%EuPytUyBlTbjot6 zUh!d@aT%oK?cU~aB0vqAU((2ahe$aK_JkzJ3icx_n@QuxD-14qacdm>CO$e3zY)Y4oiyiUJ}nA~3|4V#vS zj7z#Y*PhA(eAkDkoSHE{1{-<2 z@)#8anv56lOoRohM16gH6UJG7Ug_b3ZqAVQtc*?i{R}*%^J=!P+3*eqH{KmVp))O& zfA&JS-}CPdceyJI*kDYOPiu%?O5@LLfzKP@a3oxKjWO!aKh+AULVgjf-lrN{#2@zDrMIeT5eHMR z@`l?Wj>v`r)$W0%af%=e==T}n^v^gVg@55)4A#NzX%7Tl_RggWu*n9 zldOJPy(^0n?kmXl1ICNR$Jp6C|mU3Slf*sBa@>Xmd2ibcTko#Kk;`# zG^q-}G2M6v?2++|h`jj7#3s^GMMZo`5LPCKfE_-k;|sscF7P~KMcqQ^Okf)jKG#v+ zv1YnuvTRS=T?jAwIbGg*zCyYGv|3Rw-5Mxt=3I5}_!tk$VKu?t3D4nDj!Cd4C$8T$ zDUM>{ei`?a^EkF}Z1K@W@K`S8v_)wN5ig>j^gEHf`oz4^!zPEOh#T2ois}gihI(^x zhgHiwsSgxmgfWz`lS9Fh-A4NW3ZRhxPRPfJ^^FhucmpK`a`?n}u~AKi%{;H^t^l=g zL8r}$!oQc{1Iq~?wWwRdKguKgt8dfk1f(RN$k!n)c>B+ zxKP1u!P^#?ATq1Yt+zf(U#m?^Z_+Qz=?oMnA0uc+vR&zUL4VxOiwB9D8PLtVNH6|Zp$-A5E zk4k@S*>$TjSa^y}YgxxKG!wTuydsBU=UlN11}|jD`J8UQlM4{dQGE`dTjASH-r1nE zF~=6En^;}fK^}ZlZbg9BEh1)pdmB>?eHBKi61MKapm@UC^B|EPRgKT3W&3B;SsY1{ zPup)2FP-?oJ;5yCU{mEwuj!KUVDpZv>cG6M+ zH0vYs249SAK>y%Ju@+yYl*A?N88LCgqM{#4Y`R*O2{U=ySJjO~d4 zWxe;<{(eqMObW)}ki*WC>kIm(Ai;SLW&VflCDl&Xs%p?8lF(Ry_6= zZ@=F2uInNF{%{q}6E-Z587CcmufYbO84I zu#Tcm$x6#FQ*0n8Ufa_(4(}QZ=Fh4bGxmR^tD+O-6tBCxSzhu-(e^_iD#9;hpA<#3 z!Z#jvbPI5QW&JUNg^GbT!iD|-<4HGK_hd9FHwx>=wQT5a3FGQy=ghAw9gk0{nT=g& zcn82!X2orxW+8H?O`NEAUQ#6B6j;tvg*J74o%OPDm${mLE5%o(M5_W|wQ!hK2cP#h z7$gMJyMcS~T6BaU6DI^@I#Tb?#k58QspfZzk#9GbdA%$ZR3CvHOjTg1fiGrMMRe;u z&irwNiJVng9U!M(*qHJkc-8X;ANd4B6>nEwMWe}A`M9{Gj}1F_O?G4&{yQ*l3IFg& z%8kNA-7{Vpl?|gD1Fr0(o5h%!n5U@!PdE6VpYxaS{A~d(tLrl()uN_yhy8$-Hm9@X zwf!8UG1D$IeEzh>(0_FD6XvCTEuvclwyo;HLY_k4M$n-4GLJrOR>MiFG$kOUf>P8? zGpAvM%fWR&M>}0_vSwgA(5I#cgfd(=D!1Etxqo`)d(f}<=8@~y!NtcjClA8gEw9$h zQb)yGS2vE|Rm~aa@AaX+4JPI)JrR0mx$dg%h@&`Gx>prXHRs? zY@H$@S(uD|EY&t{J#?YBx4SfOK}m#aVYbzM7L`uDwG_j2xzuvXo2v3;@hgaT#hOLd zpbOV=gj&;C5FjonoSan!GB#|NmFig{PV~$`%?Q6Z8A?kp9W6elk1EEeFzM<>NDd=n zE5T&jU0J>K1xf+nA(lwCvBPbH&vqiP(@P$7DUOmhw>K)GUTEFKTX@(YC6>SES;(gk zi}q`lV)J=@y3{QVt4)!Qgk4UyQK8<;5>*2TA|&6+ZU^pM*S81v^?j`&<@x9a63WHT zv_A_HJA6ehLJ+nX8 zeVE_9Z-_p|$+7Ca7@HIzzpbCIIl1i6n9l6`ljGKN<%+Ie_@E4ftuDPnC#`Oc-LGJp zcL|#oy_UDg4iCey1L~06ejHO<;#?V0+t-G^tR`ygJ`$wrV2J>Y=dbPZO^n`r7Qr!nz-3e~%}S z1W$S&ku2)uEJ?S-fQfh;Hfm(i=zW@7B3LK!u|l1ZP;tbM$BOj8mMFK9reIs?gb50(1 z^?IN%Jql@|DDx&ueWHCugRrHyn(~;SquEX4HAaq^lD(>5DQ=eV*23o@zt@6aH^$?;03Fi#o-nX%$)BW%u5 z`+Hz%g0iRNQRK67#A%ST&ho~@?b7wv48Kw1!Per~HW6Fqi%%@PkdLV_K3051%6kLi;Od&xQ9r%%UQylaXQd#O9c2z?Fap1uMY5KK#B94%YSQ; zf^LxV@RO^88WBOVYLb%H;zvJ8>x7!@iO}is*n1-TO$bh}fGqE1oxSJT?>yhk9c9b* zqP*wf#t={SX553EDUs__a6uz=^kx;}&g`tlm@pRqZ9lOQSd;{C``KZ9(qgfk zp1jMPh@2P5R_C6|rNqR-`?#}QsSXwMBtF5hh2P)oh^5GDBPx&KqBaF4I$`&uhk_Yk z*lQ@HsspjtLk?fbkd<1Cvt}2%f-)k5vuZ^u6igQ1FEfr(zj4XiD?PaQ?f&(KgT#G| zL1)nYqQZ_Y;46AWr!M9+!GT^s5oW_gC(?sbdsu1>mLyDm^8IuCOAI( zMpWIqAXOK?4c?4K8shC10+BvZGIL0hrJtJDw|a64TNcNSg~spm@Umu7o)QE5>$KoG zaZ6@JX7v!z`|%C5amaY$t+&vY>NmHxym$q~#qNMjCG#`hu8bPDAR;Y$^JX(9Pah!& z?+OTFZ@oF46Mq^|L6BGZ?&I3mQ7)3**&q-znE>%a{M!CTL#o(;l_QBE*uQ-2E_Lp8 zwTpssnJYE;r=Kn*oOs+gUv3s`0_stALX%zu{Eoh_%?M*71QH0rskhUxUQ^m&0A&L+ zo@nbPC8CbbQOgV@Fyx+hY4xCk!9L_dbkXMm)_m0kc){g>KTpphq&@{U@Q?Sd5T4=i z`_0BpY<_|(N0bCB641TOc1Z2FeFvy9WH{&fVE9{mzoKdtNG-}0HWUF_)o#)d)lpMJ z;W0tDFqLr3;P`%p7NfWu#S zsln8|`Ko$4MH5BGV-PT)p{_la0I{!&L{W@(E5{|_+s?MR%RP1YlMwzMxJ@YWZAwi7 zv#&k@Yl$b};!IC3%|@N_7tRwTc2xEERtJ{U=XK$Oq8~eK@s(}%(qtTds{_%+kaBUh zkOO0^sD61M3q49;+F&m91V9lF1ODI?4t&4W6eRGk^4jvaY#||c=)=YvyT2!xA z1TBhvkf^_B>^o)a;4&_W91!g<@kK7dp>O)qWueNn_Mx&UwC|6|jkYp%dG|wb7 z=W^|A=QSDl*IoUQu@e1GMF72}7{} zS_>bH){61mWX%tFl97#iFq31_c@$rA{*EtodZA;p7d1SXTBm2)(G}QOoQ%qgT8{2U z1U0+?w3~G5IDCHXr$beIhRf>3tv^^lz$&V|*!odJ03_*|jCZYGV@kkG06U??V>*^Ow#PqOINUjGu z*0>mn(y})Zw(}1ky}`%(<-LyhrIP$dnqu=B1JrhRej4m03e4Q9wz|MnIqGD;K;6IC zdvcY#eb(A&${W+IY^nK_=U&>CPF0&NH>%dmMCe5fZN@xfcm-p3#8s|ay=kA}Gu?LU zAAn}9fF?=VY%+>y92)9z@#&-3h8#OmV9zKuudWW+jYBC=33{c8mh;uNQG^<4GWPu? zG$m@gtL~MSo#Su9Aq7?a3`w}Ud~ULS?SY9GRx`h`3X=cnMi-VOjt6<_Kb^R72Jlw4 zCkxJZiB*eI+9E)vZH0~RN3E3kxp3~sRkL$)(`93q^j`>GuE5^163wa*EDK3@zfdi- z-mRqPq21!yr5Kty)wG;ei9bCPnbM3;^3qV6{c^SYoleZvNTE?Qv2^}>f9XeN;^;RQ z;!?XNlJ)OMoMdJG+=y(!%jk8|pMRj&Qrg)wj#ot=V(Ofa30j{fi@p4b)z4V|r~a_@ zDEwOJtinkrY>xRz!SBaEea2qB`L7Ho%c+^piC#i7|GHih=UWKwSLm1V<(+4jrz{kk z91N|#&5}N8>`lEeWeijkQGCYq(|IGj0f!kFnO2uSUY6cj&oDT)!JG@iJ0xp!?LI)~ z_3?2M?5qUE>;IR?>}&Ac+G1Ra|x5U0L(4R0ZDobJcy@ zB||cu1#imWDTncRc7~&&w-Hool`{InDoJs%%>`1QQ%)<3#@?tnRB)x03{}E8n^Jr9 zCrRRwOScw^K44R=|@M$)U(_~&K95G?a_kLY3qwmj1Q{5Tu^ zhzhaZZS*_b(^)9R4YFVL=f&A~k34N%zbf${p-Hw(}V{dDzm?qo9! zcV$Y2qs?z+ek*A?AdoF4RWl%1E;d|tafLMrhNa&tu@KW)8n2XM)81!tovtDVbF{5t z1Yh#VjGk`V#2Tqh%TBY?@PJqE_)nA)Lp;f2{ryqi6k<0^hfaZHhtyUg(j^ueQoch> zndWx@O!SL5ECsAbyfQB7{sd(^-lrE9yG)+ zr$uw_dv4mM&5qpZOYksX?e2B1q*{M#0Z>-&Z)${0gy3zm8|~U!^EGd+;aZl+13AA8?Xpp zqmm%Er1i9|R1;65{?e=FsdSMLn(&DnCX_T=d?gFIkNm_wgzNIFdA0Q=EriN9=HOuq z!Zji?S6TsRB~c1;BRR2Pc=9xl4eV(R=BA!0n!2+RPuSJso!5YwFY`H{!$g1nzrgjkUDI8*m9GV)&?lBAD&S~2~?o*CvA?C$s=QH-cX00S*Hz?Wk~hU9cMY{ zq)gYoHjvse{zvmNcOSW?zZR~Qx11hN2$pw?M;%vBL4~yL3_O~oac#RjSo9dszi72F z#~bSl)3BM^W}75t{yh<3vKG#v+^ha}`E4?w0@WnOi}$=F_4ndE;u^{{LSk_6Nu@d!mQ_}(#WGUSsm!oK(FjkC`f)0fPf!Ep2 zipy=A5p=L^9%#oRIq7EKcp0hBBz@~Xgz&uwZx0p8~W*^+wzk1JZ(i3rV zwsr?>rcvn@;xX5^$tVB@o_aprrhEi#u{5sT-#GO8nAf%!50N86m#hAQlnV8o6CyRn zIHi84bI_pvZo?EZTDA)^9uwm+3Yw;E9zU0V zu-hlgf~@`jTyrTd&KQ-aubs{q!z~dw1>8rrPEEJ`tNFi&V=BVO zc`UpJ*D|-Tm=vHT7Uar`x)ld2OX(m5b8O(OJ2-h#?mvMNhEx{(36f=#5}31On>vU+ zDL$(gEQ#qwRcETWge3n;5I}O)R5tY^o`XwXYu9+HpT}C%u->F|IpF79nOIcx`D=0$ zOUB?&w5j8*yq(~@Akq#=-rJE(8m(W5Jq*nm}1wnc*iu5cHLhrrz5@`Yo(n67r(meaSbI!T{ z+_^L7-u#nEnaL)*oBh7;`#hg#vC1}&8-5`=vt@n#&r9LAI{g`~HPwbc&KF+OWE{Qe z5B{*EcVl#bsjsYg?gfJ)4A_+Qz&B@a@%}aV=Ityc`5^J#zoKVPJl_nq$lSVkKJVg` zF1)uP?h@)vD{47ADfGvFnXD9&1u8|Y@%QusqOq%)aR~ji&!cjQ=iXV|qM5hC_coLm zzMcHdf6)A_rT5|XURjBlp4-Ou~Hx*4S2nll(Su1(sf$3o3~ zUeK|my8Pt(z~?REmJdAX`qYNE6n41ETk!uOKj;7GsS}Zd04WpkxYR5Y>HLL#=pI)()tG@kT-p$0$YC$zJOMfCU`EV63-|ck(iTOWA3&a z=sZwkhlgb#bxS(ogbA{^&v*qws0G=+y4*A%c3a`C>vSN;KuRVb?*yFqt2WGa=B1WBnog}J`*|BJp`uf#Rj&~bVX~_BggvUq(8@G3Z#_uql zSi3r$$Y-qaE1xBusas~;GBtgbOV4AWK-E!?gNkN1zGdZawk z8Hm=BA(?gzOF-92^oY3nEfM0uHTT|8Vb)`x)v6x6t^1vzCmD zX_BWUJ$={U{dXaU)My}^V}P=zTgJ+b@x5Q;shu*~PgcJhBHtWao-O;}_jnXd6ujiP z$)u&WuxBeB5lpxfN%F?tv;a2V>p62|Se}&YZjs_M7Uo3nLuHwpz@~BpG!u#IaR~N>HTQYBZn5HD`#$vhAq%Kj$p*LCAep&;q=s{0`6eK+FoAnEroS$1LgcD(GPw`j=pgm6#qz@Oj7I({$9 zB)5zUfG{?%V#z&viOFE{n`3mqsf-W@oEd|r^x*J+(W)8=9{pXE!kcTTyZXg4N`8}g zR+oAh8}6(Ly#DFDp{ z9ZTi~?+}qw8s|X?J`H-cB)OR*F`QxzPP#C6;vaQ|Ro#WuUuTX4ls5-+ML*cE)g&Ah z)%>0Hw$9fkF`m-8-!!j$r^HDBU1$=&;Wn8evM&;G8Y%9;38!VN=F4df*O-YCMIoBn z`tPlT3cTph%gUNKP?${fD%i>D)li2R?5R6eJ1-|ZObUK3@+yEl2`he z7a={A7`ZpD0rihy335+`A8d{dnu?U8nfu_cfG=BG%U`$C6#$rz+oKGPeb4OEL;)I~ zxH*#)2~^5BJG5Fbo-~F*RzzX^*!JCbH&Sg2=9+*ooJ_XDn~zQM9fx!2O?^SvXR38~ zr93m@em&XDMg+4fcNh-vjERSr|I^8JSsW}4sM-1U`VwQ17CJ+CX% zH4CxJFUYkrQ>rXjj$XgeaXJ5R;b7w%fp5HjO`1kjO{BE#>N0_9RB?efH?E}9*#Udp@}9}WiLFrIRfnWkm=*jF@+0j*cZ9_57UBYXSVP}6s~ z_)2}L0o(amYJiUZkA=(zf1w-SZ$*gxN{ZhD^KKO5W@10(TTZi%4M6y<%&=jULQsNj zPx#O=(wIBPg}#UAYC{KJ@(B%sfm&ogA?*qV9~;~IA zqOhIUYu>1|5%;b`NQZG7SarSc8;J19JUc?E3qw@9d*8tpVnJ`;_?PeD3B6z*#L=ad zQ9DS13~bX+0f^;49+RM_Y)T1CeJt(90`)6jNUezi>Z@qSGF>nkt!eJ(t~1TT395dH;) zt*qWQpSkz8txt*n@JA4A;Kv_rWaVwGS1tvs^^Cd7t4CeP)3L z+iidmB*S4O<99gV@+8K74w|+O6xcxUNC@s7$$)BQ|M$%bP=6jsD~R8dpkYPfB;|{? zgs{+bIXu`MC>!zB2@3B)M6MpN9hi zFF#>Aa=UXXv^OY-`l)$m!<`HgTBthe`9v&|PKF=fEzOZoky1gP|D}JaM+sDXUfcd7 zouqf(gi}2!tmZ3K1Olr2i`wH-qmBsg<}>XC!TYMwPXYBXMH-R< zsfr8>+8zr21P)yGWcPro2OKH_M$Adz>>OBV&r$-BS?mtEpLJg>QdfOZpB@{dwQwe`-nPMAQ%(1Ta*@Gx7XI=vWxcVVKSB_&9*hRC zKo}Z0GhU_{SwpX~NR>(>Gd{0tsWI?_MP{AEKyxN*wzCl=T3&iIQOWtkD{9~;HeBNt zYHMdI5m|gP+i97L%chY5Od;pNNjj|Bxqi{%QMpiCk;XOO<(#a`WOq@u5O{A7N=|X1 z05!C+j5FDopem=WN>A}S0BCJ@6efD19qDe_$8lT5H;j;yKoUj^Md?E5v2o{je4igo z2NR~aNr26`>D$AO*G zSQQMTcI3ztLs@bsJVUaqO4~%A-11DO-c+yjBv1nGDJ3o@Y>+Ap-&TYO`*VZp#&;C* zUce34thvRq$OF<(pl@8`NXF=mwU+R?VS<)|vqN$nN11{TUNT}V%y8W55^*bvnc}}9 zk-CIX&4dqhY9&Wb`gaXCFXb-zhC?@JNTg zw@jQp_dB;>L@W0@^Sr%$@K0s&CcA(H zIX}Zry<;YM_s7+=Fn_@si}Y{F*$= z;6E&wQ!{e4MY%T0%F*n5AeePhP+hqWWABxHtG2I9QUz_g+}_?*K;cThpA|XIX9MA{K5=@1ZBs zTI5oQDSogdaTXdL6`se@fl-8*^@hd@6YZED>dFldMl-~lbJOnLLj}FwT#V%A`laWM z+oF0-FksRqGjCjEZ2?)eF@M!D3^60FXNOL(5l%)T8`X8qECG<$1ZnhjUB7P3)G~m7 znc#LCpgFV~=G;NM86%DIZByOa+q=l6BGHyBxYDQrBl3;7J7CfF+D|>Amfo#p#CPmj zl%$9U3#h3Rr8dsS>(-N?WT;fypu=fo^iUI!!WZ8_IddADxkXA>YtI;1aQbW}*WdWY zUD(1;bM)?}a>}zO>AZHzCGiJ`D9z_G)!|!=)6GjI!H2ftaP`@#9LG%kvsJef`sRZz zqcGz5#KY?AhU?XKf_(o+b>9EWn@?Uh)^1$#6=Iz6FmiV8HaRsumh&sc$~llC&hdZF zX4jVMs{6;^6K95wOLza7mednWhXmM|QAR&yW=sC<9vDIT|D1Sl{2yk;-|N!`Q8uCQ znF{yTlU_>3gR{L>$$xci@Y54NZ@=Kr^R+!iEOH#xq-g?W`bL}M2B?(v<={y?W^6*qWq6E65j`D?-3XyG-tia%7bjd-)*(6eH)P^<;yI~dN!q0CtTQ- zK08OmzjrsdevO;b(U{DJyH(MJ%!6YDb!0JTmqOMN3#vC zk%W_!e$d$1x2IS|1)sse6Kbgjo-K$xQjgT*qUJqUOYlatUsCI9lO`V58r3eBHL)0y z8f5F~oWCpTCT$|azBvhXch}n57^=%F9gA3C-Ub9wG6vFqBUZ3GlX-vnadmB0wJg-C z#C?hCPb(VDmw8<6rM7mIUVVGWEgI)I8N#lKN>7*PycQ9CvfK+2C++r!r@H9-p`Mk{ER;WMiGS(!vOr-VN(q z-KR!Eqh{s&c$DZ%i%gy%ggW<+7K&RXak^pRFF!$JP~H(yD$}=Cl3Q;1Q7uIzWwr8- zjIU^WZ-JNg<2^ow%UyQRBADLiHPPGOWi8ZQ;tMDuF;<@a(k48cH5SpN!LRlfnpA0A zmZpjBa65ru6n~29=v1iRpOiA*cltMC{{hO>Eh1NWiWb$5yaNB#9(8NQtS;6LBFGWW zX6|V`y5(*PSsovn5n^F?ZOurN^M9!Wo{GV5Fi-Dy7W2x^U(fx_rAqVtZpMyI_fnNg z{s19Hq_vOmRNXqZ>!+d>&eJDz0pApEO7}NN-*Q*BYLJ)y<a|4rer<`(2GnAk3W%&n{M5G*~a9^H#1oShJMWufMLpa^Q36M3O*+1wr? z-0ePiluX`A!H@!KUBTdpPuUuF4xW_xf+-c$&4rh5(QvSBy-TPO6aS3u>tcmn9A{YLYw=4B@q9Y9P zPUZ0g@h-?a`QzJVZq4Y>jB!sX-4;8$NeGhVO>y!g*X9y0%vt_WG?xAE4O3AV5Q#<7 z_s%|>s_x+BLrwS1hF96B0j>|oR+ca@vm4U7;(K(OeU#-`|d$`&t z*2lj&7Mx$zmX07(iS^IO&IpoqsG+6R#57#mnH~3J-n`Vnd1q99iF?2?{2@v&SaGb< z%>xbLni>eBBwR}9%FC{HdB;m#1W%4$7P0vh$FYI=TN?}gMV;_I(8^4QmI8i(X~oo; zllE7Nopa0`dM>$zCB5IP#{MO=>`_bwUbtprT%4XUvk76nK&d!Ve$S<2M`0N7NI3)n8TTmR@x84Vu8CH^=Cix5V7;tD zR(Bb?xil038kmqY|5wQ3NQ}mk%dq`v+j&gzcx?;$Owlo4L(q2-8BnxVKoe|rZcN;J+E^|SL;KLJ_sKD2yPmKHfLZ8tj zAz66z@9`8yJ7z1io6_X_JS>fNgeMJ9x#N8EXKkas*RNk!3{^atd={86BZ>W+Os)r> z^h&pgOcz7Qm8KeKnI);#U|8;BPOrGZNGngn{VCW z%J|m}59RE>{N7g73sx<6`y8k@B$6kAd_)-8A0hZkZ_P2niXe#0;M;`%XNstZYwPLz z1cp)r-ZSwG$60q1)3;#j*UZ2HMWyM`lTFAJ=J%&A%_%lzs?nBNhgj zo19c##=ee)_RyE~3~mn|2WIJkR@}l3_)+6^cnp$zsi_1$#y}VE6kThH{@RO8IRn~|WJG`?hBVGoY@|2MTxl1uc@eE98 z)qicAkxRkpR_=zaP!$%W{W@VUH)l6woDD`F+Nd4=DDbjEIN{sMTcP7Ll?R0W0X`Lc z1epykpjs>)oO=8=(LVKyb~)NjS=_epF=zgAn!$9gyJ-CYQ84tuv77pKl|@>WTE59U5!~GnX^HIUo(G8irN`~ZiS9f}m{T+^z=MtBDmobHd(RZId#fe<_!yztPnp^Ec`g)3i&p}bXaUBposy6=!n7FWo`W&4Hx{O?&Ma4b-tm5ZG|MM;PG_YiprXx1Z1Npy9yrc92KD#a0vxqp4CUoc7#`MgWWql@;?~7$OJ$aaH+m$bx z$R$SRMt7TOdn18@Uj9Ynzk(?Q?6DaPE0{{?uP!?=tBrO*6YQfXea-4R!tHA4mlKQy z#2HZxPO?CY?6VAhpm=@vEm|r~PORTGVY04s`AWN>PX7%JnG0hBHAxV;?EUBtaR0wY zw9|Ud%?X4`+xbdqJrAynluvY3n(EBx=$xDYE5$d(7V48tKR=fCgamuV($P0N%SMb9 zT(=xJqnwa#T#;15r5^WXdW5RoBkLzMeE1eIC~7AZw=A6z3!5}Zsi)eVv(0Q{@9%M) z>`#@`Fuhyj`l!5U4^=|7Sce@@U2sVLt!hfJ26$b_bjOX%JIzc{nd~4sfiM^Px8wn+ zY>^+H-ulWKNXLb74c^k*a^?zMia(u!S8`y%ZOE_1i3@KF$MRXmq~y&FrTBs567rFq z4NMq~?Ai6#gJtpiCZAV&*|sKx=!b)Yi*1D85-j+S61JaPL6_w!n}wR-;vurrccP?l zKUE;zfp1?S1SVBP7Wo2pah2P2Xgq$sF9_kWlUtS5tJ=s8FCQve9H7LzJafSJm76sy zUx%lOcgKNazUa;rb4p;Vr|9}Ozn@@KC)p3le;CNHhsSS#(Itkz1~%)dc33FD6Hcu6 z4S*jtD1W#9er}*$j_Q1z5gD*~=V%5i+rvZZZ{J+g3)Fjeeh9ZR--y_s@?qLU#5}lQCeR!Vfnnf zQ?J`$EyMPrF)l{E|>Nss_`Fxt?k_obJRgt=#cyh;|~Fc<;AROv9}Woi>cq(nua1=-)Vi zaV@JVLXmrI`rs&3SWNow;d*jB45=w_gyY1{y&oS7adtiLd(1Xhz!jfT<|&QArr zykS_&!rCt@Nw1X3-G9^?o;st7GYQ~dtN4jGX2JT|$;}S?m89^16hbzSL1wgCDi&EB zVxyibfV>c{>kc5<2Q`mH#MAKet@}?B3dUzHm50`>QBK zzRptB&jk3BJzsP3>bVUNwPoyo2bhK}eU4&HyYr_7<>H`Urjw}AP`5eyLZDd3Mh9#R z3>;^0)DF+8X;JB^m$?%pK?46-fEYn5m_}R$8%$_ zZ90e2OUu641~^+`3nqNF2W@0F+h5(x_b%Ube?6cYEc8q?_|8GwP1ti67?GWDu<$UK z+>t*r3v&>mSZy-B*IF!7l4}7sIWD3gz7UEWuL<#N#oV4dnC?mI{(a!(y+v$NT}(-+ z_mhjH8qpGKUc3-R3Ko%@u{t=>KmL0Sly?L96oFtQWqJCoJ+_BF3jJj7 zu)b|Jk*&E3)B8_CLtPf(9DBa@hSlWUcW%lpW_K3`kER&3;1 z<9aO#cZH>CYtFk>Rm=Sn6ah%1ine?&xF;0|-q%fz*LyA%{T^3jDE0d$W10ySDsn&= zj{A-2z3{WjeG|woAnd-2nR{}4nZ}j#9!T~Mb(kvp!?m}_@~!<=b4k$pgT2(%cK`8= z36@0@50gn}opFb^>z5*rT^$JOjNdS_n}k;PFe^zB*HMqLKOA_Wj63HDU#*`X%*MpO zJuF-Im2#Uo*WFL3;aJn}9jX~NgPIl4itAOz9HA_kW0bdCC(R*~A4iO`qoa^#aSg*1 zH+B>i%gFSU84lOl(;ZjJIZChDI9dBqve$GeaCp7WWPFiTo!s5XHI^{r`skuymz(il z@@~dNnYdUk2OoBIKwbP}J*m&P-=ZQ*LqUkVU9{V)(`VA}l1sL~qg%rZu_Tf!NVD9k zK}-QEp5|I@eK>6XUo7J24XT@i1aQ^2yeY+eZEK*~5u8|k6ru>6J93mvp2r{`Gmlsm-_7(H7LmoZpKmq9ss}Ks zm?o){8>y>0w&+SIzK>jDVK4hZh~pgF^y^1>%&?Z~)mqa{_1l2C_HgKjZS}ddhuf7- zZ7Li`2Fe%W<@i<4MYFiN_82HXwavBsC0ie zl+Jw^QXH&8it2JjFzS31}pDc)JVMykUl?{R7)35OhR}G%~_qs-?iMQ#_qq0d?Xw`bMLTmSAJ_5)GZ zieP6(Xkg$&l_gvSxS{gBzEe#Inei6ppqJ$^>QNp}kDC6}-G_TGIlE@P10X*PYW1ho z(e&dpKzo*093udVpwwyoe@_H|k%4S6TxI-J+Z^zvuji!KE6wGjz&psnP&TrzCdi2r z1LGI9?CC3k(o`$|?T!%+gs^6fr8Hd$Cb(49VSt6k%p@fS#-mdAd>v9vyuo8~s`D4d zozXCFd4TU~dl2FQ_9odBzoLC8t;kmcclBK};i)Q;xvSi%qHP%KI7HToky(PQj+dxW z!q(U3XUE0nG+g!RH%aAg0s6+3e|$1SySrF6II+Dwye}~fn`WfkRRy&5jjR<+J7c2A z)^{)xKfYP&;;7d;nqdRHmcUVn30@TrRIzT_+l11AE&+bCzrO{ndLGXX@G`GEoCIEi zS8V=g8=ywH+FXdWg(r$L4w=Hbs@@zi9oGQe5#F!2b6Gn`&8oRDny2~Z%~`rWmA4_5 z12-1psCEG=sm1HY29)r!+1>k+aa-=81$02HY#1q249B~OyjB7{=|0B95XyXK?!%Sx z6aN%Mb&NVf0P(TX@^B_lYcSG*Igh7IfkTQ4Gp~YFdAKp%{5Iz^i_A1hi8qwL>z{#o z=&Vq3)}9x~8qBi(RDsD^b6eM^La;Jt_3pByU>zY+AyDrm%(Peb9 z2atEyITFFDHs~j0QD+`&QAf=Er;6NSmo#chH$tIFv6rTCA#>C3-O?J5zMv!uHnXF^ zsX}v$aTU!Qsb6?zN1-F@JiSCRkGsOSRaM7)Lb;~EGKWXO%d=ridJT#WV^jnNdwBVf zgQqdDaoN+85%$o*w>!CoQ`rSHrmvzvS0@%h>wq|nCi#}xV`{Fd+ESXx`(}jeSl*Iy zjKx+DFI1gGt_xRZm?=z1KR^D>x0~%6&oZGCPl0tf`EwcWt_GcuPLSAU#X!DQps8&A z%Q2q^_40f}i!6F-bj!=h!kmdaFYC4sMJ|l#_+Uh}y;QGQ_mOGjWXToy$h2wY@K{5l z1}3iC&1hCHs?fO=^D@g093guEmwfa)gy6i*@IAPA*5Qpm3G&PIy@%COWXS^gOzD2wP}=TxhRAW!;8b^Zu(a~Q>}(D-|73xM#wVlOIn>$yO5j~$&8Abe=Dz1mCAqPO zw;%ITM1B0s>iSZz;?>;L?wmo+Zt-xMmse+5+3a>B_D8>NPRXnK-JD7Lo9IE?!By?f zJ8aYOsen^km8w12 zpqCMs3$pxIX#<+O81DX-(cSI*?Yn(2m*nfhIPcdBxVB3hLObes^f&+SrUy_}JQ-2{ ze_IsXCrsX)5l+~wPJjMkjz<-{*+=>XY+yC2WR*^YwYOP~-qgt+ojc&hmcr&8Wu&w4 zLfFd7IggEs#U>N|qSN3CP2zL!2tr0Mz&1Ex&CS?I6oWE8y#I5PQPMXERiasKtFv{~5St zr&?)+3YYI!3?wnXVBO<=%51mq`qXJh%EsTf+h)N!ug42?$Vc;220H&lWR9o;h6=Xn zL;^=U;w=p^Q|$*PC0*w3G+U0|X?j=->bkZS`<_%Wxd}_P1jp_YC6DA#mR8X+V>KlD zrUXdzv>8j_=VVD+ZxMF@8EfsBgcVEjHgR4Smv772RRRH%^R~YnQGwVYD%A7XadNGY1nlzv?&Gb3m?KeAB=qT<4J+dnLKd13dNHKe2> z;#S-$thfCu?-LJdM7L)562 zP1kgtj|h8_kCkxxo7LN9meI0pK`=^2+#b4e^0naYH@x6Vn<^bb07*z8+`^6z@Q&2b zR0wR&b#1#Rpw#I>E=)!OJwOA1p)my9fBYiU;}q23{ZxsjqUjfPO1FW*SVACf#-uDr zq7H%=p*T_JxUO(J-B-dT$%l_u@Y_iqQ^8rpuR_3`)T9uKO{+dsge`h!ou51F@yue2Vx`L=A`b&>HD!k_R* zfqRbB=tIfQyhVx!NP4%auUj|Lo-O3pTCcVTk2c+hHxF;|(ShITQ z##3iix&}?U^n971@0?$9X1sM{utI8V_WQ!JMgK94V!cdx-+Ix?qMV$znV!U<=!|&i ztadaE3^(-?FL;6~F8=m>L*IG#))w5Y87bqhRZj|!3}s^qCSO|Q-R>d*Y@}8jZ>5)< zvz7L!s??=YU>yTG`+9V^-4|Yu-}e|smK_OgfQvzh&weP0!?&|(e5gWBtXU`TgLR*1 z+2m)*5Yb~rwu~YTjN&v>@4A3*FLOTn^e(|Y(tiF0FgED{Wx!JNSF4ZTJC1OXpgYa3 z?d>+G(!AJwVC3Zvk_*FWHR#T>@t5_-`H_D^(*`?_q@A{|lBgy&WKEguVTz4UW-}CK z$-c>x2Uj#|9)5PsuhvEVy^&_tV~|pio-)z0RU2*CLJ=uL%eXyAKP$#m{RgpaQL|r= zj!gHn81Mc*?R84DWM2Ik@iL2RAKuNiX^yQeQH}j{KZ@Gs;Y@*BpFx*z3UTI(ep*oI z$GF7yAvfd&JoLT*G@R2VZwtg++Kc;)5ubA5~4pe?Y`2pB)x@CG&n+UZ#7 zrL(GPT$g3u%zet6m430H#A9bv@A(6GC+#UtR;ICKKV{nKfY16bExMDs1byiJ^U|AJ z2WRKUrj=LUZ~&_JVl4R zXlBXyz~ZTIntu}mwv$>9oPa%RAhk>~XfkRTf}^O}I{Hk|36))aCVw*4(wwMzyi^6n zP>o3cY=4xe%YS*RuTA{KyzkWeNqnF|ohOgceE3x8)3_~01h8%v+0EKFS)sZ zXu0CDA|I*D_I)vwih3Ek5|kQF1W&l!7{L>VvOd-wea9(iu4JS2eSGqD{|uc-rb3>62EmK%ZgkSsY4{mdp)U`jnkH1^{&Rq=WSu0nTJe%-# zu3n8CdwC__6!ucmikJD-r=%`k+IwqUGiVwrDShLYh8C5->JM&DQ_Wh6g5^X^PHH=p zEn1uA;3GLgqq0SyMeNUzw4Vo*|E~5bTBpd%muli-*2fWxc;+ePH)a$KHDAja;uZ&6 z6KwHqZsJov&q(HZYEz>a8NH>cXueAR5a^H5kR_{(s3-la+s*rML(4TaiH}s$nc?BD zx{G`BWtJ3j;-NLq{B~{*LPo#i?(uxvI=|6kvJmf7pX~iwmPML#r%2PLE4>yNHFB| zF(4l)fBAjI{xkN4zrRYU|ACfX`JbCWK(GqjF#$FX^V2UGOSn44uKCamN?w`clI`<} z-x$D@{+ypZiq8zw-z`*{3`s#GWef)*G=)q^?ND9if6GFSXcB zcRtSP?#LK<=5$3QI7Q(E{`^9HRpxnu44Y))$DUxCs{TF-_=|ie$(?K5eWGoBq~60{ z;cZU^y=@B?+qt&C?V2q|xn=+3++BW5ZR+*{7!;9iaWJfyyB^*Q$o%XT>7S?4tawvD zm=4yd6rVUj@rYC|93DqQnIbfAufERn*JQ|pOMWuMOWp)tPPhg`v%Af|T17mGThubP zp<7c_lt7`=PMh|zNbA`7^i^<0d(vO0GjAi!w53R~_a>Kmg|0{2TsPC?8=8I89iWNj zz-we&ncD`_M)pVKM~;ecPI*B+tqhIN3A4hkH0zJ-#u-lOiqr9j2Q!D28*s70lhT{I zzE}&HYXCL8!&LHJ&cZXHna+rufF2EG*$f?!vi8{y-OgVYP6@p4mxMddKQI+yrhh&oqB(Hg1kGcfi($~%vq?z1vTJcmD|&YOSk*6GUfjXsA?&|n~fUwqY$I-8Yn4gro#b8Dn7}_Vr+W*)L37^8GB9#6_IMxuwv&V-Z3VEW9| z{Q^)FI6eObgni@Gx2og@qn}T+b78;!mkj@#HLSken%f7%^VSu+4&2TTxu35n3K4~>D5=u*Nbp1$X?e~rfo!L9egIA5Q^po%ULvOz z>WZ`|C*`e{iTq{6A{hK=O{EUv9jel{wpm%Rq91L1)}|$hWPj2cY#r!bSKa$8e=2Vc zG#Oct8XQnn@yzwK()ppMx+EfSJZ9q&{Jh}H9c9@ve+;y!8sFW-9@z6fY4`06 ze^we63Syf1ffD1gY)d7;PeaeVS`G|y?ykf=&maSMWnW!L;buyuD)nj`XDHzr*M>9O zOYEg0q<^B+2Ckr{OG-ysH*c_&c}1^Wb{Er6b1YcDcpMm;^eaLtFeS%y1wt^etBlhX zPm3!Qm{t$R4S|ME0=VbP4prT}$8^Cku)vTewW#zREJF8$S@D5Zt2J0asUAit4o)bq79;&{@lo=yy8jEA9`+z-|llXU36{LyeOv+etfI z5WjvHi&;qGH87H8w5rB=yz&k^{FU+!Peta)&|~#YeYRlX5*8#@UZn~_Rmi<=&(3Rs52&`ORyz; zX*y>MBsdNpu^Tm(mYXLQgw@%l(5G&dn-8PSYagKjk$>4Z#zfFNqmI@+o&qi?qtX%> z{bq!UzIseM$gpSrSpTCp^6A)Q*n{VaW0PXNCD*5!da8xc087;GQe>?W3qP$?z3Gm| zjp@e~-7n^39L4K6A^OCwEjdsK6fQuy1beEIfmSg`Wve`xSNuM3?YE0>Wvnx%gJ9w# z^!l;>o_9wpW;KIx#5K$(qtU1(!)Iz1&eLH7{@O46Hs$lwD&NK{0*kdbcdgid$g*}1 zwfyaYh%wpPiDX}0vZ(eTO_d%p_fsct9_u6IP*&HG2qJI^{^&F_f4#yfKy7^FB7JP3 zNZj-=mV-K7QY#n9{qHkrAiZ`d##esQM5yi}G}xfw`k#L<$6>#yse6l7kvENs+!#em z7vE3W?I=iOws}-Zalv=>lg?OqpH&P8Mr8yEloLA)vTsnU%SjWqRJUQkHPhf3Z!C0j zR5j=Amm^~aOZB!UZVC##--z#fE0+RQJR}#arso; z$)XRm;d+8jK>nS-g)J2eOIc_mZiz8E-o89Toe>!@*yV`k9FHkNLR25!*nK-fz}N zcbWFYMmT|Xgq|PT$edv8v0Oh!2)XKgC@N-os8aWAldy6p`}Lq(5|@+l80nf`QT@6p z;R*M)A1>5jzh-u>G>a4&9et0N27mxXJ_wXtzJ5H!)!G5taIZ^>Rk^gCU(~l^+8*3-#*;o_b^#^ut>~w!scycngLle5#l8aeF+?S31 zU*eO#ew+iIZcfAs{l-fFYWDq%-+46q?V?>dQvN=(ZoS0LSb~1t;$BEolk1@YDr7hj zF=sOAZmIWjK>#Jg32)c*c8kR6U&vIb0XoK&rDLQSq`krW5#4gmkzgu3@tKuZtqnu5 zRm#f)BBNPl!{zRg#IVBE^`N03f7p?%0WcXQ{W^Mu7uZ-PNFj}gE~%txZ8?zt-+8Q0 zlwREMW>ULj&1=o377;dr4l8W?%7lGG)Iq)3NH zxGTP$&P#VNCGtc*sl-pO;%4;nYs02DDi$7SRI7i{Kj;bT>VN;UrF~C|sm?t9f+_Q_ zA*wLX$;77<_QD}E2F9x~v0d{qvYd+1eaE{b=5d3s2_e{-C$+Z-E3xy#vr8`+|2Ts> zY>Dy3eQEVM>;=+UkVNR^zm|(P5t?pRZr)1H7h29wK61hntSuj;l$W-@04UrspI%CH z7aVK`aAS+ajQG`7(UEkMv>UUzg)}?^v~h?`&&|`3V&4kcL0SjoaSEd zD_rVg>)*ULq{Dy`y;u5<8CCl)z{g{UNonkxbAz`}!n|JicX+hcyS=*Ow^zyEx%@C~ zaS4;U{jY704Y_E3y?^d&%(dHL?Krq6g;!WGswozHe1&>#MH@_>J{0B@=Sy)ZCIS8`GqEizb##eFQ68UE~+} zA-N6sRwNZMb7wCVl!yh{gXbrC9gs@v83?Mp`#^-1Mq~ zD@wWiSWB;|4sN)j_4!T2E27>DiiB}cwyaie26uLxh|{FWj+;q_Jh_<~Z3FBT7rUkI zmqfp~ZPF7!2i|F$leQ9#3Yg<-vOlr_4l|_P0}h8aCz80;(>Ub^itLL-nrdHm-=T9$ z?z;H=YkGU7jDKd$=!Dxi?4#ZZdYcog8kFk2v3bWq(Cw>{*b!4If~h>#!uTw0L#8|O zTa%7ozWaEo6>J3sOGIE$UNYz*e31npc?KUSr+~D)0oii3>u=6g%yi3%eU1aF#5~WE zXL!s$0gs_8Pkpzf;WUn+!jpW|@;;aY@v!3&%qJEk zq!y=rPL4pNRRUExSV1$Mz+HKxL%*kwQGF~?a zKA<`aeX*+K1d$)K4iPu{QHTf>r*~74U}AY{$L`O3lqK|Aa%-28lbXz|r#!~)9!%zq z^fH8>@Knv_yCckq)s<{<6Q|QJj_^X68){5jOE&TZyh|ct-Ub+xjVz4;xndD!sK_li zOYKopBaw?)o zF!qKieff-p9Nc$@4D(**%c9y zrmKJw1p#THts){Iph59TMr% z3H;)HKhN*;miu|%f8IYI;KR(EGjq!K%sJ<3b6vldF|~JpuCX*KfYVC;f@@+;p&xnW z^zS^9&BzoDxJ7u8eyis@lDS@F!TElTQuwM_i#fBu%^Bv1o`YaCV%INN3}LylG5FfK zgt4Z|nroo1r%f9D#IHzxvw^H_0sL6GnBijCbzL`2JyjySU)Pn)(9mN;W8r2S(0vJb zB@5vWH(EVDJ!8m6UHS(79F=+-3FR^nhIFdaDbI+@Tu2dwJdM@-DRGB zo^(}jHQ0Ver|t%Y@2FK#ToXClKU3hA)n5u~%{^@0KfH^Qk~8YwRE^fsXOMQ=1H`lJ zN{Ds#6>C^H%@lSz|K)^@u*$MXeC#8R!2Eph*zD+R!U8c)FJtlgNJ7G??)s&qx7PacXJ6mwD&OakC*%P(7T$Iwr!VSZT1POMw6BG6{93t+H(Q#Mf+`h z8&|TB@>lnnXspk(1;f2&jpkz@X?;gG-4YWpoc=z>BAuqSulLKjWq1etY`f3Y^D%in zudiUjR*Cgn)$u%))qts$BXCWh_Za~`@u!=K27Bb}O3z^vc)#4<@RoDw+&C`<&1WyE z8BK3Kg%aa&j1@G-z_?^*CkIcf+Vn(ksI3Kv;N3gerC<-*v?=raVw)0F-ANHv7L$rLzdxbc7 zCg}y|C+_#B%OljliCj_}=^^ikmMQan0{qG~;2|JSDqR+<{hT-j&svGundK^6vMgwq zOrd_wHUxdrTb~;E6yT$W9m0VEgF9P0n_>6sr+K{cz#ag)Qnj0n0IdI%-G4dr8RvW= zK{G{N59-?c!%N1g^^|}?%uZLm$#$X}%*uT)6MhMl93^I8!qFzfb5%O$!)Klk!>T?w zoy+b)CC&IcK^+C&Pi@g5hDUje%J=|4-fk$VzCh;qKz?gfXw}gqNNt3SSD}`Q8O$Pz zV_$NizvRcqC7h1w<(ux5UBjf`tHQPvpF|=_EISslTExAfqnaA>uBCkTb(B{*=7XKN zkrMCaA58J>ZIH^CUC!i^CMpMc%QQt#jRVzT9ofIgH<26)%Z``4YgoGsT17str3a>o z+)<`1b35S`8Ki*aZj3=oL62nQ$aM#yj{tTtVxPyqb|nHlutQ9MZ4NTv!SB-aMw3ZNhLrV&9yDSq3DhGW=Z#gM>J()$KPHC*y_h@1$5S1>0O$exSO#Jm}O5 zq({Kn2}=z(1-{M7OV3_i-(;eVfD?`_mobjjFJNT2V~^6t5AcFo6oC<4((Ab*3c-t> z@fWGgn)9eDz*_EmsPBR+tu9ord)?>mMr}pMT{}4o)7yrPq^NT8881F-g5Hy-#UtjczHT60Sg?KW?swN7K$D}BQwen#cpPUcl_1+wst<8IbsM7K zY`}q878K&sIc19HB?2An1`%1~H?CN=+$*oj@RDpxNroxGVNLh1vzzFi1&xIB4xIQA zLpKG@d-K&qy%$9nK&_eP!;Vgt(r@nnb+G?7TO1iXgL{0iVGH87V#f|7?Bv@ktPy1Z9E+6}&H0q^%4dfz6RdUGu)Svzm|_K?X` zSgk^36Di+59*#bL?Xo+nU30;0)s&VpR=odepO)td4i)0bF1v#0$0#|H+6O*Ysn@a; zIH$^???_*2XO@32f^)DqhsTZy{Vv;l9es)~E!4e*X#a`GC0SjA1g67`*u>|pYpI+v z6+&|3bi51DeSPbA!!?!ihcA(o&o`amv%&FzWZ0MIW=MXW;y6o<-21Yh<_4RcZSUfzVc<*_>G;qv8W5%uxC+58KqU%qZ!h4Sn$v+m_N;&*U*I6mRf^(y0dzt7 z(u(sHdpvI-guXw%$}Uf#H*nkv7C1RzAzWC;0yAeI+>1H4p#fso&ml*}b6YdMhzbL_Ct`Nv1lTFcvuN7+ad~~v@L#rDvXjzSgm*n2=&2yGITo$#+&Of5yPJ=2iui7RR-L) zh|ROB!NXzF19l=RvWl?#xYsURf3m1O%T04t&%_-*YpvTGMV!|kFHR$N$}%`4D%%!a z8PZJ{Y72$OO)8g)xd3J@tSUP-$WUz)=>lf+SezT4Th1?4gY=*54^5m8=#2m^sx=7| z5)TvJ`FYDWgdB2wGws0VMpFF5w$g4q6&x0Q{Dh5Ef(#s_0LO7Y@>EiM`6MZ%l_iP0 z1_{2-ctv>P4u2X9R9A@=+GW9BdIDWLf&g-Y9|VuJ*m@GE3F1iivab!$#i~T!{EGmp zTyox|KID>H(>xYXb)|X1C2GX-}9DqQn*VC zL^v#&u!eWMgo#Qe%$;qbtQ@U^NUU`~1l|MR53~#R>AAJBIn-x!YfnXEt;NG~+uBnJ zYgyMo^DWZyE8G19M>m=;p>H-F(v_kH4uvJddOd&utEn+kml}l3L>Ls?)MgVfl}36X zNsbM3_^I-cSbDY9krw|?nJO)kq|OpAGr5yT;H@l984AW3hug4~t67txO);%CKeC_>xg|^{l$^2aFS6R#AuFQIi`?t3LG*6SNPXw^vXQiPI#}BcwMuxMhQqZ4dA0c`Jef|X#6Kp)t?FXod@DD`xg{n?9w zH0rOeQJv$}pbFx8SaOP|JX<_ZP`Vb{T(-?U9|*>e7EPOsqo0>yxuqN{yOj)-CQV(N zCJ`47b(3gsz6~JGXZG4{(X>1GHy`Mu&Lv)M1!n zw4USST}q^4Xa#DLb_MF8XORI=l!@J>lCL`)YyV=>E!><-Wtb7{=i!<9gmc4}W>(D4 zdmO&fuT=l0VUlw;{0zj4;8d5Ac=4WK*s0%oF}To+?&QWcB&RHmjuQ5AeK)(G4#X<9 zk7K+nm(;(8JbOrgXAtoU=Hd&&F4H){KHIji5uEu5P{`C&=Q z&1I}DqWrG}v8bD+(Ebg^xw@^mtvilELoQm+m;VTarsi|Xw5N}~tN3nf`A?;3_-tB$ zou=7an{w!M^Dl;OWXN1eVEJM9xPabn>iBP*2O`=_rE&?LrN#?>kjiNuf594of3^#wm!?3LD%IYedi)zUSK;mz~0UWu}q>^e|$pYsrF< zPwh|YT-HfN@Apfm>*>fAsm=5q%N8pOT7?fyqZwJVR}kBiA=*K4UlFd0>*A{9KR+6B zea?iest5M})TFrHf3uv=Sf2kJxqt^ExLin)2&y>`uK;X`dgt6@1? zui>%P*(^c+1qE^pm!U`ga0R?lds?oj^i$F(&_bL!4z6Ms&zJ$*s8A!ccj~KQaS8@L zS5+Mn-LHc)fex~wQem{-R!2xSXFEjTFpkY~qfJkYmkc{FUcp8KpFd^SXvep&D%#1i z10ZG6o%}0o;v-`xFCd^Z6eyXOunQg;oVIGRI4SNdx9$L^U4r#~mmzP}?n%+x0l|08TB%=s;UbflTufI04R8gy_DV#fxsm!ge739Nb z=cZ|GckiR}Q8>i&gCTZ#Q!{TT627`mw@tu;b@5#2& zgq{&|V|IDf^r`YKt)x;#tm@0Hy@`EB%kCCU56ytI)vP13O6S)^JB$7&cX(w@uNCe1 z6e6>E%}t78jyda4TzuJGGZrqP)tzLyOSBY7kjP_wzrDd!N#q#n`$_E0P?;6G@1*};eEQ|B&VQSM>;?yRfJJatMo8C9xUVRq7 z7fh5~kc`R~YkClLI?6Og(h*nKA6r}y5#}pD^G?1ys15KmI6@2oam zW9Mfq_VJ;A&pH2h>i-Ra>;lgr>Hq1b&j&(IepttSh%w(2j)!QYFcFhX-z_K;b2@a|(T;C|B%4cy7uSxFStNysV`E)?eAt$G*_I<(LT!d8qtKFd_{K2w6 zA+7wpL7&ZdcJ;Mub#e}860g=E0&nL940VzwET)fVZHupSQf4!*NJfo)(YC3^kOA>4 z70r3)it}%ro)B2$?gQ>yZ3@*YIEOA_K+tY@#Z1BMqk77gnRz*)zvvS`k}Fg!FF~ z9bFx7lig{UK&eJ6N+xcPmikvmj+i;Wr&&o;;@E?IZ-ouo8R;CQb&s_K?wZm@QwL#O za%*wM$T;Zd4->0(7ji5@rguA7J|b(^_4$m_Nb_^5y^Has4eLvzJ~P>xrYbwwWyZK3 z6D7~?wlnOGbyj#_G@F?en{-Q$rhN(2&_8aSEy%My=pL$PX!ufbHi;{izqs31IHwOT z^R<`U--wOchnW9Q@4>$=7Awy%jUqFpl4-#n&+)jAQE$87PYQwVJf`oc zF=wt5?-Zw6ZIC_(E(KQ`Q^GY3z2@(g0NvGFa?>Vu-Gb*buCx=)d}Pxfj}#vJ$->E> z6kd~n9#;o>2UtdQSrt7;qk2z6HV?gMwxe`6fhABFYzJBvK4c2!4o)BUrKXH_jxuIL9h za6zKftD;|ZbuATb?X&7S8Y>TdkU(fB`(X5Y%Pw|?k}a`FGyvq8qjW}=4Z{qc)r^!MAmS8zUe_q%@-#r??mcj$d<&wtkYFZBMi z)v7l5hyMS>^PfFDt9k?N?{^pFYmCD@!ePIGr1lMDZ=A2qqX#Y`z;B`g&@L!b-v`0p z&cC%;1SaMi{@;e?zkJ&7Kgz*luzqLNuU)S~--wR(X0Hva#_TGbBiDgx`DC92~6P=022?})1UACa3IYR3)EMD{I3v*Rk!M~#k9 zf0g}JLb7rKs30 zJbun&I3SGv9H=UqAFrD2f~#al7>em?$e>*ldJ%E1wax-gsZ^ZK!Z}?rU8B?A|38=w z|2W^e%$^rB^lw~H4Sqjapfp*yEpB65e9~gV%SA!Ww;5(vg5E(-B;Fav?U-t&1kPiP$Z*RFTj4^1LVjL`bK1iF}TD6y5{r zf61>j1W&#q09j_ePK9k@gtFz%$U?GrhtoK)x$NS~!WO_nuY>RoAbobllhgM(8W?Iq z(u6G1r7aDIcUUCdcP%A#3bParhP#ya+HP)aHJPjO9{M=hkm#OTPN}23)o`$q*S;sP8fZL^kzR4* zmM!KS#ZuYA%^NRs@KDmCV%u5RFvC-B%IDX4*BaIJV|##dbOknXY1-OX%OHuK_%l{c zvVj+Hurf2JIw&(#+7^h4HwM)|!f!=c!g?i`t;p{5yj-<{nDcDb)`be&rZlI}OxE5q z`6WJUFq$um-UXhg zF5i{HNF4kJ*{L`fL?C2YcNCmwpu0>w?bXXA6KoV9WQ2n~O@JXiopr}U-9Aalk6Qt1 z*IX$&inL;?@oz2h9834ahC%{eCsiJu zcAg#L{c&`tfYW@HiNI)PwYAYalgYe$AUd!FRxw9jD_1cZP+nhR2{wrKXw7C75BwQq z^V`q1$XQ_I+RVmvr0i4~p-w2$K69EYzLmm978r{R0Xb`AtM(SV2oH&A2nIzXsIZ#D zq*@rEc%x_C0(BhB9Go&H^Y3u&Ld#$s0GY~jrt{?6?V7B#R_ee0bbT@d9mM2#ZKE?w z%(nm==datPRVH9Dos~i!>@YVy^B@m6hof-@DwrW^$2QkW_)05mAV!!Q4w2Q6v4CuH zMN-@_sybd8LWhSW5isN*2gbCLWk3#X)N!682oGpvDNjq9CDTYn^QZo zAWIez4DNdt4(^!`MLWn(V0(z&A{~r4mD9uK8`wvtGM)}wH)1kHAq-c$;gyllWa~CM zAm6kZVu&qu6^W$sUy&<Fbds#9PNtikCGB$&!ddHhHB}~1JIJWKj z!8Xvn`ReFZv338Jv*$Tm8DZ6SYvQwA{-o_M%RXR|&R;#i!KyuxS7=x!-_N+^owIFd z`b}h3BOtV=N+FuB4p-f^V80oMlp=p+gx0;K9u5Z^R-|0tIKKWtczGP;`<&x0+P0r~ zO>aPkPvoeZkPW_W9#xb@)E-lHZF`v@q{ukUOy&GQDnPyMq6f*hU`9sdUT|U5@8CZncCP0gAp+h51%wwvPB)wa0kTi-~FTFKVH`4oLP^8FHaSvbhT?<(=+_^iA z+9roNH)Ok6FE`+7J=q(Z;M|?B$s{j)Fum@b{KTFS0Xe4cB$y!BFTJ^Sm3 zTjbZz19J|e){hiiq97fz;qo7{S(56%5>30;1NRtayMryvb)nwr*J)e0*y9(6v#%wj z7;RI&ChV;-BI~JYTOHahtK# z>FrX!x{+R-YWwbIHweSvyZ;sV|N8oG%u>W;HP)w(yD;8VQ`3g7JQTaL=TH*#qt%|Z zvHR+8W$+&(7wz!H(;F#U`!CTmdSbq3eIvs&`I?*q z;EZjS*f%I0;u&bPWR_EqR6VV&x1UKb2de=g9 z+7S%2J`q7-Ze7ooi{46aUx{b z7KsWhC1{%}mNt@oE9HAQfm6{rZX?QZM%1{@2gUIS{JmNi^0hl7L@9*X4{&Qvn!MHn zR|SW+}^E<+aiIpy7S9Y++WL+$|TnpV!R~FiJnQwW30iDWy7^^KB5(8T!pJ{z4 zNxqL>y&7k9rxt6!PM+sE9jG<+TFK!&?o*yau4=@00aoAog!0C7*VI3T?!EJXJ>get zl8FT1!7#C}_a^SyQOT|SYDchk$Y6|wWT{&}@lgVoT0W3Ib7dB(0R15_*qd+}k%n`c zamT=n;t8k7ErIk(ziN|hpb)1pV%z$b^DZu_cN*F7Z4DM@?qAwkBlB+{X)!=Vzewxz zu)wWHdHz1r20(CltdD?YU1{kHn}M5CI%q-(y{lGtAZtyaxb zA{?6y1|KlHC>~(GSq2jZrIv5KYaHSQ%p+$F)954PQiJtDM)vM8Wp880X|Ni3@2*XI z+k+B;B*HOwWH{k9jzC}Wsir?4Xu~l34p*K3`k*JQhd2ULfDiJ3eqSSFziCA4dh^DH zz40$Aut73|N8|u=X~6LCdtkMKU|6pI<$GBMix>QN1JiIw!-s*W^d4r3k^TQjS`zvG z1+u(_1;TigY}fksfS{VIEXz>uB66b7_0rGCH7$ihHe0K?ovh7Mo)};Zvt-Ur@8IwONDz>S*EmK zdQLtOIsICxTQoh|?f#PP-n|2EIMCd79W*tpgQGou?=v_21g*wNq)>y8%ATLF+^gRW z)-2=fpjm-`&6kNL)^ZLG*5EFkjnNFjVx*AxsggNCw*n;7P#VE87DeYEa@1~AhqVQS zX<6*h4u~szpE|bF%&3An0`<;EA>^uuG!A7+J8wUBwEry( zd#5*z6WW)uk`khgwnAF z)IwOqbx?AyvaTA7h&V^tET4M5TN)r_$fNPQbQxMAjz^`%$!3?-aVG_eqhVm1Q-?Bg zz23`PVz_Dade$~6IP+kNfN(6%k?JYN8ao|1Z32=CJJi`eiB8*`kjL2$9)7}Ko-qauFa$D=qcFZ;<*GIJTu>wb z>W{l`s}A&^|gmu*n%vKi|gW|R*eS>p|V-)@MuF^w(!%_)S4KVn7gz1 z)xuZj(zu~d8a>K`9#|bY6%yl08|-?_1+z3T3VyvlHh^!l)3mHC#{!b4 zQ4)V8evEEhlb_prBW?*AT_pV4JSn*H3t7$#40;{r!D+^^Eblp5Lz+hus4(H*pXTV^ zgsNchg34pxrc-$vA|jcdO_s{aL(}Wgwm$Ez~(a2-M??KCc?!0I76~TJT`x3kltI<<;jw_->tk}aLGzM(!i%MH=+2f%U239N(tabVc@$7gP5j=< zU9|0~kI%H)7Hk`l9Z$;7qa>?ZgBnqEY zr9zHjawMnj@dL%P?Jy-|H|EtX%bMUCj;@317wO{jjK2uL>g(8>U-iSmEvGKm)g1hG zT6Ho|{?Id@!z8`Mbl;91tjPU~{GkTs_bLuSm^V{Hv#7}cN|`d?>H%w+SZ}AY+ z?T$v<@LNYwyO8^i3k+cDp!0<;rghjak#Aa)9)u}qn_fa+ z-!tPoz9IVLh*H(*Bdd&F^)OoD5&f;W$^~@ju_juH(?G6nInOgvMC>Gmw)i3n)PJyW z{SHZAUXoLxKVN@rq$w8ba9#@I0p4YYDTr*C=a5f(o~9)MTG%?fO!ZGe+8k*22dl! zBtqHXN-Hv097!_S%*w0QJc0M*@m6E> z)%J~FY8q|@hT$xfm_(A^D7R$->(vZ@)x!*;L=p?<-eP~!sL}~qX zS&bGExyea=fe(l1w&!we{m3Gs>#;gw&UeU^;*FwlSXJTtE#Rr)tE4sZ6r1biTw_lf z0Pkb}@a|Oh24S+UmM4*w`?BV3B$1P4oU2%Q#4J8`JOEz2Mt*H&Jj`G{1OsCL%gz!E zssP6D*4+LTOp0iEbfT-+iQhq#r6n$La$-$Z@YPF^e*n(uckw)Py4~@K(rJyr(@3+o z2=_HW>z903#wVyLa+1@*YQDfy4y?px&$j4L6Ui@cN%8}ITF#PpMmv-h(->V+{i}6~ z$o;+_@*OWfR=+CUn7eGZoI{A6Ya;s=4e0dFy7jACao2UY49yC4^yWM%ykT}oUenPPQIQ;_V*`~$4V5W9#A(g#19NT@Rnd49M|kMZOtcO#ilq9?qotm zM1R+D--N}gW~K1=a0uh}h_WNPAhP3AW3G3sXaRvHWWUC*0Kt+Ae~3G-X7+QJd^fzy zZ((uH)GGJl)Q<-dtx3z&k;!Y_+k3l9*V8O$9Gi7}gp}W_4HeFIci1qWIiIAPnIJ_a z4C`mbUUQ3+U2E=1plrRQcFDpp_c&dwHe~C%GkHi9*R9R)@L55={Hk9VzX`Q|1P0&B z;4D^9=9fBAcjxy|r4;K|O^<(q-E+~}v;qb6aEzYaeM+{%~-yNU$z z1+~UbPd9F-4i|hhRrCvo-qec>6I4c=mg{aUjU2-kN)EjK9Xa7TApR((!_$u{k_}_5 z|Gu(Z-_-tJ=nn#8ryKgD{ZRT^O7zF$gKoH+G%`Q27qp;v<0J`+&H z<>C#RY$^%F(b{8@sii8ma0KQ#kRcsEEpaA%ft~UPAb%HyiM;vPF)#YO;Oirgf!Bo@ z=7?|`ekkmW4Rs4kfQLGoUaY_qshxloGB|JH{J^7%FGp;Pvl)qZmsMB6gDW3D`1cUC z=)I58{TS<>W15y@=aL?RtUmr(aJ>TJfJ^^qtf*`76TFN69yfNc_FbcY7eiUxfC*?x z#pnO72_T+cehG-7X~Vf3sw4HGU42N?s%VBEffG%8^Ee?ZfT)r9FN)KMGA07YzmJ)0 zB7dPP@uLu2<&m|ULw9ZJx;)R6_tTYT8`HPE%b4b?zZLYOgR179Rpk`6mUFJjkp!4}UI+DWF<*?^C;^HimL&EG!K2`8i$4u%hov>8ss z)EsReVHYt*E0XS-r08Qxr!O)X4qjt6&lTm3l!Bt<{}JXCF(W4PECGx)OjUNivzM?L zUB_GN8T2mWIF!#7SN40*DhYso{L1wO>n|x&+#4J13;W3bJ0l`W`3W)n4(;+<8!?nR z-OwWKSCjL1W2WwU2^vRNlV!Y52b2a<;|G34NVrE_8*20)Jm7^W`@Z`30ksASA={r? z^?N(`VPatt`NKUnGvOVd6&)BX}jumm!c z8u>_Z!WImBzsRU>jXHF#i~rKhYsGPd*dZo%CpY?S`M_&>Mx(SiQYz^i&#g{H7$XeS z%rMM37AJ7p7Jy6=8u0#!Q|f2TZ)a3pht@zo+EG&XZ4IRxi?dmJdN3 z8lT)^n?+6h4h9%l5oIxxGzrrN-KGp%jJ9FMFF;5K*yD#2%amg z1*`wJU$V;M>SAh0CX7rq7e;j1Pp`CTIA`UEf~eu|wIVCS{obq)jNWjh#_`qEM9g&f zijJn!!s%}Lb4EG0Ot?nag!I>%!JmC8U;0j7SV`ge8NpY7xi-1um37_vmT5C9+9<~~7nFs zr0Zc7j2F3Z>p)DsN!lB7%UJH*&h*r?ow%u%?Rq(}y2$v~S3M^U)%T|aR015|^6HlG zr9XfbL1@lB@D}$^rMXG~qmQ`#$bGoID*K7%f)80K_IRHCw{qv)8HamOF}UZ}o|CI_ z(4x7AQr^)cb4Y@_n0*x*;^SI4A6bn?x0q8{>!r8O6d9@s}T-Xx5y6OoEFtB z{~mL(SN6_@oaHTlI}Q=TuUG~ZbCk9BXjEB+M={Pdu3!aG*RY#k(HxC4B`5ar-){mD zL%)jzXrU(LblgJo*R-1M@wAij2HPHw5J+-PmgLU+J?#Kp)p2B4UL4pB!GOK;%a ze(4=bIjVHIDW+ATmQ0ePT)>UJzr$nKApK7{)drfpJ!0VMkyUrp(g>cWckwY74OUk^zqr`*xyeV+0QA@G1 z=cR?Z<8R&_ZST{+6o(anuGur8R(4NGh*lSao6m>a1?nA9bbs_k*S^i9!HE%Vvmnhw zO9!}sVRxSHCr?L1d*LnXA33iHs!0({Wof-<8f;rJoAgz2wL`v-<4*egwjI6ngK#%3 zqM{3E`}EVL%AV0)8;r=nZu2$*r5?ZT+gckhr59HcJ)1;%wN%dTIAwWH!Et!T!7inV zcBql+Q_KbMXPVM%vR-FF@5i*+b(kO!_jSW(G-H0Z`;Ub%UJdj2ov` z`iO7YBz4n9nUBX5&@jMEAIq{m)z`-FZ18o@=Y;1y5Q#?P)`KkdZ|AzHPMqRtu2pav zei4*fTvB3dFW<9sRgBYal86&Y9S;@{m<P%2&2gUg zJvh4_tNR6+_Di>mW@_!GdPS)zh@|?W$txia2WYS`y$Cd+LG(T8cM4)D&c>~_dW=DZsf0oO=C_4Ic^Uu6Z{V5AfO1Bt+UrCWqAO@RAnHDd~Xme+F>n49R_JB+z6s{s4CX%6+yCtP_FlA zF=11#uJ4KjYi`^x{R_3EG*hxwxVK1piM&%qQgOjWUZA*-5JP`LHW$ox#*6q&@h7C? ziH=d8zQebsT=eG3o8P&8G4-(P^<1MMnjK@0X!NIA8XMIrzT^ly_yXH?l4~oIAW({_ z7*;8mF4xXAA70s^7K%!Gd@Lg zfd?O`tQKj@K`j2n7ZMIe>VLRr52^fln(Y5cmnxFEHJ~0r;dI_6@huG|vW)wQZraDARQL4gtj6}>SSxDp?&dr2Miu*R;Gogu{ zOx&<&@(IJ!VV#UFOr{2TMeT>McUA=~H^`ZMETQPp|lDav>-L^h`sv&z2m zm=-@!z?l+&D&2GnJV+Nko_gJVpAk-iDL-E?3P~RWt2xB??j-WGP4fWpp=g^Xp$;49 z&xP@$0TDG3w_WqP4au3@zd~?$A!b*H$lp!&XWBvL#a@aB}=%IAfgj(cNuwX9J~jS-DcTe`?yIYmDa%ON*BK5;pAOiEz6QN zYi-vxZeOfR;aDM1JkPq3+FvrR(B|FW`d?oJ==!dCWj#8IACJBHW&R+6>}@8#uXd>KC3{MJta7ooDj$GoAeaD7*+*&$`QMLU6 zyBi7{H0~4W^j$-0=cO**NVyH3cI3{X2A>id>S-b~;i^cShr&9xix}dKZ@QkFAaeSD zJi+odxOH}(QJSzt=;|Q)`yP6)84l^UYRSyBruzqUp&(La+ywv7yDGmX^FVLT0knej zc-AH?Fzx(te#C(xQ0e6wSq$3MS?1yX5CV#|H?NY$B0BAVoq7`tu>-mgT)Q$tJV`{S z*N^Kwofj#V%LkkrYhW^ub;XghyU};rxeG~B2z>cmW|L7`yMLZ$EekM6%M`Dz)!sWc zlvbGF@iF|9;U~K)C7WKCF5(=rdF>9F+s-$1#lRGDo|9c^Hch~)v2^LZ(`zw}e&!I| z@;z{)?+NL`*j`mBuG1XS5FXx|OPG)AMBYW>>u!SFl-;;nkWZvvH1Z9*$I?je#_Jop z*L@=k6D(^EwIeH?%7->C8ya#?s((BTU1%n*(dM5q$k;mqP1c|D4;l66gS&yi9|X+r zQU>U;36`&}Pgh$_8|Ydl1`SOU{rp_;7Dbn=qX8^a3@+bz6|R)z3lppjPa@Ts#n-+|{Cn=xTqs6O)lMA2hIRfJwIgv-<2TurH3N4pNM^;R8Xa(_} zB2TJP&lM|5Sw$hneMP=8!XD?RMOjajt8cok+?UTQEw@rat?F6~JgU?U-K@#++YQ&B zEu9)s$^Pr7(wU92K0l35*{_8@#eVCM+Doeslf{;?{ga3*)3gNL%?-HL(%86rrC|#4 zi1#qxo%B<0Wdm6&`$*)5D9a}g;fR&0Sp)1!)y_9JwHx_XDycYcuKZN$tck@}PT#Jn z?x|F@Tf4RO1PDA%)>=O#fQU$9haARu%GFnrnX|JBk-KRjdLh^E4i?om^6XM3M#oDp z?zCjaBPRvzlzEuNQcX%w%bMS!AF^TkAt_j4cG{bMbZP2OV4?TQ<3Q1xx}#vfxt<$W zYk6Nd96Qr;{mhy0wJ2F9USPC7{#iDIr%@QQojuMzG#+z!8%UFO`a>cRwqE+8J4I@k z29TK(9Zf|))6DRxv*K%G;@KzmVBQ3~Z7n9$a=N0=-1*$JH>RzwcXwrtN?DBvSsBa+ivijT(WZ z7hCs{%|F%4_pkjy_gwG*?=yScFUWmV`qS#eGe{O`Sm73#T-c=?|5ITWy~{3qa%wco zn^V_!&XJm~g2dkvi7l%d!XM|}q|_Euo07=}{i z8tt08h%f(mn?wWc-Kf&-pQ`KPx|G z=GhI)G;F`$Si9kqeaD+7?fkLQqoDL)X)O6pgzq$BHeO#?KKxQ*JIpz|I}7p6rf9aU z&IH_*@ZD0c*X#A{og_aCjChX*5$iLwrB#otupXb#ECFP43s8j)td+iCXI&}^1Ucx7 z9~PM}TO*29JC7~3GQz{e>lkXtCGREdpsMk3Gdicz?%J*OJKm^VhO4lf1AeZ9Y^4mp zS~>_>;E`}6Tl!BT1CHSyMC3Vq?b(fU%JpwTIDY+55Qi|Rt(vVkrV?V|kHBD8QVxxo zJ4XrAs&g5Q`~D9s?SE(eHv<2S!2baO!+k@Vj-Q>KMx8HmcQ=f*rUL7-BfC$Hwo-oD z-H8Z-j0m-po=o9?RIRr@x3gGUFPI*k#Lh(Q1!k&^KFu6mbr$wAHwEkS;bneXHgD&^ z-cPs|Rb?R(L+Eu*e_fj>Sd4DWcRT0fTu9Sh&^8WQx!-2MnT^1oakxL5;8&@94$>N) zvOAt;QN9H>E#1Enw6>M7e1jSGdH06lZs#L49A%MK$(UM>MEAq;`Sh!!$QMo~V88%( zEX2VKbo+Mvr?gr|0Ji!VT|7oCwZss`UQg@!!9+HTUnWoO3A3LB;+>in>eQy}_Rj0? z=$TH%Y{J{_^u_NOiDdHg<)5SE4SK{j6SnJw3oQ^SvjYY>T6K15(R&Kib=K~J*4BIX z=4ZO<&o)PuoTF}~yeioddujzEMw*)Xgd%R<%5G&iOH>{m36M+sWv5nte7|a1*1`1_ z-0n{w5*&jx4Rb0I&5cql2F5r*(Z3sr-`l&*ek^4e9An&cIh-A~ zy=PQYTi-9bw{CS?0Jn;Wf>>!0P^$E;hzKYk5SBm!Dm@5DAe7Lyq9DBnq)Q1Uffc2u zKoF4@dI=@;Kq#R}?{M;*Gv4vud(U&LN`LDd-3Wnzr3tdbq+lU7v$%cf@|^HsBp=brj#-ailVRy|7t-^ zQr7E1Z<&#Jl}#%R__;ldz{P)eqW@dR-o88J2`WHm{Tuzry?=>l{?Gc6|5<%=@7{kG zy>K)g|6i(abgtdI_djGk|3iAidHfIc&3|v;f1Jhtt?uOih5APKKh!tze-i)Q)%#a_ z{^NK5f2_WdzIT@+Z2CW_Z*;Exuc&XT+M{l3Q$~3ew{ceC4ZMNjUt;Ep>}!79IlIP^ zv>(qxT7*<>AB}c4fAKnSGPd%|A6VM`3kFa2?4{1aZcUPu%M)Jw_TzPyXp>(RLif!g z?Yv(@7wneq`J%^9*U~MD8dhRGOF`pV=BWYQmz|rFSR~Up^nlCejdDtV-JwR+1VO!HckR;t40gh*M zrUt|0&XrpRLH{xVknDp#PeB%+^S4zWd@CJ;~w*{}>C&hi} zb8m$$YZl#sleW!Y3waODcBJp#aakGSps~QWxMSrjL7I(tgNN!xw}A`tTzlxTzHjZS zEU}8##D*?x+=soe`v}~=*sVW=D5?AFKDu<=Kb{3$S;a#)gjAIoURx> z9eWQklWd<6#PKsKvl)dOx5B*B($^v-t|kq6(^DwAeb2swzUHZh!L;Kx`D0VBMLUiQ zHt{AJ)9DFU!>3n74>YN=i=p@+m|Td(9k^I|BRF)Nd`j@+AMwAA+Wf@yy!;6@P)?TV zGSyBcG-4(gdbeIh7N3hrxdo=XmYN;Bi`0)S6#;yNJsVz4!1fc2TETN6hDsY;bJqcr zU=ii07Xl>4O~6T>%Tm^%q3e%1!-+T>A& zkS4!j_y`Jg>iEa_VwyN^9k1hNhq{~Y6fcuPe0oLDefJhTyMj6bG{M()NZ_H};@wvY zzfq(!0gBS|gqg^j`*#Ft;_!X$F*2GkLBm`nJ!NJnZSjGf2XAp!_|&;HQtF}JWhB&B zo{nMs4KxL%)3RXhGko(nA^6A4^FUra;RSbE2<@U||Ez#a>&u6RnVW0BKR1KuaT20p zkS|{YuWrIoG4SVK_-PI*J0A!rIxmaMoUQl-=_>%|LL^#9Hqw758A5=?czO&(a!?iX z%QF#7xrX;ZvVKB~u9*Pte)F^zx-$wo1oHPohXM}jz9LccS41?Ve}HO%23^)iGx@$=2@PR;TKnY@7f{H(S902C2>9cYpaC58qw1d*>;V)dh? zzM7zDLo{R|3J0lu_QK!5ctG*4p^!W7Iw1V~&*jSO6&;Ey^4q1Jj%Wy#TX=svmLk4xvU;*245^vi zR`>dZx%Ot(uinH?u+T~w)q z3;0XdZ=<#=Kx$@fE^J;XWkryLegMK`3+Q^!!&kZy0*-)bZbT9P2^2OUAL>qm#79tRtF zp8ust;_BJ3rKO!e!3-Dl!S?VLE;~RyAv4Fb^jG!1znEB5t&_iyF8`0Y!~FZ}`5!g{ zM3s){<&bK#0ue6k?CGls_F5;SdN?`?Y3CKT#j1m+#N!}`>w8nX=MLle4n?Al zY|Mb?J%{@p?_$)d=8T89r!K=jQuKaGxC(-MaLxqvA3VN<1o~?ns#W*uSN4IIccy1D zu+50t#NO(kgb}~29=m`{*H)fDU_;1#ad%~dYmjkq9 zbr%gYyxzQbsip)?>^l6|%UAOmT^@AY%2iR^^4-a`-Pzihk4nwmnj1v}TDSBUzLy+L zy-nxQI-D7a5b3BE4OmG&_vnzwv(cww{bn0d$-*1fzY7nL3#gV-uVmp)X<=)ZI!_#W z?#b=1`zrm{clH0JSNBf&f0n4Glw=c)m`E}AmAQ7b>G0mRWu7I0nk{sCXY+*|iqPV- zZHqQCQGsTJ1PuE$8#!7wm%iIPrSqKK9QDzTFi-ok!=xm)yz7k?!zTZIE^Dfw(m^Ad zUJP&6Q(Z6$ojXd7pyEJrxyByU@p_3kc#Jj$oDS zy)$j3pLsi8P*BmZyJm^=ti0rXfTDL%V@fg{X&oaDM+krEiy`AppI!hWrE7=1T@MN@By(WW9W2DN6DmXA$w3!^@+^V)o;Z9y zr>NLWbU{^F%$ZOHPh9}n)}*E)@r`JR_r=(h812^+V|&6NVuRU4c2?sHGU8mKO1ZNw z&{{fh=7v2BmqCLprq_rO~UiZWz2@!HZ%pW$&{eWeN}&TaD76H^!VooZ(2`%mA& z7BWP_ySw7b3~mZ9Z)U^$PdE}{*eCK^6Z za}LMq?v4M>m5(VOS zI(bDnfu=Tei?rYTU-AqOVMK1*a!TGqT~oU;BLIdn&W`}CEnRKo>oGb07=pbv%yi_j z!&O@l-O%jJ!WDq0CU?U%Hg@O|Nwkjdb;GUw2k3 z4O0ZJ)f17^FqAK-n!>KHd_5alk?Mvq1EI>h`d1Z>QYNE4kea()?{^=%JRNFFF8sM* zXyMvBGc*wfD(NY}hwWDD2x&om^h@K)_r=IV99q1!kmpXz&G3fGpAbF)5Br+?eblRSWXo~V%-B2c!^^?gK9Jdj9S$#5n@ zng@H~1NZiu$sFSk9UR%r;zT0&o^cJR>D_HB8gdp5U{KN+K`mhY)Oz92jCgVq{%4}9 znH0El8a!@M@c_KTio-%2s+ljEe#s-{%EGvjJOi|m68WV5N3N{xHnBv&g7EryNex&p zZ|y7$o$yN~L7boFt+m6-vLOsRB)CGAO)c&{}*)ZVUsU%@Y^Jd?! zv|9UjeR*6HCa*DFTs0#9sde5n-`E&Po0m@dRa3Iz+W4fnOC+SM+Fes@ovo-Ye?Fld z2L)8suiTmqXxZ&iidOkEuIHk<&<`H75WMpgyMS>A=q?eW^8)dBhl_3z|Xa zReyesinwDNON*_6rfnny>!ZBFxX`GrA*}YC`yMDF{sz5?aPL*8F&{*8A^51SLpVp!%L(PvhOcS=U z=O2?UvxlpbAl^fMv$${@A5@tywQ73v@qvWj??35lzPq0Zp`S-?0h*y#^s+d44^>UD zp&48epi|J%XvMSg&qjZJ%fj8%d!&N*8Naz#e$L$uEc2$X4+*~1xU~EEmQg#u|4O%~ z)fMP!ZKCzOTic}=lShkDRyj`zOBmeQ>aqO;ImzND*A_Y&smR~gs_aM35ETsBUSa|V z`e~CPo;EO<<%MkpKLztcJE;VGbyh$vJI$!h)$Nmd)&Hda{a?Df{<}B*GH4nW6#Cw3 z#p&$GvaJ9?@5XLtm9z*PwAOJs;yHDtPp9&J-|i;gCMT#w`tx@3EzpGj z5#S`9ZP1<;D6-zi z(_ERbyGb^qqA{!&l1*3FRXrDU#AGC>mjW!O#67KEN&lrRX<-ZYmL~w~eJM6n+P?9J zG*48y?|SipB6BNfy8^TBVvbZ&$N4bX4{I)?sf_AA`Wh9B@7XWKPjq7D?@IOlgi?E; zt)YDC+rk~|)~_uZ+hx<#-7MO{H@vPkfL8nV{Eb&ETBJ~P#wKdK!BABq!AB@+`pf*+ zsnBYP;WGRKLTD!6`e`XQUP)0@xr{TUHgsIWmtJI6a;vrJPHgme~Y zuXcmG`u=4ipY%G|@IVG-e_y|08lH6O(fH^c>VykrUg@(5Wta#l5szuz`Z!%^y)!*| zn5Dza&ds@~hO(NQ#WLkAP&5VywFK`q;%`lt4?cgUT}gAyBljI$s0WL0*m-=3STmI` z4Q$<4H$ec)>oVfSD}mi>&(ojTK~tw(PJ?+GV@uP&ZJ@RzVcIPk0WM0>zbY-8!~3{M zJ4o2xQpC^1nmblEcWnDa$OdSPCq2Ct7lj;niim=4)w{hP;0-Y_f7~r55h5n?d^xy4 z5UVo=jf4&KC5<$KGa6OW4(_bvnw$}_^>82>;-{l-Mtc{#e9li^(8&IY%alttVJ+Fe z^3Fz2v$7d2&HaqRVrYr(b3YTM-ZOtUUAa})){)t1smR%nSa_lH>g=(1u}`c0=I+<5 z{8eh}sLO*6?~BZ~{>y{jEZzoe$Qt#Ib5_VPeQX^uq$Yo)f(ejLeGfx{anM zuI>ppmHs{^P2s5EG1AJ8?-4>b6cV7&pjT@B+o-sIjo4JrSHYd#JSU_k$g5ny{{_P*C}ao;&~~MFDvDBmbw=M1 zBg|mA^<|fI#76EtlLza|8)EH5_nuQ7H5&S~1HOaY;d88=8Bf%V*?<;B)dLH4_Oj}E zHlrW7;n2`%xkQ@UJ10j$m%Fc%Ov%V+h6~>V62j!l9o;px&B?JUHT?hRMMpLpw<)Xv zkqI!l!1Zc=`16Y~b6?goX1-^7_rB6!NYa!KlO=c2p;tC!8_s`IZ=KZX_CbeG_F}k^ z{EE%OpYYVyWQF=g*|o4Of>0cU+97!yZgqS|RK3yCwr^|eDNM5|IrJcvgwj%A;|v%Y z#f2iXA8*l!?Ge)#ri+41g3=PW)llw5NR2sGscFxn=j5oF8FT8{kE-Hd;PS1LIP*^s z!Ob%jOLRnn7lhk3Zp$k=TQrImiipL6NQK zFclrp7U1NR8W`$}06I`0{&cY*ypGK-BG5^T0DYooK+gn)9?#6*m zroshECWG<{Gy?WfH!v;llm2pZ;*zK+J8{&*F>K1tj6nGbEBoG!lu zPih3oZ?B1LMLbBf*ld``VULbWg~BAdt-XpVd_sR_`$6@Bu=tMPeKlcJ33%>=+Kq>O zm%J9)Tl*kwhSm!ED3XS|7if_HguqZT0FpbX!L04UfL#(nF9DP$y0Z1H$Dj^oSeflZu#IriNM)`@!C0u=NjOhDomw^kx4Yej@+ z2@w!KIa%~bf1We(=*otOuSB{GK-J%BvR<^+$hz6sfe$k^V&TbQpvq`CKOykKqC(j+ z$9rOWhvV8?9-K)wdkQ{@um!X|(qPYRjHwG-=YU!k=xjiLDQ1^y{1>?=?jwBP8&!6x zy~YhBO5Ox7PC!)#4B(x@5bz-iQ^ya~-Y zkb`nQI#k1T?-+1`?Wr&mN_{M)qd-0thqpZo*qtuc0C(63ewnA>9m-`BQ1nU%@A`Zt z#|@C z4yvTAxX*@?Twf+bSHrDsJDhf>8ig4u{zPkGM!XGHM(TCVC8ohY8n)L+ zRyHMb_e3p2$3E8x_3JMF4$pw3tv}?{H7SJ6Ba2H88(1?g3gh{SgxH0vs}Pf4A7ege zvd)L-Mn6T_A?u2e`ocgeVJ|XX`OcRj5Q)N03K(ZY0v_$!=?&(9!b*8gz}R&o-7~&wpC*t-*Kmb5=@=4uJm(qq!omFor772cU(Vj#rJr& zj<^L==knjdY{W~TtK(tfA0E8@7}@owAg#Yw!L4p5mB_d!XW$gNWHgZjg_`~I6Iu%z zqpfW3Bcl{L6a#U-%?sT6Aa!43HTkvE z0A>UcifvY|v!7?%#9s+*Vq_Acp4y}LJ!aS%zlXS}r(SSHndDQ?_CvpPJ%c%T)HyX; z?NUCh2CfwL>3peO$l9w|)j(meMK1bsoLZ}wm!lMFoWn($em(xd(!Da`{XdKF?VzQK zwNB0$%^~aF%Y&twZ(OHH3Z2PvWBR6SvXi1Kjsh-TQU|#JGA#eCxx4n@F#g=;oeK9` zgyuQv(hEh~%Of9#LUXHI@Mw`7NF;dE#CfaHlyRnv%d|}4g~hT^Jolc>?934f{+D;x z9x`oCRRopY_u6Lf9o3wJu@1g7R2yf5=JF$#gkm77r4uqjxV`VylgCj`ZFy&{zvLfu zuar-@wQjoZbtAJkg-?xUCok@C^HtBrYNh*!uG>ZVUr!u*eej$5W$(Y=EF7N?{9=Oi zzip>p)oe4FF~aiigxA{bJp_0n3E;R)WB{7)F0yG=WK8uto$ih5JMr(PcFgod}zwmBYtsD5CW=a_invKp$sSH;X<_<*9U^-7bk~f$lLS5V;Yl-wSisl zc}W!OHM6&3B=gp7F14pYcu1UbIKK~68U{~#GtS0w8uAX0KMDZBFbRLO)c0HF9e2^1 z#e!q(&|AvaoU3m%*%HY&nuP!L@VK-I7PI!EhR&;fN+F$~b5+FtxcamD{TfJ|Yt#YF z`eXDs+xLI#tbY6L&DDLl(0A2|hD{e8!Tl|E%Aiv0V4mK<@_rqc%aoL%RP{*0x!p~F z9_E=d1lk6IZ@Wd&j}*+z5_pq#kGm`W|_u)VO7r8ejeEcTN->8?pM^ z+l{7uEDOVlh$e}1R+E3&5EjKziKNRd^O{oCKj}UVr_{uFiYvu6eCoDuk1Qe7K6%dv ztBcZkkMScVF!nl=x6M77QohmP+7LATV!yULo{MlwfBaIbBg4QdJhJ$F;w#IBoX`&! zIxiB?q~l)n{Y&&~8e?dU<2E5Mu00dFNHaLYg$4axjhZMXjdcEfWF2mr3!yVkO%W|N0%o!I8o!qZ*uR&g`5QeApBFFJoMjqMD<*o|7#ajimlk(vLxEDB zU=vf+gAxeA=#X6b=fZAS`R>Qu51r$iu(rdXb9qWS$-qXu)>kf^TdIei1dC4}d;=a2 zcRX&R*93hDyhA?M1wt*RR5o;U*= zwQ?N~E&AlSN88MJJ9O@|SP$}%r{L2`cOHbUoc63{=L47`#<(_64C2qyuB9>vKIPgA zCcvZ-Y@r|s#)S(>n=3QqX~3LU<)C7}YrIb-8fr#>PddGUL7fONr_wM!tP!KUGx;7b zjI)#ehnl@dUrE;Js^tgj^aNGWFF}cC=0wHSeU``I|QA&$4lZa6?HC3d@ z12xpGX72g-whray`HeG{gM!#F|GKuNE?W<}^~5ISysOQY)eXN>`|4!&;M<(q%<-|8 ze+~A3%jO$5cu$(JuKkNtJpNK^!FjfiC-05tfPkGYC<>HjmJ*tvy?Fx$X0_>4zcQPc z;wb-1a0d??+9cu{AV^|Xtj*(I0aYxQ7mv>SoP25zIUz95j)tM=^g#YU(n3Rzk(eQ& zajba*GqV?Gc4U*hUQVR9{OIB4K!-*iHnE2K^cE;%sg@cMT)!@Wmh8vG5bT+2_YMpy z1sWt58Adza#O(Bie9DtesaNiG=U>{*74&Cz^+5p>n6`CK0vl%s=)i0^afqPk*qPmU zbQ18=9eS*jE=l9PVU*dHAq<|OFosQ{7HX5uJc22zjl2mYW_^8i&%nD5G!y~us*;r8 zQW8QS%%;PGOpdUMhLz(9WK~y z$uf|Zq_A7JbN6>?mt>5A3o;+F`0!hyFjJ4ZWvJ!mm&+&l8P{ z_K&pg5Vdc|ZZfp_OM)~nJzStFSFl!+gxK#+7_I$gF9I0FDw2`&p*Rg^{g_`T3_Yhj zI$O#{n&>6He)q^(0vhY;Z2(MYo^1@*O|AdN2G zhO*mYNQ}p25)blPU+u(@xQ8aC7=nAE9-f~$1+kof=qHNGk+am5ZvzWBhSKc;i0j2) za<*UMyQvmAYn8#JO@$=1p*g-0Y7z$_ad-KfUiL%xxz)BGMQYYu(0Z87S!l}9p@g21 zeh&aH7YX{v0O%>Uf!xswPr8YrpbygK7WFmIb$F!Mv1l%-QnMBkl$srzwplKrSl z-=^w9Rn>%W%MXXd+=QXG;RaSgH=O)#VaZJS_JqOX!$frwTB&>;tH;ndtwmslzTU2> z%$2xpu&`TGdOgDvbD`=bKqye_*LP|(UWoB2Xm#MIQ(0z=MEANIc5tJg&tKuRJ|4`&#f=@GPgI@scNeW7 zG$)oN*oF0d9Kn)3*L$yP&aNH0=)SzNbe}KiN8&N1R;1+-KmU-!tf2-mn>}8HN0#HS z#EQf*%i6FNiM))2AZq;5sXj$AtG-{mxa$R1=iVNjm`XJp*1LezaH+%UM{=F8;q#q?h1ZAE+b`8?gk?$rG*>s8bi`{Dm1_tkn%QWo&M}bz*j`P#m4QcdCCPAne2L-gy77p;^PX) zN-6CL<$K>(=j0nP+O|)XqI?v`r@$v6rquirR@0S>v$6M}QbZhU?{Pd3^t31B$h1aB zh9`E=P~=Bkr>tc(g!~5A|Mc5G;VHb7bMtTg|18R#q*i*1P7DV8>B@T>_O^t6kP0C` z>HYRCmFDMclqb`!f<4ZkPybX?`1GW3GfNg9IbEqTZj>_ZIr8cE!G3yDV&&J*1nL+r z(cy&HY{BX?M)z|;(W^HGI?Qgm72Hmb{)!2)v{?TBT}4nx+puclU7m}CroxFtpn(q_ z@#=dMuxA8Ay}NDg!7^shAE+9std)zoaX>4j5S4|T;1VtnhpYq+vpIHT<`T*w10`k2gy`nRHqR9#UEE!+$V!UI+1z5$~N2t}gH@ ziGcB{ZRM@?n}q}SxrtpDXK!g}+WvHSc*y)Lu-5W+ z0lM<3laX;mB^=0o`b2(MhXh>WNOg1RTDIG_(N8bpFI4u?jmwR2-IKID!SsfT`zzn$ ze2oDPm!-R-4hu=AzX*X~e*}@t2t)8GnlT{QJ_5OF0(w>Vw8Pf(Vy0(q0}b;C4fg$} zJ2`025D2OO(k!EI43v|ze#;_&JH!T|S`Ko9_bs~)uFN2kRjEj@vI_#-nW=gB=F`JW*lU$$M|H+`_a1K4@(MO1GB)!a#ip9_}!we77Po|H^xpgZ&&x zvuAy3OJc6^R5?`@Ntb{}EC2#VayH1@PJYIzBvsCmcW!(z@B=(86jD)+E~qmp<+VZ4NubR2-GMqMR z68K1Q_2bN*j$rvsV`QgxU$|S#vsK#iKD&F?35@emGOoU7e2IIw^)|EoElxdd&~y&8 zXt8wP%N|)}YH#2gJD;m%GZw?1yH;A=MVKG=Qavvblzj!jDZdCL zvtd>0o`K%6W$gqrS*djt` zv(t6}n~lzn)(9b3i(NLmRNmSuG&`K#PBLuWN-Z|h@a~&hggQ&B=icEdsfrH1gxoHa zD3BP*{UR&T6Zz~)RJuA##4j<_T}OORMZ+Gcup!i9WZ4|qEXrt(Q>*QCG_E=ng>j+p zyhR^~fjeK(8yeWEZ--;=X7byw=iS6AY3;~TPF22HoY``Tt7*LXx63|GAGV+_+I~S1 zlkPz9z#e{4>6=aj@8g$^7|9v!JD*{#yFXFR^NvZR!!e@?YX9@Sw^q%h4!7lca6^r= z{RLC~c0h7^PpXw2x@Zb3S{IsU%R~#35E|$o?Y%hbAMc1bKW1byF;CT#FNf)TPc4G7 zd}a=u5eSdhy`w%o(+JHeu2c(FAu<1f2$nhI`ANVbRspFMjOKcB|9wef>_K3z+IdES zPzjqaWOw2Nnwtz~M4Z|y&89{iBF!G_iB}3i1S?Jb=CtnN4juAu0Cy%hgBS>iPC$AJc(?ozZr|nEkRrOgaus$}K+x@M z)ZfpIF;>sm%+SKR=xXn&{5ww$Epl^zE*?rw@9-c~9?frauYLR`qmZ!eCVjKk5-v$4 z*WLUt`FQ_XA^!Wb?+uUVIrO}%$E9XQeUsx)!=%TD8bUJzq;E~1p}^4FUu1?eHs=Tw zo`t;?5q0OWSB*nE!7aiRCCVsh5#S}$uCs#JW~a5B?<-nxEjHVmtpVyVW{3YI;k$k2 zX$6K_dGPjg1e35y9Gpv=&-+KjP?2B#o9|=@Ia#02q>VzZVDYy5-aPHi@zB1jdmu-N z<=8$QP1Vox*y$E}YbR!Tp$Qv1fY^Brwtb(Mz(I@A2nw>_^9 zD%ScnR|iZAssHk=^xyes^eY4Za7>so3-)5NP_3AZsJhF8 z(6*D71}z<|#lfyd_Y0Yc6)Sg;DnUN37q~>zP4#mJt{87d%}4o%6&JEcy0r0Vey3zR zGtss)IM&!J0}77g-+U#xGy|DI*}Y$l$z6TWhMm}!MLU9xwkZwY9571k*Kw4ITW)N@ zrc`vKT?_=oXr`Dxk;>M$qc@%Lp>fkBX{O8vv08wZ&g##jL7NN{uJ-zdFfJ$M8N=x* zt+)Cw0i$b^VlJq-EdO??T2K*hovtXL$YG6Cd{--3GD9+Rg3XjUhdwJ=@s}kPU z6c$|soE7y``@bTeSp&iC?qh#MuJUx5Oh@7HBB-ec%4GD0X)S2K*_&t;@G>?0wcg{d zUK(98t+gm`>C|B9?W_H7^PwcqnKydgI`uV$yk`wRb1H)hL3c-j6l)X}Tg1)yD&l}W ze`nEwn%-5`Y1jRsiT-=LR9@_c-^6aOT~##1_R5uXYOR;|p{w&=%vAHEnUwx|jq}`h z@D#h!PA}K8^jXcJ7HH{d?tZIjZi(ALJuxv4g0sv0>rIE~Faqq?A3n(@veJB%%!f+R z7Z${lXS};#k9pdsd$ij@+CD@6XQ4SPm^>uJ9$|r+huS(2#M|tH%&1>nxH$~ z1kIXD(IxXgz5lvaMa-%nvni#c`!M;XwNl!f?($Qrr|;yAKj}XCVuDAI^4)0g#L2a& zl8|8ObtwubHX^Uc+um3Ii`(s6q)SEg{W@r&cLc0VrTGK6%42qQIpg&aSL|azd!cDp zzX{W&GSK%gBqXn{LDg*ps^E5eG(a4TTyrqw5D=GPb(9wR3yKxsjpQvxUAV;Siq!&= zau&4j>4!j>I=X{g$Ii~Qyk6<|U2SlXk)6sg7%>c@@o|g{;bxSy zZ26KPZ9qm}#R+7cjNM4X7A_oYNydv&*|ZnseTwTpc{M-B&+FGg8x|TQ+BfK2R`vF@ z#D(u}i>^M8=0`#yS`Udj_uc3Oiu4fGfDl-ftvs`Onmb#5<1w#>*TZ|ZAn`9t#hSF zJws`}LQpkN16C}=f|4j`;&yS>lw;r6gvnLn{y6c9P=BU;nIgflqe*@5<{_5=G)00N z{k(M79{-|=Uuz|koUOaXjvTXwa#&yrV$0p0y;6{5{Ns58KsU;{59}~iy$1E zgm)4zY$GA))GEQFfYvwsgMMl8ZW@;rorcZg@rpC8!v-voxd zCK@pqkLQvE`(_{bu{eww!-nUqp|x-G4l?E3q$iztl%7RgUTw zkV==hJ4@9>nqHi-nwgcb@9%w zS+BoE+S;W%D^H&r+q!G+9A9)4J9kB$jAVD@sM4pnT%kgxT#wQ2aS-f$PoH6WHRI~8 zS#Bq9(cl$$(wEYBAa(A7I=wx%Fb#&fE|Kv15CwSE4 z4myan@*eBU+CBmmay&)fRrRCHxbGBiQ0hg>MZuOENx}%v{G*iO0}GG8_O@Z}yhU*b zfe8X~;|2rWE&HyoEq8wo0F$9sM?y)k0`UIomLLAL$hqBPtZ#3Qr2V6;q*9VjIXYx| ziV$@gH1U(rkY~GCOSWuh9&XvY*X>hwZ|ocL4dp#f@AKcdvJQ)ZEDp^z-zbKh`&`I< z;;?XV^cH|svy=cijjn?#uM5dOKP86brQ3C(b--jSM0`IH)Y}f3_V~J-^sIdSgpN}< zht?jrqhs+6FF31y39S@t3;viC@6e2_ONTRY({Zb%L=wK#0X%S6s8xOvklG1tsaG%( z8Y!?uplz)a>gi z@;C=oz9kT*ZV6&h84a|&y2b)g*IVax?M({Qt{L~aMwFJvud&; z2T9iA9&{<9xgw_5)y~nq>_t5gMY0;~qTjf(c-IncvukSvqmx&Y@wS(ne;DjPc9nV{ zN#HP=7i3?VM}b2f$W8Lo-}7?E_SRDI@bgagq=0L63mc%JSA=Yr|GFiomm;YQ1>=Tq zi*I#f@V(kL!iyZ+_Hen&9hEIk9qTv!mhp_eGbPlZn;P1(jSl;{!eR!uUs5 z$;0tP?Xn_5k4I;ELy(F@41D0{&FxN1tz6fPCtnD~_J=nRSYR4~Jk_wU5g#m8>Yk8v z1AHOK2Omw4iYxZ6RQM~I=^jhmm$NB7u>KmNEIt*P!X%CFm!J1I`m-!DF{oH~q1Jq8 zT0`qN+2y#-H8ToE97 zM#c>->)ec_=;Zg`jNoXT2OIP<5yKM zJ^$t5FF&8c)`CR;*XhLZKyYM#sFni!L2qz)RlY+l#2Pt8xHft?25l!t6{2t0zPZ?1a%>k(v?UIE&0Z^x;s_2 zXPX@Gi?w(38F|fz8kcbZ2+qN?<0GXzCVb!+6o5^ErNPmyyDO=9zKP&9mClh`5BgL& z_j{7OqxokFjRv+AD;<7e)pa)$yj}OPk~Q2205wU&H;?>!X&>B4H;XP^)JdFJs%K3` z?yMkE1Kyfr)G^qyn#a>6b5rs-ix9}1*Qv5O)h+W}?BOJ%Y!TrvmwgV=8ULV5Y?ViT zz~9L0f)m}xoLGrejZ#OO%$IL>@rMiq3F8IRx930Q(S2Inew<;~P|y&g)5+T$LR(-< zK_W{4h3KnSIvkUvAot4SI8?iot}~Avb}}@|ep!9g@5mjW1Jbv*GZieo<`4H~TTJ8Aj=^Y8%d-&VeK87m;+8+km`4 zlk9IwjC!FYE>~W+w71_>Tv94cFS&*b-d z)ifu@gm>YSzZP)pGr#lj)q(XVU)$m9Fy=V;!f;U*t);U$V_Cj@G z3iQgY;Z*ZO`fBi!cq42UA;7GbCNV815jCsN?2`hbSI%ReR<+QHNSiuLGECLvgdl~D zgD8;EV;l||r!cho;(oDpBwhGmoxIDH_!rY@ez+Yd^~SSF@ul!>_KOudX{Y^YwyP7W zOdh&5iAe54-fP>ICNl)5e@lb0l!RJn^sCc&Ro!hw@P>mHF#awh&{*h#0T#&W_p@1!TeVHUebo&+J*C`k%gIZlo{Ih)1EOC6bKVe?8)`_B6w;T$UufHXpQZT>8$@eW#qEAg+=jo5w1S#Ou!8 zzsb3Twsc{u6j9Iv&p|n6k@v|fUAXnOIE+8vcq zT^qo0)3q1IYh-cJd{9%+n<<>Sbb@a5XNQl4VtJkZ-tU(8y5q`yp;?kt&&fi40YZ?A zv#f+d1R%d*Tp{sFqRO#COWD8jRdo4xg^*K4)h)V*4ZcxAQofQOU#u5-lTU7ZoiGTx zuy1gGD}6MfI-U^FI~@tihY@troIPg<>sAU~bgth4-~UNzM7?Y8^s=p&G*o1|Xp z_t$P_1W(A`!NL7RB3d6Z9t=;i^swHH%9(0@yMCQH|G17s)r9~qxm0<_=`lRZklkz( zE^&4WxXP@$UO5UKeFj?SxBn!dNH3}y85t!+CFuTqJl3alUR-r9k&)Q+-`IQe zXtw(J-}iZ*4qA$~#u_`J#87jop_8h)MQlSNS`<;UP!vzAD2j&)YOJ{uwwjX=Y9^){ zLd}F2f+%X9Zl1I5x$E9_&N{!}UF)o~?p^ETkF2bno$S58dw;**&-e3re_kIbt|D_7 zHom_tn`ytd*zG~h&Fnt61GlV8#&0BT-*=fRua&GvE^o}^EFYEoH-N{(9wXRe?1p*` zGV-peiS`?(Z4;QIhqx7{$u`VKYQ9{4>n$b}$BNP`UTzDN|qF`8O zy)^xiS8vh`m2a_s3m=?REnbJcNtlpQ`z1j)et*@FgipO@ZtTwW1RTY$Kln|%eBvFfRoPLt4&KKqw zSwSueD_O>u(H1Is&5k@2cB0m5kvxo;f@v} zb0F%kQqu@N-}pJ@C2tmGBmsoNkoV6dM?FvOGqMxR~-Ii_W9kZPPb5Q354M{os2j z0jC};h>IC`GTsA@KJhqkNHH7~9XNUE5x!JoIR563cYS1Y-+XgZmthT$yR>`7H56_s z%ll9V59socDMMpjbF(M3xOI)6M=EeMAGfgp@4KSxRarwmZGSlQGuYjei>>hQ*#RY* z&7GHDrSYBYI~@x>o_BRUG{1Fwl8dbe-zaWH%;Exv72+_xv8~4;dVuygMt@D83`JB& zVZVA~;xAKmmX+EV$)Sqd!WE%1(cz-EgiON5dc^>bk0qkO$RoWh^R?WGgt2|x+jRId zft1#&Is=B9YE6y6Y@3OzBV;2DZdXot@$ED{W>l0@4bmA7nNBdTYN5 zv$6>Bn^ts%Z%NTF1KRFn&d-^i=DzQUYW1@73 zWe(Kh3$X(G^Bb|dj$htz?br*fD*`F7N{a$`#wgXaHJa@x|KrCaJ&Ob%@2y;`VnJ^R zNRiKwTQm*xT2R4jxE^jQ34M#)tz~@m5l1m7hOjUJ7g|==pGM{^93hKwNMn8siL3%if zc>Zfdv zetE6>JItYKX5JP@80SKp-X)W{@nvqfJzkKzh1d(V1FEhhsBeYA1Qp%rE4SCqz^Z&- zIThD#1OqOW5%5(-wROcB%AVT6T~*S-+k;o$)Oiqgeh#yqP@U5FiJn5k)a2yU3jZQT zsEdDiXHg7Ks36aaR;Y=WE~j^$DzKcI=#ZV{X+|q-cF$t-=d@RJMcsWS=9u>wJ_2a9 zr4_vLnOFxPw_{^Di8?Z$Q8g5+7Mb5!9FtS)KZVa$Wy8ng)MeJ@gNxj)5Hi)z7C=Li zjY4mQ#?zZKw83c3yG807zt-<3;RZWb_Y|xS0>u$QaBEKd9ltsaoY++RzN*haknHbth+sInQ;&Is$C)-ujq-U#j!rW6A6^@L`quV8p7 zz9JarkJ^>cfM&kwo7`$p;|#0O_>b@P@WTqg(FdqxW6J+Ge9Zq2T~y)!3v^LE z23=I~znsW_OBen31ph1L^M58?)at*|MN`k=|9h?X@A>@KdSh>P98864xk`&A4Skut!SU_!&^NC?nHjjT_&>`3RJ@y{VP3aK;}5@WBRmqu zj{LK@M>4Ui>Q5`%0UrLVb$Z`V{*F35ndIPm%ywuj4pPak){^EoG6>sg@&E)+B)?@tS zjL*uS4GBHXKkYYuChu3Z1btXHIq}(pdN^N(W{!iTp_{4Xp_yN%3O2IVOe<~X=?OP0SHE*`F z8peMwYbDjseDWkyOAWwR3jAP^v`tcH3M*iIwi@)JlE#WzR>W8Pp?x{8CcL52Ns9LM z^O%}ES3U4)u7(zXFm0U+95P=y*-a$)-z_XL1N)sBI9Qv}bPa>W@WR|qSb^Rj6;J>*bI_ROsN|yZ zsh~XTc~xe`7>vt>I!KPqO7YDzRR^sJWixme_U=wbT3nOIC5)B>QBp#rtY=~x^E(9l zV6d8eeK0A2jv>v8(6BSS2{&F+bS?F~5^5W@QHq&+Rj*pOFp{Xy0vhJR7ED?io^aB? zWh2h?jk9U~XB8s3ije5D6eJu{%$a<>a*T{tsiNc-*Ake|f|0LPP-JzP8WeE-I$rKN zQiD+Tbs;Y~5@I_#x<o!#-fMnX$0S%|`N|7rUQtO%LAj$o!)CqO$=1tE8opH}3kAV6>+?Js z2rsHDVS@t*qDma(!e&PORvdU^?t73~!9xQ8ZOtBu{nSV964r-zsL1Yv=N9a(j{kvm z`_z=zb9kU!OTCg7KV8``F~)BY(|wgmP%$(fM;fy{xDqo6#fzKrtLrT=L*gAiV0Xcs%wt3Y7;+n^>8`;GLI= zxUw9q^1-Su?UOW~R^9{RJt06#04$Uh*o?pel$x3!JI+ot>z)CrHlm0TIPWsawVIFR zb_u%zTarBoD1ErKSMq@Aizb5%)-R_WNL|i4k@&*uJhoW|;W0*pVv_3@9&c$}MO}s| zjv@+nJdE$(O6lo&sA%F8f*rEXIgw|#e;Wp2n{GrD^@J?YXs^9RhVNWL)hu!Y*I(C{ zc+5>Np9OG9m>njQ`?8OFLO^7Xp0C|eKUDKK0m9ZoGa@2Yyj?nKsaqdqB)TE?uM*OjauOtvktt7->-!-%jHz`qHI6IN+v4kOe zqW8ySW}!@N(#zD#uoT{5#%v}qRUsS1L*_VrVb(6_Lw8i&g-qZ$7a4uaUrMHqw(MKB zSq9_!9rIDm$B(meZ66cu7GMJFd^akys~R*s>!lG3^{)D)m{K;e7QmtG1O(4xRI~cgy%kmzSqK0%W%pS~BTf?d8 zGQW1TjtpuK=i!ITQ`hGkYLr@ogN!T1PI`R#;x=dohlmcPllQDAy~|$*N{;`I_-O1n zP~R_LBNDzHyfJvlesYTcM7g+d-esGeVz*JRJwto8dAlWeIAGo5b@Jb7@U@nQ+}5PNbaP*`J)w^p{0_Sw2V| znQEKuZR4r0$)XL!>IME0G_rN}f6#LOdGo+d#!<2OkfAan&3D~mOdI*`;;c(L1jx>g|9`{k3gv~#v(upi$^_g#9Iq9CUr7_!pD3=0hbrvr z!$apt?fqLZzDK|*fO!1F9jZ)Y^mD`oa9;|nB^V2?dD-twKpnzP^_fBdpCckqp}x1dDy079Y71fb_*|K_V_l(o2y_kT|NmIT@@ zWB+b4g5mS94}4+0AzwF~-MR;KCMHK+z~6J#bX^TWRv7jE$umHEw^eX$uY{?f(9AjZ zu}@iTHA7vxKSwiViOyg$m`uHnN9KbPQpONqfg&-so^j$|OKy79Gi@+Z0`tpZ?euVK zK|>7oeC?HEwE67s7 zN1h^j+m?op0V2UuBxOM`GAeE7EHJT%5rR{V-#v_(C%zfTAT++jLaM!~@euf<ww0X^HNBG7B_(c2ylt#V=4&aYDQZSkbQNHvr1#$ zp;1CQeL07 z{c|M;Qd29`tkF)-f$~+1xh~NxE@h7^P=G zVdnj@)ey+akPG<3)lK$l!^}o0qNcUbtx9VQ7SQVbB&KhhTz{k}o#9*2R3B1^{R)0m z+wix2zC<(9+8u9RSNqTd4o%XKIYuw382-`K{e2;yj<47+fq`XrH`wX^E`$xs;pUeV zX5kQsR}(aK=b`Y%qQpRkEQ%UM^v&B5O$0G>7;|4VE69*!kV0M#K%A&}2Sfk5jfL2HJ=r$EHH5`%Y- z*){RWI?AP@pgZK^-&Wz3KFLsc?1 z?tO3Z)~L9k1m7|Nq6Ok9x`VESvJh;b3^2+V_s)FkiC9J6v8eGxpN@q1wH3oy1KT%@ z3vQf77{at*qMdH*UU!!sPFexH*u>}IN#JdqZ8ujKy8-+;XYNB~(@HZi?aE^l+HKMd z3)?VNe=ra*34sJb|7MSv*jHseEFS#d8)}iUU@#4n-Y# zr|Kz+#8;6L;Ef*8J_%!S0sO`k+a$=r$V|p2i@*Dkt3fjbqfEUGdsgA7YcNxH(DtCBsdeu?Cg2sw)0zAR`bb|#w*TFdGD8kv~IYMGwI zxOLSI9s-mq&%C3o(ePoLk7Fe0x(?p5U?8}}Hm$fGhTMH}Bfz@hTt;qHq4`R`ESdJ? zyMj=_VFlag?|x6c=UrrR5}J)MYMv=$ljhOv#2Z!N|5GM$hC`rTOgDLgc;T79E#3OV zt@JC#*=|38&Ts^xQ*$aXt=n&Kd>#WyVlVy_3|2`E27Qq7uN_~-$he}oM1?2l-9aZ- z$}5-pT?PToT+OK}>Mltg9xAmqCS53c_N_VI@e-t+| zz`WU}^!xp{e8Jw(sWQHrZgT3=`hLdf8@OLSk9?!%u|@YF(DWx$cv^YKQfzIbU)e$E zWsBeN#p08#`L#5pLx`+>4NABfN~BVsO*fNwd+gTpsv{sLKjCLKy9AO2-o?xve$bXp ze$mGtz=aWYv%8YnlM3ZeN7tV`urx@uU8w1G43>sOjBsbL(ZI;FY)l+!zBAxbI&e_aQ{oJDbYPfHDQ}8hrAR;epght~HrW&i8-y|}8(jSCFOp#D zh0a``Ai&>4$7+iFnZNy-OcgY7c>WxjlO~QbqRl6p7=vp`!N_0I3@c1&vXZ{#^Th3=CMQr}G)-H%hb+2KqRWu4rxsF3Gk0F~7=+onyW11h z0DvuQT4L=fS?8KA`(2ZW&}=Qmub^d`T3MB+g;=;}bW;to%rWDG_l=T9E^9gHKPl54 zv))j}Vpe-E*lrK$;fnbrS2x~euCIs-=w%kukay^s=_gxwiX6P$;(fIAz4T>Rc(ID4 zzI1SIS|LQ-RS>55*g6Cv`~C);eMJu6pQI}TvI*rufSRfV_+pfAI+voO5NA5dK?K%K z^}j8^E$!yQp*!qg$)OjZ3%6(8Hs}ozWpP&&8Z>4V;xxDxJoiHgrqf576L{XZh#Bm6 zW?oN+snnXPZmPhbH3MZ_Bb5#4Px7(l<*0ZNds+5 zn7^@@Vy%$D8|8+|&)`mhdEnDi)vX_}J&PTN<7qs72+sbOS{#Us;qp0>^xPM2FGI`H zEa^iX>Cj8q-za))`PE({qj<>PH_fuvVGHLz(rTW$mDfv$1|^<(tS4aXnk7TM`~wRa ztn*1Ud&C?zjx>v3yf|Tpzna4t^ez*_Mq%X^)Gq5H|Zij4$fRzi-4zcEApVvAA zFqXFMH6cWIlr*Ti!g!8 z_<3{C66Ot0r7NQOA7wwQL$?}|uWgO`p!MhlE11gq^f0V@2tLDXx{T#!4Qn8as9xFP ztxfQHhl`9IfT|NL+jVM6DxhZoGQ&t!_AHBax34rgbHtqf7Q0{q_?M;^V&5!D)XyLt zqkKH$Y+|Zv2tjF73Dc-Pbj7{9tGy2=CKDHBdzztNy&N8FvALYZD)Xqqa@#wEK(j4! z{jSR+rv|^LaHk2^$U-axCDJWjl;@X`THZi@eIYTH06PPFooo9`-*VYU66hE$g5)+N z$TX7`N3*MntqZYHnEQCk$`bB}nx?0Kt)1ZzNMS(|_$DxPUw3?&;n&jAT*|FWX>*f4 z&|YC4cJ18!5|AjdDDMIN&bNOhmn%r5L^8}L;4P8iy(j=Tpm<$k!F5vTevNZQ$y4h| z$<}T1kC*2(@cX5K$eME6XcUC_oWBL?H!^m3sYXH+ta}2+=uXKT*v&m~n~8}m>V|*T zJ7ub|-Q2Fi0nUYb-U6~RY(pu!Le_pR)d>GZK3F#yI)e}eSQPAf^~7U0C)ubN6Cj-! zlm`0aXtdBOE#mf;mecip+{!XXD$5CsjohUZ?HQB76Vk(vv$VcDY`nar2*0tq^R)ZO z$rH*0>Vb2#(g!sY#M<_7=QOpnq|dy~Z!yE#g3M^x(raAGT2H5$#E4sA$-%y=^;xG# zVMnn9&G-<^mHmH8r~<)UYzC9|b&mQ;uq*^8$cKxE#QXQDcbkaCng?bCCH7jXkv+~Ba2=3FZt+xJ1Av~vXcyZNod!thdt9XD&F&vE zqYT1;tDj?VKvbRaYCZB3BsQk;9I)Z&4ejom-Eo9Zd;%kOy~_LvBJuFBy>A80=>F8CprOe>SAl)gnko`ee+hP`~N z%)fx$b_-4N*VC2>t82QH@jR`I|M&I>EMHRB8M;7~D6%(sGX5UB?V+Vmtsz*1V^sG( zC|M8!C3yMvJE?sujL|0h_A>3C&d)sB{+=QRF=dD$O7!so-enbgY~l_rRwvf>u{AdA zdFhMTtN#61CSz_>D=oN0X52qxd3E$@(UCo`i&8v$j*8hUBD|zxix^2FkKQXXI=2a} zTqmu9jYlx4+|Wav{&8IFju6nhMy~bdhf>5s4!A%|uaZlGg?4ZDz?_(3&+Yu z8bSwC=2z#gEv;GqCju_9sme8ze;+lht*zV>PJdn(D*J4_>hPwWO)|@yG{YCk>Oj$dB#4T9| zX=>m~uyY4yKqUcFP29nqS2A$AL*Tpohry1gg|7jO=%0yA_`2o;+({kRc-}iJV(OF) zMmwSB{~ftUYT$4mtdU_7TV;3igg&5&Kc<5cFXJSce*kkYfpwHjL83+N60^qD2W=&F{LbpXV)qTl*fe6A-KPMY_ zd%Xh2(_FnCpf5b$qNGHX8P-J2s~&$V0P7m2*hXS&ag8_2^WS3`Yru57u8w}Fu6}5d zNr9@0i}Q<5&$DMMA;0hn$~jUg55P=S{e^%Cr^1I9RR46pcln>?Bkw#F-cOL55zYqm zc*xBJQf;3AtOLppPz?0bX{Y-dU{^bG483cw^ArX?yLt`5b=%;#NORceGUvdIsYcmP zBOqEx1MW1MeSWA?$*X`SA@5+sD0POHu(!Zpy$no{(AtD(OE?*e;_iP>_(s!3-XCjL z!#A!?NAmz%88xJX7y0s--no;cukTW?#>TRjRk`yxYVL!)u=LNj?JnJERhUhFRcl?$ z0rt#b?z7$TfKK0iKz&D0Wvuwpf>7PiNvmK>IB`IH|6n{6Iq#nu-jDd=v(aAe;NUWn zHs<~ZQ11S|`A@o?RHxM?3EYPLCbZCrm1Pe8H?}~fY=sldSS^4g!2}zj@3Cvy1Kwvx z*eRHZ_G}($g@Aj`@LN1(4BVu{#Z2GcBF(BN63>c)@3L`wAYz~SI@M1>>x|d9x zl&)gk<#7`HxcGt)NN&v5LcbwmSu9-}|2QH4EKH{+Q2(nGh`}?idc+8D#c7)RtuAk> z@7oz$4LZ_(m*H<)c#?xNBCu=|Y>XV<*r<869jGiZT#R$)LZ4f-feCdO zl|o|G(O`NEp=8by_a`ZP8)0CE|B~n*`)?X?@v%P&>@WVeJR*e@1N%Pvh_RdGvC>w@1_R!_aMq99M&EccVB>WT5p2S+U9tIv+i@ z^d?c@6u$Kcw&jZ_q!u?l+c`TPrHr_;sh^U%H&ud=8ZV85G~Mtz<}5B;qaM9!hwc3V z($O09zIOrZ_3wgn_9(&oh}WB5FwNzOB!InkOE?L!L=&ZgJJYjSZC{*%Y9KYs>OcQH zN!m494*tajKjOQ1>w40yEq)tV7=!`N&F1uKtatZG z#%_biPPDMThLSDiT`McyYib?0nuE<8$YlDU*R2T$$fKRUEzN;Pb$3ckl?v8FmQvlt zJTup(UL|7RE?Gwje?VxMk}q+so376ai@txz|C4!%{>HljTh zqX^9$Tjq2woYi7Uqssen>k`Wsl8pBQ@R%yRCBnOex9Mh^xnAZADUZ$X4yAqOotTCv zYPgN6fon2>+&#ZT+`es2luMX>LdAF#QV$Er)rY_JGNrcVg-|yy2pXxHx$p)nHnXed zlqPED%kA+xTU;ILzcyq%#+Tk|={lK{$z*Eb_D1$0E4jmC_=yE;y6k!ZxZi$v_wS-n z!1aprlBjKDt>4QSpfphhtTfS2d)##6sv&pLI750q@hD(~(?E4or&v11=+YF|w&%yu z@0f|nwEXq#OnZ8#r@(NM-)3k+(Y2t9vn2{c8?UZtzK)|X4ZomBw~)0w3S~XMW;LD> zz+#;R(<%yzVBLi5CFYX#5LHmdZB%Ykn`vIsxz$_`N4q`k=8Y;NL+yuP>9$>CPLceQ zn)}ikyb!)&l)Nv-zzSXp7f0?!XGzte1)Vb|?{_=QlGG^upQbBvT3 zm=OWtY#0fu;akSSU|Jqf;*p2@mh@n!c_*i)`HS5ED$*1V<}23bn1ift4q!i zH!g8-R^;vWKH#Q}0|8fTRW4&nwn}0iWfmmgaguN>vcJ&wISO&3^%2tn7E4pLc@tpu zJS?5MyZu5{>lB5lSI8i4d^LtNjT~uX~Y~qd1s#`CT=9fzop|?ja#>z7m?LxMo7Q(kZ-`5U*QvHnZCwn-UDl$Yv3 zzkUda03xHi<$s&2dW7Bz}U*3!fyyY$UlAT1AjmNn9d1QiJz@BC}C;{tfm8UKsN zF^VvUfs~A03v&OUhdy;%fbl`KH86w1)Moo5t6UGRBR}`aU9rdH=I|Q>%os~>1^ zbLDDoW?c{2FD>h2_-)AWtxLZ2w^!DLckJ&a#1V(){UcnbMZ50<$ipwu4-uJ+OZUpB zlAION6u_bRddpV!`3@*~*6Uymc_#Z~UDc&PS|*e?V%lrftweo)tn*GQdtLM*v--g1 zmt7aRRi5-#c56L7Tcze^t<_gN3w$-pJMyibcYQX@nM2#sK6~P#Wo`sr)V6*_;9CzV zj)PolW)E``-l$CYZt-S#<> zarFQr#{V!Crc$@rfg>OeZ4f1PwGl_%XIzC@ypEP|8>*-Q_&B5Q)?iz#W5q3JGh{t{ z){oDOT21YprkvGgtirf_oBbv<&Uzl}%w;bguLWDzaR4VB6H(jsfr}djvhynAANf=Y zPk2s1Sjm&EiI$Vs>-O80;h~iD!;=rOwR>BP=I|Y#{&2F@r)#32SAJ={1V8xS{hXp#+`iu&-y^tgxLV+AaKgBW?8qwm`H=UsVNW zk^6-tYqG{M?>Cv-*==GwEnxykTik7BshO;53#+)2aRW6njrnf+(CWOA(O;Wx6R%S40TXzc0>G-ZF{m67F za!#V%@3vqFH^{cxP6*`i5HZ-1U)EFxNl&YjLLj~TYW&}!eGH1C#CvQbECK8#u=srj zmCW&^c^$DhJgmvi5cZ^8Os+SD8wrto%3bA)!L!T-a@;r}7BP`jhK>VInct=!T1 z%40ub`RdP8{;9|NmM5^Id^Aj>t4hsB3DzClsd|WfS?@k3SAUqur76eQ6x6AjLe|f1 zLb}SunX?50SDLrq_mQ6>4B&ymQz-rZ4~)1Y`m5Vv>rZHP@ejZ%v!c5A@P@3bU+S?w ze4>WFj|N-EFThdD%&RnydjHF=R(skn_8?;UAl=G$>r(=D$DJGvjv|-i&1Y_swW>W) z%OuUq&fp}7C#=<0!Y55IhBb*rkq}+U;~W%2>i3hcA<-NpQ+e=NkOsOAaikK zXurJapU){Yy35{|-$VQms@h=t1M^07XEWTnrz=8yKfq3b4P_O5zzS$i->->-w@rOb zUh`Bm{gVU0X4)x##o90jKbOmdDYoMWQ*LaI+wFKV++EZo`Jd;5O*9ZKrGcZ<1IBli zE8nnOF3q3I9^MsmHkzA~D4r#cG8>74ha7!PNj$TF z^{uF%_`h?88S&WHK7t5aC>QLrgiSs6@6DGb7T>(z(Uvia>-Epwi+@L%C39)KqH*gT zXy6%ws2N1nsO#df=?=RzMMx5!ZUEE4@05jT@A%r68E&3?a(?x9bKbliQQEozy0rdy zsoXSPPr%WEqML-;aH&-2w;W7UWTRckE8S;y_AXT4#z=+iK3=_wfQHp5FV8Hwc$wWB z9$}0Nq0B&v&Dsh;z&sZ-s*FxC0XF~fj3V(56+*(}nE(r2`kbc&#&o-)y%3UH)4~U@ z*p1JwJkC45Xw95E5r?%%>U3M^UFjm40u~$@4)m3)ZY%@EDW9veL48lIe*zSTw+m|} z>fd4+WdgdQ!N@sM?x|raYy8#x%hr_BvP}oQpRiGv5yq!+Br^2pXKYa~15Q8+H3B!Z zUc15^HlOZq1}HpM`pg_+I|lQ)-*H zzT9=v(1){9F>%5@UGZ2B#{X4x+l1>q|FyDgwW~aKI{ceV4!q5h~jkB0) z`fZjCMBkT7aWEa$&=w}Z3s?48v;7S{CNkZ-S0BDNM~cAe!^t}mfIImD_(p(H{}i3Z zgbgjyR4pd<%$@580$QjIpYZ?6?updp8*Wv%%`+vG0l=aQFSw~^I338_R=1|Km3 zbH9X%p+rSAyR8LWAfckuwh5QJA0YxX)0mu};C?TIzoLDzz*km#b4cl_H^$!KEeu!^ z%_y{gpg972hOJ4EkkaAzEgU;i1O-aQJCXFK)xga7Br)>oPFpBHoFO>9!kHB+pi04T ztFVEQV=%>Kkk$bGfno$^I=%b^K?)tFC@AsA)TpE$Sai4erEO}%zrU{RU1^2}hO()v zvo|s{q`5^;N<%|ZLGT4fKKLL#ra=+d6vdN#mzXtu39WIgEh_5D1U1nT)A-yIJCgw#&kUh-6v(coCd@~ zAWl(3&LA@?6bSQ#&KIXQL9G~8w0{$r=fpKbvapCNK`{9(k;CIWm;%LtonnUHJ#i2X z>*u}?6P)UWCi&m|eL=>hW&7T;4>3ORNFfB$7hEk{2QjD8?MMJlgi%}LZ!SX^C{aci`eR^QwucplX2#YXg)npNC(1D=4XtlgDl$Vboe3dnp8?l4SF&c- zHNjU7y5kprX}!|*BLfDdwK|6yAD6^H0wboHY5cEa=%+Wz3_sZGjvl>0VW-L?smGi#kDEM#}v@El^ zgiR0#MxQo)uWNth7dpQ4#z_i&vu?K%W=1aA$7qc-Ss|^ke|*6HZkHNk2w3w(S$|YN z1P1;*EzBaQb7%6rUhrHI*7wY_`z=+5pB4FusvnzH&v~o2AJp)lE#m-`{i4n`y$5xJ zg9pBRV{eXirO>wMk7KM|aD0A}U~Z`VRf9gUd83W#^8MAZlDw6iBli)gu$vWk_3v!W z#A}Jg_)`b#RV@>q1B=~lWAAr1l3{xR<2GX=v5Xqh(d=&$es?_KO35Cp#QLn25lYgT zPMCt9(H-T_U9vUEw1PW*a}w6zXvB-D7Cbc>bHDe$&Y1}plQp21qWySkDe`VxvIV3W}6FM zyhpn<_mqifP`_Lp0CQ{(ZbQ}qIj{hzt}JS zVdCVTNGNB>(RLgelInUf8Yxw5$#3%x{hNkRGnobVE+eWCE3<@T=)sZYLn$`!5)ann zT^;VoqH=?8HIsxkt=P-x>Rq?K<%_q2*H8Bb+;v_BtLYwbFcgzkwKo@4Cr*28cjCg0 z;EM0iXWyatMbx?Es9Y_Yhv>ty z>S_1jP6$NH@xRA~UR5RU_mRuk@#9-V>e3gTE$W9BO@nPN5#s0u6}8HxtkEVX1&9Qf zJydvj^oK^l$c&xZs?7@_S(K?(G8}Q9i;X zc}UH5$n}rs6prqJQf#r`c+rIU?|j-4&1~qMNt*Z)&1WdT!pgVB(mAB^{*CBTL70dh zqjB!0U$DstEra7d$28a5T2LH-MJmiMeLkLH)a!?IZGy~>aO#GsbJg*Nyu~9Z$6J=ie5)FP3OOujkFOR9!K<35cs}XZngOl2NeT963D3 zrzS8qVh-sjzc|=H?&rG9?s0A=lIr&@G6ZW34|SkEfRCgzykaj#>M#@%I+jvs*VT5jE-BTEXc5sVo0S^X5n4@g4=$?9Ob% zhpitXRwYGai4ph1!Br$9U1Q+b#{t=Ur^IS0ALPqriSkCVtcF2C7Q`jGoG)BO~F!wV$HR_|RhqEID z`L!gGQN$G=m3?17%|5X50sIWHB94N}fVF(C{|1)RwVwOpJz_7YpFMEywtn8VK8>7- zb&1@>{JZs|x5#Gtaq8Xz1o#+H^OnH(;x*OZ-J2^$L6n~C(s$l=!kWTY5RfvuN}(BX z!P0+_{}0CAJDlw{{QJMVXqDyo5V%DnNQl(~%_!J36)m|Z#8h5L9Q6sgfO~Oa1 z5wU6$qgJRrV?=3<*yH!PzrXME_w)S0A9CbKj^uJ(=XIX%_v`(U0q}H{Y-u4mR_P`p z=Cu$#CN199!m^bmMxUI51-SkH7LrbI)<<{q1(F}G^~1&jn@CniU&~9H_Afw-nm}xN zQu&GVCU9Y%b|jJT@I-X*omq&n)<&QW(|-@!i%RMZ`P1MD9g{0u$l{k?aLMLcd$-`d zCp+RrkP1~R*XjKECqJ`9*n62O+qR?ZL@RU$nK5p6R92SlBUjS)gd>VM?wGH?GTmXS zS!MWj?>8v@3Sy0q99uv?D>$Ufng4Me?k~)Sp1vDQiClvJ#&S5eD}IxrMb>^&)UDDj zaW+1Q?jD;6t_y8?+^-IdzjTL8d{45%5(lovqK6kP8LDq$-8tsf0BPeczu^7-VMN_j zr<8)x#N`^FvrsVU`|<5gCWm7FbzhW07uj$9rw0A0I{2n$v_LKV&oGiH5SLV01BDgF zF}(X&n?g7c{^O($rWOjuZdY3Wd{Gk9J7=zaTzKP~Fp`70!hYLBC>UN3;~k--A`3hlZy%hvG z91Uz;K^olvLVm{?m(FTXa01j$)*Pik*bX(aDCI3jZkfIQO9V#*D>{bQkPEc zKJlCgUwtz$+`FmRt8f))2o;(tXrNtjX02wF#mH5&Kzk0szMcJ>ngnI1?xgZ4r4WRls1PwFNS(EtdYgRuiueY^bM}E%SkkYZlku zvD@?O$+llWYJ1nr5-sneh9th1SUx>^^;GQMD~doCBG1U!$saarWqde{3WLqtcY8i+e7hrYLb-(CU~k?4 zG?O2KmS>JG&E5AvOnb+mby=10!34H0OwD5x0W^ul*ujQlj&|*e^dCJj0`~7~S2$zo z7amI?^DmwuDZ2%(MyENrq&$%$aY!ZAia;_glFbi1ZP<4^SQpFsw*T>Cb~-F#ovTHd z_DBq)5};@FRW4tR9wcw9aw z^;{VsS&LG_*LI*Nlj^3Ub1Ia-s;PWH#PY9tjqU@9O(pWIkkzdgXdvM2Fqb715URx_ z-B*Bf?r1h`ZQ>kXz^a2&b*n1^v%PtK9oA`w^U792BH_Xj5#V;Z9hGMIV7#9;&{U?P z9t0QImOg^lrIDn;MEusLkzVMqV`Q_swj}9>{-Ah^pz(3#EsYyb*3ng^2SPsW_4St~ zJt`C1;<*KK4BaqLXW2YsvcFP6Hm^C$p2YvX!2`jsn_GUPgm2 zn@dX9v7X-2ZWX^ec@<3ZvY#xe;}THreI)GzZ9vrqt)<8I8BW{QA~fnjuL)UWQb?niL$+X-$mZ%oGkSF$Bh2^s|qz?-5$$01KS1eecL+R}Hi z)4S~vyhq-*62xjFOE3OxOyv|_)Xv|hHGgmV6M9+i-o2Kr0pXs5;eU0b5j?>J(5FM|@}MJjhB7KSdr-w3={*z-B@ zd4<{bNndI-gm0cH}-kj!<$O1Q7iVZD0I7NBZ%BYNb8hH7+7#!OB{Jf z9u@>0~(2|nW_Y{PmtTF>Ndn z#r^*(LUn@Dng?v>TpQ!mf9vTJXYK#4sl4J#|GxqMPO8)BeaC~XMJwla#XgYgQ{NWf z5xP|tb7{x)Ca6(1ehzB-5COBBY9gm72NkBMS^-*R0F#ouFtW)VYre+2+x$t zhG_>FouBfdQRGQxZHq7~giQxPflTd>KU>AoUKyt;^dk==(Ymp?bLYb|Qo7yuXw}zt zxOyF2NglKmf!hmf27}4n{Y)n}bp6{{KXf80 z*Un;LO`S8?4QN+t3#iBSynFp>Vt!2Q*I4}Z{7}_-2Xw3FyR+c%SXSmXn=BWYY5+jz zbksY>~!yX9p zu$(r}uf`kvgumqlm92xX%E&MVFHqJbSbs-HC?!Gd@$hOTF){7Y1hmwG+Z}8xIyrVG zy7!=N2xpt@Zut9wBMMO|(M3%shUAqz-#sFi$YYJ~HVd=5YQJq-IcOH6_k$e}%A zhb1&)6?ud3?Ic1|8rWvo$#kfC<9LkR1$P`g%5ur-y*+IDF^|~;^9!}=Qd=diqOJpx zSgGw3ImfT*JNI=x2~3A)niKxVY`XGvZ{fI)bZobZbZI>4gGLVjySM#w=|o=}z@z2jK?k220rt5;g*y-cEbJhF-JRN(PPo zu-8ae`h}z;wH`Cufc?8ftKIS5N*lW9k+v*9RS0@j1x1HQl-o;IO3`SIf*_l_Xp0Hz z2vc@VDU`1Jb!JoMsOT^%ZGl*VsD4C9uAudP_qhV9iEr>ncP_Acpw?0mJvH18UGnh^ zR&()OH>|{4gf0Fxv7!O|-tRrZ6CQZs!=h=FoT{3c9uj#0NYszIF44PgyLyMEK3z8* z`CP6}B&X*qnNG}&LUf;E{EP?^^B48(U{45zpIauzuuL_&Y-#q=NO)D@$W@%v(<;WF3k${ttku{b?r1 zm9zCKBOTewOB8#X=jXR2=KnXOiUZji>8}S}5>R*Kzb~t#S5)@Q)fO|SgFg;xD}Xu# zY-#cLbB!!}gQJ=5j6wLsqP_P|+;iv-06FxRo$&(g?+O{9`@xEorBEyBZM1(Vr@V#v zw7P+IdTkKyvl>8*YY+_$bI0)inoj?9+aTxD#`QUDaT+-_Y4_EqtvN)IS92o%a1bsx z^{>JQF}Gc)qr^B*`-gFmc>VtoIP!VdwGO&Iu$x%@#*x2s{{2~5j?_|MMSmFM!*$Z@ zwT(5BU`OKJUZgh;oc8v$X9AGaOzFSZxIjhI>L#uFY?vR~m1)?WHVG>!HCIu2ba8y| zB|ZbzAeCTYqY=H&(4~}!^IT&^xRaom$*Ni60ar#JClL<0L(e{HIqe60oR@f~U9FY=K2y9t zV=pzd@CR|EgP=~&JdY{M;NPn7;Wvc9ORHZ%lS4fz^is!$Rria`uE4xa)sFcQSL==B zF9e)NJoP{%uQ}oDqt&&y+d;LG@D3^9xHA*PK4aHZf1xkoZ6)kz%9I#Vi~FRrltPRa zM`!CVtt*8`rt?Yuyc+u>etq!gbOETL9Wv<8b%?+>CA#D7X@Ckr34s z`}X3a4&})`0Y;KwY5~q zmvgxv2@B&R7mbmGeILo1thJHom7BJu%gb~|i^f`H?15l4UBJJdH9;`=zfvm43JUs``Lg=)hZ+CSpND zfa+D6NWB5z3&lJaeF+7)hia(vg@s=qR144o%wSosSuvs_=r$M#^By^XOxvle1hH$NdnZQFunolP{V5EZzt4D#6&+v<)YkYzsdO|5rcs)A_vR*(44DBg-Gi!)tKiF0SR)O*ZQPX$iX^+ zP^Y|~gw@S^4lYD4&~^UY_E)v}RIYV6^z*NpE0qqkM^M9HGRJn)=8|~(zQCv;6x^t%?C?es?p;+ zV;2ttH)&3f5JV;Ymfs7JoC5cW`_6Ckj*U*|@s%x{$-D7Mx((5PfQJ+7W5K6yO-uRW ztLjyN-S+>6@1d*fCxDy!Y%B z$>g|D(h;2G?DdI%h@^`H*2x++^R2&e(s;4x-n1JC#F6*3j^z0i@puraJlO zL?$3Bc6`$;*Iv}m(s@77;$>u;g51y$Phn3|b_px(r^EjCgY19zA_! zS|&ZgnJ|`Ww-XHe^?>iE6n4@~Tvqs2{mkU%g`VtlfCHcMOUfD^?O^_8s$swFPkZ7E z8uzG)u+q-KFJ`K*^@g$*HN+k;d5b${zIn7tykpSsX)_ST)VjKKBqVchQxafr-wpoF z-bsDEVeCN2s?!6VkF-|0D(m({Lt(4k*EY|XB?{(N2I8_tZs;16>ytD)VI}iSWqK6f zy6QJ_7xT7_KR-04BH7I)9Z@7%{$9(%sc3E zWGdz#y$gU-IZFB*-S6BgoM|LUMu5`d#?tiag48FOib(G_n{BrvV8;hI30e`}<<{C( z{o*G5+JRdc6>ij9sU*}3~|~kB)a4?I{r_6f5YY3DcRU#nA47CyybC#&Lzqf z2BJqa!wAnp=!@L4^pIp_PH47I_3eSnp_yjv?`Y+LpNEPE_(x|c^p`yspDGPtacu># zaTCsNe#C{ex2AE#yw+mo$+JtZo1&NeK&76wvyLU3j6|3lQYHnoXM}!=3^CQK5ckfJERq6o`L5P^ z;Ojp_@H{Z}ktu=lDW2znd#;_?C;ezi?QChgXYbIMkR~DIXd!GeSL?Ecs2P&lriFNp zjsjXRhdPL$1v>Nh=3u&oEEHMyP!qVr|I)o@9R}XLNZYW|bB_Fgm@3n;VCah};r zXYX%WM`@T$IYiNU#UgI?gulRFzMaugKN}UJ!w5#vK_~c6gGM<$px(B2W9gZAr+pW@ zu?Y2tDZ&2xSFo1^KL-q3_Yg6qa}D~)otGI3e6hWjm!bfL*i&XSI&+JJld#s4RjE|Kv98~;?jMQa1IWPD5 zur@}V9HfpRRzL9!+tIqw%N>I`$zPF;#htBAd{ayyvLr`7iGE_RPzncp{zmLAP;eq! zJ1r8{8hanDzCWk^2eChII93|F4U_+bTk@8}vqh~gXaq1Y0;RUGIAS60VXAEz6!#t> z67A%bp3kRqN76Qecq3lY*h_H>(%i#Fa*KG@s(D>+=4Pf|Sm6HcRN(e4-MD9iREV?h zXO29o@}Mds{nm9N79UhYf*f1joRv2-{hVwv|14-8Oeh87?*0CBB`$p)y4r4p)9Jt0kbVP7&jRoF;ADbW z(kK5J0)_~fR-51rHKRdhQ>2U=sTh&u8(gpGt!7{(gyeD$`AxI4OP;akB}+nT@qrAk z$>-+Vb3{S`NNgm@SKI#-cQ+zD!YhY2Z}r0qa=|n!mCL*Ie9_SFLMg|tz@x+o%Fy+r-0j*b{^y^g7Trg2i(DQyMjQ;Efp+2&mt01xg3o1Um-?0 z=@~bBQ~w2_@#jkBtx$_}r;Ul1zj$n6^P3Zz#6a41PMQyVH5TsTUgzzR1Lz~1RqA{lo; z$sEhl1N+!l>D;KVJKjm)2?zp&XSoB>B0_lM))z7f$_dv5N;q3E?BhW4BU=guL)c_7 z07#@34B|Q;fUJH23`F5VtorUXj0Jq`Dkw#yEzBOh@q=nHwxP^*Baq0xJL~@)Rya6I zJbEr=J%=5j(Xba+&!#bzCTuoK_HvD_6(TyH>tVkRIsYk=GRiI&y(~jt-gCD>cE`?@ zykQy&Hp00eyB6IV%q}Vl^hKeW(ss-{^#gG-#C+)b>YPfu6||#{c!h)fAURQ0M%~8&S@(6MYcyMHbOoQWv6IMZ5PjUp7R{V|&1OA|Mk&`_waPu9CKw?<;aIiiyZFWuxN~Eps z_j&-9!*oZUFvZ>~5`!%^0dTlQG0-o8Ihn9(moxPW>EtD+6$`svN#d5b^DL~(~OaL?npaE0~3E^8`qZ8IBkNKUE5g0;jOt3{l~gB1)!ir}_8^nu0m#?0N!4I>Ai!e6k!NU z`kHe7y!V5OgcCq{Ld@klmd^*O1M)YJ2mYQ{bjobAIH@oRSof3dc7z`{Y{N1c7ZAyHw z&u?O|i(tNtAHeEs_uGXl(rL~@JO?LVL@3S;+`d6`0cr`ev|&W!`Q7SGsVNF&SZx1g zV`Qk9FQjx%SiV?0&$~h!rh~Ma*fONc1C3I4?f{#cBUXm(%l0p4MrsJhthG)y}~wQ*{uC{<;zuS12>(kpO9aO)Q!E&sg-=a-RRmi&N)&F0WN}z6So6S zWr1^5gtM*{g}jcZSCAtRzmrOKEpqZDRB>h_B)zxuPNbwTKhgIy8drLNyx*I9Jut!h zU^)q( z@{v3|i`oaW^k@H>v&T0kWC>GEv8GiIoi3cL6b;4vy1HNPYjbo;ujvugu-CVwOn?8e zd@|{=RHTL|lX6ss<*R3DSukIPXDQUYm*tx}gx0Af{UJ;F&|m>LD`5HCv|A(=%HJ~3 z3|foG`|MSp;^2WR3o#$wHrc%RyR~`U}*Vv zh|edfIIGf2p-M%Ap9Q;ZP~op6IKGXtMvAOlWd>Gkx#_c|*?55{kf?g#-8+Qgw3Kq6 zNc((h!QgY)bq`;$t+JhPloNEBXYS%Goyr|y{UTZ#=@nN|4yiYsDD{2@pxCZ=mZNQM`WDqWwh`RlLJvtvLL{ zf;3lpN{mvxNlIH85AZU-p)XN+d|CJ79)Amm!|nVHyRR0rim&~6BsZ@;qm`}`BEbj4 zF$q-P_gtqdz;z%u126kjE>pxLWegzy*So82eKl%)wf_k+jbmX`Q=(oX(^g_?)R$iq z2lKses10i{9NuQT&kY@{7R$DQYW(%2&gbif!wU!9sh!?e&m{PLK`>FUqGcEDTPGA= z*zQ5DuI%gJ+{ozz65x$#=Ary*#v|F@QnCbTpcS)lLF&f2t1`S=W@9pz# z8yOyuXnpm@IJ3M&U>~{3=$+C}i?^TEAj)!EASyk0YU(|hXaE$O%5Q_9nD|b3#JT54 zyS`-7)l2yxcFGrRSbw>6nfkDGWXlWz_jl!)%i)-TMYCRkA{sxn3=bE}$7VT07u{J( zg#?C?KI@`~(QUV&VVg8fxA+j-h{Y3c@ZOx_HyFKv-4I5)lO%~?Vh3eE{c-egwW&f? zup+5}Fykxl`4TP9Bur*y?=N7k4D+X(J*9VE4?CRY4wI&A`Y z_1Z(cNfCnUt{O6v^PYO%A^Fb2RMLVl%!a7nH+1prfx zL?A2PycuPuU_`F$d+AFNfWIEH(LBG=YMsVVhbOunKB%@|!w~EtQvl;{%J(5>uSL5U zis$YG;jecTt7oCkq8PRFqs}-zrhHs;sJm>#NhX!n;0HSbQ>L`(sOU0F30ZglSk_s; zP*sEdvqscHGHC)-EP~{sSb$p>ue);u2j_+`sTIslk|DTSQ^J5$GkQ1YD&RaxQr6vY z%1vry5{R1& zCOFTc@zz|`OSh270$k#MJW)Zb8<)Ea zLNzlIi5L>U-c<*)?B=PA$56$8OB{fJmBYQ+PJMqji}A8Ifeibj$?W9-xy5=nsbQOOkLjU@CW~rmhFo(&Rp|!wiW;N z49UcnEkS6i5J$jWb7Qn+b2!14jTw#n+0u2@q=Q>6r`#PSVQ*#9PC8R_*Ytq5NJPbA zAi*c$;4`iy*9T3(iiZLZbB6?Y>x}@X-#8;RkDWHNcZdPYcI`;#zl-GrvmJBNok$4t zrhj<(+RHp^(E^-5StI!}o1+ptBJ4C5w<%zfvB;yWq{7Ab#zUEAEiSBQe+JvC%Tp2o z+Yc&n>7C#IcVpqCZ{R>MG$L=!Wr_0Hg_ayLt_j$iTCc8_3}<{1yYO*epcMu`z)l5f7zk$5 z?s2}{X7$)fDd4DER;e7I5tsGa`N@5n!kKj{V1$f>Eo8Xz{1rxXdnKlvIT3pHtYA`l zOoVL<(97P@Fz--Rq5O2O*eUL0ycY17ew03?FJ8&_6~O4-u)H?5*O|e^>Q#HtP*xc~ z70uy%e|fEC!z}YAg)>C0P|o)DR(UNaOr#d(LGt-7%y9A6pYhq-dyn0(OemYnr{Y=_ z+L9}&k(rmg0+y$If5ki>Kw&xUk?VJ?v<=ujBWsjATonI45Z?M19L~Q1<-y5ND;X~A z7uWjW;ZDto6RC^GKQ~sH6)v8xEEJankg@*Rxc{CrB|m|c`jPhU?uJ9n0hO1;u`NAJ z;B2JzDmWnZ1G9=DTL%2b>r^Kr?SqIIkKeuyURJmHa0)o1WsvwAsU;+>TQbD-< zT9wrHZY4XoO>@lI2={W2@g&g#)ocwf&z=lAo%Z^%X9P-?x0>J$F>55*n?u z>Lf7nj;TofhDi=A@yqc=gH2WUJ+F z$HI*j1X{%XRN3&=u%{c@%(hxqYy|>%<-TRpUV9}GuY#;zAo2lR)gPE4$NIy)YQn)& z>~3EBkG?$Oq}zJ$WiKvpbMd}|hC~YF_GZr=^pp$WF;9xe`%N1ux06nl%p=&QD1%A10loI81$)8JOc(6>YKj zwRiP6Gmh#I&TJl0J5}!xEcP`U_h_VuE|d{A5hlSpBjEo5LWU8#XNciAkPQi61>f{H zVru*HHp)iaDtkyv*UsG~k@6q%I0@)kRTD^1q8^}FJ#ZuiH7keKG74~(Vn^@7tiDaJ z3#38igXptgbA-1MxXRk?f%N11$kEonC4}U7oF|I@3Rqsh=}I2hJ6Quo5sKBx0s7## zhRr{?RftJbQ9sa^2(nQ;TO^JOYbP-X#yNrII22Fh$3ooV2wqmeWf<5GhH$+Z>ZXv) zy{eOBNye(L;h>nqeJ&OM`L18_$v@h%dtBQ;*&copbTV2yG zh4K=awy>PhEUANnH!>YWhYZ9aDpX88Ku}_aRT^0_=})@jpAIoSOV!?A5oktcZS2NTI z;~i9?{3+GVOTlY6(e%9jLV;PO2{J{+;%=Yug@Op&SGqHM7RHRh+dr?A?P?`es(G-% z5)VGJbVz&&F&k_)(mVV-NPVTq*)%AtomH_;yy=>I#}d*J?!hTM{VoRU;mYE776DN@^7YK$|H(FWq^~?t{fUqj66)K4tE`S2Dz%!wUMVq+G0b{x zbU>H_NGk|}2u0eD_hGi6g&#SbQAwB5KHqk+99R)FcQW2NHJo<99Q6OyJ~~KXCAyic z=)PwM!*!PmyltKF#H6s_QqFjvAE8aUk?bs049Lkg#uSk~-JGr!tH0?oC71q39sYm) zRpwRRmO4^16{^t4zE#AQ5wBwOh1yb`(XsudfzyV5p!7jqWS!2-Qmusi(Hg!jKSb*; zZ+L*;s+{Tm*ChK84~326>Kg$}>Q50@qUGck=uOC~6k>(EYvPYx1#nR|WlVN{A`v%G z-JP!Z`p~Cg*7JD9$G)`lz6oIf*J(-~{&{+b7xYIElC>L3A?#bFR*Yo5gqtMzBUcI7 z@GH`n=3gC*1=Dl2jN{-H%~c=wUTGnO)=?x#E8@IQL|q6B-nH5FX~3bXGd-=~*)UE{ z`k}REmL~Ynf&C;2mAq7$jxRGc@~pwt*H4lJ>!TTf)#k5v4whD z?onZ6j_%qI`#{hzt*G#DA~YR^6yEh9NdYTATS((6tF?o06C^hMOSKekHpq^yWjeZ~ z&E%W$n|4zk)mU>IjJSy54PgAu+cA$IZC#R!>D0PCYR0jUuDga;J}@rt)aaG0>>}8mD01V{7U8Vs^Hxvy;Vviex+(Iwyn3jz zc|*F|UMUe4r^ZJjcsrN9^;Q_n@#cy?4WYl$*Y*PH$H@3|9_HC5%X(%sVumbFznPd1 zMoS}#J^gV1L2ss)=}H{hvMl#KC<6VXA@Ve|KoH?!qLC?bUr@0pXR&ItK%88&M-W#J zHCoy3hr7HkrPD6)O023lxC3a;QCyavofiK(*?l4SoeWlZM!?9JUSq}DAt*UFa=K&e zIKpS_(}2u&>42HpDlH((Xm#p>gVimnuP_As*lnVsssChIqA;raCDOW)g_mv4Ucdcl zp|@G0t>3!wWe;=;y1y9Az~Dc%EDTf_$^v!#B4RQq1x7Wd@Pa0q73=-$*RQ>iuN5%4QD(sd zok6x>C5&R+^fJsFVHH*D&4OHkzWCeSn7o^?`Lc@R8f3+Td(Uo%;x4=8j!LlgxD6M; zdftgL(%5ym7A4;+ecdbS;?1+h>z&^n!=9fU!jd>I{TLO^qob8sec75PtB$0f)G1f| zK(e)BkB%k`&`XT4O-~xIe(~NLGoPi+&p?jk{yM8)E|of0=u5eMD6;BEzsX4?sq$oe zau3K{SxXl5lofjv`)gE!XG^8p-UY8wz12;`#0&2ysR5e{H$!r2BkkIqqBg8jbN)slO8kwX`1u zKEN+t706v2bLGjiHV`-N;{Vb$qY==jf~TX}*vlq`>{QJtI^gU& zQRnX$>B)-685bW3TKHZ$8K~y{ncZmI}Y#sVF|8 zS$iMj;vD|UW-~5pR-gMG!`NC-z&;l=+_#S!EDe=a7Vc`qly}BNiB%Ih#xBa}C?p39 zgyXyhP(PN)duvg|oo}`{1Z6uHXXa1?euNoo`8&9wsRl2A0GXS%6FsIfPZs&pV(_t- zoeQhj_}U@puX!VUK7-x-d1oA^l2nCa8uxZX7YK2@&fcle{BH`XVttJC;&BQtfK;qy z9+>vgWq~HR&DI;&pvr>sTRG=3Pmp8=;W}%PD?$(i+D)&h#(tI#4PQ~A`Xx|sXVEug zjc9=m9SH(Tr1aF)x=hPV#qa)qI=7^$9fBDeUI_!X76i-)v}h)0e5~wn-t9t7Kz-}h z+7Q!NR>y7_G{ob&)$0hwM8N8`7VHK4 zLmxq4V7X#V2%Li$-6S~V08-=!+)F@gKS|I4D&_4fgeWAEU3P* zhlH@sUL>RMN#&!n0@h7W$H#r45!Z+VnaBXv+M&=GA!M5Eod-_lnU{ut?L70#-Iw8P z!&Kff@!$-{d9KhEe}J4@?)(b%Y{<^2?A!2!>8_PaGF$T3jU;VcAp!d+8YtUs5BNUxX?@$j*;>C-W}AS@JNh{1%-AMJWsS%+m;&n;Q6_TjsiC zG#Sf^Xzjv%1*g!hwcm|R&8~oi?~U*WHW1bMMFGsXNE?*JQ+n*sYY;p*wM2vj??7;k z&#aEj3Dm#mw383RT`rPtf=?N_NUwS>==t6SFa*?C$V67Xa*dw{h7CPOK@c&Vi2VVU zIjry-%QMgC^1yPN^J_3PTpKCG3x+F(<2JE+Kz||5@;ib{I}IOR5(m9;HuC^lAi>uB zdA5ykyJ?pIwq_sBsrz0|-3ksn}bFC2R9?3?NKQKlKe#3@SJ4p=> z7RqR3W{R9C$F zHzDfg4Jten{8ad%+)kO`*(Ue){+e@y6yzDHMR+vBnXjk;7p~;HPc|$F$p4&3>Wr*Z zbq_F-4fyDg`sNW$bLR}5Wc3g*z{U`iU{Ii9QLI{onD5|~<`Cv?!5CggtqHO)))UJq zeO52tO+|68j~P!m00nq#E*ss-^^+_u8QNJQ7AM7tAZY@RR%|*kM-W=vXIAi8cf^ML zFRsjGXvoXwZLFopx7J^K3rzcY8F4l{aL&@z`U^NF5{okeU$rpB9>MWA1aKl zYT5;29#xrt<%fY$U%&-{!i(8BBShyCLK;7iu8OyZK7<4qFlGTM6*fIQn998_f<);Cu=Ijb_V+_;9YdR`F*Y;xdj_Tplml! zCBvHG`|?JRaN+o>5i-+!$P=^py7mDC@zg*3Jd1s5W23ZV{#@?5h9H9439s?s>3K9n zFG)e+DWBQ&4`nNs@-wz0%xFBSl568ko+4Xm(U`ve`y^31@^xvNh9B8~&B4D9h5r?{ zj#2)DR)o3gJ|AP|ah~4Q?oXj`ssQ^)oL7p;J-!^BVSmiAquxms?0q*Nx3@-U0GMa9Ak44SL#czLdNP3Wby6ctbE0KXNRK?%yk+h zrnYO{%DxJDdxtNVe`L6{+4#U#2~nr2J_nrb>pv-#KO*>d`PS!sC%Zbaoi%%s&Vegw za=%L&RbMMa!*4+9Qn?o#ae2*D;h$ci^ z+3)h%Wi^_Tsg>3q1rLMSf0;9`WV@c)+Bj;L?+KmUdiJV9#fhMJTU)C3oyis05At8# zz|)gIUtgcz4Cr@PnWMCCR~K}u;X2JS7e6oYva2v4I6$V!B+zL z{EtuYH7wOjyuPpfLvR$ch{=VMY$Hxrk1-Y3!^Me;Ok{3=;=MQZNL@8JJPRNfQxkug^j?wvG0jNU4tS3Ov`1)?YS2jJgtBfVvg{Lo7#^)=Kq zuLh^@Q|;2bCX{o&8=^1pGA7R^CA!i}H=Nfd6~2vK7=XtCZ4X!Ki=@9y4iq^jG>jhh zTL+7lk}z75=WAp#%^$>DsXDbeNv{WnDMlI=a*1As9($u{#Mv;GQr%Jj?WiBO+= zymsu!wXS9CPD|d;PbJN1^&ZtGhDK7I7aQ;nq}|sSg&x}60J5`Z{|vjvqMg00?{vcp z*f>7O<4vMA{HFM^3v*SVT9+@l2Jj8?mw^Db^Aqimc!m0S0GT?qnBiroET{_hh4$FsfS z8iMk~DC`(ZIv{e{N;q`|R{Olk{(@^z1pNjvHTZF+VKFq*7chJyi1d!y6UmA!u15#T zR}WlMfjT=~iFFkR_SAD#%>uUF@R8I#jFqa^=H#d^HS>E%r+3ggy`tf-7;w^(s@NkM{M;(G%}e%B zK%ogZM*Dr7rN>>=J9GtIo7u&#;m?JOTm=-(RwgUIO3$XxW{TtPY~gMUv^g+^EkUA!b)S&O837^KS9#yuz)Yw_RpYmj>~W@3T+7_6eD0 zLY*}8RxKLdOi|X^E#?1vN9R*nT%&sbTC3vOO^-(TnUH4P&$FJ6YvgfD0{Q{fkV#Da zx3wgGATdYhj}>Rv$QQ-IGpCBp518{+^nE7awG=J3;e!{T2AUKKyZL8S=_gVFB0(>Q z-g1LWt~l39i}XZTq}tMDKIw?XC!@U&>D|-{^q*=vU+oFj_V>29q6Mnlzbg1aPwJZ0 z=hlX|Lf_u{JdYBNcDv7HbX98wm9cKnRi7b*tad;L{kRnQ`~z&z6i+muj}POwU7@ea zzXtnKLmM6zmks4!u!1T=KxA8!AX2sEhMh0Oz^Ky#uX@BW%!iAvD>D8Jo)L~iU{;p= zyq(jDL@o}HaG$3ALG2>{T}F{x=7l(wq96BUdvo!kk;8>^jGZLYy00H#k>B+I7Us)1 zoO7to7Hd0XqTk6xq#1!-SDVqIZn;*sNSL_Dl24jSb?=MmnLah&Wo_^vEzYVp$Hw9; zKF9d-R@+0D3FL)ZW4o_Cd$C7;VNX_dvaQ4xhOMn$^KrKc4E=J&B+s&ap05bU&k9`l z=N5gS&nv*%-Nc(d>|xJ)P`tWnuU1|@2p7@KVSjZnlYk1jB@mkgg^ipRb||ATg-}0D zybP9&n@TlH6nSbdhPRI#Ml-9`${bt1<*$y7O@yjY@9&>3%e7rP^FLUrm|&CNKS}VZ z+8=Sx{IOd_F_EoLk`PSmt>>z-se~qc`MEk_bJ)WZNXy!g|kjtWy78&->d@k2I2ZJ{^6SBkRz`#ZW=#xK1lAs1mPDfG;T zsAT>n@(48x4bV^?)Fhd%6qTEA-K?JhWywpOnA^uX$jn=BS9;49Z?kau&1Psa;4c&=Qfj?C#yDD@{pw-zsaCN2ks#1 zem87vC2kKqK6>@-C+hrtfLfHG4?sGBuKM@5fY>modUecgEUy2uw0S({ysMTgVcs2) zzi56{#LVQg9qCT<{{P3`dq*{u{d>bR{_ef+TJQ7TyY79~djEWYMNZDy^}F}k z<@^2Y&o>eGQRQ^Md+)`hQ{Zm&;j42k3Wn#<)z~kPPwY>j96QyzwW&C6f+W$3N|Q|Q zDzFrDug1<|2LLZ2a(Bl^jiOf2C6{Ei^v#-2g0jJ%N}zB4EDme@s2`5at9g)hrby;`HR5n zQT@qp?*csZD^_a`XAbWHSs-atv;m=@=5^Fvk`LxxZmJ#}q(QjR=4hQc{-MQH@w5ox za9pao1(r{cTmv~JRSKXbWzRnR6Y%3%T7hFFqN*9joo&^O)+6*4w6;9u#@;UdF_7!w zPnW*1XIN%Wk`b4}-&2PBj!QiQOa6mmq99JDOk# zGB>ahB>U9N&ENquRNJqf7O?oD1QvGphqq z#p)WhUcT?r6XmVYos{}iKyR#Y^GoD2OboX#O}8dcjyL>`N_=Ji0PLE2{gCxNtL`D# z&IikOdN9G;AcjEo564*&E^f1)w|tlkb$ajy2UxuhSIJ3MFRj_=fLVQrYnqMRtv!*f zA%YIDWkX%M(OJKbSapN=!l8g4B?%nY_a9^wYh7XZ zfG!6-@F;z*CD>J_-B&-Ot?)=C92al#3u}}7adCX7Vl_4V)}O@k4))(*oVL$s*gg&u z?*=h$%egDJT2|?QS}T(-d`--tB!oK*^KsI>LbPx7F zXs?34JPG5$gr=|gP*LASsrYksMg-Gb7C_DyMjqf8Ifh;s^ekB#W+Pk=1uO;U{*qB1 z`86ZAt$2dd?nZ7kHVGFWx{2)+V5q!tcfOF2uwe=wCFHn#dx`C;7JN~-t-FRhK~hmv z)2A*9dO?N*WJs9Bc2N4!t%1=iOdy}A3D=QQ&fM5C^`bAkf9Ir0@~v>v1O(+7kddCl zr#_fGv~m+8LyYa+B>iw(~HwMr72b9nW*+BLs=An0<;MJ+NM&KJ6g zFFiQi&wKhjb@8alBh{#iqclB-5szMlsuuN)y?(Fq>Vp)ce~7DUt@FnIOd?5vi#D2uC01u zd;RYtm|mFU>Vk7(6jH`}%!<>KhcKNR@0@fd+>d_#SGr*NVwNE zM3cYR*hv$D!j%p0m=k-so#iwwY(W%A%Aa(3_^H8gMv^~rrsYfg=-K8IyIW5`9_`I6 zkw%kE!iVUu$F{3eZ9HN{vQltvXcI+3;l;Xx6>Oj9Wzz;p0qClxvkDNUSd#05?O)tL zm|=eTdh*Ly^*9CRDKwgzt)p~W>a;w4)MBF6c=wX0Zv%JSr~v2FqcWWY16aTDLd*(H zV7>Rm|M`Y*^vRd<8Y&MzzsNmkUF6$IjyXREOHd|=)}h4p zUgj(H`&gc|GsKw2jkE%@H%s@lQw+I{ZE6ag4UTfz)mr$HXQ?(Vvxbd_gI|X?V8JwT z<=+L>>0UBf;*;@s)aKFq5fPvr8(!s&W}f^|~iP=k!? z55Mbc?Pp)N1Grc7>5!O0XSsKbD+I41nXQy14Gm?&r8Q2`akAfYOy958il3z<0?^B& zV?>?xxU{+v**Ew>GyU*1jR3cZ^2cx91qBl^rutfIwkK5gc zbv|U>Heatn^yxtZtFfCSdv`7L)u$Z!K|=TkkB|vX=w`T@H0TF}nw4F>-{trOq22c6 zHH5+?Uq{>Wbdcu_$+<9Ao$~r3LAEL@n?lui7uqJ}n5p6U>WU+G6*dwAda&z^zrHr~ zEgv_ZP;>v|rtLhvJut)e<|1$2uMTNkbs?a68scxC>F^A**B5&(%qPBf7zLiYeI@B) zcz!N-p|JBXFZAoC>k>r3JJolYpbKM2^UjJo|iZ#ZSUe{HoJ`AV%&ds5ci;hjAVl16l1k)n%x@NnNRSU+WB#GOWeDA;bfCj(^GN5X_Px>79U+SLhW#hhZ^v#Q0RxKj)B~z>C zJlWg(f{YI@VFk+KgS8sUo(B{DI`>v;_DvZBPKV%YK?DqHjv8-!j&R?L4iG4%1khP7 zNK8zy96NS;(YXu#eNe?2j<)fC4fMu%!SXC=8DLn`$~V_qhB9z_iy+fPdaprE-⩔ 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 G&Hoos4e6`^ literal 0 HcmV?d00001 diff --git a/ref/Tandy Portable Disk Drive Operation Manual 26-3808.pdf b/ref/Tandy Portable Disk Drive Operation Manual 26-3808.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0bcc7821813094448f1dde07df81710d9a071225 GIT binary patch literal 369787 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
=6%f4`7&7^G_hJ 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

mhuL|0~|_7StE% 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

J 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 literal 0 HcmV?d00001 From cdbd8e7f9e7e232fba8ffcf2a127613cb81e31ca Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 31 May 2022 17:53:53 -0400 Subject: [PATCH 018/206] getopt and env vars --- Makefile | 6 +- README.md | 8 +- dl.c | 352 +++++++++++++++++++++++++++++------------------------- 3 files changed, 194 insertions(+), 172 deletions(-) diff --git a/Makefile b/Makefile index 5d21396..0e21070 100644 --- a/Makefile +++ b/Makefile @@ -10,8 +10,6 @@ APP_DOC_DIR := $(PREFIX)/share/doc/$(APP_NAME) APP_VERSION := $(shell git describe --long) DEFAULT_CLIENT_TTY := ttyUSB0 -DEFAULT_CLIENT_MODEL := 100 -DEFAULT_CLIENT_APP := TEENY TEENY_INSTALLERS := \ clients/teeny/TEENY.100 \ @@ -53,9 +51,7 @@ SOURCES := dl.c dir_list.c DEFINES := \ -DAPP_VERSION=$(APP_VERSION) \ -DAPP_LIB_DIR=$(APP_LIB_DIR) \ - -DDEFAULT_CLIENT_TTY=$(DEFAULT_CLIENT_TTY) \ - -DDEFAULT_CLIENT_APP=$(DEFAULT_CLIENT_APP) \ - -DDEFAULT_CLIENT_MODEL=$(DEFAULT_CLIENT_MODEL) + -DDEFAULT_CLIENT_TTY=$(DEFAULT_CLIENT_TTY) ifdef DEBUG CFLAGS += -g diff --git a/README.md b/README.md index b46bb5f..7302a0e 100644 --- a/README.md +++ b/README.md @@ -30,14 +30,14 @@ dl -h dl ``` -## list all available TPDD client installers, and then bootstrap one of them (TS-DOS for Model 100) +## list all available TPDD client installers, and then bootstrap one of them. ``` -dl -h -dl -b=TS-DOS.100 +dl -l +dl -b TS-DOS.100 ``` ## bootstrap a [REXCPM](http://bitchin100.com/wiki/index.php?title=REXCPM) ``` unzip REXCPMV21_b18.ZIP -dl -b=./rxcini.DO ;dl -u +dl -b ./rxcini.DO ;dl -u ``` diff --git a/dl.c b/dl.c index 1aa1e7c..fdf29d5 100644 --- a/dl.c +++ b/dl.c @@ -97,6 +97,9 @@ MA 02111, USA. #include #endif +#define STRINGIFY2(X) #X +#define S_(X) STRINGIFY2(X) + /*** config **************************************************/ #ifndef APP_LIB_DIR @@ -111,18 +114,15 @@ MA 02111, USA. #define DEFAULT_CLIENT_BAUD B19200 #endif -#ifndef DEFAULT_CLIENT_MODEL -#define DEFAULT_CLIENT_MODEL 100 -#endif - -#ifndef DEFAULT_CLIENT_APP -#define DEFAULT_CLIENT_APP TEENY -#endif - #define DEFAULT_BASIC_BYTE_MSEC 6 -#define DEFAULT_TPDD_FILE_ATTRIB 'F' // 0x46 -#define DEFAULT_DME_ROOT_LABEL "ROOT " -#define DEFAULT_DME_PARENT_LABEL "PARENT" +#define DEFAULT_TPDD_FILE_ATTRIB 'F' +// These are crap, since they are just ordinary words that could +// easily conflict with user files/dirs, but this is what the original +// Desk-Link did, and what TS-DOS and possibly other software expects. +// So these are default, but you can override them either here at compile-time +// or by environment variables at run-time. +#define DEFAULT_DME_ROOT_LABEL "ROOT" // $ROOT_LABEL +#define DEFAULT_DME_PARENT_LABEL "PARENT" // $PARENT_LABEL //////////////////////////////////////////////////////////////////////// // @@ -185,6 +185,12 @@ MA 02111, USA. // serial cabling, but I suggest leaving this false / 0. #define IGNORE_DSR 0 +// TODO - make O_NOCTTY run-time configurable. +// O_NO_CTTY was not in the original open() flags, +// but seems advisable for this kind of usage. +// But I don't really know so here is a control. +#define NO_CTTY 1 + /*************************************************************/ // drive firmware/protocol constants @@ -295,7 +301,7 @@ MA 02111, USA. // fixed lengths #define TPDD_DATA_MAX 0x80 -#define TPDD_FREE_SECTORS 0x50 // max valid 80 sectors +#define TPDD_FREE_SECTORS 0x50 // max valid value is 80 sectors #define LEN_RET_STD 0x01 #define LEN_RET_DME 0x0B #define LEN_RET_DIRENT 0x1C @@ -310,7 +316,10 @@ bool rtscts = false; unsigned dot_offset = 6; // 6 for KC-85 platform, 8 for WP-2 int client_baud = DEFAULT_CLIENT_BAUD; int BASIC_byte_msec = DEFAULT_BASIC_BYTE_MSEC; -const char dme_root_label[6] = DEFAULT_DME_ROOT_LABEL; +char dme_root_label[6] = DEFAULT_DME_ROOT_LABEL; +char dme_parent_label[6] = DEFAULT_DME_PARENT_LABEL; +char default_attrib = DEFAULT_TPDD_FILE_ATTRIB; + bool getty_mode = false; bool bootstrap_mode = false; @@ -321,9 +330,12 @@ int client_tty_fd = -1; struct termios client_termios; int o_file_h = -1; unsigned char buf[TPDD_DATA_MAX+3]; +char cwd[PATH_MAX]={0x00}; char dme_cwd[6] = DEFAULT_DME_ROOT_LABEL; -int opr_mode = 1; // 0=FDC-mode 1=Operation-mode +char client_tty_name[PATH_MAX]; +char bootstrap_file[PATH_MAX] = {0x00}; // S_(DEFAULT_CLIENT_APP) "." S_(DEFAULT_CLIENT_MODEL); bool enable_dme = false; +int opr_mode = 1; // 0=FDC-mode 1=Operation-mode FILE_ENTRY *cur_file; int dir_depth=0; @@ -331,65 +343,6 @@ int dir_depth=0; // blarghamagargle void ret_std(unsigned char err); -#define STRINGIFY2(X) #X -#define STRINGIFY(X) STRINGIFY2(X) - -void print_usage() -{ - fprintf (stderr, - "%1$s - DeskLink+ " STRINGIFY(APP_VERSION) "\nusage:\n\n" - "%1$s [tty_device] [options]\n" - "\n" - "tty_device:\n" - " Serial device the client is connected to\n" - " examples: ttyS0, ttyUSB0, /dev/pts/foo4, etc...\n" - " default = " STRINGIFY(DEFAULT_CLIENT_TTY) "\n" - " \"-\" = stdin/stdout (/dev/tty)\n" - "\n" - "options:\n" - " -h Print this help\n" - " -b=file Bootstrap: Install onto the portable\n" - " -v Verbose/debug mode (more -v's = more verbose)\n" - " -g Getty mode. Run as daemon\n" - " -p=dir Path to files to be served, default is \".\"\n" - " -w WP-2 compatibility mode (8.2 filenames)\n" - " -u Uppercase all filenames\n" - " -c Hardware flow control (RTS/CTS)\n" - " -z=# Sleep # milliseconds between each byte while sending bootstrap file (default " STRINGIFY(DEFAULT_BASIC_BYTE_MSEC) ")\n" - "\n" - "available bootstrap files (in "STRINGIFY(APP_LIB_DIR)"):\n" - ,args[0]); - - // FIXME - This is crap using system(), and relying on an external, - // just to get some filenames, but I don't want to write /bin/find. - bkw - // works but blargh ... - //(void)(system ("find " STRINGIFY(APP_LIB_DIR) " -regex \'.*/.+\\.\\(100\\|200\\|NEC\\|M10\\|K85\\)$\' -printf \'\%f\\n\' >&2")+1); - // even more blargh... - fprintf (stderr, " TRS-80 Model 100 / Tandy 102 : "); - (void)(system ("find " STRINGIFY(APP_LIB_DIR) " -regex \'.*/.+\\.100$\' -printf \'\%f \' >&2")+1); - fprintf (stderr, "\n Tandy 200 : "); - (void)(system ("find " STRINGIFY(APP_LIB_DIR) " -regex \'.*/.+\\.200$\' -printf \'\%f \' >&2")+1); - fprintf (stderr, "\n NEC PC-8201/PC-8201a/PC-8300 : "); - (void)(system ("find " STRINGIFY(APP_LIB_DIR) " -regex \'.*/.+\\.NEC$\' -printf \'\%f \' >&2")+1); - fprintf (stderr, "\n Kyotronic KC-85 : "); - (void)(system ("find " STRINGIFY(APP_LIB_DIR) " -regex \'.*/.+\\.K85$\' -printf \'\%f \' >&2")+1); - fprintf (stderr, "\n Olivetti M-10 : "); - (void)(system ("find " STRINGIFY(APP_LIB_DIR) " -regex \'.*/.+\\.M10$\' -printf \'\%f \' >&2")+1); - - fprintf (stderr, - "\n\n" - "Bootstrap Examples:\n" - " %1$s -b=TS-DOS.100 (no leading / or ./ takes from above)\n" - " %1$s -b=~/Documents/TRS-80/M100SIG/Lib-03-TELCOM/XMDPW5.100\n" - " %1$s -b=./rxcini.DO\n" - "\n" - "TPDD Server Examples:\n" - " %1$s\n" - " %1$s ttyUSB1 -p=~/Documents/wp2files -w -v\n" - "\n" - ,args[0]); -} - /* primitives and utilities */ // (verbosity_threshold, printf_format , args...) @@ -707,7 +660,7 @@ int ret_dirent(FILE_ENTRY *ep) //memcpy (buf + 2, ep->client_fname, dot_offset+2); // attrib - buf[26] = DEFAULT_TPDD_FILE_ATTRIB; + buf[26] = default_attrib; // size size = htons (ep->len); @@ -797,13 +750,12 @@ void update_dme_cwd() dbg(2,"%s()\n",__func__); int i; if(dir_depth) { - char dirbuf[1024]; int j; - - if(getcwd(dirbuf, 1024) ) { + memset(cwd,0x00,PATH_MAX); + if(getcwd(cwd,PATH_MAX-1) ) { memset(dme_cwd,0x20,6); - for(i=strlen(dirbuf); i>=0 ; i--) if(dirbuf[i]=='/') break; - for(j=0; j<6 && dirbuf[i+j+1] && dirbuf[i+j+1]!='.'; j++) dme_cwd[j]=dirbuf[i+j+1]; + for(i=strlen(cwd); i>=0 ; i--) if(cwd[i]=='/') break; + for(j=0; j<6 && cwd[i+j+1] && cwd[i+j+1]!='.'; j++) dme_cwd[j]=cwd[i+j+1]; } } else { memcpy(dme_cwd,dme_root_label,6); @@ -1148,8 +1100,9 @@ int get_opr_cmd(void) // This is mostly just a stub still, but one operation works, which is // switching back and forth between FDC-mode and Operation-mode // -// You can see it happen by setting opr_mode=0 at the top, then -// start the server with 2 or 3 -v 's and connect TS-DOS and load the directory. +// You can see it happen by running "OPR_MODE=0 dl -vv" +// See it starts on get_fdc_cmd() instead of get_opr_cmd() +// Then load the directory from TS-DOS. // standard 8-character FDC-mode response void ret_fdc_std(unsigned char e, unsigned char d, unsigned short l) { @@ -1247,6 +1200,36 @@ int get_fdc_cmd(void) { // // BOOTSTRAP +void show_bootstrap_help() { + dbg(0, + "%1$s - DeskLink+ " S_(APP_VERSION) " - \"bootstrap\" help\n\n" + "Available loader files (in " S_(APP_LIB_DIR) "):\n\n",args[0]); + // FIXME - Don't use system() just to get some filenames - bkw + // works but blargh ... + //(void)(system ("find " S_(APP_LIB_DIR) " -regex \'.*/.+\\.\\(100\\|200\\|NEC\\|M10\\|K85\\)$\' -printf \'\%f\\n\' >&2")+1); + // even more blargh... + dbg(0, "TRS-80 Model 100 & 102 : "); + (void)(system("find " S_(APP_LIB_DIR) " -regex \'.*/.+\\.100$\' -printf \'\%f \' >&2")+1); + dbg(0,"\nTANDY Model 200 : "); + (void)(system("find " S_(APP_LIB_DIR) " -regex \'.*/.+\\.200$\' -printf \'\%f \' >&2")+1); + dbg(0,"\nNEC PC-8201(a)/PC-8300 : "); + (void)(system("find " S_(APP_LIB_DIR) " -regex \'.*/.+\\.NEC$\' -printf \'\%f \' >&2")+1); + dbg(0,"\nKyotronic KC-85 : "); + (void)(system("find " S_(APP_LIB_DIR) " -regex \'.*/.+\\.K85$\' -printf \'\%f \' >&2")+1); + dbg(0,"\nOlivetti M-10 : "); + (void)(system("find " S_(APP_LIB_DIR) " -regex \'.*/.+\\.M10$\' -printf \'\%f \' >&2")+1); + + dbg(0, + "\n\n" + "Filenames given without any leading path are taken from above.\n" + "To specify a file in the current directory, include the \"./\"\n" + "Examples:\n\n" + " %1$s -b TS-DOS.100\n" + " %1$s -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100\n" + " %1$s -b ./rxcini.DO\n\n" + ,args[0]); +} + int send_BASIC(char *f) { int w=0; @@ -1285,9 +1268,9 @@ int send_BASIC(char *f) int bootstrap(char *f) { int r = 0; - char loader_file[PATH_MAX]=""; - char pre_install_txt_file[PATH_MAX]=""; - char post_install_txt_file[PATH_MAX]=""; + char loader_file[PATH_MAX]={0x00}; + char pre_install_txt_file[PATH_MAX]={0x00}; + char post_install_txt_file[PATH_MAX]={0x00}; if (f[0]=='~'&&f[1]=='/') { strcpy(loader_file,getenv("HOME")); @@ -1298,7 +1281,7 @@ int bootstrap(char *f) strcpy(loader_file,f); if(loader_file[0]==0) { - strcpy(loader_file,STRINGIFY(APP_LIB_DIR)); + strcpy(loader_file,S_(APP_LIB_DIR)); strcat(loader_file,"/"); strcat(loader_file,f); } @@ -1343,108 +1326,148 @@ int bootstrap(char *f) // // MAIN +void show_config () { + dbg(0,"getty_mode : %s\n",getty_mode?"true":"false"); + dbg(0,"upcase : %s\n",upcase?"true":"false"); + dbg(0,"rtscts : %s\n",rtscts?"true":"false"); + dbg(0,"verbosity : %d\n",debug); + dbg(0,"dot_offset : %d\n",dot_offset); + dbg(0,"BASIC_byte_msec : %d\n",BASIC_byte_msec); + dbg(0,"bootstrap_mode : %s\n",bootstrap_mode?"true":"false"); + dbg(0,"bootstrap_file : \"%s\"\n",bootstrap_file); + dbg(0,"client_tty_name : \"%s\"\n",client_tty_name); + if (getcwd(cwd,PATH_MAX-1)) dbg(0, + "share_path : \"%s\"\n",cwd); + dbg(2,"opr_mode : %d\n",opr_mode); + dbg(2,"dot_offset : %d\n",dot_offset); + dbg(2,"baud : %d\n",client_baud==B9600?9600:client_baud==B19200?19200:-1); + dbg(2,"dme_root_label : \"%6.6s\"\n",dme_root_label); + dbg(2,"dme_parent_label: \"%6.6s\"\n",dme_parent_label); + dbg(2,"default_attrib : '%c'\n",default_attrib); +} + +void show_main_help() { + dbg(0, + "%1$s - DeskLink+ " S_(APP_VERSION) " - help\n\n" + "usage: %1$s [options] [tty_device] [share_path]\n" + "\n" + "options:\n" + " -h Print this help\n" + " -v Verbose/debug mode - more v's = more verbose\n" + " -d tty Serial device to client (" S_(DEFAULT_CLIENT_TTY) ")\n" + " -p dir Share path - directory with files to be served (.)\n" + " -g Getty mode - run as daemon\n" + " -w WP-2 mode - 8.2 filenames\n" + " -u Uppercase all filenames\n" + " -r RTS/CTS hardware flow control\n" + " -z # Milliseconds per byte for bootstrap (" S_(DEFAULT_BASIC_BYTE_MSEC) ")\n" + " -b file Bootstrap: Send loader file to client\n" + " -l List available loader files and bootstrap help\n" + "\n" + "Alternative to the -d and -p options,\n" + "The 1st non-option argument is another way to specify the tty device.\n" + "The 2nd non-option argument is another way to specify the share path.\n" + "\n" + " %1$s\n" + " %1$s -vv /dev/ttyS0\n" + " %1$s ttyUSB1 -v -w ~/Documents/wp2files\n\n" + ,args[0]); +} + int main(int argc, char **argv) { int off=0; - unsigned char client_tty_name[PATH_MAX]; - char bootstrap_file[PATH_MAX]; - int arg; - - /* create the file list (for reverse order traversal) */ - file_list_init (); - + int i; + bool x = false; args = argv; - strcpy ((char *)client_tty_name,STRINGIFY(DEFAULT_CLIENT_TTY)); + // default client tty device + strcpy (client_tty_name,S_(DEFAULT_CLIENT_TTY)); if (client_tty_name[0]!='/') { - strcpy((char *)client_tty_name,"/dev/"); - strcat((char *)client_tty_name,(char *)STRINGIFY(DEFAULT_CLIENT_TTY)); + strcpy(client_tty_name,"/dev/"); + strcat(client_tty_name,S_(DEFAULT_CLIENT_TTY)); } - for (arg = 1; arg < argc; arg++) { - switch (argv[arg][0]) { - case '/': - strcpy ((char *)client_tty_name, (char *)(argv[arg])); - break; - case '-': - switch (argv [arg][1]) { - case 0: - strcpy ((char *)client_tty_name,"/dev/tty"); - client_tty_fd = 1; - break; - case 'g': - getty_mode = true; - break; - case 'u': - upcase = true; - break; - case 'c': - rtscts = true; - break; - case 'v': - debug++; - break; - case 'p': - if (argv[arg][2] == '=') - (void)(chdir (argv[arg] + 3)+1); - break; - case 'w': - dot_offset = 8; - break; - case 'h': - print_usage(); - exit(0); - break; - case 'b': - bootstrap_mode = true; - strcpy (bootstrap_file,STRINGIFY(DEFAULT_CLIENT_APP) "." STRINGIFY(DEFAULT_CLIENT_MODEL)); - if (argv[arg][2] == '=') strcpy (bootstrap_file,(char *)(argv[arg]+3)); - break; - case 'z': - if (argv[arg][2] == '=') BASIC_byte_msec = atoi(argv[arg]+3); - break; - default: - fprintf(stderr, "Unknown option %s\n",argv[arg]); - print_usage(); - exit(1); - break; - } - break; - default: - strcpy((char *)client_tty_name,"/dev/"); - strcat((char *)client_tty_name,(char *)(argv[arg])); + // env overrides for some things that don't have switches + if (getenv("OPR_MODE")) opr_mode = atoi(getenv("OPR_MODE")); + if (getenv("DOT_OFFSET")) dot_offset = atoi(getenv("DOT_OFFSET")); + if (getenv("BAUD")) {i=atoi(getenv("BAUD"));client_baud=i==9600?B9600:i==19200?B19200:-1;} + if (getenv("ROOT_LABEL")) memcpy(dme_root_label,getenv("ROOT_LABEL"),6); + if (getenv("PARENT_LABEL")) memcpy(dme_parent_label,getenv("PARENT_LABEL"),6); + if (getenv("ATTRIB")) default_attrib = *getenv("ATTRIB"); + + // commandline options + while ((i = getopt (argc, argv, ":gurvd:p:wb:z:hl^")) >=0) + switch (i) { + case 'g': getty_mode = true; debug = 0; break; + case 'u': upcase = true; break; + case 'r': rtscts = true; break; + case 'v': debug++; break; + case 'w': dot_offset = 8; break; + case 'h': show_main_help(); exit(0); break; + case 'l': show_bootstrap_help(); exit(0); break; + case 'z': BASIC_byte_msec=atoi(optarg); break; + case 'd': strcpy(client_tty_name,optarg); break; + case 'p': (void)(chdir(optarg)+1); break; + case 'b': bootstrap_mode=true; strcpy(bootstrap_file,optarg); break; + case '^': x=true; break; // debugging + case ':': dbg(0,"\"-%c\" requires a value\n",optopt); break; + case '?': + if (isprint(optopt)) dbg(0,"Unknown option `-%c'.\n",optopt); + else dbg(0,"Unknown option character `\\x%x'.\n",optopt); + default: show_main_help(); return 1; + } + + // commandline non-option arguments + for (i=0; optind < argc; optind++) { + if (x) dbg(1,"non-option arg %u: \"%s\"\n",i,argv[optind]); + switch (i++) { + case 0: // tty device + switch (argv[optind][0]) { + case '/': + strcpy (client_tty_name,argv[optind]); + break; + case '-': + if (argv[optind][1]==0x00) { + strcpy (client_tty_name,"/dev/tty"); + client_tty_fd = 1; + break; + } + default: + strcpy(client_tty_name,"/dev/"); + strcat(client_tty_name,argv[optind]); + } break; + case 1: // share path + (void)(chdir(argv[optind])+1); break; + default: dbg(0,"Unknown argument: \"%s\"\n",argv[optind]); } } - if (getty_mode) - debug = 0; + if (x) { show_config(); return 0; } - if (debug) { - fprintf (stderr, "DeskLink+ " STRINGIFY(APP_VERSION) "\n"); - fprintf (stderr, "Using Serial Device: %s\n", client_tty_name); - } + dbg(1,"DeskLink+ " S_(APP_VERSION) "\n" + "Using Serial Device: %s\n",client_tty_name); -// Also, what about O_NOCTTY ? if(client_tty_fd<0) client_tty_fd=open((char *)client_tty_name,O_RDWR +#if (NO_CTTY == 1) + ,O_NOCTTY +#endif #if (IGNORE_DSR == 1) ,O_NONBLOCK #endif ); if(client_tty_fd<0) { - fprintf (stderr,"Can't open \"%s\"\n",client_tty_name); + dbg(1,"Can't open \"%s\"\n",client_tty_name); return(1); } - - if (debug) { - if(!bootstrap_mode) { - fprintf (stderr, "Working In Directory: "); - fprintf (stderr, "--------------------------------------------------------------------------------\n"); - (void)(system ("pwd >&2;ls -l >&2")+1); - fprintf (stderr, "--------------------------------------------------------------------------------\n"); - } + if (debug && !bootstrap_mode) { + dbg(1,"Working In Directory: \n" + "--------------------------------------------------------------------------------\n"); + (void)(system ("pwd >&2;ls -l >&2")+1); + dbg(1,"--------------------------------------------------------------------------------\n"); } // getty mode @@ -1469,6 +1492,9 @@ int main(int argc, char **argv) // send loader and exit if(bootstrap_mode) return(bootstrap(bootstrap_file)); + // create the file list (for reverse order traversal) + file_list_init (); + // process commands forever while(1) if(opr_mode) get_opr_cmd(); else get_fdc_cmd(); From 91fd17e82c4ced47f8853ccf93237c1d4bd2c430 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 31 May 2022 18:20:28 -0400 Subject: [PATCH 019/206] configurable root & parent labels --- dl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dl.c b/dl.c index fdf29d5..cfb45f0 100644 --- a/dl.c +++ b/dl.c @@ -537,7 +537,7 @@ FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) // TODO - make this configurable, allow ".." to show through, // allow ordinary file or directory named "PARENT" etc. if(f.local_fname[0]=='.' && f.local_fname[1]=='.') { - memcpy (f.client_fname, DEFAULT_DME_PARENT_LABEL, 6); + memcpy (f.client_fname, dme_parent_label, 6); } else { for(i=0;i Date: Tue, 31 May 2022 19:03:15 -0400 Subject: [PATCH 020/206] alternative root & parent labels work --- dl.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/dl.c b/dl.c index cfb45f0..d3b942d 100644 --- a/dl.c +++ b/dl.c @@ -637,7 +637,7 @@ void ret_std(unsigned char err) buf[3]=checksum(buf); dbg(3,"Response: %02X\n",err); write_client_tty(buf,4); - if (buf[2]!=ERR_SUCCESS) dbg(2,"ERROR RESPONSE TO CLIENT"); + if (buf[2]!=ERR_SUCCESS) dbg(2,"ERROR RESPONSE TO CLIENT\n"); } // return for dirent @@ -1391,9 +1391,12 @@ int main(int argc, char **argv) // env overrides for some things that don't have switches if (getenv("OPR_MODE")) opr_mode = atoi(getenv("OPR_MODE")); if (getenv("DOT_OFFSET")) dot_offset = atoi(getenv("DOT_OFFSET")); - if (getenv("BAUD")) {i=atoi(getenv("BAUD"));client_baud=i==9600?B9600:i==19200?B19200:-1;} - if (getenv("ROOT_LABEL")) {memcpy(dme_root_label,getenv("ROOT_LABEL"),6);memcpy(dme_cwd,dme_root_label,6);} - if (getenv("PARENT_LABEL")) memcpy(dme_parent_label,getenv("PARENT_LABEL"),6); + if (getenv("BAUD")) {i=atoi(getenv("BAUD")); + client_baud=i==9600?B9600:i==19200?B19200:-1;} + if (getenv("ROOT_LABEL")) {char t[7];snprintf(t,7,"%-6.6s",getenv("ROOT_LABEL")); + memcpy(dme_root_label,t,6);memcpy(dme_cwd,t,6);} + if (getenv("PARENT_LABEL")) {char t[7];snprintf(t,7,"%-6.6s",getenv("PARENT_LABEL")); + memcpy(dme_parent_label,t,6);} if (getenv("ATTRIB")) default_attrib = *getenv("ATTRIB"); // commandline options From e249519329f9eb730209630d1a2e18e9cb7f27bf Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 31 May 2022 22:56:31 -0400 Subject: [PATCH 021/206] raw mode option -0 --- README.md | 3 + dl.c | 130 +++++++++++++++++++++++---------------- ref/advanced_options.txt | 127 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 206 insertions(+), 54 deletions(-) create mode 100644 ref/advanced_options.txt diff --git a/README.md b/README.md index 7302a0e..5ba4ea4 100644 --- a/README.md +++ b/README.md @@ -41,3 +41,6 @@ dl -b TS-DOS.100 unzip REXCPMV21_b18.ZIP dl -b ./rxcini.DO ;dl -u ``` + +## Advanced +See [](ref/advanced.options.txt) diff --git a/dl.c b/dl.c index d3b942d..889b4e4 100644 --- a/dl.c +++ b/dl.c @@ -468,8 +468,7 @@ void cat(char *f) { // b[1] = len (how many more bytes to read after this one, 0-128) // b[2] to b[1+len] = 0 to 128 bytes of payload // contents after b[1+len] are ignored -unsigned char checksum(unsigned char *b) -{ +unsigned char checksum(unsigned char *b) { unsigned short s=0; int i; @@ -477,9 +476,10 @@ unsigned char checksum(unsigned char *b) return((s&0xFF)^0xFF); } -char *pdd_to_local_fn(char *fname) -{ +char *pdd_to_local_fn(char *fname) { dbg(3,"%s(\"%s\")\n",__func__,fname); + if (!dot_offset) return fname; + int i; for(i=dot_offset;i>1;i--) if(fname[i-1]!=' ') break; @@ -494,7 +494,6 @@ char *pdd_to_local_fn(char *fname) return fname; } - // FIXME - don't do half of this stuff if (!dme_enable) // FIXME - option not to munge the client filenames at all other than // to truncate to 24 bytes. No dot-offset/extension assumptions, @@ -507,63 +506,77 @@ FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) /** fill the entry */ strncpy (f.local_fname, namep, sizeof (f.local_fname) - 1); - dbg_b(3,(unsigned char*)f.client_fname,TPDD_FILENAME_LEN+1); + memset(f.client_fname,0x20,TPDD_FILENAME_LEN); f.len = len; + f.flags = flags; + if (dot_offset) { + // normal mode - // construct the client filename + // re-format the client filename to KC-85 or WP-2 standards. + // KC-85 / Model 100 / NEC-8201 etc require "%-6.6s.%-2.2s" in printf terms, - // 24 spaces - memset(f.client_fname,0x20,TPDD_FILENAME_LEN); + // In addition to that specifically TS-DOS also uses a fake + // filename extension of ".<>" to indicate directories, so we add those + // to the "filename" here when we encounter a directory, if enable_dme + // is enabled. - // find the last dot in the local filename - for(i=strlen(namep);i>0;i--) if(namep[i]=='.') break; + // WP-2 requires "%-8.8s.%-2.2s" - // write client extension - if(flags&DIR_FLAG) { - // directory - put TS-DOS DME ext on client fname - f.client_fname[dot_offset+1]='<'; - f.client_fname[dot_offset+2]='>'; - f.len=0; - } else { - // file - put first 2 bytes of ext on client fname - f.client_fname[dot_offset+1]=namep[i+1]; - f.client_fname[dot_offset+2]=namep[i+2]; - } + // find the last dot in the local filename + for(i=strlen(namep);i>0;i--) if(namep[i]=='.') break; - dbg(5,"\"%s\"\n",f.client_fname); + // write client extension + if (flags&DIR_FLAG) { + // directory - put TS-DOS DME ext on client fname + f.client_fname[dot_offset+1]='<'; + f.client_fname[dot_offset+2]='>'; + f.len=0; + } else { + // file - put first 2 bytes of ext on client fname + f.client_fname[dot_offset+1]=namep[i+1]; + f.client_fname[dot_offset+2]=namep[i+2]; + } - // replace ".." with "PARENT" (or whatever dme root label) - // TODO - make this configurable, allow ".." to show through, - // allow ordinary file or directory named "PARENT" etc. - if(f.local_fname[0]=='.' && f.local_fname[1]=='.') { - memcpy (f.client_fname, dme_parent_label, 6); - } else { - for(i=0;id_name[0]=='.') continue; // skip "." ".." and hidden files - //if (dire->d_name[0]=='#') continue; // skip "#" + // don't do these in raw mode + if (dot_offset) { + if (dire->d_name[0]=='.') continue; // skip "." ".." and hidden files + //if (dire->d_name[0]=='#') continue; // skip "#" - if (strlen(dire->d_name)>LOCAL_FILENAME_MAX) continue; // skip long filenames + if (strlen(dire->d_name)>LOCAL_FILENAME_MAX) continue; // skip long filenames + } /* add file to list so we can traverse any order */ add_file (make_file_entry(dire->d_name, st.st_size, flags)); - break; } @@ -655,8 +670,9 @@ int ret_dirent(FILE_ENTRY *ep) // name memset (buf + 2, ' ', TPDD_FILENAME_LEN); - for(i=0;iclient_fname[i])?ep->client_fname[i]:' '; + else memcpy (buf+2,ep->client_fname,TPDD_FILENAME_LEN); //memcpy (buf + 2, ep->client_fname, dot_offset+2); // attrib @@ -845,28 +861,28 @@ int req_open(unsigned char *data) ret_std (ERR_NO_FILE); return -1; } - + if(cur_file->flags&DIR_FLAG) { int err=0; // directory - if(cur_file->local_fname[0]=='.' && cur_file->local_fname[1]=='.') { + if (cur_file->local_fname[0]=='.' && cur_file->local_fname[1]=='.') { // parent dir - if(dir_depth>0) { + if (dir_depth>0) { err=chdir (cur_file->local_fname); - if(!err) dir_depth--; + if (!err) dir_depth--; } } else { // enter dir err=chdir(cur_file->local_fname); - dir_depth++; + if (!err) dir_depth++; } update_dme_cwd(); - if(err) ret_std (ERR_FMT_MISMATCH); + if (err) ret_std (ERR_FMT_MISMATCH); else ret_std (ERR_SUCCESS); } else { // regular file o_file_h = open (cur_file->local_fname, O_RDONLY); - if(o_file_h<0) + if (o_file_h<0) ret_std (ERR_NO_FILE); else { f_open_mode = omode; @@ -1361,6 +1377,11 @@ void show_main_help() { " -u Uppercase all filenames\n" " -r RTS/CTS hardware flow control\n" " -z # Milliseconds per byte for bootstrap (" S_(DEFAULT_BASIC_BYTE_MSEC) ")\n" + " -0 Raw mode. Do not munge filenames in any way.\n" + " Disables 6.2 or 8.2 filename trucating & padding\n" + " Changes the attribute byte to ' ' instead of 'F'\n" + " Disables adding the TS-DOS \".<>\" extension for directories\n" + " The entire 24 bytes of the filename field on a real drive is used.\n" " -b file Bootstrap: Send loader file to client\n" " -l List available loader files and bootstrap help\n" "\n" @@ -1400,8 +1421,9 @@ int main(int argc, char **argv) if (getenv("ATTRIB")) default_attrib = *getenv("ATTRIB"); // commandline options - while ((i = getopt (argc, argv, ":gurvd:p:wb:z:hl^")) >=0) + while ((i = getopt (argc, argv, ":0gurvd:p:wb:z:hl^")) >=0) switch (i) { + case '0': dot_offset=0; upcase=false; default_attrib=0x20; break; case 'g': getty_mode = true; debug = 0; break; case 'u': upcase = true; break; case 'r': rtscts = true; break; diff --git a/ref/advanced_options.txt b/ref/advanced_options.txt new file mode 100644 index 0000000..a4d42d9 --- /dev/null +++ b/ref/advanced_options.txt @@ -0,0 +1,127 @@ +Some special features & controls, and experiments. + +Aside from the options displayed by the help options -h and -l, +there are also some debugging and special options and some environment +variables. + +Commandline switches: + + -^ Config dump. This just displays several config options and exits. + If used in cencert with -vv or more, then it shows even more + info, including the results of all environment variables. + + This is a way to verify that config options are actually in effect. + +Environment variables: + +To use these, just put them in the environment. The simples is just type +them on the same command line , before the executable. + +Example: + + $ ROOT_LABEL="/" PARENT_LABEL="^" dl -vvv + + + ROOT_LABEL ex: ROOT_LABEL="/" ROOT_LABEL="dlplus" ROOT_LABEL=" <> " + ROOT_LABEL="C:\" + + The original Desk-Link, and so, most other emulators also, + puts the string "ROOT " in the top-right corner of the TS-DOS + display when the user is in the top level share directory. + + This variable lets you put whatever you want there. The string. + If you give it a string shorter than 6 bytes, it will be left + justified. If you give a string longer than 6 bytes it will be truncated. + If you want a shorter string to be centered, just include all 6 bytes + in the value with quotes. You can make it blank with "". + + PARENT_LABEL ex: PARENT_LABEL="^" PARENT_LABEL="______" + + Similar to ROOT_LABEL, Dees-Link used the word "PARENT" for the + the "go back up one level" directory entry in the top-left file + slot in the directory listing screen. This is the Desk-Link + equivalent to ".." + + This variable lets you put whatever you want there instead of + "PARENT", with limitations. Unfortunately, since this appears + in the file list like any other file, TS-DOS is picky about + what it considers a "bad" filename, and you can't put just anything + here. Most notably, you can't use ".." :/ DAMMIT! + + This is a TS-DOS limitation. You CAN actually use "..", in that, + dlplus will send it to TS-DOS, and TS-DOS will even display it + properly in the file listing, but if you try to hit enter on + it to move back up a directory, TS-DOS just beeps and says bad + filename, and never sends a single byte over the wire. The error + is coming from TS-DOS, not from the server. + + However a lot of other things do work fine. Generally, for something + to work, it has to be left-justified like a real filename would be. + It takes some trial & error to figure out what works. + + The examples above work. + + I use ROOT_LABEL="/" PARENT_LABEL="^" myself. + + ATTRIB ex: ATTRIB="" ATTRIB=A ATTRIB=F + + The TPDD drive has a single-character field with every filename. + It's just a text field that the drive can use to return filtered + matching files all together before any others during file listings. + It's not really used by any software I know of, but the field is + there, and Floppy always writes an 'F' there for ever file. It doesn't + really matter or do anything. Everything still works if it's blank + for instance. But because Floppy always writes an F there, so does + every other client and emulator. + + When an emulator is serving files, usually there is no actual attribute + byte stored with the file, so all emulators just say F there for every + file when they give filenames to clients. + + But a real drive doesn't care, and TS-DOS is not the only client + that uses TPDD drives or emulators, so here is a way to modify + that if you want. + + All this variable does is, when the client requests a file directory + listing and we're giving file name and size to the client, it uses + this instead of F for the attribute byte. + + Who/what ever cares? Who knows. + + DOT_OFFSET ex: DOT_OFFSET=0 DOT_OFFSET=25 + + Just another way to do the same thing as the -w or 0 options. + + Default behavior is dot_offset=6 , which makes 6.2 space-padded filenames + the -w option for WP-2 does the same thing but 8.2 + the -0 option disables all name re-formatting or assumptions + + This variable would let you set some arbitrary value like 0 or 25 or + anywhere in between. There is no reason to do that. + + It's possibly useful as just as an alternative way to set 0, 6, or 8 though, + which would essentially change the default behavior instead of having to + specify all the special options you want every time. + + OPR_MODE 0 or 1, default is 1 + + A TPDD1 / FB-100 drive has two main modes of operation called + Operation-mode and FDC-mode (actually the software manual calls + them Operation mode and FDC Emulation mode) + + These are basically two entire different sets of commands to + use the drive. + + The drive is usually in Operation mode, but a few things do use FDC mode. + You can switch the starting default state by setting this to 0. + + BAUD 9600 or 19200 + + The only valid values are 9600 and 19200, and 19200 is already + the default. + + But if for whatever reason you want to force the server to run at 9600 + instead of 19200, this how you can. Some drives like Purple Computing + arre actually hard wired to run at 9600, so, maybe you want to emulate + one of those, perhaps for testing software against it. + From 9696fd1a2a3dbd306d071a450d7a2ff5cf9cbc29 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Tue, 31 May 2022 22:58:05 -0400 Subject: [PATCH 022/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5ba4ea4..e149157 100644 --- a/README.md +++ b/README.md @@ -43,4 +43,4 @@ dl -b ./rxcini.DO ;dl -u ``` ## Advanced -See [](ref/advanced.options.txt) +See [ref/advanced.options.txt]() From 1c6d4d056bef258c3cb7d0690723affd966ca0e3 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 1 Jun 2022 01:44:43 -0400 Subject: [PATCH 023/206] clean up status messages for verbose levels 0, 1, & 2 --- dl.c | 85 ++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 48 insertions(+), 37 deletions(-) diff --git a/dl.c b/dl.c index 889b4e4..7a8138e 100644 --- a/dl.c +++ b/dl.c @@ -407,17 +407,16 @@ void client_tty_vmin(int n) { } int write_client_tty(void *b, size_t n) { - dbg(3,"%s()\n",__func__); + dbg(4,"%s(%u)\n",__func__,n); dbg(2,"SEND: "); dbg_b(2,b,n); return (write(client_tty_fd,b,n)); } // TODO - retry sanity check counter - don't rety forever int read_client_tty(void *b, const unsigned int n) { + dbg(4,"%s(%u)\n",__func__,n); unsigned t = 0; - dbg(4,"read_client_tty(%u): ",n); - #if (READ_TTY_METHOD == 2) // try to force read() to block until n bytes, but also retry // "expected 129, got 64" still better than before. @@ -445,7 +444,7 @@ int read_client_tty(void *b, const unsigned int n) { while (t0;i--) if(namep[i]=='.') break; + dbg(5,"i:%d|%s|%s\n",i,f.client_fname,namep); + // write client extension if (flags&DIR_FLAG) { // directory - put TS-DOS DME ext on client fname f.client_fname[dot_offset+1]='<'; f.client_fname[dot_offset+2]='>'; f.len=0; - } else { - // file - put first 2 bytes of ext on client fname + } else if (i>0) { + // file - put first 2 bytes of ext on client fname, if any + // only if name has a dot and at least 1 byte before the dot f.client_fname[dot_offset+1]=namep[i+1]; f.client_fname[dot_offset+2]=namep[i+2]; } @@ -573,8 +577,9 @@ FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) snprintf(f.client_fname,25,"%-24.24s",namep); } + dbg(5,"actual: \"%s\"\n",namep); dbg(4," local: \"%s\"\n",f.local_fname); - dbg(4,"client: \"%s\"\n",f.local_fname); + dbg(4,"client: \"%s\"\n",f.client_fname); dbg(4," len: %d\n",f.len); dbg(4," flags: %d\n",f.flags); @@ -714,7 +719,7 @@ int req_dirent(unsigned char *data) case DIRENT_SET_NAME: /* set filename for subsequent actions */ dbg(3,"DIRENT_SET_NAME\n"); if (data[2]) { - dbg(3,"filename: \"%24.24s\"\n",data+2); + dbg(3,"filename: \"%-24.24s\"\n",data+2); dbg(3," attrib: \"%c\" (%1$02X)\n",data[26]); } strncpy(filename,(char *)data+2,TPDD_FILENAME_LEN); @@ -723,24 +728,24 @@ int req_dirent(unsigned char *data) for (p = strrchr(filename,' '); p >= filename && *p == ' '; p--) *p = 0; cur_file=find_file(filename); if (cur_file) { - fprintf (stderr, "Found: \"%s\" %u\n", cur_file->local_fname, cur_file->len); + dbg(3,"Found: \"%s\" %u\n", cur_file->local_fname, cur_file->len); ret_dirent(cur_file); } else { // strncpy(cur_file->client_fname, filename, TPDD_FILENAME_LEN); - fprintf (stderr, "Not found\n"); + dbg(3,"Not found\n"); ret_dirent(NULL); // empty_dirent(); if (filename[dot_offset+1]=='<' && filename[dot_offset+2]=='>') { - cur_file=make_file_entry(pdd_to_local_fn(filename), 0, DIR_FLAG); + cur_file=make_file_entry(collapse_padded_name(filename), 0, DIR_FLAG); } else { - cur_file=make_file_entry(pdd_to_local_fn(filename), 0, 0); + cur_file=make_file_entry(collapse_padded_name(filename), 0, 0); } } break; case DIRENT_GET_FIRST: dbg(3,"DIRENT_GET_FIRST\n"); - if(debug==1) dbg(1,"directory listing\n"); + if(debug==1) dbg(2,"Directory Listing\n"); update_file_list(); ret_dirent(get_first_file()); break; @@ -765,14 +770,13 @@ void update_dme_cwd() { dbg(2,"%s()\n",__func__); int i; + memset(cwd,0x00,PATH_MAX); + (void)(getcwd(cwd,PATH_MAX-1)+1); + dbg(0,"Changed Dir: %s\n",cwd); if(dir_depth) { int j; - memset(cwd,0x00,PATH_MAX); - if(getcwd(cwd,PATH_MAX-1) ) { - memset(dme_cwd,0x20,6); - for(i=strlen(cwd); i>=0 ; i--) if(cwd[i]=='/') break; - for(j=0; j<6 && cwd[i+j+1] && cwd[i+j+1]!='.'; j++) dme_cwd[j]=cwd[i+j+1]; - } + for(i=strlen(cwd); i>=0 ; i--) if(cwd[i]=='/') break; + for(j=0; j<6 && cwd[i+j+1] && cwd[i+j+1]!='.'; j++) dme_cwd[j]=cwd[i+j+1]; } else { memcpy(dme_cwd,dme_root_label,6); } @@ -829,6 +833,7 @@ int req_open(unsigned char *data) ret_std(ERR_FMT_MISMATCH); else { f_open_mode=omode; + dbg(1,"Open for write: %s\n",cur_file->local_fname); ret_std(ERR_SUCCESS); } } @@ -848,6 +853,7 @@ int req_open(unsigned char *data) ret_std(ERR_FMT_MISMATCH); else { f_open_mode=omode; + dbg(1,"Open for appen: %s\n",cur_file->local_fname); ret_std (ERR_SUCCESS); } break; @@ -886,6 +892,7 @@ int req_open(unsigned char *data) ret_std (ERR_NO_FILE); else { f_open_mode = omode; + dbg(1,"Open for read: %s\n",cur_file->local_fname); ret_std (ERR_SUCCESS); } } @@ -958,6 +965,7 @@ void req_delete(void) rmdir(cur_file->local_fname); else unlink (cur_file->local_fname); + dbg(1,"Deleted: %s\n",cur_file->local_fname); update_file_list(); ret_std (ERR_SUCCESS); } @@ -990,15 +998,17 @@ void ret_tsdos_mystery() { void req_rename(unsigned char *data) { - dbg(3,"%s()\n",__func__); - char *new_name = (char *)data + 4; - - new_name[TPDD_FILENAME_LEN]=0; - - if (rename (cur_file->local_fname, pdd_to_local_fn(new_name))) + dbg(3,"%s(%-24.24s)\n",__func__,data+2); + char *t = (char *)data + 2; + //new_name[TPDD_FILENAME_LEN]={0x00}; + //char t[TPDD_FILENAME_LEN+1]={0x00}; + memcpy(t,collapse_padded_name(t),TPDD_FILENAME_LEN); + if (rename (cur_file->local_fname,t)) ret_std(ERR_SECTOR_NUM); - else + else { + dbg(1,"Renamed: %s -> %s\n",cur_file->local_fname,t); ret_std(ERR_SUCCESS); + } } void dispatch_opr_cmd(unsigned char *data) @@ -1352,8 +1362,7 @@ void show_config () { dbg(0,"bootstrap_mode : %s\n",bootstrap_mode?"true":"false"); dbg(0,"bootstrap_file : \"%s\"\n",bootstrap_file); dbg(0,"client_tty_name : \"%s\"\n",client_tty_name); - if (getcwd(cwd,PATH_MAX-1)) dbg(0, - "share_path : \"%s\"\n",cwd); + dbg(0,"share_path : \"%s\"\n",cwd); dbg(2,"opr_mode : %d\n",opr_mode); dbg(2,"dot_offset : %d\n",dot_offset); dbg(2,"baud : %d\n",client_baud==B9600?9600:client_baud==B19200?19200:-1); @@ -1409,7 +1418,7 @@ int main(int argc, char **argv) strcat(client_tty_name,S_(DEFAULT_CLIENT_TTY)); } - // env overrides for some things that don't have switches + // environment variable overrides for some things that don't have switches if (getenv("OPR_MODE")) opr_mode = atoi(getenv("OPR_MODE")); if (getenv("DOT_OFFSET")) dot_offset = atoi(getenv("DOT_OFFSET")); if (getenv("BAUD")) {i=atoi(getenv("BAUD")); @@ -1468,10 +1477,13 @@ int main(int argc, char **argv) } } + (void)(getcwd(cwd,PATH_MAX-1)+1); + if (x) { show_config(); return 0; } - dbg(1,"DeskLink+ " S_(APP_VERSION) "\n" - "Using Serial Device: %s\n",client_tty_name); + dbg(0,"DeskLink+ " S_(APP_VERSION) "\n" + "Serial Device: %s\n" + "Working Dir: %s\n",client_tty_name,cwd); if(client_tty_fd<0) client_tty_fd=open((char *)client_tty_name,O_RDWR @@ -1488,11 +1500,10 @@ int main(int argc, char **argv) return(1); } - if (debug && !bootstrap_mode) { - dbg(1,"Working In Directory: \n" - "--------------------------------------------------------------------------------\n"); - (void)(system ("pwd >&2;ls -l >&2")+1); - dbg(1,"--------------------------------------------------------------------------------\n"); + if (!bootstrap_mode) { + dbg(0,"--------------------------------------------------------------------------------\n"); + (void)(system ("ls >&2")+1); + dbg(0,"--------------------------------------------------------------------------------\n"); } // getty mode From d8afa572547e76ed9999814ee58d3dbeced4b7e8 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Wed, 1 Jun 2022 01:55:36 -0400 Subject: [PATCH 024/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e149157..c0d0bcc 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ dl -h dl ``` -## list all available TPDD client installers, and then bootstrap one of them. +## list all available TPDD client installers, and then bootstrap one of them ``` dl -l dl -b TS-DOS.100 From d4c26f60c45cf4bdf3ad0616d4dbeaf84c24dba9 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 2 Jun 2022 20:59:59 -0400 Subject: [PATCH 025/206] fix TEENY, list maintenance, ext parsing, dme detection * Conclude the TTY_READ_METHOD experiment Know what to do with VMIN & VTIME now VMIN>0 VTIME>0 for most reads is all the blocking we want * blocks indefinitely until first byte * the read loop collects as many bytes as available per iteration instead of just one Those 2 things improve the the efficiency basically as good as you can get with serial tty without switching over to using select() One special read for detecting DME uses different settings to allow it to time out instead of hang, just for that one read(). * conclude the ZZ_SCAN_METHOD experiment * Fix TEENY and other clients and apps that don't do any get-first or get-next, by doing update_file_list() before every dirent(set-name). set-name IS required before, any kind of file operation. Basically, a client can access a file by a name it just knows, or wishes to create, out of the blue. The set-name is the first we know of it. But in order to open or delete or rename a file, it first has to be set with set-name. update_file_list() is still required before get-first also, because get-first can come without any set-name first too. but all other places like after rename, delete, create, none of those are needed Without this, TEENY could not load files because we never populated the list * Fix extension parsing in make_file_entry() it barfed on files with no extension * Don't create list entries for directories unless dme has actually been detected from the client. * Document a very pain in the ass behavior of TS-DOS during DME handshake --- dl.c | 632 +++++++++++++++++++++------------------------------- ref/dme.txt | 334 +++++++++++++++------------ 2 files changed, 448 insertions(+), 518 deletions(-) diff --git a/dl.c b/dl.c index 7a8138e..88b889e 100644 --- a/dl.c +++ b/dl.c @@ -49,15 +49,15 @@ MA 02111, USA. * and the +3 is 3 extra bytes for type, length, and checksum. * * Similarly, most functions include frequent references to these - * byte offsets foo[0], foo[1], foo[2], foo+2, foo[foo[1]+2], etc. + * byte offsets buf[0], buf[1], buf[2], buf+2, buf[buf[1]+2]. * * functions named req_*() receive a command in this format * functions named ret_*() generate a response in this format * * There is also an FDC-mode that TPDD1/FB-100 drives have, which has - * a completely different format, but to date this program only - * implements Operation-mode. TPDD2 drives do not have FDC-mode, but - * they do have extra Operation-mode commands that TPDD1 does not have, + * a completely different format. This program only implements + * Operation-mode. TPDD2 drives do not have FDC-mode, but they do have + * extra Operation-mode commands that TPDD1 does not have, * some of which this program does implement. * * See the ref/ directory for more details, including a copy of the @@ -115,82 +115,25 @@ MA 02111, USA. #endif #define DEFAULT_BASIC_BYTE_MSEC 6 -#define DEFAULT_TPDD_FILE_ATTRIB 'F' -// These are crap, since they are just ordinary words that could -// easily conflict with user files/dirs, but this is what the original -// Desk-Link did, and what TS-DOS and possibly other software expects. -// So these are default, but you can override them either here at compile-time -// or by environment variables at run-time. -#define DEFAULT_DME_ROOT_LABEL "ROOT" // $ROOT_LABEL -#define DEFAULT_DME_PARENT_LABEL "PARENT" // $PARENT_LABEL +#define DEFAULT_TPDD_FILE_ATTRIB 0x46 // F -//////////////////////////////////////////////////////////////////////// -// -// Experimental feature selections +// These defaults are the same as what the original Desk-Link does. +// But you can change them to pretty much anything. The parent label is +// picky because whatever you use has to look like a valid filename +// to ts-dos. ".." doesn't work, but "^" does for instance. +#define DEFAULT_DME_ROOT_LABEL " ROOT " // ROOT_LABEL="/" +#define DEFAULT_DME_PARENT_LABEL "PARENT" // PARENT_LABEL"^" -// serial tty read() behavior -// VMIN blocking method not working. The idea was to set VTIME=0 VMIN=nbytes -// just before each read(), to make read() block until n bytes have been -// received, instead of polling. Seems to be only partially working. It -// does seem to produce larger contiguous reads, but still not full. -// -// Go into TS-DOS and select a large file and try to save it. -// F1-Save -> req_write() -> read_client_tty() -> "expected 129 bytes, got 64" -// Very consistent and repeatable, every single time not intermittent. -// -// And yet perror() says Success, and read() returnd 64 not 0 or -1. -// So read() is not blocking like every web page claims this combination -// of settings will do. -// -// However, adding retry around that works fine. See read_client_tty(). -// -// 0 Is the safest fallback in case of problems. It's still better now -// than it used to be thanks to changing the loop to read in as big of -// chunks as read() will deliver, instead of one byte per read(), and -// because of the VTIME/VMIN defaults below, now even though it doesn't -// block for the whole read like I want, it does at least block until at least -// the first byte, which is enough to free the cpu 99%. No race. -// -// 1 Is described above, and exhibits the incomplete reads problem. -// -// 2 ... is "1" with retries instead of bailing. Best of both worlds? -// 64 out of 129 bytes is still 64x better than 1. I'm not sure if it's -// expensive or abusive or otherwise not recommended to be calling -// tcsetattr() so frequently. It may be that 0 is best. -#define READ_TTY_METHOD 2 // 0 normal, 1 VMIN blocking, 2 VMIN blocking plus retries. - -// Two different forms of the ZZ scanner at the top of get_opr_cmd() -// Both seem solid. -#define ZZ_SCAN_METHOD 1 - -// These values are set to a dynamic value just before every read() -// and restored immediately after if TTY_READ_METHOD>0 . -// These are the all-the-time defaults for TTY_READ_METHOD=0, -// and in between reads in all cases. These are reasonable defaults. -// In particulare they make the read() loop block at least until the -// first/next byte is available, which is enough to free the cpu -// even without the full 128-byte blocking I was hoping for. +// termios VMIN & VTIME #define C_CC_VMIN 1 #define C_CC_VTIME 5 -// This controls if the tty open() includes O_NONBLOCK. Man pages -// and web guides suggest this just sets if the tty will honor -// or ignore the DSR/DTR/DCD lines. Others say that VTIME/VMIN -// will *not* block if O_NONBLOCK and/or O_NDELAY or non-canonical -// mode in general are set. -// The original code had O_NONBLOCK in the open() call. (Same as -// 1 here). TS-DOS does use DSR/DTR to detect drive readiness -// with a real drive, and has no other form of flow conytrol. -// It can be confusing or annoying for users unfamiliar with -// serial cabling, but I suggest leaving this false / 0. +//////////////////////////////////////////////////////////////////////// +// +// Experimental feature selections +#define READ_TTY_METHOD 1 #define IGNORE_DSR 0 -// TODO - make O_NOCTTY run-time configurable. -// O_NO_CTTY was not in the original open() flags, -// but seems advisable for this kind of usage. -// But I don't really know so here is a control. -#define NO_CTTY 1 - /*************************************************************/ // drive firmware/protocol constants @@ -286,25 +229,25 @@ MA 02111, USA. // There is no documentation for FDC error codes. // These are guesses from experimenting. // These appear in the first hex pair of an 8-byte FDC-mode response. -#define ERR_FDC_SUCCESS 0 // 'OK' -#define ERR_FDC_LSN_LO 17 // 'Logical Sector Number Below Range' -#define ERR_FDC_LSN_HI 18 // 'Logical Sector Number Above Range' -#define ERR_FDC_PSN HI 19 // 'Physical Sector Number Above Range' -#define ERR_FDC_PARAM 33 // 'Parameter Invalid, Wrong Type' -#define ERR_FDC_LSSC_LO 50 // 'Invalid Logical Sector Size Code' -#define ERR_FDC_LSSC_HI 51 // 'Logical Sector Size Code Above Range' +#define ERR_FDC_SUCCESS 0 // 'OK' +#define ERR_FDC_LSN_LO 17 // 'Logical Sector Number Below Range' +#define ERR_FDC_LSN_HI 18 // 'Logical Sector Number Above Range' +#define ERR_FDC_PSN HI 19 // 'Physical Sector Number Above Range' +#define ERR_FDC_PARAM 33 // 'Parameter Invalid, Wrong Type' +#define ERR_FDC_LSSC_LO 50 // 'Invalid Logical Sector Size Code' +#define ERR_FDC_LSSC_HI 51 // 'Logical Sector Size Code Above Range' #define ERR_FDC_NOT_FORMATTED 160 // 'Disk Not Formatted' -#define ERR_FDC_READ 161 // 'Read Error' +#define ERR_FDC_READ 161 // 'Read Error' #define ERR_FDC_WRITE_PROTECT 176 // 'Write-Protected Disk' -#define ERR_FDC_COMMAND 193 // 'Invalid Command' -#define ERR_FDC_NO_DISK 209 // 'Disk Not Inserted' +#define ERR_FDC_COMMAND 193 // 'Invalid Command' +#define ERR_FDC_NO_DISK 209 // 'Disk Not Inserted' // fixed lengths -#define TPDD_DATA_MAX 0x80 -#define TPDD_FREE_SECTORS 0x50 // max valid value is 80 sectors -#define LEN_RET_STD 0x01 -#define LEN_RET_DME 0x0B -#define LEN_RET_DIRENT 0x1C +#define TPDD_DATA_MAX 0x80 +#define TPDD_FREE_SECTORS 0x50 // max valid value is 80 sectors +#define LEN_RET_STD 0x01 +#define LEN_RET_DME 0x0B +#define LEN_RET_DIRENT 0x1C // KC-85 platform BASIC interpreter EOF byte for bootstrap() #define BASIC_EOF 0x1A @@ -330,12 +273,14 @@ int client_tty_fd = -1; struct termios client_termios; int o_file_h = -1; unsigned char buf[TPDD_DATA_MAX+3]; -char cwd[PATH_MAX]={0x00}; +char cwd[PATH_MAX] = {0x00}; char dme_cwd[6] = DEFAULT_DME_ROOT_LABEL; char client_tty_name[PATH_MAX]; -char bootstrap_file[PATH_MAX] = {0x00}; // S_(DEFAULT_CLIENT_APP) "." S_(DEFAULT_CLIENT_MODEL); -bool enable_dme = false; +char bootstrap_file[PATH_MAX] = {0x00}; int opr_mode = 1; // 0=FDC-mode 1=Operation-mode +bool dme_detected = false; +bool dme_fdc = false; +bool dme_disabled = false; FILE_ENTRY *cur_file; int dir_depth=0; @@ -377,79 +322,30 @@ void dbg_p(const int v, unsigned char *b) { dbg_b(v,b+2,b[1]); } -void bz (void) { - //dbg(6,"%s()\n",__func__); - memset(buf,0x00,TPDD_DATA_MAX+3); -} - -// make read(client_tty_fd,,) block until n bytes received -// >-1 = set new values if not already -// <0 = set default values if not already -// <-1 = refresh tcgetattr() to be more certain, then set default values if not already -void client_tty_vmin(int n) { - if (n<-1) tcgetattr(client_tty_fd,&client_termios); - if (n<0) { - if (client_termios.c_cc[VTIME] == C_CC_VTIME && client_termios.c_cc[VMIN] == C_CC_VMIN) return; - //dbg(4,"setting default vtime vmin\n"); - client_termios.c_cc[VTIME] = C_CC_VTIME; - client_termios.c_cc[VMIN] = C_CC_VMIN; - } else { - if (client_termios.c_cc[VTIME] == 0 && client_termios.c_cc[VMIN] == n) return; - //dbg(4,"setting blocking vtime vmin\n"); - client_termios.c_cc[VTIME] = 0; - client_termios.c_cc[VMIN] = n; - } +// set termios VMIN & VTIME +void client_tty_vmt(int m,int t) { + if (m<-1 || t<-1) tcgetattr(client_tty_fd,&client_termios); + if (m<0) m = C_CC_VMIN; + if (t<0) t = C_CC_VTIME; + if (client_termios.c_cc[VMIN] == m && client_termios.c_cc[VTIME] == t) return; + client_termios.c_cc[VMIN] = m; + client_termios.c_cc[VTIME] = t; tcsetattr(client_tty_fd,TCSANOW,&client_termios); - //if (debug>3) { - // tcgetattr(client_tty_fd,&client_termios); - // dbg(4,"client_termios.c_cc[VTIME]=%u\nclient_termios.c_cc[VMIN]=%u\n",client_termios.c_cc[VTIME],client_termios.c_cc[VMIN]); - //} } int write_client_tty(void *b, size_t n) { dbg(4,"%s(%u)\n",__func__,n); - dbg(2,"SEND: "); dbg_b(2,b,n); + dbg(3,"SEND: "); dbg_b(3,b,n); return (write(client_tty_fd,b,n)); } -// TODO - retry sanity check counter - don't rety forever +// TODO - retry sanity check counter - don't retry forever int read_client_tty(void *b, const unsigned int n) { dbg(4,"%s(%u)\n",__func__,n); unsigned t = 0; - -#if (READ_TTY_METHOD == 2) - // try to force read() to block until n bytes, but also retry - // "expected 129, got 64" still better than before. - //dbg(3,"new method\n"); - int i; - client_tty_vmin(n); - while (t" to indicate directories, so we add those - // to the "filename" here when we encounter a directory, if enable_dme - // is enabled. + // to the "filename" here when we encounter a directory. + + // Directories are filtered before calling us if dme is disabled // WP-2 requires "%-8.8s.%-2.2s" @@ -537,14 +430,14 @@ FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) f.len=0; } else if (i>0) { // file - put first 2 bytes of ext on client fname, if any - // only if name has a dot and at least 1 byte before the dot + // only if name has a dot and at least 1 other byte before the dot f.client_fname[dot_offset+1]=namep[i+1]; f.client_fname[dot_offset+2]=namep[i+2]; } dbg(5,"\"%s\"\n",f.client_fname); - // replace ".." with "PARENT" (or whatever is in dme_parent_label) + // replace ".." with dme_parent_label if (f.local_fname[0]=='.' && f.local_fname[1]=='.') { memcpy (f.client_fname, dme_parent_label, 6); } else { @@ -586,17 +479,16 @@ FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) return &f; } -int read_next_dirent(DIR *dir) -{ +int read_next_dirent(DIR *dir) { dbg(3,"%s()\n",__func__); struct stat st; struct dirent *dire; int flags; if (dir == NULL) { - printf ("%s:%u\n", __FUNCTION__, __LINE__); dire=NULL; - ret_std (ERR_NO_DISK); + dbg(0,"%s(NULL) ???\n",__func__); + ret_std(ERR_NO_DISK); return(0); } @@ -611,16 +503,16 @@ int read_next_dirent(DIR *dir) if (S_ISDIR(st.st_mode)) flags=DIR_FLAG; else if (!S_ISREG (st.st_mode)) continue; + if (flags==DIR_FLAG && !dme_detected) continue; + // don't do these in raw mode if (dot_offset) { if (dire->d_name[0]=='.') continue; // skip "." ".." and hidden files - //if (dire->d_name[0]=='#') continue; // skip "#" - if (strlen(dire->d_name)>LOCAL_FILENAME_MAX) continue; // skip long filenames } /* add file to list so we can traverse any order */ - add_file (make_file_entry(dire->d_name, st.st_size, flags)); + add_file(make_file_entry(dire->d_name, st.st_size, flags)); break; } @@ -629,16 +521,15 @@ int read_next_dirent(DIR *dir) return 1; } -void update_file_list() -{ +void update_file_list() { dbg(3,"%s()\n",__func__); DIR * dir; dir=opendir("."); /** rebuild the file list */ file_list_clear_all(); - if(dir_depth) add_file (make_file_entry("..", 0, DIR_FLAG)); - while (read_next_dirent (dir)); + if(dir_depth) add_file(make_file_entry("..", 0, DIR_FLAG)); + while (read_next_dirent(dir)); closedir(dir); } @@ -667,7 +558,7 @@ int ret_dirent(FILE_ENTRY *ep) unsigned short size; int i; - bz(); + memset(buf,0x00,TPDD_DATA_MAX+3); buf[0]=RET_DIRENT; buf[1]=LEN_RET_DIRENT; @@ -704,7 +595,7 @@ int ret_dirent(FILE_ENTRY *ep) * heads-up * TS-DOS sometimes submits request with junk in the filename & attrib fields * in some cases where a real drive would ignore them (get-first/get-next). - * So only look at those fields for the set-name case. + * So only look at those fields for the set-name. */ int req_dirent(unsigned char *data) { @@ -714,6 +605,7 @@ int req_dirent(unsigned char *data) char *p; char filename[TPDD_FILENAME_LEN+1] = { 0x00 }; + int f = 0; switch (data[27]) { case DIRENT_SET_NAME: /* set filename for subsequent actions */ @@ -722,32 +614,35 @@ int req_dirent(unsigned char *data) dbg(3,"filename: \"%-24.24s\"\n",data+2); dbg(3," attrib: \"%c\" (%1$02X)\n",data[26]); } + // we must update before every set-name for at least 2 reasons: + // 1 - get-first is not required before set-name + // TEENY for instance never does get-first or get-next + // 2 - Files may be changed by other processes than ourself + // set-name however is required for, and before, any other action + update_file_list(); strncpy(filename,(char *)data+2,TPDD_FILENAME_LEN); filename[TPDD_FILENAME_LEN]=0; - /* Remove trailing spaces */ - for (p = strrchr(filename,' '); p >= filename && *p == ' '; p--) *p = 0; + // Remove trailing spaces + for (p = strrchr(filename,' '); p >= filename && *p == ' '; p--) *p = 0x00; cur_file=find_file(filename); if (cur_file) { - dbg(3,"Found: \"%s\" %u\n", cur_file->local_fname, cur_file->len); + dbg(3,"Exists: \"%s\" %u\n", cur_file->local_fname, cur_file->len); ret_dirent(cur_file); - } else { - // strncpy(cur_file->client_fname, filename, TPDD_FILENAME_LEN); - dbg(3,"Not found\n"); + if (filename[dot_offset+1]=='<' && filename[dot_offset+2]=='>') f = DIR_FLAG; + cur_file=make_file_entry(collapse_padded_name(filename), 0, f); + dbg(3,"New %s: \"%s\"\n",f==DIR_FLAG?"Directory":"File",cur_file->local_fname); ret_dirent(NULL); - // empty_dirent(); - if (filename[dot_offset+1]=='<' && filename[dot_offset+2]=='>') { - cur_file=make_file_entry(collapse_padded_name(filename), 0, DIR_FLAG); - } else { - cur_file=make_file_entry(collapse_padded_name(filename), 0, 0); - } } break; case DIRENT_GET_FIRST: dbg(3,"DIRENT_GET_FIRST\n"); if(debug==1) dbg(2,"Directory Listing\n"); + // we must update every time before get-first, + // because set-name is not required before get-first update_file_list(); ret_dirent(get_first_file()); + dme_fdc = 0; // see ref/fdc.txt break; case DIRENT_GET_NEXT: dbg(3,"DIRENT_GET_NEXT\n"); @@ -765,9 +660,8 @@ int req_dirent(unsigned char *data) return 0; } -// update dme_cwd with a 6-byte truncated / space-padded working dir -void update_dme_cwd() -{ +// update dme_cwd with a 6-byte truncated working dir +void update_dme_cwd() { dbg(2,"%s()\n",__func__); int i; memset(cwd,0x00,PATH_MAX); @@ -776,7 +670,7 @@ void update_dme_cwd() if(dir_depth) { int j; for(i=strlen(cwd); i>=0 ; i--) if(cwd[i]=='/') break; - for(j=0; j<6 && cwd[i+j+1] && cwd[i+j+1]!='.'; j++) dme_cwd[j]=cwd[i+j+1]; + for(j=0; j<6 && cwd[i+j+1]; j++) dme_cwd[j]=cwd[i+j+1]; } else { memcpy(dme_cwd,dme_root_label,6); } @@ -784,8 +678,7 @@ void update_dme_cwd() // TS-DOS DME return // Construct a DME packet around dme_cwd and send it to the client -void ret_dme_cwd() -{ +void ret_dme_cwd() { dbg(2,"%s(\"%s\")\n",__func__,dme_cwd); buf[0]=RET_STD; buf[1]=LEN_RET_DME; @@ -796,16 +689,44 @@ void ret_dme_cwd() buf[11]='>'; buf[12]=0x20; buf[13]=checksum(buf); - dbg(3,"Setting TS-DOS CWD: \"%6.6s\"\n",buf+3); write_client_tty(buf,14); } + +// Any FDC request might actually be a DME request +// See ref/dme.txt for the full explaination because it's a lot. +// dme_fdc is only retained for the duration of one directory listing +// dme_detected is retained forever +void req_fdc() { + dbg(2,"%s()\n",__func__); + + dbg(3,"dme detection %s\n",dme_disabled?"disabled":"allowed"); + dbg(3,"dme %spreviously detected\n",dme_fdc?"":"not "); + + if (!dme_fdc && !dme_disabled) { + dbg(3,"testing for dme\n"); + buf[0] = 0x00; + client_tty_vmt(0,1); // allow this read to time out + (void)(read(client_tty_fd,buf,1)+1); + client_tty_vmt(-1,-1); // restore normal VMIN/VTIME + if (buf[0]==0x0D) dme_fdc = true; + } + if (dme_fdc) { + dme_detected=true; + dbg(3,"dme detected\n"); + ret_dme_cwd(); + } else { + opr_mode = 0; + dbg(1,"Switching to \"FDC\" mode\n"); + } +} + // b[0] = fmt 0x01 // b[1] = len 0x01 // b[2] = mode 0x01 write new // 0x02 write append // 0x03 read -// b[3] = ck +// b[3] = chk int req_open(unsigned char *data) { dbg(2,"%s(\"%s\")\n",__func__,cur_file->local_fname); @@ -853,7 +774,7 @@ int req_open(unsigned char *data) ret_std(ERR_FMT_MISMATCH); else { f_open_mode=omode; - dbg(1,"Open for appen: %s\n",cur_file->local_fname); + dbg(1,"Open for append: %s\n",cur_file->local_fname); ret_std (ERR_SUCCESS); } break; @@ -903,9 +824,8 @@ int req_open(unsigned char *data) // b[0] = 0x03 // b[1] = 0x00 -// b[2] = ck -void req_read(void) -{ +// b[2] = chk +void req_read(void) { dbg(2,"%s()\n",__func__); int i; @@ -924,10 +844,10 @@ void req_read(void) buf[1] = (unsigned char) i; buf[2+i] = checksum(buf); - dbg(4,"...OUT going packet TO client...\n"); + dbg(4,"...outgoing packet...\n"); dbg(5,"buf[]\n"); dbg_b(5,buf,-1); dbg_p(4,buf); - dbg(4,"................................\n"); + dbg(4,".....................\n"); write_client_tty(buf, 3+i); } @@ -935,38 +855,30 @@ void req_read(void) // b[0] = 0x04 // b[1] = 0x01 - 0x80 // b[2] = b[1] bytes -// b[2+len] = ck -void req_write(unsigned char *data) -{ +// b[2+len] = chk +void req_write(unsigned char *data) { dbg(2,"%s()\n",__func__); - dbg(4,"...IN coming packet FROM client...\n"); + dbg(4,"...incoming packet...\n"); dbg(5,"data[]\n"); dbg_b(5,data,-1); dbg_p(4,data); - dbg(4,"..................................\n"); + dbg(4,".....................\n"); - if(o_file_h<0) { - ret_std(ERR_CMDSEQ); - return; - } - if(f_open_mode!=F_OPEN_WRITE && f_open_mode !=F_OPEN_APPEND) { + if (o_file_h<0) {ret_std(ERR_CMDSEQ); return;} + + if (f_open_mode!=F_OPEN_WRITE && f_open_mode !=F_OPEN_APPEND) { ret_std(ERR_FMT_MISMATCH); return; } - if(write (o_file_h,data+2,data[1]) != data[1]) - ret_std (ERR_SECTOR_NUM); - else - ret_std (ERR_SUCCESS); + + if (write (o_file_h,data+2,data[1]) != data[1]) ret_std (ERR_SECTOR_NUM); + else ret_std (ERR_SUCCESS); } -void req_delete(void) -{ +void req_delete(void) { dbg(2,"%s()\n",__func__); - if(cur_file->flags&DIR_FLAG) - rmdir(cur_file->local_fname); - else - unlink (cur_file->local_fname); + if(cur_file->flags&DIR_FLAG) rmdir(cur_file->local_fname); + else unlink (cur_file->local_fname); dbg(1,"Deleted: %s\n",cur_file->local_fname); - update_file_list(); ret_std (ERR_SUCCESS); } @@ -996,12 +908,9 @@ void ret_tsdos_mystery() { write_client_tty(buf, buf[1]+3); } -void req_rename(unsigned char *data) -{ +void req_rename(unsigned char *data) { dbg(3,"%s(%-24.24s)\n",__func__,data+2); char *t = (char *)data + 2; - //new_name[TPDD_FILENAME_LEN]={0x00}; - //char t[TPDD_FILENAME_LEN+1]={0x00}; memcpy(t,collapse_padded_name(t),TPDD_FILENAME_LEN); if (rename (cur_file->local_fname,t)) ret_std(ERR_SECTOR_NUM); @@ -1011,64 +920,47 @@ void req_rename(unsigned char *data) } } -void dispatch_opr_cmd(unsigned char *data) -{ - dbg(3,"%s()\n",__func__); - dbg_p(3,data); +void req_close() { + if(o_file_h>=0) close(o_file_h); + o_file_h = -1; + dbg(1,"Closed: %s\n",cur_file->local_fname); + ret_std(ERR_SUCCESS); +} + +void req_status() { + dbg(2,"%s()\n",__func__); + ret_std(ERR_SUCCESS); +} + +void req_condition() { + dbg(2,"%s()\n",__func__); + ret_std(ERR_SUCCESS); +} + +void req_format() { + dbg(2,"%s()\n",__func__); + ret_std(ERR_SUCCESS); +} + +void dispatch_opr_cmd(unsigned char *data) { + dbg(3,"%s(%02X)\n",__func__,data[0]); + //dbg_p(3,data); dbg(5,"data[]\n"); dbg_b(5,data,-1); switch(data[0]) { - case REQ_DIRENT: - req_dirent(data); - break; - case REQ_OPEN: - req_open(data); - break; - case REQ_CLOSE: - if(o_file_h>=0) close(o_file_h); - o_file_h = -1; - ret_std(ERR_SUCCESS); - break; - case REQ_READ: - req_read(); - break; - case REQ_WRITE: - req_write(data); - break; - case REQ_DELETE: - req_delete(); - break; - case REQ_FORMAT: - ret_std(ERR_SUCCESS); - break; - case REQ_STATUS: - ret_std(ERR_SUCCESS); - break; - case REQ_FDC: // TPDD1 switch to FDC mode. Also part of TS-DOS<>Desk-Link DME. - dbg(2,"REQ_FDC\n"); - if(!enable_dme) { - buf[1] = 0x00; - if (read_client_tty(&buf,1)==1 && buf[0]==0x0D) enable_dme=true; - } - if(enable_dme) ret_dme_cwd(); - else opr_mode=0; // Actual FDC mode request. No response, just switch modes - break; - case REQ_CONDITION: // TPDD2 - ret_std(ERR_SUCCESS); - break; - case REQ_RENAME: // TPDD2 - req_rename(data); - update_file_list (); - break; - case REQ_TSDOS_MYSTERY: /* TS-DOS mystery command 2 */ - ret_tsdos_mystery(); /* part of TS-DOS drive/server detection */ - break; - case REQ_CACHE_WRITE: /* formerly TS-DOS "mystery command 1" */ - ret_cache_write(); /* part of TS-DOS detection of TPDD2 */ - break; - default: - return; - break; + case REQ_DIRENT: req_dirent(data); break; + case REQ_OPEN: req_open(data); break; + case REQ_CLOSE: req_close(); break; + case REQ_READ: req_read(); break; + case REQ_WRITE: req_write(data); break; + case REQ_DELETE: req_delete(); break; + case REQ_FORMAT: req_format(); break; + case REQ_STATUS: req_status(); break; + case REQ_FDC: req_fdc(); break; + case REQ_CONDITION: req_condition(); break; + case REQ_RENAME: req_rename(data); break; + case REQ_TSDOS_MYSTERY: ret_tsdos_mystery(); break; + case REQ_CACHE_WRITE: ret_cache_write(); break; } return; @@ -1079,34 +971,17 @@ int get_opr_cmd(void) dbg(3,"%s()\n",__func__); unsigned char b[TPDD_DATA_MAX+3] = { 0x00 }; unsigned i = 0; - bz(); + memset(buf,0x00,TPDD_DATA_MAX+3); -// both of these work -#if (ZZ_SCAN_METHOD == 1) - // collect command while (read_client_tty(&b,1) == 1) { if (b[0]==0x5A) i++; else { i=0; b[0]=0x00; continue; } if (i<2) { b[0]=0x00; continue; } if ((read_client_tty(&b,2) == 2) && (read_client_tty(&b[2],b[1]+1) == b[1]+1)) break; i=0; memset(b,0x00,TPDD_DATA_MAX+3); } -#else - // collect command - while (read_client_tty(&b,1) == 1) { - if (i==2) { // have 2 Z's else skip - i=0; // ensure if any of the following fail, start over - if (read_client_tty(&b[1],1) != 1) continue; // read len - if (b[1]>TPDD_DATA_MAX) continue; // len is sane - if (read_client_tty(&b[2],b[1]+1) == b[1]+1) break; // read payload+checksum & done - } - if (b[0]==0x5A) i++; else i=0; // current byte is Z else start over - } -#endif - // debug - dbg_p(3,b); + dbg_p(2,b); - // checksum else abort i = checksum(b); if (b[b[1]+2]!=i) { dbg(0,"Failed checksum: received: %02X calculated: %02X\n",b[b[1]+2],i); @@ -1114,7 +989,6 @@ int get_opr_cmd(void) return(7); } - // dispatch dispatch_opr_cmd(b); return 0; } @@ -1123,34 +997,81 @@ int get_opr_cmd(void) // // FDC MODE -// This is mostly just a stub still, but one operation works, which is -// switching back and forth between FDC-mode and Operation-mode +// Just a stub yet, but one operation works, which is switching back +// and forth between FDC-mode and Operation-mode. // // You can see it happen by running "OPR_MODE=0 dl -vv" // See it starts on get_fdc_cmd() instead of get_opr_cmd() // Then load the directory from TS-DOS. - // standard 8-character FDC-mode response + void ret_fdc_std(unsigned char e, unsigned char d, unsigned short l) { - dbg(1,"ret_fdc_std()\n"); + dbg(2,"%s()\n",__func__); char b[9] = { 0x00 }; snprintf(b,9,"%02X%02X%04X",e,d,l); - dbg(1,"\"%s\"\n",b); + dbg(1,"FDC: response: \"%s\"\n",b); write_client_tty(b,8); } +void req_fdc_set_mode(char *b) { + dbg(2,"%s(%s)\n",__func__,b+1); + int m = atoi(&b[1]); + dbg(1,"FDC: Switching to \"%s\" mode\n",m==0?"FDC":m==1?"Operation":"-invalid-"); + opr_mode=m; // no response, just switch modes +} + +void req_fdc_condition(char *b) { + dbg(2,"%s(%s)\n",__func__,b+1); + ret_fdc_std(ERR_FDC_SUCCESS,0,0); +} +void req_fdc_format(char *b) { + dbg(2,"%s(%s)\n",__func__,b+1); + ret_fdc_std(ERR_FDC_SUCCESS,0,0); +} +void req_fdc_format_nv(char *b) { + dbg(2,"%s(%s)\n",__func__,b+1); + ret_fdc_std(ERR_FDC_SUCCESS,0,0); +} +void req_fdc_read_id(char *b) { + dbg(2,"%s(%s)\n",__func__,b+1); + ret_fdc_std(ERR_FDC_COMMAND,0,0); +} +void req_fdc_read_sector(char *b) { + dbg(2,"%s(%s)\n",__func__,b+1); + ret_fdc_std(ERR_FDC_COMMAND,0,0); +} +void req_fdc_search_id(char *b) { + dbg(2,"%s(%s)\n",__func__,b+1); + ret_fdc_std(ERR_FDC_COMMAND,0,0); +} +void req_fdc_write_id(char *b) { + dbg(2,"%s(%s)\n",__func__,b+1); + ret_fdc_std(ERR_FDC_COMMAND,0,0); +} +void req_fdc_write_id_nv(char *b) { + dbg(2,"%s(%s)\n",__func__,b+1); + ret_fdc_std(ERR_FDC_COMMAND,0,0); +} +void req_fdc_write_sector(char *b) { + dbg(2,"%s(%s)\n",__func__,b+1); + ret_fdc_std(ERR_FDC_COMMAND,0,0); +} +void req_fdc_write_sector_nv(char *b) { + dbg(2,"%s(%s)\n",__func__,b+1); + ret_fdc_std(ERR_FDC_COMMAND,0,0); +} + /* ref/fdc.txt */ int get_fdc_cmd(void) { - dbg(1,"get_fdc_cmd()\n"); - unsigned char b[TPDD_DATA_MAX] = { 0x00 }; + dbg(3,"%s()\n",__func__); + char b[TPDD_DATA_MAX] = { 0x00 }; unsigned i = 0; bool eol = false; - // TODO - // FDC-mode commands are plain text and terminated with CR (0x0D). - // Theoretically we could set the tty to a modified canonical mode, and - // get the command in a single read for free, instead of this byte loop. + // see if the command byte was collected already by req_fdc() + if (buf[0]>0x00 && buf[0]!=0x0D && buf[1]==0x00) {b[0]=buf[0];i=1;} + // TODO canonical mode // read command while (i " - - The 6 bytes are a space-padded directory name, or an arbitrary - string standing for the root dir. +A real drive or other emulator that's in a normal state will have +sent back nothing at this point. + +A real drive or other emulator that's in some unknown unexpected +state may have sent back some error response or even possibly a +non-error response. + +But Desk-Link recognizes this sequence of events and sends back the +DME response. TS-DOS can always distinguish a DME response from any +other normal response from a real drive or other server, because +the DME response block is not a valid response that a real drive +can ever send. The DME response is essentially a malformed or "illegal" +0x12 standard return. The 0x12 standard return is a single byte +payload response that just returns the success or error status of +a command, no data. It only has this one fixed format and length: +0x5A 0x5A 0x12 0x01 0x## 0x## +Z Z RET_STD LEN=1 errolevel checksum +A real drive can never send a 0x12 packet of any other form. + +A DME response is 0x12 but with an 11-byte payload. +5A 5A 12 0B payload checksum + +payload 11 bytes: +0x00 0x## 0x## 0x## 0x## 0x## 0x## 0x2E 0x3C 0x3E 0x20 +That is: 0x00 6-bytes ".<> " + +The 6 bytes are a space-padded directory name, or an arbitrary +string standing for the root dir. + +At this point, TS-DOS checks it's RX queue to decide whether the +drive is Desk-Link or not. + +If TS-DOS does not have any pending RX data, or has any data is +not specifically the above Desk-Link DME response, then it knows +it's talking to a real drive or some other server besides Desk-Link, +and forgets about DME. + +If it did get the DME response, then it knows it's talking to +Desk-Link, and uses it, displays the working dir, handles the ".<>" +virtual files for directories, etc. + +In either case the next things TS-DOS does is put the drive back +into Operation-mode and issue an Operation-mode drive status request. + +TS-DOS flushes and discards it's RX queue +TS-DOS sends 0x4D 0x31 0x0D (put the drive back to Operation-mode) +TS-DOS waits 3ms +TS-DOS flushes and discards it's RX queue +TS-DOS sends 0x5A 0x5A 0x07 0x00 0xF8 (request drive status) + + +From Desk-Link's point of view: + +Any client could legally just happen to send an FDC-mode command to +switch to Operation-mode followed by an Operation-mode command to +switch to FDC-mode, as they are both legal commands. But the final +carriage-return, essentially an "empty" FDC-mode command, is not +something any client would have a reason to do. A client would only +ever issue some command, or be silent. + +So Desk-Link can tell from the final 0x0D that it is talking to +TS-DOS, and that's when it sends the DME response. - At this point, TS-DOS checks it's RX queue to decide whether the - drive is Desk-Link or not. - If TS-DOS does not have any pending RX data, or has any data is - not specifically the above Desk-Link DME response, then it knows - it's talking to a real drive or some other server besides Desk-Link, - and forgets about DME. +.... but wait there's actually more .... + +All of that is only true for the first 2 out of 3 FDC requests +per directory listing cycle. + +When TS-DOS does a directory listing, it sends *3* FDC requests before +the dirent(get-first) which is the start of the actual file list. + +However, only the first 2 of those 3 FDC calls has the trailing 0x0D +that indicates DME, the 3rd FDC call does NOT have it!!!! + +If we look for 0x0D on every FDC call, we HANG on the 3rd one because, +not seeing the 0x0D, we switch to FDC mode instead of sending a DME. +While we're sitting at the top of get_fdc_cmd() waiting forever for an +FDC-mode command to come in, TS-DOS is waiting forever for us to send a +DME response. Deadlock. + +So we need to detect dme by looking for a trailing 0x0D, and remember +that and avoid looking again, but only for the duration of the current +directory listing cycle. - If it did get the DME response, then it knows it's talking to - Desk-Link, and uses it / expects it in responses. +On the first fdc request (or 2nd if we somehow missed the 1st one) +we set a flag that says we detected dme, and do not look for it +anymore but just respond with dme instead of fdc based on that flag. - In either case the next things TS-DOS does is put the drive back - into Operation-mode and issue an Operation-mode drive status request. +If we left it at that, that would permanently brick FDC mode. A client +could not use both DME and FDC in the same session. - TS-DOS flushes and discards it's RX queue - TS-DOS sends 0x4D 0x31 0x0D (put the drive back to Operation-mode) - TS-DOS waits 3ms - TS-DOS flushes and discards it's RX queue - TS-DOS sends 0x5A 0x5A 0x07 0x00 0xF8 (request drive status) +That would actually be fine 99% of the time. TS-DOS always does DME so +always responding with DME is fine. Floppy and other clients never do +DME so never responding with DME is also fine. +But Sardine is a client that does both DME and FDC. +So, bricking FDC is not acceptable. - From Desk-Link's point of view: +Since TS-DOS does send the extra 0x0D again on the first 2-of-3 FDC +calls before the next directory listing, we can clear that flag on +every dirent(get-first). The flag gets us through the current +directory listing cycle, but is cleared between cycles, and so actual +FDC requests should still work. - Any client could legally just happen to send an FDC-mode command to - switch to Operation-mode followed by an Operation-mode command to - switch to FDC-mode, as they are both legal commands. But the final - carriage-return, essentially an "empty" FDC-mode command, is not - something any client would have a reason to do. A client would only - ever issue some command, or be silent. +When we test for the 0x0D and do NOT find it, do NOT remember that. +If a non-dme fdc request comes in, it does not mean "this client +does not support dme", it only means "this fdc request is not a +dme request" - So Desk-Link can tell from the final 0D that it is talking to - TS-DOS, and that's when it sends the DME response. \ No newline at end of file +Seperately we keep a different flag that says "this client supports dme" +which is never cleared. That one tells the directory scanner whether or +not to generate the ".<>" virtual filenames and include directories when +building or updating the file list. From 7e0458f6606963acecafbe5a53f023fbaaafffb7 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Thu, 2 Jun 2022 21:38:38 -0400 Subject: [PATCH 026/206] Update README.md --- README.md | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index c0d0bcc..733f4dc 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,14 @@ # dlplus DeskLink+ is a Tandy Portable Disk Drive emulator or "TPDD Server" implimented in C. -2022 [GGLabs](https://gglabs.us/) has added support for TS-DOS subdirectories. - -[Original README](README.txt) - -[Documentation for the original DeskLink](dl.do) (No longer exactly matches this program) - -[Original source](http://bitchin100.com/files/linux/dlplus.zip) - +2022 [GGLabs](https://gglabs.us/) has added support for TS-DOS subdirectories! +[hacky extra options](ref/advanced_options.txt) [Serial Cable](http://tandy.wiki/Model_T_Serial_Cable) +Docs from the past versions of this program. They don't exactly match this version any more. +[README.txt](README.txt) from dlplus by John R. Hogerhuis +[dl.do](dl.do) from dl 1.0-1.3 the original "DeskLink for \*nix) by Steven Hurd + + ## install ``` make clean all && sudo make install @@ -41,6 +40,12 @@ dl -b TS-DOS.100 unzip REXCPMV21_b18.ZIP dl -b ./rxcini.DO ;dl -u ``` - -## Advanced -See [ref/advanced.options.txt]() +## fun +The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT". TS-DOS thinks it's an invalid filename (even though it DISPLAYS it in the menu list just fine. If it would just go ahead and send the command to "open" it, it would work.) However, plenty of other things that are all better than "ROOT " and "PARENT" do work. +``` +ROOT_LABEL=/ PARENT_LABEL=^ dl +``` +or you can confuse someone... +``` +ROOT_LABEL='C:\' PARENT_LABEL='' dl -u +``` From aabc859f2f44cb28f7dac1effa9524bfa2db1f6e Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Thu, 2 Jun 2022 21:40:11 -0400 Subject: [PATCH 027/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 733f4dc..ae8577b 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ unzip REXCPMV21_b18.ZIP dl -b ./rxcini.DO ;dl -u ``` ## fun -The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT". TS-DOS thinks it's an invalid filename (even though it DISPLAYS it in the menu list just fine. If it would just go ahead and send the command to "open" it, it would work.) However, plenty of other things that are all better than "ROOT " and "PARENT" do work. +The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT". TS-DOS thinks it's an invalid filename (even though it DISPLAYS it in the file list just fine. If it would just go ahead and send the command to "open" it, it would work.) However, plenty of other things that are all better than "ROOT " and "PARENT" do work. ``` ROOT_LABEL=/ PARENT_LABEL=^ dl ``` From 18ba5b24e214ffa8d603b6d2415f9939566166cf Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 2 Jun 2022 22:40:56 -0400 Subject: [PATCH 028/206] dme_cwd --- dl.c | 48 +++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/dl.c b/dl.c index 88b889e..543f6ae 100644 --- a/dl.c +++ b/dl.c @@ -121,8 +121,9 @@ MA 02111, USA. // But you can change them to pretty much anything. The parent label is // picky because whatever you use has to look like a valid filename // to ts-dos. ".." doesn't work, but "^" does for instance. -#define DEFAULT_DME_ROOT_LABEL " ROOT " // ROOT_LABEL="/" -#define DEFAULT_DME_PARENT_LABEL "PARENT" // PARENT_LABEL"^" +#define DEFAULT_DME_ROOT_LABEL " ROOT " // ROOT_LABEL='0:' +#define DEFAULT_DME_PARENT_LABEL "PARENT" // PARENT_LABEL'^' +#define DEFAULT_DME_DIR_LABEL "<>" // DIR_LABEL='/' // termios VMIN & VTIME #define C_CC_VMIN 1 @@ -259,8 +260,9 @@ bool rtscts = false; unsigned dot_offset = 6; // 6 for KC-85 platform, 8 for WP-2 int client_baud = DEFAULT_CLIENT_BAUD; int BASIC_byte_msec = DEFAULT_BASIC_BYTE_MSEC; -char dme_root_label[6] = DEFAULT_DME_ROOT_LABEL; -char dme_parent_label[6] = DEFAULT_DME_PARENT_LABEL; +char dme_root_label[7] = DEFAULT_DME_ROOT_LABEL; +char dme_parent_label[7] = DEFAULT_DME_PARENT_LABEL; +char dme_dir_label[3] = DEFAULT_DME_DIR_LABEL; char default_attrib = DEFAULT_TPDD_FILE_ATTRIB; bool getty_mode = false; @@ -274,7 +276,7 @@ struct termios client_termios; int o_file_h = -1; unsigned char buf[TPDD_DATA_MAX+3]; char cwd[PATH_MAX] = {0x00}; -char dme_cwd[6] = DEFAULT_DME_ROOT_LABEL; +char dme_cwd[7] = DEFAULT_DME_ROOT_LABEL; char client_tty_name[PATH_MAX]; char bootstrap_file[PATH_MAX] = {0x00}; int opr_mode = 1; // 0=FDC-mode 1=Operation-mode @@ -378,7 +380,7 @@ char *collapse_padded_name(char *fname) { int i; for(i=dot_offset;i>1;i--) if(fname[i-1]!=' ') break; - if(fname[dot_offset+1]=='<' && fname[dot_offset+2]=='>') { + if(fname[dot_offset+1]==dme_dir_label[0] && fname[dot_offset+2]==dme_dir_label[1]) { fname[i]=0x00; } else { fname[i]=fname[dot_offset]; @@ -425,8 +427,8 @@ FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) // write client extension if (flags&DIR_FLAG) { // directory - put TS-DOS DME ext on client fname - f.client_fname[dot_offset+1]='<'; - f.client_fname[dot_offset+2]='>'; + f.client_fname[dot_offset+1]=dme_dir_label[0]; + f.client_fname[dot_offset+2]=dme_dir_label[1]; f.len=0; } else if (i>0) { // file - put first 2 bytes of ext on client fname, if any @@ -629,7 +631,7 @@ int req_dirent(unsigned char *data) dbg(3,"Exists: \"%s\" %u\n", cur_file->local_fname, cur_file->len); ret_dirent(cur_file); } else { - if (filename[dot_offset+1]=='<' && filename[dot_offset+2]=='>') f = DIR_FLAG; + if (filename[dot_offset+1]==dme_dir_label[0] && filename[dot_offset+2]==dme_dir_label[1]) f = DIR_FLAG; cur_file=make_file_entry(collapse_padded_name(filename), 0, f); dbg(3,"New %s: \"%s\"\n",f==DIR_FLAG?"Directory":"File",cur_file->local_fname); ret_dirent(NULL); @@ -660,7 +662,8 @@ int req_dirent(unsigned char *data) return 0; } -// update dme_cwd with a 6-byte truncated working dir +// update dme_cwd with current dir, truncated & padded both required +// TS-DOS doesn't blank all 6 chars if you don't send all 6 void update_dme_cwd() { dbg(2,"%s()\n",__func__); int i; @@ -668,9 +671,8 @@ void update_dme_cwd() { (void)(getcwd(cwd,PATH_MAX-1)+1); dbg(0,"Changed Dir: %s\n",cwd); if(dir_depth) { - int j; for(i=strlen(cwd); i>=0 ; i--) if(cwd[i]=='/') break; - for(j=0; j<6 && cwd[i+j+1]; j++) dme_cwd[j]=cwd[i+j+1]; + snprintf(dme_cwd,7,"%-6.6s",cwd+i+1); } else { memcpy(dme_cwd,dme_root_label,6); } @@ -684,15 +686,14 @@ void ret_dme_cwd() { buf[1]=LEN_RET_DME; buf[2]=0x00; memcpy(buf+3,dme_cwd,6); - buf[9]='.'; - buf[10]='<'; - buf[11]='>'; - buf[12]=0x20; + buf[9]=0x00; // buf[9]='.'; // contents don't matter but length does + buf[10]=0x00; // buf[10]=dme_dir_label[0]; + buf[11]=0x00; // buf[11]=dme_dir_label[1]; + buf[12]=0x00; // buf[12]=0x20; buf[13]=checksum(buf); write_client_tty(buf,14); } - // Any FDC request might actually be a DME request // See ref/dme.txt for the full explaination because it's a lot. // dme_fdc is only retained for the duration of one directory listing @@ -1248,8 +1249,9 @@ void show_config () { dbg(2,"dot_offset : %d\n",dot_offset); dbg(2,"baud : %d\n",client_baud==B9600?9600:client_baud==B19200?19200:-1); dbg(0,"dme_disabled : %s\n",dme_disabled?"true":"false"); - dbg(2,"dme_root_label : \"%6.6s\"\n",dme_root_label); - dbg(2,"dme_parent_label: \"%6.6s\"\n",dme_parent_label); + dbg(2,"dme_root_label : \"%-6.6s\"\n",dme_root_label); + dbg(2,"dme_parent_label: \"%-6.6s\"\n",dme_parent_label); + dbg(2,"dme_dir_label : \"%-2.2s\"\n",dme_dir_label); dbg(2,"default_attrib : '%c'\n",default_attrib); } @@ -1306,10 +1308,10 @@ int main(int argc, char **argv) if (getenv("DOT_OFFSET")) dot_offset = atoi(getenv("DOT_OFFSET")); if (getenv("BAUD")) {i=atoi(getenv("BAUD")); client_baud=i==9600?B9600:i==19200?B19200:-1;} - if (getenv("ROOT_LABEL")) {char t[7];snprintf(t,7,"%-6.6s",getenv("ROOT_LABEL")); - memcpy(dme_root_label,t,6);memcpy(dme_cwd,t,6);} - if (getenv("PARENT_LABEL")) {char t[7];snprintf(t,7,"%-6.6s",getenv("PARENT_LABEL")); - memcpy(dme_parent_label,t,6);} + if (getenv("ROOT_LABEL")) {snprintf(dme_root_label,7,"%-6.6s",getenv("ROOT_LABEL")); + memcpy(dme_cwd,dme_root_label,6);} + if (getenv("PARENT_LABEL")) snprintf(dme_parent_label,7,"%-6.6s",getenv("PARENT_LABEL")); + if (getenv("DIR_LABEL")) snprintf(dme_dir_label,3,"%-2.2s",getenv("DIR_LABEL")); if (getenv("ATTRIB")) default_attrib = *getenv("ATTRIB"); // commandline options From c3b772d136b4dac651aeb843afce0ade5af0825f Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Thu, 2 Jun 2022 22:52:41 -0400 Subject: [PATCH 029/206] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ae8577b..a1232d2 100644 --- a/README.md +++ b/README.md @@ -44,8 +44,8 @@ dl -b ./rxcini.DO ;dl -u The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT". TS-DOS thinks it's an invalid filename (even though it DISPLAYS it in the file list just fine. If it would just go ahead and send the command to "open" it, it would work.) However, plenty of other things that are all better than "ROOT " and "PARENT" do work. ``` ROOT_LABEL=/ PARENT_LABEL=^ dl -``` +ROOT_LABEL='-root-' PARENT_LABEL='-back-' dl +ROOT_LABEL='0:' PARENT_LABEL='^:' dl or you can confuse someone... -``` -ROOT_LABEL='C:\' PARENT_LABEL='' dl -u +ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl ``` From 9e3ef2bb7f693f595629222ff45b776092aa9c1a Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Fri, 3 Jun 2022 00:57:59 -0400 Subject: [PATCH 030/206] Update advanced_options.txt --- ref/advanced_options.txt | 74 ++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 41 deletions(-) diff --git a/ref/advanced_options.txt b/ref/advanced_options.txt index a4d42d9..14f721c 100644 --- a/ref/advanced_options.txt +++ b/ref/advanced_options.txt @@ -19,25 +19,24 @@ them on the same command line , before the executable. Example: - $ ROOT_LABEL="/" PARENT_LABEL="^" dl -vvv + $ ROOT_LABEL=/ PARENT_LABEL=^ dl - ROOT_LABEL ex: ROOT_LABEL="/" ROOT_LABEL="dlplus" ROOT_LABEL=" <> " - ROOT_LABEL="C:\" + ROOT_LABEL '/' '0:' 'dlplus' ' <> ' 'C:\' '-root-' etc... The original Desk-Link, and so, most other emulators also, puts the string "ROOT " in the top-right corner of the TS-DOS display when the user is in the top level share directory. - This variable lets you put whatever you want there. The string. - If you give it a string shorter than 6 bytes, it will be left - justified. If you give a string longer than 6 bytes it will be truncated. + This variable lets you put whatever you want there. If you give + it a string shorter than 6 bytes, it will be left justified. + If you give a string longer than 6 bytes it will be truncated. If you want a shorter string to be centered, just include all 6 bytes - in the value with quotes. You can make it blank with "". + in the value within quotes. You can even make it blank with ''. - PARENT_LABEL ex: PARENT_LABEL="^" PARENT_LABEL="______" + PARENT_LABEL '^' '^:' '______' '-back-' 'UP:' etc... - Similar to ROOT_LABEL, Dees-Link used the word "PARENT" for the + Similar to ROOT_LABEL, Desk-Link used the word "PARENT" for the the "go back up one level" directory entry in the top-left file slot in the directory listing screen. This is the Desk-Link equivalent to ".." @@ -45,59 +44,56 @@ Example: This variable lets you put whatever you want there instead of "PARENT", with limitations. Unfortunately, since this appears in the file list like any other file, TS-DOS is picky about - what it considers a "bad" filename, and you can't put just anything - here. Most notably, you can't use ".." :/ DAMMIT! + what it considers a "bad" filename, and you can't put just + anything here. Most notably, you can't use ".." :/ DAMMIT! This is a TS-DOS limitation. You CAN actually use "..", in that, dlplus will send it to TS-DOS, and TS-DOS will even display it properly in the file listing, but if you try to hit enter on it to move back up a directory, TS-DOS just beeps and says bad - filename, and never sends a single byte over the wire. The error + filename. TS-DOS never sends anything to the server, so the error is coming from TS-DOS, not from the server. However a lot of other things do work fine. Generally, for something to work, it has to be left-justified like a real filename would be. It takes some trial & error to figure out what works. - The examples above work. + ATTRIB '' 'A' 'F' any single character - I use ROOT_LABEL="/" PARENT_LABEL="^" myself. - - ATTRIB ex: ATTRIB="" ATTRIB=A ATTRIB=F - - The TPDD drive has a single-character field with every filename. - It's just a text field that the drive can use to return filtered - matching files all together before any others during file listings. + The TPDD drive has a single-character field along with every filename. + It's just a text field that the drive can use to return a a group of + matching files all together before the rest during file listings. It's not really used by any software I know of, but the field is - there, and Floppy always writes an 'F' there for ever file. It doesn't + there, and Floppy always writes an 'F' there for every file. It doesn't really matter or do anything. Everything still works if it's blank for instance. But because Floppy always writes an F there, so does every other client and emulator. When an emulator is serving files, usually there is no actual attribute - byte stored with the file, so all emulators just say F there for every - file when they give filenames to clients. + byte stored with the file, so all emulators just fabricate an F there for + every file when they give filenames to clients. But a real drive doesn't care, and TS-DOS is not the only client that uses TPDD drives or emulators, so here is a way to modify that if you want. - All this variable does is, when the client requests a file directory - listing and we're giving file name and size to the client, it uses - this instead of F for the attribute byte. + All this setting does is, when the client requests a file or directory + listing, and we're sending a file name and size to the client, it uses + this instead of 'F' for the attribute byte. Who/what ever cares? Who knows. - DOT_OFFSET ex: DOT_OFFSET=0 DOT_OFFSET=25 + DOT_OFFSET 0 to 25, but really only 0, 6, or 8 are useful. - Just another way to do the same thing as the -w or 0 options. + Just another way to do the same thing as the -w or -0 options. - Default behavior is dot_offset=6 , which makes 6.2 space-padded filenames - the -w option for WP-2 does the same thing but 8.2 - the -0 option disables all name re-formatting or assumptions + Default behavior is dot_offset=6 , which makes 6.2 space-padded filenames. + The -w option for WP-2 does the same thing but 8.2 + The -0 option does dot_offset=0 plus disables all other forms of name editing or filtering. - This variable would let you set some arbitrary value like 0 or 25 or - anywhere in between. There is no reason to do that. + This variable would let you set some arbitrary value anywhere in the 0-25 + size of the field (24 plus just beyond to make another version of 0 basically) + There is no reason to do that. It's possibly useful as just as an alternative way to set 0, 6, or 8 though, which would essentially change the default behavior instead of having to @@ -107,7 +103,7 @@ Example: A TPDD1 / FB-100 drive has two main modes of operation called Operation-mode and FDC-mode (actually the software manual calls - them Operation mode and FDC Emulation mode) + them Operation mode and FDC-Emulation mode) These are basically two entire different sets of commands to use the drive. @@ -115,13 +111,9 @@ Example: The drive is usually in Operation mode, but a few things do use FDC mode. You can switch the starting default state by setting this to 0. - BAUD 9600 or 19200 + BAUD 9600 or 19200 19200 is default - The only valid values are 9600 and 19200, and 19200 is already - the default. - - But if for whatever reason you want to force the server to run at 9600 + If for whatever reason you want to force the server to run at 9600 instead of 19200, this how you can. Some drives like Purple Computing - arre actually hard wired to run at 9600, so, maybe you want to emulate + are actually hard wired to run at 9600. This would let you emulate one of those, perhaps for testing software against it. - From 263b615ac405bda2e06ac396618a231eef351d03 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 3 Jun 2022 12:10:19 -0400 Subject: [PATCH 031/206] regularize all the return and for styles --- dl.c | 180 +++++++++++++++++++++-------------------------------------- 1 file changed, 64 insertions(+), 116 deletions(-) diff --git a/dl.c b/dl.c index 543f6ae..161d189 100644 --- a/dl.c +++ b/dl.c @@ -121,20 +121,15 @@ MA 02111, USA. // But you can change them to pretty much anything. The parent label is // picky because whatever you use has to look like a valid filename // to ts-dos. ".." doesn't work, but "^" does for instance. -#define DEFAULT_DME_ROOT_LABEL " ROOT " // ROOT_LABEL='0:' -#define DEFAULT_DME_PARENT_LABEL "PARENT" // PARENT_LABEL'^' +#define DEFAULT_DME_ROOT_LABEL " ROOT " // ROOT_LABEL='0:' '-root-' +#define DEFAULT_DME_PARENT_LABEL "PARENT" // PARENT_LABEL'^:' '-back-' +// this you can't change unless you also hack ts-dos #define DEFAULT_DME_DIR_LABEL "<>" // DIR_LABEL='/' // termios VMIN & VTIME #define C_CC_VMIN 1 #define C_CC_VTIME 5 -//////////////////////////////////////////////////////////////////////// -// -// Experimental feature selections -#define READ_TTY_METHOD 1 -#define IGNORE_DSR 0 - /*************************************************************/ // drive firmware/protocol constants @@ -257,7 +252,7 @@ MA 02111, USA. int debug = 0; bool upcase = false; bool rtscts = false; -unsigned dot_offset = 6; // 6 for KC-85 platform, 8 for WP-2 +unsigned dot_offset = 6; // 0 for raw, 6 for KC-85, 8 for WP-2 int client_baud = DEFAULT_CLIENT_BAUD; int BASIC_byte_msec = DEFAULT_BASIC_BYTE_MSEC; char dme_root_label[7] = DEFAULT_DME_ROOT_LABEL; @@ -348,7 +343,7 @@ int read_client_tty(void *b, const unsigned int n) { int i = 0; while (t1;i--) if(fname[i-1]!=' ') break; + for (i=dot_offset;i>1;i--) if (fname[i-1]!=' ') break; - if(fname[dot_offset+1]==dme_dir_label[0] && fname[dot_offset+2]==dme_dir_label[1]) { + if (fname[dot_offset+1]==dme_dir_label[0] && fname[dot_offset+2]==dme_dir_label[1]) { fname[i]=0x00; } else { fname[i]=fname[dot_offset]; @@ -404,25 +399,10 @@ FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) f.flags = flags; if (dot_offset) { - // normal mode - - // re-format the client filename to KC-85 or WP-2 standards. - // KC-85 / Model 100 / NEC-8201 etc require "%-6.6s.%-2.2s" - - // In addition to that specifically TS-DOS also uses a fake - // filename extension of ".<>" to indicate directories, so we add those - // to the "filename" here when we encounter a directory. - - // Directories are filtered before calling us if dme is disabled - - // WP-2 requires "%-8.8s.%-2.2s" - - dbg(5,"\"%s\"\n",f.client_fname); + // if not in raw mode, reformat the client filename // find the last dot in the local filename - for(i=strlen(namep);i>0;i--) if(namep[i]=='.') break; - - dbg(5,"i:%d|%s|%s\n",i,f.client_fname,namep); + for(i=strlen(namep);i>0;i--) if (namep[i]=='.') break; // write client extension if (flags&DIR_FLAG) { @@ -431,52 +411,34 @@ FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) f.client_fname[dot_offset+2]=dme_dir_label[1]; f.len=0; } else if (i>0) { - // file - put first 2 bytes of ext on client fname, if any - // only if name has a dot and at least 1 other byte before the dot + // file - put first 2 bytes of ext on client fname f.client_fname[dot_offset+1]=namep[i+1]; f.client_fname[dot_offset+2]=namep[i+2]; } - dbg(5,"\"%s\"\n",f.client_fname); - // replace ".." with dme_parent_label if (f.local_fname[0]=='.' && f.local_fname[1]=='.') { memcpy (f.client_fname, dme_parent_label, 6); } else { for(i=0;id_name[0]=='.') continue; // skip "." ".." and hidden files if (strlen(dire->d_name)>LOCAL_FILENAME_MAX) continue; // skip long filenames @@ -530,7 +491,7 @@ void update_file_list() { dir=opendir("."); /** rebuild the file list */ file_list_clear_all(); - if(dir_depth) add_file(make_file_entry("..", 0, DIR_FLAG)); + if (dir_depth) add_file(make_file_entry("..", 0, DIR_FLAG)); while (read_next_dirent(dir)); closedir(dir); @@ -568,10 +529,9 @@ int ret_dirent(FILE_ENTRY *ep) // name memset (buf + 2, ' ', TPDD_FILENAME_LEN); - if (dot_offset) for(i=0;iclient_fname[i])?ep->client_fname[i]:' '; else memcpy (buf+2,ep->client_fname,TPDD_FILENAME_LEN); - //memcpy (buf + 2, ep->client_fname, dot_offset+2); // attrib buf[26] = default_attrib; @@ -616,7 +576,7 @@ int req_dirent(unsigned char *data) dbg(3,"filename: \"%-24.24s\"\n",data+2); dbg(3," attrib: \"%c\" (%1$02X)\n",data[26]); } - // we must update before every set-name for at least 2 reasons: + // we must update before every set-name for at least 2 reasons // 1 - get-first is not required before set-name // TEENY for instance never does get-first or get-next // 2 - Files may be changed by other processes than ourself @@ -639,7 +599,7 @@ int req_dirent(unsigned char *data) break; case DIRENT_GET_FIRST: dbg(3,"DIRENT_GET_FIRST\n"); - if(debug==1) dbg(2,"Directory Listing\n"); + if (debug==1) dbg(2,"Directory Listing\n"); // we must update every time before get-first, // because set-name is not required before get-first update_file_list(); @@ -656,7 +616,7 @@ int req_dirent(unsigned char *data) break; case DIRENT_CLOSE: dbg(3,"DIRENT_CLOSE\n"); - // file_list_clear_all (); + // does it expect a return? break; } return 0; @@ -670,8 +630,8 @@ void update_dme_cwd() { memset(cwd,0x00,PATH_MAX); (void)(getcwd(cwd,PATH_MAX-1)+1); dbg(0,"Changed Dir: %s\n",cwd); - if(dir_depth) { - for(i=strlen(cwd); i>=0 ; i--) if(cwd[i]=='/') break; + if (dir_depth) { + for (i=strlen(cwd); i>=0 ; i--) if (cwd[i]=='/') break; snprintf(dme_cwd,7,"%-6.6s",cwd+i+1); } else { memcpy(dme_cwd,dme_root_label,6); @@ -743,7 +703,7 @@ int req_open(unsigned char *data) close (o_file_h); o_file_h=-1; } - if(cur_file->flags&DIR_FLAG) { + if (cur_file->flags&DIR_FLAG) { if(mkdir(cur_file->local_fname,0775)==0) { ret_std(ERR_SUCCESS); } else { @@ -751,7 +711,7 @@ int req_open(unsigned char *data) } } else { o_file_h = open (cur_file->local_fname,O_CREAT|O_TRUNC|O_WRONLY|O_EXCL,0666); - if(o_file_h<0) + if (o_file_h<0) ret_std(ERR_FMT_MISMATCH); else { f_open_mode=omode; @@ -766,7 +726,7 @@ int req_open(unsigned char *data) close(o_file_h); o_file_h=-1; } - if(cur_file==0) { + if (cur_file==0) { ret_std(ERR_FMT_MISMATCH); return -1; } @@ -785,12 +745,12 @@ int req_open(unsigned char *data) close (o_file_h); o_file_h=-1; } - if(cur_file==0) { + if (cur_file==0) { ret_std (ERR_NO_FILE); return -1; } - if(cur_file->flags&DIR_FLAG) { + if (cur_file->flags&DIR_FLAG) { int err=0; // directory if (cur_file->local_fname[0]=='.' && cur_file->local_fname[1]=='.') { @@ -820,7 +780,7 @@ int req_open(unsigned char *data) } break; } - return (o_file_h); + return o_file_h; } // b[0] = 0x03 @@ -831,11 +791,11 @@ void req_read(void) { int i; buf[0]=RET_READ; - if(o_file_h<0) { + if (o_file_h<0) { ret_std(ERR_CMDSEQ); return; } - if(f_open_mode!=F_OPEN_READ) { + if (f_open_mode!=F_OPEN_READ) { ret_std(ERR_FMT_MISMATCH); return; } @@ -877,7 +837,7 @@ void req_write(unsigned char *data) { void req_delete(void) { dbg(2,"%s()\n",__func__); - if(cur_file->flags&DIR_FLAG) rmdir(cur_file->local_fname); + if (cur_file->flags&DIR_FLAG) rmdir(cur_file->local_fname); else unlink (cur_file->local_fname); dbg(1,"Deleted: %s\n",cur_file->local_fname); ret_std (ERR_SUCCESS); @@ -922,7 +882,7 @@ void req_rename(unsigned char *data) { } void req_close() { - if(o_file_h>=0) close(o_file_h); + if (o_file_h>=0) close(o_file_h); o_file_h = -1; dbg(1,"Closed: %s\n",cur_file->local_fname); ret_std(ERR_SUCCESS); @@ -945,9 +905,6 @@ void req_format() { void dispatch_opr_cmd(unsigned char *data) { dbg(3,"%s(%02X)\n",__func__,data[0]); - //dbg_p(3,data); - dbg(5,"data[]\n"); dbg_b(5,data,-1); - switch(data[0]) { case REQ_DIRENT: req_dirent(data); break; case REQ_OPEN: req_open(data); break; @@ -963,8 +920,6 @@ void dispatch_opr_cmd(unsigned char *data) { case REQ_TSDOS_MYSTERY: ret_tsdos_mystery(); break; case REQ_CACHE_WRITE: ret_cache_write(); break; } - - return; } int get_opr_cmd(void) @@ -987,7 +942,7 @@ int get_opr_cmd(void) if (b[b[1]+2]!=i) { dbg(0,"Failed checksum: received: %02X calculated: %02X\n",b[b[1]+2],i); ret_std(ERR_PARAM); - return(7); + return 7; } dispatch_opr_cmd(b); @@ -1075,8 +1030,8 @@ int get_fdc_cmd(void) { // TODO canonical mode // read command while (i&2")+1); - // even more blargh... + dbg(0, "TRS-80 Model 100 & 102 : "); (void)(system("find " S_(APP_LIB_DIR) " -regex \'.*/.+\\.100$\' -printf \'\%f \' >&2")+1); dbg(0,"\nTANDY Model 200 : "); @@ -1149,7 +1101,7 @@ int send_BASIC(char *f) if ((fd=open(f,O_RDONLY))<0) { dbg(1,"Failed to open %s for read.\n",f); - return(9); + return 9; } dbg(1,"Sending %s\n",f); @@ -1157,7 +1109,7 @@ int send_BASIC(char *f) while(read(fd,&b,1)==1) { write_client_tty(&b,1); usleep(byte_usleep); - if(debug) dbg(0,"Sent: %d bytes\n",++w); + if (debug) dbg(0,"Sent: %d bytes\n",++w); else dbg(0,"."); fflush(stdout); } @@ -1167,10 +1119,10 @@ int send_BASIC(char *f) close(fd); close(client_tty_fd); - if(debug) dbg(0,"Sent %s",f); + if (debug) dbg(0,"Sent %s",f); dbg(0,"\n"); - return(0); + return 0; } int bootstrap(char *f) @@ -1188,7 +1140,7 @@ int bootstrap(char *f) if ((f[0]=='/') || (f[0]=='.' && f[1]=='/')) strcpy(loader_file,f); - if(loader_file[0]==0) { + if (loader_file[0]==0) { strcpy(loader_file,S_(APP_LIB_DIR)); strcat(loader_file,"/"); strcat(loader_file,f); @@ -1202,12 +1154,12 @@ int bootstrap(char *f) printf("Bootstrap: Installing %s\n", loader_file); - if(access(loader_file,F_OK)==-1) { + if (access(loader_file,F_OK)==-1) { dbg(1,"Not found.\n"); - return(1); + return 1; } - if(access(pre_install_txt_file,F_OK)>=0) { + if (access(pre_install_txt_file,F_OK)>=0) { cat(pre_install_txt_file); } else { printf("Prepare the portable to receive. Hints:\n"); @@ -1219,7 +1171,7 @@ int bootstrap(char *f) printf("Press [Enter] when ready..."); getchar(); - if ((r=send_BASIC(loader_file))!=0) return(r); + if ((r=send_BASIC(loader_file))!=0) return r; cat(post_install_txt_file); @@ -1227,7 +1179,7 @@ int bootstrap(char *f) printf("Re-run \"%s\" (without -b this time) to run the TPDD server.\n",args[0]); printf("\n"); - return(0); + return 0; } //////////////////////////////////////////////////////////////////////// @@ -1370,16 +1322,12 @@ int main(int argc, char **argv) "Serial Device: %s\n" "Working Dir: %s\n",client_tty_name,cwd); - if(client_tty_fd<0) - client_tty_fd=open((char *)client_tty_name,O_RDWR,O_NOCTTY -#if (IGNORE_DSR == 1) - ,O_NONBLOCK -#endif - ); + if (client_tty_fd<0) + client_tty_fd=open((char *)client_tty_name,O_RDWR,O_NOCTTY); - if(client_tty_fd<0) { + if (client_tty_fd<0) { dbg(1,"Can't open \"%s\"\n",client_tty_name); - return(1); + return 1; } if (!bootstrap_mode) { @@ -1389,8 +1337,8 @@ int main(int argc, char **argv) } // getty mode - if(getty_mode) { - if(login_tty(client_tty_fd)==0) client_tty_fd = STDIN_FILENO; + if (getty_mode) { + if (login_tty(client_tty_fd)==0) client_tty_fd = STDIN_FILENO; else (void)(daemon(1,1)+1); } @@ -1398,23 +1346,23 @@ int main(int argc, char **argv) (void)(tcflush(client_tty_fd, TCIOFLUSH)+1); ioctl(client_tty_fd, FIONBIO, &off); ioctl(client_tty_fd, FIOASYNC, &off); - if(tcgetattr(client_tty_fd,&client_termios)==-1) return(21); + if (tcgetattr(client_tty_fd,&client_termios)==-1) return 21; cfmakeraw(&client_termios); client_termios.c_cflag |= CLOCAL|CS8; - if(rtscts) client_termios.c_cflag |= CRTSCTS; + if (rtscts) client_termios.c_cflag |= CRTSCTS; else client_termios.c_cflag &= ~CRTSCTS; - if(cfsetspeed(&client_termios,client_baud)==-1) return(22); - if(tcsetattr(client_tty_fd,TCSANOW,&client_termios)==-1) return(23); + if (cfsetspeed(&client_termios,client_baud)==-1) return 22; + if (tcsetattr(client_tty_fd,TCSANOW,&client_termios)==-1) return 23; client_tty_vmt(-2,-2); // send loader and exit - if(bootstrap_mode) return(bootstrap(bootstrap_file)); + if (bootstrap_mode) return (bootstrap(bootstrap_file)); // create the file list (for reverse order traversal) file_list_init(); // process commands forever - while(1) if(opr_mode) get_opr_cmd(); else get_fdc_cmd(); + while (1) if (opr_mode) get_opr_cmd(); else get_fdc_cmd(); - return(0); + return 0; } From c9ca72ed43af932ffd83b065bff981387d51ce33 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 3 Jun 2022 13:40:39 -0400 Subject: [PATCH 032/206] finally no more system() just for find & ls! show file list every update --- dl.c | 61 +++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/dl.c b/dl.c index 161d189..b11b72f 100644 --- a/dl.c +++ b/dl.c @@ -386,6 +386,21 @@ char *collapse_padded_name(char *fname) { return fname; } +void lsx (char *path,char *match) { + struct dirent *files; + DIR *dir = opendir(path); + int i; + if (dir == NULL){dbg(0,"Cannot open \"%s\"",path); return;} + + while ((files = readdir(dir)) != NULL) { + for (i=strlen(files->d_name);files->d_name[i]!='.';i--); + if (files->d_name[i+1]==match[0] && files->d_name[i+2]==match[1] && files->d_name[i+3]==match[2]) + dbg(0," %s",files->d_name); + } + + closedir(dir); +} + FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) { dbg(3,"%s(\"%s\")\n",__func__,namep); @@ -427,18 +442,24 @@ FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) } f.client_fname[dot_offset]='.'; - f.client_fname[dot_offset+3]=0; + f.client_fname[dot_offset+3]=0x00; if (upcase) for(i=0;i=0) close(o_file_h); o_file_h = -1; - dbg(1,"Closed: %s\n",cur_file->local_fname); + dbg(2,"Closed: %s\n",cur_file->local_fname); ret_std(ERR_SUCCESS); } @@ -936,7 +957,7 @@ int get_opr_cmd(void) i=0; memset(b,0x00,TPDD_DATA_MAX+3); } - dbg_p(2,b); + dbg_p(3,b); i = checksum(b); if (b[b[1]+2]!=i) { @@ -1070,16 +1091,11 @@ void show_bootstrap_help() { "%1$s - DeskLink+ " S_(APP_VERSION) " - \"bootstrap\" help\n\n" "Available loader files (in " S_(APP_LIB_DIR) "):\n\n",args[0]); - dbg(0, "TRS-80 Model 100 & 102 : "); - (void)(system("find " S_(APP_LIB_DIR) " -regex \'.*/.+\\.100$\' -printf \'\%f \' >&2")+1); - dbg(0,"\nTANDY Model 200 : "); - (void)(system("find " S_(APP_LIB_DIR) " -regex \'.*/.+\\.200$\' -printf \'\%f \' >&2")+1); - dbg(0,"\nNEC PC-8201(a)/PC-8300 : "); - (void)(system("find " S_(APP_LIB_DIR) " -regex \'.*/.+\\.NEC$\' -printf \'\%f \' >&2")+1); - dbg(0,"\nKyotronic KC-85 : "); - (void)(system("find " S_(APP_LIB_DIR) " -regex \'.*/.+\\.K85$\' -printf \'\%f \' >&2")+1); - dbg(0,"\nOlivetti M-10 : "); - (void)(system("find " S_(APP_LIB_DIR) " -regex \'.*/.+\\.M10$\' -printf \'\%f \' >&2")+1); + dbg(0, "TRS-80 Model 100 & 102 :"); lsx(S_(APP_LIB_DIR),"100"); + dbg(0,"\nTANDY Model 200 :"); lsx(S_(APP_LIB_DIR),"200"); + dbg(0,"\nNEC PC-8201(a)/PC-8300 :"); lsx(S_(APP_LIB_DIR),"NEC"); + dbg(0,"\nKyotronic KC-85 :"); lsx(S_(APP_LIB_DIR),"K85"); + dbg(0,"\nOlivetti M-10 :"); lsx(S_(APP_LIB_DIR),"M10"); dbg(0, "\n\n" @@ -1330,12 +1346,6 @@ int main(int argc, char **argv) return 1; } - if (!bootstrap_mode) { - dbg(0,"--------------------------------------------------------------------------------\n"); - (void)(system ("ls >&2")+1); - dbg(0,"--------------------------------------------------------------------------------\n"); - } - // getty mode if (getty_mode) { if (login_tty(client_tty_fd)==0) client_tty_fd = STDIN_FILENO; @@ -1360,6 +1370,7 @@ int main(int argc, char **argv) // create the file list (for reverse order traversal) file_list_init(); + if (debug) update_file_list(); // process commands forever while (1) if (opr_mode) get_opr_cmd(); else get_fdc_cmd(); From ba03dfc5dafd02df665b3066657dd40483d0f783 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 3 Jun 2022 14:01:36 -0400 Subject: [PATCH 033/206] comments --- dl.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/dl.c b/dl.c index b11b72f..e5f9e9e 100644 --- a/dl.c +++ b/dl.c @@ -450,17 +450,11 @@ FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) if (f.client_fname[dot_offset+2]==0x00) f.client_fname[dot_offset+2]=0x20; } else { - // raw mode (-0) - don't reformat anything + // raw mode - don't reformat or filter anything snprintf(f.client_fname,25,"%-24.24s",namep); } dbg(1,"\"%s\"\t%s%s\n",f.client_fname,f.local_fname,f.flags==DIR_FLAG?"/":""); - -// dbg(4," local: \"%s\"\n",f.local_fname); -// dbg(4,"client: \"%s\"\n",f.client_fname); -// dbg(4," len: %d\n",f.len); -// dbg(4," flags: %s\n",f.flags==0?"":f.flags==DIR_FLAG?"dir":"other"); - return &f; } From 981532d2ff5a8195eb98d6443a119e0517e7ba03 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 3 Jun 2022 14:10:56 -0400 Subject: [PATCH 034/206] whitespace --- dl.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/dl.c b/dl.c index e5f9e9e..7c641f3 100644 --- a/dl.c +++ b/dl.c @@ -1279,24 +1279,24 @@ int main(int argc, char **argv) // commandline options while ((i = getopt (argc, argv, ":0gurvd:p:wb:z:hl^")) >=0) switch (i) { - case '0': dot_offset=0; upcase=false; default_attrib=0x20; break; - case 'g': getty_mode = true; debug = 0; break; - case 'u': upcase = true; break; - case 'r': rtscts = true; break; - case 'v': debug++; break; - case 'w': dot_offset = 8; break; - case 'h': show_main_help(); exit(0); break; - case 'l': show_bootstrap_help(); exit(0); break; - case 'z': BASIC_byte_msec=atoi(optarg); break; - case 'd': strcpy(client_tty_name,optarg); break; - case 'p': (void)(chdir(optarg)+1); break; - case 'b': bootstrap_mode=true; strcpy(bootstrap_file,optarg); break; - case '^': x=true; break; // debugging - case ':': dbg(0,"\"-%c\" requires a value\n",optopt); break; - case '?': - if (isprint(optopt)) dbg(0,"Unknown option `-%c'.\n",optopt); - else dbg(0,"Unknown option character `\\x%x'.\n",optopt); - default: show_main_help(); return 1; + case '0': dot_offset=0; upcase=false; default_attrib=0x20; break; + case 'g': getty_mode = true; debug = 0; break; + case 'u': upcase = true; break; + case 'r': rtscts = true; break; + case 'v': debug++; break; + case 'w': dot_offset = 8; break; + case 'h': show_main_help(); exit(0); break; + case 'l': show_bootstrap_help(); exit(0); break; + case 'z': BASIC_byte_msec=atoi(optarg); break; + case 'd': strcpy(client_tty_name,optarg); break; + case 'p': (void)(chdir(optarg)+1); break; + case 'b': bootstrap_mode=true; strcpy(bootstrap_file,optarg); break; + case '^': x=true; break; // debugging + case ':': dbg(0,"\"-%c\" requires a value\n",optopt); break; + case '?': + if (isprint(optopt)) dbg(0,"Unknown option `-%c'.\n",optopt); + else dbg(0,"Unknown option character `\\x%x'.\n",optopt); + default: show_main_help(); return 1; } // commandline non-option arguments From 2b07aa61572ec99674d5db64dc087be84f4c6362 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sun, 5 Jun 2022 15:26:37 -0400 Subject: [PATCH 035/206] crunch some loaders, polish some loaders directions --- clients/dskmgr/DSKMGR.100.pre-install.txt | 3 +- clients/dskmgr/DSKMGR.200.pre-install.txt | 3 +- clients/dskmgr/DSKMGR.K85.pre-install.txt | 3 +- clients/dskmgr/DSKMGR.M10.pre-install.txt | 3 +- clients/teeny/TEENY.100 | 24 +------ clients/teeny/TEENY.100.pre-install.txt | 3 +- clients/teeny/TEENY.200 | 24 +------ clients/teeny/TEENY.200.pre-install.txt | 3 +- clients/teeny/TEENY.M10.pre-install.txt | 3 +- clients/teeny/TEENY.NEC.pre-install.txt | 2 +- clients/tiny/TINY.100.pre-install.txt | 3 +- clients/ts-dos/TS-DOS.100 | 77 +---------------------- clients/ts-dos/TS-DOS.100.pre-install.txt | 3 +- clients/ts-dos/TS-DOS.200 | 75 +--------------------- clients/ts-dos/TS-DOS.200.pre-install.txt | 2 +- clients/ts-dos/TS-DOS.NEC.pre-install.txt | 2 +- 16 files changed, 16 insertions(+), 217 deletions(-) diff --git a/clients/dskmgr/DSKMGR.100.pre-install.txt b/clients/dskmgr/DSKMGR.100.pre-install.txt index 90b9d9d..0bd2289 100644 --- a/clients/dskmgr/DSKMGR.100.pre-install.txt +++ b/clients/dskmgr/DSKMGR.100.pre-install.txt @@ -1,4 +1,3 @@ -Type the following in BASIC on the portable: +Type the following into BASIC on the TRS-80 Model 100/102: RUN "COM:98N1E" - diff --git a/clients/dskmgr/DSKMGR.200.pre-install.txt b/clients/dskmgr/DSKMGR.200.pre-install.txt index cd84cb7..cfb1d30 100644 --- a/clients/dskmgr/DSKMGR.200.pre-install.txt +++ b/clients/dskmgr/DSKMGR.200.pre-install.txt @@ -1,4 +1,3 @@ -Type the following in BASIC on the portable: +Type the following into BASIC on the TANDY Model 200: RUN "COM:98N1ENN" - diff --git a/clients/dskmgr/DSKMGR.K85.pre-install.txt b/clients/dskmgr/DSKMGR.K85.pre-install.txt index 16ab31b..905ca6d 100644 --- a/clients/dskmgr/DSKMGR.K85.pre-install.txt +++ b/clients/dskmgr/DSKMGR.K85.pre-install.txt @@ -1,4 +1,3 @@ -Type the following in BASIC on the portable: +Type the following into BASIC on the Kyotronic KC-85: RUN "COM:98N1EN" - diff --git a/clients/dskmgr/DSKMGR.M10.pre-install.txt b/clients/dskmgr/DSKMGR.M10.pre-install.txt index 25ed219..deeddfa 100644 --- a/clients/dskmgr/DSKMGR.M10.pre-install.txt +++ b/clients/dskmgr/DSKMGR.M10.pre-install.txt @@ -1,5 +1,4 @@ -Type the following in BASIC on the M10: +Type the following into BASIC on the Olivetti M10: CLEAR 0,60700 RUN "COM:98N1EN" - diff --git a/clients/teeny/TEENY.100 b/clients/teeny/TEENY.100 index b07ef97..d4c87ed 100644 --- a/clients/teeny/TEENY.100 +++ b/clients/teeny/TEENY.100 @@ -1,23 +1 @@ -1 'TEENY.100 by Ron Wiesen (c) 1995 -2 'A disk transfer utility which is a smaller version of TINY -10 CLEAR99:GOSUB20 -15 F$="TEENY.CO":F=0:GOSUB30 -19 END -20 PRINT"12 seconds..":FORN=64710TO64994:P=P+2:IFP>LEN(D$)THENREADD$:P=1 -24 D=(ASC(MID$(D$,P,1))-65)*16+ASC(MID$(D$,P+1,1))-65:POKEN,D:C=C+D:NEXT:IFC=41383THENRETURN -28 GOSUB45:PRINT"loader. Can't continue.":END -30 PRINT"End address for ";F$;:A=-1:INPUT" (Press ENTER for just below HIMEM)";A -40 CALL64710,F,A:F=F+1:E=PEEK(64704):IFETHENPRINT"Warning - ";:GOSUB45ELSEPRINT"Loaded "; -44 CALL4514,,64659:PRINT".CO":RETURN -45 PRINT"Bad checksum on ";:BEEP:RETURN -50 DATA MGDADCMAPMDCMBPMOFCKHMPGOLONCLCCMEPMCBJDPMFHMNDMPNCBMOPKMNDMPNOBNFAIMKBFPNCDAIMCPDPMCKPEPFOFCKNAPKEEENOBAIOFBBMOPKONEEEN -55 DATA OBNJAICCMCPMOLCKNCPKHMLFMKBFPNBJCCNCPKMNEGCBMNIJCAMENJBPMNEGCBMNLJPNMNIJCAOLMNFADECDCDNBMNDPPNDCJJPMMNGBPNJCDCMAPMMJABAG -60 DATA AAMFOFMNGBPNOBHHEHHKNKFFPNCLEOOLCKMCPMAJNJOLCDIAAPFHCDMBALHILBMCDPPNMJNFFEMNHOPNPOCKNCHJPNNGCFFHAPAPOGMAFPMNHOPNNGDALDNG -65 DATA GLBINBMJCKMEPMHOLHMKJBPNHOPOCJCDCCMEPMMADODKMJABAFAAAJHONGIDMCKNPNCDLOMKJEPNABMAPMAKLHMKKNPNDKMBPMJGACCDHOMKICPNLHMCKNPN -70 DATA MDJBPNMNOMCAOFCKNAPKABAGAAAJEEENCKLCPLNEGNGLNKCCDPOLCKLAPLAICCLAPLDOKAOBMNDJCCCBMOPKMDEACF -100 DATA0#o#`#`#i$4#;p^Vmp^#&N4#T#S#i#L#_# -102 DATA #Qk4F!VQ#;3#9o.$K&N#$a$2$Y$)#b#>!R$U5r&O$a#>#8-l&O#J$R#Yp$[#b#p-{&O#$Y!R48R&N8$Y$HE$=&N-$)&N$R#>4#Yp8J&N8\&N3Q[#)#)#)$).$K&N86$I8<&N -103 DATA #|$baqt8$D#Oqz#Q#;#>p-$]&O#Q#a#>$K8\&N#b#Uwhi}5$1&O$S!R4#9l#Yl8J&N$R#>$N.#m&O<#Yo8J&N$L#>#\8$D#O.#m&O8!J#;-$@&N#<$F&N#=#ma8O#;P8$Z&P#E#Bh#`#g$D$;#=ohv$)#Wn#X-C&O$2#<#g&P#4#4#4#4#4$Y`|$P&P@ -104 DATA #>$9#>$1@#>$9#>$A$F$9#>$1$;$D#=mhV#=khP8$H$FE$C&N#w.#6&P#9n8!9&OP@#Yn8J&N8$h&O!J#b#j#Mwh$R#EmhV#E!If#4#=!If4#Ekh#=!Kf4\#EkhV -105 DATA #6L.#T#=#U!4gA#^[#Ym48$)&O-$@&N#U!4gi#]E$I&Ni#`=$I&N8!J#;5$7&N8$Z&P#j#Ym$l0@V8!8#<<$X$n$J$W!5$B,w#>#Fx-!S&P$X!O3@P8!7&OLEN(D$)THENREADD$:P=1 2D=(ASC(MID$(D$,P,1))-65)*16+ASC(MID$(D$,P+1,1))-65:POKEN,D:C=C+D:NEXT:IFC=41383THENRETURN 3GOSUB7:?"loader. Can't continue.":END 4?"(ENTER for just below HIMEM)":?"End address for ";F$;:A=-1:INPUTA 5CALL64710,F,A:F=F+1:E=PEEK(64704):IFETHEN?"Warning - ";:GOSUB7ELSE?"Loaded "; 6CALL4514,,64659:?".CO":RETURN 7?"Bad checksum on ";:BEEP:RETURN 8DATAMGDADCMAPMDCMBPMOFCKHMPGOLONCLCCMEPMCBJDPMFHMNDMPNCBMOPKMNDMPNOBNFAIMKBFPNCDAIMCPDPMCKPEPFOFCKNAPKEEENOBAIOFBBMOPKONEEEN 9DATAOBNJAICCMCPMOLCKNCPKHMLFMKBFPNBJCCNCPKMNEGCBMNIJCAMENJBPMNEGCBMNLJPNMNIJCAOLMNFADECDCDNBMNDPPNDCJJPMMNGBPNJCDCMAPMMJABAG 10DATAAAMFOFMNGBPNOBHHEHHKNKFFPNCLEOOLCKMCPMAJNJOLCDIAAPFHCDMBALHILBMCDPPNMJNFFEMNHOPNPOCKNCHJPNNGCFFHAPAPOGMAFPMNHOPNNGDALDNG 11DATAGLBINBMJCKMEPMHOLHMKJBPNHOPOCJCDCCMEPMMADODKMJABAFAAAJHONGIDMCKNPNCDLOMKJEPNABMAPMAKLHMKKNPNDKMBPMJGACCDHOMKICPNLHMCKNPN 12DATAMDJBPNMNOMCAOFCKNAPKABAGAAAJEEENCKLCPLNEGNGLNKCCDPOLCKLAPLAICCLAPLDOKAOBMNDJCCCBMOPKMDEACF 13DATA0#o#`#`#i$4#;p^Vmp^#&N4#T#S#i#L#_# 15DATA #Qk4F!VQ#;3#9o.$K&N#$a$2$Y$)#b#>!R$U5r&O$a#>#8-l&O#J$R#Yp$[#b#p-{&O#$Y!R48R&N8$Y$HE$=&N-$)&N$R#>4#Yp8J&N8\&N3Q[#)#)#)$).$K&N86$I8<&N 16DATA #|$baqt8$D#Oqz#Q#;#>p-$]&O#Q#a#>$K8\&N#b#Uwhi}5$1&O$S!R4#9l#Yl8J&N$R#>$N.#m&O<#Yo8J&N$L#>#\8$D#O.#m&O8!J#;-$@&N#<$F&N#=#ma8O#;P8$Z&P#E#Bh#`#g$D$;#=ohv$)#Wn#X-C&O$2#<#g&P#4#4#4#4#4$Y`|$P&P@ 17DATA #>$9#>$1@#>$9#>$A$F$9#>$1$;$D#=mhV#=khP8$H$FE$C&N#w.#6&P#9n8!9&OP@#Yn8J&N8$h&O!J#b#j#Mwh$R#EmhV#E!If#4#=!If4#Ekh#=!Kf4\#EkhV 18DATA #6L.#T#=#U!4gA#^[#Ym48$)&O-$@&N#U!4gi#]E$I&Ni#`=$I&N8!J#;5$7&N8$Z&P#j#Ym$l0@V8!8#<<$X$n$J$W!5$B,w#>#Fx-!S&P$X!O3@P8!7&OLEN(D$)THENREADD$:P=1 -24 D=(ASC(MID$(D$,P,1))-65)*16+ASC(MID$(D$,P+1,1))-65:POKEN,D:C=C+D:NEXT:IFC=40895THENRETURN -28 GOSUB45:PRINT"loader. Can't continue.":END -30 PRINT"End address for ";F$;:A=-1:INPUT" (Press ENTER for just below HIMEM)";A -40 CALL-2122,F,A:F=F+1:E=PEEK(-2128):IFETHENPRINT"Warning - ";:GOSUB45ELSEPRINT"Loaded "; -44 CALL4556,,-2234:PRINT".CO":RETURN -45 PRINT"Bad checksum on ";:BEEP:RETURN -50 DATA MGDADCLAPHDCLBPHOFCKGHOPOLONCLCCLEPHCBEGPHFHMNCMPICBPLPEMNCMPIOBNFAIMKAFPICDAIMCODPHCKLEOOOFCKPNPEEEENOBAIOFBBPLPEONEEEN -55 DATA OBNJAICCLCPHOLCKPPPEHMLFMKAFPIBJCCPPPEMNGCCMMNKGCLMEMOCKMNGCCMMNKJPIMNKGCLOLMNKBEBCDCDNBMNCPPIDCEMPHMNFBPIJCDCLAPHMJABAG -60 DATA AAMFOFMNFBPIOBHHEHHKNKEFPICLEOOLCKLCPHAJNJOLCDIAAPFHCDMBALHILBMCCPPIMJNFFEMNGOPIPOCKNCGJPINGCFFHAPAPOGMAFPMNGOPINGDALDNG -65 DATA GLBINBMJCKLEPHHOLHMKIBPIHOPOCJCDCCLEPHMADODKMJABAFAAAJHONGIDMCJNPICDLOMKIEPIABLAPHAKLHMKJNPIDKLBPHJGACCDHOMKHCPILHMCJNPI -70 DATA MDIBPIMNAJCMOFCKPNPEABAGAAAJEEENCKGFPGNEKIICNKDNEMOLCKGDPGAICCGDPGDOKAOBMNKMCNCBPLPEMDKFDC -100 DATA0#o#`#`#i$4#;0VVm0V#$a$2$Y$)#b#>!R$U5A&G$a#>#8-;&G#J$R#Yp$[#b#p-J&G#$Y!R4#Yp8_&H8+&G3Q[#)#)#)$).#K&G8!P$b8$l&G#|$MZqt8!U#\qz#Q#;#>p-#]&H#Q#a#>$K8+&G#b#Ugbi}5#1&H$S!R4#9l#Yl8_&H$R#>$N.}&H<#Yo8_&H$L#>#\8!U#\.}&H87#F-#@&G#<#F&G#=#OZ8l#GP8$c&G#E#2c#`#g$D$;#=_bv$)#Wn#X-!3&H$2#<#0&I#4#4#4#4#4$Y`|#Y&I@#>$9#>$1@ -104 DATA #>$9#>$A$F$9#>$1$;$D#=]bV#=[bP8!C$]E#C&G#w.F&H##Qk4F4Q$[+#9o.#K&G8g&H8#4$`E#=&G-#)&G$R#>4!;#R&I$>a+#?&I$$R#E]bV#E$a4\ -105 DATA #E[bV#6L.!G#H8#)&H-#@&G#U#gbi#]E#I&Gi#`=#I&G87#F5#7&G8$c&G#j#Ym$l0@V8;#G<$X$n$J$W!5$B,w#>#Fx-$S&I$X!O3@P8$7&HLEN(D$)THENREADD$:P=1 2D=(ASC(MID$(D$,P,1))-65)*16+ASC(MID$(D$,P+1,1))-65:POKEN,D:C=C+D:NEXT:IFC=40895THENRETURN 3GOSUB7:?"loader. Can't continue.":END 4?"(ENTER for just below HIMEM):?"End address for ";F$;:A=-1:INPUTA 5CALL-2122,F,A:F=F+1:E=PEEK(-2128):IFETHEN?"Warning - ";:GOSUB7ELSE?"Loaded "; 6CALL4556,,-2234:?".CO":RETURN 7?"Bad checksum on ";:BEEP:RETURN 8MGDADCLAPHDCLBPHOFCKGHOPOLONCLCCLEPHCBEGPHFHMNCMPICBPLPEMNCMPIOBNFAIMKAFPICDAIMCODPHCKLEOOOFCKPNPEEEENOBAIOFBBPLPEONEEEN 9DATAOBNJAICCLCPHOLCKPPPEHMLFMKAFPIBJCCPPPEMNGCCMMNKGCLMEMOCKMNGCCMMNKJPIMNKGCLOLMNKBEBCDCDNBMNCPPIDCEMPHMNFBPIJCDCLAPHMJABAG 10DATAAAMFOFMNFBPIOBHHEHHKNKEFPICLEOOLCKLCPHAJNJOLCDIAAPFHCDMBALHILBMCCPPIMJNFFEMNGOPIPOCKNCGJPINGCFFHAPAPOGMAFPMNGOPINGDALDNG 11DATAGLBINBMJCKLEPHHOLHMKIBPIHOPOCJCDCCLEPHMADODKMJABAFAAAJHONGIDMCJNPICDLOMKIEPIABLAPHAKLHMKJNPIDKLBPHJGACCDHOMKHCPILHMCJNPI 12DATAMDIBPIMNAJCMOFCKPNPEABAGAAAJEEENCKGFPGNEKIICNKDNEMOLCKGDPGAICCGDPGDOKAOBMNKMCNCBPLPEMDKFDC 13DATA0#o#`#`#i$4#;0VVm0V#$a$2$Y$)#b#>!R$U5A&G$a#>#8-;&G#J$R#Yp$[#b#p-J&G#$Y!R4#Yp8_&H8+&G3Q[#)#)#)$).#K&G8!P$b8$l&G#|$MZqt8!U#\qz#Q#;#>p-#]&H#Q#a#>$K8+&G#b#Ugbi}5#1&H$S!R4#9l#Yl8_&H$R#>$N.}&H<#Yo8_&H$L#>#\8!U#\.}&H87#F-#@&G#<#F&G#=#OZ8l#GP8$c&G#E#2c#`#g$D$;#=_bv$)#Wn#X-!3&H$2#<#0&I#4#4#4#4#4$Y`|#Y&I@#>$9#>$1@ 17DATA #>$9#>$A$F$9#>$1$;$D#=]bV#=[bP8!C$]E#C&G#w.F&H##Qk4F4Q$[+#9o.#K&G8g&H8#4$`E#=&G-#)&G$R#>4!;#R&I$>a+#?&I$$R#E]bV#E$a4\ 18DATA #E[bV#6L.!G#H8#)&H-#@&G#U#gbi#]E#I&Gi#`=#I&G87#F5#7&G8$c&G#j#Ym$l0@V8;#G<$X$n$J$W!5$B,w#>#Fx-$S&I$X!O3@P8$7&H Date: Sun, 5 Jun 2022 16:49:52 -0400 Subject: [PATCH 036/206] URII DOS___.CO in any dir. Better progress displays. * Allow URII to load "DOS___.CO" from the root share dir reardless of chdir path. * bundle DOS100.CO, DOS200.CO, DOSNEC.CO * Better progress displays for read, write, and bootstrap. * file size conversion from local to tpdd display * upcase the dme cwd display if upcase option --- README.md | 25 ++++- clients/ts-dos/DOS100.CO | Bin 0 -> 5791 bytes clients/ts-dos/DOS200.CO | Bin 0 -> 5774 bytes clients/ts-dos/DOSNEC.CO | Bin 0 -> 5821 bytes dl.c | 202 +++++++++++++++++++++++++-------------- 5 files changed, 151 insertions(+), 76 deletions(-) create mode 100644 clients/ts-dos/DOS100.CO create mode 100644 clients/ts-dos/DOS200.CO create mode 100644 clients/ts-dos/DOSNEC.CO diff --git a/README.md b/README.md index a1232d2..456d9b0 100644 --- a/README.md +++ b/README.md @@ -24,21 +24,21 @@ sudo make uninstall dl -h ``` -## run the TPDD server, serving files from the current directory +## run the TPDD server, verbose, upcase, serving files from the current directory ``` -dl +dl -vu ``` ## list all available TPDD client installers, and then bootstrap one of them ``` dl -l -dl -b TS-DOS.100 +dl -vb TS-DOS.100 ``` ## bootstrap a [REXCPM](http://bitchin100.com/wiki/index.php?title=REXCPM) ``` -unzip REXCPMV21_b18.ZIP -dl -b ./rxcini.DO ;dl -u +unzip REXCPMV21_b19.ZIP +dl -vb ./rxcini.DO ;dl -vu ``` ## fun The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT". TS-DOS thinks it's an invalid filename (even though it DISPLAYS it in the file list just fine. If it would just go ahead and send the command to "open" it, it would work.) However, plenty of other things that are all better than "ROOT " and "PARENT" do work. @@ -49,3 +49,18 @@ ROOT_LABEL='0:' PARENT_LABEL='^:' dl or you can confuse someone... ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl ``` +## UR-II +Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS from disk on-the-fly. + +This allows you to keep the TS-DOS executable on the disk instead of in ram, and it is loaded and then discarded on-demand by selecting the TS-DOS menu entry from inside UR2. You don't have to install TS-DOS via the bootstrapper if you have an UR2 option rom installed. + +For that feature to work, a file named DOS100.CO, DOS200.CO, or DOSNEC.CO (depending on your model of computer) must exist on the "disk". + +UR2 doesn't know anything about directories, and just tries to load a file named "DOS___.CO". + +If you had previously loaded TS-DOS and used it to navigate into a subdirectory, and that subdirectory didn't also have a copy of DOS___.CO in it, then UR2 would normally fail to load TS-DOS after that, until you restarted the TPDD server to make it go back to the root share dir. + +This version of dlplus has a special feature to support UR2, so that UR2 may still load DOS100.CO, DOS200.CO, or DOSNEC.CO no matter what subdirectory the server has been navigated to, as long as there is a copy in the root shared directory. + +The [clients/](clients/) directory includes copies of [DOS100.CO](clients/ts-dos/DOS100.CO), [DOS200.CO](clients/ts-dos/DOS200.CO), and [DOSNEC.CO](clients/ts-dos/DOSNEC.CO) +These are also installed to ```/usr/local/lib/dlplus/clients/ts-dos/``` by ```sudo make install``` diff --git a/clients/ts-dos/DOS100.CO b/clients/ts-dos/DOS100.CO new file mode 100644 index 0000000000000000000000000000000000000000..0f9b363fa94f5cf862efa63bbe1982140a0bcf45 GIT binary patch literal 5791 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 UZmD%0(cjRtx%>_E{}0mt0ezXsf&c&j literal 0 HcmV?d00001 diff --git a/clients/ts-dos/DOS200.CO b/clients/ts-dos/DOS200.CO new file mode 100644 index 0000000000000000000000000000000000000000..7deaca75faf424464aed7df2afc998109246256e GIT binary patch literal 5774 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 Xs=>L>(~vi*?cd|u_V-}=H+lX)Jvzb- literal 0 HcmV?d00001 diff --git a/dl.c b/dl.c index 7c641f3..d874068 100644 --- a/dl.c +++ b/dl.c @@ -114,7 +114,7 @@ MA 02111, USA. #define DEFAULT_CLIENT_BAUD B19200 #endif -#define DEFAULT_BASIC_BYTE_MSEC 6 +#define DEFAULT_BASIC_BYTE_MS 6 #define DEFAULT_TPDD_FILE_ATTRIB 0x46 // F // These defaults are the same as what the original Desk-Link does. @@ -126,6 +126,13 @@ MA 02111, USA. // this you can't change unless you also hack ts-dos #define DEFAULT_DME_DIR_LABEL "<>" // DIR_LABEL='/' +// Ultimate ROM-II TS-DOS loader support: Special filenames from the +// root dir that should always be loadable no matter what subdirectory +// the client has switched to. +#define DOS100 "DOS100.CO" +#define DOS200 "DOS200.CO" +#define DOSNEC "DOSNEC.CO" + // termios VMIN & VTIME #define C_CC_VMIN 1 #define C_CC_VTIME 5 @@ -245,7 +252,8 @@ MA 02111, USA. #define LEN_RET_DME 0x0B #define LEN_RET_DIRENT 0x1C -// KC-85 platform BASIC interpreter EOF byte for bootstrap() +// KC-85 platform BASIC interpreter EOL & EOF byts for bootstrap() +#define BASIC_EOL 0x0D #define BASIC_EOF 0x1A // configuration @@ -254,12 +262,12 @@ bool upcase = false; bool rtscts = false; unsigned dot_offset = 6; // 0 for raw, 6 for KC-85, 8 for WP-2 int client_baud = DEFAULT_CLIENT_BAUD; -int BASIC_byte_msec = DEFAULT_BASIC_BYTE_MSEC; +int BASIC_byte_us = DEFAULT_BASIC_BYTE_MS*1000; char dme_root_label[7] = DEFAULT_DME_ROOT_LABEL; char dme_parent_label[7] = DEFAULT_DME_PARENT_LABEL; char dme_dir_label[3] = DEFAULT_DME_DIR_LABEL; char default_attrib = DEFAULT_TPDD_FILE_ATTRIB; - +bool enable_ur2_dos_hack = true; bool getty_mode = false; bool bootstrap_mode = false; @@ -278,6 +286,7 @@ int opr_mode = 1; // 0=FDC-mode 1=Operation-mode bool dme_detected = false; bool dme_fdc = false; bool dme_disabled = false; +char ch[2] = {0xFF}; FILE_ENTRY *cur_file; int dir_depth=0; @@ -330,19 +339,21 @@ void client_tty_vmt(int m,int t) { tcsetattr(client_tty_fd,TCSANOW,&client_termios); } -int write_client_tty(void *b, size_t n) { +int write_client_tty(void *b, int n) { dbg(4,"%s(%u)\n",__func__,n); - dbg(3,"SEND: "); dbg_b(3,b,n); - return (write(client_tty_fd,b,n)); + n = write(client_tty_fd,b,n); + dbg(3,"SENT: "); dbg_b(3,b,n); + return n; } -// TODO - retry sanity check counter - don't retry forever +// it's correct that this waits forever +// the one time we don't want to block, we don't use this int read_client_tty(void *b, const unsigned int n) { dbg(4,"%s(%u)\n",__func__,n); unsigned t = 0; int i = 0; while (tclient_fname); - unsigned short size; int i; memset(buf,0x00,TPDD_DATA_MAX+3); @@ -552,8 +573,8 @@ int ret_dirent(FILE_ENTRY *ep) buf[26] = default_attrib; // size - size = htons (ep->len); - memcpy (buf + 27, &size, 2); + buf[27]=(uint8_t)(ep->len >> 0x08); // most significant byte + buf[28]=(uint8_t)(ep->len & 0xFF); // least significant byte } dbg(3,"\"%24.24s\"\n",buf+2); @@ -602,9 +623,20 @@ int req_dirent(unsigned char *data) // Remove trailing spaces for (p = strrchr(filename,' '); p >= filename && *p == ' '; p--) *p = 0x00; cur_file=find_file(filename); - if (cur_file) { + if (cur_file) { dbg(3,"Exists: \"%s\" %u\n", cur_file->local_fname, cur_file->len); ret_dirent(cur_file); + } else if (ck_ur2_dos(filename)==0) { + // let UR2 load /DOSxxx.CO in any subdir + // if not found in current dir for real. + cur_file=make_file_entry(filename,0,0); + char t[LOCAL_FILENAME_MAX+1] = {0x00}; + for (int i=dir_depth;i>0;i--) strncat(t,"../",3); + strncat(t,cur_file->local_fname,LOCAL_FILENAME_MAX-dir_depth*3); + memset(cur_file->local_fname,0x00,LOCAL_FILENAME_MAX); + memcpy(cur_file->local_fname,t,LOCAL_FILENAME_MAX); + dbg(3,"Virtual: \"%s\" <-- \"%s\"\n",cur_file->client_fname,cur_file->local_fname); + ret_dirent(cur_file); } else { if (filename[dot_offset+1]==dme_dir_label[0] && filename[dot_offset+2]==dme_dir_label[1]) f = DIR_FLAG; cur_file=make_file_entry(collapse_padded_name(filename), 0, f); @@ -646,8 +678,11 @@ void update_dme_cwd() { (void)(getcwd(cwd,PATH_MAX-1)+1); dbg(0,"Changed Dir: %s\n",cwd); if (dir_depth) { - for (i=strlen(cwd); i>=0 ; i--) if (cwd[i]=='/') break; - snprintf(dme_cwd,7,"%-6.6s",cwd+i+1); + for (i=strlen(cwd); i>=0 ; i--) { + if (cwd[i]=='/') break; + if (upcase && cwd[i]>='a' && cwd[i]<='z') cwd[i]=cwd[i]-32; + } + snprintf(dme_cwd,7,"%-6.6s",cwd+1+i); } else { memcpy(dme_cwd,dme_root_label,6); } @@ -705,7 +740,7 @@ void req_fdc() { // b[3] = chk int req_open(unsigned char *data) { - dbg(2,"%s(\"%s\")\n",__func__,cur_file->local_fname); + dbg(2,"%s(\"%s\")\n",__func__,cur_file->client_fname); dbg(5,"data[]\n"); dbg_b(5,data,-1); dbg_p(4,data); @@ -730,7 +765,7 @@ int req_open(unsigned char *data) ret_std(ERR_FMT_MISMATCH); else { f_open_mode=omode; - dbg(1,"Open for write: %s\n",cur_file->local_fname); + dbg(1,"Open for write: \"%s\"\n",cur_file->local_fname); ret_std(ERR_SUCCESS); } } @@ -750,7 +785,7 @@ int req_open(unsigned char *data) ret_std(ERR_FMT_MISMATCH); else { f_open_mode=omode; - dbg(1,"Open for append: %s\n",cur_file->local_fname); + dbg(1,"Open for append: \"%s\"\n",cur_file->local_fname); ret_std (ERR_SUCCESS); } break; @@ -784,12 +819,12 @@ int req_open(unsigned char *data) else ret_std (ERR_SUCCESS); } else { // regular file - o_file_h = open (cur_file->local_fname, O_RDONLY); + o_file_h = open(cur_file->local_fname, O_RDONLY); if (o_file_h<0) ret_std (ERR_NO_FILE); else { f_open_mode = omode; - dbg(1,"Open for read: %s\n",cur_file->local_fname); + dbg(1,"Open for read: \"%s\"\n",cur_file->local_fname); ret_std (ERR_SUCCESS); } } @@ -802,7 +837,7 @@ int req_open(unsigned char *data) // b[1] = 0x00 // b[2] = chk void req_read(void) { - dbg(2,"%s()\n",__func__); + if (ch[1]!=REQ_READ || debug>2) dbg(2,"%s()\n",__func__); int i; buf[0]=RET_READ; @@ -815,11 +850,16 @@ void req_read(void) { return; } - i = read (o_file_h, buf+2, TPDD_DATA_MAX); + i = read(o_file_h, buf+2, TPDD_DATA_MAX); buf[1] = (unsigned char) i; buf[2+i] = checksum(buf); + if(ch[1]==REQ_READ && debug<4) { + dbg(1,"."); + if (i2) dbg(2,"%s()\n",__func__); dbg(4,"...incoming packet...\n"); dbg(5,"data[]\n"); dbg_b(5,data,-1); dbg_p(4,data); @@ -846,6 +886,11 @@ void req_write(unsigned char *data) { return; } + if(ch[1]==REQ_WRITE && debug<4) { + dbg(1,".",data[1]); + if (data[1]=0) { cat(pre_install_txt_file); } else { - printf("Prepare the portable to receive. Hints:\n"); - printf("\tRUN \"COM:98N1ENN\"\t(for TANDY, Kyotronic, Olivetti)\n"); - printf("\tRUN \"COM:9N81XN\"\t(for NEC)\n"); - printf("\n"); + puts("Prepare BASIC to receive:"); + puts(""); + puts(" RUN \"COM:98N1ENN\" [Enter] <-- for TANDY/Olivetti/Kyotronic"); + puts(" RUN \"COM:9N81XN\" [Enter] <-- for NEC"); + puts(""); } - printf("Press [Enter] when ready..."); + puts(""); + puts("Press [Enter] when ready..."); getchar(); if ((r=send_BASIC(loader_file))!=0) return r; @@ -1187,7 +1245,7 @@ int bootstrap(char *f) printf("\n\n\"%s -b\" will now exit.\n",args[0]); printf("Re-run \"%s\" (without -b this time) to run the TPDD server.\n",args[0]); - printf("\n"); + puts(""); return 0; } @@ -1202,7 +1260,7 @@ void show_config () { dbg(0,"rtscts : %s\n",rtscts?"true":"false"); dbg(0,"verbosity : %d\n",debug); dbg(0,"dot_offset : %d\n",dot_offset); - dbg(0,"BASIC_byte_msec : %d\n",BASIC_byte_msec); + dbg(0,"BASIC_byte_ms : %d\n",BASIC_byte_us/1000); dbg(0,"bootstrap_mode : %s\n",bootstrap_mode?"true":"false"); dbg(0,"bootstrap_file : \"%s\"\n",bootstrap_file); dbg(0,"client_tty_name : \"%s\"\n",client_tty_name); @@ -1214,6 +1272,7 @@ void show_config () { dbg(2,"dme_root_label : \"%-6.6s\"\n",dme_root_label); dbg(2,"dme_parent_label: \"%-6.6s\"\n",dme_parent_label); dbg(2,"dme_dir_label : \"%-2.2s\"\n",dme_dir_label); + dbg(0,"ur2_dos_hack : %s\n",enable_ur2_dos_hack?"enabled":"disabled"); dbg(2,"default_attrib : '%c'\n",default_attrib); } @@ -1231,7 +1290,7 @@ void show_main_help() { " -w WP-2 mode - 8.2 filenames\n" " -u Uppercase all filenames\n" " -r RTS/CTS hardware flow control\n" - " -z # Milliseconds per byte for bootstrap (" S_(DEFAULT_BASIC_BYTE_MSEC) ")\n" + " -z # Milliseconds per byte for bootstrap (" S_(DEFAULT_BASIC_BYTE_MS) ")\n" " -0 Raw mode. Do not munge filenames in any way.\n" " Disables 6.2 or 8.2 filename trucating & padding\n" " Changes the attribute byte to ' ' instead of 'F'\n" @@ -1267,6 +1326,7 @@ int main(int argc, char **argv) // environment variable overrides for some things that don't have switches if (getenv("OPR_MODE")) opr_mode = atoi(getenv("OPR_MODE")); if (getenv("DISABLE_DME")) dme_disabled = true; + if (getenv("DISABLE_UR2_DOS_HACK")) enable_ur2_dos_hack = false; if (getenv("DOT_OFFSET")) dot_offset = atoi(getenv("DOT_OFFSET")); if (getenv("BAUD")) {i=atoi(getenv("BAUD")); client_baud=i==9600?B9600:i==19200?B19200:-1;} @@ -1287,7 +1347,7 @@ int main(int argc, char **argv) case 'w': dot_offset = 8; break; case 'h': show_main_help(); exit(0); break; case 'l': show_bootstrap_help(); exit(0); break; - case 'z': BASIC_byte_msec=atoi(optarg); break; + case 'z': BASIC_byte_us=atoi(optarg)*1000; break; case 'd': strcpy(client_tty_name,optarg); break; case 'p': (void)(chdir(optarg)+1); break; case 'b': bootstrap_mode=true; strcpy(bootstrap_file,optarg); break; From 4a89d698ffc2163f4f6be4238764a315619889e3 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sun, 5 Jun 2022 19:25:19 -0400 Subject: [PATCH 037/206] whitespace --- dl.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/dl.c b/dl.c index d874068..c1af019 100644 --- a/dl.c +++ b/dl.c @@ -1118,7 +1118,7 @@ int get_fdc_cmd(void) { case FDC_WRITE_ID_NV: req_fdc_write_id_nv(b); break; case FDC_WRITE_SECTOR: req_fdc_write_sector(b); break; case FDC_WRITE_SECTOR_NV: req_fdc_write_sector_nv(b); break; - case 0x00: if (!i) {dbg(1,"FDC: empty command\n"); break;} + case 0x00: if (!i) {dbg(1,"FDC: empty command\n"); break;} default: dbg(1,"FDC: unknown command\n"); } return 0; @@ -1339,24 +1339,24 @@ int main(int argc, char **argv) // commandline options while ((i = getopt (argc, argv, ":0gurvd:p:wb:z:hl^")) >=0) switch (i) { - case '0': dot_offset=0; upcase=false; default_attrib=0x20; break; - case 'g': getty_mode = true; debug = 0; break; - case 'u': upcase = true; break; - case 'r': rtscts = true; break; - case 'v': debug++; break; - case 'w': dot_offset = 8; break; - case 'h': show_main_help(); exit(0); break; - case 'l': show_bootstrap_help(); exit(0); break; - case 'z': BASIC_byte_us=atoi(optarg)*1000; break; - case 'd': strcpy(client_tty_name,optarg); break; - case 'p': (void)(chdir(optarg)+1); break; + case '0': dot_offset=0; upcase=false; default_attrib=0x20; break; + case 'g': getty_mode = true; debug = 0; break; + case 'u': upcase = true; break; + case 'r': rtscts = true; break; + case 'v': debug++; break; + case 'w': dot_offset = 8; break; + case 'h': show_main_help(); exit(0); break; + case 'l': show_bootstrap_help(); exit(0); break; + case 'z': BASIC_byte_us=atoi(optarg)*1000; break; + case 'd': strcpy(client_tty_name,optarg); break; + case 'p': (void)(chdir(optarg)+1); break; case 'b': bootstrap_mode=true; strcpy(bootstrap_file,optarg); break; - case '^': x=true; break; // debugging - case ':': dbg(0,"\"-%c\" requires a value\n",optopt); break; + case '^': x=true; break; + case ':': dbg(0,"\"-%c\" requires a value\n",optopt); break; case '?': if (isprint(optopt)) dbg(0,"Unknown option `-%c'.\n",optopt); else dbg(0,"Unknown option character `\\x%x'.\n",optopt); - default: show_main_help(); return 1; + default: show_main_help(); return 1; } // commandline non-option arguments @@ -1422,7 +1422,7 @@ int main(int argc, char **argv) // send loader and exit if (bootstrap_mode) return (bootstrap(bootstrap_file)); - // create the file list (for reverse order traversal) + // create the file list file_list_init(); if (debug) update_file_list(); From 90869bcadd13da5a34e4b3a97e7d310e4abdb8b4 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sun, 5 Jun 2022 23:05:02 -0400 Subject: [PATCH 038/206] correct a comment, break out req_dirent(), improve -vv output --- dl.c | 191 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 93 insertions(+), 98 deletions(-) diff --git a/dl.c b/dl.c index c1af019..d38a309 100644 --- a/dl.c +++ b/dl.c @@ -366,16 +366,13 @@ void cat(char *f) { close(h); } -// b[] = TPDD Operation-mode return block // b[0] = cmd -// b[1] = len (how many more bytes to read after this one, 0-128) +// b[1] = len // b[2] to b[1+len] = 0 to 128 bytes of payload -// contents after b[1+len] are ignored +// ignore everything after b[1+len] unsigned char checksum(unsigned char *b) { unsigned short s=0; - int i; - - for (i=0;i<2+b[1];i++) s+=b[i]; + for (int i=0;i<2+b[1];i++) s+=b[i]; return ((s&0xFF)^0xFF); } @@ -467,7 +464,6 @@ FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) f.client_fname[dot_offset+3]=0x00; if (upcase) for(i=0;i= filename && *p == ' '; p--) *p = 0x00; + if (b[2]) { + dbg(3,"filename: \"%-24.24s\"\n",b+2); + dbg(3," attrib: \"%c\" (%1$02X)\n",b[26]); + } + // we must update before every set-name for at least 2 reasons + // 1 - get-first is not required before set-name + // TEENY for instance never does get-first or get-next + // UR2 doesn't do get-first/get-next before requesting DOS100.CO + // 2 - Files may be changed by other processes than ourself + // set-name however is required for, and before, any other action + // than get-first, so updating here and get-first covers everything else. + update_file_list(); + strncpy(filename,(char *)b+2,TPDD_FILENAME_LEN); + filename[TPDD_FILENAME_LEN]=0; + // Remove trailing spaces + for (p = strrchr(filename,' '); p >= filename && *p == ' '; p--) *p = 0x00; cur_file=find_file(filename); - if (cur_file) { - dbg(3,"Exists: \"%s\" %u\n", cur_file->local_fname, cur_file->len); - ret_dirent(cur_file); - } else if (ck_ur2_dos(filename)==0) { - // let UR2 load /DOSxxx.CO in any subdir - // if not found in current dir for real. - cur_file=make_file_entry(filename,0,0); - char t[LOCAL_FILENAME_MAX+1] = {0x00}; - for (int i=dir_depth;i>0;i--) strncat(t,"../",3); - strncat(t,cur_file->local_fname,LOCAL_FILENAME_MAX-dir_depth*3); - memset(cur_file->local_fname,0x00,LOCAL_FILENAME_MAX); - memcpy(cur_file->local_fname,t,LOCAL_FILENAME_MAX); - dbg(3,"Virtual: \"%s\" <-- \"%s\"\n",cur_file->client_fname,cur_file->local_fname); - ret_dirent(cur_file); - } else { - if (filename[dot_offset+1]==dme_dir_label[0] && filename[dot_offset+2]==dme_dir_label[1]) f = DIR_FLAG; - cur_file=make_file_entry(collapse_padded_name(filename), 0, f); - dbg(3,"New %s: \"%s\"\n",f==DIR_FLAG?"Directory":"File",cur_file->local_fname); - ret_dirent(NULL); - } - break; - case DIRENT_GET_FIRST: - dbg(3,"DIRENT_GET_FIRST\n"); - if (debug==1) dbg(2,"Directory Listing\n"); - // we must update every time before get-first, - // because set-name is not required before get-first - update_file_list(); - ret_dirent(get_first_file()); - dme_fdc = 0; // see ref/fdc.txt - break; - case DIRENT_GET_NEXT: - dbg(3,"DIRENT_GET_NEXT\n"); - ret_dirent(get_next_file()); - break; - case DIRENT_GET_PREV: - dbg(3,"DIRENT_GET_PREV\n"); - ret_dirent(get_prev_file()); - break; - case DIRENT_CLOSE: - dbg(3,"DIRENT_CLOSE\n"); - // does it expect a return? - break; + if (cur_file) { + dbg(3,"Exists: \"%s\" %u\n", cur_file->local_fname, cur_file->len); + ret_dirent(cur_file); + } else if (ck_ur2_dos(filename)==0) { + // let UR2 load /DOSxxx.CO in any subdir + // if not found in current dir for real. + cur_file=make_file_entry(filename,0,0); + char t[LOCAL_FILENAME_MAX+1] = {0x00}; + for (int i=dir_depth;i>0;i--) strncat(t,"../",3); + strncat(t,cur_file->local_fname,LOCAL_FILENAME_MAX-dir_depth*3); + memset(cur_file->local_fname,0x00,LOCAL_FILENAME_MAX); + memcpy(cur_file->local_fname,t,LOCAL_FILENAME_MAX); + dbg(3,"Virtual: \"%s\" <-- \"%s\"\n",cur_file->client_fname,cur_file->local_fname); + ret_dirent(cur_file); + } else { + if (filename[dot_offset+1]==dme_dir_label[0] && filename[dot_offset+2]==dme_dir_label[1]) f = DIR_FLAG; + cur_file=make_file_entry(collapse_padded_name(filename), 0, f); + dbg(3,"New %s: \"%s\"\n",f==DIR_FLAG?"Directory":"File",cur_file->local_fname); + ret_dirent(NULL); + } +} + +void dirent_get_first() { + if (debug==1) dbg(2,"Directory Listing\n"); + // we must update every time before get-first, + // because set-name is not required before get-first + update_file_list(); + ret_dirent(get_first_file()); + dme_fdc = 0; // see req_fdc() & ref/fdc.txt +} + +// b[0] = cmd +// b[1] = len +// b[2]-b[25] = filename +// b[26] = attrib +// b[27] = action (search form) +// +// Don't even look at the data yet except the action byte. +// TS-DOS submits get-first & get-next requests with junk data +// in the filename & attrib fields left over from previous actions. +int req_dirent(unsigned char *b) { + dbg(2,"%s(%s)\n",__func__, + b[27]==DIRENT_SET_NAME?"set_name": + b[27]==DIRENT_GET_FIRST?"get_first": + b[27]==DIRENT_GET_NEXT?"get_next": + b[27]==DIRENT_GET_PREV?"get_prev": + b[27]==DIRENT_CLOSE?"close": + "UNKNOWN"); + dbg(5,"b[]\n"); dbg_b(5,b,-1); + dbg_p(4,b); + + switch (b[27]) { + case DIRENT_SET_NAME: dirent_set_name(b); break; + case DIRENT_GET_FIRST: dirent_get_first(); break; + case DIRENT_GET_NEXT: ret_dirent(get_next_file()); break; + case DIRENT_GET_PREV: ret_dirent(get_prev_file()); break; + case DIRENT_CLOSE: break; } return 0; } @@ -738,13 +733,13 @@ void req_fdc() { // 0x02 write append // 0x03 read // b[3] = chk -int req_open(unsigned char *data) +int req_open(unsigned char *b) { dbg(2,"%s(\"%s\")\n",__func__,cur_file->client_fname); - dbg(5,"data[]\n"); dbg_b(5,data,-1); - dbg_p(4,data); + dbg(5,"b[]\n"); dbg_b(5,b,-1); + dbg_p(4,b); - unsigned char omode = data[2]; + unsigned char omode = b[2]; switch(omode) { case F_OPEN_WRITE: @@ -872,11 +867,11 @@ void req_read(void) { // b[1] = 0x01 - 0x80 // b[2] = b[1] bytes // b[2+len] = chk -void req_write(unsigned char *data) { +void req_write(unsigned char *b) { if (ch[1]!=REQ_WRITE || debug>2) dbg(2,"%s()\n",__func__); dbg(4,"...incoming packet...\n"); - dbg(5,"data[]\n"); dbg_b(5,data,-1); - dbg_p(4,data); + dbg(5,"b[]\n"); dbg_b(5,b,-1); + dbg_p(4,b); dbg(4,".....................\n"); if (o_file_h<0) {ret_std(ERR_CMDSEQ); return;} @@ -887,11 +882,11 @@ void req_write(unsigned char *data) { } if(ch[1]==REQ_WRITE && debug<4) { - dbg(1,".",data[1]); - if (data[1]local_fname,t)) ret_std(ERR_SECTOR_NUM); @@ -944,7 +939,7 @@ void req_rename(unsigned char *data) { void req_close() { if (o_file_h>=0) close(o_file_h); o_file_h = -1; - dbg(2,"Closed: %s\n",cur_file->local_fname); + dbg(2,"\nClosed: \"%s\"\n",cur_file->local_fname); ret_std(ERR_SUCCESS); } From b2edae90ab224cccdd9a7d3e3e3ae5d89f241792 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sun, 5 Jun 2022 23:20:15 -0400 Subject: [PATCH 039/206] naming --- dl.c | 106 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/dl.c b/dl.c index d38a309..9b224aa 100644 --- a/dl.c +++ b/dl.c @@ -49,7 +49,7 @@ MA 02111, USA. * and the +3 is 3 extra bytes for type, length, and checksum. * * Similarly, most functions include frequent references to these - * byte offsets buf[0], buf[1], buf[2], buf+2, buf[buf[1]+2]. + * byte offsets gb[0], gb[1], gb[2], gb+2, gb[gb[1]+2]. * * functions named req_*() receive a command in this format * functions named ret_*() generate a response in this format @@ -277,7 +277,7 @@ int f_open_mode = F_OPEN_NONE; int client_tty_fd = -1; struct termios client_termios; int o_file_h = -1; -unsigned char buf[TPDD_DATA_MAX+3]; +unsigned char gb[TPDD_DATA_MAX+3]; char cwd[PATH_MAX] = {0x00}; char dme_cwd[7] = DEFAULT_DME_ROOT_LABEL; char client_tty_name[PATH_MAX]; @@ -538,13 +538,13 @@ void update_file_list() { void ret_std(unsigned char err) { dbg(3,"%s()\n",__func__); - buf[0]=RET_STD; - buf[1]=0x01; - buf[2]=err; - buf[3]=checksum(buf); + gb[0]=RET_STD; + gb[1]=0x01; + gb[2]=err; + gb[3]=checksum(gb); dbg(3,"Response: %02X\n",err); - write_client_tty(buf,4); - if (buf[2]!=ERR_SUCCESS) dbg(2,"ERROR RESPONSE TO CLIENT\n"); + write_client_tty(gb,4); + if (gb[2]!=ERR_SUCCESS) dbg(2,"ERROR RESPONSE TO CLIENT\n"); } // return for dirent @@ -553,32 +553,32 @@ int ret_dirent(FILE_ENTRY *ep) dbg(2,"%s(\"%s\")\n",__func__,ep->client_fname); int i; - memset(buf,0x00,TPDD_DATA_MAX+3); - buf[0]=RET_DIRENT; - buf[1]=LEN_RET_DIRENT; + memset(gb,0x00,TPDD_DATA_MAX+3); + gb[0]=RET_DIRENT; + gb[1]=LEN_RET_DIRENT; if (ep && ep->client_fname) { // name - memset (buf + 2, ' ', TPDD_FILENAME_LEN); + memset (gb + 2, ' ', TPDD_FILENAME_LEN); if (dot_offset) for (i=0;iclient_fname[i])?ep->client_fname[i]:' '; - else memcpy (buf+2,ep->client_fname,TPDD_FILENAME_LEN); + gb[i+2]=(ep->client_fname[i])?ep->client_fname[i]:' '; + else memcpy (gb+2,ep->client_fname,TPDD_FILENAME_LEN); // attrib - buf[26] = default_attrib; + gb[26] = default_attrib; // size - buf[27]=(uint8_t)(ep->len >> 0x08); // most significant byte - buf[28]=(uint8_t)(ep->len & 0xFF); // least significant byte + gb[27]=(uint8_t)(ep->len >> 0x08); // most significant byte + gb[28]=(uint8_t)(ep->len & 0xFF); // least significant byte } - dbg(3,"\"%24.24s\"\n",buf+2); + dbg(3,"\"%24.24s\"\n",gb+2); - buf[29] = TPDD_FREE_SECTORS; - buf[30] = checksum (buf); + gb[29] = TPDD_FREE_SECTORS; + gb[30] = checksum (gb); - return (write_client_tty(buf,31) == 31); + return (write_client_tty(gb,31) == 31); } void dirent_set_name(unsigned char *b) { @@ -687,16 +687,16 @@ void update_dme_cwd() { // Construct a DME packet around dme_cwd and send it to the client void ret_dme_cwd() { dbg(2,"%s(\"%s\")\n",__func__,dme_cwd); - buf[0]=RET_STD; - buf[1]=LEN_RET_DME; - buf[2]=0x00; - memcpy(buf+3,dme_cwd,6); - buf[9]=0x00; // buf[9]='.'; // contents don't matter but length does - buf[10]=0x00; // buf[10]=dme_dir_label[0]; - buf[11]=0x00; // buf[11]=dme_dir_label[1]; - buf[12]=0x00; // buf[12]=0x20; - buf[13]=checksum(buf); - write_client_tty(buf,14); + gb[0]=RET_STD; + gb[1]=LEN_RET_DME; + gb[2]=0x00; + memcpy(gb+3,dme_cwd,6); + gb[9]=0x00; // gb[9]='.'; // contents don't matter but length does + gb[10]=0x00; // gb[10]=dme_dir_label[0]; + gb[11]=0x00; // gb[11]=dme_dir_label[1]; + gb[12]=0x00; // gb[12]=0x20; + gb[13]=checksum(gb); + write_client_tty(gb,14); } // Any FDC request might actually be a DME request @@ -711,11 +711,11 @@ void req_fdc() { if (!dme_fdc && !dme_disabled) { dbg(3,"testing for dme\n"); - buf[0] = 0x00; + gb[0] = 0x00; client_tty_vmt(0,1); // allow this read to time out - (void)(read(client_tty_fd,buf,1)+1); + (void)(read(client_tty_fd,gb,1)+1); client_tty_vmt(-1,-1); // restore normal VMIN/VTIME - if (buf[0]==0x0D) dme_fdc = true; + if (gb[0]==0x0D) dme_fdc = true; } if (dme_fdc) { dme_detected=true; @@ -835,7 +835,7 @@ void req_read(void) { if (ch[1]!=REQ_READ || debug>2) dbg(2,"%s()\n",__func__); int i; - buf[0]=RET_READ; + gb[0]=RET_READ; if (o_file_h<0) { ret_std(ERR_CMDSEQ); return; @@ -845,10 +845,10 @@ void req_read(void) { return; } - i = read(o_file_h, buf+2, TPDD_DATA_MAX); + i = read(o_file_h, gb+2, TPDD_DATA_MAX); - buf[1] = (unsigned char) i; - buf[2+i] = checksum(buf); + gb[1] = (unsigned char) i; + gb[2+i] = checksum(gb); if(ch[1]==REQ_READ && debug<4) { dbg(1,"."); @@ -856,11 +856,11 @@ void req_read(void) { } dbg(4,"...outgoing packet...\n"); - dbg(5,"buf[]\n"); dbg_b(5,buf,-1); - dbg_p(4,buf); + dbg(5,"gb[]\n"); dbg_b(5,gb,-1); + dbg_p(4,gb); dbg(4,".....................\n"); - write_client_tty(buf, 3+i); + write_client_tty(gb, 3+i); } // b[0] = 0x04 @@ -906,11 +906,11 @@ void req_delete(void) { // https://github.com/bkw777/pdd.sh/blob/41053c21f6f2ee349db2abf51547117de0a51b59/pdd.sh#L1637 void ret_cache_write() { dbg(3,"%s()\n",__func__); - buf[0]=RET_CACHE_STD; - buf[1]=0x01; - buf[2]=ERR_SUCCESS; - buf[3]=checksum(buf); - write_client_tty(buf,4); + gb[0]=RET_CACHE_STD; + gb[1]=0x01; + gb[2]=ERR_SUCCESS; + gb[3]=checksum(gb); + write_client_tty(gb,4); } // Another part of TS-DOS's drive/server capabilities detection scheme. @@ -919,9 +919,9 @@ void ret_cache_write() { void ret_tsdos_mystery() { dbg(3,"%s()\n",__func__); static unsigned char canned[] = {RET_TSDOS_MYSTERY, 0x0F, 0x41, 0x10, 0x01, 0x00, 0x50, 0x05, 0x00, 0x02, 0x00, 0x28, 0x00, 0xE1, 0x00, 0x00, 0x00}; - memcpy(buf, canned, canned[1]+2); - buf[canned[1]+2] = checksum(buf); - write_client_tty(buf, buf[1]+3); + memcpy(gb, canned, canned[1]+2); + gb[canned[1]+2] = checksum(gb); + write_client_tty(gb, gb[1]+3); } void req_rename(unsigned char *b) { @@ -982,7 +982,7 @@ int get_opr_cmd(void) dbg(3,"%s()\n",__func__); unsigned char b[TPDD_DATA_MAX+3] = {0x00}; unsigned i = 0; - memset(buf,0x00,TPDD_DATA_MAX+3); + memset(gb,0x00,TPDD_DATA_MAX+3); while (read_client_tty(&b,1) == 1) { if (b[0]==0x5A) i++; else { i=0; b[0]=0x00; continue; } @@ -1083,7 +1083,7 @@ int get_fdc_cmd(void) { bool eol = false; // see if the command byte was collected already by req_fdc() - if (buf[0]>0x00 && buf[0]!=0x0D && buf[1]==0x00) {b[0]=buf[0];i=1;} + if (gb[0]>0x00 && gb[0]!=0x0D && gb[1]==0x00) {b[0]=gb[0];i=1;} // TODO canonical mode // read command @@ -1153,8 +1153,8 @@ void slowbyte(char b) { case 0: return; case 1: putchar('.'); break; case 2: // display nicely no matter if loader is CR, LF, or CRLF - if (b!=0x0A && buf[0]==0x0A) {buf[0]=0x00; putchar(0x0A); putchar(b);} - else if (b==0x0A || b==BASIC_EOL) buf[0]=0x0A; + if (b!=0x0A && gb[0]==0x0A) {gb[0]=0x00; putchar(0x0A); putchar(b);} + else if (b==0x0A || b==BASIC_EOL) gb[0]=0x0A; else if (isprint(b)) putchar(b); else printf("\033[7m%02X\033[m",b); break; From bab03a7d31ed14260feb3c8059edc32dc03cd422 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sun, 12 Jun 2022 06:26:12 -0400 Subject: [PATCH 040/206] meh --- dl.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/dl.c b/dl.c index 9b224aa..3e99091 100644 --- a/dl.c +++ b/dl.c @@ -158,7 +158,7 @@ MA 02111, USA. #define REQ_RENAME 0x0D #define REQ_REQ_EXT_QUERY 0x0E #define REQ_COND_LIST 0x0F -#define REQ_TSDOS_MYSTERY 0x23 // TS-DOS mystery - part of drive/emulator detection +#define REQ_TSDOS_MYSTERY 0x23 // TS-DOS mystery - part of drive/emulator detection TPDD2 responds, TPDD1 does not. #define REQ_CACHE_LOAD 0x30 // TPDD2 sector access #define REQ_CACHE_WRITE 0x31 // TPDD2 sector access #define REQ_CACHE_READ 0x32 // TPDD2 sector access @@ -916,6 +916,9 @@ void ret_cache_write() { // Another part of TS-DOS's drive/server capabilities detection scheme. // Used to be called "TS-DOS mystery command 2", but now it's the only one. // ("mystery command 1" was the TPDD2 sector cache command above) +// TS-DOS sends: 5A 5A 23 00 DC +// TPDD2 responds: 14 0F 41 10 01 00 50 05 00 02 00 28 00 E1 00 00 00 2A +// TPDD1 does not respond. void ret_tsdos_mystery() { dbg(3,"%s()\n",__func__); static unsigned char canned[] = {RET_TSDOS_MYSTERY, 0x0F, 0x41, 0x10, 0x01, 0x00, 0x50, 0x05, 0x00, 0x02, 0x00, 0x28, 0x00, 0xE1, 0x00, 0x00, 0x00}; @@ -928,7 +931,7 @@ void req_rename(unsigned char *b) { dbg(3,"%s(%-24.24s)\n",__func__,b+2); char *t = (char *)b + 2; memcpy(t,collapse_padded_name(t),TPDD_FILENAME_LEN); - if (rename (cur_file->local_fname,t)) + if (rename(cur_file->local_fname,t)) ret_std(ERR_SECTOR_NUM); else { dbg(1,"Renamed: %s -> %s\n",cur_file->local_fname,t); @@ -977,7 +980,7 @@ void dispatch_opr_cmd(unsigned char *b) { } } -int get_opr_cmd(void) +void get_opr_cmd(void) { dbg(3,"%s()\n",__func__); unsigned char b[TPDD_DATA_MAX+3] = {0x00}; @@ -987,7 +990,7 @@ int get_opr_cmd(void) while (read_client_tty(&b,1) == 1) { if (b[0]==0x5A) i++; else { i=0; b[0]=0x00; continue; } if (i<2) { b[0]=0x00; continue; } - if ((read_client_tty(&b,2) == 2) && (read_client_tty(&b[2],b[1]+1) == b[1]+1)) break; + if (read_client_tty(&b,2) == 2) if (read_client_tty(&b[2],b[1]+1) == b[1]+1) break; i=0; memset(b,0x00,TPDD_DATA_MAX+3); } @@ -996,15 +999,12 @@ int get_opr_cmd(void) i = checksum(b); if (b[b[1]+2]!=i) { dbg(0,"Failed checksum: received: %02X calculated: %02X\n",b[b[1]+2],i); - ret_std(ERR_PARAM); - return 7; + return; // real drive does not return anything } - ch[1]=ch[0]; - ch[0]=b[0]; + ch[1]=ch[0]; ch[0]=b[0]; dispatch_opr_cmd(b); - return 0; } //////////////////////////////////////////////////////////////////////// @@ -1076,9 +1076,9 @@ void req_fdc_write_sector_nv(char *b) { } /* ref/fdc.txt */ -int get_fdc_cmd(void) { +void get_fdc_cmd(void) { dbg(3,"%s()\n",__func__); - char b[TPDD_DATA_MAX] = { 0x00 }; + char b[TPDD_DATA_MAX] = {0x00}; unsigned i = 0; bool eol = false; @@ -1116,7 +1116,6 @@ int get_fdc_cmd(void) { case 0x00: if (!i) {dbg(1,"FDC: empty command\n"); break;} default: dbg(1,"FDC: unknown command\n"); } - return 0; } //////////////////////////////////////////////////////////////////////// @@ -1176,13 +1175,12 @@ int send_BASIC(char *f) if (debug) puts(""); fflush(stdout); while(read(fd,&b,1)==1) slowbyte(b); + close(fd); if (b!=0x0A && b!=BASIC_EOL && b!=BASIC_EOF) slowbyte(BASIC_EOL); if (b!=BASIC_EOF) slowbyte(BASIC_EOF); if (debug) puts(""); puts("DONE"); - close(fd); close(client_tty_fd); - return 0; } From 3fcd12f31738da93ea9188a4b55d8680dd2c27a6 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 14 Jun 2022 05:36:10 -0400 Subject: [PATCH 041/206] crunch the ts-dos loaders a little more --- clients/ts-dos/TS-DOS.100 | 2 +- clients/ts-dos/TS-DOS.200 | 2 +- clients/ts-dos/TS-DOS.NEC | 78 +-------------------------------------- 3 files changed, 3 insertions(+), 79 deletions(-) diff --git a/clients/ts-dos/TS-DOS.100 b/clients/ts-dos/TS-DOS.100 index 84c601b..42bfb1e 100644 --- a/clients/ts-dos/TS-DOS.100 +++ b/clients/ts-dos/TS-DOS.100 @@ -1 +1 @@ -0'TS-DOS Loader V1.01 9/21/2017 Kurt McCullum 0?"Installing TS-DOS":CLEAR256,57089:Y=57089 1TL$="":READTL$:IFTL$="END"THEN3 2FORX=1TOLEN(TL$)STEP2:TV=((ASC(MID$(TL$,X,1))-65)*16)+(ASC(MID$(TL$,X+1,1))-65):POKEY,TV:Y=Y+1:NEXT:?".";:GOTO1 3?"Done":OPEN"TMP.DO"FOR OUTPUT AS #1:IFPEEK(100)=245THEN5 4?#1,"0CALL57089:MENU":GOTO6 5?#1,"0EXEC57089:MENU" 6CLOSE#1:CLS:?"Please Type:":?"KILL "+CHR$(34)+"TMP.DO"+CHR$(34):?"SAVE "+CHR$(34)+"TS-DOS"+CHR$(34):?"MENU" 7LOAD"TMP.DO" 8DATAMDAMNPDCONPEKPDCOJPEMJMMNLOJCBAAAADJCCNPPEDOABMNJBPDKPDCOHPEDCONPEDCOMPEDCOEPEDMDCIAOJCBDFNPCCOBPEMNDBECMNEEECCBKHPBCCFCPGMNOMNPDKOIPEDCIAOJMNAKOACBNFPBOFPFPOACNCJANPDKNOPEKHMKJANPDKOJPEEPAMAGAAMFDK 9DATAIAOJDCOIPEMNFHOEMBAEANMKNFPBHIDCOIPEDCIAOJMFMNEFOECKPHPECLHOPODOMCGDNPMBPBCBGDNPPFMFOFPFMNDPECDKOMPELHMKLJNPPBKHMKMBOEDNMKBCOHDNMKDKOHDNDNMKPCOGDNDNMKJPOGDNOBMKNFNPMDDFNPPBKHMKOKOFDNMKLLOFDNMKILOEDNDN 10DATAMKODOHDNDNDNOBMKNFNPMDDFNPMNMHPDMNMLGOMNDBECMNEEECCBAAAACCFCPGCKNPPEPJMJCBABABCCDJPGCBOPOHMNKCBBKPDCNOPEDOABDCOIPECBACACCCDJPGMDPDOBDKIAOJDCOIPEMNEFOEDKOIPEDNDHDPAHFPBGAACBAAPHBJOLCBAHCDCCDJPGMNFNECON 11DATAMNGJECMNNEDJMNGOECMNJJOHMNECHCMKDFOANKMEOBPOANMKPIOAPOBHMKGCOBPOBEMKFAOBPOFNMKFAOBPODPMKCPOBPOACMKCPOBPOBOMKMEOAPOBPMKNCOAPOBNMKLDOAPOBMMKKAOAPOCAMKKAOAOGNPPOFEMKKGOBPOEBMKOLOAPOEHMKOLOAPOFFMKGGOBPOEE 12DATAMKHBODPOEMMKHKODPOFAMKHKODMDDFOADOABCBOIPEIGCDLONKOAOAMKOAOADOABMDOAOADKOIPEDNMCOAOADKOJPEKHMKDFOAMDOAOADKOIPENGAENKDFOAMKDFOAMDOAOADOAECBOIPEIGEPCDHOLJNKDFOAHJPFMNFHOEPBDCIAOJMDAKOADODOMNICOBDOACDCNO 13DATAPEMDAKOADKODPEPOACMCDFOACKPHPEABAHAAAJHOPODMMCDFOAMNEIPDCKPHPEMNDAOHMNCBOKCBACAAMNDCOKCKPHPEBBNEPEABAJAAMNNLGLKPMDECOBDKOMPEKHMKDFOADKOJPEPOBENKDFOADKOHPEDMDCOHPEDOABDCIAOJMNOMNPMDAKOADKOMPEKHMKDFOADK 14DATAOHPEKHMKDFOADNMDECOBKPMDECOBDOCAMNICOBKPDCNOPEMDAKOADKODPEDNMCDFOADKOEPEOOABDCOEPEMJDCNOPEDKOJPEKHMIKPDMDCOIPEMNGAOECKPHPECLDKNOPEOHDKOIPECBOJPELONKILOBKHMJMNGAOEMNGJECCKPHPECLDODOLOMCLIOBDOCAOHMNGOEC 15DATACBNOPEDGACMDKAOAPOAINCDFOAPOAFMKOLOBPOADMADKOMPEOOABDCOMPEKPDCOHPEDOABDCIAOJMNDBECMNOMNPMDAKOADKOMPEKHMIMDGCOBCBAAPHCCOOPEKPHHCDHHDKOMPEKHMKBFODKPDCONPEMNHBPAMCMHOCDKOHPEKHMKCJOCMNAENPMNHOPADKONPEDNMC 16DATABFOCKPDCONPEDCOJPEMNHOPADKOJPEPOBENMGCODDKODPEKHMKFHOCDNMKEFOCCBNEPEMDFNOCCBABCECCDJPGMNGJECDOCDOHDKOEPEMGDAOHMNGOECMDHAOCOFCBABCBCCDJPGMNGJECOBAOAGMNAFPCMNGOECCBBNOIABOOOCDKOMPEKHMCIDOCCBFPOIABNKOCMF 17DATAOFDKIAOJCBOJPELONKJFOCHOKHMCJFOCDMDCOIPECBAHALCCDJPGOBMNKCBBDKOMPEKHMKLNOCDKODPEKHMKLNOCCBGPOJDNMKLKOCCBFOOJMNKCBBMNPIOCCBAHBFCCDJPGMJKPMNGCODCBBNOIABNEOCMDIDOCCBMCOIMDKCBBCKLCPLOLCKHIPGHNJDGPHMJKGHAB 18DATAPCPPAJMDNEDJMNCFPDMNNEDJDODAOHMJDKOMPEKHMADKCMPLBBHIOJPONLMKALODBBHMOJCBAIBJCCDJPGOLMDKCBBCBLKPJKPDCOJPEDOBEDNPFHOOOIAOGJPMCEOODOFCDFOCDFGODOFMNHCOGOLMNMNPAOBODCDAOAGMNAFPCDOCOOHAOACMNAFPCDOCAOHCBOJPE 19DATADEOBBBALAABJPBDNMCBPODDKOJPEPOBENMGCODMDDEOCPFCBFDOJMNKCBBPBDMPOBEMCGCODMJMNDLOEMNFOBOMDAKOADCPCPEBBAHAACKPHPEBJHOPOEEMCAKOAMNNMODDKPCPEPOEMMMDBECMEDLOEMNLHODPFMNPOODPBMKJIODDKPCPEPOEMMCLBODDOAHOHMNJD 20DATAOHMNDBECMDNFPBDKOMPEKHMCENOKCKPAPEABIAAAHJAINCMNODAJHNGMEPCCPAPECKPDPEOFAJCCPDPEOBPOIAMJMNEIPDCKPHPEDKOMPEKHMCPIODMNFIPDNFMNHCOGCCPAPEOBCCPDPEMJMNDAOHMDCBOKOLLHMIEPDKPCPEPOEMMCBFOEMNCCOEBKOHBDANMCAKOE 21DATAMJMNCCOEBKMNFFELBDANMCBFOEMJMNNLBDMIMNMLBCPOADMKLBODPOBLMKLBODPOCAMCCCOEMDMLBCNLLLOGAGOOACMCJLPBMJMNGAOECCPHPEMNGJECCLAOAKMNAFPCMDGOECMNGOECMNGAOEMDEOOEDKOIPEDNGPCGAABBAKAAMNCFDHBBCIPOBJCDOFABAAPOAIBB 22DATACIAAOLMNHODHHNDMDCDJPGOLBAHNDCDKPGOBMJMNFIPDCCPDPECBNAOIMNLFOHMIMNCCPCCKPDPEABAJAAAJBBJJPMHOBCBDCDHOBCMNFOPDMCJOPBCKPDPECDCDCDBBJDPMABAGAAOLMDNLGLMNEIPDCKPHPEMNDAOHDKNOPEKHMCOJOECBAAOJMNLFOHMKOJOEMNCC 23DATAPCABACAACBACPFBBJJPMMNNLGLMNFOPDMKPMOECBDGOJMNBEPCMNIJOHMAMNMEOFCKDAPFHMGFGPCCDAPFDKACPFPOEEMCBFOFCKKOPLDOMAMDDGOFPOEDMCCIOFCKLAPLCCOIPECKLCPLDOKAMDDGOFCKDAPFCCOIPECKJKPJCCPDPEDOIADCPCPECCPFPECKDAPFCC 24DATAPAPEOFMBDKPCPEPOKAMKFDOFADPOIAMCFDOFADMFMNOECAMBOFMFCKPFPEMNGNGLNKKKPBCKPFPEMBDGAACDALHJLAMCGHOFCLNBDKPCPEPOMAMCIDOFDGBKCKPFPECLMDKLOFPOKAMCJEOFCKOIPECCLAPLCKPFPEMDKLOFNFCKKOPLCLCCJKPJCDOLCKOIPECDCDBJ 25DATACCKOPLNBCKPDPEOLMNDJCCMNLOOKMNEGCBCBACAAMDDCOKMNNHOFCKPHPEMNCCPCMNFOPDPOMAMKLPBPPOKAMKNJBPPOIAMKBHCAMJDKNOPEDNMIMNHMOHDKNOPEKHMIDOABDCNOPEMJMNEIPDMNFIPDNFOFCDCDCDBBPLPEABAGAAMNNLGLDOCOBCBDABACAAMNNLGL 26DATADKNOPEKHMCCHOGCBPHOIMNLFOHMKCHOGMNCCPCABAGAABBPLPECBJDPMMNNLGLOBNBNFMNHCOGHMLFMKKEPBOFDOABDCOJPEMNGDPCMNHPPDMKGNOGCBBBOJMNBEPCMNJDOHOGNPOHPOFCMCFLOGMNJMOMMNHPPDMDGNOGOBNBPOEBMADKACPFPOEEMADOACDCOJPENF 27DATAOFOBNBMDFPOKHOPOMAMKIFOGPOKAMKJEOGNFMNPEAFMBAICLMJOLBBAAAAHOCDBDPOBKMCIJOGBLOLMJOLCDCDEOCDEGCBAGAAAJMJDKODPEKHMIDNMKHCOBMNEIPDCBOHOIMNLFOHMIMNCCPCCBJDPMBBPLPEABAGAAMNNLGLCBDMDOCCACPFDOCODCABPFMNGDPCDK 28DATAODPEPOACMAMNHPPDMCOMOGDOABDCPLPECBABABMNDCOKCBACAAMDDCOKMNCBOKMDOGOGDKODPEPOACMICBKBOIMNBEPCMNIJOHMAMNGDPCMNADPDCBAGAAMNDCOKDOAHOHMJMNNHOFMNEIPDMNBOOHMDJMOMABAJAACKPHPEBBPLPEMNNLGLMNGDPCMDHPPDMNCCPCCB 29DATAJDPMMNGEPDMJMNEIPDMNBOOHCBPLPEBBJMPMABAJAAMNNLGLCKDAPFEMEFCBMAHMAICBNAOIMCHCOHABAJAAMNLIOHMIOFPFMNEIPDPBOBBBPLPEEPAGAAMDEHOLMNLFOHMIMNCCPCMDDOOLCBAJOJMNBEPCMNIJOHMCNFPBMJMNJDOHOHPOFJMIPOHJMJMNJJOHMDML 30DATABCKPDNDCFGPGMNNLBDMKJJOHKPDCFGPGCBDCPJLGMKLBBLMNLFBDMDJJOHABAGAAMNMKOHMIOFPFMNOIAPHHCDKHMCLOOHPBOBMJMFMNBEPCMNEEEGNKNFPBCDHIDNNBMILLNIOFBJDGAAOBHLLHMJCKNKPKHOPOEJMCNLOJMDLAOJBLHACAFEFDCNEEEPFDCACIDBDA 31DATADACAHGDECODBDACJCADCDADBDECAFEFDEJCPELFACACACACACACACACACABLHBCAAAEEEJFDELCAEGHCGFGFDKCACACACACACACACACAEGGJGMGFDKANAKEMGPGBGECAELGJGMGMCAEOGBGNGFCAFCGBGNCACAEGHCGNHECAEMGPGHCACACACACACACAENGFGOHFAACA 32DATAFCEBENCAEGHCGFGFDKCACACACACACACACACAEGGJGMGFDKANAKFDGBHGGFCAELGJGMGMCAEOGBGNGFCAEEGJHDGLCAEEEPFDCNCACACACACACACACACACACAENGFGOHFAAEJGOHDGFHCHECAEEGJHDGLCMCAFAHCGFHDHDCACCFJCCCAHEGPCAGCGFGHGJGOCAAAEOEP 33DATAFECAEGEPFCENEBFEFEEFEEAAEOGFHHCAEOGBGNGFDKAAFDHJHDHEGFGNCAGOGBGNGFDKAAEEGJHCGFGDHEGPHCHJCAGOGBGNGFDKAAFDGBHGGFCAGBHDDKAAEMGPGBGECAGBHDDKAAFDHFHCGFCADPCAAAEGGJGMGFCAGFHIGJHDHEHDCMCAEBCJHAHAGFGOGECAFCCJ 34DATAGFHAGMGBGDGFCAFBCJHFGJHEDKAAEGGJGMGFCAGFHIGJHDHEHDCMCAFCGFHAGMGBGDGFDPCACIFJCPEOCJDKAACNCOCNCACACACACACACAAABLFJDHDECACACACABLFJDHDOENGLEEHCAABLFJDHDOECGBGOGLAAEPEGEGAAEPEOCAAAABEJMDILOJMDNLOJMDLAOJOD 35DATAAGCGBBNFPNMNECCFCDCDOLDGICCDDGOJCDDGMDCDHDCDHCOBMDNFPNOBCDCDCDOFCBIBOJMJCBPDHPCCNKPKCCNMPKCBPDHPCCAIPLCCAKPLCCPAPKCCPEPKCBNLAICCCMPLCCDCPLCCDEPLCCDGPLCCDIPLMJMNLAOJCBIBOJCCNKPKCBKHOJCCNMPKCBMCONCCPEPK 36DATACBDCOOCCPAPKCBDFONCCDIPLCBIFONCCDGPLCBKGOMCCAIPLCBFKOOCCAKPLCBLPOMCCCMPLCBONOMCCDCPLCBALONCCDEPLMJCBABABDOADDCPLPEMDDCOKGHCOAEMDDOOKMNECPBMNBAPDMNNJPAMDAFPBCCBFPFCBBFPFMNEIPBMNNJPAMDAFPBCBADAAMNECPBMN 37DATANJPADKBGPFCBBHPFPOIAMJNFOFMNJIOKOBCCOIPEOBBBBHPFABIAAAMNNLGLOFCKOIPEABIAAAAINKILOKMKILOKCCOIPEDOIAMNCMOKMDGIOKOBDKOIPEMNCMOKCBACAAMDDCOKBBAAAFOLMNHODHDKDCPFJFNKKBPBMKKBPBDKOJPEDCPLPECBABABMDDCOKCKPFPE 38DATAMNGNGLNKKKPBCKPFPEOFMNCBOKMNENOKEPAGAANBMNNLGLNFDKBGPFCKPAPEEPAGAAAICCPAPENKOFOKHNLEMCMFOKNBMJDKPAPEPOABMIMNLIPCDOFHDCOGPEMNFAOMMNLIPCMNANOLCKPHPEMNPJPBCCPHPEMNHAOMMDOHOKDKBMPFMNCIOLPODFMKCAOLCBPBPEDE 39DATAHOPOBEMACBPAPEDECDDGABMJABAAAFPODFMIABEAAAMJCBAIAAMNECPBMNPDPCMDLIPCCBJDPMBBPLPEABAGAAMNNLGLDKODPEKHMCAEOMMNHPPDMCJOPBBBAAAFMNIKOMCBAAABCCPAPEMNDCOLMNBFOMCKLGPLOFAGCIBBJMPMMNOPOLNKJLPBHIKHMKJLPBOFBBPL 40DATAPEOLABAJAAMNNLGLOBOFBBDDPFABBPAAMNNLGLNBNFCBBPAABJOFCKLGPLABAAAFAJMBMFAIODMBMNNLGLCKLGPLAGCHBBDDPFMNOPOLOFCKLGPLABPPAEAJOFABBPAAAINBMBMFOFAIOFMBADOBMNOGGLCBDDPFNBABBPAAMNNLGLCBABBECCPBPEOBOBCCPHPECBAA 41DATAABCCPAPEMNOHOKMNONPCMJAOAJMNDBPDMINIHOLHMIMFABBPAAAJMBAFMIMDOPOLCBANBJMNECPBMNNJPADKBHPFKHMCJOPBMJCKPFPEMNCDOMDKPAPEDNMIMDBIOMOFDOFCDCOGPEMNFAOMMNANOLDOANMNHPPBMNFMHGOBMNDFPBHHCDALHJLAMCDIOMMJAGCPNGAK 42DATAAENCEGOMMGDKEPMJDKPAPEMNEEOMDKOGPEMNHPPBMNPLPCDKPBPEMNEEOMDOCMMNHPPBMNPLPCMNPDPCCBBHPFOFAOAIMNCPPBANMCHGOMOBHOPODAMIPOECMKINPBMDIHPBCKLGPLOFCCPFPECBMAPPDJMBAINPNKKKPBMJKPDCBEPFCBAFAAMDDCOKPODANIPODCNA 43DATANGDADCOEPECDBNHOPODKMACDBNODOBDOAJLHMJNFOFPFKPMNJBPDDIACONHOKHMKOCOMPODKMKOCOMMNBDBBHLPOACNCOIOMDCOEPEDIACNJMNDGPAMNMHPDPBOBNBMBMJPOAJMCNLAINFOFPFKPMNJBPDCBJDPMMNGEPDMKJLPBMNJMOMMNMHPDMDOIOMPOAJMCNLAI 44DATANFOFPFKPMNJBPDCBJMPMMNGEPDMKJLPBCBPLPEBBJMPMABAJAAMNNLGLMNDOOLMNMHPDMDOIOMPOAJMAMBOFABEDEPMNAHOOMKJLPBMNCBOKCKDAPFHNGMGHCCPAPEMNENOKMNDNCFOFMNKECFCKMOPKOFOFCKPEPFODMBAINKKKPBCKNAPKAJABICOJAINCNLAINBOB 45DATADKBGPFNGAGEPAGAAMNMMOKMNMHPDMDBKCFPOAJMAMNEGCDABEDEPMNAHOOMCJOPBDOABDCOJPECKNAPKABAGAAMFAJOFMNJIOKOBCCOIPEMBCBMOPKBBBHPFMNNLGLCKBHPFABHKAAMNGPOKMNMHPDMDABAFPOAJMAMBPBPFMFMIJPDCJCPMABECEBMNAHOOMKJLPBCK 46DATADAPFEMEFGAGJCCPAPEMNPPCACDCCPFPECKPAPEOFOFMBMNLFOKNBCKKOPLBJCCKOPLCKNIPKBJCCNIPKMNMHPDKPMDPFCDPFOFNFMFCKJJPMBBCACANPMKCBOONBNFNPMKCBOOMBNBOBPBMBMJOBCCJJPMNBOBPBKPMNJBPDCBJDPMMDGEPDPOAJMAABECEBMNAHOOMC 47DATAJOPBMNPAAFCKHMPGOLNPMKACAFNFMBAIDOABDCOJPEMNFPOKMNMHPDMDACAFPFKPDCOFPEPBCCNPPENFOFPFBBAEAABJHOPOAJMKHEOOPBOBNBMJPBPFPOAAMKJIOOPOACMKCCOPPOAEMKOEOPPOAGMKDPOPPOAIMCHAOODIAGCBBLBGNJMDHAOOKPMNJBPDCBJJPMHO 48DATAPOCAMKKKOOPOEEMCKNPBDGEECDDGEPCBJDPMMNGEPDEPMNIPOPDGAAOBOBNBNFOFFBHLOGAHCBONPDEPAGAAAJHODNMKAHOPDNMCBKOPDKCPPFKHMCNNOOCDCDHODCPLPECBABABMNDCOKCKNPPEBBAHAABJKPHHCDFEFNCDCDNJOBNBHLPOAIMCAAOPBOACHDODCBNO 49DATABEODMJHKLHMKNNOOOFMNJMOMCBJDPMMNGEPDOBMDNNOOHKLHMKJLPBMDNNOOPBOBNBOFHODGAAPOACMMAPPACBACAAMNDCOKMNMHPDOBODOBCBFJENOFMJMNIPOPHODGAAKHMCFPOPCKNPPEABAHAAAJHOCDOFKHMMJHOPNBONHOCDNJBLOLDFPOBKDHDPMCGLOPMNIP 50DATAOPHHDHPFDIBAONABJKBIAIMCIFOPMNIPOPPBHHEPJPMNAKDEDIBCOLPJMJPBOBOBNBODCBIKEOODMJCKKCPKBBJBPKBJMJCBADAAMNECPBMNNJPADKBFPFPOBAMCNCOPDKBGPFCKNPPEBBAIAABJOFFEFNCDCDNJBBBHPFOLEPAGAAMNNLGLDKBGPFPOIAMKMOOPOLDG 51DATABKDMOBCLHHMJCKNPPEBBAHAABJDGABCDFEFNCDCDNJDGBKMJCKNPPEBBAHAABJHOPOIAMMAPPAPBOBNBOBPBPFPOBKMKAKPACKNPPEBBAHAABJDECDOLONHHCDNJCBOKBEOFMJCKNPPEABAHAAAJHOOFCDCDCDBBBHPFEPAGAAPFMNNLGLPBKHMECMOKOBDGAACDFEFN 52DATACDCDNJMJPBMJCBAAPHCCOOPEMNHBPAMCIKPBKPDCONPEDCOHPEDMDCDKPGMNHOPADKOJPEPOBEMMNOPBCBOHPEDEMNHOPAMNCCECMNCFPDMNNEDJCBNEPDMNKCBBMDCCECKPDCOJPEMNGDPCCBEGABMDKLPADOBEDCOKPEDKODPEKHMCJDPACBPGACMNKLPAMCAFPBDK 53DATABHPFKHMIDKONPEKHMMLNPACBOJPEDEDKOKPELOMCIKPAMJCCBDPFCBAABKMNECPBMNNJPADKBFPFPOBBMJAOAJCBBHPFMNAFPCDOCAOHCKDAPFFMFFCKOOPEOLNJOLCDCDCCOOPEMJCBBFPFOFMNCPPBMNCPPBEPMNCPPBEBHJKHMKPEPAMNCPPBANMCONPAOBAEAEKP 54DATADAIGCDAFMCPJPACPLOMCIKPBMJDKBFPFPOBCMCIKPBDKBHPFKHMIPOBAMKJOPBPOFAMKINPBPOGAMKKBPBNKIKPBMKJDPBPOIANKJDPBMDJAPBMNDFPBHHCDMJMNICPBMNHOGNNKKNPBMCIKPBMJCCPJPECBPJPEOFDKOEPEKHMKFHPBOGABBPBPBPLGHHHOCDIGEHHO 55DATAPFCDKHMKGLPBEPHIIGCDANMCGEPBEHHICPFHABFKFKMNPLPCMBEIAGAAADADOBMNPJPBHKMNDCGONLLLOGCAMIDOABCBDOACCBDOADCBDOAECBDOAFCBOMPEDGAACBDOAGCBDOAHCBDOAICBDOAJCBDOAKCBDOALCBDOAMCBDOANCBALPEEPANMKMEPBHOCDPOAAMCLK 56DATAPBMDLGPBDKOFPEKHMKPAPBDOAHOHCDMNBEPCMNOHPBCKNPPEPJCKOBPEOFMJMNCCECMNOHPBMDCCECCBMEPEMNKCBBMDMLBCFOCKNPPEDGAAMDFNAEHOMNHPPBCDALHJLAMCPJPBMJHOPOCANCANPCDOCAOHCDANMCAFPCMJOFCBAIABCCDJPGMNFNECOBMDKCBBOFDO 57DATACACBJDPMAGAIMNEBPDOBBBJDPMAGAGHOPOEBNKLAPBHOPOCOMKELPCLHMIBCCDBDAFMCDJPCMDFDPCDOCABCBDAFMCENPCAGACCDHOLHMIBCBDAFMCFFPCDOAABCMJMNKBPDMNMCPCMNNJPAMNAFPBDKODPEKHMICBAIAAMNECPBMNNJPADKBGPFPOABMKJHPCDNEPDO 58DATAACDCODPEAGAACBBIPFBBNEPEMDNLGLCBCDAAMNECPBMNNJPACBPAPDMNKPPCCBPJPDMNKPPCCBACPEABAJAAMNPJPBMDNJPAMNGNGNMIMNDFPBMDLIPCMNICPBMNONPCMNLIPCMNDCOLMNPDPCMNGNGNDOAAMCNKPCDMDCODPEMNLIPCMNONPCMNLIPCCBAHAAMNECPB 59DATAMJABDBENMNPLPCDOANMNHPPBMDADPDHIMNHPPBHJMDHPPBCGBECOPPCNMCAHPDCFMCAFPDMJABFAPPMNADPDMNGNGNMAAFMCBDPDANMCBDPDMDIHPBDKDCPFGPCGAABBIAAAMDCFDHNFOFBKJGMCDOPDCDBDANMCDDPDOBNBMJHHCDAFMCEBPDMJDOCAAGBICBPLPEMN 60DATAEBPDDOEGDCBDPFMJCKPHPEMNCCPCMNEGCBMDKPCAOFMNEIPDOBBBPLPEABAGAAMNNLGLDOCOBCBDABACAAMNNLGLMNGDPCKPDCBEPFCBAABKMNECPBMNNJPADKCPPFKHMJDCOFPEBBOHPDCBFLPGABAFAAMNNLGLMJMNMLGOCBOBPDDGDJDHMNOGBHMNLIPCMNMCPCMN 61DATAADPDMNGNGNMCLIPCMNMLGOCBOBPDDFDHMDOGBHCBOHPDHONGDKNKOGBHCDMDOGBHDACAECHJHEGFHDCAGGHCGFGFAADJDIEODBEEAAENDHEJDBEFAAACADABFKFKDBAEABAAIEPPEGFKFKDBAEABAAJGAPCEFKFKDBAEABAAJEAPCGBCEEHCGJHGGFCAEOGPHECAFCGF 62DATAGBGEHJAABCEDGPGNGNHFGOGJGDGBHEGJGPGOCAEFHCHCGPHCAABCFHHCGJHEGFCAFAHCGPHEGFGDHEAABCEEHCGJHGGFCAFEHCGPHFGCGMGFAABCEEGJHDGLCAGOGPHECAGJGOCAGEHCGJHGGFAADEFAHCGJGOHEGFHCCAGOGPHECAHCGFGBGEHJAAAFEGGJGMGFCAEF 63DATAHIGJHDHEHDAADJEEGJHDGLCAEGHFGMGMAABKEGGJGMGFCAEFGNHAHEHJAADJEEGJHCGFGDHEGPHCHJCAEGHFGMGMAAAHFCGBGNCAEGHFGMGMAADGAADHECGBGECAEGGJGMGFCAEOGBGNGFAACAFAHCGFHDHDCAGBGOHJCAGLGFHJCOAAAAAAAAAAAAAAAAAAAAAAAALM 64DATANEDFNPAAAAABAAAAABABAAAAAAAAACPHAAAAAAAAAAAAAACJPOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 65DATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 66DATAEND \ No newline at end of file +0'TS-DOS Loader V1.01 9/21/2017 Kurt McCullum - 2022 b.kenyon.w@gmail.com 0CLEAR256,57089:S=57089:Y=S:C$="TS-DOS":D$="TMP.DO":?"Installing "+C$ 1TL$="":READTL$:IFTL$="END"THEN3 2FORX=1TOLEN(TL$)STEP2:TV=((ASC(MID$(TL$,X,1))-65)*16)+(ASC(MID$(TL$,X+1,1))-65):POKEY,TV:Y=Y+1:NEXT:?".";:GOTO1 3?"Done":OPEND$FOROUTPUTAS#1:?#1,"0 CALL";S;":MENU":CLOSE#1:CLS:?"Please Type:":?"KILL "+CHR$(34)+D$+CHR$(34):?"SAVE "+CHR$(34)+C$+CHR$(34):?"MENU":LOADD$ 4DATAMDAMNPDCONPEKPDCOJPEMJMMNLOJCBAAAADJCCNPPEDOABMNJBPDKPDCOHPEDCONPEDCOMPEDCOEPEDMDCIAOJCBDFNPCCOBPEMNDBECMNEEECCBKHPBCCFCPGMNOMNPDKOIPEDCIAOJMNAKOACBNFPBOFPFPOACNCJANPDKNOPEKHMKJANPDKOJPEEPAMAGAAMFDK 5DATAIAOJDCOIPEMNFHOEMBAEANMKNFPBHIDCOIPEDCIAOJMFMNEFOECKPHPECLHOPODOMCGDNPMBPBCBGDNPPFMFOFPFMNDPECDKOMPELHMKLJNPPBKHMKMBOEDNMKBCOHDNMKDKOHDNDNMKPCOGDNDNMKJPOGDNOBMKNFNPMDDFNPPBKHMKOKOFDNMKLLOFDNMKILOEDNDN 6DATAMKODOHDNDNDNOBMKNFNPMDDFNPMNMHPDMNMLGOMNDBECMNEEECCBAAAACCFCPGCKNPPEPJMJCBABABCCDJPGCBOPOHMNKCBBKPDCNOPEDOABDCOIPECBACACCCDJPGMDPDOBDKIAOJDCOIPEMNEFOEDKOIPEDNDHDPAHFPBGAACBAAPHBJOLCBAHCDCCDJPGMNFNECON 7DATAMNGJECMNNEDJMNGOECMNJJOHMNECHCMKDFOANKMEOBPOANMKPIOAPOBHMKGCOBPOBEMKFAOBPOFNMKFAOBPODPMKCPOBPOACMKCPOBPOBOMKMEOAPOBPMKNCOAPOBNMKLDOAPOBMMKKAOAPOCAMKKAOAOGNPPOFEMKKGOBPOEBMKOLOAPOEHMKOLOAPOFFMKGGOBPOEE 8DATAMKHBODPOEMMKHKODPOFAMKHKODMDDFOADOABCBOIPEIGCDLONKOAOAMKOAOADOABMDOAOADKOIPEDNMCOAOADKOJPEKHMKDFOAMDOAOADKOIPENGAENKDFOAMKDFOAMDOAOADOAECBOIPEIGEPCDHOLJNKDFOAHJPFMNFHOEPBDCIAOJMDAKOADODOMNICOBDOACDCNO 9DATAPEMDAKOADKODPEPOACMCDFOACKPHPEABAHAAAJHOPODMMCDFOAMNEIPDCKPHPEMNDAOHMNCBOKCBACAAMNDCOKCKPHPEBBNEPEABAJAAMNNLGLKPMDECOBDKOMPEKHMKDFOADKOJPEPOBENKDFOADKOHPEDMDCOHPEDOABDCIAOJMNOMNPMDAKOADKOMPEKHMKDFOADK 10DATAOHPEKHMKDFOADNMDECOBKPMDECOBDOCAMNICOBKPDCNOPEMDAKOADKODPEDNMCDFOADKOEPEOOABDCOEPEMJDCNOPEDKOJPEKHMIKPDMDCOIPEMNGAOECKPHPECLDKNOPEOHDKOIPECBOJPELONKILOBKHMJMNGAOEMNGJECCKPHPECLDODOLOMCLIOBDOCAOHMNGOEC 11DATACBNOPEDGACMDKAOAPOAINCDFOAPOAFMKOLOBPOADMADKOMPEOOABDCOMPEKPDCOHPEDOABDCIAOJMNDBECMNOMNPMDAKOADKOMPEKHMIMDGCOBCBAAPHCCOOPEKPHHCDHHDKOMPEKHMKBFODKPDCONPEMNHBPAMCMHOCDKOHPEKHMKCJOCMNAENPMNHOPADKONPEDNMC 12DATABFOCKPDCONPEDCOJPEMNHOPADKOJPEPOBENMGCODDKODPEKHMKFHOCDNMKEFOCCBNEPEMDFNOCCBABCECCDJPGMNGJECDOCDOHDKOEPEMGDAOHMNGOECMDHAOCOFCBABCBCCDJPGMNGJECOBAOAGMNAFPCMNGOECCBBNOIABOOOCDKOMPEKHMCIDOCCBFPOIABNKOCMF 13DATAOFDKIAOJCBOJPELONKJFOCHOKHMCJFOCDMDCOIPECBAHALCCDJPGOBMNKCBBDKOMPEKHMKLNOCDKODPEKHMKLNOCCBGPOJDNMKLKOCCBFOOJMNKCBBMNPIOCCBAHBFCCDJPGMJKPMNGCODCBBNOIABNEOCMDIDOCCBMCOIMDKCBBCKLCPLOLCKHIPGHNJDGPHMJKGHAB 14DATAPCPPAJMDNEDJMNCFPDMNNEDJDODAOHMJDKOMPEKHMADKCMPLBBHIOJPONLMKALODBBHMOJCBAIBJCCDJPGOLMDKCBBCBLKPJKPDCOJPEDOBEDNPFHOOOIAOGJPMCEOODOFCDFOCDFGODOFMNHCOGOLMNMNPAOBODCDAOAGMNAFPCDOCOOHAOACMNAFPCDOCAOHCBOJPE 15DATADEOBBBALAABJPBDNMCBPODDKOJPEPOBENMGCODMDDEOCPFCBFDOJMNKCBBPBDMPOBEMCGCODMJMNDLOEMNFOBOMDAKOADCPCPEBBAHAACKPHPEBJHOPOEEMCAKOAMNNMODDKPCPEPOEMMMDBECMEDLOEMNLHODPFMNPOODPBMKJIODDKPCPEPOEMMCLBODDOAHOHMNJD 16DATAOHMNDBECMDNFPBDKOMPEKHMCENOKCKPAPEABIAAAHJAINCMNODAJHNGMEPCCPAPECKPDPEOFAJCCPDPEOBPOIAMJMNEIPDCKPHPEDKOMPEKHMCPIODMNFIPDNFMNHCOGCCPAPEOBCCPDPEMJMNDAOHMDCBOKOLLHMIEPDKPCPEPOEMMCBFOEMNCCOEBKOHBDANMCAKOE 17DATAMJMNCCOEBKMNFFELBDANMCBFOEMJMNNLBDMIMNMLBCPOADMKLBODPOBLMKLBODPOCAMCCCOEMDMLBCNLLLOGAGOOACMCJLPBMJMNGAOECCPHPEMNGJECCLAOAKMNAFPCMDGOECMNGOECMNGAOEMDEOOEDKOIPEDNGPCGAABBAKAAMNCFDHBBCIPOBJCDOFABAAPOAIBB 18DATACIAAOLMNHODHHNDMDCDJPGOLBAHNDCDKPGOBMJMNFIPDCCPDPECBNAOIMNLFOHMIMNCCPCCKPDPEABAJAAAJBBJJPMHOBCBDCDHOBCMNFOPDMCJOPBCKPDPECDCDCDBBJDPMABAGAAOLMDNLGLMNEIPDCKPHPEMNDAOHDKNOPEKHMCOJOECBAAOJMNLFOHMKOJOEMNCC 19DATAPCABACAACBACPFBBJJPMMNNLGLMNFOPDMKPMOECBDGOJMNBEPCMNIJOHMAMNMEOFCKDAPFHMGFGPCCDAPFDKACPFPOEEMCBFOFCKKOPLDOMAMDDGOFPOEDMCCIOFCKLAPLCCOIPECKLCPLDOKAMDDGOFCKDAPFCCOIPECKJKPJCCPDPEDOIADCPCPECCPFPECKDAPFCC 20DATAPAPEOFMBDKPCPEPOKAMKFDOFADPOIAMCFDOFADMFMNOECAMBOFMFCKPFPEMNGNGLNKKKPBCKPFPEMBDGAACDALHJLAMCGHOFCLNBDKPCPEPOMAMCIDOFDGBKCKPFPECLMDKLOFPOKAMCJEOFCKOIPECCLAPLCKPFPEMDKLOFNFCKKOPLCLCCJKPJCDOLCKOIPECDCDBJ 21DATACCKOPLNBCKPDPEOLMNDJCCMNLOOKMNEGCBCBACAAMDDCOKMNNHOFCKPHPEMNCCPCMNFOPDPOMAMKLPBPPOKAMKNJBPPOIAMKBHCAMJDKNOPEDNMIMNHMOHDKNOPEKHMIDOABDCNOPEMJMNEIPDMNFIPDNFOFCDCDCDBBPLPEABAGAAMNNLGLDOCOBCBDABACAAMNNLGL 22DATADKNOPEKHMCCHOGCBPHOIMNLFOHMKCHOGMNCCPCABAGAABBPLPECBJDPMMNNLGLOBNBNFMNHCOGHMLFMKKEPBOFDOABDCOJPEMNGDPCMNHPPDMKGNOGCBBBOJMNBEPCMNJDOHOGNPOHPOFCMCFLOGMNJMOMMNHPPDMDGNOGOBNBPOEBMADKACPFPOEEMADOACDCOJPENF 23DATAOFOBNBMDFPOKHOPOMAMKIFOGPOKAMKJEOGNFMNPEAFMBAICLMJOLBBAAAAHOCDBDPOBKMCIJOGBLOLMJOLCDCDEOCDEGCBAGAAAJMJDKODPEKHMIDNMKHCOBMNEIPDCBOHOIMNLFOHMIMNCCPCCBJDPMBBPLPEABAGAAMNNLGLCBDMDOCCACPFDOCODCABPFMNGDPCDK 24DATAODPEPOACMAMNHPPDMCOMOGDOABDCPLPECBABABMNDCOKCBACAAMDDCOKMNCBOKMDOGOGDKODPEPOACMICBKBOIMNBEPCMNIJOHMAMNGDPCMNADPDCBAGAAMNDCOKDOAHOHMJMNNHOFMNEIPDMNBOOHMDJMOMABAJAACKPHPEBBPLPEMNNLGLMNGDPCMDHPPDMNCCPCCB 25DATAJDPMMNGEPDMJMNEIPDMNBOOHCBPLPEBBJMPMABAJAAMNNLGLCKDAPFEMEFCBMAHMAICBNAOIMCHCOHABAJAAMNLIOHMIOFPFMNEIPDPBOBBBPLPEEPAGAAMDEHOLMNLFOHMIMNCCPCMDDOOLCBAJOJMNBEPCMNIJOHMCNFPBMJMNJDOHOHPOFJMIPOHJMJMNJJOHMDML 26DATABCKPDNDCFGPGMNNLBDMKJJOHKPDCFGPGCBDCPJLGMKLBBLMNLFBDMDJJOHABAGAAMNMKOHMIOFPFMNOIAPHHCDKHMCLOOHPBOBMJMFMNBEPCMNEEEGNKNFPBCDHIDNNBMILLNIOFBJDGAAOBHLLHMJCKNKPKHOPOEJMCNLOJMDLAOJBLHACAFEFDCNEEEPFDCACIDBDA 27DATADACAHGDECODBDACJCADCDADBDECAFEFDEJCPELFACACACACACACACACACABLHBCAAAEEEJFDELCAEGHCGFGFDKCACACACACACACACACAEGGJGMGFDKANAKEMGPGBGECAELGJGMGMCAEOGBGNGFCAFCGBGNCACAEGHCGNHECAEMGPGHCACACACACACACAENGFGOHFAACA 28DATAFCEBENCAEGHCGFGFDKCACACACACACACACACAEGGJGMGFDKANAKFDGBHGGFCAELGJGMGMCAEOGBGNGFCAEEGJHDGLCAEEEPFDCNCACACACACACACACACACACAENGFGOHFAAEJGOHDGFHCHECAEEGJHDGLCMCAFAHCGFHDHDCACCFJCCCAHEGPCAGCGFGHGJGOCAAAEOEP 29DATAFECAEGEPFCENEBFEFEEFEEAAEOGFHHCAEOGBGNGFDKAAFDHJHDHEGFGNCAGOGBGNGFDKAAEEGJHCGFGDHEGPHCHJCAGOGBGNGFDKAAFDGBHGGFCAGBHDDKAAEMGPGBGECAGBHDDKAAFDHFHCGFCADPCAAAEGGJGMGFCAGFHIGJHDHEHDCMCAEBCJHAHAGFGOGECAFCCJ 30DATAGFHAGMGBGDGFCAFBCJHFGJHEDKAAEGGJGMGFCAGFHIGJHDHEHDCMCAFCGFHAGMGBGDGFDPCACIFJCPEOCJDKAACNCOCNCACACACACACACAAABLFJDHDECACACACABLFJDHDOENGLEEHCAABLFJDHDOECGBGOGLAAEPEGEGAAEPEOCAAAABEJMDILOJMDNLOJMDLAOJOD 31DATAAGCGBBNFPNMNECCFCDCDOLDGICCDDGOJCDDGMDCDHDCDHCOBMDNFPNOBCDCDCDOFCBIBOJMJCBPDHPCCNKPKCCNMPKCBPDHPCCAIPLCCAKPLCCPAPKCCPEPKCBNLAICCCMPLCCDCPLCCDEPLCCDGPLCCDIPLMJMNLAOJCBIBOJCCNKPKCBKHOJCCNMPKCBMCONCCPEPK 32DATACBDCOOCCPAPKCBDFONCCDIPLCBIFONCCDGPLCBKGOMCCAIPLCBFKOOCCAKPLCBLPOMCCCMPLCBONOMCCDCPLCBALONCCDEPLMJCBABABDOADDCPLPEMDDCOKGHCOAEMDDOOKMNECPBMNBAPDMNNJPAMDAFPBCCBFPFCBBFPFMNEIPBMNNJPAMDAFPBCBADAAMNECPBMN 33DATANJPADKBGPFCBBHPFPOIAMJNFOFMNJIOKOBCCOIPEOBBBBHPFABIAAAMNNLGLOFCKOIPEABIAAAAINKILOKMKILOKCCOIPEDOIAMNCMOKMDGIOKOBDKOIPEMNCMOKCBACAAMDDCOKBBAAAFOLMNHODHDKDCPFJFNKKBPBMKKBPBDKOJPEDCPLPECBABABMDDCOKCKPFPE 34DATAMNGNGLNKKKPBCKPFPEOFMNCBOKMNENOKEPAGAANBMNNLGLNFDKBGPFCKPAPEEPAGAAAICCPAPENKOFOKHNLEMCMFOKNBMJDKPAPEPOABMIMNLIPCDOFHDCOGPEMNFAOMMNLIPCMNANOLCKPHPEMNPJPBCCPHPEMNHAOMMDOHOKDKBMPFMNCIOLPODFMKCAOLCBPBPEDE 35DATAHOPOBEMACBPAPEDECDDGABMJABAAAFPODFMIABEAAAMJCBAIAAMNECPBMNPDPCMDLIPCCBJDPMBBPLPEABAGAAMNNLGLDKODPEKHMCAEOMMNHPPDMCJOPBBBAAAFMNIKOMCBAAABCCPAPEMNDCOLMNBFOMCKLGPLOFAGCIBBJMPMMNOPOLNKJLPBHIKHMKJLPBOFBBPL 36DATAPEOLABAJAAMNNLGLOBOFBBDDPFABBPAAMNNLGLNBNFCBBPAABJOFCKLGPLABAAAFAJMBMFAIODMBMNNLGLCKLGPLAGCHBBDDPFMNOPOLOFCKLGPLABPPAEAJOFABBPAAAINBMBMFOFAIOFMBADOBMNOGGLCBDDPFNBABBPAAMNNLGLCBABBECCPBPEOBOBCCPHPECBAA 37DATAABCCPAPEMNOHOKMNONPCMJAOAJMNDBPDMINIHOLHMIMFABBPAAAJMBAFMIMDOPOLCBANBJMNECPBMNNJPADKBHPFKHMCJOPBMJCKPFPEMNCDOMDKPAPEDNMIMDBIOMOFDOFCDCOGPEMNFAOMMNANOLDOANMNHPPBMNFMHGOBMNDFPBHHCDALHJLAMCDIOMMJAGCPNGAK 38DATAAENCEGOMMGDKEPMJDKPAPEMNEEOMDKOGPEMNHPPBMNPLPCDKPBPEMNEEOMDOCMMNHPPBMNPLPCMNPDPCCBBHPFOFAOAIMNCPPBANMCHGOMOBHOPODAMIPOECMKINPBMDIHPBCKLGPLOFCCPFPECBMAPPDJMBAINPNKKKPBMJKPDCBEPFCBAFAAMDDCOKPODANIPODCNA 39DATANGDADCOEPECDBNHOPODKMACDBNODOBDOAJLHMJNFOFPFKPMNJBPDDIACONHOKHMKOCOMPODKMKOCOMMNBDBBHLPOACNCOIOMDCOEPEDIACNJMNDGPAMNMHPDPBOBNBMBMJPOAJMCNLAINFOFPFKPMNJBPDCBJDPMMNGEPDMKJLPBMNJMOMMNMHPDMDOIOMPOAJMCNLAI 40DATANFOFPFKPMNJBPDCBJMPMMNGEPDMKJLPBCBPLPEBBJMPMABAJAAMNNLGLMNDOOLMNMHPDMDOIOMPOAJMAMBOFABEDEPMNAHOOMKJLPBMNCBOKCKDAPFHNGMGHCCPAPEMNENOKMNDNCFOFMNKECFCKMOPKOFOFCKPEPFODMBAINKKKPBCKNAPKAJABICOJAINCNLAINBOB 41DATADKBGPFNGAGEPAGAAMNMMOKMNMHPDMDBKCFPOAJMAMNEGCDABEDEPMNAHOOMCJOPBDOABDCOJPECKNAPKABAGAAMFAJOFMNJIOKOBCCOIPEMBCBMOPKBBBHPFMNNLGLCKBHPFABHKAAMNGPOKMNMHPDMDABAFPOAJMAMBPBPFMFMIJPDCJCPMABECEBMNAHOOMKJLPBCK 42DATADAPFEMEFGAGJCCPAPEMNPPCACDCCPFPECKPAPEOFOFMBMNLFOKNBCKKOPLBJCCKOPLCKNIPKBJCCNIPKMNMHPDKPMDPFCDPFOFNFMFCKJJPMBBCACANPMKCBOONBNFNPMKCBOOMBNBOBPBMBMJOBCCJJPMNBOBPBKPMNJBPDCBJDPMMDGEPDPOAJMAABECEBMNAHOOMC 43DATAJOPBMNPAAFCKHMPGOLNPMKACAFNFMBAIDOABDCOJPEMNFPOKMNMHPDMDACAFPFKPDCOFPEPBCCNPPENFOFPFBBAEAABJHOPOAJMKHEOOPBOBNBMJPBPFPOAAMKJIOOPOACMKCCOPPOAEMKOEOPPOAGMKDPOPPOAIMCHAOODIAGCBBLBGNJMDHAOOKPMNJBPDCBJJPMHO 44DATAPOCAMKKKOOPOEEMCKNPBDGEECDDGEPCBJDPMMNGEPDEPMNIPOPDGAAOBOBNBNFOFFBHLOGAHCBONPDEPAGAAAJHODNMKAHOPDNMCBKOPDKCPPFKHMCNNOOCDCDHODCPLPECBABABMNDCOKCKNPPEBBAHAABJKPHHCDFEFNCDCDNJOBNBHLPOAIMCAAOPBOACHDODCBNO 45DATABEODMJHKLHMKNNOOOFMNJMOMCBJDPMMNGEPDOBMDNNOOHKLHMKJLPBMDNNOOPBOBNBOFHODGAAPOACMMAPPACBACAAMNDCOKMNMHPDOBODOBCBFJENOFMJMNIPOPHODGAAKHMCFPOPCKNPPEABAHAAAJHOCDOFKHMMJHOPNBONHOCDNJBLOLDFPOBKDHDPMCGLOPMNIP 46DATAOPHHDHPFDIBAONABJKBIAIMCIFOPMNIPOPPBHHEPJPMNAKDEDIBCOLPJMJPBOBOBNBODCBIKEOODMJCKKCPKBBJBPKBJMJCBADAAMNECPBMNNJPADKBFPFPOBAMCNCOPDKBGPFCKNPPEBBAIAABJOFFEFNCDCDNJBBBHPFOLEPAGAAMNNLGLDKBGPFPOIAMKMOOPOLDG 47DATABKDMOBCLHHMJCKNPPEBBAHAABJDGABCDFEFNCDCDNJDGBKMJCKNPPEBBAHAABJHOPOIAMMAPPAPBOBNBOBPBPFPOBKMKAKPACKNPPEBBAHAABJDECDOLONHHCDNJCBOKBEOFMJCKNPPEABAHAAAJHOOFCDCDCDBBBHPFEPAGAAPFMNNLGLPBKHMECMOKOBDGAACDFEFN 48DATACDCDNJMJPBMJCBAAPHCCOOPEMNHBPAMCIKPBKPDCONPEDCOHPEDMDCDKPGMNHOPADKOJPEPOBEMMNOPBCBOHPEDEMNHOPAMNCCECMNCFPDMNNEDJCBNEPDMNKCBBMDCCECKPDCOJPEMNGDPCCBEGABMDKLPADOBEDCOKPEDKODPEKHMCJDPACBPGACMNKLPAMCAFPBDK 49DATABHPFKHMIDKONPEKHMMLNPACBOJPEDEDKOKPELOMCIKPAMJCCBDPFCBAABKMNECPBMNNJPADKBFPFPOBBMJAOAJCBBHPFMNAFPCDOCAOHCKDAPFFMFFCKOOPEOLNJOLCDCDCCOOPEMJCBBFPFOFMNCPPBMNCPPBEPMNCPPBEBHJKHMKPEPAMNCPPBANMCONPAOBAEAEKP 50DATADAIGCDAFMCPJPACPLOMCIKPBMJDKBFPFPOBCMCIKPBDKBHPFKHMIPOBAMKJOPBPOFAMKINPBPOGAMKKBPBNKIKPBMKJDPBPOIANKJDPBMDJAPBMNDFPBHHCDMJMNICPBMNHOGNNKKNPBMCIKPBMJCCPJPECBPJPEOFDKOEPEKHMKFHPBOGABBPBPBPLGHHHOCDIGEHHO 51DATAPFCDKHMKGLPBEPHIIGCDANMCGEPBEHHICPFHABFKFKMNPLPCMBEIAGAAADADOBMNPJPBHKMNDCGONLLLOGCAMIDOABCBDOACCBDOADCBDOAECBDOAFCBOMPEDGAACBDOAGCBDOAHCBDOAICBDOAJCBDOAKCBDOALCBDOAMCBDOANCBALPEEPANMKMEPBHOCDPOAAMCLK 52DATAPBMDLGPBDKOFPEKHMKPAPBDOAHOHCDMNBEPCMNOHPBCKNPPEPJCKOBPEOFMJMNCCECMNOHPBMDCCECCBMEPEMNKCBBMDMLBCFOCKNPPEDGAAMDFNAEHOMNHPPBCDALHJLAMCPJPBMJHOPOCANCANPCDOCAOHCDANMCAFPCMJOFCBAIABCCDJPGMNFNECOBMDKCBBOFDO 53DATACACBJDPMAGAIMNEBPDOBBBJDPMAGAGHOPOEBNKLAPBHOPOCOMKELPCLHMIBCCDBDAFMCDJPCMDFDPCDOCABCBDAFMCENPCAGACCDHOLHMIBCBDAFMCFFPCDOAABCMJMNKBPDMNMCPCMNNJPAMNAFPBDKODPEKHMICBAIAAMNECPBMNNJPADKBGPFPOABMKJHPCDNEPDO 54DATAACDCODPEAGAACBBIPFBBNEPEMDNLGLCBCDAAMNECPBMNNJPACBPAPDMNKPPCCBPJPDMNKPPCCBACPEABAJAAMNPJPBMDNJPAMNGNGNMIMNDFPBMDLIPCMNICPBMNONPCMNLIPCMNDCOLMNPDPCMNGNGNDOAAMCNKPCDMDCODPEMNLIPCMNONPCMNLIPCCBAHAAMNECPB 55DATAMJABDBENMNPLPCDOANMNHPPBMDADPDHIMNHPPBHJMDHPPBCGBECOPPCNMCAHPDCFMCAFPDMJABFAPPMNADPDMNGNGNMAAFMCBDPDANMCBDPDMDIHPBDKDCPFGPCGAABBIAAAMDCFDHNFOFBKJGMCDOPDCDBDANMCDDPDOBNBMJHHCDAFMCEBPDMJDOCAAGBICBPLPEMN 56DATAEBPDDOEGDCBDPFMJCKPHPEMNCCPCMNEGCBMDKPCAOFMNEIPDOBBBPLPEABAGAAMNNLGLDOCOBCBDABACAAMNNLGLMNGDPCKPDCBEPFCBAABKMNECPBMNNJPADKCPPFKHMJDCOFPEBBOHPDCBFLPGABAFAAMNNLGLMJMNMLGOCBOBPDDGDJDHMNOGBHMNLIPCMNMCPCMN 57DATAADPDMNGNGNMCLIPCMNMLGOCBOBPDDFDHMDOGBHCBOHPDHONGDKNKOGBHCDMDOGBHDACAECHJHEGFHDCAGGHCGFGFAADJDIEODBEEAAENDHEJDBEFAAACADABFKFKDBAEABAAIEPPEGFKFKDBAEABAAJGAPCEFKFKDBAEABAAJEAPCGBCEEHCGJHGGFCAEOGPHECAFCGF 58DATAGBGEHJAABCEDGPGNGNHFGOGJGDGBHEGJGPGOCAEFHCHCGPHCAABCFHHCGJHEGFCAFAHCGPHEGFGDHEAABCEEHCGJHGGFCAFEHCGPHFGCGMGFAABCEEGJHDGLCAGOGPHECAGJGOCAGEHCGJHGGFAADEFAHCGJGOHEGFHCCAGOGPHECAHCGFGBGEHJAAAFEGGJGMGFCAEF 59DATAHIGJHDHEHDAADJEEGJHDGLCAEGHFGMGMAABKEGGJGMGFCAEFGNHAHEHJAADJEEGJHCGFGDHEGPHCHJCAEGHFGMGMAAAHFCGBGNCAEGHFGMGMAADGAADHECGBGECAEGGJGMGFCAEOGBGNGFAACAFAHCGFHDHDCAGBGOHJCAGLGFHJCOAAAAAAAAAAAAAAAAAAAAAAAALM 60DATANEDFNPAAAAABAAAAABABAAAAAAAAACPHAAAAAAAAAAAAAACJPOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 61DATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 62DATAEND \ No newline at end of file diff --git a/clients/ts-dos/TS-DOS.200 b/clients/ts-dos/TS-DOS.200 index 746aa3a..e89de46 100644 --- a/clients/ts-dos/TS-DOS.200 +++ b/clients/ts-dos/TS-DOS.200 @@ -1 +1 @@ -0'TS-DOS Loader V1.01 9/21/2017 Kurt McCullum 0?"Installing TS-DOS":CLEAR256,55189:Y=55189 1TL$="":READTL$:IFTL$="END"THEN3 2FORX=1TOLEN(TL$)STEP2:TV=((ASC(MID$(TL$,X,1))-65)*16)+(ASC(MID$(TL$,X+1,1))-65):POKEY,TV:Y=Y+1:NEXT:?".";:GOTO1 3?"Done":OPEN"TMP.DO"FOR OUTPUT AS #1:IFPEEK(100)=245THEN5 4?#1,"0 CALL55189:MENU":GOTO6 5?#1,"0 EXEC55189:MENU" 6CLOSE#1:CLS:?"Please Type:":?"KILL "+CHR$(34)+"TMP.DO"+CHR$(34):?"SAVE "+CHR$(34)+"TS-DOS"+CHR$(34):?"MENU" 17LOAD"TMP.DO" 18DATAMDKANHDCHMONKPDCHIONMJMMGGOCCBAAAADJCCGOONDOABMNBMOMKPDCHGONDCHMONDCHLONDCHDONDMDCALOCCBMJNHCCHAONMNENEPMNGDEPCBDCOKCCDEOPMNIANIDKHHONDCALOCMNJONICBGAOKOFPFPOACNCCENIDKGNONKHMKCENIDKHIONEPAMAGAAMFDK 19DATAALOCDCHHONMNOLNMMBAEANMKGAOKHIDCHHONDCALOCMFMNNJNMCKIGONCLHOPODOMCPHNHMBPBCBPHNHPFMFOFPFMNFOEPDKHLONLHMKENNIPBKHMKEMNNDNMKJNNPDNMKMFNPDNDNMKHNNPDNDNMKCKNPDNOBMKGJNIMDMJNHPBKHMKHFNODNMKEGNODNMKBGNNDNDN 20DATAMKGOOADNDNDNOBMKGJNIMDMJNHMNFCOMMNLFIHMNENEPMNGDEPCBAAAACCDEOPCKGOONPJMJCBABABCCAGOPCBHKOAMNMMBBKPDCGNONDOABDCHHONCBACACCCAGOPMDIHNKDKALOCDCHHONMNNJNMDKHHONDNDHDPAHFPBGAACBHAOPBJOLCBAPCDCCAGOPMNHMEPON 21DATAMNIIEPMNALEHMNINEPMNCEOAMNADILMKMJNINKFINKPOANMKIMNJPOBHMKPGNJPOBEMKOENJPOFNMKOENJPODPMKMDNJPOACMKMDNJPOBOMKFINJPOBPMKGGNJPOBNMKEHNJPOBMMKDENJPOCAMKDENJOGNPPOFEMKDKNKPOEBMKHPNJPOEHMKHPNJPOFFMKPKNJPOEE 22DATAMKAFNMPOEMMKAONMPOFAMKAONMMDMJNIDOABCBHHONIGCDLONKHENJMKHENJDOABMDHENJDKHHONDNMCHENJDKHIONKHMKMJNIMDHENJDKHHONNGAENKMJNIMKMJNIMDHENJDOAECBHHONIGEPCDHOLJNKMJNIHJPFMNOLNMPBDCALOCMDJONIDODOMNBGNKDOACDCGN 23DATAONMDJONIDKHCONPOACMCMJNICKIGONABAHAAAJHOPODMMCMJNIMNNDOLCKIGONMNLLNPMNKMOCCBACAAMNLNOCCKIGONBBGDONABAJAAMNBGIDKPMDNGNJDKHLONKHMKMJNIDKHIONPOCONKMJNIDKHGONDMDCHGONDOABDCALOCMNIANIMDJONIDKHLONKHMKMJNIDK 24DATAHGONKHMKMJNIDNMDNGNJKPMDNGNJDOCAMNBGNKKPDCGNONMDJONIDKHCONDNMCMJNIDKHDONOOABDCHDONMJDCGNONDKHIONKHMIKPDMDCHHONMNPENMCKIGONCLDKGNONOHDKHHONCBHIONLONKBPNKKHMJMNPENMMNIIEPCKIGONCLDODOLOMCEMNKDOCAOHMNINEP 25DATACBGNONDGACMDDENJPOAINCMJNIPOAFMKHPNKPOADMADKHLONOOABDCHLONKPDCHGONDOABDCALOCMNENEPMNIANIMDJONIDKHLONKHMIMDPGNJCBHAOPCCHNONKPHHCDHHDKHLONKHMKKJNLKPDCHMONMNPMOIMCFLNLDKHGONKHMKLNNKMNJINHMNAJOJDKHMONDNMC 26DATAKJNKKPDCHMONDCHIONMNAJOJDKHIONPOCONMPGNLDKHCONKHMKOLNKDNMKNJNKCBGDONMDPBNKCBABCECCAGOPMNIIEPDOCDOHDKHDONMGDAOHMNINEPMDAENLOFCBABCBCCAGOPMNIIEPOBAOAGMNJAOKMNINEPCBKIOAABICNLDKHLONKHMCBHNLCBOKOAABGONLMF 27DATAOFDKALOCCBHIONLONKCJNLHOKHMCCJNLDMDCHHONCBAPALCCAGOPOBMNMMBBDKHLONKHMKFBNLDKHCONKHMKFBNLCBPKOBDNMKEONLCBOJOBMNMMBBMNIMNLCBAPBFCCAGOPMJKPMNPGNLCBKIOAABGINLMDBHNLCBENOBMDMMBBCKGFPGOLCKGDOPHNJDGPHMJKGHAB 28DATAPCPPAJMDALEHMNLAOLMNALEHDODAOHMJDKHLONKHMADKFNPFBBADOCPOAGMKJPNLBBAHOCCBBABJCCAGOPOLMDMMBBCBLFPCKPDCHIONDOCODNPFHOOOIAOGJPMCOCNLOFCDFOCDFGODOFMNPNNOOLMNFIOJOBODCDAOAGMNJAOKDOCOOHAOACMNJAOKDOCAOHCBHION 29DATADEOBBBALAABJPBDNMCLDNLDKHIONPOCONMPGNLMDMINKPFCBNOOBMNMMBBPBDMPOCOMCPGNLMJMNMPNMMNEGCJMDJONIDCIBONBBAHAACKIGONBJHOPOEEMCJONIMNHANMDKIBONPOEMMMENEPMEMPNMMNELNMPFMNJCNMPBMKCMNMDKIBONPOEMMCEFNMDOAHOHMNBO 30DATAOAMNENEPMDGAOKDKHLONKHMCNIOCCKHPONABIAAAHJAINCGBNMAJHNGMEPCCHPONCKICONOFAJCCICONOBPOIAMJMNNDOLCKIGONDKHLONKHMCIMNMMNODOLNFMNPNNOCCHPONOBCCICONMJMNLLNPMDKMOCOLLHMIEPDKIBONPOEMMCKJNMMNLGNMBKOHBDANMCJONM 31DATAMJMNLGNMBKMNBEFKBDANMCKJNMMJMNAEBEMIMNPHBCPOADMKEFNMPOBLMKEFNMPOCAMCLGNMMDPHBCNLLLOGAGOOACMCCGOKMJMNPENMCCIGONMNIIEPCLAOAKMNJAOKMDINEPMNINEPMNPENMMDOCNMDKHHONDNFPBGAACBAEAAMNNCEECDCDOFCBAFAAMNHJEENBFF 32DATAOLCECCAGOPMNIKFDCDMJMNODOLCCICONCBFLOBMNEAOAMIMNKNOKCKICONABAJAAAJBBEMPHHOBCBDCDHOBCMNOJOLMCCJOKCKICONCDCDCDBBEGPHABAGAAOLMDBGIDMNNDOLCKIGONMNLLNPDKGNONKHMCHENNCBILOBMNEAOAMKHENNMNKNOKABACAACBJBONBBEM 33DATAPHMNBGIDMNOJOLMKIHNNCBMBOBMNJPOKMNBEOAMAMNEPNOCKLPONHMGFGPCCLPONDKJBONPOEEMCKANNCKGBPGDOMAMDMBNNPOEDMCLDNNCKGDPGCCHHONCKGFPGDOKAMDMBNNCKLPONCCHHONCKJFPCCCICONDOIADCIBONCCIEONCKLPONCCHPONOFMBDKIBONPOKA 34DATAMKNONNADPOIAMCNONNADMFMNABCMMBOFMFCKIEONMNKIICNKDFOKCKIEONMBDGAACDALHJLAMCPCNNCLNBDKIBONPOMAMCAONODGBKCKIEONCLMDDGNOPOKAMCBPNOCKHHONCCGDPGCKIEONMDDGNONFCKGBPGCLCCJFPCCDOLCKHHONCDCDBJCCGBPGNBCKICONOLMN 35DATAKMCNMNEJODMNGCCMCBACAAMDLNOCMNGCNOCKIGONMNKNOKMNOJOLPOMAMKLFCKPOKAMKMOCKPOIAMKAMCLMJDKGNONDNMIMNAHOADKGNONKHMIDOABDCGNONMJMNNDOLMNODOLNFOFCDCDCDBBIKONABAGAAMNBGIDDOCOBCBDABACAAMNBGIDDKGNONKHMCLCNOCBIC 36DATAOBMNEAOAMKLCNOMNKNOKABAGAABBIKONCBEGPHMNBGIDOBNBNFMNPNNOHMLFMKCPOKOFDOABDCHIONMNOOOKMNAKOMMKPINOCBJMOBMNJPOKMNBOOAOGNPOHPOFCMCOGNOMNCHOFMNAKOMMDPINOOBNBPOEBMADKJBONPOEEMADOACDCHIONNFOFOBNBMDOKOCHOPOMA 37DATAMKBANPPOKAMKBPNPNFMNBPAGMBAICLMJOLBBAAAAHOCDBDPOBKMCBENPBLOLMJOLCDCDEOCDEGCBAGAAAJMJDKHCONKHMIDNMKAGNKMNNDOLCBHCOBMNEAOAMIMNKNOKCBEGPHBBIKONABAGAAMNBGIDCBDMDOCCJBONDOCODCJAONMNOOOKDKHCONPOACMAMNAKOMMC 38DATAHHNPDOABDCIKONCBABABMNLNOCCBACAAMDLNOCMNKMOCMDHBNPDKHCONPOACMICBCMOBMNJPOKMNBEOAMAMNOOOKMNIOOLCBAGAAMNLNOCDOAHOHMJMNGCNOMNNDOLMNKJNPMDCHOFABAJAACKIGONBBIKONMNBGIDMNOOOKMDAKOMMNKNOKCBEGPHMNOPOLMJMNNDOL 39DATAMNKJNPCBIKONBBEPPHABAJAAMNBGIDCKLPONEMEFCBMAHHAICBFLOBMCPNNPABAJAAMNEDOAMIOFPFMNNDOLPBOBBBIKONEPAGAAMDNCODMNEAOAMIMNKNOKMDMJODCBJEOBMNJPOKMNBEOAMCGAOKMJMNBOOAOHPOFJMIPOHJMJMNCEOAMDPHBCKPDNDCDHOPMNAEBE 40DATAMKCEOAKPDCDHOPCBCCPCLGMKJHCGMNNOBDMDCEOAABAGAAMNFFOAMIOFPFMNBDBAHHCDKHMCEJOAPBOBMJMFMNJPOKMNPGFENKGAOKCDHIDNNBMILLNIOFBJDGAAOBHLLHMJCKAHPFHOPOEJMCGGOCMDDLOCBLHACAFEFDCNEEEPFDCACIDCDADACAHGDECODBDACJCA 41DATADCDADBDECAFEFDEJCPELFACACACACACACACACACABLHBCAAAEEEJFDELCAEGHCGFGFDKCACACACACACACACACAEGGJGMGFDKANAKEMGPGBGECAELGJGMGMCAEOGBGNGFCAFCGBGNCACAEGHCGNHECAEMGPGHCACACACACACACAENGFGOHFAACAFCEBENCAEGHCGFGFDK 42DATACACACACACACACACACAEGGJGMGFDKANAKFDGBHGGFCAELGJGMGMCAEOGBGNGFCAEEGJHDGLCAEEEPFDCNCACACACACACACACACACACAENGFGOHFAAEJGOHDGFHCHECAEEGJHDGLCMCAFAHCGFHDHDCACCFJCCCAHEGPCAGCGFGHGJGOCAAAEOEPFECAEGEPFCENEBFEFE 43DATAEFEEAAEOGFHHCAEOGBGNGFDKAAFDHJHDHEGFGNCAGOGBGNGFDKAAEEGJHCGFGDHEGPHCHJCAGOGBGNGFDKAAFDGBHGGFCAGBHDDKAAEMGPGBGECAGBHDDKAAFDHFHCGFCADPCAAAEGGJGMGFCAGFHIGJHDHEHDCMCAEBCJHAHAGFGOGECAFCCJGFHAGMGBGDGFCAFBCJ 44DATAHFGJHEDKAAEGGJGMGFCAGFHIGJHDHEHDCMCAFCGFHAGMGBGDGFDPCACIFJCPEOCJDKAACNCOCNCACACACACACACAAABLFJDPDECACACACABLFJDPDOENGLEEHCAABLFJDPDOECGBGOGLAAEPEGEGAAEPEOCAAAABEJMDBGOCMDGGOCMDDLOCODAGCGBBNFPIMNKHDCCD 45DATACDOLDGANCDDGOCCDDGMDCDHDCDHCOBMDNFPIOBCDCDCDOFCBAMOCMJCBKIJMCCAHPFCCAJPFCBKIJMCCDHPFCCDJPFCCBPPFCCCDPFCBAGAJCCFNPFCCGDPFCCGFPFCCGHPFCCGJPFMJMNDLOCCBAMOCCCAHPFCBDCOCCCAJPFCBENOGCCCDPFCBLNOGCCBPPFCBMAOF 46DATACCGJPFCBBAOGCCGHPFCBDBOFCCDHPFCBOFOGCCDJPFCBEKOFCCFNPFCBHIOFCCGDPFCBJGOFCCGFPFMJCBABABDOADDCIKONMDLNOCGHCOAEMDMJOCMNMNOJMNJLOLMNGEOJMDJAOJCCKEONCBKEONMNNDOJMNGEOJMDJAOJCBADAAMNMNOJMNGEOJDKKFONCBKGONPO 47DATAIAMJNFOFMNCDODOBCCHHONOBBBKGONABIAAAMNBGIDOFCKHHONABIAAAAINKBGODMKBGODCCHHONDOIAMNLHOCMDPDOCOBDKHHONMNLHOCCBACAAMDLNOCBBAAAFOLMNNCEEDKMBONJFNKCMOKMKCMOKDKHIONDCIKONCBABABMDLNOCCKIEONMNKIICNKDFOKCKIEON 48DATAOFMNKMOCMNNIOCEPAGAANBMNBGIDNFDKKFONCKHPONEPAGAAAICCHPONNKHAODHNLEMCFAODNBMJDKHPONPOABMIMNEDOLDOFHDCHFONMNNLOEMNEDOLMNJIODCKIGONMNIEOKCCIGONMNPLOEMDHCODDKKLONMNLDODPODFMKKLODCBIAONDEHOPOBEMACBHPONDECD 49DATADGABMJABAAAFPODFMIABEAAAMJCBAIAAMNMNOJMNHOOLMDEDOLCBEGPHBBIKONABAGAAMNBGIDDKHCONKHMCIPOEMNAKOMMCCJOKBBAAAFMNBFOFCBAAABCCHPONMNLNODMNKAOECKGJPGOFAGCIBBEPPHMNHKOENKCGOKHIKHMKCGOKOFBBIKONOLABAJAAMNBGIDOB 50DATAOFBBMCONABBPAAMNBGIDNBNFCBBPAABJOFCKGJPGABAAAFAJMBMFAIODMBMNBGIDCKGJPGAGCHBBMCONMNHKOEOFCKGJPGABPPAEAJOFABBPAAAINBMBMFOFAIOFMBADOBMNCBIDCBMCONNBABBPAAMNBGIDCBABBECCIAONOBOBCCIGONCBAAABCCHPONMNHCODMNHI 51DATAOLMJAOAJMNLMOLMINIHOLHMIMFABBPAAAJMBAFMIMDHKOECBANBJMNMNOJMNGEOJDKKGONKHMCCJOKMJCKIEONMNKOOEDKHPONDNMIMDKDOEOFDOFCDCHFONMNNLOEMNJIODDOANMNAKOKMNKAIPOBMNMAOJHHCDALHJLAMCMDOEMJAGCPNGAKAENCNBOEMGDKEPMJDK 52DATAHPONMNMPOEDKHFONMNAKOKMNIGOLDKIAONMNMPOEDOCMMNAKOKMNIGOLMNHOOLCBKGONOFAOAIMNLKOJANMCABOFOBHOPODAMIPOECMKBIOKMDBCOKCKGJPGOFCCIEONCBMAPPDJMBAINPNKDFOKMJKPDCKDONCBAFAAMDLNOCPODANIPODCNANGDADCHDONCDBNHOPO 53DATADKMACDBNODOBDOAJLHMJNFOFPFKPMNBMOMDIACONHOKHMKGNOFPODKMKGNOFMNDNBBHLPOACNCHDOFDCHDONDIACNJMNMBOIMNFCOMPBOBNBMBMJPOAJMCAGAJNFOFPFKPMNBMOMCBEGPHMNOPOLMKCGOKMNCHOFMNFCOMMDHDOFPOAJMCAGAJNFOFPFKPMNBMOMCBEP 54DATAPHMNOPOLMKCGOKCBIKONBBEPPHABAJAAMNBGIDMNMJODMNFCOMMDHDOFPOAJMAMBOFABEDEPMNJCOGMKCGOKMNKMOCCKLPONHNGMGHCCHPONMNNIOCMNKCDCOFMNAJDDCKPLPEOFOFCKLEOOODMBAINKDFOKCKPNPEAJABANOCAINCAGAJNBOBDKKFONNGAGEPAGAAMN 55DATAFHODMNFCOMMDIKDCPOAJMAMNLDDAABEDEPMNJCOGMCCJOKDOABDCHIONCKPNPEABAGAAMFAJOFMNCDODOBCCHHONMBCBPLPEBBKGONMNBGIDCKKGONABHKAAMNPKOCMNFCOMMDCMAFPOAJMAMBPBPFMFMIJPDCEFPHABECEBMNJCOGMKCGOKCKLPONEMEFGAGJCCHPON 56DATAMNBMCMCDCCIEONCKHPONOFOFMBMNEAODNBCKGBPGBJCCGBPGCKAFPFBJCCAFPFMNFCOMKPMDGFDBPFOFNFMFCKEMPHBBCACANPMKKMOGNBNFNPMKKMOGMBNBOBPBMBMJOBCCEMPHNBOBPBKPMNBMOMCBEGPHMDOPOLPOAJMAABECEBMNJCOGMCCJOKMNBLAGCKGHOPOL 57DATANPMKCNAFNFMBAIDOABDCHIONMNOKOCMNFCOMMDCNAFPFKPDCHEONPBCCGOONNFOFPFBBAEAABJHOPOAJMKPPOGPBOBNBMJPBPFPOAAMKCDOHPOACMKKNOHPOAEMKGPOIPOAGMKMKOHPOAIMCPLOGDIAGCBEJBHNJMDPLOGKPMNBMOMCBEMPHHOPOCAMKDFOHPOEEMCDI 58DATAOKDGEECDDGEPCBEGPHMNOPOLEPMNBKOIDGAAOBOBNBNFOFFBHLOGAHCBHMOMEPAGAAAJHODNMKJCOHDNMCKFOHDKLOONKHMCGIOHCDCDHODCIKONCBABABMNLNOCCKGOONBBAHAABJKPHHCDFEFNCDCDNJOBNBHLPOAIMCILOHBOACHDODCBPFBFODMJHKLHMKGIOHOF 59DATAMNCHOFCBEGPHMNOPOLOBMDGIOHHKLHMKCGOKMDGIOHPBOBNBOFHODGAAPOACMMJKOICBACAAMNLNOCMNFCOMOBODOBCBBIFMOFMJMNBKOIHODGAAKHMCOKOHCKGOONABAHAAAJHOCDOFKHMMCCOINBONHOCDNJBLOLDFPOBKDHDPMCPGOHMNBKOIHHDHPFDIBAONABAJ 60DATABKAIMCBAOIMNBKOIPBHHEPJPMNFLEBDIBCOLPJMJPBOBOBNBODCBEGFNODMJCKNBPEBBMAPEBJMJCBADAAMNMNOJMNGEOJDKKEONPOBAMCFNOIDKKFONCKGOONBBAIAABJOFFEFNCDCDNJBBKGONOLEPAGAAMNBGIDDKKFONPOIAMKFJOIOLDGBKDMOBCLHHMJCKGOON 61DATABBAHAABJDGABCDFEFNCDCDNJDGBKMJCKGOONBBAHAABJHOPOIAMMJKOIPBOBNBOBPBPFPOBKMKJFOICKGOONBBAHAABJDECDOLONHHCDNJCBABBGOFMJCKGOONABAHAAAJHOOFCDCDCDBBKGONEPAGAAPFMNBGIDPBKHMELHOCOBDGAACDFEFNCDCDNJMJPBMJCBHAOP 62DATACCHNONMNPMOIMCBFOKKPDCHMONDCHGONDMDCAHOPMNAJOJDKHIONPOCOMMGJOKCBHGONDEMNAJOJMNDOEPMNLAOLMNALEHCBFPOMMNMMBBMDDOEPKPDCHIONMNOOOKCBEGABMDDGOJDOCODCHJONDKHCONKHMCBOOJCBPGACMNDGOJMCJAOJDKKGONKHMIDKHMONKHMM 63DATAEIOJCBHIONDEDKHJONLOMCBFOJMJCCKCONCBAABKMNMNOJMNGEOJDKKEONPOBBMJAOAJCBKGONMNJAOKDOCAOHCKLPONFMFFCKHNONOLNJOLCDCDCCHNONMJCBKEONOFMNLKOJMNLKOJEPMNLKOJEBHJKHMKHPOJMNLKOJANMCHIOJOBAEAEKPDAIGCDAFMCIEOJCPLO 64DATAMCBFOKMJDKKEONPOBCMCBFOKDKKGONKHMIPOBAMKCJOKPOFAMKBIOKPOGAMKCMOKNKBFOKMKBOOKPOIANKBOOKMDBLOKMNMAOJHHCDMJMNANOKMNBJIFNKDIOKMCBFOKMJCCIIONCBIIONOFDKHDONKHMKOCOJOGABBPBPBPLGHHHOCDIGEHHOPFCDKHMKPGOJEPHIIG 65DATACDANMCOPOJEHHICPFHABFKFKMNIGOLMBEIAGAAADADOBMNIEOKHKMNEDIGNLMPOGIAMADOABCBDOACCBDOADCBDOAECBDOAFCBHLONDGAACBDOAGCBDOAHCBDOAICBDOAJCBDOAKCBDOALCBDOAMCBDOANCBJKOMEPANMKEPOKHOCDPOAAMCEFOKMDEBOKDKHEONKHMK 66DATAHLOKDOAHOHCDMNJPOKMNHCOKCKGOONPJCKHAONOFMJMNDOEPMNHCOKMDDOEPCBFDONMNMMBBMDPHBCFOCKGOONDGAAMDIIAEHOMNAKOKCDALHJLAMCIEOKMJHOPOCANCJIOKDOCAOHCDANMCJAOKMJOFCBBAABCCAGOPMNHMEPOBMDMMBBOFDOCACBEGPHAGAIMNMMOL 67DATAOBBBEGPHAGAGHOPOEBNKDLOKHOPOCOMKNGOKLHMIBCCDBDAFMCMEOKMDNOOKDOCABCBDAFMCNIOKAGACCDHOLHMIBCBDAFMCOAOKDOAABCMJMNCMOMMNENOLMNGEOJMNJAOJDKHCONKHMICBAIAAMNMNOJMNGEOJDKKFONPOABMKCCOLDNEPDOACDCHCONAGAACBKHON 68DATABBGDONMDBGIDCBCDAAMNMNOJMNGEOJCBHPOMMNDKOLCBIIOMMNDKOLCBJBOMABAJAAMNIEOKMDGEOJMNAIIFMIMNMAOJMDEDOLMNANOKMNHIOLMNEDOLMNLNODMNHOOLMNAIIFDOAAMCGFOLDMDCHCONMNEDOLMNHIOLMNEDOLCBAHAAMNMNOJMJABDBENMNIGOLDOAN 69DATAMNAKOKMDIOOLHIMNAKOKHJMDAKOKCGBECOPPCNMCJCOLCFMCJAOLMJABFAPPMNIOOLMNAIIFMAAFMCJOOLANMCJOOLMDBCOKDKMBONGPCGAABBIAAAMDHJEENFOFBKJGMCMJOLCDBDANMCLOOLOBNBMJHHCDAFMCMMOLMJDOCAAGBICBIKONMNMMOLDOEGDCKCONMJCK 70DATAIGONMNKNOKMNGCCMMDMMCLOFMNNDOLOBBBIKONABAGAAMNBGIDDOCOBCBDABACAAMNBGIDMNOOOKKPDCKDONCBAABKMNMNOJMNGEOJDKLOONKHMJDCHEONBBHEOMCBDMOPABAHAAMNBGIDMJMNLFIHCBGMOMDGDJDHMNBNBJMNEDOLMNENOLMNIOOLMNAIIFMCEDOLMN 71DATALFIHCBGMOMDFDHMDBNBJCBHEOMHONGDKNKBNBJCDMDBNBJDACAECHJHEGFHDCAGGHCGFGFAADJDIEODBEEEOEOAAENDHEJDBEFEOEOAAACADABFKFKDBAEABAAIEPPEGFKFKDBAEABAAJGAPCEFKFKDBAEABAAJEAPCGBCEEHCGJHGGFCAEOGPHECAFCGFGBGEHJAABC 72DATAEDGPGNGNHFGOGJGDGBHEGJGPGOCAEFHCHCGPHCAABCFHHCGJHEGFCAFAHCGPHEGFGDHEAABCEEHCGJHGGFCAFEHCGPHFGCGMGFAABCEEGJHDGLCAGOGPHECAGJGOCAGEHCGJHGGFAADEFAHCGJGOHEGFHCCAGOGPHECAHCGFGBGEHJAAAFEGGJGMGFCAEFHIGJHDHEHD 73DATAAADJEEGJHDGLCAEGHFGMGMAABKEGGJGMGFCAEFGNHAHEHJAADJEEGJHCGFGDHEGPHCHJCAEGHFGMGMAAAHFCGBGNCAEGHFGMGMAADGAADHECGBGECAEGGJGMGFCAEOGBGNGFAACAFAHCGFHDHDCAGBGOHJCAGLGFHJCOAA 74DATAEND \ No newline at end of file +0'TS-DOS Loader V1.01 9/21/2017 Kurt McCullum - 2022 b.kenyon.w@gmail.com 0CLEAR256,55189:S=55189:Y=S:C$="TS-DOS":D$="TMP.DO":?"Installing "+C$ 1TL$="":READTL$:IFTL$="END"THEN3 2FORX=1TOLEN(TL$)STEP2:TV=((ASC(MID$(TL$,X,1))-65)*16)+(ASC(MID$(TL$,X+1,1))-65):POKEY,TV:Y=Y+1:NEXT:?".";:GOTO1 3?"Done":OPEND$FOR OUTPUTAS#1:?#1,"0 CALL";S;":MENU":CLOSE#1:CLS:?"Please Type:":?"KILL "+CHR$(34)+D$+CHR$(34):?"SAVE "+CHR$(34)+C$+CHR$(34):?"MENU":LOADD$ 4DATAMDKANHDCHMONKPDCHIONMJMMGGOCCBAAAADJCCGOONDOABMNBMOMKPDCHGONDCHMONDCHLONDCHDONDMDCALOCCBMJNHCCHAONMNENEPMNGDEPCBDCOKCCDEOPMNIANIDKHHONDCALOCMNJONICBGAOKOFPFPOACNCCENIDKGNONKHMKCENIDKHIONEPAMAGAAMFDK 5DATAALOCDCHHONMNOLNMMBAEANMKGAOKHIDCHHONDCALOCMFMNNJNMCKIGONCLHOPODOMCPHNHMBPBCBPHNHPFMFOFPFMNFOEPDKHLONLHMKENNIPBKHMKEMNNDNMKJNNPDNMKMFNPDNDNMKHNNPDNDNMKCKNPDNOBMKGJNIMDMJNHPBKHMKHFNODNMKEGNODNMKBGNNDNDN 6DATAMKGOOADNDNDNOBMKGJNIMDMJNHMNFCOMMNLFIHMNENEPMNGDEPCBAAAACCDEOPCKGOONPJMJCBABABCCAGOPCBHKOAMNMMBBKPDCGNONDOABDCHHONCBACACCCAGOPMDIHNKDKALOCDCHHONMNNJNMDKHHONDNDHDPAHFPBGAACBHAOPBJOLCBAPCDCCAGOPMNHMEPON 7DATAMNIIEPMNALEHMNINEPMNCEOAMNADILMKMJNINKFINKPOANMKIMNJPOBHMKPGNJPOBEMKOENJPOFNMKOENJPODPMKMDNJPOACMKMDNJPOBOMKFINJPOBPMKGGNJPOBNMKEHNJPOBMMKDENJPOCAMKDENJOGNPPOFEMKDKNKPOEBMKHPNJPOEHMKHPNJPOFFMKPKNJPOEE 8DATAMKAFNMPOEMMKAONMPOFAMKAONMMDMJNIDOABCBHHONIGCDLONKHENJMKHENJDOABMDHENJDKHHONDNMCHENJDKHIONKHMKMJNIMDHENJDKHHONNGAENKMJNIMKMJNIMDHENJDOAECBHHONIGEPCDHOLJNKMJNIHJPFMNOLNMPBDCALOCMDJONIDODOMNBGNKDOACDCGN 9DATAONMDJONIDKHCONPOACMCMJNICKIGONABAHAAAJHOPODMMCMJNIMNNDOLCKIGONMNLLNPMNKMOCCBACAAMNLNOCCKIGONBBGDONABAJAAMNBGIDKPMDNGNJDKHLONKHMKMJNIDKHIONPOCONKMJNIDKHGONDMDCHGONDOABDCALOCMNIANIMDJONIDKHLONKHMKMJNIDK 10DATAHGONKHMKMJNIDNMDNGNJKPMDNGNJDOCAMNBGNKKPDCGNONMDJONIDKHCONDNMCMJNIDKHDONOOABDCHDONMJDCGNONDKHIONKHMIKPDMDCHHONMNPENMCKIGONCLDKGNONOHDKHHONCBHIONLONKBPNKKHMJMNPENMMNIIEPCKIGONCLDODOLOMCEMNKDOCAOHMNINEP 11DATACBGNONDGACMDDENJPOAINCMJNIPOAFMKHPNKPOADMADKHLONOOABDCHLONKPDCHGONDOABDCALOCMNENEPMNIANIMDJONIDKHLONKHMIMDPGNJCBHAOPCCHNONKPHHCDHHDKHLONKHMKKJNLKPDCHMONMNPMOIMCFLNLDKHGONKHMKLNNKMNJINHMNAJOJDKHMONDNMC 12DATAKJNKKPDCHMONDCHIONMNAJOJDKHIONPOCONMPGNLDKHCONKHMKOLNKDNMKNJNKCBGDONMDPBNKCBABCECCAGOPMNIIEPDOCDOHDKHDONMGDAOHMNINEPMDAENLOFCBABCBCCAGOPMNIIEPOBAOAGMNJAOKMNINEPCBKIOAABICNLDKHLONKHMCBHNLCBOKOAABGONLMF 13DATAOFDKALOCCBHIONLONKCJNLHOKHMCCJNLDMDCHHONCBAPALCCAGOPOBMNMMBBDKHLONKHMKFBNLDKHCONKHMKFBNLCBPKOBDNMKEONLCBOJOBMNMMBBMNIMNLCBAPBFCCAGOPMJKPMNPGNLCBKIOAABGINLMDBHNLCBENOBMDMMBBCKGFPGOLCKGDOPHNJDGPHMJKGHAB 14DATAPCPPAJMDALEHMNLAOLMNALEHDODAOHMJDKHLONKHMADKFNPFBBADOCPOAGMKJPNLBBAHOCCBBABJCCAGOPOLMDMMBBCBLFPCKPDCHIONDOCODNPFHOOOIAOGJPMCOCNLOFCDFOCDFGODOFMNPNNOOLMNFIOJOBODCDAOAGMNJAOKDOCOOHAOACMNJAOKDOCAOHCBHION 15DATADEOBBBALAABJPBDNMCLDNLDKHIONPOCONMPGNLMDMINKPFCBNOOBMNMMBBPBDMPOCOMCPGNLMJMNMPNMMNEGCJMDJONIDCIBONBBAHAACKIGONBJHOPOEEMCJONIMNHANMDKIBONPOEMMMENEPMEMPNMMNELNMPFMNJCNMPBMKCMNMDKIBONPOEMMCEFNMDOAHOHMNBO 16DATAOAMNENEPMDGAOKDKHLONKHMCNIOCCKHPONABIAAAHJAINCGBNMAJHNGMEPCCHPONCKICONOFAJCCICONOBPOIAMJMNNDOLCKIGONDKHLONKHMCIMNMMNODOLNFMNPNNOCCHPONOBCCICONMJMNLLNPMDKMOCOLLHMIEPDKIBONPOEMMCKJNMMNLGNMBKOHBDANMCJONM 17DATAMJMNLGNMBKMNBEFKBDANMCKJNMMJMNAEBEMIMNPHBCPOADMKEFNMPOBLMKEFNMPOCAMCLGNMMDPHBCNLLLOGAGOOACMCCGOKMJMNPENMCCIGONMNIIEPCLAOAKMNJAOKMDINEPMNINEPMNPENMMDOCNMDKHHONDNFPBGAACBAEAAMNNCEECDCDOFCBAFAAMNHJEENBFF 18DATAOLCECCAGOPMNIKFDCDMJMNODOLCCICONCBFLOBMNEAOAMIMNKNOKCKICONABAJAAAJBBEMPHHOBCBDCDHOBCMNOJOLMCCJOKCKICONCDCDCDBBEGPHABAGAAOLMDBGIDMNNDOLCKIGONMNLLNPDKGNONKHMCHENNCBILOBMNEAOAMKHENNMNKNOKABACAACBJBONBBEM 19DATAPHMNBGIDMNOJOLMKIHNNCBMBOBMNJPOKMNBEOAMAMNEPNOCKLPONHMGFGPCCLPONDKJBONPOEEMCKANNCKGBPGDOMAMDMBNNPOEDMCLDNNCKGDPGCCHHONCKGFPGDOKAMDMBNNCKLPONCCHHONCKJFPCCCICONDOIADCIBONCCIEONCKLPONCCHPONOFMBDKIBONPOKA 20DATAMKNONNADPOIAMCNONNADMFMNABCMMBOFMFCKIEONMNKIICNKDFOKCKIEONMBDGAACDALHJLAMCPCNNCLNBDKIBONPOMAMCAONODGBKCKIEONCLMDDGNOPOKAMCBPNOCKHHONCCGDPGCKIEONMDDGNONFCKGBPGCLCCJFPCCDOLCKHHONCDCDBJCCGBPGNBCKICONOLMN 21DATAKMCNMNEJODMNGCCMCBACAAMDLNOCMNGCNOCKIGONMNKNOKMNOJOLPOMAMKLFCKPOKAMKMOCKPOIAMKAMCLMJDKGNONDNMIMNAHOADKGNONKHMIDOABDCGNONMJMNNDOLMNODOLNFOFCDCDCDBBIKONABAGAAMNBGIDDOCOBCBDABACAAMNBGIDDKGNONKHMCLCNOCBIC 22DATAOBMNEAOAMKLCNOMNKNOKABAGAABBIKONCBEGPHMNBGIDOBNBNFMNPNNOHMLFMKCPOKOFDOABDCHIONMNOOOKMNAKOMMKPINOCBJMOBMNJPOKMNBOOAOGNPOHPOFCMCOGNOMNCHOFMNAKOMMDPINOOBNBPOEBMADKJBONPOEEMADOACDCHIONNFOFOBNBMDOKOCHOPOMA 23DATAMKBANPPOKAMKBPNPNFMNBPAGMBAICLMJOLBBAAAAHOCDBDPOBKMCBENPBLOLMJOLCDCDEOCDEGCBAGAAAJMJDKHCONKHMIDNMKAGNKMNNDOLCBHCOBMNEAOAMIMNKNOKCBEGPHBBIKONABAGAAMNBGIDCBDMDOCCJBONDOCODCJAONMNOOOKDKHCONPOACMAMNAKOMMC 24DATAHHNPDOABDCIKONCBABABMNLNOCCBACAAMDLNOCMNKMOCMDHBNPDKHCONPOACMICBCMOBMNJPOKMNBEOAMAMNOOOKMNIOOLCBAGAAMNLNOCDOAHOHMJMNGCNOMNNDOLMNKJNPMDCHOFABAJAACKIGONBBIKONMNBGIDMNOOOKMDAKOMMNKNOKCBEGPHMNOPOLMJMNNDOL 25DATAMNKJNPCBIKONBBEPPHABAJAAMNBGIDCKLPONEMEFCBMAHHAICBFLOBMCPNNPABAJAAMNEDOAMIOFPFMNNDOLPBOBBBIKONEPAGAAMDNCODMNEAOAMIMNKNOKMDMJODCBJEOBMNJPOKMNBEOAMCGAOKMJMNBOOAOHPOFJMIPOHJMJMNCEOAMDPHBCKPDNDCDHOPMNAEBE 26DATAMKCEOAKPDCDHOPCBCCPCLGMKJHCGMNNOBDMDCEOAABAGAAMNFFOAMIOFPFMNBDBAHHCDKHMCEJOAPBOBMJMFMNJPOKMNPGFENKGAOKCDHIDNNBMILLNIOFBJDGAAOBHLLHMJCKAHPFHOPOEJMCGGOCMDDLOCBLHACAFEFDCNEEEPFDCACIDCDADACAHGDECODBDACJCA 27DATADCDADBDECAFEFDEJCPELFACACACACACACACACACABLHBCAAAEEEJFDELCAEGHCGFGFDKCACACACACACACACACAEGGJGMGFDKANAKEMGPGBGECAELGJGMGMCAEOGBGNGFCAFCGBGNCACAEGHCGNHECAEMGPGHCACACACACACACAENGFGOHFAACAFCEBENCAEGHCGFGFDK 28DATACACACACACACACACACAEGGJGMGFDKANAKFDGBHGGFCAELGJGMGMCAEOGBGNGFCAEEGJHDGLCAEEEPFDCNCACACACACACACACACACACAENGFGOHFAAEJGOHDGFHCHECAEEGJHDGLCMCAFAHCGFHDHDCACCFJCCCAHEGPCAGCGFGHGJGOCAAAEOEPFECAEGEPFCENEBFEFE 29DATAEFEEAAEOGFHHCAEOGBGNGFDKAAFDHJHDHEGFGNCAGOGBGNGFDKAAEEGJHCGFGDHEGPHCHJCAGOGBGNGFDKAAFDGBHGGFCAGBHDDKAAEMGPGBGECAGBHDDKAAFDHFHCGFCADPCAAAEGGJGMGFCAGFHIGJHDHEHDCMCAEBCJHAHAGFGOGECAFCCJGFHAGMGBGDGFCAFBCJ 30DATAHFGJHEDKAAEGGJGMGFCAGFHIGJHDHEHDCMCAFCGFHAGMGBGDGFDPCACIFJCPEOCJDKAACNCOCNCACACACACACACAAABLFJDPDECACACACABLFJDPDOENGLEEHCAABLFJDPDOECGBGOGLAAEPEGEGAAEPEOCAAAABEJMDBGOCMDGGOCMDDLOCODAGCGBBNFPIMNKHDCCD 31DATACDOLDGANCDDGOCCDDGMDCDHDCDHCOBMDNFPIOBCDCDCDOFCBAMOCMJCBKIJMCCAHPFCCAJPFCBKIJMCCDHPFCCDJPFCCBPPFCCCDPFCBAGAJCCFNPFCCGDPFCCGFPFCCGHPFCCGJPFMJMNDLOCCBAMOCCCAHPFCBDCOCCCAJPFCBENOGCCCDPFCBLNOGCCBPPFCBMAOF 32DATACCGJPFCBBAOGCCGHPFCBDBOFCCDHPFCBOFOGCCDJPFCBEKOFCCFNPFCBHIOFCCGDPFCBJGOFCCGFPFMJCBABABDOADDCIKONMDLNOCGHCOAEMDMJOCMNMNOJMNJLOLMNGEOJMDJAOJCCKEONCBKEONMNNDOJMNGEOJMDJAOJCBADAAMNMNOJMNGEOJDKKFONCBKGONPO 33DATAIAMJNFOFMNCDODOBCCHHONOBBBKGONABIAAAMNBGIDOFCKHHONABIAAAAINKBGODMKBGODCCHHONDOIAMNLHOCMDPDOCOBDKHHONMNLHOCCBACAAMDLNOCBBAAAFOLMNNCEEDKMBONJFNKCMOKMKCMOKDKHIONDCIKONCBABABMDLNOCCKIEONMNKIICNKDFOKCKIEON 34DATAOFMNKMOCMNNIOCEPAGAANBMNBGIDNFDKKFONCKHPONEPAGAAAICCHPONNKHAODHNLEMCFAODNBMJDKHPONPOABMIMNEDOLDOFHDCHFONMNNLOEMNEDOLMNJIODCKIGONMNIEOKCCIGONMNPLOEMDHCODDKKLONMNLDODPODFMKKLODCBIAONDEHOPOBEMACBHPONDECD 35DATADGABMJABAAAFPODFMIABEAAAMJCBAIAAMNMNOJMNHOOLMDEDOLCBEGPHBBIKONABAGAAMNBGIDDKHCONKHMCIPOEMNAKOMMCCJOKBBAAAFMNBFOFCBAAABCCHPONMNLNODMNKAOECKGJPGOFAGCIBBEPPHMNHKOENKCGOKHIKHMKCGOKOFBBIKONOLABAJAAMNBGIDOB 36DATAOFBBMCONABBPAAMNBGIDNBNFCBBPAABJOFCKGJPGABAAAFAJMBMFAIODMBMNBGIDCKGJPGAGCHBBMCONMNHKOEOFCKGJPGABPPAEAJOFABBPAAAINBMBMFOFAIOFMBADOBMNCBIDCBMCONNBABBPAAMNBGIDCBABBECCIAONOBOBCCIGONCBAAABCCHPONMNHCODMNHI 37DATAOLMJAOAJMNLMOLMINIHOLHMIMFABBPAAAJMBAFMIMDHKOECBANBJMNMNOJMNGEOJDKKGONKHMCCJOKMJCKIEONMNKOOEDKHPONDNMIMDKDOEOFDOFCDCHFONMNNLOEMNJIODDOANMNAKOKMNKAIPOBMNMAOJHHCDALHJLAMCMDOEMJAGCPNGAKAENCNBOEMGDKEPMJDK 38DATAHPONMNMPOEDKHFONMNAKOKMNIGOLDKIAONMNMPOEDOCMMNAKOKMNIGOLMNHOOLCBKGONOFAOAIMNLKOJANMCABOFOBHOPODAMIPOECMKBIOKMDBCOKCKGJPGOFCCIEONCBMAPPDJMBAINPNKDFOKMJKPDCKDONCBAFAAMDLNOCPODANIPODCNANGDADCHDONCDBNHOPO 39DATADKMACDBNODOBDOAJLHMJNFOFPFKPMNBMOMDIACONHOKHMKGNOFPODKMKGNOFMNDNBBHLPOACNCHDOFDCHDONDIACNJMNMBOIMNFCOMPBOBNBMBMJPOAJMCAGAJNFOFPFKPMNBMOMCBEGPHMNOPOLMKCGOKMNCHOFMNFCOMMDHDOFPOAJMCAGAJNFOFPFKPMNBMOMCBEP 40DATAPHMNOPOLMKCGOKCBIKONBBEPPHABAJAAMNBGIDMNMJODMNFCOMMDHDOFPOAJMAMBOFABEDEPMNJCOGMKCGOKMNKMOCCKLPONHNGMGHCCHPONMNNIOCMNKCDCOFMNAJDDCKPLPEOFOFCKLEOOODMBAINKDFOKCKPNPEAJABANOCAINCAGAJNBOBDKKFONNGAGEPAGAAMN 41DATAFHODMNFCOMMDIKDCPOAJMAMNLDDAABEDEPMNJCOGMCCJOKDOABDCHIONCKPNPEABAGAAMFAJOFMNCDODOBCCHHONMBCBPLPEBBKGONMNBGIDCKKGONABHKAAMNPKOCMNFCOMMDCMAFPOAJMAMBPBPFMFMIJPDCEFPHABECEBMNJCOGMKCGOKCKLPONEMEFGAGJCCHPON 42DATAMNBMCMCDCCIEONCKHPONOFOFMBMNEAODNBCKGBPGBJCCGBPGCKAFPFBJCCAFPFMNFCOMKPMDGFDBPFOFNFMFCKEMPHBBCACANPMKKMOGNBNFNPMKKMOGMBNBOBPBMBMJOBCCEMPHNBOBPBKPMNBMOMCBEGPHMDOPOLPOAJMAABECEBMNJCOGMCCJOKMNBLAGCKGHOPOL 43DATANPMKCNAFNFMBAIDOABDCHIONMNOKOCMNFCOMMDCNAFPFKPDCHEONPBCCGOONNFOFPFBBAEAABJHOPOAJMKPPOGPBOBNBMJPBPFPOAAMKCDOHPOACMKKNOHPOAEMKGPOIPOAGMKMKOHPOAIMCPLOGDIAGCBEJBHNJMDPLOGKPMNBMOMCBEMPHHOPOCAMKDFOHPOEEMCDI 44DATAOKDGEECDDGEPCBEGPHMNOPOLEPMNBKOIDGAAOBOBNBNFOFFBHLOGAHCBHMOMEPAGAAAJHODNMKJCOHDNMCKFOHDKLOONKHMCGIOHCDCDHODCIKONCBABABMNLNOCCKGOONBBAHAABJKPHHCDFEFNCDCDNJOBNBHLPOAIMCILOHBOACHDODCBPFBFODMJHKLHMKGIOHOF 45DATAMNCHOFCBEGPHMNOPOLOBMDGIOHHKLHMKCGOKMDGIOHPBOBNBOFHODGAAPOACMMJKOICBACAAMNLNOCMNFCOMOBODOBCBBIFMOFMJMNBKOIHODGAAKHMCOKOHCKGOONABAHAAAJHOCDOFKHMMCCOINBONHOCDNJBLOLDFPOBKDHDPMCPGOHMNBKOIHHDHPFDIBAONABAJ 46DATABKAIMCBAOIMNBKOIPBHHEPJPMNFLEBDIBCOLPJMJPBOBOBNBODCBEGFNODMJCKNBPEBBMAPEBJMJCBADAAMNMNOJMNGEOJDKKEONPOBAMCFNOIDKKFONCKGOONBBAIAABJOFFEFNCDCDNJBBKGONOLEPAGAAMNBGIDDKKFONPOIAMKFJOIOLDGBKDMOBCLHHMJCKGOON 47DATABBAHAABJDGABCDFEFNCDCDNJDGBKMJCKGOONBBAHAABJHOPOIAMMJKOIPBOBNBOBPBPFPOBKMKJFOICKGOONBBAHAABJDECDOLONHHCDNJCBABBGOFMJCKGOONABAHAAAJHOOFCDCDCDBBKGONEPAGAAPFMNBGIDPBKHMELHOCOBDGAACDFEFNCDCDNJMJPBMJCBHAOP 48DATACCHNONMNPMOIMCBFOKKPDCHMONDCHGONDMDCAHOPMNAJOJDKHIONPOCOMMGJOKCBHGONDEMNAJOJMNDOEPMNLAOLMNALEHCBFPOMMNMMBBMDDOEPKPDCHIONMNOOOKCBEGABMDDGOJDOCODCHJONDKHCONKHMCBOOJCBPGACMNDGOJMCJAOJDKKGONKHMIDKHMONKHMM 49DATAEIOJCBHIONDEDKHJONLOMCBFOJMJCCKCONCBAABKMNMNOJMNGEOJDKKEONPOBBMJAOAJCBKGONMNJAOKDOCAOHCKLPONFMFFCKHNONOLNJOLCDCDCCHNONMJCBKEONOFMNLKOJMNLKOJEPMNLKOJEBHJKHMKHPOJMNLKOJANMCHIOJOBAEAEKPDAIGCDAFMCIEOJCPLO 50DATAMCBFOKMJDKKEONPOBCMCBFOKDKKGONKHMIPOBAMKCJOKPOFAMKBIOKPOGAMKCMOKNKBFOKMKBOOKPOIANKBOOKMDBLOKMNMAOJHHCDMJMNANOKMNBJIFNKDIOKMCBFOKMJCCIIONCBIIONOFDKHDONKHMKOCOJOGABBPBPBPLGHHHOCDIGEHHOPFCDKHMKPGOJEPHIIG 51DATACDANMCOPOJEHHICPFHABFKFKMNIGOLMBEIAGAAADADOBMNIEOKHKMNEDIGNLMPOGIAMADOABCBDOACCBDOADCBDOAECBDOAFCBHLONDGAACBDOAGCBDOAHCBDOAICBDOAJCBDOAKCBDOALCBDOAMCBDOANCBJKOMEPANMKEPOKHOCDPOAAMCEFOKMDEBOKDKHEONKHMK 52DATAHLOKDOAHOHCDMNJPOKMNHCOKCKGOONPJCKHAONOFMJMNDOEPMNHCOKMDDOEPCBFDONMNMMBBMDPHBCFOCKGOONDGAAMDIIAEHOMNAKOKCDALHJLAMCIEOKMJHOPOCANCJIOKDOCAOHCDANMCJAOKMJOFCBBAABCCAGOPMNHMEPOBMDMMBBOFDOCACBEGPHAGAIMNMMOL 53DATAOBBBEGPHAGAGHOPOEBNKDLOKHOPOCOMKNGOKLHMIBCCDBDAFMCMEOKMDNOOKDOCABCBDAFMCNIOKAGACCDHOLHMIBCBDAFMCOAOKDOAABCMJMNCMOMMNENOLMNGEOJMNJAOJDKHCONKHMICBAIAAMNMNOJMNGEOJDKKFONPOABMKCCOLDNEPDOACDCHCONAGAACBKHON 54DATABBGDONMDBGIDCBCDAAMNMNOJMNGEOJCBHPOMMNDKOLCBIIOMMNDKOLCBJBOMABAJAAMNIEOKMDGEOJMNAIIFMIMNMAOJMDEDOLMNANOKMNHIOLMNEDOLMNLNODMNHOOLMNAIIFDOAAMCGFOLDMDCHCONMNEDOLMNHIOLMNEDOLCBAHAAMNMNOJMJABDBENMNIGOLDOAN 55DATAMNAKOKMDIOOLHIMNAKOKHJMDAKOKCGBECOPPCNMCJCOLCFMCJAOLMJABFAPPMNIOOLMNAIIFMAAFMCJOOLANMCJOOLMDBCOKDKMBONGPCGAABBIAAAMDHJEENFOFBKJGMCMJOLCDBDANMCLOOLOBNBMJHHCDAFMCMMOLMJDOCAAGBICBIKONMNMMOLDOEGDCKCONMJCK 56DATAIGONMNKNOKMNGCCMMDMMCLOFMNNDOLOBBBIKONABAGAAMNBGIDDOCOBCBDABACAAMNBGIDMNOOOKKPDCKDONCBAABKMNMNOJMNGEOJDKLOONKHMJDCHEONBBHEOMCBDMOPABAHAAMNBGIDMJMNLFIHCBGMOMDGDJDHMNBNBJMNEDOLMNENOLMNIOOLMNAIIFMCEDOLMN 57DATALFIHCBGMOMDFDHMDBNBJCBHEOMHONGDKNKBNBJCDMDBNBJDACAECHJHEGFHDCAGGHCGFGFAADJDIEODBEEEOEOAAENDHEJDBEFEOEOAAACADABFKFKDBAEABAAIEPPEGFKFKDBAEABAAJGAPCEFKFKDBAEABAAJEAPCGBCEEHCGJHGGFCAEOGPHECAFCGFGBGEHJAABC 58DATAEDGPGNGNHFGOGJGDGBHEGJGPGOCAEFHCHCGPHCAABCFHHCGJHEGFCAFAHCGPHEGFGDHEAABCEEHCGJHGGFCAFEHCGPHFGCGMGFAABCEEGJHDGLCAGOGPHECAGJGOCAGEHCGJHGGFAADEFAHCGJGOHEGFHCCAGOGPHECAHCGFGBGEHJAAAFEGGJGMGFCAEFHIGJHDHEHD 59DATAAADJEEGJHDGLCAEGHFGMGMAABKEGGJGMGFCAEFGNHAHEHJAADJEEGJHCGFGDHEGPHCHJCAEGHFGMGMAAAHFCGBGNCAEGHFGMGMAADGAADHECGBGECAEGGJGMGFCAEOGBGNGFAACAFAHCGFHDHDCAGBGOHJCAGLGFHJCOAA 60DATAEND \ No newline at end of file diff --git a/clients/ts-dos/TS-DOS.NEC b/clients/ts-dos/TS-DOS.NEC index 586efe4..3fd559f 100644 --- a/clients/ts-dos/TS-DOS.NEC +++ b/clients/ts-dos/TS-DOS.NEC @@ -1,77 +1 @@ -1'-=CO Loader=- -2'-=V1.01 9/21/2017 Kurt McCullum=- -3 ?"Installing TS-DOS" -4 CLEAR256,56489:Y=56489 -5 TL$="":READTL$:IFTL$="END"THEN10 -6 FORX=1TOLEN(TL$)STEP2 -7 TV=((ASC(MID$(TL$,X,1))-65)*16)+(ASC(MID$(TL$,X+1,1))-65) -8 POKEY,TV:Y=Y+1:NEXT -9 ?".";:GOTO5 -10 ?"Done" -11 OPEN"TMP.DO"FOR OUTPUT AS #1 -12 IFPEEK(100)=245THEN14 -13 ?#1,"0 CALL56489:MENU":GOTO15 -14 ?#1,"0 EXEC56489:MENU" -15 CLOSE#1:CLS:?"Type SAVE "+ CHR$(34) + "TS-DOS" + CHR$(34) -16 ?"Then type MENU" -17 LOAD"TMP.DO" -100 DATA MDLENMDCLEPCKPDCLAPCMJMMLAOHCBAAAADJCCKGPCDOABMNFGPBKPDCKOPCDCLEPCDCLDPCDCKLPCDMDCHJOHCBNNNMCCKIPCMNGAECMNHDECCBGJOPCCPOPDMNJINNDKKPPCDCHJOHMNLGNNCBJHOPOFPFPOACNCDINNDKKFPCKHMKDINNDKLAPCEPAMAGAAMFDK -110 DATA HJOHDCKPPCMNFMOCMBAEANMKJHOPHIDCKPPCDCHJOHMFMNEKOCCKLOPCCLHOPODOMCALNNMBPBCBALNNPFMFOFPFMNGOECDKLDPCLHMKGDNNPBKHMKMGOCDNMKBHOFDNMKDPOFDNDNMKPHOEDNDNMKKEOEDNDNDNOBMKIBNNMDNNNMPBKHMKOPODDNMKMAODDNMKJAOC -120 DATA DNDNMKNMOFDNDNDNDNDNOBMKIBNNMDNNNMMNIMPBMNKIGPMNGAECMNHDECCBAAAACCPOPDCKKGPCPJMJCBABABCCOFPDCBOIOFMNGCBEKPDCKFPCDOABDCKPPCCBACACCCOFPDMDJPNPDKHJOHDCKPPCMNEKOCDKKPPCDNDHDPAHFPBGAACBKBPFBJOLCBAHCDCCOFPD -130 DATA MNIMECONMNKCECMNJIDIMNKHECMNJOOFMNHJHCMKOBNNNKHANPPOANMKKENOPOBHMKAONPPOBEMKPMNOPOFNMKPMNOPODPMKNLNOPOACMKNLNOPOBOMKHANOPOBPMKHONOPOBNMKFPNOPOBMMKEMNOPOCAMKEMNOOGNPPOFEMKFCNPPOEBMKJHNOPOEHMKJHNOPOFFMK -140 DATA BCNPPOEEMKFAOBPOEMMKHJOBPOFAMKHJOBMDOBNNDOABCBKPPCIGCDLONKIMNOMKIMNODOABMDIMNODKKPPCDNMCIMNODKLAPCKHMKOBNNMDIMNODKKPPCNGAENKOBNNMKOBNNMDIMNODOAECBKPPCIGEPCDHOLJNKOBNNHJPFMNFMOCPBDCHJOHMDLGNNDODOMNCONP -150 DATA DOACDCKFPCMDLGNNDKKKPCPOACMCOBNNCKLOPCABAHAAAJHOPODMMCOBNNMNANPBCKLOPCMNDFOFMNPAOHCBACAAMNABOICKLOPCBBJLPCABAJAAMNHIGMKPMDOONODKLDPCKHMKOBNNDKLAPCPOBFNKOBNNDKKOPCDMDCKOPCDOABDCHJOHMNJINNMDLGNNDKLDPCKH -160 DATA MKOBNNDKKOPCKHMKOBNNDNMDOONOKPMDOONODOCAMNCONPKPDCKFPCMDLGNNDKKKPCDNMCOBNNDKKLPCOOABDCKLPCMJDCKFPCDKLAPCKHMIKPDMDCKPPCMNGFOCCKLOPCCLDKKFPCOHDKKPPCCBLAPCLONKDHNPKHMJMNGFOCMNKCECCKLOPCCLDODOLOMCGENPDOCA -170 DATA OHMNKHECCBKFPCDGACMDEMNOPOAKNCOBNNPOAFMKJHNPPOADMADKLDPCOOABDCLDPCKPDCKOPCDOABDCHJOHMNGAECMNJINNMDLGNNDKLDPCKHMIMDAONPCBKBPFCCLFPCKPHHCDHHDKLDPCKHMKPEOAKPDCLEPCMNDDOOMCIBOADKKOPCKHMKNFNPMNKMNMMNEAOODK -180 DATA LEPCDNMCMBNPKPDCLEPCDCLAPCMNEAOODKLAPCPOBFNMEBOBDKKKPCKHMKADOADNMKPBNPCBJLPCMDAJOACBABCECCOFPDMNKCECDOCDOHDKKLPCMGDAOHMNKHECMDBMOAOFCBABCBCCOFPDMNKCECOBAOAGMNMHOPMNKHECCBBGOGABKIOADKLDPCKHMCCPOACBGAOG -190 DATA ABJEOAMFOFDKHJOHCBLAPCLONKEBOAHOKHMCEBOADMDCKPPCOBBBKFPGNFAOKAKPBCBDANMCEMOANBAGAKOLAOAFBKHHBDCDANMCFIOAMFABALAAAJMBAFMCFGOACBAHAMCCOFPDOLMNGCBEMNLCOAMNOEECCBAHBGCCOFPDMJKPMNEBOBCBBGOGABIOOAMDCPOACBML -200 DATA OGMDGCBECKOFPKOLCKFJPEHNJDGPHMJKGHABPCPPAJMDJIDIMNOKPAMNJIDIDODAOHMJDKLDPCKHMCNDOACBOJPGDKEEPKBBHBOHPOIHMKMKOABBHFOHBKHHCDBDKHMCMKOAMJDKKKPCKHMICBAFPHBBGMOHDNMKMKOACBOFPGKPAGBAMNAGPBCBAFPHBBGHOHMDMKOA -210 DATA CBJBPIKPDCLAPCDOBFDNPFHOOOIAOGJPMCCNOBOFCDFOCDFGODOFMNHHOEOLMNIPOOOBODCDAOAGMNMHOPDOCOOHAOACMNMHOPDOCAOHCBLAPCDEOBBBALAABJPBDNMCPOOADKLAPCPOBFNMEBOBMDOANPPFCBFMOHMNGCBEPBDMPOBFMCEBOBMJMNDKOCMNFJOBMDLG -220 DATA NNOFMNDKOCMNEEENCBAAPNBOAIBGCIHOMNALENCDBFMCGHOBMNEEENBNMCGFOBOBMJDCLJPCBBAHAACKLOPCBJHOPOEEMCLGNNMNNLOBDKLJPCPOEMMMGAECMEDKOCMNLGOBPFMNPNOBPBMKJHOBDKLJPCPOEMMCLAOBDOAHOHMNJIOFMNGAECMDJHOPDKLDPCKHMCBM -230 DATA OICKLHPCABIAAAHJAINCMMOBAJHNGMEPCCLHPCCKLKPCOFAJCCLKPCOBPOIAMJMNANPBCKLOPCDKLDPCKHMCPHOBMNBNPBNFMNHHOECCLHPCOBCCLKPCMJMNDFOFMDPAOHOLLHMIEPDKLJPCPOEMMCBEOCMNCBOCBKOHBDANMCAJOCMJMNCBOCBKMNALENBDANMCBEOC -240 DATA MJMNDNBIMIMNENBHPOADMKLAOBPOBLMKLAOBPOCAMCCBOCMDENBHNLLLOGAGOOACMCFNOPCBGPOPCCPOPDMJMNGFOCCCLOPCMNKCECCLAOAKMNMHOPMDKHECMNKHECMNGFOCMDFDOCDKKPPCDNGPCGAABBAKAAMNCDDEBBCIPNBJCDOFABAAPNAIBBCIAAOLMNHKDEHN -250 DATA DMDCOFPDOLBAHNDCOGPDOBMJMNBNPBCCLKPCCBNJOGMNLKOFMIMNOHOPCKLKPCABAJAAAJBBHOPLHOBCBDCDHOBCMNCDPBMCGAOPCKLKPCCDCDCDBBHIPLABAGAAOLMDHIGMMNANPBCKLOPCMNDFOFDKKFPCKHMCOOOCCBAJOHMNLKOFMKOOOCMNOHOPABACAACBMJPC -260 DATA BBHOPLMNHIGMMNCDPBMKABODCBDPOHMNNGOPMNIOOFMAMNMJODCKPHPCHMGFGPCCPHPCDKMJPCPOEEMCBKODCKOBPKDOMAMDDLODPOEDMCCNODCKODPKCCKPPCCKOFPKDOKAMDDLODCKPHPCCCKPPCCKHBPICCLKPCDOIADCLJPCCCLMPCCKPHPCCCLHPCOFMBDKLJPC -270 DATA POKAMKFIODADPOIAMCFIODADMFMNNDCCMBOFMFCKLMPCMNAKGMNKGMOPCKLMPCMBDGAACDALHJLAMCGMODCLNBDKLJPCPOMAMCIIODDGBKCKLMPCCLMDLAODPOKAMCJJODCKKPPCCCODPKCKLMPCMDLAODNFCKOBPKCLCCHBPICDOLCKKPPCCDCDBJCCOBPKNBCKLKPC -280 DATA OLMNDFCEMNINOIMNDKCDCBACAAMDABOIMNNMODCKLOPCMNOHOPMNCDPBPOMAMKKICBPOKAMKMCCBPOIAMKAACCMJDKKFPCDNMIMNIBOFDKKFPCKHMIDOABDCKFPCMJMNANPBMNBNPBNFOFCDCDCDBBMCPCABAGAAMNHIGMDOCOBCBDABACAAMNHIGMDKKFPCKHMCCMOE -290 DATA CBAAOHMNLKOFMKCMOEMNOHOPABAGAABBMCPCCBHIPLMNHIGMOBNBNFMNHHOEHMLFMKGGOPOFDOABDCLAPCMNCIPAMNEEPBMKHCOECBBKOHMNNGOPMNJIOFOGNPOHPOFCMCGAOEMNGLOKMNEEPBMDHCOEOBNBPOEBMADKMJPCPOEEMADOACDCLAPCNFOFOBNBMDCOOIHO -300 DATA POMAMKIKOEPOKAMKJJOENFMNBIAHMBAICLMJOLBBAAAAHOCDBDPOBKMCIOOEBLOLMJOLCDCDEOCDEGCBAGAAAJMJDKKKPCKHMIDNMKBONPMNANPBCBPAOGMNLKOFMIMNOHOPCBHIPLBBMCPCABAGAAMNHIGMCBDMDOCCMJPCDOCODCMIPCMNCIPADKKKPCPOACMAMNEE -310 DATA PBMCPBOEDOABDCMCPCCBABABMNABOICBACAAMDABOIMNPAOHMDOLOEDKKKPCPOACMICBKKOGMNNGOPMNIOOFMAMNCIPAMNMIPACBAGAAMNABOIDOAHOHMJMNNMODMNANPBMNCDOFMDGLOKABAJAACKLOPCBBMCPCMNHIGMMNCIPAMDEEPBMNOHOPCBHIPLMNCJPBMJMN -320 DATA ANPBMNCDOFCBMCPCBBIBPLABAJAAMNHIGMCKPHPCEMEFCBMAHLAICBNJOGMCHHOFABAJAAMNLMOFMIOFPFMNANPBPBOBBBMCPCEPAGAAMDBGOJMNLKOFMIMNOHOPMDANOJCBBCOHMNNGOPMNIOOFMCJHOPMJMNJIOFOHPOFJMIPOHJMJMNJOOFMDENBHKPDNDCADPEMN -330 DATA DNBIMKJOOFKPDCADPECBEBPILGMKPEBOMNBHBIMDJOOFAOAGMFMNNGOPMNKKEHNKJHOPCDMBAGAAOFHOKHMKNGOFCDAEANMCMLOFDGAAHIOBKHMJCKMMPJHOPOEJMCLAOHMDIIOHBLHACAFEFDCNEEEPFDCACIEOEFEDCAHGDECODBDACJCADCDADBDECAFEFDEJCPEL -340 DATA ENCACACACACACACACACABLHBCAAAEMGPGBGECAELGJGMGMCAEOGBGNGFCAFCGBGNCACAEGHCGNHECAEMGPGHCACACACACACACACACACACACACACACACACAENGFGOHFCAEEEJFDELCAEGHCGFGFDKCACACACACACACACAEGGJGMGFDKAAFDGBHGGFCAELGJGMGMCAEOGB -350 DATA GNGFCAEEGJHDGLCAEEEPFDCNCACACACACACACACACACACACACACACACACACACACACAENGFGOHFCACAFCEBENCAEGHCGFGFDKCACACACACACACACAEGGJGMGFDKAAEJGOHDGFHCHECAEEGJHDGLCMCAFAHCGFHDHDCACCFJCCCAHEGPCAGCGFGHGJGOCAAAEOEPFECAEG -360 DATA EPFCENEBFEFEEFEEAAEOGFHHCAEOGBGNGFDKAAFDHJHDHEGFGNCAGOGBGNGFDKAAEEGJHCGFGDHEGPHCHJCAGOGBGNGFDKAAFDGBHGGFCAGBHDDKAAEMGPGBGECAGBHDDKAAFDHFHCGFCADPCAAAEGGJGMGFCAGFHIGJHDHEHDCMCAEBCJHAHAGFGOGECAFCCJGFHAGM -370 DATA GBGDGFCAFBCJHFGJHEDKAAEGGJGMGFCAGFHIGJHDHEHDCMCAFCGFHAGMGBGDGFDPCACIFJCPEOCJDKAACNCOCNCACACACACACACAAAENGLEEHCAAECGBGOGLAAEPEGEGAAEPEOCAAAAAEJMDIEOHMDLAOHMDIIOHBBHLOHMJCBNLHPCCMMPJCBNLHPCCPMPJCCPOPJCC -380 DATA OEPJCCOIPJCBIHALCCEEPKCCEKPKCCEMPKCCEOPKCCFAPKMJMNIIOHCBHKOHCCMMPJCBIOOLCCOIPJCBPOOLCCOEPJCBAEOLCCFAPKCBFBOLCCEOPKCBHFOKCCPMPJCBCGOMCCPOPJCBIOOKCCEEPKCBLMOKCCEKPKCBNKOKCCEMPKMJCBABABDOADDCMCPCMDABOIGH -390 DATA COAEMDANOIMNAEOPMNNFPAMNJLOOMDMHOOCCNMPCCBNMPCMNAKOPMNJLOOMDMHOOCBADAAMNAEOPMNJLOODKNNPCCBNOPCPOIAMJNFOFMNGHOIOBCCKPPCOBBBNOPCABIAAAMNHIGMOFCKKPPCABIAAAAINKFKOIMKFKOICCKPPCDOIAMNPLOHMDDHOIOBDKKPPCMNPL -400 DATA OHCBACAAMDABOIBBAAAFOLMNHKDEDKPJPCJFNKGDOPMKGDOPDKLAPCDCMCPCCBABABMDABOICKLMPCMNAKGMNKGMOPCKLMPCOFMNPAOHMNBMOIEPAGAANBMNHIGMNFDKNNPCCKLHPCEPAGAAAICCLHPCNKLEOIHNLEMCJEOINBMJDKLHPCPOABMIMNHNPADOFHDCKNPC -410 DATA MNBPOKMNHNPAMNNMOICKLOPCMNLLOPCCLOPCMNDPOKMDLGOIDKODPCMNPHOIPODFMKOPOICBLIPCDEHOPOBEMACBLHPCDECDDGABMJABAAAFPODFMIABEAAAMJCBAIAAMNAEOPMNLIPAMDHNPACBHIPLBBMCPCABAGAAMNHIGMDKKKPCKHMCNDOJMNEEPBMCGAOPBBAA -420 DATA AFMNFJOKCBAAABCCLHPCMNABOJMNOEOJCKOJPKOFAGCIBBIBPLMNLOOJNKFNOPHIKHMKFNOPOFBBMCPCOLABAJAAMNHIGMOBOFBBPKPCABBPAAMNHIGMNBNFCBBPAABJOFCKOJPKABAAAFAJMBMFAIODMBMNHIGMCKOJPKAGCHBBPKPCMNLOOJOFCKOJPKABPPAEAJOF -430 DATA ABBPAAAINBMBMFOFAIOFMBADOBMNIDGMCBPKPCNBABBPAAMNHIGMCBABBECCLIPCOBOBCCLOPCCBAAABCCLHPCMNLGOIMNLCPAMJAOAJMNPGPAMINIHOLHMIMFABBPAAAJMBAFMIMDLOOJCBANBJMNAEOPMNJLOODKNOPCKHMCGAOPMJCKLMPCMNPCOJDKLHPCDNMIMD -440 DATA OHOJOFDOFCDCKNPCMNBPOKMNNMOIDOANMNEBOPMNOFHGOBMNPHOOHHCDALHJLAMCAHOKMJAGCPNGAKAENCBFOKMGDKEPMJDKLHPCMNBDOKDKKNPCMNEBOPMNMAPADKLIPCMNBDOKDOCMMNEBOPMNMAPAMNLIPACBNOPCOFAOAIMNPBOOANMCEFOKOBHOPODAMIPOECMK -450 DATA EPOPMDEJOPCKOJPKOFCCLMPCCBMAPPDJMBAINPNKGMOPMJKPDCNLPCCBAFAAMDABOIPODANIPODCNANGDADCKLPCCDBNHOPODKMACDBNODOBDOAJLHMJNFOFPFKPMNFGPBDIACONHOKHMKLBOKPODKMKLBOKMNMIBDHLPOACNCLHOKDCKLPCDIACNJMNACOOMNIMPBPB -460 DATA OBNBMBMJPOAJMCIHALNFOFPFKPMNFGPBCBHIPLMNCJPBMKFNOPMNGLOKMNIMPBMDLHOKPOAJMCIHALNFOFPFKPMNFGPBCBIBPLMNCJPBMKFNOPCBMCPCBBIBPLABAJAAMNHIGMMNANOJMNIMPBMDLHOKPOAJMAMBOFABEDEPMNNDOLMKFNOPMNPAOHCKPHPCHNGMGHCC -470 DATA LHPCMNBMOIMNPICIOFCKMAPJOFOFCKIEPDODMBAINKGMOPCKMCPJAJABHLOHAINCIHALNBOBDKNNPCNGAGEPAGAAMNJLOIMNIMPBMDNNCIPOAJMAMNNCCGABEDEPMNNDOLMCGAOPDOABDCLAPCCKMCPJABAGAAMFAJOFMNGHOIOBCCKPPCMBCBMAPJBBNOPCMNHIGMCK -480 DATA NOPCABHKAAMNDOOIMNIMPBMDCMAGPOAJMAMBPBPFMFMIJPDCHCPLABECEBMNNDOLMKFNOPCKPHPCEMEFGAGJCCLHPCMNOOCCCDCCLMPCCKLHPCOFOFMBMNIEOINBCKOBPKBJCCOBPKCKMKPJBJCCMKPJMNIMPBKPMDLICHPFOFNFMFCKHOPLBBCACANPMKONOLNBNFNP -490 DATA MKONOLMBNBOBPBMBMJOBCCHOPLNBOBPBKPMNFGPBCBHIPLMDCJPBPOAJMAABECEBMNNDOLMCGAOPMNBEAHCKFNPEOLNPMKCNAGNFMBAIDOABDCLAPCMNCOOIMNIMPBMDCNAGPFKPDCKMPCPBCCKGPCNFOFPFBBAEAABJHOPOAJMKEAOMPBOBNBMJPBPFPOAAMKGEOMPO -500 DATA ACMKOOOMPOAEMKLAONPOAGMKALONPOAIMCDMOMDIAGCBJDBKNJMDDMOMKPMNFGPBCBHOPLHOPOCAMKHGOMPOEEMCGPOPDGEECDDGEPCBHIPLMNCJPBEPMNFLONDGAAOBOBNBNFOFFBHLOGAHCBLEPBEPAGAAAJHODNMKNDOMDNMCOGOMDKPGPCKHMCKJOMCDCDHODCMC -510 DATA PCCBABABMNABOICKKGPCBBAHAABJKPHHCDFEFNCDCDNJOBNBHLPOAIMCMMOMBOACHDODCBEOBJODMJHKLHMKKJOMOFMNGLOKCBHIPLMNCJPBOBMDKJOMHKLHMKFNOPMDKJOMPBOBNBOFHODGAAPOACMMNLONCBACAAMNABOIMNIMPBOBODOBCBAFEPOFMJMNFLONHODG -520 DATA AAKHMCCLONCKKGPCABAHAAAJHOCDOFKHMMGDONNBONHOCDNJBLOLDFPOBKDHDPMCDHONMNFLONHHDHPFDIBAONABAPBNAIMCFBONMNFLONPBHHEPJPMNKLDBDIBCOLPJMJPBOBOBNBODCBCFFAODMJCKIPPJBBHOPJBJMJCBADAAMNAEOPMNJLOODKNMPCPOBAMCJOON -530 DATA DKNNPCCKKGPCBBAIAABJOFFEFNCDCDNJBBNOPCOLEPAGAAMNHIGMDKNNPCPOIAMKJKONOLDGBKDMOBCLHHMJCKKGPCBBAHAABJDGABCDFEFNCDCDNJDGBKMJCKKGPCBBAHAABJHOPOIAMMNLONPBOBNBOBPBPFPOBKMKNGONCKKGPCBBAHAABJDECDOLONHHCDNJCBFK -540 DATA BJOFMJCKKGPCABAHAAAJHOOFCDCDCDBBNOPCEPAGAAPFMNHIGMPBKHMEPLOHOBDGAACDFEFNCDCDNJMJPBMJCBKBPFCCLFPCMNDDOOMCEMOPKPDCLEPCDCKOPCDNDCLBPCDOABDCOGPDMNEFOOMDFBECMNOKPAMNJIDICBJJPBMNGCBEMDFBECKPDCLAPCMNCIPACBEG -550 DATA ABMDGNOODOBFDCLBPCDKKKPCKHMCFFOOCBPGACMNGNOOMCMHOODKNOPCKHMIDKLEPCKHMMHPOOCBLAPCDEDKLBPCLOMCEMOOMJCCNKPCCBAABKMNAEOPMNJLOODKNMPCPOBBMJAOAJCBNOPCMNMHOPDOCAOHCKPHPCFMFFCKLFPCOLNJOLCDCDCCLFPCMJCBNMPCOFMN -560 DATA PBOOMNPBOOEPMNPBOOEBHJKHMKLGOOMNPBOOANMCKPOOOBAEAEKPDAIGCDAFMCLLOOCPLOMCEMOPMJDKNMPCPOBCMCEMOPDKNOPCKHMIPOBAMKGAOPPOFAMKEPOPPOGAMKGDOPNKEMOPMKFFOPPOIANKFFOPMDFCOPMNPHOOHHCDMJMNEEOPMNNDGNNKGPOPMCEMOPMJ -570 DATA CCMAPCCBMAPCOFDKKLPCKHMKBJOPOGABBPBPBPLGHHHOCDIGEHHOPFCDKHMKCNOPEPHIIGCDANMCCGOPEHHICPFHABFKFKMNMAPAMBEIAGAAADADOBMNLLOPHKMNLOGONLLLOGCAMIDOABCBDOACCBDOADCBDOAECBDOAFCBLDPCDGAACBDOAGCBDOAHCBDOAICBDOAJ -580 DATA CBDOAKCBDOALCBDOAMCBDOANCBNCPBEPANMKIGOPHOCDPOAAMCHMOPMDHIOPDKKMPCKHMKLCOPDOAHOHCDMNNGOPMNKJOPCKKGPCPJCKKIPCOFMJMNFBECMNKJOPMDFBECCBILPCMNGCBEMDENBHFOCKKGPCDGAAMDIFAFHOMNEBOPCDALHJLAMCLLOPMJHOPOCANCMP -590 DATA OPDOCAOHCDANMCMHOPMJOFMNMDECCBAIABCCOFPDMNIMECOBMDGCBEOFDOCACBHIPLAGAIMNAGPBOBBBHIPLAGAGHOPOEBNKHCOPHOPOCOMKBAPALHMIBCCDBDAFMCPOOPMDBIPADOCABCBDAFMCBCPAAGACCDHOLHMIBCBDAFMCBKPADOAABCMJMNGGPBMNIHPAMNJL -600 DATA OOMNMHOODKKKPCKHMICBAIAAMNAEOPMNJLOODKNNPCPOABMKFMPADNEPDOACDCKKPCAGAACBNPPCBBJLPCMDHIGMCBCDAAMNAEOPMNJLOOCBLHPBMNHEPACBMAPBMNHEPACBMJPBABAJAAMNLLOPMDJLOOMNMCGNMIMNPHOOMDHNPAMNEEOPMNLCPAMNHNPAMNABOJMN -610 DATA LIPAMNMCGNDOAAMCJPPADMDCKKPCMNHNPAMNLCPAMNHNPACBAHAAMNAEOPMJABDBENMNMAPADOANMNEBOPMDMIPAHIMNEBOPHJMDEBOPCGBECOPPCNMCMMPACFMCMKPAMJABFAPPMNMIPAMNMCGNMAAFMCNIPAANMCNIPAMDEJOPDKPJPCGPCGAABBIAAAMDCDDENFOF -620 DATA BKJGMCADPBCDBDANMCPIPAOBNBMJHHCDAFMCAGPBMJDOCAAGBICBMCPCMNAGPBDOEGDCNKPCMJCKLOPCMNOHOPMNDKCDMDJLCCOFMNANPBOBBBMCPCABAGAAMNHIGMDOCOBCBDABACAAMNHIGMMNCIPAKPDCNLPCCBAABKMNAEOPMNJLOODKPGPCKHMJDCKMPCBBKNPB -630 DATA CBAGPEABAGAAMNHIGMMJMNKIGPCBKGPBDGDJDHMNEOBMMNHNPAMNIHPAMNMIPAMNMCGNMCHNPAMNKIGPCBKGPBDFDHMDEOBMCBKNPBHONGDKNKEOBMCDMDEOBMDACAECHJHEGFHDCAGGHCGFGFAADJEODIDBEOEOAAAAAAAAAAAAAAAAACADABFKFKDBAEABAAIEPPEG -640 DATA FKFKDBAEABAAJGAPCEFKFKDBAEABAAJEAPCGBCEEHCGJHGGFCAEOGPHECAFCGFGBGEHJAABCEDGPGNGNHFGOGJGDGBHEGJGPGOCAEFHCHCGPHCAABCFHHCGJHEGFCAFAHCGPHEGFGDHEAABCEEHCGJHGGFCAFEHCGPHFGCGMGFAABCEEGJHDGLCAGOGPHECAGJGOCAGE -650 DATA HCGJHGGFAADEFAHCGJGOHEGFHCCAGOGPHECAHCGFGBGEHJAAAFEGGJGMGFCAEFHIGJHDHEHDAADJEEGJHDGLCAEGHFGMGMAABKEGGJGMGFCAEFGNHAHEHJAADJEEGJHCGFGDHEGPHCHJCAEGHFGMGMAAAHFCGBGNCAEGHFGMGMAADGAADHECGBGECAEGGJGMGFCAEOGB -660 DATA GNGFAACAFAHCGFHDHDCAGBGOHJCAGLGFHJCOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -670 DATA AAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -680 DATA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -690 DATA END +0'TS-DOS CO Loader V1.01 9/21/2017 Kurt McCullum, 2022 b.kenyon.w@gmail.com 0CLEAR256,56489:S=56489:Y=S:C$="TS-DOS":D$="TMP.DO":?"Installing "+C$ 1TL$="":READTL$:IFTL$="END"THEN3 2FORX=1TOLEN(TL$)STEP2:TV=((ASC(MID$(TL$,X,1))-65)*16)+(ASC(MID$(TL$,X+1,1))-65):POKEY,TV:Y=Y+1:NEXT:?".";:GOTO1 3?"Done":OPEND$FOROUTPUTAS#1:?#1,"0EXEC";S;":MENU":CLOSE#1:CLS:?"Please type:":?"KILL "+CHR$(34)+D$+CHR$(34):?"SAVE "+CHR$(34)+C$+CHR$(34):?"MENU":LOADD$ 4DATAMDLENMDCLEPCKPDCLAPCMJMMLAOHCBAAAADJCCKGPCDOABMNFGPBKPDCKOPCDCLEPCDCLDPCDCKLPCDMDCHJOHCBNNNMCCKIPCMNGAECMNHDECCBGJOPCCPOPDMNJINNDKKPPCDCHJOHMNLGNNCBJHOPOFPFPOACNCDINNDKKFPCKHMKDINNDKLAPCEPAMAGAAMFDK 5DATAHJOHDCKPPCMNFMOCMBAEANMKJHOPHIDCKPPCDCHJOHMFMNEKOCCKLOPCCLHOPODOMCALNNMBPBCBALNNPFMFOFPFMNGOECDKLDPCLHMKGDNNPBKHMKMGOCDNMKBHOFDNMKDPOFDNDNMKPHOEDNDNMKKEOEDNDNDNOBMKIBNNMDNNNMPBKHMKOPODDNMKMAODDNMKJAOC 6DATADNDNMKNMOFDNDNDNDNDNOBMKIBNNMDNNNMMNIMPBMNKIGPMNGAECMNHDECCBAAAACCPOPDCKKGPCPJMJCBABABCCOFPDCBOIOFMNGCBEKPDCKFPCDOABDCKPPCCBACACCCOFPDMDJPNPDKHJOHDCKPPCMNEKOCDKKPPCDNDHDPAHFPBGAACBKBPFBJOLCBAHCDCCOFPD 7DATAMNIMECONMNKCECMNJIDIMNKHECMNJOOFMNHJHCMKOBNNNKHANPPOANMKKENOPOBHMKAONPPOBEMKPMNOPOFNMKPMNOPODPMKNLNOPOACMKNLNOPOBOMKHANOPOBPMKHONOPOBNMKFPNOPOBMMKEMNOPOCAMKEMNOOGNPPOFEMKFCNPPOEBMKJHNOPOEHMKJHNOPOFFMK 8DATABCNPPOEEMKFAOBPOEMMKHJOBPOFAMKHJOBMDOBNNDOABCBKPPCIGCDLONKIMNOMKIMNODOABMDIMNODKKPPCDNMCIMNODKLAPCKHMKOBNNMDIMNODKKPPCNGAENKOBNNMKOBNNMDIMNODOAECBKPPCIGEPCDHOLJNKOBNNHJPFMNFMOCPBDCHJOHMDLGNNDODOMNCONP 9DATADOACDCKFPCMDLGNNDKKKPCPOACMCOBNNCKLOPCABAHAAAJHOPODMMCOBNNMNANPBCKLOPCMNDFOFMNPAOHCBACAAMNABOICKLOPCBBJLPCABAJAAMNHIGMKPMDOONODKLDPCKHMKOBNNDKLAPCPOBFNKOBNNDKKOPCDMDCKOPCDOABDCHJOHMNJINNMDLGNNDKLDPCKH 10DATAMKOBNNDKKOPCKHMKOBNNDNMDOONOKPMDOONODOCAMNCONPKPDCKFPCMDLGNNDKKKPCDNMCOBNNDKKLPCOOABDCKLPCMJDCKFPCDKLAPCKHMIKPDMDCKPPCMNGFOCCKLOPCCLDKKFPCOHDKKPPCCBLAPCLONKDHNPKHMJMNGFOCMNKCECCKLOPCCLDODOLOMCGENPDOCA 11DATAOHMNKHECCBKFPCDGACMDEMNOPOAKNCOBNNPOAFMKJHNPPOADMADKLDPCOOABDCLDPCKPDCKOPCDOABDCHJOHMNGAECMNJINNMDLGNNDKLDPCKHMIMDAONPCBKBPFCCLFPCKPHHCDHHDKLDPCKHMKPEOAKPDCLEPCMNDDOOMCIBOADKKOPCKHMKNFNPMNKMNMMNEAOODK 12DATALEPCDNMCMBNPKPDCLEPCDCLAPCMNEAOODKLAPCPOBFNMEBOBDKKKPCKHMKADOADNMKPBNPCBJLPCMDAJOACBABCECCOFPDMNKCECDOCDOHDKKLPCMGDAOHMNKHECMDBMOAOFCBABCBCCOFPDMNKCECOBAOAGMNMHOPMNKHECCBBGOGABKIOADKLDPCKHMCCPOACBGAOG 13DATAABJEOAMFOFDKHJOHCBLAPCLONKEBOAHOKHMCEBOADMDCKPPCOBBBKFPGNFAOKAKPBCBDANMCEMOANBAGAKOLAOAFBKHHBDCDANMCFIOAMFABALAAAJMBAFMCFGOACBAHAMCCOFPDOLMNGCBEMNLCOAMNOEECCBAHBGCCOFPDMJKPMNEBOBCBBGOGABIOOAMDCPOACBML 14DATAOGMDGCBECKOFPKOLCKFJPEHNJDGPHMJKGHABPCPPAJMDJIDIMNOKPAMNJIDIDODAOHMJDKLDPCKHMCNDOACBOJPGDKEEPKBBHBOHPOIHMKMKOABBHFOHBKHHCDBDKHMCMKOAMJDKKKPCKHMICBAFPHBBGMOHDNMKMKOACBOFPGKPAGBAMNAGPBCBAFPHBBGHOHMDMKOA 15DATACBJBPIKPDCLAPCDOBFDNPFHOOOIAOGJPMCCNOBOFCDFOCDFGODOFMNHHOEOLMNIPOOOBODCDAOAGMNMHOPDOCOOHAOACMNMHOPDOCAOHCBLAPCDEOBBBALAABJPBDNMCPOOADKLAPCPOBFNMEBOBMDOANPPFCBFMOHMNGCBEPBDMPOBFMCEBOBMJMNDKOCMNFJOBMDLG 16DATANNOFMNDKOCMNEEENCBAAPNBOAIBGCIHOMNALENCDBFMCGHOBMNEEENBNMCGFOBOBMJDCLJPCBBAHAACKLOPCBJHOPOEEMCLGNNMNNLOBDKLJPCPOEMMMGAECMEDKOCMNLGOBPFMNPNOBPBMKJHOBDKLJPCPOEMMCLAOBDOAHOHMNJIOFMNGAECMDJHOPDKLDPCKHMCBM 17DATAOICKLHPCABIAAAHJAINCMMOBAJHNGMEPCCLHPCCKLKPCOFAJCCLKPCOBPOIAMJMNANPBCKLOPCDKLDPCKHMCPHOBMNBNPBNFMNHHOECCLHPCOBCCLKPCMJMNDFOFMDPAOHOLLHMIEPDKLJPCPOEMMCBEOCMNCBOCBKOHBDANMCAJOCMJMNCBOCBKMNALENBDANMCBEOC 18DATAMJMNDNBIMIMNENBHPOADMKLAOBPOBLMKLAOBPOCAMCCBOCMDENBHNLLLOGAGOOACMCFNOPCBGPOPCCPOPDMJMNGFOCCCLOPCMNKCECCLAOAKMNMHOPMDKHECMNKHECMNGFOCMDFDOCDKKPPCDNGPCGAABBAKAAMNCDDEBBCIPNBJCDOFABAAPNAIBBCIAAOLMNHKDEHN 19DATADMDCOFPDOLBAHNDCOGPDOBMJMNBNPBCCLKPCCBNJOGMNLKOFMIMNOHOPCKLKPCABAJAAAJBBHOPLHOBCBDCDHOBCMNCDPBMCGAOPCKLKPCCDCDCDBBHIPLABAGAAOLMDHIGMMNANPBCKLOPCMNDFOFDKKFPCKHMCOOOCCBAJOHMNLKOFMKOOOCMNOHOPABACAACBMJPC 20DATABBHOPLMNHIGMMNCDPBMKABODCBDPOHMNNGOPMNIOOFMAMNMJODCKPHPCHMGFGPCCPHPCDKMJPCPOEEMCBKODCKOBPKDOMAMDDLODPOEDMCCNODCKODPKCCKPPCCKOFPKDOKAMDDLODCKPHPCCCKPPCCKHBPICCLKPCDOIADCLJPCCCLMPCCKPHPCCCLHPCOFMBDKLJPC 21DATAPOKAMKFIODADPOIAMCFIODADMFMNNDCCMBOFMFCKLMPCMNAKGMNKGMOPCKLMPCMBDGAACDALHJLAMCGMODCLNBDKLJPCPOMAMCIIODDGBKCKLMPCCLMDLAODPOKAMCJJODCKKPPCCCODPKCKLMPCMDLAODNFCKOBPKCLCCHBPICDOLCKKPPCCDCDBJCCOBPKNBCKLKPC 22DATAOLMNDFCEMNINOIMNDKCDCBACAAMDABOIMNNMODCKLOPCMNOHOPMNCDPBPOMAMKKICBPOKAMKMCCBPOIAMKAACCMJDKKFPCDNMIMNIBOFDKKFPCKHMIDOABDCKFPCMJMNANPBMNBNPBNFOFCDCDCDBBMCPCABAGAAMNHIGMDOCOBCBDABACAAMNHIGMDKKFPCKHMCCMOE 23DATACBAAOHMNLKOFMKCMOEMNOHOPABAGAABBMCPCCBHIPLMNHIGMOBNBNFMNHHOEHMLFMKGGOPOFDOABDCLAPCMNCIPAMNEEPBMKHCOECBBKOHMNNGOPMNJIOFOGNPOHPOFCMCGAOEMNGLOKMNEEPBMDHCOEOBNBPOEBMADKMJPCPOEEMADOACDCLAPCNFOFOBNBMDCOOIHO 24DATAPOMAMKIKOEPOKAMKJJOENFMNBIAHMBAICLMJOLBBAAAAHOCDBDPOBKMCIOOEBLOLMJOLCDCDEOCDEGCBAGAAAJMJDKKKPCKHMIDNMKBONPMNANPBCBPAOGMNLKOFMIMNOHOPCBHIPLBBMCPCABAGAAMNHIGMCBDMDOCCMJPCDOCODCMIPCMNCIPADKKKPCPOACMAMNEE 25DATAPBMCPBOEDOABDCMCPCCBABABMNABOICBACAAMDABOIMNPAOHMDOLOEDKKKPCPOACMICBKKOGMNNGOPMNIOOFMAMNCIPAMNMIPACBAGAAMNABOIDOAHOHMJMNNMODMNANPBMNCDOFMDGLOKABAJAACKLOPCBBMCPCMNHIGMMNCIPAMDEEPBMNOHOPCBHIPLMNCJPBMJMN 26DATAANPBMNCDOFCBMCPCBBIBPLABAJAAMNHIGMCKPHPCEMEFCBMAHLAICBNJOGMCHHOFABAJAAMNLMOFMIOFPFMNANPBPBOBBBMCPCEPAGAAMDBGOJMNLKOFMIMNOHOPMDANOJCBBCOHMNNGOPMNIOOFMCJHOPMJMNJIOFOHPOFJMIPOHJMJMNJOOFMDENBHKPDNDCADPEMN 27DATADNBIMKJOOFKPDCADPECBEBPILGMKPEBOMNBHBIMDJOOFAOAGMFMNNGOPMNKKEHNKJHOPCDMBAGAAOFHOKHMKNGOFCDAEANMCMLOFDGAAHIOBKHMJCKMMPJHOPOEJMCLAOHMDIIOHBLHACAFEFDCNEEEPFDCACIEOEFEDCAHGDECODBDACJCADCDADBDECAFEFDEJCPEL 28DATAENCACACACACACACACACABLHBCAAAEMGPGBGECAELGJGMGMCAEOGBGNGFCAFCGBGNCACAEGHCGNHECAEMGPGHCACACACACACACACACACACACACACACACACAENGFGOHFCAEEEJFDELCAEGHCGFGFDKCACACACACACACACAEGGJGMGFDKAAFDGBHGGFCAELGJGMGMCAEOGB 29DATAGNGFCAEEGJHDGLCAEEEPFDCNCACACACACACACACACACACACACACACACACACACACACAENGFGOHFCACAFCEBENCAEGHCGFGFDKCACACACACACACACAEGGJGMGFDKAAEJGOHDGFHCHECAEEGJHDGLCMCAFAHCGFHDHDCACCFJCCCAHEGPCAGCGFGHGJGOCAAAEOEPFECAEG 30DATAEPFCENEBFEFEEFEEAAEOGFHHCAEOGBGNGFDKAAFDHJHDHEGFGNCAGOGBGNGFDKAAEEGJHCGFGDHEGPHCHJCAGOGBGNGFDKAAFDGBHGGFCAGBHDDKAAEMGPGBGECAGBHDDKAAFDHFHCGFCADPCAAAEGGJGMGFCAGFHIGJHDHEHDCMCAEBCJHAHAGFGOGECAFCCJGFHAGM 31DATAGBGDGFCAFBCJHFGJHEDKAAEGGJGMGFCAGFHIGJHDHEHDCMCAFCGFHAGMGBGDGFDPCACIFJCPEOCJDKAACNCOCNCACACACACACACAAAENGLEEHCAAECGBGOGLAAEPEGEGAAEPEOCAAAAAEJMDIEOHMDLAOHMDIIOHBBHLOHMJCBNLHPCCMMPJCBNLHPCCPMPJCCPOPJCC 32DATAOEPJCCOIPJCBIHALCCEEPKCCEKPKCCEMPKCCEOPKCCFAPKMJMNIIOHCBHKOHCCMMPJCBIOOLCCOIPJCBPOOLCCOEPJCBAEOLCCFAPKCBFBOLCCEOPKCBHFOKCCPMPJCBCGOMCCPOPJCBIOOKCCEEPKCBLMOKCCEKPKCBNKOKCCEMPKMJCBABABDOADDCMCPCMDABOIGH 33DATACOAEMDANOIMNAEOPMNNFPAMNJLOOMDMHOOCCNMPCCBNMPCMNAKOPMNJLOOMDMHOOCBADAAMNAEOPMNJLOODKNNPCCBNOPCPOIAMJNFOFMNGHOIOBCCKPPCOBBBNOPCABIAAAMNHIGMOFCKKPPCABIAAAAINKFKOIMKFKOICCKPPCDOIAMNPLOHMDDHOIOBDKKPPCMNPL 34DATAOHCBACAAMDABOIBBAAAFOLMNHKDEDKPJPCJFNKGDOPMKGDOPDKLAPCDCMCPCCBABABMDABOICKLMPCMNAKGMNKGMOPCKLMPCOFMNPAOHMNBMOIEPAGAANBMNHIGMNFDKNNPCCKLHPCEPAGAAAICCLHPCNKLEOIHNLEMCJEOINBMJDKLHPCPOABMIMNHNPADOFHDCKNPC 35DATAMNBPOKMNHNPAMNNMOICKLOPCMNLLOPCCLOPCMNDPOKMDLGOIDKODPCMNPHOIPODFMKOPOICBLIPCDEHOPOBEMACBLHPCDECDDGABMJABAAAFPODFMIABEAAAMJCBAIAAMNAEOPMNLIPAMDHNPACBHIPLBBMCPCABAGAAMNHIGMDKKKPCKHMCNDOJMNEEPBMCGAOPBBAA 36DATAAFMNFJOKCBAAABCCLHPCMNABOJMNOEOJCKOJPKOFAGCIBBIBPLMNLOOJNKFNOPHIKHMKFNOPOFBBMCPCOLABAJAAMNHIGMOBOFBBPKPCABBPAAMNHIGMNBNFCBBPAABJOFCKOJPKABAAAFAJMBMFAIODMBMNHIGMCKOJPKAGCHBBPKPCMNLOOJOFCKOJPKABPPAEAJOF 37DATAABBPAAAINBMBMFOFAIOFMBADOBMNIDGMCBPKPCNBABBPAAMNHIGMCBABBECCLIPCOBOBCCLOPCCBAAABCCLHPCMNLGOIMNLCPAMJAOAJMNPGPAMINIHOLHMIMFABBPAAAJMBAFMIMDLOOJCBANBJMNAEOPMNJLOODKNOPCKHMCGAOPMJCKLMPCMNPCOJDKLHPCDNMIMD 38DATAOHOJOFDOFCDCKNPCMNBPOKMNNMOIDOANMNEBOPMNOFHGOBMNPHOOHHCDALHJLAMCAHOKMJAGCPNGAKAENCBFOKMGDKEPMJDKLHPCMNBDOKDKKNPCMNEBOPMNMAPADKLIPCMNBDOKDOCMMNEBOPMNMAPAMNLIPACBNOPCOFAOAIMNPBOOANMCEFOKOBHOPODAMIPOECMK 39DATAEPOPMDEJOPCKOJPKOFCCLMPCCBMAPPDJMBAINPNKGMOPMJKPDCNLPCCBAFAAMDABOIPODANIPODCNANGDADCKLPCCDBNHOPODKMACDBNODOBDOAJLHMJNFOFPFKPMNFGPBDIACONHOKHMKLBOKPODKMKLBOKMNMIBDHLPOACNCLHOKDCKLPCDIACNJMNACOOMNIMPBPB 40DATAOBNBMBMJPOAJMCIHALNFOFPFKPMNFGPBCBHIPLMNCJPBMKFNOPMNGLOKMNIMPBMDLHOKPOAJMCIHALNFOFPFKPMNFGPBCBIBPLMNCJPBMKFNOPCBMCPCBBIBPLABAJAAMNHIGMMNANOJMNIMPBMDLHOKPOAJMAMBOFABEDEPMNNDOLMKFNOPMNPAOHCKPHPCHNGMGHCC 41DATALHPCMNBMOIMNPICIOFCKMAPJOFOFCKIEPDODMBAINKGMOPCKMCPJAJABHLOHAINCIHALNBOBDKNNPCNGAGEPAGAAMNJLOIMNIMPBMDNNCIPOAJMAMNNCCGABEDEPMNNDOLMCGAOPDOABDCLAPCCKMCPJABAGAAMFAJOFMNGHOIOBCCKPPCMBCBMAPJBBNOPCMNHIGMCK 42DATANOPCABHKAAMNDOOIMNIMPBMDCMAGPOAJMAMBPBPFMFMIJPDCHCPLABECEBMNNDOLMKFNOPCKPHPCEMEFGAGJCCLHPCMNOOCCCDCCLMPCCKLHPCOFOFMBMNIEOINBCKOBPKBJCCOBPKCKMKPJBJCCMKPJMNIMPBKPMDLICHPFOFNFMFCKHOPLBBCACANPMKONOLNBNFNP 43DATAMKONOLMBNBOBPBMBMJOBCCHOPLNBOBPBKPMNFGPBCBHIPLMDCJPBPOAJMAABECEBMNNDOLMCGAOPMNBEAHCKFNPEOLNPMKCNAGNFMBAIDOABDCLAPCMNCOOIMNIMPBMDCNAGPFKPDCKMPCPBCCKGPCNFOFPFBBAEAABJHOPOAJMKEAOMPBOBNBMJPBPFPOAAMKGEOMPO 44DATAACMKOOOMPOAEMKLAONPOAGMKALONPOAIMCDMOMDIAGCBJDBKNJMDDMOMKPMNFGPBCBHOPLHOPOCAMKHGOMPOEEMCGPOPDGEECDDGEPCBHIPLMNCJPBEPMNFLONDGAAOBOBNBNFOFFBHLOGAHCBLEPBEPAGAAAJHODNMKNDOMDNMCOGOMDKPGPCKHMCKJOMCDCDHODCMC 45DATAPCCBABABMNABOICKKGPCBBAHAABJKPHHCDFEFNCDCDNJOBNBHLPOAIMCMMOMBOACHDODCBEOBJODMJHKLHMKKJOMOFMNGLOKCBHIPLMNCJPBOBMDKJOMHKLHMKFNOPMDKJOMPBOBNBOFHODGAAPOACMMNLONCBACAAMNABOIMNIMPBOBODOBCBAFEPOFMJMNFLONHODG 46DATAAAKHMCCLONCKKGPCABAHAAAJHOCDOFKHMMGDONNBONHOCDNJBLOLDFPOBKDHDPMCDHONMNFLONHHDHPFDIBAONABAPBNAIMCFBONMNFLONPBHHEPJPMNKLDBDIBCOLPJMJPBOBOBNBODCBCFFAODMJCKIPPJBBHOPJBJMJCBADAAMNAEOPMNJLOODKNMPCPOBAMCJOON 47DATADKNNPCCKKGPCBBAIAABJOFFEFNCDCDNJBBNOPCOLEPAGAAMNHIGMDKNNPCPOIAMKJKONOLDGBKDMOBCLHHMJCKKGPCBBAHAABJDGABCDFEFNCDCDNJDGBKMJCKKGPCBBAHAABJHOPOIAMMNLONPBOBNBOBPBPFPOBKMKNGONCKKGPCBBAHAABJDECDOLONHHCDNJCBFK 48DATABJOFMJCKKGPCABAHAAAJHOOFCDCDCDBBNOPCEPAGAAPFMNHIGMPBKHMEPLOHOBDGAACDFEFNCDCDNJMJPBMJCBKBPFCCLFPCMNDDOOMCEMOPKPDCLEPCDCKOPCDNDCLBPCDOABDCOGPDMNEFOOMDFBECMNOKPAMNJIDICBJJPBMNGCBEMDFBECKPDCLAPCMNCIPACBEG 49DATAABMDGNOODOBFDCLBPCDKKKPCKHMCFFOOCBPGACMNGNOOMCMHOODKNOPCKHMIDKLEPCKHMMHPOOCBLAPCDEDKLBPCLOMCEMOOMJCCNKPCCBAABKMNAEOPMNJLOODKNMPCPOBBMJAOAJCBNOPCMNMHOPDOCAOHCKPHPCFMFFCKLFPCOLNJOLCDCDCCLFPCMJCBNMPCOFMN 50DATAPBOOMNPBOOEPMNPBOOEBHJKHMKLGOOMNPBOOANMCKPOOOBAEAEKPDAIGCDAFMCLLOOCPLOMCEMOPMJDKNMPCPOBCMCEMOPDKNOPCKHMIPOBAMKGAOPPOFAMKEPOPPOGAMKGDOPNKEMOPMKFFOPPOIANKFFOPMDFCOPMNPHOOHHCDMJMNEEOPMNNDGNNKGPOPMCEMOPMJ 51DATACCMAPCCBMAPCOFDKKLPCKHMKBJOPOGABBPBPBPLGHHHOCDIGEHHOPFCDKHMKCNOPEPHIIGCDANMCCGOPEHHICPFHABFKFKMNMAPAMBEIAGAAADADOBMNLLOPHKMNLOGONLLLOGCAMIDOABCBDOACCBDOADCBDOAECBDOAFCBLDPCDGAACBDOAGCBDOAHCBDOAICBDOAJ 52DATACBDOAKCBDOALCBDOAMCBDOANCBNCPBEPANMKIGOPHOCDPOAAMCHMOPMDHIOPDKKMPCKHMKLCOPDOAHOHCDMNNGOPMNKJOPCKKGPCPJCKKIPCOFMJMNFBECMNKJOPMDFBECCBILPCMNGCBEMDENBHFOCKKGPCDGAAMDIFAFHOMNEBOPCDALHJLAMCLLOPMJHOPOCANCMP 53DATAOPDOCAOHCDANMCMHOPMJOFMNMDECCBAIABCCOFPDMNIMECOBMDGCBEOFDOCACBHIPLAGAIMNAGPBOBBBHIPLAGAGHOPOEBNKHCOPHOPOCOMKBAPALHMIBCCDBDAFMCPOOPMDBIPADOCABCBDAFMCBCPAAGACCDHOLHMIBCBDAFMCBKPADOAABCMJMNGGPBMNIHPAMNJL 54DATAOOMNMHOODKKKPCKHMICBAIAAMNAEOPMNJLOODKNNPCPOABMKFMPADNEPDOACDCKKPCAGAACBNPPCBBJLPCMDHIGMCBCDAAMNAEOPMNJLOOCBLHPBMNHEPACBMAPBMNHEPACBMJPBABAJAAMNLLOPMDJLOOMNMCGNMIMNPHOOMDHNPAMNEEOPMNLCPAMNHNPAMNABOJMN 55DATALIPAMNMCGNDOAAMCJPPADMDCKKPCMNHNPAMNLCPAMNHNPACBAHAAMNAEOPMJABDBENMNMAPADOANMNEBOPMDMIPAHIMNEBOPHJMDEBOPCGBECOPPCNMCMMPACFMCMKPAMJABFAPPMNMIPAMNMCGNMAAFMCNIPAANMCNIPAMDEJOPDKPJPCGPCGAABBIAAAMDCDDENFOF 56DATABKJGMCADPBCDBDANMCPIPAOBNBMJHHCDAFMCAGPBMJDOCAAGBICBMCPCMNAGPBDOEGDCNKPCMJCKLOPCMNOHOPMNDKCDMDJLCCOFMNANPBOBBBMCPCABAGAAMNHIGMDOCOBCBDABACAAMNHIGMMNCIPAKPDCNLPCCBAABKMNAEOPMNJLOODKPGPCKHMJDCKMPCBBKNPB 57DATACBAGPEABAGAAMNHIGMMJMNKIGPCBKGPBDGDJDHMNEOBMMNHNPAMNIHPAMNMIPAMNMCGNMCHNPAMNKIGPCBKGPBDFDHMDEOBMCBKNPBHONGDKNKEOBMCDMDEOBMDACAECHJHEGFHDCAGGHCGFGFAADJEODIDBEOEOAAAAAAAAAAAAAAAAACADABFKFKDBAEABAAIEPPEG 58DATAFKFKDBAEABAAJGAPCEFKFKDBAEABAAJEAPCGBCEEHCGJHGGFCAEOGPHECAFCGFGBGEHJAABCEDGPGNGNHFGOGJGDGBHEGJGPGOCAEFHCHCGPHCAABCFHHCGJHEGFCAFAHCGPHEGFGDHEAABCEEHCGJHGGFCAFEHCGPHFGCGMGFAABCEEGJHDGLCAGOGPHECAGJGOCAGE 59DATAHCGJHGGFAADEFAHCGJGOHEGFHCCAGOGPHECAHCGFGBGEHJAAAFEGGJGMGFCAEFHIGJHDHEHDAADJEEGJHDGLCAEGHFGMGMAABKEGGJGMGFCAEFGNHAHEHJAADJEEGJHCGFGDHEGPHCHJCAEGHFGMGMAAAHFCGBGNCAEGHFGMGMAADGAADHECGBGECAEGGJGMGFCAEOGB 60DATAGNGFAACAFAHCGFHDHDCAGBGOHJCAGLGFHJCOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 61DATAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 62DATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 63DATAEND \ No newline at end of file From a15e7fb557d874edeb3d72ced326db67efeeda5b Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 14 Jun 2022 06:25:54 -0400 Subject: [PATCH 042/206] increase slowbyte() time to 7ms --- clients/ts-dos/TS-DOS.200 | 2 +- dl.c | 31 ++++++++++++++++++------------- ref/advanced_options.txt | 2 +- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/clients/ts-dos/TS-DOS.200 b/clients/ts-dos/TS-DOS.200 index e89de46..f198a8d 100644 --- a/clients/ts-dos/TS-DOS.200 +++ b/clients/ts-dos/TS-DOS.200 @@ -1 +1 @@ -0'TS-DOS Loader V1.01 9/21/2017 Kurt McCullum - 2022 b.kenyon.w@gmail.com 0CLEAR256,55189:S=55189:Y=S:C$="TS-DOS":D$="TMP.DO":?"Installing "+C$ 1TL$="":READTL$:IFTL$="END"THEN3 2FORX=1TOLEN(TL$)STEP2:TV=((ASC(MID$(TL$,X,1))-65)*16)+(ASC(MID$(TL$,X+1,1))-65):POKEY,TV:Y=Y+1:NEXT:?".";:GOTO1 3?"Done":OPEND$FOR OUTPUTAS#1:?#1,"0 CALL";S;":MENU":CLOSE#1:CLS:?"Please Type:":?"KILL "+CHR$(34)+D$+CHR$(34):?"SAVE "+CHR$(34)+C$+CHR$(34):?"MENU":LOADD$ 4DATAMDKANHDCHMONKPDCHIONMJMMGGOCCBAAAADJCCGOONDOABMNBMOMKPDCHGONDCHMONDCHLONDCHDONDMDCALOCCBMJNHCCHAONMNENEPMNGDEPCBDCOKCCDEOPMNIANIDKHHONDCALOCMNJONICBGAOKOFPFPOACNCCENIDKGNONKHMKCENIDKHIONEPAMAGAAMFDK 5DATAALOCDCHHONMNOLNMMBAEANMKGAOKHIDCHHONDCALOCMFMNNJNMCKIGONCLHOPODOMCPHNHMBPBCBPHNHPFMFOFPFMNFOEPDKHLONLHMKENNIPBKHMKEMNNDNMKJNNPDNMKMFNPDNDNMKHNNPDNDNMKCKNPDNOBMKGJNIMDMJNHPBKHMKHFNODNMKEGNODNMKBGNNDNDN 6DATAMKGOOADNDNDNOBMKGJNIMDMJNHMNFCOMMNLFIHMNENEPMNGDEPCBAAAACCDEOPCKGOONPJMJCBABABCCAGOPCBHKOAMNMMBBKPDCGNONDOABDCHHONCBACACCCAGOPMDIHNKDKALOCDCHHONMNNJNMDKHHONDNDHDPAHFPBGAACBHAOPBJOLCBAPCDCCAGOPMNHMEPON 7DATAMNIIEPMNALEHMNINEPMNCEOAMNADILMKMJNINKFINKPOANMKIMNJPOBHMKPGNJPOBEMKOENJPOFNMKOENJPODPMKMDNJPOACMKMDNJPOBOMKFINJPOBPMKGGNJPOBNMKEHNJPOBMMKDENJPOCAMKDENJOGNPPOFEMKDKNKPOEBMKHPNJPOEHMKHPNJPOFFMKPKNJPOEE 8DATAMKAFNMPOEMMKAONMPOFAMKAONMMDMJNIDOABCBHHONIGCDLONKHENJMKHENJDOABMDHENJDKHHONDNMCHENJDKHIONKHMKMJNIMDHENJDKHHONNGAENKMJNIMKMJNIMDHENJDOAECBHHONIGEPCDHOLJNKMJNIHJPFMNOLNMPBDCALOCMDJONIDODOMNBGNKDOACDCGN 9DATAONMDJONIDKHCONPOACMCMJNICKIGONABAHAAAJHOPODMMCMJNIMNNDOLCKIGONMNLLNPMNKMOCCBACAAMNLNOCCKIGONBBGDONABAJAAMNBGIDKPMDNGNJDKHLONKHMKMJNIDKHIONPOCONKMJNIDKHGONDMDCHGONDOABDCALOCMNIANIMDJONIDKHLONKHMKMJNIDK 10DATAHGONKHMKMJNIDNMDNGNJKPMDNGNJDOCAMNBGNKKPDCGNONMDJONIDKHCONDNMCMJNIDKHDONOOABDCHDONMJDCGNONDKHIONKHMIKPDMDCHHONMNPENMCKIGONCLDKGNONOHDKHHONCBHIONLONKBPNKKHMJMNPENMMNIIEPCKIGONCLDODOLOMCEMNKDOCAOHMNINEP 11DATACBGNONDGACMDDENJPOAINCMJNIPOAFMKHPNKPOADMADKHLONOOABDCHLONKPDCHGONDOABDCALOCMNENEPMNIANIMDJONIDKHLONKHMIMDPGNJCBHAOPCCHNONKPHHCDHHDKHLONKHMKKJNLKPDCHMONMNPMOIMCFLNLDKHGONKHMKLNNKMNJINHMNAJOJDKHMONDNMC 12DATAKJNKKPDCHMONDCHIONMNAJOJDKHIONPOCONMPGNLDKHCONKHMKOLNKDNMKNJNKCBGDONMDPBNKCBABCECCAGOPMNIIEPDOCDOHDKHDONMGDAOHMNINEPMDAENLOFCBABCBCCAGOPMNIIEPOBAOAGMNJAOKMNINEPCBKIOAABICNLDKHLONKHMCBHNLCBOKOAABGONLMF 13DATAOFDKALOCCBHIONLONKCJNLHOKHMCCJNLDMDCHHONCBAPALCCAGOPOBMNMMBBDKHLONKHMKFBNLDKHCONKHMKFBNLCBPKOBDNMKEONLCBOJOBMNMMBBMNIMNLCBAPBFCCAGOPMJKPMNPGNLCBKIOAABGINLMDBHNLCBENOBMDMMBBCKGFPGOLCKGDOPHNJDGPHMJKGHAB 14DATAPCPPAJMDALEHMNLAOLMNALEHDODAOHMJDKHLONKHMADKFNPFBBADOCPOAGMKJPNLBBAHOCCBBABJCCAGOPOLMDMMBBCBLFPCKPDCHIONDOCODNPFHOOOIAOGJPMCOCNLOFCDFOCDFGODOFMNPNNOOLMNFIOJOBODCDAOAGMNJAOKDOCOOHAOACMNJAOKDOCAOHCBHION 15DATADEOBBBALAABJPBDNMCLDNLDKHIONPOCONMPGNLMDMINKPFCBNOOBMNMMBBPBDMPOCOMCPGNLMJMNMPNMMNEGCJMDJONIDCIBONBBAHAACKIGONBJHOPOEEMCJONIMNHANMDKIBONPOEMMMENEPMEMPNMMNELNMPFMNJCNMPBMKCMNMDKIBONPOEMMCEFNMDOAHOHMNBO 16DATAOAMNENEPMDGAOKDKHLONKHMCNIOCCKHPONABIAAAHJAINCGBNMAJHNGMEPCCHPONCKICONOFAJCCICONOBPOIAMJMNNDOLCKIGONDKHLONKHMCIMNMMNODOLNFMNPNNOCCHPONOBCCICONMJMNLLNPMDKMOCOLLHMIEPDKIBONPOEMMCKJNMMNLGNMBKOHBDANMCJONM 17DATAMJMNLGNMBKMNBEFKBDANMCKJNMMJMNAEBEMIMNPHBCPOADMKEFNMPOBLMKEFNMPOCAMCLGNMMDPHBCNLLLOGAGOOACMCCGOKMJMNPENMCCIGONMNIIEPCLAOAKMNJAOKMDINEPMNINEPMNPENMMDOCNMDKHHONDNFPBGAACBAEAAMNNCEECDCDOFCBAFAAMNHJEENBFF 18DATAOLCECCAGOPMNIKFDCDMJMNODOLCCICONCBFLOBMNEAOAMIMNKNOKCKICONABAJAAAJBBEMPHHOBCBDCDHOBCMNOJOLMCCJOKCKICONCDCDCDBBEGPHABAGAAOLMDBGIDMNNDOLCKIGONMNLLNPDKGNONKHMCHENNCBILOBMNEAOAMKHENNMNKNOKABACAACBJBONBBEM 19DATAPHMNBGIDMNOJOLMKIHNNCBMBOBMNJPOKMNBEOAMAMNEPNOCKLPONHMGFGPCCLPONDKJBONPOEEMCKANNCKGBPGDOMAMDMBNNPOEDMCLDNNCKGDPGCCHHONCKGFPGDOKAMDMBNNCKLPONCCHHONCKJFPCCCICONDOIADCIBONCCIEONCKLPONCCHPONOFMBDKIBONPOKA 20DATAMKNONNADPOIAMCNONNADMFMNABCMMBOFMFCKIEONMNKIICNKDFOKCKIEONMBDGAACDALHJLAMCPCNNCLNBDKIBONPOMAMCAONODGBKCKIEONCLMDDGNOPOKAMCBPNOCKHHONCCGDPGCKIEONMDDGNONFCKGBPGCLCCJFPCCDOLCKHHONCDCDBJCCGBPGNBCKICONOLMN 21DATAKMCNMNEJODMNGCCMCBACAAMDLNOCMNGCNOCKIGONMNKNOKMNOJOLPOMAMKLFCKPOKAMKMOCKPOIAMKAMCLMJDKGNONDNMIMNAHOADKGNONKHMIDOABDCGNONMJMNNDOLMNODOLNFOFCDCDCDBBIKONABAGAAMNBGIDDOCOBCBDABACAAMNBGIDDKGNONKHMCLCNOCBIC 22DATAOBMNEAOAMKLCNOMNKNOKABAGAABBIKONCBEGPHMNBGIDOBNBNFMNPNNOHMLFMKCPOKOFDOABDCHIONMNOOOKMNAKOMMKPINOCBJMOBMNJPOKMNBOOAOGNPOHPOFCMCOGNOMNCHOFMNAKOMMDPINOOBNBPOEBMADKJBONPOEEMADOACDCHIONNFOFOBNBMDOKOCHOPOMA 23DATAMKBANPPOKAMKBPNPNFMNBPAGMBAICLMJOLBBAAAAHOCDBDPOBKMCBENPBLOLMJOLCDCDEOCDEGCBAGAAAJMJDKHCONKHMIDNMKAGNKMNNDOLCBHCOBMNEAOAMIMNKNOKCBEGPHBBIKONABAGAAMNBGIDCBDMDOCCJBONDOCODCJAONMNOOOKDKHCONPOACMAMNAKOMMC 24DATAHHNPDOABDCIKONCBABABMNLNOCCBACAAMDLNOCMNKMOCMDHBNPDKHCONPOACMICBCMOBMNJPOKMNBEOAMAMNOOOKMNIOOLCBAGAAMNLNOCDOAHOHMJMNGCNOMNNDOLMNKJNPMDCHOFABAJAACKIGONBBIKONMNBGIDMNOOOKMDAKOMMNKNOKCBEGPHMNOPOLMJMNNDOL 25DATAMNKJNPCBIKONBBEPPHABAJAAMNBGIDCKLPONEMEFCBMAHHAICBFLOBMCPNNPABAJAAMNEDOAMIOFPFMNNDOLPBOBBBIKONEPAGAAMDNCODMNEAOAMIMNKNOKMDMJODCBJEOBMNJPOKMNBEOAMCGAOKMJMNBOOAOHPOFJMIPOHJMJMNCEOAMDPHBCKPDNDCDHOPMNAEBE 26DATAMKCEOAKPDCDHOPCBCCPCLGMKJHCGMNNOBDMDCEOAABAGAAMNFFOAMIOFPFMNBDBAHHCDKHMCEJOAPBOBMJMFMNJPOKMNPGFENKGAOKCDHIDNNBMILLNIOFBJDGAAOBHLLHMJCKAHPFHOPOEJMCGGOCMDDLOCBLHACAFEFDCNEEEPFDCACIDCDADACAHGDECODBDACJCA 27DATADCDADBDECAFEFDEJCPELFACACACACACACACACACABLHBCAAAEEEJFDELCAEGHCGFGFDKCACACACACACACACACAEGGJGMGFDKANAKEMGPGBGECAELGJGMGMCAEOGBGNGFCAFCGBGNCACAEGHCGNHECAEMGPGHCACACACACACACAENGFGOHFAACAFCEBENCAEGHCGFGFDK 28DATACACACACACACACACACAEGGJGMGFDKANAKFDGBHGGFCAELGJGMGMCAEOGBGNGFCAEEGJHDGLCAEEEPFDCNCACACACACACACACACACACAENGFGOHFAAEJGOHDGFHCHECAEEGJHDGLCMCAFAHCGFHDHDCACCFJCCCAHEGPCAGCGFGHGJGOCAAAEOEPFECAEGEPFCENEBFEFE 29DATAEFEEAAEOGFHHCAEOGBGNGFDKAAFDHJHDHEGFGNCAGOGBGNGFDKAAEEGJHCGFGDHEGPHCHJCAGOGBGNGFDKAAFDGBHGGFCAGBHDDKAAEMGPGBGECAGBHDDKAAFDHFHCGFCADPCAAAEGGJGMGFCAGFHIGJHDHEHDCMCAEBCJHAHAGFGOGECAFCCJGFHAGMGBGDGFCAFBCJ 30DATAHFGJHEDKAAEGGJGMGFCAGFHIGJHDHEHDCMCAFCGFHAGMGBGDGFDPCACIFJCPEOCJDKAACNCOCNCACACACACACACAAABLFJDPDECACACACABLFJDPDOENGLEEHCAABLFJDPDOECGBGOGLAAEPEGEGAAEPEOCAAAABEJMDBGOCMDGGOCMDDLOCODAGCGBBNFPIMNKHDCCD 31DATACDOLDGANCDDGOCCDDGMDCDHDCDHCOBMDNFPIOBCDCDCDOFCBAMOCMJCBKIJMCCAHPFCCAJPFCBKIJMCCDHPFCCDJPFCCBPPFCCCDPFCBAGAJCCFNPFCCGDPFCCGFPFCCGHPFCCGJPFMJMNDLOCCBAMOCCCAHPFCBDCOCCCAJPFCBENOGCCCDPFCBLNOGCCBPPFCBMAOF 32DATACCGJPFCBBAOGCCGHPFCBDBOFCCDHPFCBOFOGCCDJPFCBEKOFCCFNPFCBHIOFCCGDPFCBJGOFCCGFPFMJCBABABDOADDCIKONMDLNOCGHCOAEMDMJOCMNMNOJMNJLOLMNGEOJMDJAOJCCKEONCBKEONMNNDOJMNGEOJMDJAOJCBADAAMNMNOJMNGEOJDKKFONCBKGONPO 33DATAIAMJNFOFMNCDODOBCCHHONOBBBKGONABIAAAMNBGIDOFCKHHONABIAAAAINKBGODMKBGODCCHHONDOIAMNLHOCMDPDOCOBDKHHONMNLHOCCBACAAMDLNOCBBAAAFOLMNNCEEDKMBONJFNKCMOKMKCMOKDKHIONDCIKONCBABABMDLNOCCKIEONMNKIICNKDFOKCKIEON 34DATAOFMNKMOCMNNIOCEPAGAANBMNBGIDNFDKKFONCKHPONEPAGAAAICCHPONNKHAODHNLEMCFAODNBMJDKHPONPOABMIMNEDOLDOFHDCHFONMNNLOEMNEDOLMNJIODCKIGONMNIEOKCCIGONMNPLOEMDHCODDKKLONMNLDODPODFMKKLODCBIAONDEHOPOBEMACBHPONDECD 35DATADGABMJABAAAFPODFMIABEAAAMJCBAIAAMNMNOJMNHOOLMDEDOLCBEGPHBBIKONABAGAAMNBGIDDKHCONKHMCIPOEMNAKOMMCCJOKBBAAAFMNBFOFCBAAABCCHPONMNLNODMNKAOECKGJPGOFAGCIBBEPPHMNHKOENKCGOKHIKHMKCGOKOFBBIKONOLABAJAAMNBGIDOB 36DATAOFBBMCONABBPAAMNBGIDNBNFCBBPAABJOFCKGJPGABAAAFAJMBMFAIODMBMNBGIDCKGJPGAGCHBBMCONMNHKOEOFCKGJPGABPPAEAJOFABBPAAAINBMBMFOFAIOFMBADOBMNCBIDCBMCONNBABBPAAMNBGIDCBABBECCIAONOBOBCCIGONCBAAABCCHPONMNHCODMNHI 37DATAOLMJAOAJMNLMOLMINIHOLHMIMFABBPAAAJMBAFMIMDHKOECBANBJMNMNOJMNGEOJDKKGONKHMCCJOKMJCKIEONMNKOOEDKHPONDNMIMDKDOEOFDOFCDCHFONMNNLOEMNJIODDOANMNAKOKMNKAIPOBMNMAOJHHCDALHJLAMCMDOEMJAGCPNGAKAENCNBOEMGDKEPMJDK 38DATAHPONMNMPOEDKHFONMNAKOKMNIGOLDKIAONMNMPOEDOCMMNAKOKMNIGOLMNHOOLCBKGONOFAOAIMNLKOJANMCABOFOBHOPODAMIPOECMKBIOKMDBCOKCKGJPGOFCCIEONCBMAPPDJMBAINPNKDFOKMJKPDCKDONCBAFAAMDLNOCPODANIPODCNANGDADCHDONCDBNHOPO 39DATADKMACDBNODOBDOAJLHMJNFOFPFKPMNBMOMDIACONHOKHMKGNOFPODKMKGNOFMNDNBBHLPOACNCHDOFDCHDONDIACNJMNMBOIMNFCOMPBOBNBMBMJPOAJMCAGAJNFOFPFKPMNBMOMCBEGPHMNOPOLMKCGOKMNCHOFMNFCOMMDHDOFPOAJMCAGAJNFOFPFKPMNBMOMCBEP 40DATAPHMNOPOLMKCGOKCBIKONBBEPPHABAJAAMNBGIDMNMJODMNFCOMMDHDOFPOAJMAMBOFABEDEPMNJCOGMKCGOKMNKMOCCKLPONHNGMGHCCHPONMNNIOCMNKCDCOFMNAJDDCKPLPEOFOFCKLEOOODMBAINKDFOKCKPNPEAJABANOCAINCAGAJNBOBDKKFONNGAGEPAGAAMN 41DATAFHODMNFCOMMDIKDCPOAJMAMNLDDAABEDEPMNJCOGMCCJOKDOABDCHIONCKPNPEABAGAAMFAJOFMNCDODOBCCHHONMBCBPLPEBBKGONMNBGIDCKKGONABHKAAMNPKOCMNFCOMMDCMAFPOAJMAMBPBPFMFMIJPDCEFPHABECEBMNJCOGMKCGOKCKLPONEMEFGAGJCCHPON 42DATAMNBMCMCDCCIEONCKHPONOFOFMBMNEAODNBCKGBPGBJCCGBPGCKAFPFBJCCAFPFMNFCOMKPMDGFDBPFOFNFMFCKEMPHBBCACANPMKKMOGNBNFNPMKKMOGMBNBOBPBMBMJOBCCEMPHNBOBPBKPMNBMOMCBEGPHMDOPOLPOAJMAABECEBMNJCOGMCCJOKMNBLAGCKGHOPOL 43DATANPMKCNAFNFMBAIDOABDCHIONMNOKOCMNFCOMMDCNAFPFKPDCHEONPBCCGOONNFOFPFBBAEAABJHOPOAJMKPPOGPBOBNBMJPBPFPOAAMKCDOHPOACMKKNOHPOAEMKGPOIPOAGMKMKOHPOAIMCPLOGDIAGCBEJBHNJMDPLOGKPMNBMOMCBEMPHHOPOCAMKDFOHPOEEMCDI 44DATAOKDGEECDDGEPCBEGPHMNOPOLEPMNBKOIDGAAOBOBNBNFOFFBHLOGAHCBHMOMEPAGAAAJHODNMKJCOHDNMCKFOHDKLOONKHMCGIOHCDCDHODCIKONCBABABMNLNOCCKGOONBBAHAABJKPHHCDFEFNCDCDNJOBNBHLPOAIMCILOHBOACHDODCBPFBFODMJHKLHMKGIOHOF 45DATAMNCHOFCBEGPHMNOPOLOBMDGIOHHKLHMKCGOKMDGIOHPBOBNBOFHODGAAPOACMMJKOICBACAAMNLNOCMNFCOMOBODOBCBBIFMOFMJMNBKOIHODGAAKHMCOKOHCKGOONABAHAAAJHOCDOFKHMMCCOINBONHOCDNJBLOLDFPOBKDHDPMCPGOHMNBKOIHHDHPFDIBAONABAJ 46DATABKAIMCBAOIMNBKOIPBHHEPJPMNFLEBDIBCOLPJMJPBOBOBNBODCBEGFNODMJCKNBPEBBMAPEBJMJCBADAAMNMNOJMNGEOJDKKEONPOBAMCFNOIDKKFONCKGOONBBAIAABJOFFEFNCDCDNJBBKGONOLEPAGAAMNBGIDDKKFONPOIAMKFJOIOLDGBKDMOBCLHHMJCKGOON 47DATABBAHAABJDGABCDFEFNCDCDNJDGBKMJCKGOONBBAHAABJHOPOIAMMJKOIPBOBNBOBPBPFPOBKMKJFOICKGOONBBAHAABJDECDOLONHHCDNJCBABBGOFMJCKGOONABAHAAAJHOOFCDCDCDBBKGONEPAGAAPFMNBGIDPBKHMELHOCOBDGAACDFEFNCDCDNJMJPBMJCBHAOP 48DATACCHNONMNPMOIMCBFOKKPDCHMONDCHGONDMDCAHOPMNAJOJDKHIONPOCOMMGJOKCBHGONDEMNAJOJMNDOEPMNLAOLMNALEHCBFPOMMNMMBBMDDOEPKPDCHIONMNOOOKCBEGABMDDGOJDOCODCHJONDKHCONKHMCBOOJCBPGACMNDGOJMCJAOJDKKGONKHMIDKHMONKHMM 49DATAEIOJCBHIONDEDKHJONLOMCBFOJMJCCKCONCBAABKMNMNOJMNGEOJDKKEONPOBBMJAOAJCBKGONMNJAOKDOCAOHCKLPONFMFFCKHNONOLNJOLCDCDCCHNONMJCBKEONOFMNLKOJMNLKOJEPMNLKOJEBHJKHMKHPOJMNLKOJANMCHIOJOBAEAEKPDAIGCDAFMCIEOJCPLO 50DATAMCBFOKMJDKKEONPOBCMCBFOKDKKGONKHMIPOBAMKCJOKPOFAMKBIOKPOGAMKCMOKNKBFOKMKBOOKPOIANKBOOKMDBLOKMNMAOJHHCDMJMNANOKMNBJIFNKDIOKMCBFOKMJCCIIONCBIIONOFDKHDONKHMKOCOJOGABBPBPBPLGHHHOCDIGEHHOPFCDKHMKPGOJEPHIIG 51DATACDANMCOPOJEHHICPFHABFKFKMNIGOLMBEIAGAAADADOBMNIEOKHKMNEDIGNLMPOGIAMADOABCBDOACCBDOADCBDOAECBDOAFCBHLONDGAACBDOAGCBDOAHCBDOAICBDOAJCBDOAKCBDOALCBDOAMCBDOANCBJKOMEPANMKEPOKHOCDPOAAMCEFOKMDEBOKDKHEONKHMK 52DATAHLOKDOAHOHCDMNJPOKMNHCOKCKGOONPJCKHAONOFMJMNDOEPMNHCOKMDDOEPCBFDONMNMMBBMDPHBCFOCKGOONDGAAMDIIAEHOMNAKOKCDALHJLAMCIEOKMJHOPOCANCJIOKDOCAOHCDANMCJAOKMJOFCBBAABCCAGOPMNHMEPOBMDMMBBOFDOCACBEGPHAGAIMNMMOL 53DATAOBBBEGPHAGAGHOPOEBNKDLOKHOPOCOMKNGOKLHMIBCCDBDAFMCMEOKMDNOOKDOCABCBDAFMCNIOKAGACCDHOLHMIBCBDAFMCOAOKDOAABCMJMNCMOMMNENOLMNGEOJMNJAOJDKHCONKHMICBAIAAMNMNOJMNGEOJDKKFONPOABMKCCOLDNEPDOACDCHCONAGAACBKHON 54DATABBGDONMDBGIDCBCDAAMNMNOJMNGEOJCBHPOMMNDKOLCBIIOMMNDKOLCBJBOMABAJAAMNIEOKMDGEOJMNAIIFMIMNMAOJMDEDOLMNANOKMNHIOLMNEDOLMNLNODMNHOOLMNAIIFDOAAMCGFOLDMDCHCONMNEDOLMNHIOLMNEDOLCBAHAAMNMNOJMJABDBENMNIGOLDOAN 55DATAMNAKOKMDIOOLHIMNAKOKHJMDAKOKCGBECOPPCNMCJCOLCFMCJAOLMJABFAPPMNIOOLMNAIIFMAAFMCJOOLANMCJOOLMDBCOKDKMBONGPCGAABBIAAAMDHJEENFOFBKJGMCMJOLCDBDANMCLOOLOBNBMJHHCDAFMCMMOLMJDOCAAGBICBIKONMNMMOLDOEGDCKCONMJCK 56DATAIGONMNKNOKMNGCCMMDMMCLOFMNNDOLOBBBIKONABAGAAMNBGIDDOCOBCBDABACAAMNBGIDMNOOOKKPDCKDONCBAABKMNMNOJMNGEOJDKLOONKHMJDCHEONBBHEOMCBDMOPABAHAAMNBGIDMJMNLFIHCBGMOMDGDJDHMNBNBJMNEDOLMNENOLMNIOOLMNAIIFMCEDOLMN 57DATALFIHCBGMOMDFDHMDBNBJCBHEOMHONGDKNKBNBJCDMDBNBJDACAECHJHEGFHDCAGGHCGFGFAADJDIEODBEEEOEOAAENDHEJDBEFEOEOAAACADABFKFKDBAEABAAIEPPEGFKFKDBAEABAAJGAPCEFKFKDBAEABAAJEAPCGBCEEHCGJHGGFCAEOGPHECAFCGFGBGEHJAABC 58DATAEDGPGNGNHFGOGJGDGBHEGJGPGOCAEFHCHCGPHCAABCFHHCGJHEGFCAFAHCGPHEGFGDHEAABCEEHCGJHGGFCAFEHCGPHFGCGMGFAABCEEGJHDGLCAGOGPHECAGJGOCAGEHCGJHGGFAADEFAHCGJGOHEGFHCCAGOGPHECAHCGFGBGEHJAAAFEGGJGMGFCAEFHIGJHDHEHD 59DATAAADJEEGJHDGLCAEGHFGMGMAABKEGGJGMGFCAEFGNHAHEHJAADJEEGJHCGFGDHEGPHCHJCAEGHFGMGMAAAHFCGBGNCAEGHFGMGMAADGAADHECGBGECAEGGJGMGFCAEOGBGNGFAACAFAHCGFHDHDCAGBGOHJCAGLGFHJCOAA 60DATAEND \ No newline at end of file +0'TS-DOS Loader V1.01 9/21/2017 Kurt McCullum - 2022 b.kenyon.w@gmail.com 0CLEAR256,55189:S=55189:Y=S:C$="TS-DOS":D$="TMP.DO":?"Installing "+C$ 1TL$="":READTL$:IFTL$="END"THEN3 2FORX=1TOLEN(TL$)STEP2:TV=((ASC(MID$(TL$,X,1))-65)*16)+(ASC(MID$(TL$,X+1,1))-65):POKEY,TV:Y=Y+1:NEXT:?".";:GOTO1 3?"Done":OPEND$FOROUTPUTAS#1:?#1,"0 CALL";S;":MENU":CLOSE#1:CLS:?"Please Type:":?"KILL "+CHR$(34)+D$+CHR$(34):?"SAVE "+CHR$(34)+C$+CHR$(34):?"MENU":LOADD$ 4DATAMDKANHDCHMONKPDCHIONMJMMGGOCCBAAAADJCCGOONDOABMNBMOMKPDCHGONDCHMONDCHLONDCHDONDMDCALOCCBMJNHCCHAONMNENEPMNGDEPCBDCOKCCDEOPMNIANIDKHHONDCALOCMNJONICBGAOKOFPFPOACNCCENIDKGNONKHMKCENIDKHIONEPAMAGAAMFDK 5DATAALOCDCHHONMNOLNMMBAEANMKGAOKHIDCHHONDCALOCMFMNNJNMCKIGONCLHOPODOMCPHNHMBPBCBPHNHPFMFOFPFMNFOEPDKHLONLHMKENNIPBKHMKEMNNDNMKJNNPDNMKMFNPDNDNMKHNNPDNDNMKCKNPDNOBMKGJNIMDMJNHPBKHMKHFNODNMKEGNODNMKBGNNDNDN 6DATAMKGOOADNDNDNOBMKGJNIMDMJNHMNFCOMMNLFIHMNENEPMNGDEPCBAAAACCDEOPCKGOONPJMJCBABABCCAGOPCBHKOAMNMMBBKPDCGNONDOABDCHHONCBACACCCAGOPMDIHNKDKALOCDCHHONMNNJNMDKHHONDNDHDPAHFPBGAACBHAOPBJOLCBAPCDCCAGOPMNHMEPON 7DATAMNIIEPMNALEHMNINEPMNCEOAMNADILMKMJNINKFINKPOANMKIMNJPOBHMKPGNJPOBEMKOENJPOFNMKOENJPODPMKMDNJPOACMKMDNJPOBOMKFINJPOBPMKGGNJPOBNMKEHNJPOBMMKDENJPOCAMKDENJOGNPPOFEMKDKNKPOEBMKHPNJPOEHMKHPNJPOFFMKPKNJPOEE 8DATAMKAFNMPOEMMKAONMPOFAMKAONMMDMJNIDOABCBHHONIGCDLONKHENJMKHENJDOABMDHENJDKHHONDNMCHENJDKHIONKHMKMJNIMDHENJDKHHONNGAENKMJNIMKMJNIMDHENJDOAECBHHONIGEPCDHOLJNKMJNIHJPFMNOLNMPBDCALOCMDJONIDODOMNBGNKDOACDCGN 9DATAONMDJONIDKHCONPOACMCMJNICKIGONABAHAAAJHOPODMMCMJNIMNNDOLCKIGONMNLLNPMNKMOCCBACAAMNLNOCCKIGONBBGDONABAJAAMNBGIDKPMDNGNJDKHLONKHMKMJNIDKHIONPOCONKMJNIDKHGONDMDCHGONDOABDCALOCMNIANIMDJONIDKHLONKHMKMJNIDK 10DATAHGONKHMKMJNIDNMDNGNJKPMDNGNJDOCAMNBGNKKPDCGNONMDJONIDKHCONDNMCMJNIDKHDONOOABDCHDONMJDCGNONDKHIONKHMIKPDMDCHHONMNPENMCKIGONCLDKGNONOHDKHHONCBHIONLONKBPNKKHMJMNPENMMNIIEPCKIGONCLDODOLOMCEMNKDOCAOHMNINEP 11DATACBGNONDGACMDDENJPOAINCMJNIPOAFMKHPNKPOADMADKHLONOOABDCHLONKPDCHGONDOABDCALOCMNENEPMNIANIMDJONIDKHLONKHMIMDPGNJCBHAOPCCHNONKPHHCDHHDKHLONKHMKKJNLKPDCHMONMNPMOIMCFLNLDKHGONKHMKLNNKMNJINHMNAJOJDKHMONDNMC 12DATAKJNKKPDCHMONDCHIONMNAJOJDKHIONPOCONMPGNLDKHCONKHMKOLNKDNMKNJNKCBGDONMDPBNKCBABCECCAGOPMNIIEPDOCDOHDKHDONMGDAOHMNINEPMDAENLOFCBABCBCCAGOPMNIIEPOBAOAGMNJAOKMNINEPCBKIOAABICNLDKHLONKHMCBHNLCBOKOAABGONLMF 13DATAOFDKALOCCBHIONLONKCJNLHOKHMCCJNLDMDCHHONCBAPALCCAGOPOBMNMMBBDKHLONKHMKFBNLDKHCONKHMKFBNLCBPKOBDNMKEONLCBOJOBMNMMBBMNIMNLCBAPBFCCAGOPMJKPMNPGNLCBKIOAABGINLMDBHNLCBENOBMDMMBBCKGFPGOLCKGDOPHNJDGPHMJKGHAB 14DATAPCPPAJMDALEHMNLAOLMNALEHDODAOHMJDKHLONKHMADKFNPFBBADOCPOAGMKJPNLBBAHOCCBBABJCCAGOPOLMDMMBBCBLFPCKPDCHIONDOCODNPFHOOOIAOGJPMCOCNLOFCDFOCDFGODOFMNPNNOOLMNFIOJOBODCDAOAGMNJAOKDOCOOHAOACMNJAOKDOCAOHCBHION 15DATADEOBBBALAABJPBDNMCLDNLDKHIONPOCONMPGNLMDMINKPFCBNOOBMNMMBBPBDMPOCOMCPGNLMJMNMPNMMNEGCJMDJONIDCIBONBBAHAACKIGONBJHOPOEEMCJONIMNHANMDKIBONPOEMMMENEPMEMPNMMNELNMPFMNJCNMPBMKCMNMDKIBONPOEMMCEFNMDOAHOHMNBO 16DATAOAMNENEPMDGAOKDKHLONKHMCNIOCCKHPONABIAAAHJAINCGBNMAJHNGMEPCCHPONCKICONOFAJCCICONOBPOIAMJMNNDOLCKIGONDKHLONKHMCIMNMMNODOLNFMNPNNOCCHPONOBCCICONMJMNLLNPMDKMOCOLLHMIEPDKIBONPOEMMCKJNMMNLGNMBKOHBDANMCJONM 17DATAMJMNLGNMBKMNBEFKBDANMCKJNMMJMNAEBEMIMNPHBCPOADMKEFNMPOBLMKEFNMPOCAMCLGNMMDPHBCNLLLOGAGOOACMCCGOKMJMNPENMCCIGONMNIIEPCLAOAKMNJAOKMDINEPMNINEPMNPENMMDOCNMDKHHONDNFPBGAACBAEAAMNNCEECDCDOFCBAFAAMNHJEENBFF 18DATAOLCECCAGOPMNIKFDCDMJMNODOLCCICONCBFLOBMNEAOAMIMNKNOKCKICONABAJAAAJBBEMPHHOBCBDCDHOBCMNOJOLMCCJOKCKICONCDCDCDBBEGPHABAGAAOLMDBGIDMNNDOLCKIGONMNLLNPDKGNONKHMCHENNCBILOBMNEAOAMKHENNMNKNOKABACAACBJBONBBEM 19DATAPHMNBGIDMNOJOLMKIHNNCBMBOBMNJPOKMNBEOAMAMNEPNOCKLPONHMGFGPCCLPONDKJBONPOEEMCKANNCKGBPGDOMAMDMBNNPOEDMCLDNNCKGDPGCCHHONCKGFPGDOKAMDMBNNCKLPONCCHHONCKJFPCCCICONDOIADCIBONCCIEONCKLPONCCHPONOFMBDKIBONPOKA 20DATAMKNONNADPOIAMCNONNADMFMNABCMMBOFMFCKIEONMNKIICNKDFOKCKIEONMBDGAACDALHJLAMCPCNNCLNBDKIBONPOMAMCAONODGBKCKIEONCLMDDGNOPOKAMCBPNOCKHHONCCGDPGCKIEONMDDGNONFCKGBPGCLCCJFPCCDOLCKHHONCDCDBJCCGBPGNBCKICONOLMN 21DATAKMCNMNEJODMNGCCMCBACAAMDLNOCMNGCNOCKIGONMNKNOKMNOJOLPOMAMKLFCKPOKAMKMOCKPOIAMKAMCLMJDKGNONDNMIMNAHOADKGNONKHMIDOABDCGNONMJMNNDOLMNODOLNFOFCDCDCDBBIKONABAGAAMNBGIDDOCOBCBDABACAAMNBGIDDKGNONKHMCLCNOCBIC 22DATAOBMNEAOAMKLCNOMNKNOKABAGAABBIKONCBEGPHMNBGIDOBNBNFMNPNNOHMLFMKCPOKOFDOABDCHIONMNOOOKMNAKOMMKPINOCBJMOBMNJPOKMNBOOAOGNPOHPOFCMCOGNOMNCHOFMNAKOMMDPINOOBNBPOEBMADKJBONPOEEMADOACDCHIONNFOFOBNBMDOKOCHOPOMA 23DATAMKBANPPOKAMKBPNPNFMNBPAGMBAICLMJOLBBAAAAHOCDBDPOBKMCBENPBLOLMJOLCDCDEOCDEGCBAGAAAJMJDKHCONKHMIDNMKAGNKMNNDOLCBHCOBMNEAOAMIMNKNOKCBEGPHBBIKONABAGAAMNBGIDCBDMDOCCJBONDOCODCJAONMNOOOKDKHCONPOACMAMNAKOMMC 24DATAHHNPDOABDCIKONCBABABMNLNOCCBACAAMDLNOCMNKMOCMDHBNPDKHCONPOACMICBCMOBMNJPOKMNBEOAMAMNOOOKMNIOOLCBAGAAMNLNOCDOAHOHMJMNGCNOMNNDOLMNKJNPMDCHOFABAJAACKIGONBBIKONMNBGIDMNOOOKMDAKOMMNKNOKCBEGPHMNOPOLMJMNNDOL 25DATAMNKJNPCBIKONBBEPPHABAJAAMNBGIDCKLPONEMEFCBMAHHAICBFLOBMCPNNPABAJAAMNEDOAMIOFPFMNNDOLPBOBBBIKONEPAGAAMDNCODMNEAOAMIMNKNOKMDMJODCBJEOBMNJPOKMNBEOAMCGAOKMJMNBOOAOHPOFJMIPOHJMJMNCEOAMDPHBCKPDNDCDHOPMNAEBE 26DATAMKCEOAKPDCDHOPCBCCPCLGMKJHCGMNNOBDMDCEOAABAGAAMNFFOAMIOFPFMNBDBAHHCDKHMCEJOAPBOBMJMFMNJPOKMNPGFENKGAOKCDHIDNNBMILLNIOFBJDGAAOBHLLHMJCKAHPFHOPOEJMCGGOCMDDLOCBLHACAFEFDCNEEEPFDCACIDCDADACAHGDECODBDACJCA 27DATADCDADBDECAFEFDEJCPELFACACACACACACACACACABLHBCAAAEEEJFDELCAEGHCGFGFDKCACACACACACACACACAEGGJGMGFDKANAKEMGPGBGECAELGJGMGMCAEOGBGNGFCAFCGBGNCACAEGHCGNHECAEMGPGHCACACACACACACAENGFGOHFAACAFCEBENCAEGHCGFGFDK 28DATACACACACACACACACACAEGGJGMGFDKANAKFDGBHGGFCAELGJGMGMCAEOGBGNGFCAEEGJHDGLCAEEEPFDCNCACACACACACACACACACACAENGFGOHFAAEJGOHDGFHCHECAEEGJHDGLCMCAFAHCGFHDHDCACCFJCCCAHEGPCAGCGFGHGJGOCAAAEOEPFECAEGEPFCENEBFEFE 29DATAEFEEAAEOGFHHCAEOGBGNGFDKAAFDHJHDHEGFGNCAGOGBGNGFDKAAEEGJHCGFGDHEGPHCHJCAGOGBGNGFDKAAFDGBHGGFCAGBHDDKAAEMGPGBGECAGBHDDKAAFDHFHCGFCADPCAAAEGGJGMGFCAGFHIGJHDHEHDCMCAEBCJHAHAGFGOGECAFCCJGFHAGMGBGDGFCAFBCJ 30DATAHFGJHEDKAAEGGJGMGFCAGFHIGJHDHEHDCMCAFCGFHAGMGBGDGFDPCACIFJCPEOCJDKAACNCOCNCACACACACACACAAABLFJDPDECACACACABLFJDPDOENGLEEHCAABLFJDPDOECGBGOGLAAEPEGEGAAEPEOCAAAABEJMDBGOCMDGGOCMDDLOCODAGCGBBNFPIMNKHDCCD 31DATACDOLDGANCDDGOCCDDGMDCDHDCDHCOBMDNFPIOBCDCDCDOFCBAMOCMJCBKIJMCCAHPFCCAJPFCBKIJMCCDHPFCCDJPFCCBPPFCCCDPFCBAGAJCCFNPFCCGDPFCCGFPFCCGHPFCCGJPFMJMNDLOCCBAMOCCCAHPFCBDCOCCCAJPFCBENOGCCCDPFCBLNOGCCBPPFCBMAOF 32DATACCGJPFCBBAOGCCGHPFCBDBOFCCDHPFCBOFOGCCDJPFCBEKOFCCFNPFCBHIOFCCGDPFCBJGOFCCGFPFMJCBABABDOADDCIKONMDLNOCGHCOAEMDMJOCMNMNOJMNJLOLMNGEOJMDJAOJCCKEONCBKEONMNNDOJMNGEOJMDJAOJCBADAAMNMNOJMNGEOJDKKFONCBKGONPO 33DATAIAMJNFOFMNCDODOBCCHHONOBBBKGONABIAAAMNBGIDOFCKHHONABIAAAAINKBGODMKBGODCCHHONDOIAMNLHOCMDPDOCOBDKHHONMNLHOCCBACAAMDLNOCBBAAAFOLMNNCEEDKMBONJFNKCMOKMKCMOKDKHIONDCIKONCBABABMDLNOCCKIEONMNKIICNKDFOKCKIEON 34DATAOFMNKMOCMNNIOCEPAGAANBMNBGIDNFDKKFONCKHPONEPAGAAAICCHPONNKHAODHNLEMCFAODNBMJDKHPONPOABMIMNEDOLDOFHDCHFONMNNLOEMNEDOLMNJIODCKIGONMNIEOKCCIGONMNPLOEMDHCODDKKLONMNLDODPODFMKKLODCBIAONDEHOPOBEMACBHPONDECD 35DATADGABMJABAAAFPODFMIABEAAAMJCBAIAAMNMNOJMNHOOLMDEDOLCBEGPHBBIKONABAGAAMNBGIDDKHCONKHMCIPOEMNAKOMMCCJOKBBAAAFMNBFOFCBAAABCCHPONMNLNODMNKAOECKGJPGOFAGCIBBEPPHMNHKOENKCGOKHIKHMKCGOKOFBBIKONOLABAJAAMNBGIDOB 36DATAOFBBMCONABBPAAMNBGIDNBNFCBBPAABJOFCKGJPGABAAAFAJMBMFAIODMBMNBGIDCKGJPGAGCHBBMCONMNHKOEOFCKGJPGABPPAEAJOFABBPAAAINBMBMFOFAIOFMBADOBMNCBIDCBMCONNBABBPAAMNBGIDCBABBECCIAONOBOBCCIGONCBAAABCCHPONMNHCODMNHI 37DATAOLMJAOAJMNLMOLMINIHOLHMIMFABBPAAAJMBAFMIMDHKOECBANBJMNMNOJMNGEOJDKKGONKHMCCJOKMJCKIEONMNKOOEDKHPONDNMIMDKDOEOFDOFCDCHFONMNNLOEMNJIODDOANMNAKOKMNKAIPOBMNMAOJHHCDALHJLAMCMDOEMJAGCPNGAKAENCNBOEMGDKEPMJDK 38DATAHPONMNMPOEDKHFONMNAKOKMNIGOLDKIAONMNMPOEDOCMMNAKOKMNIGOLMNHOOLCBKGONOFAOAIMNLKOJANMCABOFOBHOPODAMIPOECMKBIOKMDBCOKCKGJPGOFCCIEONCBMAPPDJMBAINPNKDFOKMJKPDCKDONCBAFAAMDLNOCPODANIPODCNANGDADCHDONCDBNHOPO 39DATADKMACDBNODOBDOAJLHMJNFOFPFKPMNBMOMDIACONHOKHMKGNOFPODKMKGNOFMNDNBBHLPOACNCHDOFDCHDONDIACNJMNMBOIMNFCOMPBOBNBMBMJPOAJMCAGAJNFOFPFKPMNBMOMCBEGPHMNOPOLMKCGOKMNCHOFMNFCOMMDHDOFPOAJMCAGAJNFOFPFKPMNBMOMCBEP 40DATAPHMNOPOLMKCGOKCBIKONBBEPPHABAJAAMNBGIDMNMJODMNFCOMMDHDOFPOAJMAMBOFABEDEPMNJCOGMKCGOKMNKMOCCKLPONHNGMGHCCHPONMNNIOCMNKCDCOFMNAJDDCKPLPEOFOFCKLEOOODMBAINKDFOKCKPNPEAJABANOCAINCAGAJNBOBDKKFONNGAGEPAGAAMN 41DATAFHODMNFCOMMDIKDCPOAJMAMNLDDAABEDEPMNJCOGMCCJOKDOABDCHIONCKPNPEABAGAAMFAJOFMNCDODOBCCHHONMBCBPLPEBBKGONMNBGIDCKKGONABHKAAMNPKOCMNFCOMMDCMAFPOAJMAMBPBPFMFMIJPDCEFPHABECEBMNJCOGMKCGOKCKLPONEMEFGAGJCCHPON 42DATAMNBMCMCDCCIEONCKHPONOFOFMBMNEAODNBCKGBPGBJCCGBPGCKAFPFBJCCAFPFMNFCOMKPMDGFDBPFOFNFMFCKEMPHBBCACANPMKKMOGNBNFNPMKKMOGMBNBOBPBMBMJOBCCEMPHNBOBPBKPMNBMOMCBEGPHMDOPOLPOAJMAABECEBMNJCOGMCCJOKMNBLAGCKGHOPOL 43DATANPMKCNAFNFMBAIDOABDCHIONMNOKOCMNFCOMMDCNAFPFKPDCHEONPBCCGOONNFOFPFBBAEAABJHOPOAJMKPPOGPBOBNBMJPBPFPOAAMKCDOHPOACMKKNOHPOAEMKGPOIPOAGMKMKOHPOAIMCPLOGDIAGCBEJBHNJMDPLOGKPMNBMOMCBEMPHHOPOCAMKDFOHPOEEMCDI 44DATAOKDGEECDDGEPCBEGPHMNOPOLEPMNBKOIDGAAOBOBNBNFOFFBHLOGAHCBHMOMEPAGAAAJHODNMKJCOHDNMCKFOHDKLOONKHMCGIOHCDCDHODCIKONCBABABMNLNOCCKGOONBBAHAABJKPHHCDFEFNCDCDNJOBNBHLPOAIMCILOHBOACHDODCBPFBFODMJHKLHMKGIOHOF 45DATAMNCHOFCBEGPHMNOPOLOBMDGIOHHKLHMKCGOKMDGIOHPBOBNBOFHODGAAPOACMMJKOICBACAAMNLNOCMNFCOMOBODOBCBBIFMOFMJMNBKOIHODGAAKHMCOKOHCKGOONABAHAAAJHOCDOFKHMMCCOINBONHOCDNJBLOLDFPOBKDHDPMCPGOHMNBKOIHHDHPFDIBAONABAJ 46DATABKAIMCBAOIMNBKOIPBHHEPJPMNFLEBDIBCOLPJMJPBOBOBNBODCBEGFNODMJCKNBPEBBMAPEBJMJCBADAAMNMNOJMNGEOJDKKEONPOBAMCFNOIDKKFONCKGOONBBAIAABJOFFEFNCDCDNJBBKGONOLEPAGAAMNBGIDDKKFONPOIAMKFJOIOLDGBKDMOBCLHHMJCKGOON 47DATABBAHAABJDGABCDFEFNCDCDNJDGBKMJCKGOONBBAHAABJHOPOIAMMJKOIPBOBNBOBPBPFPOBKMKJFOICKGOONBBAHAABJDECDOLONHHCDNJCBABBGOFMJCKGOONABAHAAAJHOOFCDCDCDBBKGONEPAGAAPFMNBGIDPBKHMELHOCOBDGAACDFEFNCDCDNJMJPBMJCBHAOP 48DATACCHNONMNPMOIMCBFOKKPDCHMONDCHGONDMDCAHOPMNAJOJDKHIONPOCOMMGJOKCBHGONDEMNAJOJMNDOEPMNLAOLMNALEHCBFPOMMNMMBBMDDOEPKPDCHIONMNOOOKCBEGABMDDGOJDOCODCHJONDKHCONKHMCBOOJCBPGACMNDGOJMCJAOJDKKGONKHMIDKHMONKHMM 49DATAEIOJCBHIONDEDKHJONLOMCBFOJMJCCKCONCBAABKMNMNOJMNGEOJDKKEONPOBBMJAOAJCBKGONMNJAOKDOCAOHCKLPONFMFFCKHNONOLNJOLCDCDCCHNONMJCBKEONOFMNLKOJMNLKOJEPMNLKOJEBHJKHMKHPOJMNLKOJANMCHIOJOBAEAEKPDAIGCDAFMCIEOJCPLO 50DATAMCBFOKMJDKKEONPOBCMCBFOKDKKGONKHMIPOBAMKCJOKPOFAMKBIOKPOGAMKCMOKNKBFOKMKBOOKPOIANKBOOKMDBLOKMNMAOJHHCDMJMNANOKMNBJIFNKDIOKMCBFOKMJCCIIONCBIIONOFDKHDONKHMKOCOJOGABBPBPBPLGHHHOCDIGEHHOPFCDKHMKPGOJEPHIIG 51DATACDANMCOPOJEHHICPFHABFKFKMNIGOLMBEIAGAAADADOBMNIEOKHKMNEDIGNLMPOGIAMADOABCBDOACCBDOADCBDOAECBDOAFCBHLONDGAACBDOAGCBDOAHCBDOAICBDOAJCBDOAKCBDOALCBDOAMCBDOANCBJKOMEPANMKEPOKHOCDPOAAMCEFOKMDEBOKDKHEONKHMK 52DATAHLOKDOAHOHCDMNJPOKMNHCOKCKGOONPJCKHAONOFMJMNDOEPMNHCOKMDDOEPCBFDONMNMMBBMDPHBCFOCKGOONDGAAMDIIAEHOMNAKOKCDALHJLAMCIEOKMJHOPOCANCJIOKDOCAOHCDANMCJAOKMJOFCBBAABCCAGOPMNHMEPOBMDMMBBOFDOCACBEGPHAGAIMNMMOL 53DATAOBBBEGPHAGAGHOPOEBNKDLOKHOPOCOMKNGOKLHMIBCCDBDAFMCMEOKMDNOOKDOCABCBDAFMCNIOKAGACCDHOLHMIBCBDAFMCOAOKDOAABCMJMNCMOMMNENOLMNGEOJMNJAOJDKHCONKHMICBAIAAMNMNOJMNGEOJDKKFONPOABMKCCOLDNEPDOACDCHCONAGAACBKHON 54DATABBGDONMDBGIDCBCDAAMNMNOJMNGEOJCBHPOMMNDKOLCBIIOMMNDKOLCBJBOMABAJAAMNIEOKMDGEOJMNAIIFMIMNMAOJMDEDOLMNANOKMNHIOLMNEDOLMNLNODMNHOOLMNAIIFDOAAMCGFOLDMDCHCONMNEDOLMNHIOLMNEDOLCBAHAAMNMNOJMJABDBENMNIGOLDOAN 55DATAMNAKOKMDIOOLHIMNAKOKHJMDAKOKCGBECOPPCNMCJCOLCFMCJAOLMJABFAPPMNIOOLMNAIIFMAAFMCJOOLANMCJOOLMDBCOKDKMBONGPCGAABBIAAAMDHJEENFOFBKJGMCMJOLCDBDANMCLOOLOBNBMJHHCDAFMCMMOLMJDOCAAGBICBIKONMNMMOLDOEGDCKCONMJCK 56DATAIGONMNKNOKMNGCCMMDMMCLOFMNNDOLOBBBIKONABAGAAMNBGIDDOCOBCBDABACAAMNBGIDMNOOOKKPDCKDONCBAABKMNMNOJMNGEOJDKLOONKHMJDCHEONBBHEOMCBDMOPABAHAAMNBGIDMJMNLFIHCBGMOMDGDJDHMNBNBJMNEDOLMNENOLMNIOOLMNAIIFMCEDOLMN 57DATALFIHCBGMOMDFDHMDBNBJCBHEOMHONGDKNKBNBJCDMDBNBJDACAECHJHEGFHDCAGGHCGFGFAADJDIEODBEEEOEOAAENDHEJDBEFEOEOAAACADABFKFKDBAEABAAIEPPEGFKFKDBAEABAAJGAPCEFKFKDBAEABAAJEAPCGBCEEHCGJHGGFCAEOGPHECAFCGFGBGEHJAABC 58DATAEDGPGNGNHFGOGJGDGBHEGJGPGOCAEFHCHCGPHCAABCFHHCGJHEGFCAFAHCGPHEGFGDHEAABCEEHCGJHGGFCAFEHCGPHFGCGMGFAABCEEGJHDGLCAGOGPHECAGJGOCAGEHCGJHGGFAADEFAHCGJGOHEGFHCCAGOGPHECAHCGFGBGEHJAAAFEGGJGMGFCAEFHIGJHDHEHD 59DATAAADJEEGJHDGLCAEGHFGMGMAABKEGGJGMGFCAEFGNHAHEHJAADJEEGJHCGFGDHEGPHCHJCAEGHFGMGMAAAHFCGBGNCAEGHFGMGMAADGAADHECGBGECAEGGJGMGFCAEOGBGNGFAACAFAHCGFHDHDCAGBGOHJCAGLGFHJCOAA 60DATAEND \ No newline at end of file diff --git a/dl.c b/dl.c index 3e99091..775bcc5 100644 --- a/dl.c +++ b/dl.c @@ -114,8 +114,13 @@ MA 02111, USA. #define DEFAULT_CLIENT_BAUD B19200 #endif -#define DEFAULT_BASIC_BYTE_MS 6 -#define DEFAULT_TPDD_FILE_ATTRIB 0x46 // F +// most things get away with 5 here. +// rxcini.do for REXCPM setup, requires 6. +// new high-water mark: TS-DOS.200 requires 7. +// If this is 6, a "?" (print) on line 3 gets dropped every time. +#define DEFAULT_BASIC_BYTE_MS 7 + +#define DEFAULT_TPDD_FILE_ATTR 0x46 // F // These defaults are the same as what the original Desk-Link does. // But you can change them to pretty much anything. The parent label is @@ -266,7 +271,7 @@ int BASIC_byte_us = DEFAULT_BASIC_BYTE_MS*1000; char dme_root_label[7] = DEFAULT_DME_ROOT_LABEL; char dme_parent_label[7] = DEFAULT_DME_PARENT_LABEL; char dme_dir_label[3] = DEFAULT_DME_DIR_LABEL; -char default_attrib = DEFAULT_TPDD_FILE_ATTRIB; +char default_attr = DEFAULT_TPDD_FILE_ATTR; bool enable_ur2_dos_hack = true; bool getty_mode = false; bool bootstrap_mode = false; @@ -565,8 +570,8 @@ int ret_dirent(FILE_ENTRY *ep) gb[i+2]=(ep->client_fname[i])?ep->client_fname[i]:' '; else memcpy (gb+2,ep->client_fname,TPDD_FILENAME_LEN); - // attrib - gb[26] = default_attrib; + // attribute + gb[26] = default_attr; // size gb[27]=(uint8_t)(ep->len >> 0x08); // most significant byte @@ -588,7 +593,7 @@ void dirent_set_name(unsigned char *b) { int f = 0; if (b[2]) { dbg(3,"filename: \"%-24.24s\"\n",b+2); - dbg(3," attrib: \"%c\" (%1$02X)\n",b[26]); + dbg(3," attr: \"%c\" (%1$02X)\n",b[26]); } // we must update before every set-name for at least 2 reasons // 1 - get-first is not required before set-name @@ -637,12 +642,12 @@ void dirent_get_first() { // b[0] = cmd // b[1] = len // b[2]-b[25] = filename -// b[26] = attrib +// b[26] = attr // b[27] = action (search form) // // Don't even look at the data yet except the action byte. // TS-DOS submits get-first & get-next requests with junk data -// in the filename & attrib fields left over from previous actions. +// in the filename & attribute fields left over from previous actions. int req_dirent(unsigned char *b) { dbg(2,"%s(%s)\n",__func__, b[27]==DIRENT_SET_NAME?"set_name": @@ -898,12 +903,12 @@ void req_delete(void) { ret_std (ERR_SUCCESS); } -// TPDD2 sector cache write - but not really doing that +// TPDD2 sector cache write - but not really doing it // This is just something TS-DOS does to detect TPDD2, and we do implement // other TPDD2 features, so we respond to this just enough to satisfy TS-DOS. // We just blindly return a packet that means "cache write suceeded". // http://bitchin100.com/wiki/index.php?title=TPDD-2_Sector_Access_Protocol -// https://github.com/bkw777/pdd.sh/blob/41053c21f6f2ee349db2abf51547117de0a51b59/pdd.sh#L1637 +// https://github.com/bkw777/pdd.sh search for "pdd2_write_cache void ret_cache_write() { dbg(3,"%s()\n",__func__); gb[0]=RET_CACHE_STD; @@ -1266,7 +1271,7 @@ void show_config () { dbg(2,"dme_parent_label: \"%-6.6s\"\n",dme_parent_label); dbg(2,"dme_dir_label : \"%-2.2s\"\n",dme_dir_label); dbg(0,"ur2_dos_hack : %s\n",enable_ur2_dos_hack?"enabled":"disabled"); - dbg(2,"default_attrib : '%c'\n",default_attrib); + dbg(2,"default_attr : '%c'\n",default_attr); } void show_main_help() { @@ -1327,12 +1332,12 @@ int main(int argc, char **argv) memcpy(dme_cwd,dme_root_label,6);} if (getenv("PARENT_LABEL")) snprintf(dme_parent_label,7,"%-6.6s",getenv("PARENT_LABEL")); if (getenv("DIR_LABEL")) snprintf(dme_dir_label,3,"%-2.2s",getenv("DIR_LABEL")); - if (getenv("ATTRIB")) default_attrib = *getenv("ATTRIB"); + if (getenv("ATTR")) default_attr = *getenv("ATTR"); // commandline options while ((i = getopt (argc, argv, ":0gurvd:p:wb:z:hl^")) >=0) switch (i) { - case '0': dot_offset=0; upcase=false; default_attrib=0x20; break; + case '0': dot_offset=0; upcase=false; default_attr=0x20; break; case 'g': getty_mode = true; debug = 0; break; case 'u': upcase = true; break; case 'r': rtscts = true; break; diff --git a/ref/advanced_options.txt b/ref/advanced_options.txt index 14f721c..89c7790 100644 --- a/ref/advanced_options.txt +++ b/ref/advanced_options.txt @@ -58,7 +58,7 @@ Example: to work, it has to be left-justified like a real filename would be. It takes some trial & error to figure out what works. - ATTRIB '' 'A' 'F' any single character + ATTR 'F' ' ' any single character The TPDD drive has a single-character field along with every filename. It's just a text field that the drive can use to return a a group of From 2b25d95c8963a52da68e7feb0e46aa91cf9d0565 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 15 Jun 2022 07:25:44 -0400 Subject: [PATCH 043/206] constants.h, pdd2_unk23, pdd2_unk11/33 --- constants.h | 129 ++++++++++++++++++++++++++++++++++ dir_list.c | 10 +-- dir_list.h | 6 +- dl.c | 199 +++++++++++++++------------------------------------- ref/ur2.txt | 55 +++++++++++++++ 5 files changed, 247 insertions(+), 152 deletions(-) create mode 100644 constants.h create mode 100644 ref/ur2.txt diff --git a/constants.h b/constants.h new file mode 100644 index 0000000..db2ad17 --- /dev/null +++ b/constants.h @@ -0,0 +1,129 @@ +#ifndef TPDD_CONSTANTS +#define TPDD_CONSTANTS + +// TPDD drive firmware/protocol constants + +// TPDD request block formats +#define REQ_DIRENT 0x00 +#define REQ_OPEN 0x01 +#define REQ_CLOSE 0x02 +#define REQ_READ 0x03 +#define REQ_WRITE 0x04 +#define REQ_DELETE 0x05 +#define REQ_FORMAT 0x06 +#define REQ_STATUS 0x07 +#define REQ_FDC 0x08 +#define REQ_SEEK 0x09 +#define REQ_TELL 0x0A +#define REQ_SET_EXT 0x0B +#define REQ_CONDITION 0x0C // TPDD2 +#define REQ_RENAME 0x0D +#define REQ_REQ_EXT_QUERY 0x0E +#define REQ_COND_LIST 0x0F +#define REQ_PDD2_UNK11 0x11 // TPDD2 unknown function - TPDD2 responds: 3A 06 80 13 05 00 10 E1 36 +#define REQ_PDD2_UNK23 0x23 // TPDD2 unknown function - "TS-DOS mystery" TS-DOS uses for to detect TPDD2 - TPDD2 responds, TPDD1 does not. +#define REQ_CACHE_LOAD 0x30 // TPDD2 sector access +#define REQ_CACHE_WRITE 0x31 // TPDD2 sector access +#define REQ_CACHE_READ 0x32 // TPDD2 sector access +#define REQ_PDD2_UNK33 0x33 // TPDD2 same as UNK11 + +// TPDD return block formats +#define RET_READ 0x10 +#define RET_DIRENT 0x11 +#define RET_STD 0x12 // shared return format for: error open close delete status write +#define RET_PDD2_UNK23 0x14 // TPDD2 unknown function - "TS-DOS mystery" TS-DOS uses to detect TPDD2 +#define RET_CONDITION 0x15 // TPDD2 +#define RET_CACHE_STD 0x38 // TPDD2 shared return format for: sector_cache write_cache +#define RET_READ_CACHE 0x39 // TPDD2 +#define RET_PDD2_UNK11 0x3A // TPDD2 unknown function +#define RET_PDD2_UNK33 0x3A // TPDD2 same as UNK11 + +// directory entry request types +#define DIRENT_SET_NAME 0x00 +#define DIRENT_GET_FIRST 0x01 +#define DIRENT_GET_NEXT 0x02 +#define DIRENT_GET_PREV 0x03 // TPDD2 +#define DIRENT_CLOSE 0x04 // TPDD2 + +// file open access modes +#define F_OPEN_NONE 0x00 // used in here, not part of protocol +#define F_OPEN_WRITE 0x01 +#define F_OPEN_APPEND 0x02 +#define F_OPEN_READ 0x03 + +// TPDD Operation-mode error codes +#define ERR_SUCCESS 0x00 // 'Operation Complete' +#define ERR_NO_FILE 0x10 // 'File Not Found' +#define ERR_EXISTS 0x11 // 'File Exists' +#define ERR_CMDSEQ 0x30 // 'Command Parameter Error or Sequence Error' +#define ERR_DIR_SEARCH 0x31 // 'Directory Search Error' +#define ERR_BANK 0x35 // 'Bank Error' +#define ERR_PARAM 0x36 // 'Parameter Error' +#define ERR_FMT_MISMATCH 0x37 // 'Open Format Mismatch' +#define ERR_EOF 0x3F // 'End of File' +#define ERR_NO_START 0x40 // 'No Start Mark' +#define ERR_ID_CRC 0x41 // 'ID CRC Check Error' +#define ERR_SECTOR_LEN 0x42 // 'Sector Length Error' +#define ERR_FMT_VERIFY 0x44 // 'Format Verify Error' +#define ERR_NOT_FORMATTED 0x45 // 'Disk Not Formatted' +#define ERR_FMT_INTERRUPT 0x46 // 'Format Interruption' +#define ERR_ERASE_OFFSET 0x47 // 'Erase Offset Error' +#define ERR_DATA_CRC 0x49 // 'DATA CRC Check Error' +#define ERR_SECTOR_NUM 0x4A // 'Sector Number Error' +#define ERR_READ_TIMEOUT 0x4B // 'Read Data Timeout' +#define ERR_SECTOR_NUM2 0x4D // 'Sector Number Error' +#define ERR_WRITE_PROTECT 0x50 // 'Write-Protected Disk' +#define ERR_DISK_NOINIT 0x5E // 'Disk Not Formatted' +#define ERR_DIR_FULL 0x60 // 'Disk Full or Max File Size Exceeded or Directory Full' / TPDD2 'Directory Full' +#define ERR_DISK_FULL 0x61 // 'Disk Full' +#define ERR_FILE_LEN 0x6E // 'File Too Long' (real drive limits to 65534, we exceed for REXCPM) +#define ERR_NO_DISK 0x70 // 'No Disk' +#define ERR_DISK_CHG 0x71 // 'Disk Not Inserted or Disk Change Error' / TPDD2 'Disk Change Error' +#define ERR_DEFECTIVE 0x83 // 'Defective Disk' (real drive needs a power-cycle to clear this error) + +// TPDD1 FDC-mode commands +#define FDC_SET_MODE 'M' // set Operation-mode or FDC-mode +#define FDC_CONDITION 'D' // drive condition +#define FDC_FORMAT 'F' // format disk +#define FDC_FORMAT_NV 'G' // format disk without verify +#define FDC_READ_ID 'A' // read sector ID +#define FDC_READ_SECTOR 'R' // read sector data +#define FDC_SEARCH_ID 'S' // search sector ID +#define FDC_WRITE_ID 'B' // write sector ID +#define FDC_WRITE_ID_NV 'C' // write sector ID without verify +#define FDC_WRITE_SECTOR 'W' // write sector data +#define FDC_WRITE_SECTOR_NV 'X' // write sector data without verify + +// TPDD1 FDC-mode error codes +// There is no documentation for FDC error codes. +// These are guesses from experimenting. +// These appear in the first hex pair of an 8-byte FDC-mode response. +#define ERR_FDC_SUCCESS 0 // 'OK' +#define ERR_FDC_LSN_LO 17 // 'Logical Sector Number Below Range' +#define ERR_FDC_LSN_HI 18 // 'Logical Sector Number Above Range' +#define ERR_FDC_PSN HI 19 // 'Physical Sector Number Above Range' +#define ERR_FDC_PARAM 33 // 'Parameter Invalid, Wrong Type' +#define ERR_FDC_LSSC_LO 50 // 'Invalid Logical Sector Size Code' +#define ERR_FDC_LSSC_HI 51 // 'Logical Sector Size Code Above Range' +#define ERR_FDC_NOT_FORMATTED 160 // 'Disk Not Formatted' +#define ERR_FDC_READ 161 // 'Read Error' +#define ERR_FDC_WRITE_PROTECT 176 // 'Write-Protected Disk' +#define ERR_FDC_COMMAND 193 // 'Invalid Command' +#define ERR_FDC_NO_DISK 209 // 'Disk Not Inserted' + +// fixed lengths +#define TPDD_DATA_MAX 0x80 +#define TPDD_FREE_SECTORS 80 // max 80 for TPDD1, 160 for TPDD2 +#define LEN_RET_STD 0x01 +#define LEN_RET_DME 0x0B +#define LEN_RET_DIRENT 0x1C +#define TPDD_FILENAME_LEN 24 +#define LOCAL_FILENAME_MAX 256 + +// KC-85 platform BASIC interpreter EOL & EOF bytes for bootstrap() +#define BASIC_EOL 0x0D +#define BASIC_EOF 0x1A + +#define DIR_FLAG 0x01 + +#endif diff --git a/dir_list.c b/dir_list.c index 45b6745..9e4f26d 100644 --- a/dir_list.c +++ b/dir_list.c @@ -34,9 +34,9 @@ static FILE_ENTRY * current_record (void); int file_list_init () { - tblp = malloc (sizeof (FILE_ENTRY) * QUANTUM ); + tblp = malloc (sizeof (FILE_ENTRY) * FEQ ); if (!tblp) return -1; - allocated = QUANTUM; + allocated = FEQ; ndx = 0; cur = 0; return 0; @@ -59,13 +59,13 @@ void file_list_clear_all () int add_file (FILE_ENTRY *fe) { - /** reallocate QUANTUM more records if out of space */ + /** allocate FEQ more records if out of space */ if (ndx >= allocated) { /** resize the array */ - tblp = realloc (tblp, (allocated + QUANTUM) * sizeof (FILE_ENTRY) ); + tblp = realloc (tblp, (allocated + FEQ) * sizeof (FILE_ENTRY) ); if (!tblp) return -1; - allocated += QUANTUM; + allocated += FEQ; } /** reference the entry */ diff --git a/dir_list.h b/dir_list.h index 9d7c036..e9c0a77 100644 --- a/dir_list.h +++ b/dir_list.h @@ -22,11 +22,9 @@ MA 02111, USA. #define DIR_LIST #include +#include "constants.h" -#define QUANTUM 10 -#define TPDD_FILENAME_LEN 24 -#define LOCAL_FILENAME_MAX 256 -#define DIR_FLAG 0x01 +#define FEQ 10 // number of FILE_ENTRYs to malloc for at a time typedef struct { diff --git a/dl.c b/dl.c index 775bcc5..3d70fcf 100644 --- a/dl.c +++ b/dl.c @@ -78,6 +78,7 @@ MA 02111, USA. #include #include #include +#include "constants.h" #include "dir_list.h" #if defined(__darwin__) @@ -131,12 +132,19 @@ MA 02111, USA. // this you can't change unless you also hack ts-dos #define DEFAULT_DME_DIR_LABEL "<>" // DIR_LABEL='/' -// Ultimate ROM-II TS-DOS loader support: Special filenames from the -// root dir that should always be loadable no matter what subdirectory -// the client has switched to. +// Support for Ultimate ROM-II TS-DOS loader: see ref/ur2.txt +// files from share root dir that are always readable in any cd path +// TODO +// * put these in an array +// * allow user to specify an arbitrary list of magic files +// * 3 or more search paths: cwd, share-root, ~/.local/app, app-lib +// any file in the list is searched first in the current dir, +// then in the root shared dir, then in a specified lib/share dir. #define DOS100 "DOS100.CO" #define DOS200 "DOS200.CO" #define DOSNEC "DOSNEC.CO" +//#define DOSK85 "DOSK85.CO" // probably don't exist +//#define DOSM10 "DOSM10.CO" // termios VMIN & VTIME #define C_CC_VMIN 1 @@ -144,123 +152,6 @@ MA 02111, USA. /*************************************************************/ -// drive firmware/protocol constants - -// TPDD request block formats -#define REQ_DIRENT 0x00 -#define REQ_OPEN 0x01 -#define REQ_CLOSE 0x02 -#define REQ_READ 0x03 -#define REQ_WRITE 0x04 -#define REQ_DELETE 0x05 -#define REQ_FORMAT 0x06 -#define REQ_STATUS 0x07 -#define REQ_FDC 0x08 -#define REQ_SEEK 0x09 -#define REQ_TELL 0x0A -#define REQ_SET_EXT 0x0B -#define REQ_CONDITION 0x0C // TPDD2 -#define REQ_RENAME 0x0D -#define REQ_REQ_EXT_QUERY 0x0E -#define REQ_COND_LIST 0x0F -#define REQ_TSDOS_MYSTERY 0x23 // TS-DOS mystery - part of drive/emulator detection TPDD2 responds, TPDD1 does not. -#define REQ_CACHE_LOAD 0x30 // TPDD2 sector access -#define REQ_CACHE_WRITE 0x31 // TPDD2 sector access -#define REQ_CACHE_READ 0x32 // TPDD2 sector access - -// TPDD return block formats -#define RET_READ 0x10 -#define RET_DIRENT 0x11 -#define RET_STD 0x12 // shared return format for: error open close delete status write -#define RET_TSDOS_MYSTERY 0x14 -#define RET_CONDITION 0x15 // TPDD2 -#define RET_CACHE_STD 0x38 // TPDD2 shared return format for: sector_cache write_cache -#define RET_READ_CACHE 0x39 // TPDD2 - -// directory entry request types -#define DIRENT_SET_NAME 0x00 -#define DIRENT_GET_FIRST 0x01 -#define DIRENT_GET_NEXT 0x02 -#define DIRENT_GET_PREV 0x03 // TPDD2 -#define DIRENT_CLOSE 0x04 // TPDD2 - -// file open access modes -#define F_OPEN_NONE 0x00 // used in here, not part of protocol -#define F_OPEN_WRITE 0x01 -#define F_OPEN_APPEND 0x02 -#define F_OPEN_READ 0x03 - -// TPDD Operation-mode error codes -#define ERR_SUCCESS 0x00 // 'Operation Complete' -#define ERR_NO_FILE 0x10 // 'File Not Found' -#define ERR_EXISTS 0x11 // 'File Exists' -#define ERR_CMDSEQ 0x30 // 'Command Parameter or Sequence Error' -#define ERR_DIR_SEARCH 0x31 // 'Directory Search Error' -#define ERR_BANK 0x35 // 'Bank Error' -#define ERR_PARAM 0x36 // 'Parameter Error' -#define ERR_FMT_MISMATCH 0x37 // 'Open Format Mismatch' -#define ERR_EOF 0x3F // 'End of File' -#define ERR_NO_START 0x40 // 'No Start Mark' -#define ERR_ID_CRC 0x41 // 'ID CRC Check Error' -#define ERR_SECTOR_LEN 0x42 // 'Sector Length Error' -#define ERR_FMT_VERIFY 0x44 // 'Format Verify Error' -#define ERR_NOT_FORMATTED 0x45 // 'Disk Not Formatted' -#define ERR_FMT_INTERRUPT 0x46 // 'Format Interruption' -#define ERR_ERASE_OFFSET 0x47 // 'Erase Offset Error' -#define ERR_DATA_CRC 0x49 // 'DATA CRC Check Error' -#define ERR_SECTOR_NUM 0x4A // 'Sector Number Error' -#define ERR_READ_TIMEOUT 0x4B // 'Read Data Timeout' -#define ERR_SECTOR_NUM2 0x4D // 'Sector Number Error' -#define ERR_WRITE_PROTECT 0x50 // 'Write-Protected Disk' -#define ERR_DISK_NOINIT 0x5E // 'Disk Not Formatted' -#define ERR_DIR_FULL 0x60 // 'Disk Full or Max File Size Exceeded or Directory Full' / TPDD2 'Directory Full' -#define ERR_DISK_FULL 0x61 // 'Disk Full' -#define ERR_FILE_LEN 0x6E // 'File Too Long' (real drive limits to 65534, we exceed for REXCPM) -#define ERR_NO_DISK 0x70 // 'No Disk' -#define ERR_DISK_CHG 0x71 // 'Disk Not Inserted or Disk Change Error' / TPDD2 'Disk Change Error' -#define ERR_DEFECTIVE 0x83 // 'Defective Disk' (real drive needs a power-cycle to clear this error) - -// TPDD1 FDC-mode commands -#define FDC_SET_MODE 'M' // set Operation-mode or FDC-mode -#define FDC_CONDITION 'D' // drive condition -#define FDC_FORMAT 'F' // format disk -#define FDC_FORMAT_NV 'G' // format disk without verify -#define FDC_READ_ID 'A' // read sector ID -#define FDC_READ_SECTOR 'R' // read sector data -#define FDC_SEARCH_ID 'S' // search sector ID -#define FDC_WRITE_ID 'B' // write sector ID -#define FDC_WRITE_ID_NV 'C' // write sector ID without verify -#define FDC_WRITE_SECTOR 'W' // write sector data -#define FDC_WRITE_SECTOR_NV 'X' // write sector data without verify - -// TPDD1 FDC-mode error codes -// There is no documentation for FDC error codes. -// These are guesses from experimenting. -// These appear in the first hex pair of an 8-byte FDC-mode response. -#define ERR_FDC_SUCCESS 0 // 'OK' -#define ERR_FDC_LSN_LO 17 // 'Logical Sector Number Below Range' -#define ERR_FDC_LSN_HI 18 // 'Logical Sector Number Above Range' -#define ERR_FDC_PSN HI 19 // 'Physical Sector Number Above Range' -#define ERR_FDC_PARAM 33 // 'Parameter Invalid, Wrong Type' -#define ERR_FDC_LSSC_LO 50 // 'Invalid Logical Sector Size Code' -#define ERR_FDC_LSSC_HI 51 // 'Logical Sector Size Code Above Range' -#define ERR_FDC_NOT_FORMATTED 160 // 'Disk Not Formatted' -#define ERR_FDC_READ 161 // 'Read Error' -#define ERR_FDC_WRITE_PROTECT 176 // 'Write-Protected Disk' -#define ERR_FDC_COMMAND 193 // 'Invalid Command' -#define ERR_FDC_NO_DISK 209 // 'Disk Not Inserted' - -// fixed lengths -#define TPDD_DATA_MAX 0x80 -#define TPDD_FREE_SECTORS 0x50 // max valid value is 80 sectors -#define LEN_RET_STD 0x01 -#define LEN_RET_DME 0x0B -#define LEN_RET_DIRENT 0x1C - -// KC-85 platform BASIC interpreter EOL & EOF byts for bootstrap() -#define BASIC_EOL 0x0D -#define BASIC_EOF 0x1A - // configuration int debug = 0; bool upcase = false; @@ -414,7 +305,7 @@ void lsx (char *path,char *match) { closedir(dir); } -int ck_ur2_dos(char *b) { +int do_magic_file(char *b) { dbg(3,"%s(\"%s\")\n",__func__,b); if (!enable_ur2_dos_hack) return 1; if (!dir_depth) return 1; // fake root hack not needed in actual root @@ -595,13 +486,9 @@ void dirent_set_name(unsigned char *b) { dbg(3,"filename: \"%-24.24s\"\n",b+2); dbg(3," attr: \"%c\" (%1$02X)\n",b[26]); } - // we must update before every set-name for at least 2 reasons - // 1 - get-first is not required before set-name - // TEENY for instance never does get-first or get-next - // UR2 doesn't do get-first/get-next before requesting DOS100.CO - // 2 - Files may be changed by other processes than ourself - // set-name however is required for, and before, any other action - // than get-first, so updating here and get-first covers everything else. + // update before every set-name for at least 2 reasons + // * clients may open files without ever listing (teeny, ur2, etc) + // * local files may be changed at any time by other processes update_file_list(); strncpy(filename,(char *)b+2,TPDD_FILENAME_LEN); filename[TPDD_FILENAME_LEN]=0; @@ -611,9 +498,8 @@ void dirent_set_name(unsigned char *b) { if (cur_file) { dbg(3,"Exists: \"%s\" %u\n", cur_file->local_fname, cur_file->len); ret_dirent(cur_file); - } else if (ck_ur2_dos(filename)==0) { - // let UR2 load /DOSxxx.CO in any subdir - // if not found in current dir for real. + } else if (do_magic_file(filename)==0) { + // let UR2 load /DOSxxx.CO from anywhere cur_file=make_file_entry(filename,0,0); char t[LOCAL_FILENAME_MAX+1] = {0x00}; for (int i=dir_depth;i>0;i--) strncat(t,"../",3); @@ -632,7 +518,7 @@ void dirent_set_name(unsigned char *b) { void dirent_get_first() { if (debug==1) dbg(2,"Directory Listing\n"); - // we must update every time before get-first, + // update every time before get-first, // because set-name is not required before get-first update_file_list(); ret_dirent(get_first_file()); @@ -645,7 +531,7 @@ void dirent_get_first() { // b[26] = attr // b[27] = action (search form) // -// Don't even look at the data yet except the action byte. +// Ignore the name & attr until after determining the action. // TS-DOS submits get-first & get-next requests with junk data // in the filename & attribute fields left over from previous actions. int req_dirent(unsigned char *b) { @@ -904,11 +790,14 @@ void req_delete(void) { } // TPDD2 sector cache write - but not really doing it -// This is just something TS-DOS does to detect TPDD2, and we do implement -// other TPDD2 features, so we respond to this just enough to satisfy TS-DOS. -// We just blindly return a packet that means "cache write suceeded". +// Previously called "TS-DOS mystery command 1" +// This is just something TS-DOS does to detect TPDD2. Respond just enough +// to satisfy TS-DOS that it may use TPDD2 features like dirent(get-prev). +// Just return a canned packet that means "cache write suceeded". // http://bitchin100.com/wiki/index.php?title=TPDD-2_Sector_Access_Protocol // https://github.com/bkw777/pdd.sh search for "pdd2_write_cache +// FIXME: We should really only respond success if the payload exactly +// matches TS-DOS's, and error any other attempt to use this function. void ret_cache_write() { dbg(3,"%s()\n",__func__); gb[0]=RET_CACHE_STD; @@ -919,14 +808,36 @@ void ret_cache_write() { } // Another part of TS-DOS's drive/server capabilities detection scheme. -// Used to be called "TS-DOS mystery command 2", but now it's the only one. -// ("mystery command 1" was the TPDD2 sector cache command above) -// TS-DOS sends: 5A 5A 23 00 DC -// TPDD2 responds: 14 0F 41 10 01 00 50 05 00 02 00 28 00 E1 00 00 00 2A +// Previously called "TS-DOS mystery command 2" +// The function of the command in a real drive is unknown. +// The meaning of the response is unkmnown. +// But the command apparently takes no parameters, and a real TPDD2 always +// responds with the same string of bytes, and TPDD1 ignores it. +// not counting ZZ or checksums: +// Client sends : 23 00 +// TPDD2 responds: 14 0F 41 10 01 00 50 05 00 02 00 28 00 E1 00 00 00 // TPDD1 does not respond. -void ret_tsdos_mystery() { +void ret_pdd2_unk23() { + dbg(3,"%s()\n",__func__); + static unsigned char canned[] = {RET_PDD2_UNK23, 0x0F, 0x41, 0x10, 0x01, 0x00, 0x50, 0x05, 0x00, 0x02, 0x00, 0x28, 0x00, 0xE1, 0x00, 0x00, 0x00}; + memcpy(gb, canned, canned[1]+2); + gb[canned[1]+2] = checksum(gb); + write_client_tty(gb, gb[1]+3); +} + +// Similar to unk23, except the response is different, and not used by TS-DOS +// Nothing uses this command that I know of. I just found it by feeding +// abitrary commands to a real drive with github/bkw777/pdd.sh +// 0x11 and 0x33 both produce the same response. Possibly 0x11 and 0x33 are +// just different versions of the same function, like how 0x4# commands are +// really just 0x0# commands for bank 1 instead of bank 0? Just a guess. +// not counting ZZ or checksums: +// Client sends : 11 00 +// or sends : 33 00 +// TPDD2 responds: 3A 06 80 13 05 00 10 E1 +void ret_pdd2_unk11() { dbg(3,"%s()\n",__func__); - static unsigned char canned[] = {RET_TSDOS_MYSTERY, 0x0F, 0x41, 0x10, 0x01, 0x00, 0x50, 0x05, 0x00, 0x02, 0x00, 0x28, 0x00, 0xE1, 0x00, 0x00, 0x00}; + static unsigned char canned[] = {RET_PDD2_UNK11, 0x06, 0x80, 0x13, 0x05, 0x00, 0x10, 0xE1}; memcpy(gb, canned, canned[1]+2); gb[canned[1]+2] = checksum(gb); write_client_tty(gb, gb[1]+3); @@ -980,8 +891,10 @@ void dispatch_opr_cmd(unsigned char *b) { case REQ_FDC: req_fdc(); break; case REQ_CONDITION: req_condition(); break; case REQ_RENAME: req_rename(b); break; - case REQ_TSDOS_MYSTERY: ret_tsdos_mystery(); break; + case REQ_PDD2_UNK23: ret_pdd2_unk23(); break; case REQ_CACHE_WRITE: ret_cache_write(); break; + case REQ_PDD2_UNK11: ret_pdd2_unk11(); break; + case REQ_PDD2_UNK33: ret_pdd2_unk11(); break; } } diff --git a/ref/ur2.txt b/ref/ur2.txt new file mode 100644 index 0000000..5b79afa --- /dev/null +++ b/ref/ur2.txt @@ -0,0 +1,55 @@ +Special support for the TS-DOS button in Ultimate ROM II + +A few "magic" filenames that have the following behavior/properties: + +* Name: DOS100.CO, DOS200.CO, DOSNEC.CO + +* If client tries to open(read), and file doesn't exist in cwd, silently + succeed and supply contents from the same file from share root instead. + +* Do not include in directory listing unless it actually exists in cwd. + +* Do not supply substitute contents if file actually exists in cwd. + Ff client tries to load a file that actually exists in cwd, + it should work as normal, not sustitute the contents from some other file. + +* Do not apply to open(write) or append. If client tries to save a file, + it should work as normal, not overwite the copy in the share root! + +* DO allow overwriting the share root copy if the client is actually in + the share root dir. + +* Don't even look if not in "floppy compat" mode (dot_offset=6). + There is no UR-II for CP/M or WP-2 or any other kind of client, + it's an option ROM for KC-85 platform clones only. + +Explaination + +UR-II has a "TS-DOS" button that tries to load a file named "DOS100.CO" on +the fly. + +(or DOS200.CO for TANDY Model 200, or DOSNEC.CO for NEC PC-8201/PC-8300) + +UR-II does not know about directories, and does not do anything to try +to cd to the root dir before trying to open the file. + +On a real drive, this works fine. If a disk simply contains a copy of +the file, then the open() works and so the TS-DOS button works. + +On an emulated drive that can cd into sub-directories, it's possible for +the user to launch TS-DOS, cd into a sub-directory that does not contain +a copy of DOS100.CO, and then exit TS-DOS (without cd-ing back up to the +root dir before exiting). + +In that case, all else being equal, the TS-DOS button in UR-II would +not work any more unless/until you re-start the server. + +The next time the user tries to use the TS-DOS button, UR-II tries +to load "DOS100.CO", no such file exists (in the current dir), the +open() fails, and the user can never get back into TS-DOS again. They +can't cd back to root to fix it, since they can't launch TS-DOS to do +the cd. You have to re-start the server to make it work again. + +So this just makes it so that any attempt to open one of these specific +filenames (for reading only) always works, regardless what directory the +server is currently cd'd to. From 038d0e7078aa1f1cdbd155e092cdb82e42a1f01b Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 15 Jun 2022 07:35:35 -0400 Subject: [PATCH 044/206] file size for magic ur2 dos files --- dl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dl.c b/dl.c index 3d70fcf..a4b7268 100644 --- a/dl.c +++ b/dl.c @@ -506,6 +506,7 @@ void dirent_set_name(unsigned char *b) { strncat(t,cur_file->local_fname,LOCAL_FILENAME_MAX-dir_depth*3); memset(cur_file->local_fname,0x00,LOCAL_FILENAME_MAX); memcpy(cur_file->local_fname,t,LOCAL_FILENAME_MAX); + struct stat st; if (!stat(cur_file->local_fname,&st)) cur_file->len=st.st_size; dbg(3,"Virtual: \"%s\" <-- \"%s\"\n",cur_file->client_fname,cur_file->local_fname); ret_dirent(cur_file); } else { From 416a0c4d609e5e73638d09a727482a79a49a5b91 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 15 Jun 2022 08:45:30 -0400 Subject: [PATCH 045/206] prevent unexpected tty output from update_file_list --- constants.h | 3 +++ dl.c | 17 ++++++++--------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/constants.h b/constants.h index db2ad17..f629e35 100644 --- a/constants.h +++ b/constants.h @@ -126,4 +126,7 @@ #define DIR_FLAG 0x01 +#define NO_RET 0 +#define ALLOW_RET 1 + #endif diff --git a/dl.c b/dl.c index a4b7268..852c4eb 100644 --- a/dl.c +++ b/dl.c @@ -372,7 +372,7 @@ FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) return &f; } -int read_next_dirent(DIR *dir) { +int read_next_dirent(DIR *dir,int m) { dbg(3,"%s()\n",__func__); struct stat st; struct dirent *dire; @@ -381,7 +381,7 @@ int read_next_dirent(DIR *dir) { if (dir == NULL) { dire=NULL; dbg(0,"%s(NULL) ???\n",__func__); - ret_std(ERR_NO_DISK); + if (m) ret_std(ERR_NO_DISK); return 0; } @@ -389,7 +389,7 @@ int read_next_dirent(DIR *dir) { flags=0; if (stat(dire->d_name,&st)) { - ret_std(DIRENT_GET_FIRST); + if (m) ret_std(ERR_NO_FILE); return 0; } @@ -403,7 +403,6 @@ int read_next_dirent(DIR *dir) { if (strlen(dire->d_name)>LOCAL_FILENAME_MAX) continue; // skip long filenames } - /* add file to list so we can traverse any order */ add_file(make_file_entry(dire->d_name, st.st_size, flags)); break; } @@ -413,7 +412,7 @@ int read_next_dirent(DIR *dir) { return 1; } -void update_file_list() { +void update_file_list(int m) { dbg(3,"%s()\n",__func__); DIR * dir; @@ -421,7 +420,7 @@ void update_file_list() { file_list_clear_all(); dbg(1,"-------------------------------------------------------------------------------\n"); if (dir_depth) add_file(make_file_entry("..", 0, DIR_FLAG)); - while (read_next_dirent(dir)); + while (read_next_dirent(dir,m)); dbg(1,"-------------------------------------------------------------------------------\n"); closedir(dir); } @@ -489,7 +488,7 @@ void dirent_set_name(unsigned char *b) { // update before every set-name for at least 2 reasons // * clients may open files without ever listing (teeny, ur2, etc) // * local files may be changed at any time by other processes - update_file_list(); + update_file_list(ALLOW_RET); strncpy(filename,(char *)b+2,TPDD_FILENAME_LEN); filename[TPDD_FILENAME_LEN]=0; // Remove trailing spaces @@ -521,7 +520,7 @@ void dirent_get_first() { if (debug==1) dbg(2,"Directory Listing\n"); // update every time before get-first, // because set-name is not required before get-first - update_file_list(); + update_file_list(ALLOW_RET); ret_dirent(get_first_file()); dme_fdc = 0; // see req_fdc() & ref/fdc.txt } @@ -1336,7 +1335,7 @@ int main(int argc, char **argv) // create the file list file_list_init(); - if (debug) update_file_list(); + if (debug) update_file_list(NO_RET); // process commands forever while (1) if (opr_mode) get_opr_cmd(); else get_fdc_cmd(); From 93f3db4bfb5d9500081ca399b2c458210dba4b33 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 15 Jun 2022 10:29:41 -0400 Subject: [PATCH 046/206] cmdline opts for -a attr -s baud --- dl.c | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/dl.c b/dl.c index 852c4eb..b505302 100644 --- a/dl.c +++ b/dl.c @@ -224,6 +224,10 @@ void dbg_p(const int v, unsigned char *b) { dbg_b(v,b+2,b[1]); } +void set_baud (char * s) { + client_baud=atoi(s)==9600?B9600:B19200; +} + // set termios VMIN & VTIME void client_tty_vmt(int m,int t) { if (m<-1 || t<-1) tcgetattr(client_tty_fd,&client_termios); @@ -1193,22 +1197,24 @@ void show_main_help() { "usage: %1$s [options] [tty_device] [share_path]\n" "\n" "options:\n" - " -h Print this help\n" - " -v Verbose/debug mode - more v's = more verbose\n" - " -d tty Serial device to client (" S_(DEFAULT_CLIENT_TTY) ")\n" - " -p dir Share path - directory with files to be served (.)\n" - " -g Getty mode - run as daemon\n" - " -w WP-2 mode - 8.2 filenames\n" - " -u Uppercase all filenames\n" - " -r RTS/CTS hardware flow control\n" - " -z # Milliseconds per byte for bootstrap (" S_(DEFAULT_BASIC_BYTE_MS) ")\n" " -0 Raw mode. Do not munge filenames in any way.\n" " Disables 6.2 or 8.2 filename trucating & padding\n" " Changes the attribute byte to ' ' instead of 'F'\n" " Disables adding the TS-DOS \".<>\" extension for directories\n" " The entire 24 bytes of the filename field on a real drive is used.\n" + " -a c Attr - attribute used for all files (F)\n" " -b file Bootstrap: Send loader file to client\n" + " -d tty Serial device to client (" S_(DEFAULT_CLIENT_TTY) ")\n" + " -g Getty mode - run as daemon\n" + " -h Print this help\n" " -l List available loader files and bootstrap help\n" + " -p dir Share path - directory with files to be served (.)\n" + " -r RTS/CTS hardware flow control\n" + " -s # Speed - serial port baud rate 9600 or 19200 (19200)\n" + " -u Uppercase all filenames\n" + " -v Verbose/debug mode - more v's = more verbose\n" + " -w WP-2 mode - 8.2 filenames\n" + " -z # Milliseconds per byte for bootstrap (" S_(DEFAULT_BASIC_BYTE_MS) ")\n" "\n" "Alternative to the -d and -p options,\n" "The 1st non-option argument is another way to specify the tty device.\n" @@ -1239,8 +1245,7 @@ int main(int argc, char **argv) if (getenv("DISABLE_DME")) dme_disabled = true; if (getenv("DISABLE_UR2_DOS_HACK")) enable_ur2_dos_hack = false; if (getenv("DOT_OFFSET")) dot_offset = atoi(getenv("DOT_OFFSET")); - if (getenv("BAUD")) {i=atoi(getenv("BAUD")); - client_baud=i==9600?B9600:i==19200?B19200:-1;} + if (getenv("BAUD")) set_baud(getenv("BAUD")); if (getenv("ROOT_LABEL")) {snprintf(dme_root_label,7,"%-6.6s",getenv("ROOT_LABEL")); memcpy(dme_cwd,dme_root_label,6);} if (getenv("PARENT_LABEL")) snprintf(dme_parent_label,7,"%-6.6s",getenv("PARENT_LABEL")); @@ -1248,20 +1253,22 @@ int main(int argc, char **argv) if (getenv("ATTR")) default_attr = *getenv("ATTR"); // commandline options - while ((i = getopt (argc, argv, ":0gurvd:p:wb:z:hl^")) >=0) + while ((i = getopt (argc, argv, ":0a:b:d:ghlp:rs:uvwz:^")) >=0) switch (i) { case '0': dot_offset=0; upcase=false; default_attr=0x20; break; + case 'a': default_attr=*strndup(optarg,1); break; + case 'b': bootstrap_mode=true; strcpy(bootstrap_file,optarg); break; + case 'd': strcpy(client_tty_name,optarg); break; case 'g': getty_mode = true; debug = 0; break; - case 'u': upcase = true; break; + case 'h': show_main_help(); exit(0); break; + case 'l': show_bootstrap_help(); exit(0); break; + case 'p': (void)(chdir(optarg)+1); break; case 'r': rtscts = true; break; + case 's': set_baud(optarg); break; + case 'u': upcase = true; break; case 'v': debug++; break; case 'w': dot_offset = 8; break; - case 'h': show_main_help(); exit(0); break; - case 'l': show_bootstrap_help(); exit(0); break; case 'z': BASIC_byte_us=atoi(optarg)*1000; break; - case 'd': strcpy(client_tty_name,optarg); break; - case 'p': (void)(chdir(optarg)+1); break; - case 'b': bootstrap_mode=true; strcpy(bootstrap_file,optarg); break; case '^': x=true; break; case ':': dbg(0,"\"-%c\" requires a value\n",optopt); break; case '?': From a18b8d40b1f955acc5af1c3f3e46f04eb77bb180 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Wed, 15 Jun 2022 12:45:08 -0400 Subject: [PATCH 047/206] Update README.md --- README.md | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/README.md b/README.md index 456d9b0..5cf275f 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,65 @@ sudo make uninstall dl -h ``` +``` +bkw@fw:~/src/dlplus$ dl -h +dl - DeskLink+ v1.5.010-47-g93f3db4 - help + +usage: dl [options] [tty_device] [share_path] + +options: + -0 Raw mode. Do not munge filenames in any way. + Disables 6.2 or 8.2 filename trucating & padding + Changes the attribute byte to ' ' instead of 'F' + Disables adding the TS-DOS ".<>" extension for directories + The entire 24 bytes of the filename field on a real drive is used. + -a c Attr - attribute used for all files (F) + -b file Bootstrap: Send loader file to client + -d tty Serial device to client (ttyUSB0) + -g Getty mode - run as daemon + -h Print this help + -l List available loader files and bootstrap help + -p dir Share path - directory with files to be served (.) + -r RTS/CTS hardware flow control + -s # Speed - serial port baud rate 9600 or 19200 (19200) + -u Uppercase all filenames + -v Verbose/debug mode - more v's = more verbose + -w WP-2 mode - 8.2 filenames + -z # Milliseconds per byte for bootstrap (7) + +Alternative to the -d and -p options, +The 1st non-option argument is another way to specify the tty device. +The 2nd non-option argument is another way to specify the share path. + + dl + dl -vv /dev/ttyS0 + dl ttyUSB1 -v -w ~/Documents/wp2files + +bkw@fw:~/src/dlplus$ +``` +``` +bkw@fw:~/src/dlplus$ dl -l +dl - DeskLink+ v1.5.010-47-g93f3db4 - "bootstrap" help + +Available loader files (in /usr/local/lib/dl): + +TRS-80 Model 100 & 102 : TEENY.100 TINY.100 TS-DOS.100 DSKMGR.100 +TANDY Model 200 : TEENY.200 TS-DOS.200 DSKMGR.200 +NEC PC-8201(a)/PC-8300 : TEENY.NEC TS-DOS.NEC +Kyotronic KC-85 : DSKMGR.K85 +Olivetti M-10 : DSKMGR.M10 TEENY.M10 + +Filenames given without any leading path are taken from above. +To specify a file in the current directory, include the "./" +Examples: + + dl -b TS-DOS.100 + dl -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 + dl -b ./rxcini.DO + +bkw@fw:~/src/dlplus$ +``` + ## run the TPDD server, verbose, upcase, serving files from the current directory ``` dl -vu From d01d1db8d965d965d80358c02c14267b90adb720 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Wed, 15 Jun 2022 19:51:32 -0400 Subject: [PATCH 048/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5cf275f..4502437 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ DeskLink+ is a Tandy Portable Disk Drive emulator or "TPDD Server" implimented i Docs from the past versions of this program. They don't exactly match this version any more. [README.txt](README.txt) from dlplus by John R. Hogerhuis -[dl.do](dl.do) from dl 1.0-1.3 the original "DeskLink for \*nix) by Steven Hurd +[dl.do](dl.do) from dl 1.0-1.3 the original "DeskLink for \*nix" by Steven Hurd ## install From c9aaf7e62fb07e1a9e1a135773efe8e955916c1e Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Wed, 15 Jun 2022 19:54:54 -0400 Subject: [PATCH 049/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4502437..dc017c2 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # dlplus -DeskLink+ is a Tandy Portable Disk Drive emulator or "TPDD Server" implimented in C. +DeskLink+ is a [Tandy Portable Disk Drive](http://tandy.wiki/TPDD) emulator or "[TPDD server](http://tandy.wiki/TPDD_server)" implimented in C. 2022 [GGLabs](https://gglabs.us/) has added support for TS-DOS subdirectories! [hacky extra options](ref/advanced_options.txt) [Serial Cable](http://tandy.wiki/Model_T_Serial_Cable) From b41399f7c9c7e318f36f7e4b0b25053bc3d4dcfd Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 16 Jun 2022 18:16:10 -0400 Subject: [PATCH 050/206] fix mac osx, fix missing DOSxxx.CO --- Makefile | 83 +++++++++++++++++++++++++++++++------------------------- dl.c | 12 +++++--- 2 files changed, 54 insertions(+), 41 deletions(-) diff --git a/Makefile b/Makefile index 0e21070..3051c04 100644 --- a/Makefile +++ b/Makefile @@ -7,45 +7,39 @@ PREFIX ?= /usr/local APP_NAME := dl APP_LIB_DIR := $(PREFIX)/lib/$(APP_NAME) APP_DOC_DIR := $(PREFIX)/share/doc/$(APP_NAME) -APP_VERSION := $(shell git describe --long) +APP_VERSION := $(shell git describe --long 2>&-) -DEFAULT_CLIENT_TTY := ttyUSB0 - -TEENY_INSTALLERS := \ +CLIENT_LOADERS := \ clients/teeny/TEENY.100 \ clients/teeny/TEENY.200 \ clients/teeny/TEENY.NEC \ - clients/teeny/TEENY.M10 -TEENY_DOCS := \ - clients/teeny/teenydoc.txt \ - clients/teeny/hownec.do \ - clients/teeny/TNYO10.TXT -DSKMGR_INSTALLERS := \ + clients/teeny/TEENY.M10 \ clients/dskmgr/DSKMGR.100 \ clients/dskmgr/DSKMGR.200 \ clients/dskmgr/DSKMGR.K85 \ - clients/dskmgr/DSKMGR.M10 -DSKMGR_DOCS := \ - clients/dskmgr/DSKMGR.DOC -TS-DOS_INSTALLERS := \ + clients/dskmgr/DSKMGR.M10 \ clients/ts-dos/TS-DOS.100 \ clients/ts-dos/TS-DOS.200 \ - clients/ts-dos/TS-DOS.NEC -TS-DOS_DOCS := \ - clients/ts-dos/tsdos.pdf -TINY_INSTALLERS := \ - clients/tiny/TINY.100 -TINY_DOCS := \ - clients/tiny/tindoc.do -#POWR-D_INSTALLERS := \ + clients/ts-dos/TS-DOS.NEC \ + clients/tiny/TINY.100 \ # clients/power-dos/POWR-D.100 -#POWR-D_DOCS := \ + + +CLIENT_DOCS := \ + clients/teeny/teenydoc.txt \ + clients/teeny/hownec.do \ + clients/teeny/TNYO10.TXT \ + clients/dskmgr/DSKMGR.DOC \ + clients/ts-dos/tsdos.pdf \ + clients/tiny/tindoc.do \ # clients/power-dos/powr-d.txt -CLIENT_APP_INSTALLERS := $(TEENY_INSTALLERS) $(TINY_INSTALLERS) $(TS-DOS_INSTALLERS) $(DSKMGR_INSTALLERS) -CLIENT_APP_DOCS := $(TEENY_DOCS) $(TINY_DOCS) $(TS-DOS_DOCS) $(DSKMGR_DOCS) +CLIENT_OTHER := \ + clients/ts-dos/DOS100.CO \ + clients/ts-dos/DOS200.CO \ + clients/ts-dos/DOSNEC.CO -DOCS := dl.do README.txt README.md LICENSE $(CLIENT_APP_DOCS) +DOCS := dl.do README.txt README.md LICENSE $(CLIENT_DOCS) SOURCES := dl.c dir_list.c DEFINES := \ @@ -53,28 +47,43 @@ DEFINES := \ -DAPP_LIB_DIR=$(APP_LIB_DIR) \ -DDEFAULT_CLIENT_TTY=$(DEFAULT_CLIENT_TTY) -ifdef DEBUG - CFLAGS += -g -else - CFLAGS += -s -endif - ifeq ($(OS),Darwin) + # /dev/cu.usbserial-AB0MQNN1 + DEFAULT_CLIENT_TTY := cu.usbserial-* else + DEFAULT_CLIENT_TTY := ttyUSB0 LDLIBS += -lutil endif +ifdef DEBUG + CFLAGS += -g +endif + .PHONY: all all: $(APP_NAME) $(APP_NAME): $(SOURCES) $(CC) $(CFLAGS) $(DEFINES) $(SOURCES) $(LDLIBS) -o $(@) -install: $(APP_NAME) $(CLIENT_APP_INSTALLERS) $(DOCS) - install -o root -m 0755 -d $(APP_LIB_DIR) $(APP_DOC_DIR) - install -o root -m 0644 -t $(APP_LIB_DIR) $(CLIENT_APP_INSTALLERS) - for i in $(CLIENT_APP_INSTALLERS) ;do install -o root -m 0644 -t $(APP_LIB_DIR) $${i} $${i}.pre-install.txt $${i}.post-install.txt ;done - install -o root -m 0644 -t $(APP_DOC_DIR) $(DOCS) +install: $(APP_NAME) $(CLIENT_LOADERS) $(CLIENT_OTHER) $(DOCS) + for s in $(CLIENT_LOADERS) ;do \ + d=$(APP_LIB_DIR)/$${s} ; \ + mkdir -p $${d%/*} ; \ + install -o root -m 0644 $${s} $${d} ; \ + install -o root -m 0644 $${s}.pre-install.txt $${d}.pre-install.txt ; \ + install -o root -m 0644 $${s}.post-install.txt $${d}.post-install.txt ; \ + done + for s in $(CLIENT_OTHER) ;do \ + d=$(APP_LIB_DIR)/$${s} ; \ + mkdir -p $${d%/*} ; \ + install -o root -m 0644 $${s} $${d} ; \ + done + for s in $(DOCS) ;do \ + d=$(APP_DOC_DIR)/$${s} ; \ + mkdir -p $${d%/*} ; \ + install -o root -m 0644 $${s} $${d} ; \ + done + mkdir -p $(PREFIX)/bin install -o root -m 0755 $(APP_NAME) $(PREFIX)/bin/$(APP_NAME) uninstall: diff --git a/dl.c b/dl.c index b505302..4702fae 100644 --- a/dl.c +++ b/dl.c @@ -81,9 +81,12 @@ MA 02111, USA. #include "constants.h" #include "dir_list.h" -#if defined(__darwin__) +#ifdef __APPLE__ +#include +#if TARGET_OS_MAC #include #endif +#endif #if defined(__FreeBSD__) #include @@ -456,7 +459,7 @@ int ret_dirent(FILE_ENTRY *ep) gb[0]=RET_DIRENT; gb[1]=LEN_RET_DIRENT; - if (ep && ep->client_fname) { +// if (ep && ep->client_fname) { // name memset (gb + 2, ' ', TPDD_FILENAME_LEN); @@ -470,7 +473,7 @@ int ret_dirent(FILE_ENTRY *ep) // size gb[27]=(uint8_t)(ep->len >> 0x08); // most significant byte gb[28]=(uint8_t)(ep->len & 0xFF); // least significant byte - } +// } dbg(3,"\"%24.24s\"\n",gb+2); @@ -1235,7 +1238,7 @@ int main(int argc, char **argv) // default client tty device strcpy (client_tty_name,S_(DEFAULT_CLIENT_TTY)); - if (client_tty_name[0]!='/') { + if (client_tty_name[0] && client_tty_name[0]!='/') { strcpy(client_tty_name,"/dev/"); strcat(client_tty_name,S_(DEFAULT_CLIENT_TTY)); } @@ -1283,6 +1286,7 @@ int main(int argc, char **argv) switch (i++) { case 0: // tty device switch (argv[optind][0]) { + case 0x00: break; case '/': strcpy (client_tty_name,argv[optind]); break; From 3196297f0fdcc420bbb21cab988750f9240f5916 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 16 Jun 2022 23:40:02 -0400 Subject: [PATCH 051/206] fix default tty, fix ret_dirent --- Makefile | 12 ++++++------ dl.c | 56 ++++++++++++++++++++++++++++++-------------------------- 2 files changed, 36 insertions(+), 32 deletions(-) diff --git a/Makefile b/Makefile index 3051c04..ae35bb5 100644 --- a/Makefile +++ b/Makefile @@ -42,19 +42,19 @@ CLIENT_OTHER := \ DOCS := dl.do README.txt README.md LICENSE $(CLIENT_DOCS) SOURCES := dl.c dir_list.c -DEFINES := \ - -DAPP_VERSION=$(APP_VERSION) \ - -DAPP_LIB_DIR=$(APP_LIB_DIR) \ - -DDEFAULT_CLIENT_TTY=$(DEFAULT_CLIENT_TTY) - ifeq ($(OS),Darwin) # /dev/cu.usbserial-AB0MQNN1 - DEFAULT_CLIENT_TTY := cu.usbserial-* + #DEFAULT_CLIENT_TTY := cu.usbserial-* else DEFAULT_CLIENT_TTY := ttyUSB0 LDLIBS += -lutil endif +DEFINES := \ + -DAPP_VERSION=$(APP_VERSION) \ + -DAPP_LIB_DIR=$(APP_LIB_DIR) \ + -DDEFAULT_CLIENT_TTY=$(DEFAULT_CLIENT_TTY) + ifdef DEBUG CFLAGS += -g endif diff --git a/dl.c b/dl.c index 4702fae..0496972 100644 --- a/dl.c +++ b/dl.c @@ -118,10 +118,9 @@ MA 02111, USA. #define DEFAULT_CLIENT_BAUD B19200 #endif -// most things get away with 5 here. -// rxcini.do for REXCPM setup, requires 6. -// new high-water mark: TS-DOS.200 requires 7. -// If this is 6, a "?" (print) on line 3 gets dropped every time. +// Most things get away with 5ms. +// REXCPM rxcini.do requires 6ms. +// TS-DOS.200 requires 7ms. (a "?" on line 3 gets dropped) #define DEFAULT_BASIC_BYTE_MS 7 #define DEFAULT_TPDD_FILE_ATTR 0x46 // F @@ -136,18 +135,22 @@ MA 02111, USA. #define DEFAULT_DME_DIR_LABEL "<>" // DIR_LABEL='/' // Support for Ultimate ROM-II TS-DOS loader: see ref/ur2.txt -// files from share root dir that are always readable in any cd path -// TODO -// * put these in an array -// * allow user to specify an arbitrary list of magic files -// * 3 or more search paths: cwd, share-root, ~/.local/app, app-lib -// any file in the list is searched first in the current dir, -// then in the root shared dir, then in a specified lib/share dir. -#define DOS100 "DOS100.CO" -#define DOS200 "DOS200.CO" -#define DOSNEC "DOSNEC.CO" -//#define DOSK85 "DOSK85.CO" // probably don't exist -//#define DOSM10 "DOSM10.CO" +// files that are always readable in any cd path. +// Search path for any of these: cwd, then share root. +// TODO add $XDG_DATA_HOME (~/.local/share/myapp mac: ~/Library/myapp/) +// then APP_LIB_DIR +char * magic_files [] = { + "DOS100.CO", + "SAR100.CO", + "DOS200.CO", + "SAR200.CO", + "DOSNEC.CO", + "SARNEC.CO", + "DOSK85.CO", // these probably never existed but whatever + "SARK85.CO", + "DOSM10.CO", + "SARM10.CO" +}; // termios VMIN & VTIME #define C_CC_VMIN 1 @@ -312,14 +315,16 @@ void lsx (char *path,char *match) { closedir(dir); } -int do_magic_file(char *b) { +int check_magic_file(char *b) { dbg(3,"%s(\"%s\")\n",__func__,b); if (!enable_ur2_dos_hack) return 1; if (!dir_depth) return 1; // fake root hack not needed in actual root - if (dot_offset!=6) return 1; // There's no UR2 for WP-2 or CP/M etc - if (strncmp(b,DOS100,9)==0) return 0; - if (strncmp(b,DOS200,9)==0) return 0; - if (strncmp(b,DOSNEC,9)==0) return 0; + if (dot_offset!=6) return 1; // UR2 is only on the KC-85 platform + + int l = sizeof(magic_files)/sizeof(magic_files[0]); + int i; + for (i = 0; i < l; ++i) if (!strcmp(magic_files[i],b)) return 0; + return 1; } @@ -459,8 +464,7 @@ int ret_dirent(FILE_ENTRY *ep) gb[0]=RET_DIRENT; gb[1]=LEN_RET_DIRENT; -// if (ep && ep->client_fname) { - + if (ep) { // name memset (gb + 2, ' ', TPDD_FILENAME_LEN); if (dot_offset) for (i=0;ilen >> 0x08); // most significant byte gb[28]=(uint8_t)(ep->len & 0xFF); // least significant byte -// } + } dbg(3,"\"%24.24s\"\n",gb+2); @@ -504,7 +508,7 @@ void dirent_set_name(unsigned char *b) { if (cur_file) { dbg(3,"Exists: \"%s\" %u\n", cur_file->local_fname, cur_file->len); ret_dirent(cur_file); - } else if (do_magic_file(filename)==0) { + } else if (check_magic_file(filename)==0) { // let UR2 load /DOSxxx.CO from anywhere cur_file=make_file_entry(filename,0,0); char t[LOCAL_FILENAME_MAX+1] = {0x00}; @@ -513,7 +517,7 @@ void dirent_set_name(unsigned char *b) { memset(cur_file->local_fname,0x00,LOCAL_FILENAME_MAX); memcpy(cur_file->local_fname,t,LOCAL_FILENAME_MAX); struct stat st; if (!stat(cur_file->local_fname,&st)) cur_file->len=st.st_size; - dbg(3,"Virtual: \"%s\" <-- \"%s\"\n",cur_file->client_fname,cur_file->local_fname); + dbg(3,"Magic: \"%s\" <-- \"%s\"\n",cur_file->client_fname,cur_file->local_fname); ret_dirent(cur_file); } else { if (filename[dot_offset+1]==dme_dir_label[0] && filename[dot_offset+2]==dme_dir_label[1]) f = DIR_FLAG; From 6a04ba941d0345b6caa2974c42606b81afb956ba Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 17 Jun 2022 02:36:01 -0400 Subject: [PATCH 052/206] freebsd compatible int types --- dir_list.c | 6 +++--- dir_list.h | 4 ++-- dl.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dir_list.c b/dir_list.c index 9e4f26d..341672f 100644 --- a/dir_list.c +++ b/dir_list.c @@ -25,9 +25,9 @@ MA 02111, USA. #include #include "dir_list.h" -static u_int16_t allocated; -static u_int16_t ndx; -static u_int16_t cur; +static uint16_t allocated; +static uint16_t ndx; +static uint16_t cur; static FILE_ENTRY *tblp = 0; static FILE_ENTRY * current_record (void); diff --git a/dir_list.h b/dir_list.h index e9c0a77..1a120c5 100644 --- a/dir_list.h +++ b/dir_list.h @@ -30,8 +30,8 @@ typedef struct { char client_fname[TPDD_FILENAME_LEN+1]; char local_fname[LOCAL_FILENAME_MAX]; - u_int32_t len; - u_int8_t flags; + uint32_t len; + uint8_t flags; } FILE_ENTRY; int file_list_init (); diff --git a/dl.c b/dl.c index 0496972..447aca9 100644 --- a/dl.c +++ b/dl.c @@ -328,7 +328,7 @@ int check_magic_file(char *b) { return 1; } -FILE_ENTRY *make_file_entry(char *namep, u_int32_t len, u_int8_t flags) +FILE_ENTRY *make_file_entry(char *namep, uint32_t len, uint8_t flags) { dbg(3,"%s(\"%s\")\n",__func__,namep); static FILE_ENTRY f; From 9570f6da258ee97442984437c213cb78085565e8 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 18 Jun 2022 03:33:58 -0400 Subject: [PATCH 053/206] fix loaders install path --- Makefile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index ae35bb5..a568b20 100644 --- a/Makefile +++ b/Makefile @@ -66,16 +66,15 @@ $(APP_NAME): $(SOURCES) $(CC) $(CFLAGS) $(DEFINES) $(SOURCES) $(LDLIBS) -o $(@) install: $(APP_NAME) $(CLIENT_LOADERS) $(CLIENT_OTHER) $(DOCS) + mkdir -p $(APP_LIB_DIR) for s in $(CLIENT_LOADERS) ;do \ - d=$(APP_LIB_DIR)/$${s} ; \ - mkdir -p $${d%/*} ; \ + d=$(APP_LIB_DIR)/$${s##*/} ; \ install -o root -m 0644 $${s} $${d} ; \ install -o root -m 0644 $${s}.pre-install.txt $${d}.pre-install.txt ; \ install -o root -m 0644 $${s}.post-install.txt $${d}.post-install.txt ; \ done for s in $(CLIENT_OTHER) ;do \ - d=$(APP_LIB_DIR)/$${s} ; \ - mkdir -p $${d%/*} ; \ + d=$(APP_LIB_DIR)/$${s##*/} ; \ install -o root -m 0644 $${s} $${d} ; \ done for s in $(DOCS) ;do \ From 90766c772f5b2b00d148ec4ba237c003e5177e0b Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 18 Jun 2022 05:29:25 -0400 Subject: [PATCH 054/206] refactor the tty & share path handling --- Makefile | 6 +- dl.c | 198 ++++++++++++++++++++++++++++--------------------------- 2 files changed, 104 insertions(+), 100 deletions(-) diff --git a/Makefile b/Makefile index a568b20..c2546ee 100644 --- a/Makefile +++ b/Makefile @@ -51,9 +51,9 @@ else endif DEFINES := \ - -DAPP_VERSION=$(APP_VERSION) \ - -DAPP_LIB_DIR=$(APP_LIB_DIR) \ - -DDEFAULT_CLIENT_TTY=$(DEFAULT_CLIENT_TTY) + -DAPP_VERSION=\"$(APP_VERSION)\" \ + -DAPP_LIB_DIR=\"$(APP_LIB_DIR)\" \ + -DDEFAULT_CLIENT_TTY=\"$(DEFAULT_CLIENT_TTY)\" ifdef DEBUG CFLAGS += -g diff --git a/dl.c b/dl.c index 447aca9..3b844c8 100644 --- a/dl.c +++ b/dl.c @@ -39,11 +39,10 @@ MA 02111, USA. * payload - length bytes range is 0-128 * checksum - 1 byte includes type, length, and payload * - * Most functions pass around a buffer containing this entire - * structure, often minus the checksum. checksum() itself - * takes this as input for instance. + * Most functions pass around a pointer to a buffer containing this + * entire structure. * - * Frequently a buffer will be declared with a SIZE+3, which is + * Frequently a buffer will be declared with a SIZE+3, where * SIZE will be a pertinent payload size of a given command, * like 128 for the max possible, or 11 for a DME message, etc, * and the +3 is 3 extra bytes for type, length, and checksum. @@ -51,8 +50,8 @@ MA 02111, USA. * Similarly, most functions include frequent references to these * byte offsets gb[0], gb[1], gb[2], gb+2, gb[gb[1]+2]. * - * functions named req_*() receive a command in this format - * functions named ret_*() generate a response in this format + * functions named req_*() (request) receive a command in this format + * functions named ret_*() (return) generate a response in this format * * There is also an FDC-mode that TPDD1/FB-100 drives have, which has * a completely different format. This program only implements @@ -61,7 +60,7 @@ MA 02111, USA. * some of which this program does implement. * * See the ref/ directory for more details, including a copy of the - * TPDD1 software manual. There is no TPDD2 software manual known yet. + * TPDD1 software manual. There is no known TPDD2 software manual. */ #include @@ -101,17 +100,14 @@ MA 02111, USA. #include #endif -#define STRINGIFY2(X) #X -#define S_(X) STRINGIFY2(X) - /*** config **************************************************/ #ifndef APP_LIB_DIR -#define APP_LIB_DIR . +#define APP_LIB_DIR "." #endif #ifndef DEFAULT_CLIENT_TTY -#define DEFAULT_CLIENT_TTY ttyS0 +#define DEFAULT_CLIENT_TTY "ttyS0" #endif #ifndef DEFAULT_CLIENT_BAUD @@ -165,6 +161,8 @@ bool rtscts = false; unsigned dot_offset = 6; // 0 for raw, 6 for KC-85, 8 for WP-2 int client_baud = DEFAULT_CLIENT_BAUD; int BASIC_byte_us = DEFAULT_BASIC_BYTE_MS*1000; +char client_tty_name[PATH_MAX] = DEFAULT_CLIENT_TTY; +char app_lib_dir[PATH_MAX] = APP_LIB_DIR; char dme_root_label[7] = DEFAULT_DME_ROOT_LABEL; char dme_parent_label[7] = DEFAULT_DME_PARENT_LABEL; char dme_dir_label[3] = DEFAULT_DME_DIR_LABEL; @@ -234,6 +232,23 @@ void set_baud (char * s) { client_baud=atoi(s)==9600?B9600:B19200; } +void resolve_client_tty_name () { + dbg(3,"%s()\n",__func__); + switch (client_tty_name[0]) { + case 0x00: + case '-': + strcpy (client_tty_name,"/dev/tty"); + client_tty_fd=1; + break; + default: + if(!access(client_tty_name,F_OK)) break; + char t[PATH_MAX]; + strcpy(t,client_tty_name); + strcpy(client_tty_name,"/dev/"); + strcat(client_tty_name,t); + } +} + // set termios VMIN & VTIME void client_tty_vmt(int m,int t) { if (m<-1 || t<-1) tcgetattr(client_tty_fd,&client_termios); @@ -245,6 +260,45 @@ void client_tty_vmt(int m,int t) { tcsetattr(client_tty_fd,TCSANOW,&client_termios); } +int open_client_tty () { + dbg(3,"%s()\n",__func__); + + if (client_tty_fd<0) + client_tty_fd=open((char *)client_tty_name,O_RDWR,O_NOCTTY); + + if (client_tty_fd<0) { + dbg(1,"Can't open \"%s\"\n",client_tty_name); + return 1; + } + + if (getty_mode) { + if (login_tty(client_tty_fd)==0) client_tty_fd = STDIN_FILENO; + else (void)(daemon(1,1)+1); + } + + (void)(tcflush(client_tty_fd, TCIOFLUSH)+1); + + int off=0; + ioctl(client_tty_fd, FIONBIO, &off); + ioctl(client_tty_fd, FIOASYNC, &off); + + if (tcgetattr(client_tty_fd,&client_termios)==-1) return 21; + + cfmakeraw(&client_termios); + client_termios.c_cflag |= CLOCAL|CS8; + + if (rtscts) client_termios.c_cflag |= CRTSCTS; + else client_termios.c_cflag &= ~CRTSCTS; + + if (cfsetspeed(&client_termios,client_baud)==-1) return 22; + + if (tcsetattr(client_tty_fd,TCSANOW,&client_termios)==-1) return 23; + + client_tty_vmt(-2,-2); + + return 0; +} + int write_client_tty(void *b, int n) { dbg(4,"%s(%u)\n",__func__,n); n = write(client_tty_fd,b,n); @@ -1053,19 +1107,19 @@ void get_fdc_cmd(void) { void show_bootstrap_help() { dbg(0, - "%1$s - DeskLink+ " S_(APP_VERSION) " - \"bootstrap\" help\n\n" - "Available loader files (in " S_(APP_LIB_DIR) "):\n\n",args[0]); + "%1$s - DeskLink+ " APP_VERSION " - \"bootstrap\" help\n\n" + "Available loader files (in %2$s):\n\n",args[0],app_lib_dir); - dbg(0, "TRS-80 Model 100 & 102 :"); lsx(S_(APP_LIB_DIR),"100"); - dbg(0,"\nTANDY Model 200 :"); lsx(S_(APP_LIB_DIR),"200"); - dbg(0,"\nNEC PC-8201(a)/PC-8300 :"); lsx(S_(APP_LIB_DIR),"NEC"); - dbg(0,"\nKyotronic KC-85 :"); lsx(S_(APP_LIB_DIR),"K85"); - dbg(0,"\nOlivetti M-10 :"); lsx(S_(APP_LIB_DIR),"M10"); + dbg(0, "TRS-80 Model 100/102 :"); lsx(app_lib_dir,"100"); + dbg(0,"\nTANDY Model 200 :"); lsx(app_lib_dir,"200"); + dbg(0,"\nNEC PC-8201/PC-8300 :"); lsx(app_lib_dir,"NEC"); + dbg(0,"\nKyotronic KC-85 :"); lsx(app_lib_dir,"K85"); + dbg(0,"\nOlivetti M-10 :"); lsx(app_lib_dir,"M10"); dbg(0, "\n\n" - "Filenames given without any leading path are taken from above.\n" - "To specify a file in the current directory, include the \"./\"\n" + "Filenames given without any path are searched from above\n" + "as well as the current dir.\n" "Examples:\n\n" " %1$s -b TS-DOS.100\n" " %1$s -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100\n" @@ -1105,11 +1159,13 @@ int send_BASIC(char *f) fflush(stdout); while(read(fd,&b,1)==1) slowbyte(b); close(fd); - if (b!=0x0A && b!=BASIC_EOL && b!=BASIC_EOF) slowbyte(BASIC_EOL); - if (b!=BASIC_EOF) slowbyte(BASIC_EOF); + if (dot_offset) { // don't modify data in raw mode + if (b!=0x0A && b!=BASIC_EOL && b!=BASIC_EOF) slowbyte(BASIC_EOL); + if (b!=BASIC_EOF) slowbyte(BASIC_EOF); + } + close(client_tty_fd); if (debug) puts(""); puts("DONE"); - close(client_tty_fd); return 0; } @@ -1129,7 +1185,7 @@ int bootstrap(char *f) strcpy(loader_file,f); if (loader_file[0]==0) { - strcpy(loader_file,S_(APP_LIB_DIR)); + strcpy(loader_file,app_lib_dir); strcat(loader_file,"/"); strcat(loader_file,f); } @@ -1188,7 +1244,6 @@ void show_config () { dbg(0,"client_tty_name : \"%s\"\n",client_tty_name); dbg(0,"share_path : \"%s\"\n",cwd); dbg(2,"opr_mode : %d\n",opr_mode); - dbg(2,"dot_offset : %d\n",dot_offset); dbg(2,"baud : %d\n",client_baud==B9600?9600:client_baud==B19200?19200:-1); dbg(0,"dme_disabled : %s\n",dme_disabled?"true":"false"); dbg(2,"dme_root_label : \"%-6.6s\"\n",dme_root_label); @@ -1200,28 +1255,24 @@ void show_config () { void show_main_help() { dbg(0, - "%1$s - DeskLink+ " S_(APP_VERSION) " - help\n\n" + "%1$s - DeskLink+ " APP_VERSION " - help\n\n" "usage: %1$s [options] [tty_device] [share_path]\n" "\n" "options:\n" - " -0 Raw mode. Do not munge filenames in any way.\n" - " Disables 6.2 or 8.2 filename trucating & padding\n" - " Changes the attribute byte to ' ' instead of 'F'\n" - " Disables adding the TS-DOS \".<>\" extension for directories\n" - " The entire 24 bytes of the filename field on a real drive is used.\n" - " -a c Attr - attribute used for all files (F)\n" - " -b file Bootstrap: Send loader file to client\n" - " -d tty Serial device to client (" S_(DEFAULT_CLIENT_TTY) ")\n" + " -0 Raw mode - no filename munging, attr = ' '\n" + " -a c Attr - attribute used for all files (%2$c)\n" + " -b file Bootstrap - send loader file to client\n" + " -d tty Serial device connected to client (" DEFAULT_CLIENT_TTY ")\n" " -g Getty mode - run as daemon\n" " -h Print this help\n" - " -l List available loader files and bootstrap help\n" + " -l List loader files and show bootstrap help\n" " -p dir Share path - directory with files to be served (.)\n" " -r RTS/CTS hardware flow control\n" " -s # Speed - serial port baud rate 9600 or 19200 (19200)\n" " -u Uppercase all filenames\n" " -v Verbose/debug mode - more v's = more verbose\n" " -w WP-2 mode - 8.2 filenames\n" - " -z # Milliseconds per byte for bootstrap (" S_(DEFAULT_BASIC_BYTE_MS) ")\n" + " -z # Milliseconds per byte for bootstrap (%3$d)\n" "\n" "Alternative to the -d and -p options,\n" "The 1st non-option argument is another way to specify the tty device.\n" @@ -1230,24 +1281,16 @@ void show_main_help() { " %1$s\n" " %1$s -vv /dev/ttyS0\n" " %1$s ttyUSB1 -v -w ~/Documents/wp2files\n\n" - ,args[0]); + ,args[0],DEFAULT_TPDD_FILE_ATTR,DEFAULT_BASIC_BYTE_MS); } int main(int argc, char **argv) { - int off=0; int i; bool x = false; args = argv; - // default client tty device - strcpy (client_tty_name,S_(DEFAULT_CLIENT_TTY)); - if (client_tty_name[0] && client_tty_name[0]!='/') { - strcpy(client_tty_name,"/dev/"); - strcat(client_tty_name,S_(DEFAULT_CLIENT_TTY)); - } - - // environment variable overrides for some things that don't have switches + // environment if (getenv("OPR_MODE")) opr_mode = atoi(getenv("OPR_MODE")); if (getenv("DISABLE_DME")) dme_disabled = true; if (getenv("DISABLE_UR2_DOS_HACK")) enable_ur2_dos_hack = false; @@ -1259,7 +1302,7 @@ int main(int argc, char **argv) if (getenv("DIR_LABEL")) snprintf(dme_dir_label,3,"%-2.2s",getenv("DIR_LABEL")); if (getenv("ATTR")) default_attr = *getenv("ATTR"); - // commandline options + // commandline while ((i = getopt (argc, argv, ":0a:b:d:ghlp:rs:uvwz:^")) >=0) switch (i) { case '0': dot_offset=0; upcase=false; default_attr=0x20; break; @@ -1279,8 +1322,8 @@ int main(int argc, char **argv) case '^': x=true; break; case ':': dbg(0,"\"-%c\" requires a value\n",optopt); break; case '?': - if (isprint(optopt)) dbg(0,"Unknown option `-%c'.\n",optopt); - else dbg(0,"Unknown option character `\\x%x'.\n",optopt); + if (isprint(optopt)) dbg(0,"Unknown option \"-%c\"\n",optopt); + else dbg(0,"Unknown option character \"0x%02X\"\n",optopt); default: show_main_help(); return 1; } @@ -1288,67 +1331,28 @@ int main(int argc, char **argv) for (i=0; optind < argc; optind++) { if (x) dbg(1,"non-option arg %u: \"%s\"\n",i,argv[optind]); switch (i++) { - case 0: // tty device - switch (argv[optind][0]) { - case 0x00: break; - case '/': - strcpy (client_tty_name,argv[optind]); - break; - case '-': - if (argv[optind][1]==0x00) { - strcpy (client_tty_name,"/dev/tty"); - client_tty_fd = 1; - break; - } - default: - strcpy(client_tty_name,"/dev/"); - strcat(client_tty_name,argv[optind]); - } break; - case 1: // share path - (void)(chdir(argv[optind])+1); break; + case 0: strcpy (client_tty_name,argv[optind]); break; // tty device + case 1: (void)(chdir(argv[optind])+1); break; // share path default: dbg(0,"Unknown argument: \"%s\"\n",argv[optind]); } } + resolve_client_tty_name(); + (void)(getcwd(cwd,PATH_MAX-1)+1); if (x) { show_config(); return 0; } - dbg(0,"DeskLink+ " S_(APP_VERSION) "\n" + dbg(0,"DeskLink+ " APP_VERSION "\n" "Serial Device: %s\n" - "Working Dir: %s\n",client_tty_name,cwd); - - if (client_tty_fd<0) - client_tty_fd=open((char *)client_tty_name,O_RDWR,O_NOCTTY); - - if (client_tty_fd<0) { - dbg(1,"Can't open \"%s\"\n",client_tty_name); - return 1; - } - - // getty mode - if (getty_mode) { - if (login_tty(client_tty_fd)==0) client_tty_fd = STDIN_FILENO; - else (void)(daemon(1,1)+1); - } + "Working Dir : %s\n",client_tty_name,cwd); - // serial line setup - (void)(tcflush(client_tty_fd, TCIOFLUSH)+1); - ioctl(client_tty_fd, FIONBIO, &off); - ioctl(client_tty_fd, FIOASYNC, &off); - if (tcgetattr(client_tty_fd,&client_termios)==-1) return 21; - cfmakeraw(&client_termios); - client_termios.c_cflag |= CLOCAL|CS8; - if (rtscts) client_termios.c_cflag |= CRTSCTS; - else client_termios.c_cflag &= ~CRTSCTS; - if (cfsetspeed(&client_termios,client_baud)==-1) return 22; - if (tcsetattr(client_tty_fd,TCSANOW,&client_termios)==-1) return 23; - client_tty_vmt(-2,-2); + if ((i=open_client_tty())) return i; // send loader and exit if (bootstrap_mode) return (bootstrap(bootstrap_file)); - // create the file list + // initialize the file list file_list_init(); if (debug) update_file_list(NO_RET); From 804410790c7d62b2290846b86e94c2eb6ed20299 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 18 Jun 2022 05:33:01 -0400 Subject: [PATCH 055/206] add app dir to -^ output --- dl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dl.c b/dl.c index 3b844c8..ea6d535 100644 --- a/dl.c +++ b/dl.c @@ -1241,6 +1241,7 @@ void show_config () { dbg(0,"BASIC_byte_ms : %d\n",BASIC_byte_us/1000); dbg(0,"bootstrap_mode : %s\n",bootstrap_mode?"true":"false"); dbg(0,"bootstrap_file : \"%s\"\n",bootstrap_file); + dbg(0,"app_lib_dir : \"%s\"\n",app_lib_dir); dbg(0,"client_tty_name : \"%s\"\n",client_tty_name); dbg(0,"share_path : \"%s\"\n",cwd); dbg(2,"opr_mode : %d\n",opr_mode); From 4db4d8beb7e65d4293dd8f763b5232bf4ee7881a Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 18 Jun 2022 05:37:04 -0400 Subject: [PATCH 056/206] dupe declare client_tty_name --- dl.c | 1 - 1 file changed, 1 deletion(-) diff --git a/dl.c b/dl.c index ea6d535..c9fe3cb 100644 --- a/dl.c +++ b/dl.c @@ -180,7 +180,6 @@ int o_file_h = -1; unsigned char gb[TPDD_DATA_MAX+3]; char cwd[PATH_MAX] = {0x00}; char dme_cwd[7] = DEFAULT_DME_ROOT_LABEL; -char client_tty_name[PATH_MAX]; char bootstrap_file[PATH_MAX] = {0x00}; int opr_mode = 1; // 0=FDC-mode 1=Operation-mode bool dme_detected = false; From 3d12680aacdcf1eb90b184c168c7e69a2b09ccd9 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 18 Jun 2022 06:05:20 -0400 Subject: [PATCH 057/206] allow bootstrap file w/o path --- dl.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dl.c b/dl.c index c9fe3cb..9260267 100644 --- a/dl.c +++ b/dl.c @@ -1178,10 +1178,9 @@ int bootstrap(char *f) if (f[0]=='~' && f[1]=='/') { strcpy(loader_file,getenv("HOME")); strcat(loader_file,f+1); - } + } else strcpy(loader_file,f); - if ((f[0]=='/') || (f[0]=='.' && f[1]=='/')) - strcpy(loader_file,f); + if (access(loader_file,F_OK)) memset(loader_file,0x00,PATH_MAX); if (loader_file[0]==0) { strcpy(loader_file,app_lib_dir); From 249e4bee20e85ff6489f9e1a9bde7e32ee90127d Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 18 Jun 2022 21:43:03 -0400 Subject: [PATCH 058/206] includes --- dl.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/dl.c b/dl.c index 9260267..7f4d4ee 100644 --- a/dl.c +++ b/dl.c @@ -80,12 +80,9 @@ MA 02111, USA. #include "constants.h" #include "dir_list.h" -#ifdef __APPLE__ -#include -#if TARGET_OS_MAC +#if defined(__APPLE__) && defined(__MACH__) #include #endif -#endif #if defined(__FreeBSD__) #include @@ -97,7 +94,6 @@ MA 02111, USA. #if defined(__linux__) #include -#include #endif /*** config **************************************************/ From 6472350a1682c11c06139e5b1fc88f89422dd9f6 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sat, 18 Jun 2022 23:11:21 -0400 Subject: [PATCH 059/206] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dc017c2..469acc0 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Docs from the past versions of this program. They don't exactly match this versi ``` make clean all && sudo make install ``` +(use gmake on BSD) ## uninstall ``` From 4d52ce2f74889520e854d6d0cc9c80c12c803b6a Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sat, 18 Jun 2022 23:12:16 -0400 Subject: [PATCH 060/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 469acc0..e7bd18c 100644 --- a/README.md +++ b/README.md @@ -123,4 +123,4 @@ If you had previously loaded TS-DOS and used it to navigate into a subdirectory, This version of dlplus has a special feature to support UR2, so that UR2 may still load DOS100.CO, DOS200.CO, or DOSNEC.CO no matter what subdirectory the server has been navigated to, as long as there is a copy in the root shared directory. The [clients/](clients/) directory includes copies of [DOS100.CO](clients/ts-dos/DOS100.CO), [DOS200.CO](clients/ts-dos/DOS200.CO), and [DOSNEC.CO](clients/ts-dos/DOSNEC.CO) -These are also installed to ```/usr/local/lib/dlplus/clients/ts-dos/``` by ```sudo make install``` +These are also installed to ```/usr/local/lib/dl``` by ```sudo make install``` From 4827f7bfaa34212d89e80651e8d51cc77549b703 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sun, 19 Jun 2022 05:49:23 -0400 Subject: [PATCH 061/206] exclusive tty access --- Makefile | 12 ++++++++---- dl.c | 20 ++++++++++---------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index c2546ee..4011119 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,6 @@ CLIENT_LOADERS := \ clients/tiny/TINY.100 \ # clients/power-dos/POWR-D.100 - CLIENT_DOCS := \ clients/teeny/teenydoc.txt \ clients/teeny/hownec.do \ @@ -43,10 +42,15 @@ DOCS := dl.do README.txt README.md LICENSE $(CLIENT_DOCS) SOURCES := dl.c dir_list.c ifeq ($(OS),Darwin) - # /dev/cu.usbserial-AB0MQNN1 - #DEFAULT_CLIENT_TTY := cu.usbserial-* + #DEFAULT_CLIENT_TTY := cu.* else - DEFAULT_CLIENT_TTY := ttyUSB0 + ifneq (,$(findstring BSD,$(OS))) + #DEFAULT_CLIENT_TTY := cu* + else ifeq ($(OS),Linux) + DEFAULT_CLIENT_TTY := ttyUSB0 + else + DEFAULT_CLIENT_TTY := ttyS0 + endif LDLIBS += -lutil endif diff --git a/dl.c b/dl.c index 7f4d4ee..8506561 100644 --- a/dl.c +++ b/dl.c @@ -76,11 +76,12 @@ MA 02111, USA. #include #include #include +#include #include #include "constants.h" #include "dir_list.h" -#if defined(__APPLE__) && defined(__MACH__) +#if defined(__APPLE__) || defined(__NetBSD__) || defined(OpenBSD) #include #endif @@ -88,10 +89,6 @@ MA 02111, USA. #include #endif -#if defined(__NetBSD__) || defined(OpenBSD) -#include -#endif - #if defined(__linux__) #include #endif @@ -237,10 +234,12 @@ void resolve_client_tty_name () { break; default: if(!access(client_tty_name,F_OK)) break; - char t[PATH_MAX]; + char t[PATH_MAX]={0x00}; + int i = 0; strcpy(t,client_tty_name); strcpy(client_tty_name,"/dev/"); - strcat(client_tty_name,t); + if (!strncmp(client_tty_name,t,5)) i=5; + strcat(client_tty_name,t+i); } } @@ -258,14 +257,15 @@ void client_tty_vmt(int m,int t) { int open_client_tty () { dbg(3,"%s()\n",__func__); - if (client_tty_fd<0) - client_tty_fd=open((char *)client_tty_name,O_RDWR,O_NOCTTY); + if (client_tty_fd<0) client_tty_fd=open((char *)client_tty_name,O_RDWR,O_NOCTTY); if (client_tty_fd<0) { - dbg(1,"Can't open \"%s\"\n",client_tty_name); + dbg(1,"Can't open \"%s\": %s\n",client_tty_name,strerror(errno)); return 1; } + ioctl(client_tty_fd,TIOCEXCL); + if (getty_mode) { if (login_tty(client_tty_fd)==0) client_tty_fd = STDIN_FILENO; else (void)(daemon(1,1)+1); From c8260c4ddebe5ae197da29f80c9e531ac5ea924d Mon Sep 17 00:00:00 2001 From: "Brian K. White" Date: Sun, 19 Jun 2022 07:32:24 -0400 Subject: [PATCH 062/206] FreeBSD usbserial device notes --- Makefile | 2 +- README.md | 6 +++++- ref/freebsd.txt | 28 ++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 ref/freebsd.txt diff --git a/Makefile b/Makefile index 4011119..952e982 100644 --- a/Makefile +++ b/Makefile @@ -45,7 +45,7 @@ ifeq ($(OS),Darwin) #DEFAULT_CLIENT_TTY := cu.* else ifneq (,$(findstring BSD,$(OS))) - #DEFAULT_CLIENT_TTY := cu* + #DEFAULT_CLIENT_TTY := ttyU0 else ifeq ($(OS),Linux) DEFAULT_CLIENT_TTY := ttyUSB0 else diff --git a/README.md b/README.md index e7bd18c..e5e9021 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,6 @@ Docs from the past versions of this program. They don't exactly match this versi ``` make clean all && sudo make install ``` -(use gmake on BSD) ## uninstall ``` @@ -124,3 +123,8 @@ This version of dlplus has a special feature to support UR2, so that UR2 may sti The [clients/](clients/) directory includes copies of [DOS100.CO](clients/ts-dos/DOS100.CO), [DOS200.CO](clients/ts-dos/DOS200.CO), and [DOSNEC.CO](clients/ts-dos/DOSNEC.CO) These are also installed to ```/usr/local/lib/dl``` by ```sudo make install``` + +## OS Compatibility +Tested on Linux, Macos, FreeBSD + +Notes for [FreeBSD](ref/freebsd.txt) diff --git a/ref/freebsd.txt b/ref/freebsd.txt new file mode 100644 index 0000000..58b9cdf --- /dev/null +++ b/ref/freebsd.txt @@ -0,0 +1,28 @@ +Notes for FreeBSD + +-- Building -- + use gmake instead of make + + +-- Permissions -- + +Create the file: +/usr/local/etc/devd/usbserial.conf + + notify 100 { + match "system" "DEVFS"; + match "subsystem" "CDEV"; + match "type" "CREATE"; + match "cdev" "ttyU[0-9]+"; + action "chgrp dialer /dev/$cdev ;chmod g+rw /dev/$cdev"; + }; + + +Restart the devd service: +service devd restart + +Add yourself to the dialer group (replace "bkw" with your login name): +pw group mod dialer -m bkw + +Re-plug the usb-serial adapter. + From 686e26ca4e884424fd6576caacf04bbd873f692c Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sun, 19 Jun 2022 11:27:51 -0400 Subject: [PATCH 063/206] UR2 gets DOS___.CO files from /usr/local/lib/dl if not in share dir --- README.md | 15 +++++++-------- dl.c | 38 ++++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index e5e9021..134dc60 100644 --- a/README.md +++ b/README.md @@ -110,19 +110,18 @@ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl ``` ## UR-II Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS from disk on-the-fly. +This allows you to keep the TS-DOS executable on the disk instead of in ram, and it is loaded and then discarded on-demand by selecting the TS-DOS menu entry from inside UR2. -This allows you to keep the TS-DOS executable on the disk instead of in ram, and it is loaded and then discarded on-demand by selecting the TS-DOS menu entry from inside UR2. You don't have to install TS-DOS via the bootstrapper if you have an UR2 option rom installed. +A potential problem with this, with an emulator that supports TS_DOS directories, is that UR2 doesn't know anything about directories, and just tries to load a file named "DOS___.CO". -For that feature to work, a file named DOS100.CO, DOS200.CO, or DOSNEC.CO (depending on your model of computer) must exist on the "disk". +If you had previously used the UR-II TS-DOS feature and used it to navigate into a subdirectory that didn't contain a copy of DOS___.CO, then UR2 would normally fail to load TS-DOS after that, until you restarted the TPDD server to make it go back to the root share dir. -UR2 doesn't know anything about directories, and just tries to load a file named "DOS___.CO". - -If you had previously loaded TS-DOS and used it to navigate into a subdirectory, and that subdirectory didn't also have a copy of DOS___.CO in it, then UR2 would normally fail to load TS-DOS after that, until you restarted the TPDD server to make it go back to the root share dir. - -This version of dlplus has a special feature to support UR2, so that UR2 may still load DOS100.CO, DOS200.CO, or DOSNEC.CO no matter what subdirectory the server has been navigated to, as long as there is a copy in the root shared directory. +This version of dlplus has special support for UR2, so that UR2 may still load DOS100.CO, DOS200.CO, or DOSNEC.CO no matter what subdirectory the server has been navigated to, and no matter if the share path contains a copy enywhere in any directory. +When the client requests any of the special filenames, the file is searched in the current directory first, like any other file. If it's found, it's used. +If the file is not found in the current dir, then the root share dir is tried next, and if that fails then finally the app lib dir is tried. The [clients/](clients/) directory includes copies of [DOS100.CO](clients/ts-dos/DOS100.CO), [DOS200.CO](clients/ts-dos/DOS200.CO), and [DOSNEC.CO](clients/ts-dos/DOSNEC.CO) -These are also installed to ```/usr/local/lib/dl``` by ```sudo make install``` +These are also installed to ```/usr/local/lib/dl``` by ```sudo make install```, but you can pretty much ignore them since they will be loaded from the lib dir any time they are needed. You don't have to place copies in your share dir like you would have to on a readl disk. ## OS Compatibility Tested on Linux, Macos, FreeBSD diff --git a/dl.c b/dl.c index 8506561..3e98fea 100644 --- a/dl.c +++ b/dl.c @@ -124,10 +124,10 @@ MA 02111, USA. #define DEFAULT_DME_DIR_LABEL "<>" // DIR_LABEL='/' // Support for Ultimate ROM-II TS-DOS loader: see ref/ur2.txt -// files that are always readable in any cd path. -// Search path for any of these: cwd, then share root. +// files that are always readable in any cd path, or even if +// the file doesn't exist anywhere in the share tree. +// Search path for any of these: cwd, then share root, then app_lib_dir. // TODO add $XDG_DATA_HOME (~/.local/share/myapp mac: ~/Library/myapp/) -// then APP_LIB_DIR char * magic_files [] = { "DOS100.CO", "SAR100.CO", @@ -354,26 +354,19 @@ void lsx (char *path,char *match) { DIR *dir = opendir(path); int i; if (dir == NULL){dbg(0,"Cannot open \"%s\"",path); return;} - while ((files = readdir(dir)) != NULL) { for (i=strlen(files->d_name);files->d_name[i]!='.';i--); - if (files->d_name[i+1]==match[0] && files->d_name[i+2]==match[1] && files->d_name[i+3]==match[2]) - dbg(0," %s",files->d_name); + if (!strcmp(files->d_name+i+1,match)) dbg(0," %s",files->d_name); } - closedir(dir); } int check_magic_file(char *b) { dbg(3,"%s(\"%s\")\n",__func__,b); if (!enable_ur2_dos_hack) return 1; - if (!dir_depth) return 1; // fake root hack not needed in actual root if (dot_offset!=6) return 1; // UR2 is only on the KC-85 platform - int l = sizeof(magic_files)/sizeof(magic_files[0]); - int i; - for (i = 0; i < l; ++i) if (!strcmp(magic_files[i],b)) return 0; - + for (int i=0;i/DOSxxx.CO from anywhere cur_file=make_file_entry(filename,0,0); char t[LOCAL_FILENAME_MAX+1] = {0x00}; + // try share root for (int i=dir_depth;i>0;i--) strncat(t,"../",3); strncat(t,cur_file->local_fname,LOCAL_FILENAME_MAX-dir_depth*3); - memset(cur_file->local_fname,0x00,LOCAL_FILENAME_MAX); - memcpy(cur_file->local_fname,t,LOCAL_FILENAME_MAX); - struct stat st; if (!stat(cur_file->local_fname,&st)) cur_file->len=st.st_size; - dbg(3,"Magic: \"%s\" <-- \"%s\"\n",cur_file->client_fname,cur_file->local_fname); - ret_dirent(cur_file); + struct stat st; int e=stat(t,&st); + if (e) { // try loaders dir + strcpy(t,app_lib_dir); + strcat(t,"/"); + strcat(t,cur_file->local_fname); + e=stat(t,&st); + } + if (e) ret_dirent(NULL); else { + strcpy(cur_file->local_fname,t); + cur_file->len=st.st_size; + dbg(3,"Magic: \"%s\" <-- \"%s\"\n",cur_file->client_fname,cur_file->local_fname); + ret_dirent(cur_file); + } } else { - if (filename[dot_offset+1]==dme_dir_label[0] && filename[dot_offset+2]==dme_dir_label[1]) f = DIR_FLAG; + if (!strncmp(filename+dot_offset+1,dme_dir_label,2)) f = DIR_FLAG; cur_file=make_file_entry(collapse_padded_name(filename), 0, f); dbg(3,"New %s: \"%s\"\n",f==DIR_FLAG?"Directory":"File",cur_file->local_fname); ret_dirent(NULL); From affbd37b9d29878a53fb94d0604411487cefa1bb Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sun, 19 Jun 2022 11:34:06 -0400 Subject: [PATCH 064/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 134dc60..58f5d7c 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ When the client requests any of the special filenames, the file is searched in t If the file is not found in the current dir, then the root share dir is tried next, and if that fails then finally the app lib dir is tried. The [clients/](clients/) directory includes copies of [DOS100.CO](clients/ts-dos/DOS100.CO), [DOS200.CO](clients/ts-dos/DOS200.CO), and [DOSNEC.CO](clients/ts-dos/DOSNEC.CO) -These are also installed to ```/usr/local/lib/dl``` by ```sudo make install```, but you can pretty much ignore them since they will be loaded from the lib dir any time they are needed. You don't have to place copies in your share dir like you would have to on a readl disk. +These are also installed to ```/usr/local/lib/dl``` by ```sudo make install```, but you can pretty much ignore them since they will be loaded from the lib dir any time they are needed. You don't have to place copies in your share dir like you would have to on a real disk. ## OS Compatibility Tested on Linux, Macos, FreeBSD From 3bd1304ecbf2a8ffb35ce9744824829ea0a39a0d Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sun, 19 Jun 2022 11:36:07 -0400 Subject: [PATCH 065/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 58f5d7c..1307390 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,7 @@ A potential problem with this, with an emulator that supports TS_DOS directories If you had previously used the UR-II TS-DOS feature and used it to navigate into a subdirectory that didn't contain a copy of DOS___.CO, then UR2 would normally fail to load TS-DOS after that, until you restarted the TPDD server to make it go back to the root share dir. -This version of dlplus has special support for UR2, so that UR2 may still load DOS100.CO, DOS200.CO, or DOSNEC.CO no matter what subdirectory the server has been navigated to, and no matter if the share path contains a copy enywhere in any directory. +This version of dlplus has special support for UR2, so that UR2 may still load DOS100.CO, DOS200.CO, or DOSNEC.CO no matter what subdirectory the server has been navigated to, and no matter if the share path contains a copy anywhere in any directory. When the client requests any of the special filenames, the file is searched in the current directory first, like any other file. If it's found, it's used. If the file is not found in the current dir, then the root share dir is tried next, and if that fails then finally the app lib dir is tried. From 1cb0169856ae6e29ea64e6a60465d4314ee95fe8 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 22 Jun 2022 18:36:04 -0400 Subject: [PATCH 066/206] bsd makefile to catch bsd make --- BSDmakefile | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 BSDmakefile diff --git a/BSDmakefile b/BSDmakefile new file mode 100644 index 0000000..5b9b2fa --- /dev/null +++ b/BSDmakefile @@ -0,0 +1,3 @@ +default: + @echo "Please run gmake instead." + exit 1 From 81aa10d7347ede4bd810bb62cda89baa41424a70 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 22 Jun 2022 18:58:01 -0400 Subject: [PATCH 067/206] docs, D_WEENY.100, Disk_Power.K85 --- Makefile | 38 +++--- README.md | 47 ++++---- clients/disk_power/Disk_Power.K85 | 1 + .../Disk_Power.K85.post-install.txt | 1 + .../disk_power/Disk_Power.K85.pre-install.txt | 7 ++ clients/disk_power/Disk_Power.txt | 80 ++++++++++++ .../Disk_Power_KC-85_Install_Disk.p1h | 80 ++++++++++++ clients/teeny/D_WEENY.100 | 1 + clients/{tiny => teeny}/TINY.100 | 0 .../{tiny => teeny}/TINY.100.post-install.txt | 0 .../{tiny => teeny}/TINY.100.pre-install.txt | 0 clients/teeny/ddoc.do | 114 ++++++++++++++++++ clients/{tiny => teeny}/tindoc.do | 0 ref/freebsd.md | 33 +++++ ref/ur2.txt | 100 +++++++++++---- 15 files changed, 437 insertions(+), 65 deletions(-) create mode 100644 clients/disk_power/Disk_Power.K85 create mode 100644 clients/disk_power/Disk_Power.K85.post-install.txt create mode 100644 clients/disk_power/Disk_Power.K85.pre-install.txt create mode 100644 clients/disk_power/Disk_Power.txt create mode 100644 clients/disk_power/Disk_Power_KC-85_Install_Disk.p1h create mode 100644 clients/teeny/D_WEENY.100 rename clients/{tiny => teeny}/TINY.100 (100%) rename clients/{tiny => teeny}/TINY.100.post-install.txt (100%) rename clients/{tiny => teeny}/TINY.100.pre-install.txt (100%) create mode 100644 clients/teeny/ddoc.do rename clients/{tiny => teeny}/tindoc.do (100%) create mode 100644 ref/freebsd.md diff --git a/Makefile b/Makefile index 952e982..cd11b48 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,7 @@ OS ?= $(shell uname) CC ?= gcc CFLAGS += -O2 -Wall +#CFLAGS += -std=c90 -D_DEFAULT_SOURCE # prove the code is still plain c PREFIX ?= /usr/local APP_NAME := dl APP_LIB_DIR := $(PREFIX)/lib/$(APP_NAME) @@ -10,10 +11,12 @@ APP_DOC_DIR := $(PREFIX)/share/doc/$(APP_NAME) APP_VERSION := $(shell git describe --long 2>&-) CLIENT_LOADERS := \ - clients/teeny/TEENY.100 \ - clients/teeny/TEENY.200 \ - clients/teeny/TEENY.NEC \ - clients/teeny/TEENY.M10 \ + clients/ttwd/TINY.100 \ + clients/ttwd/D_WEENY.100 \ + clients/ttwd/TEENY.100 \ + clients/ttwd/TEENY.200 \ + clients/ttwd/TEENY.NEC \ + clients/ttwd/TEENY.M10 \ clients/dskmgr/DSKMGR.100 \ clients/dskmgr/DSKMGR.200 \ clients/dskmgr/DSKMGR.K85 \ @@ -21,23 +24,26 @@ CLIENT_LOADERS := \ clients/ts-dos/TS-DOS.100 \ clients/ts-dos/TS-DOS.200 \ clients/ts-dos/TS-DOS.NEC \ - clients/tiny/TINY.100 \ + clients/disk_power/Disk_Power.K85 \ # clients/power-dos/POWR-D.100 +LIB_OTHER := \ + clients/ts-dos/DOS100.CO \ + clients/ts-dos/DOS200.CO \ + clients/ts-dos/DOSNEC.CO \ + clients/disk_power/Disk_Power_KC-85_Install_Disk.p1h + CLIENT_DOCS := \ - clients/teeny/teenydoc.txt \ - clients/teeny/hownec.do \ - clients/teeny/TNYO10.TXT \ + clients/ttwd/teenydoc.txt \ + clients/ttwd/hownec.do \ + clients/ttwd/TNYO10.TXT \ + clients/ttwd/tindoc.do \ + clients/ttwd/ddoc.do \ clients/dskmgr/DSKMGR.DOC \ clients/ts-dos/tsdos.pdf \ - clients/tiny/tindoc.do \ + clients/disk_power/Disk_Power.txt \ # clients/power-dos/powr-d.txt -CLIENT_OTHER := \ - clients/ts-dos/DOS100.CO \ - clients/ts-dos/DOS200.CO \ - clients/ts-dos/DOSNEC.CO - DOCS := dl.do README.txt README.md LICENSE $(CLIENT_DOCS) SOURCES := dl.c dir_list.c @@ -69,7 +75,7 @@ all: $(APP_NAME) $(APP_NAME): $(SOURCES) $(CC) $(CFLAGS) $(DEFINES) $(SOURCES) $(LDLIBS) -o $(@) -install: $(APP_NAME) $(CLIENT_LOADERS) $(CLIENT_OTHER) $(DOCS) +install: $(APP_NAME) $(CLIENT_LOADERS) $(LIB_OTHER) $(DOCS) mkdir -p $(APP_LIB_DIR) for s in $(CLIENT_LOADERS) ;do \ d=$(APP_LIB_DIR)/$${s##*/} ; \ @@ -77,7 +83,7 @@ install: $(APP_NAME) $(CLIENT_LOADERS) $(CLIENT_OTHER) $(DOCS) install -o root -m 0644 $${s}.pre-install.txt $${d}.pre-install.txt ; \ install -o root -m 0644 $${s}.post-install.txt $${d}.post-install.txt ; \ done - for s in $(CLIENT_OTHER) ;do \ + for s in $(LIB_OTHER) ;do \ d=$(APP_LIB_DIR)/$${s##*/} ; \ install -o root -m 0644 $${s} $${d} ; \ done diff --git a/README.md b/README.md index 1307390..087e6a2 100644 --- a/README.md +++ b/README.md @@ -11,21 +11,21 @@ Docs from the past versions of this program. They don't exactly match this versi ## install ``` -make clean all && sudo make install +$ make clean all && sudo make install ``` ## uninstall ``` -sudo make uninstall +$ sudo make uninstall ``` ## manual ``` -dl -h +$ dl -h ``` ``` -bkw@fw:~/src/dlplus$ dl -h +$ dl -h dl - DeskLink+ v1.5.010-47-g93f3db4 - help usage: dl [options] [tty_device] [share_path] @@ -58,10 +58,9 @@ The 2nd non-option argument is another way to specify the share path. dl -vv /dev/ttyS0 dl ttyUSB1 -v -w ~/Documents/wp2files -bkw@fw:~/src/dlplus$ ``` ``` -bkw@fw:~/src/dlplus$ dl -l +$ dl -l dl - DeskLink+ v1.5.010-47-g93f3db4 - "bootstrap" help Available loader files (in /usr/local/lib/dl): @@ -72,56 +71,54 @@ NEC PC-8201(a)/PC-8300 : TEENY.NEC TS-DOS.NEC Kyotronic KC-85 : DSKMGR.K85 Olivetti M-10 : DSKMGR.M10 TEENY.M10 -Filenames given without any leading path are taken from above. -To specify a file in the current directory, include the "./" +Filenames without any leading path are searched from above +if not found in the current directory. Examples: dl -b TS-DOS.100 dl -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 dl -b ./rxcini.DO -bkw@fw:~/src/dlplus$ ``` ## run the TPDD server, verbose, upcase, serving files from the current directory ``` -dl -vu +$ dl -vu ``` ## list all available TPDD client installers, and then bootstrap one of them ``` -dl -l -dl -vb TS-DOS.100 +$ dl -l +$ dl -vb TS-DOS.100 ``` ## bootstrap a [REXCPM](http://bitchin100.com/wiki/index.php?title=REXCPM) ``` -unzip REXCPMV21_b19.ZIP -dl -vb ./rxcini.DO ;dl -vu +$ unzip REXCPMV21_b19.ZIP +$ dl -vb ./rxcini.DO ;dl -vu ``` ## fun The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT". TS-DOS thinks it's an invalid filename (even though it DISPLAYS it in the file list just fine. If it would just go ahead and send the command to "open" it, it would work.) However, plenty of other things that are all better than "ROOT " and "PARENT" do work. ``` -ROOT_LABEL=/ PARENT_LABEL=^ dl -ROOT_LABEL='-root-' PARENT_LABEL='-back-' dl -ROOT_LABEL='0:' PARENT_LABEL='^:' dl +$ ROOT_LABEL=/ PARENT_LABEL=^ dl +$ ROOT_LABEL='-root-' PARENT_LABEL='-back-' dl +$ ROOT_LABEL='0:' PARENT_LABEL='^:' dl or you can confuse someone... -ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl +$ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl ``` ## UR-II Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS from disk on-the-fly. This allows you to keep the TS-DOS executable on the disk instead of in ram, and it is loaded and then discarded on-demand by selecting the TS-DOS menu entry from inside UR2. -A potential problem with this, with an emulator that supports TS_DOS directories, is that UR2 doesn't know anything about directories, and just tries to load a file named "DOS___.CO". +That normally requires that there be a copy of DOS100.CO on the "disk" so that UR-II can load it. And since this "disk" is actually a server that can cd into other directories, you would normally need a copy of the file in every single directory. +This version of dlplus has special support for that so that the TS-DOS button always works, even if the file doesn't exist in the current directory, or even if the file doesn't exist anywhere within the share tree. -If you had previously used the UR-II TS-DOS feature and used it to navigate into a subdirectory that didn't contain a copy of DOS___.CO, then UR2 would normally fail to load TS-DOS after that, until you restarted the TPDD server to make it go back to the root share dir. +There are copies of [DOS100.CO](clients/ts-dos/DOS100.CO), [DOS200.CO](clients/ts-dos/DOS200.CO), and [DOSNEC.CO](clients/ts-dos/DOSNEC.CO) installed to ```/usr/local/lib/dl``` by ```sudo make install```. -This version of dlplus has special support for UR2, so that UR2 may still load DOS100.CO, DOS200.CO, or DOSNEC.CO no matter what subdirectory the server has been navigated to, and no matter if the share path contains a copy anywhere in any directory. -When the client requests any of the special filenames, the file is searched in the current directory first, like any other file. If it's found, it's used. -If the file is not found in the current dir, then the root share dir is tried next, and if that fails then finally the app lib dir is tried. +When the client machine requests any of these files, dlplus first looks in the current directory like normal. If it's there, that is what is used. +Failing that, then it looks in the root share dir. Failing that, finally it gets the file from /usr/local/lib/dl. This way the TS-DOS button in Ultimate ROM II just always works by magic. -The [clients/](clients/) directory includes copies of [DOS100.CO](clients/ts-dos/DOS100.CO), [DOS200.CO](clients/ts-dos/DOS200.CO), and [DOSNEC.CO](clients/ts-dos/DOSNEC.CO) -These are also installed to ```/usr/local/lib/dl``` by ```sudo make install```, but you can pretty much ignore them since they will be loaded from the lib dir any time they are needed. You don't have to place copies in your share dir like you would have to on a real disk. +[More details](ref/ur2.txt) ## OS Compatibility Tested on Linux, Macos, FreeBSD diff --git a/clients/disk_power/Disk_Power.K85 b/clients/disk_power/Disk_Power.K85 new file mode 100644 index 0000000..d6874e1 --- /dev/null +++ b/clients/disk_power/Disk_Power.K85 @@ -0,0 +1 @@ +0?"Loading Disk Power KC-85 installer";:CLEAR0,59072:S=0:I=0:FORA=59072TO62954:READB:POKEA,B:S=S+B:I=I+1:IFI>32THENI=0:?"."; 1NEXT:BEEP:IFS<>472368THEN?"Bad Checksum":END 2CLS:?"Connect TPDD drive and insert the":?"Disk Power KC-85 install disk.":LINEINPUT"Press [ENTER] when ready ";A$:CLS:CALL59343 3DATA12,27,112,32,84,111,111,32,109,97,110,121,32,102,105,108,101,115,32,27,113,0,129,0,0,195,27,134,205,65,234,17,0,255,216,119,223,202,95,233,35,195,220,230,17,59,235,33,57,234,205,109,233,205,99,87,235,195,168,88,33,41,231,1,7,0,176,202,7,231,9,215,50 4DATA224,231,215,50,33,232,50,35,232,50,37,232,215,50,98,232,215,50,127,232,215,50,203,232,215,50,57,235,215,50,201,233,201,61,35,193,197,175,175,35,60,43,225,229,167,167,43,229,205,189,32,209,65,195,66,52,7,13,10,102,111,114,32,116,104,101,32,105,110 5DATA115,116,97,108,108,97,116,105,111,110,32,112,114,111,99,101,115,115,13,10,112,108,101,97,115,101,32,107,105,108,108,32,115,111,109,101,32,102,105,108,101,115,32,97,110,100,32,116,114,121,32,97,103,97,105,110,0,85,85,7,15,248,126,205,1,234,35,5,194 6DATA140,231,201,12,27,112,32,85,110,101,120,112,101,99,116,101,100,0,33,98,246,17,0,255,205,148,49,33,103,233,195,59,233,33,233,232,195,86,234,12,27,112,32,67,111,109,109,117,110,105,99,97,116,105,111,110,0,66,62,2,1,45,0,33,7,234,229,205,99,87,50,159 7DATA249,60,204,252,230,8,119,33,135,235,17,165,252,205,24,37,205,90,32,42,196,251,196,48,235,1,7,12,9,17,0,0,235,57,223,218,180,231,33,83,234,34,89,246,33,171,249,229,126,183,196,56,231,225,54,254,17,204,249,1,11,0,9,223,218,10,232,194,220,231,8,119,8 8DATA119,8,119,12,121,229,33,241,233,12,35,35,129,218,45,232,34,89,246,245,205,167,233,17,128,233,193,225,205,66,52,229,42,196,251,6,14,205,66,52,205,131,18,205,128,32,196,170,31,205,22,33,92,101,107,171,135,61,135,29,71,75,8,1,81,11,205,117,104,175,87 9DATA95,235,37,37,202,109,232,229,205,14,33,225,68,205,26,37,213,1,55,4,8,235,217,33,151,235,1,83,10,209,205,227,104,1,6,0,9,34,244,245,33,27,134,17,225,244,217,209,225,205,148,49,213,33,214,230,17,2,128,205,24,37,1,11,0,33,16,251,17,18,233,62,4,245,19 10DATA245,205,109,87,241,133,111,241,205,109,87,229,237,227,40,8,225,217,198,176,225,8,119,205,22,33,17,2,233,33,97,248,62,16,205,109,87,103,108,34,157,249,205,208,32,205,219,123,195,109,233,12,27,112,32,78,111,116,32,101,110,111,117,103,104,32,109,101 11DATA109,111,114,121,32,27,113,0,84,101,114,109,24,67,65,76,76,51,51,49,51,56,13,32,130,248,130,11,139,42,130,198,132,121,134,132,6,0,197,205,85,233,205,117,106,193,194,220,230,5,194,32,233,195,50,233,33,66,233,195,98,233,33,255,254,215,212,48,52,195 12DATA200,23,12,27,112,32,68,105,115,107,32,78,111,116,32,82,101,97,100,121,0,1,0,48,11,121,176,200,195,88,233,33,186,231,17,111,234,195,242,230,57,56,78,49,68,229,213,33,204,231,6,3,205,140,231,205,85,233,205,56,233,209,225,201,176,253,255,65,68,68,82 13DATA83,83,32,0,176,254,255,83,67,72,69,68,76,32,0,0,0,128,1,254,1,0,195,115,88,1,254,1,0,195,122,88,205,165,231,33,135,231,6,5,205,140,231,205,85,233,33,0,254,229,33,58,234,6,7,205,140,231,229,205,85,233,1,2,0,225,8,53,229,33,8,255,205,30,233,58,14,255 14DATA254,52,194,95,233,62,2,205,1,234,205,85,233,225,62,56,190,225,245,205,30,233,241,229,194,185,233,195,227,79,33,150,231,195,98,233,33,0,128,176,196,92,234,33,205,98,234,195,58,107,68,80,75,56,53,46,83,89,32,32,73,110,115,116,97,108,108,97,116,105 15DATA111,110,32,105,110,32,112,114,111,103,114,101,115,115,27,89,36,41,80,108,101,97,115,101,32,87,65,73,84,46,0,93,63,54,35,63,60,2,205,98,234,205,117,106,55,200,205,134,106,218,236,230,194,95,233,201,33,192,230,17,65,231,195,245,230,205,249,233,169,79 16DATA6,79,219,187,230,32,194,50,233,62,15,169,79,201,32,101,114,114,111,114,32,27,113,13,10,7,67,104,101,99,107,32,121,111,117,114,32,99,97,98,108,101,115,32,97,110,100,32,100,114,105,118,101,46,13,10,73,102,32,112,114,111,98,108,101,109,32,112,101,114 17DATA115,105,115,116,115,44,32,121,111,117,114,32,100,105,115,116,114,105,98,117,116,105,111,110,13,10,100,105,115,107,32,109,97,121,32,98,101,32,100,97,109,97,103,101,100,44,32,111,114,32,121,111,117,32,97,114,101,32,116,114,121,105,110,103,13,10,116 18DATA111,32,105,110,115,116,97,108,108,32,102,114,111,109,32,97,32,110,111,110,45,111,114,105,103,105,110,97,108,32,100,105,115,107,13,10,27,112,32,80,108,101,97,115,101,32,99,111,110,116,97,99,116,32,109,97,110,117,102,97,99,116,117,114,101,114,32,27 19DATA113,0,229,19,19,237,40,6,213,193,225,8,201,7,12,80,114,111,99,101,115,115,32,105,110,116,101,114,114,117,112,116,101,100,32,45,32,67,97,110,39,116,32,99,111,110,116,105,110,117,101,13,10,84,117,114,110,32,79,70,70,32,97,110,100,32,79,78,32,121,111 20DATA117,114,32,100,114,105,118,101,32,97,110,100,32,114,117,110,13,10,73,84,76,75,56,53,46,67,79,32,97,103,97,105,110,0,0,80,139,1,0,185,195,27,134,54,56,58,33,213,252,175,6,7,205,84,132,195,135,112,205,24,131,1,255,249,3,9,195,88,66,105,110,103,32,102 21DATA105,108,101,115,44,32,112,114,111,99,101,101,100,32,40,65,47,89,47,78,41,63,34,35,205,238,87,19,213,205,69,128,215,205,89,134,225,213,197,205,177,17,33,140,246,193,209,195,96,134,225,205,25,132,33,203,252,202,105,129,53,242,106,129,62,7,52,231,195 22DATA24,131,183,192,29,201,225,205,13,66,50,180,250,195,147,81,205,228,131,50,202,252,205,201,134,14,1,205,101,132,14,42,202,67,136,205,13,133,14,2,195,135,129,245,205,250,133,241,50,200,252,205,250,133,58,202,252,183,202,24,131,62,32,6,80,33,200,254 23DATA205,186,78,33,4,33,205,88,66,205,95,136,197,33,9,131,227,216,205,75,132,58,171,252,254,80,208,205,95,136,235,61,250,62,129,202,86,134,205,21,37,1,255,18,33,173,37,17,212,254,205,96,134,33,7,11,205,88,66,42,212,250,229,205,253,129,193,42,214,250,9 24DATA205,253,129,42,216,250,175,195,77,132,33,26,135,205,153,138,205,95,136,218,176,131,61,250,232,31,202,144,31,195,170,31,197,205,128,32,19,254,128,204,206,130,205,22,33,205,7,130,193,160,201,205,151,136,205,135,105,175,103,111,34,89,246,195,87,105,33 25DATA124,129,229,42,196,252,17,165,252,205,148,49,205,21,134,33,55,132,205,69,134,195,218,135,208,32,212,135,113,133,124,129,1,130,73,131,58,34,49,132,123,60,186,216,175,201,33,26,135,205,153,138,205,96,132,202,176,131,195,250,136,123,214,5,208,209,201 26DATA229,213,33,158,249,126,183,250,51,21,53,196,92,135,42,171,252,17,68,79,235,34,171,252,223,202,159,130,123,254,32,194,248,137,205,21,134,205,96,132,209,225,229,213,87,1,6,1,5,9,175,119,50,159,249,123,15,179,238,2,230,3,95,61,61,122,33,107,135,229 27DATA250,226,130,202,110,129,183,202,242,137,201,205,251,5,235,19,42,194,252,195,4,33,205,250,133,205,63,132,195,178,138,183,200,213,205,250,136,205,96,132,209,201,233,80,83,84,34,33,159,249,195,193,23,214,48,192,29,35,205,51,76,254,58,192,51,51,62,9 28DATA183,201,62,255,6,10,33,101,251,205,186,78,46,6,205,186,69,58,200,252,33,1,5,43,148,44,210,31,131,132,60,135,135,135,103,195,88,66,33,153,134,205,138,39,33,37,129,205,75,134,1,1,6,13,195,128,132,205,223,137,71,205,223,137,79,201,183,200,33,204,135 29DATA205,69,134,33,158,249,17,1,249,58,202,252,183,194,98,131,22,9,54,1,35,175,205,200,76,205,46,78,218,182,137,17,103,131,33,151,137,213,229,254,13,200,254,10,200,254,32,208,246,64,71,62,94,205,151,137,120,201,125,130,46,138,155,132,31,135,242,130,229 30DATA205,122,27,205,242,110,202,147,131,225,195,240,15,57,56,78,49,68,82,65,77,32,68,73,82,34,14,11,33,14,8,17,14,9,209,33,222,38,175,71,195,11,138,17,174,252,33,221,252,62,6,205,109,87,54,46,35,205,107,87,6,15,62,32,195,186,78,58,20,253,46,1,45,103,16 31DATA205,72,132,195,127,137,205,101,135,205,13,66,205,27,66,62,20,50,203,252,175,50,201,252,50,200,252,50,180,250,42,121,251,34,127,246,225,205,8,63,229,209,27,27,27,213,233,18,18,7,18,18,18,23,18,52,23,57,55,58,200,252,38,1,37,111,41,41,41,1,7,254,9 32DATA126,1,249,255,9,238,187,254,32,201,205,240,136,195,164,84,27,89,36,32,83,97,118,34,33,200,252,52,58,201,252,190,201,62,48,17,62,32,245,205,69,128,241,6,6,245,205,69,66,205,169,27,241,231,195,74,66,205,190,131,175,79,97,46,70,34,245,252,1,26,1,5,205 33DATA177,133,205,140,136,202,138,132,167,201,50,221,252,1,1,1,205,177,133,229,205,140,136,225,183,200,33,250,137,229,1,4,240,160,15,15,15,15,145,185,208,79,201,241,245,1,245,20,197,254,26,200,205,68,23,214,127,192,14,3,8,119,9,14,128,6,4,205,180,133,195 34DATA131,132,175,48,205,223,137,47,186,225,194,233,137,75,201,205,151,136,205,254,65,33,220,132,34,89,246,33,42,91,205,135,87,175,50,87,246,196,5,66,205,91,90,33,29,91,205,138,39,205,242,69,215,17,114,129,213,200,205,222,33,209,229,175,103,111,34,238 35DATA246,60,235,195,121,92,89,129,98,130,3,139,119,130,88,136,98,130,6,6,205,169,27,205,205,64,220,48,52,126,246,32,231,62,32,231,35,126,245,33,201,252,126,52,205,248,138,241,119,35,58,19,253,119,35,58,18,253,119,201,62,13,254,47,205,58,107,219,187,230 36DATA32,200,195,233,137,58,198,252,183,200,229,33,237,128,205,158,84,225,205,146,131,254,79,200,227,254,82,200,227,209,254,83,200,213,205,5,66,195,83,133,32,45,45,157,45,45,32,32,183,200,213,58,200,252,245,205,90,129,42,200,252,235,205,98,130,202,138 37DATA133,33,120,133,229,245,205,250,133,241,202,138,133,50,200,252,205,250,133,195,24,131,205,117,104,218,236,137,197,229,175,119,35,11,120,177,194,162,133,34,194,252,225,193,201,33,221,252,197,1,90,90,205,51,128,193,205,51,128,120,129,87,12,122,13,202 38DATA58,133,134,87,126,35,205,59,133,195,195,133,58,198,252,183,200,33,13,135,205,191,137,205,242,69,218,239,137,215,200,205,210,33,229,33,248,137,34,89,246,225,205,193,75,42,180,252,34,171,252,201,205,23,129,205,25,132,6,7,196,250,86,17,165,252,205,24 39DATA37,205,239,15,18,19,205,245,138,126,18,33,174,252,195,25,34,205,92,135,205,228,131,47,50,202,252,50,199,250,205,22,33,33,196,249,1,8,1,5,9,126,35,35,35,60,14,20,202,67,136,229,252,13,133,225,195,46,134,205,191,137,33,43,129,205,32,137,195,254,65,76 40DATA111,97,100,34,14,26,17,175,79,6,80,17,200,254,126,35,185,200,254,13,194,107,134,62,143,254,32,210,114,134,62,32,18,19,5,200,195,96,134,245,213,229,71,58,95,246,183,120,204,250,74,33,108,255,126,35,166,214,3,194,149,134,43,119,205,110,82,225,209,241 41DATA201,7,12,73,110,115,101,114,116,32,98,108,97,110,107,32,100,105,115,107,10,10,67,65,85,84,73,79,78,13,10,70,111,114,109,97,116,32,107,105,108,108,115,32,68,83,75,7,34,205,236,134,219,187,230,32,14,7,194,250,137,1,1,7,13,205,177,133,205,233,134,205 42DATA140,136,200,1,49,77,205,51,128,205,55,133,38,46,43,124,181,194,238,134,201,73,79,87,80,76,83,78,73,72,84,67,79,65,66,78,82,78,70,70,69,68,70,66,78,27,89,37,32,102,105,108,101,110,97,109,101,34,75,105,108,108,34,229,56,8,237,17,103,24,223,194,48,135 43DATA33,40,128,56,8,217,225,235,33,159,249,205,143,24,235,205,84,23,230,127,194,75,135,205,178,136,175,71,9,54,26,8,175,79,9,126,254,26,55,63,194,62,78,50,159,249,63,195,62,78,33,98,246,17,205,252,205,148,49,33,159,131,195,243,136,123,205,122,132,209 44DATA225,123,254,8,194,233,20,30,2,195,233,20,33,224,136,58,202,252,183,196,97,138,34,192,252,205,159,129,205,135,112,205,122,27,205,99,137,205,242,110,202,143,135,42,192,252,6,1,5,79,254,8,17,140,135,58,201,252,218,19,93,183,200,121,254,13,202,60,137 45DATA213,17,1,133,214,27,254,6,210,5,66,79,33,151,129,229,42,200,252,235,195,19,93,12,27,87,76,105,115,116,34,33,59,132,205,153,138,205,36,34,205,210,133,205,36,34,205,96,132,202,245,135,33,218,135,205,70,133,205,250,136,205,96,132,62,1,205,122,132,205 46DATA95,136,218,176,131,235,121,176,202,179,131,175,95,121,214,128,79,120,155,71,245,197,121,218,22,136,175,198,128,79,205,177,132,193,241,218,37,136,177,194,6,136,1,1,2,13,195,128,132,175,71,197,205,240,136,193,33,157,249,126,112,183,194,23,130,35,126 47DATA112,35,112,183,201,58,201,252,145,47,79,13,202,124,135,33,105,133,6,8,205,169,27,195,73,136,123,198,5,186,216,209,201,205,128,32,229,235,23,183,23,245,7,95,241,123,143,245,229,17,121,136,213,210,117,33,209,225,229,209,241,245,6,1,5,79,9,43,43,125 48DATA147,79,124,154,71,241,225,201,33,249,252,205,1,137,120,254,18,126,201,205,13,66,33,34,139,6,38,62,234,231,205,84,132,175,111,14,192,205,125,86,205,254,65,195,92,123,1,1,3,13,205,180,133,205,143,136,192,254,48,194,138,132,175,79,201,58,199,252,50 49DATA201,252,61,205,27,131,205,11,69,6,40,33,76,251,205,185,78,50,200,252,195,181,69,124,129,81,128,113,133,30,134,104,130,73,131,45,131,49,132,33,204,252,215,212,48,52,195,200,23,1,1,5,13,195,128,132,229,205,10,115,205,64,131,89,120,129,12,87,13,202 50DATA185,132,205,223,137,119,35,130,195,12,137,233,70,82,69,32,34,205,138,39,205,146,131,214,65,50,198,252,200,254,24,200,254,13,209,225,200,229,213,205,5,66,195,35,137,58,202,252,60,50,198,252,202,79,137,205,87,128,183,192,33,57,130,227,205,95,136,218 51DATA5,66,61,194,46,86,35,35,35,34,196,252,235,195,244,132,58,202,252,183,192,58,201,252,183,200,205,24,128,175,119,205,25,132,17,213,252,205,148,49,33,11,129,229,205,23,129,62,8,231,205,13,128,218,214,131,205,245,138,205,238,87,205,75,132,195,127,137 52DATA79,58,198,252,183,121,205,97,75,204,11,75,205,242,110,200,254,27,202,181,137,205,242,110,202,172,137,254,27,192,225,205,244,78,33,169,131,195,44,92,205,138,39,62,74,205,76,66,17,165,252,205,193,131,33,221,252,62,234,231,6,9,205,84,132,33,239,137,34 53DATA89,246,201,205,62,133,205,134,106,218,239,137,200,14,5,33,14,2,17,14,6,42,14,8,58,14,10,33,14,11,205,44,136,33,13,132,9,94,194,100,4,17,30,134,33,165,131,213,229,197,205,244,78,33,7,1,205,88,66,205,11,69,193,33,244,134,9,9,215,231,215,231,33,241,3 54DATA205,99,87,225,195,44,92,58,158,249,183,202,66,138,205,53,23,196,177,132,1,1,2,13,205,128,132,205,44,136,195,15,77,42,194,251,205,154,133,34,194,251,40,2,227,1,6,1,5,8,217,9,227,62,160,195,179,128,33,33,139,205,158,84,62,128,42,139,249,205,59,128,33 55DATA237,130,205,138,39,62,192,42,150,249,205,59,128,33,8,128,205,138,39,42,244,245,205,65,128,33,26,137,205,138,39,205,92,123,62,32,231,33,82,130,201,209,183,200,213,229,205,189,138,33,5,1,205,88,66,225,205,138,39,33,34,129,205,32,137,61,225,200,229,17 56DATA217,130,213,229,195,250,133,58,203,252,254,20,204,90,129,33,255,255,34,199,252,33,199,252,52,126,205,28,132,235,205,63,132,202,197,136,205,25,132,194,212,138,205,148,49,62,32,27,18,205,245,138,94,58,199,252,205,248,138,115,195,203,138,58,200,252,79 57DATA135,129,79,175,71,33,93,253,9,201,123,61,240,122,61,240,60,201,51,51,229,213,245,17,4,1,21,25,126,254,9,194,213,80,17,136,131,195,227,80,32,68,73,83,75,32,80,79,87,69,82,32,75,56,53,32,49,46,48,32,171,49,57,56,55,32,72,117,103,111,32,70,101,114,114 58DATA101,121,114,97,27,89,39,32,66,65,83,0,0,0,253 \ No newline at end of file diff --git a/clients/disk_power/Disk_Power.K85.post-install.txt b/clients/disk_power/Disk_Power.K85.post-install.txt new file mode 100644 index 0000000..33c18f9 --- /dev/null +++ b/clients/disk_power/Disk_Power.K85.post-install.txt @@ -0,0 +1 @@ +Follow the directions on the KC-85 to finish the installation. diff --git a/clients/disk_power/Disk_Power.K85.pre-install.txt b/clients/disk_power/Disk_Power.K85.pre-install.txt new file mode 100644 index 0000000..6759ba6 --- /dev/null +++ b/clients/disk_power/Disk_Power.K85.pre-install.txt @@ -0,0 +1,7 @@ +Installing Disk-Power requires a TPDD1 drive and the install disk. See +/usr/local/share/doc/dl/clients/disk_power/Disk_Power.txt to make the disk. + +Hit Ctrl+C now to cancel this and go do that, or, +type the following into BASIC on the Kyotronic KC-85: + + RUN "COM:98N1EN" diff --git a/clients/disk_power/Disk_Power.txt b/clients/disk_power/Disk_Power.txt new file mode 100644 index 0000000..7cdd8f9 --- /dev/null +++ b/clients/disk_power/Disk_Power.txt @@ -0,0 +1,80 @@ +Disk Power for KC-85 + +Excerpt, more info here: +http://tandy.wiki/TPDD_client:Disk_Power:KC-85 + +Disk Power requires both the original distribution disk and the cassette +installer program to install. The cassette program has been repackaged into +a BASIC loader, so a cassette or cassette cable is no longer required, but +a working TPDD1 drive is still required to create the disk and then to read +it during install. Once installed, the disk and drive are no longer needed. + +--------------------------------------------------------------------------- + +Installation: + +1 - Gather the necessary hardware: + https://github.com/bkw777/pdd.sh/blob/main/hardware.md + +2 - Install https://github.com/bkw777/pdd.sh + +3 - Re-create the install disk: + Connect the TPDD1 drive to the modern computer. + Close the write-protect door on the corner of a blank DD/720K disk. + Turn on the TPDD and insert the disk. + + $ pdd rd /usr/local/lib/dl/Disk_Power_KC-85_Install_Disk.p1h + + Remove the disk and open the write-protect door in the corner of the disk. + Power-cycle the drive and re-insert the disk. + +4 - Run the Disk Power bootstrap + Connect the KC-85 to the modern computer. + + $ dl -vvb Disk_Power.K85 + + Follow the prompts after that. + +--------------------------------------------------------------------------- + +Usage: + ++------+--------+--------+--------+--------+--------+--------+--------+--------+ +| DISK | NewDsk | Load | ALL | RAMDIR | Kill | List | Format | Menu | ++------+--------+--------+--------+--------+--------+--------+--------+--------+ +| RAM | ClrBAS | Save | ALL | DSKDIR | Kill | List | ClrPST | Menu | ++------+--------+--------+--------+--------+--------+--------+--------+--------+ + | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | + +--------+--------+--------+--------+--------+--------+--------+--------+ + +The top row are DISK functions, available while in DISK view. +The bottom row are RAM functions, available while in RAM view. + +F4 toggles between RAM and DISK view. + +F8 exits back to the main menu. + +ClrBAS and ClrPST clear the BASIC program area an the Paste buffer to +recover ram for saving files. + +F7 Format quirk: F4 will not enter DISK view unless there is a valid +formatted disk inserted to read. This means it's not possible to format a +new blank disk unless you already have some other formatted disk to put in +the drive first in order to access DISK view. Once in DISK view, then you +can swap in the blank disk and press F7 to format it. You can use the install +disk for that if nothing else. You can also format a new disk with pdd.sh + +--------------------------------------------------------------------------- + +Printable reproductions of the keyboard template and disk label: +http://tandy.wiki/TPDD_client:Disk_Power:KC-85 + +Disk_Power_F-Keys_Template.odg and Disk_Power_F-Keys_Template.pdf contain +a printable reproduction of the template to label the F1-F8 buttons. + +Disk_Power_KC-85_disk.glabels is a disk label for the install disk using +https://github.com/jimevins/glabels-qt +and https://www.onlinelabels.com/ol775.htm (aka Avery 6490). + +Disk_Power_KC-85_disk_labels.pdf is a pdf print-to-file version of the +disk label that can be printed without the glabels program. diff --git a/clients/disk_power/Disk_Power_KC-85_Install_Disk.p1h b/clients/disk_power/Disk_Power_KC-85_Install_Disk.p1h new file mode 100644 index 0000000..7878354 --- /dev/null +++ b/clients/disk_power/Disk_Power_KC-85_Install_Disk.p1h @@ -0,0 +1,80 @@ +00 0064 00 00 00 00 00 00 00 00 00 00 00 00 49 4E 53 54 41 4C 2E 43 4F 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 0F 30 00 00 01 04 53 50 2D 44 4F 53 2E 53 59 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 0B 57 00 00 06 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AA 8A 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +01 0064 02 00 00 00 00 00 00 00 00 00 00 00 C0 E6 2A 0F CF E7 0C 1B 70 20 54 6F 6F 20 6D 61 6E 79 20 66 69 6C 65 73 20 1B 71 00 81 00 00 C3 1B 86 CD 41 EA 11 00 FF D8 77 DF CA 5F E9 23 C3 DC E6 11 3B EB 21 39 EA CD 6D E9 CD 63 57 EB C3 A8 58 21 29 E7 01 07 00 B0 CA 07 E7 09 D7 32 E0 E7 D7 32 21 E8 32 23 E8 32 25 E8 D7 32 62 E8 D7 32 7F E8 D7 32 CB E8 D7 32 39 EB D7 32 C9 E9 C9 3D 23 C1 C5 AF AF 23 3C 2B E1 E5 A7 A7 2B E5 CD BD 20 D1 41 C3 42 34 07 0D 0A 66 6F 72 20 74 68 65 20 69 6E 73 74 61 6C 6C 61 74 69 6F 6E 20 70 72 6F 63 65 73 73 0D 0A 70 6C 65 61 73 65 20 6B 69 6C 6C 20 73 6F 6D 65 20 66 69 6C 65 73 20 61 6E 64 20 74 72 79 20 61 67 61 69 6E 00 55 55 07 0F F8 7E CD 01 EA 23 05 C2 8C E7 C9 0C 1B 70 20 55 6E 65 78 70 65 63 74 65 64 00 21 62 F6 11 00 FF CD 94 31 21 67 E9 C3 3B E9 21 E9 E8 C3 56 EA 0C 1B 70 20 43 6F 6D 6D 75 6E 69 63 61 74 69 6F 6E 00 42 3E 02 01 2D 00 21 07 EA E5 CD 63 57 32 9F F9 3C CC FC E6 08 77 21 87 EB 11 A5 FC CD 18 25 CD 5A 20 2A C4 FB C4 30 EB 01 07 0C 09 11 00 00 EB 39 DF DA B4 E7 21 53 EA 22 59 F6 21 AB F9 E5 7E B7 C4 38 E7 E1 36 FE 11 CC F9 01 0B 00 09 DF DA 0A E8 C2 DC E7 08 77 08 77 08 77 0C 79 E5 21 F1 E9 0C 23 23 81 DA 2D E8 22 59 F6 F5 CD A7 E9 11 80 E9 C1 E1 CD 42 34 E5 2A C4 FB 06 0E CD 42 34 CD 83 12 CD 80 20 C4 AA 1F CD 16 21 5C 65 6B AB 87 3D 87 1D 47 4B 08 01 51 0B CD 75 68 AF 57 5F EB 25 25 CA 6D E8 E5 CD 0E 21 E1 44 CD 1A 25 D5 01 37 04 08 EB D9 21 97 EB 01 53 0A D1 CD E3 68 01 06 00 09 22 F4 F5 21 1B 86 11 E1 F4 D9 D1 E1 CD 94 31 D5 21 D6 E6 11 02 80 CD 18 25 01 0B 00 21 10 FB 11 12 E9 3E 04 F5 13 F5 CD 6D 57 F1 85 6F F1 CD 6D 57 E5 ED E3 28 08 E1 D9 C6 B0 E1 08 77 CD 16 21 11 02 E9 21 61 F8 3E 10 CD 6D 57 67 6C 22 9D F9 CD D0 20 CD DB 7B C3 6D E9 0C 1B 70 20 4E 6F 74 20 65 6E 6F 75 67 68 20 6D 65 6D 6F 72 79 20 1B 71 00 54 65 72 6D 18 43 41 4C 4C 33 33 31 33 38 0D 20 82 F8 82 0B 8B 2A 82 C6 84 79 86 84 06 00 C5 CD 55 E9 CD 75 6A C1 C2 DC E6 05 C2 20 E9 C3 32 E9 21 42 E9 C3 62 E9 21 FF FE D7 D4 30 34 C3 C8 17 0C 1B 70 20 44 69 73 6B 20 4E 6F 74 20 52 65 61 64 79 00 01 00 30 0B 79 B0 C8 C3 58 E9 21 BA E7 11 6F EA C3 F2 E6 39 38 4E 31 44 E5 D5 21 CC E7 06 03 CD 8C E7 CD 55 E9 CD 38 E9 D1 E1 C9 B0 FD FF 41 44 44 52 53 53 20 00 B0 FE FF 53 43 48 45 44 4C 20 00 00 00 80 01 FE 01 00 C3 73 58 01 FE 01 00 C3 7A 58 CD A5 E7 21 87 E7 06 05 CD 8C E7 CD 55 E9 21 00 FE E5 21 3A EA 06 07 CD 8C E7 E5 CD 55 E9 01 02 00 E1 08 35 E5 21 08 FF CD 1E E9 3A 0E FF FE 34 C2 5F E9 3E 02 CD 01 EA CD 55 E9 E1 3E 38 BE E1 F5 CD 1E E9 F1 E5 C2 B9 E9 C3 E3 4F 21 96 E7 C3 62 E9 21 00 80 B0 C4 5C EA 21 CD 62 EA C3 3A 6B 44 50 4B 38 35 2E 53 59 20 20 49 6E 73 74 61 6C 6C 61 74 69 6F 6E 20 69 6E 20 70 72 6F 67 72 65 73 73 1B 59 24 29 50 6C 65 61 73 65 20 57 41 49 54 2E 00 5D 3F 36 23 3F 3C 02 CD 62 EA CD 75 6A 37 C8 CD 86 6A DA EC E6 C2 5F E9 C9 21 C0 E6 11 41 E7 C3 F5 E6 CD F9 E9 A9 4F 06 4F DB BB E6 20 C2 32 E9 3E 0F A9 4F C9 20 65 72 72 6F 72 20 1B 71 0D 0A 07 43 68 65 63 6B 20 79 6F 75 72 20 63 61 62 6C 65 73 20 61 6E 64 20 64 72 69 76 65 2E 0D 0A 49 66 20 70 72 6F 62 6C 65 6D 20 70 65 72 73 69 73 74 73 2C 20 79 6F 75 72 20 64 69 73 74 72 69 62 75 74 69 6F 6E 0D 0A 64 69 73 6B 20 6D 61 79 20 62 65 20 64 61 6D 61 67 65 64 2C 20 6F 72 20 79 6F 75 20 61 72 65 20 74 72 79 69 6E 67 0D 0A 74 6F 20 69 6E 73 74 61 6C 6C 20 66 72 6F 6D 20 61 20 6E 6F 6E 2D 6F 72 69 67 69 6E 61 6C 20 64 69 73 6B 0D 0A 1B 70 20 50 6C 65 61 73 65 20 63 6F 6E 74 61 63 74 20 6D 61 6E 75 66 61 63 74 75 72 65 72 20 1B 71 00 E5 13 13 ED 28 06 D5 C1 E1 08 C9 07 0C 50 72 6F 63 65 73 73 20 69 6E 74 65 72 72 75 70 74 65 64 20 2D 20 43 61 6E 27 74 20 63 6F 6E 74 69 6E 75 65 0D 0A 54 75 72 6E 20 4F 46 46 20 61 6E 64 20 4F 4E 20 79 6F 75 72 20 64 72 69 76 65 20 61 6E 64 20 72 75 6E 0D 0A 49 54 4C 4B 38 35 2E 43 4F 20 61 67 61 69 6E 00 00 50 8B 01 00 B9 C3 1B 86 36 38 3A 21 D5 FC AF 06 07 CD 54 84 C3 87 70 CD 18 83 01 FF F9 03 09 C3 58 42 +02 0064 03 00 00 00 00 00 00 00 00 00 00 00 69 6E 67 20 66 69 6C 65 73 2C 20 70 72 6F 63 65 65 64 20 28 41 2F 59 2F 4E 29 3F 22 23 CD EE 57 13 D5 CD 45 80 D7 CD 59 86 E1 D5 C5 CD B1 11 21 8C F6 C1 D1 C3 60 86 E1 CD 19 84 21 CB FC CA 69 81 35 F2 6A 81 3E 07 34 E7 C3 18 83 B7 C0 1D C9 E1 CD 0D 42 32 B4 FA C3 93 51 CD E4 83 32 CA FC CD C9 86 0E 01 CD 65 84 0E 2A CA 43 88 CD 0D 85 0E 02 C3 87 81 F5 CD FA 85 F1 32 C8 FC CD FA 85 3A CA FC B7 CA 18 83 3E 20 06 50 21 C8 FE CD BA 4E 21 04 21 CD 58 42 CD 5F 88 C5 21 09 83 E3 D8 CD 4B 84 3A AB FC FE 50 D0 CD 5F 88 EB 3D FA 3E 81 CA 56 86 CD 15 25 01 FF 12 21 AD 25 11 D4 FE CD 60 86 21 07 0B CD 58 42 2A D4 FA E5 CD FD 81 C1 2A D6 FA 09 CD FD 81 2A D8 FA AF C3 4D 84 21 1A 87 CD 99 8A CD 5F 88 DA B0 83 3D FA E8 1F CA 90 1F C3 AA 1F C5 CD 80 20 13 FE 80 CC CE 82 CD 16 21 CD 07 82 C1 A0 C9 CD 97 88 CD 87 69 AF 67 6F 22 59 F6 C3 57 69 21 7C 81 E5 2A C4 FC 11 A5 FC CD 94 31 CD 15 86 21 37 84 CD 45 86 C3 DA 87 D0 20 D4 87 71 85 7C 81 01 82 49 83 3A 22 31 84 7B 3C BA D8 AF C9 21 1A 87 CD 99 8A CD 60 84 CA B0 83 C3 FA 88 7B D6 05 D0 D1 C9 E5 D5 21 9E F9 7E B7 FA 33 15 35 C4 5C 87 2A AB FC 11 44 4F EB 22 AB FC DF CA 9F 82 7B FE 20 C2 F8 89 CD 15 86 CD 60 84 D1 E1 E5 D5 57 01 06 01 05 09 AF 77 32 9F F9 7B 0F B3 EE 02 E6 03 5F 3D 3D 7A 21 6B 87 E5 FA E2 82 CA 6E 81 B7 CA F2 89 C9 CD FB 05 EB 13 2A C2 FC C3 04 21 CD FA 85 CD 3F 84 C3 B2 8A B7 C8 D5 CD FA 88 CD 60 84 D1 C9 E9 50 53 54 22 21 9F F9 C3 C1 17 D6 30 C0 1D 23 CD 33 4C FE 3A C0 33 33 3E 09 B7 C9 3E FF 06 0A 21 65 FB CD BA 4E 2E 06 CD BA 45 3A C8 FC 21 01 05 2B 94 2C D2 1F 83 84 3C 87 87 87 67 C3 58 42 21 99 86 CD 8A 27 21 25 81 CD 4B 86 01 01 06 0D C3 80 84 CD DF 89 47 CD DF 89 4F C9 B7 C8 21 CC 87 CD 45 86 21 9E F9 11 01 F9 3A CA FC B7 C2 62 83 16 09 36 01 23 AF CD C8 4C CD 2E 4E DA B6 89 11 67 83 21 97 89 D5 E5 FE 0D C8 FE 0A C8 FE 20 D0 F6 40 47 3E 5E CD 97 89 78 C9 7D 82 2E 8A 9B 84 1F 87 F2 82 E5 CD 7A 1B CD F2 6E CA 93 83 E1 C3 F0 0F 39 38 4E 31 44 52 41 4D 20 44 49 52 22 0E 0B 21 0E 08 11 0E 09 D1 21 DE 26 AF 47 C3 0B 8A 11 AE FC 21 DD FC 3E 06 CD 6D 57 36 2E 23 CD 6B 57 06 0F 3E 20 C3 BA 4E 3A 14 FD 2E 01 2D 67 10 CD 48 84 C3 7F 89 CD 65 87 CD 0D 42 CD 1B 42 3E 14 32 CB FC AF 32 C9 FC 32 C8 FC 32 B4 FA 2A 79 FB 22 7F F6 E1 CD 08 3F E5 D1 1B 1B 1B D5 E9 12 12 07 12 12 12 17 12 34 17 39 37 3A C8 FC 26 01 25 6F 29 29 29 01 07 FE 09 7E 01 F9 FF 09 EE BB FE 20 C9 CD F0 88 C3 A4 54 1B 59 24 20 53 61 76 22 21 C8 FC 34 3A C9 FC BE C9 3E 30 11 3E 20 F5 CD 45 80 F1 06 06 F5 CD 45 42 CD A9 1B F1 E7 C3 4A 42 CD BE 83 AF 4F 61 2E 46 22 F5 FC 01 1A 01 05 CD B1 85 CD 8C 88 CA 8A 84 A7 C9 32 DD FC 01 01 01 CD B1 85 E5 CD 8C 88 E1 B7 C8 21 FA 89 E5 01 04 F0 A0 0F 0F 0F 0F 91 B9 D0 4F C9 F1 F5 01 F5 14 C5 FE 1A C8 CD 44 17 D6 7F C0 0E 03 08 77 09 0E 80 06 04 CD B4 85 C3 83 84 AF 30 CD DF 89 2F BA E1 C2 E9 89 4B C9 CD 97 88 CD FE 41 21 DC 84 22 59 F6 21 2A 5B CD 87 57 AF 32 57 F6 C4 05 42 CD 5B 5A 21 1D 5B CD 8A 27 CD F2 45 D7 11 72 81 D5 C8 CD DE 21 D1 E5 AF 67 6F 22 EE F6 3C EB C3 79 5C 59 81 62 82 03 8B 77 82 58 88 62 82 06 06 CD A9 1B CD CD 40 DC 30 34 7E F6 20 E7 3E 20 E7 23 7E F5 21 C9 FC 7E 34 CD F8 8A F1 77 23 3A 13 FD 77 23 3A 12 FD 77 C9 3E 0D FE 2F CD 3A 6B DB BB E6 20 C8 C3 E9 89 3A C6 FC B7 C8 E5 21 ED 80 CD 9E 54 E1 CD 92 83 FE 4F C8 E3 FE 52 C8 E3 D1 FE 53 C8 D5 CD 05 42 C3 53 85 20 2D 2D 9D 2D 2D 20 20 B7 C8 D5 3A C8 FC F5 CD 5A 81 2A C8 FC EB CD 62 82 CA 8A 85 21 78 85 E5 F5 CD FA 85 F1 CA 8A 85 32 C8 FC CD FA 85 C3 18 83 CD 75 68 DA EC 89 C5 E5 AF 77 23 0B 78 B1 C2 A2 85 22 C2 FC E1 C1 C9 21 DD FC C5 01 5A 5A CD 33 80 C1 CD 33 80 78 81 57 0C 7A 0D CA 3A 85 86 57 7E 23 CD 3B 85 C3 C3 85 3A C6 FC B7 C8 21 0D 87 CD BF 89 CD F2 45 DA EF 89 D7 C8 CD D2 21 E5 21 F8 89 22 59 F6 E1 CD C1 4B 2A B4 FC 22 AB FC C9 CD 17 81 CD 19 84 06 07 C4 FA 56 11 A5 FC CD 18 25 CD EF 0F 12 13 CD F5 8A 7E 12 21 AE FC C3 19 22 CD 5C 87 CD E4 83 2F +03 0064 04 00 00 00 00 00 00 00 00 00 00 00 32 CA FC 32 C7 FA CD 16 21 21 C4 F9 01 08 01 05 09 7E 23 23 23 3C 0E 14 CA 43 88 E5 FC 0D 85 E1 C3 2E 86 CD BF 89 21 2B 81 CD 20 89 C3 FE 41 4C 6F 61 64 22 0E 1A 11 AF 4F 06 50 11 C8 FE 7E 23 B9 C8 FE 0D C2 6B 86 3E 8F FE 20 D2 72 86 3E 20 12 13 05 C8 C3 60 86 F5 D5 E5 47 3A 5F F6 B7 78 CC FA 4A 21 6C FF 7E 23 A6 D6 03 C2 95 86 2B 77 CD 6E 52 E1 D1 F1 C9 07 0C 49 6E 73 65 72 74 20 62 6C 61 6E 6B 20 64 69 73 6B 0A 0A 43 41 55 54 49 4F 4E 0D 0A 46 6F 72 6D 61 74 20 6B 69 6C 6C 73 20 44 53 4B 07 22 CD EC 86 DB BB E6 20 0E 07 C2 FA 89 01 01 07 0D CD B1 85 CD E9 86 CD 8C 88 C8 01 31 4D CD 33 80 CD 37 85 26 2E 2B 7C B5 C2 EE 86 C9 49 4F 57 50 4C 53 4E 49 48 54 43 4F 41 42 4E 52 4E 46 46 45 44 46 42 4E 1B 59 25 20 66 69 6C 65 6E 61 6D 65 22 4B 69 6C 6C 22 E5 38 08 ED 11 67 18 DF C2 30 87 21 28 80 38 08 D9 E1 EB 21 9F F9 CD 8F 18 EB CD 54 17 E6 7F C2 4B 87 CD B2 88 AF 47 09 36 1A 08 AF 4F 09 7E FE 1A 37 3F C2 3E 4E 32 9F F9 3F C3 3E 4E 21 62 F6 11 CD FC CD 94 31 21 9F 83 C3 F3 88 7B CD 7A 84 D1 E1 7B FE 08 C2 E9 14 1E 02 C3 E9 14 21 E0 88 3A CA FC B7 C4 61 8A 22 C0 FC CD 9F 81 CD 87 70 CD 7A 1B CD 63 89 CD F2 6E CA 8F 87 2A C0 FC 06 01 05 4F FE 08 11 8C 87 3A C9 FC DA 13 5D B7 C8 79 FE 0D CA 3C 89 D5 11 01 85 D6 1B FE 06 D2 05 42 4F 21 97 81 E5 2A C8 FC EB C3 13 5D 0C 1B 57 4C 69 73 74 22 21 3B 84 CD 99 8A CD 24 22 CD D2 85 CD 24 22 CD 60 84 CA F5 87 21 DA 87 CD 46 85 CD FA 88 CD 60 84 3E 01 CD 7A 84 CD 5F 88 DA B0 83 EB 79 B0 CA B3 83 AF 5F 79 D6 80 4F 78 9B 47 F5 C5 79 DA 16 88 AF C6 80 4F CD B1 84 C1 F1 DA 25 88 B1 C2 06 88 01 01 02 0D C3 80 84 AF 47 C5 CD F0 88 C1 21 9D F9 7E 70 B7 C2 17 82 23 7E 70 23 70 B7 C9 3A C9 FC 91 2F 4F 0D CA 7C 87 21 69 85 06 08 CD A9 1B C3 49 88 7B C6 05 BA D8 D1 C9 CD 80 20 E5 EB 17 B7 17 F5 07 5F F1 7B 8F F5 E5 11 79 88 D5 D2 75 21 D1 E1 E5 D1 F1 F5 06 01 05 4F 09 2B 2B 7D 93 4F 7C 9A 47 F1 E1 C9 21 F9 FC CD 01 89 78 FE 12 7E C9 CD 0D 42 21 22 8B 06 26 3E EA E7 CD 54 84 AF 6F 0E C0 CD 7D 56 CD FE 41 C3 5C 7B 01 01 03 0D CD B4 85 CD 8F 88 C0 FE 30 C2 8A 84 AF 4F C9 3A C7 FC 32 C9 FC 3D CD 1B 83 CD 0B 45 06 28 21 4C FB CD B9 4E 32 C8 FC C3 B5 45 7C 81 51 80 71 85 1E 86 68 82 49 83 2D 83 31 84 21 CC FC D7 D4 30 34 C3 C8 17 01 01 05 0D C3 80 84 E5 CD 0A 73 CD 40 83 59 78 81 0C 57 0D CA B9 84 CD DF 89 77 23 82 C3 0C 89 E9 46 52 45 20 22 CD 8A 27 CD 92 83 D6 41 32 C6 FC C8 FE 18 C8 FE 0D D1 E1 C8 E5 D5 CD 05 42 C3 23 89 3A CA FC 3C 32 C6 FC CA 4F 89 CD 57 80 B7 C0 21 39 82 E3 CD 5F 88 DA 05 42 3D C2 2E 56 23 23 23 22 C4 FC EB C3 F4 84 3A CA FC B7 C0 3A C9 FC B7 C8 CD 18 80 AF 77 CD 19 84 11 D5 FC CD 94 31 21 0B 81 E5 CD 17 81 3E 08 E7 CD 0D 80 DA D6 83 CD F5 8A CD EE 57 CD 4B 84 C3 7F 89 4F 3A C6 FC B7 79 CD 61 4B CC 0B 4B CD F2 6E C8 FE 1B CA B5 89 CD F2 6E CA AC 89 FE 1B C0 E1 CD F4 4E 21 A9 83 C3 2C 5C CD 8A 27 3E 4A CD 4C 42 11 A5 FC CD C1 83 21 DD FC 3E EA E7 06 09 CD 54 84 21 EF 89 22 59 F6 C9 CD 3E 85 CD 86 6A DA EF 89 C8 0E 05 21 0E 02 11 0E 06 2A 0E 08 3A 0E 0A 21 0E 0B CD 2C 88 21 0D 84 09 5E C2 64 04 11 1E 86 21 A5 83 D5 E5 C5 CD F4 4E 21 07 01 CD 58 42 CD 0B 45 C1 21 F4 86 09 09 D7 E7 D7 E7 21 F1 03 CD 63 57 E1 C3 2C 5C 3A 9E F9 B7 CA 42 8A CD 35 17 C4 B1 84 01 01 02 0D CD 80 84 CD 2C 88 C3 0F 4D 2A C2 FB CD 9A 85 22 C2 FB 28 02 E3 01 06 01 05 08 D9 09 E3 3E A0 C3 B3 80 21 21 8B CD 9E 54 3E 80 2A 8B F9 CD 3B 80 21 ED 82 CD 8A 27 3E C0 2A 96 F9 CD 3B 80 21 08 80 CD 8A 27 2A F4 F5 CD 41 80 21 1A 89 CD 8A 27 CD 5C 7B 3E 20 E7 21 52 82 C9 D1 B7 C8 D5 E5 CD BD 8A 21 05 01 CD 58 42 E1 CD 8A 27 21 22 81 CD 20 89 3D E1 C8 E5 11 D9 82 D5 E5 C3 FA 85 3A CB FC FE 14 CC 5A 81 21 FF FF 22 C7 FC 21 C7 FC 34 7E CD 1C 84 EB CD 3F 84 CA C5 88 CD 19 84 C2 D4 8A CD 94 31 3E 20 1B 12 CD F5 8A 5E 3A C7 FC CD F8 8A 73 C3 CB 8A 3A C8 FC 4F 87 81 4F AF 47 21 5D FD 09 C9 7B 3D F0 7A 3D F0 3C C9 33 33 E5 D5 F5 11 04 01 15 19 7E FE 09 C2 D5 50 11 88 83 C3 E3 50 20 +04 0064 FF 00 00 00 00 00 00 00 00 00 00 00 44 49 53 4B 20 50 4F 57 45 52 20 4B 38 35 20 31 2E 30 20 AB 31 39 38 37 20 48 75 67 6F 20 46 65 72 72 65 79 72 61 1B 59 27 20 42 41 53 00 00 00 6F 61 64 22 0E 1A 11 AF 4F 06 50 11 C8 FE 7E 23 B9 C8 FE 0D C2 6B 86 3E 8F FE 20 D2 72 86 3E 20 12 13 05 C8 C3 60 86 F5 D5 E5 47 3A 5F F6 B7 78 CC FA 4A 21 6C FF 7E 23 A6 D6 03 C2 95 86 2B 77 CD 6E 52 E1 D1 F1 C9 07 0C 49 6E 73 65 72 74 20 62 6C 61 6E 6B 20 64 69 73 6B 0A 0A 43 41 55 54 49 4F 4E 0D 0A 46 6F 72 6D 61 74 20 6B 69 6C 6C 73 20 44 53 4B 07 22 CD EC 86 DB BB E6 20 0E 07 C2 FA 89 01 01 07 0D CD B1 85 CD E9 86 CD 8C 88 C8 01 31 4D CD 33 80 CD 37 85 26 2E 2B 7C B5 C2 EE 86 C9 49 4F 57 50 4C 53 4E 49 48 54 43 4F 41 42 4E 52 4E 46 46 45 44 46 42 4E 1B 59 25 20 66 69 6C 65 6E 61 6D 65 22 4B 69 6C 6C 22 E5 38 08 ED 11 67 18 DF C2 30 87 21 28 80 38 08 D9 E1 EB 21 9F F9 CD 8F 18 EB CD 54 17 E6 7F C2 4B 87 CD B2 88 AF 47 09 36 1A 08 AF 4F 09 7E FE 1A 37 3F C2 3E 4E 32 9F F9 3F C3 3E 4E 21 62 F6 11 CD FC CD 94 31 21 9F 83 C3 F3 88 7B CD 7A 84 D1 E1 7B FE 08 C2 E9 14 1E 02 C3 E9 14 21 E0 88 3A CA FC B7 C4 61 8A 22 C0 FC CD 9F 81 CD 87 70 CD 7A 1B CD 63 89 CD F2 6E CA 8F 87 2A C0 FC 06 01 05 4F FE 08 11 8C 87 3A C9 FC DA 13 5D B7 C8 79 FE 0D CA 3C 89 D5 11 01 85 D6 1B FE 06 D2 05 42 4F 21 97 81 E5 2A C8 FC EB C3 13 5D 0C 1B 57 4C 69 73 74 22 21 3B 84 CD 99 8A CD 24 22 CD D2 85 CD 24 22 CD 60 84 CA F5 87 21 DA 87 CD 46 85 CD FA 88 CD 60 84 3E 01 CD 7A 84 CD 5F 88 DA B0 83 EB 79 B0 CA B3 83 AF 5F 79 D6 80 4F 78 9B 47 F5 C5 79 DA 16 88 AF C6 80 4F CD B1 84 C1 F1 DA 25 88 B1 C2 06 88 01 01 02 0D C3 80 84 AF 47 C5 CD F0 88 C1 21 9D F9 7E 70 B7 C2 17 82 23 7E 70 23 70 B7 C9 3A C9 FC 91 2F 4F 0D CA 7C 87 21 69 85 06 08 CD A9 1B C3 49 88 7B C6 05 BA D8 D1 C9 CD 80 20 E5 EB 17 B7 17 F5 07 5F F1 7B 8F F5 E5 11 79 88 D5 D2 75 21 D1 E1 E5 D1 F1 F5 06 01 05 4F 09 2B 2B 7D 93 4F 7C 9A 47 F1 E1 C9 21 F9 FC CD 01 89 78 FE 12 7E C9 CD 0D 42 21 22 8B 06 26 3E EA E7 CD 54 84 AF 6F 0E C0 CD 7D 56 CD FE 41 C3 5C 7B 01 01 03 0D CD B4 85 CD 8F 88 C0 FE 30 C2 8A 84 AF 4F C9 3A C7 FC 32 C9 FC 3D CD 1B 83 CD 0B 45 06 28 21 4C FB CD B9 4E 32 C8 FC C3 B5 45 7C 81 51 80 71 85 1E 86 68 82 49 83 2D 83 31 84 21 CC FC D7 D4 30 34 C3 C8 17 01 01 05 0D C3 80 84 E5 CD 0A 73 CD 40 83 59 78 81 0C 57 0D CA B9 84 CD DF 89 77 23 82 C3 0C 89 E9 46 52 45 20 22 CD 8A 27 CD 92 83 D6 41 32 C6 FC C8 FE 18 C8 FE 0D D1 E1 C8 E5 D5 CD 05 42 C3 23 89 3A CA FC 3C 32 C6 FC CA 4F 89 CD 57 80 B7 C0 21 39 82 E3 CD 5F 88 DA 05 42 3D C2 2E 56 23 23 23 22 C4 FC EB C3 F4 84 3A CA FC B7 C0 3A C9 FC B7 C8 CD 18 80 AF 77 CD 19 84 11 D5 FC CD 94 31 21 0B 81 E5 CD 17 81 3E 08 E7 CD 0D 80 DA D6 83 CD F5 8A CD EE 57 CD 4B 84 C3 7F 89 4F 3A C6 FC B7 79 CD 61 4B CC 0B 4B CD F2 6E C8 FE 1B CA B5 89 CD F2 6E CA AC 89 FE 1B C0 E1 CD F4 4E 21 A9 83 C3 2C 5C CD 8A 27 3E 4A CD 4C 42 11 A5 FC CD C1 83 21 DD FC 3E EA E7 06 09 CD 54 84 21 EF 89 22 59 F6 C9 CD 3E 85 CD 86 6A DA EF 89 C8 0E 05 21 0E 02 11 0E 06 2A 0E 08 3A 0E 0A 21 0E 0B CD 2C 88 21 0D 84 09 5E C2 64 04 11 1E 86 21 A5 83 D5 E5 C5 CD F4 4E 21 07 01 CD 58 42 CD 0B 45 C1 21 F4 86 09 09 D7 E7 D7 E7 21 F1 03 CD 63 57 E1 C3 2C 5C 3A 9E F9 B7 CA 42 8A CD 35 17 C4 B1 84 01 01 02 0D CD 80 84 CD 2C 88 C3 0F 4D 2A C2 FB CD 9A 85 22 C2 FB 28 02 E3 01 06 01 05 08 D9 09 E3 3E A0 C3 B3 80 21 21 8B CD 9E 54 3E 80 2A 8B F9 CD 3B 80 21 ED 82 CD 8A 27 3E C0 2A 96 F9 CD 3B 80 21 08 80 CD 8A 27 2A F4 F5 CD 41 80 21 1A 89 CD 8A 27 CD 5C 7B 3E 20 E7 21 52 82 C9 D1 B7 C8 D5 E5 CD BD 8A 21 05 01 CD 58 42 E1 CD 8A 27 21 22 81 CD 20 89 3D E1 C8 E5 11 D9 82 D5 E5 C3 FA 85 3A CB FC FE 14 CC 5A 81 21 FF FF 22 C7 FC 21 C7 FC 34 7E CD 1C 84 EB CD 3F 84 CA C5 88 CD 19 84 C2 D4 8A CD 94 31 3E 20 1B 12 CD F5 8A 5E 3A C7 FC CD F8 8A 73 C3 CB 8A 3A C8 FC 4F 87 81 4F AF 47 21 5D FD 09 C9 7B 3D F0 7A 3D F0 3C C9 33 33 E5 D5 F5 11 04 01 15 19 7E FE 09 C2 D5 50 11 88 83 C3 E3 50 20 +05 0064 FF 00 00 00 00 00 00 00 00 00 00 00 2A F1 C6 04 00 00 03 B0 E6 05 0E 47 C2 75 95 D3 1C D7 47 4B D1 EC AD DE 9D D5 15 1A 06 A0 6B C2 41 53 EC 44 66 F7 F7 D1 7C 0A B7 4C AF B6 44 C0 1A 0A 7A CE 5D 71 D0 B6 3B 9C 74 47 1E 0A 0E 50 06 15 42 57 00 6A DC 99 03 60 77 ED B0 ED 64 79 BB 4A 1D A1 D3 5F 39 05 BF DF 73 40 7A C0 2C 3A 43 00 00 F3 3D 92 2A 22 CE 06 E3 97 11 B5 BE 54 A7 C0 03 0C A1 36 0C F0 1C 15 A4 61 1E EA E7 2A 0C D6 B0 D6 1D 70 EA D6 CF 23 B2 E6 76 44 0F 0C 6E DE C0 F5 E1 69 40 90 63 E7 AB D7 10 6B 43 53 55 CE 13 04 F1 05 06 60 A6 42 7E B4 EE 3B F2 0B A7 A7 9E 0A FA C5 07 EA 5E 30 00 7F 24 BA 31 01 92 00 69 A7 36 0C 07 F1 B7 00 B5 20 29 5E C9 41 99 FD BA 94 EF 27 E6 21 0E C7 73 17 D3 A4 04 0D B6 0F 49 B4 13 5C B6 3B CC 76 01 76 D9 05 27 E7 0E 23 A0 00 44 BB 9A 10 70 13 26 06 B1 CF E0 71 B0 BF F9 56 1B 66 02 6D 17 15 DA CC 03 94 A7 A2 95 33 F6 09 07 DD 01 BF 07 04 04 7B 69 7C C4 6A A3 65 40 C2 90 10 63 46 17 90 24 C0 43 3A D6 75 30 EA 4A F3 9F AA E0 CA 13 6B BD 07 A1 04 02 FD 0F F0 EB C1 4C DC 4F 0F 04 04 00 2C 94 2A B0 94 9E 61 4A D1 D0 90 E6 A6 F3 03 96 60 3C 0D E2 A1 CF DB 52 C4 93 C2 E1 79 D2 07 C1 6E 7C 19 3C 6C 03 2E 03 B1 C7 F0 C4 F9 9F 0C A4 C3 1C 9F 26 09 0F 10 60 1C FB C3 73 BE E5 7A C0 A9 3D EE 60 7F 20 00 50 61 5D 60 4A AA 34 B1 90 10 E1 90 5D B3 B2 FE 36 0E BB 76 AD 92 B0 20 50 FD 90 4A 67 E2 20 6B FB 62 B0 E4 46 D1 6E 19 66 4F 54 44 67 AE E3 0B E6 1A E4 E2 7C BB 4D 4A 09 5B 59 D4 13 F4 EE 50 61 E7 5D 42 04 3E D6 70 19 BC 55 EE 79 7B 52 44 D0 AF 60 DC 63 ED 70 F5 62 14 BD 73 47 1F 7E 0D EE E1 19 F3 EE A0 40 1C 04 FB 4A E0 6E 90 F4 CA 19 14 07 AF B3 F6 57 67 06 2F 4E 15 BB CA DD D2 AD 5F 32 FD C3 0C 43 FD 9A 6E A0 02 51 3F E3 E0 0E 66 C6 BE 19 FF F6 2C 09 0D F0 47 67 6D 56 31 35 BF 0D 5D C4 DC 07 CB 92 D6 33 10 1C 11 39 60 10 6D 6F FD CA 31 E5 E5 60 7B A7 6D 09 43 22 02 9F F2 74 73 06 51 9F DE E0 AE E5 45 26 EF 0D 19 D3 73 3F 43 21 04 BD 69 D0 04 40 7E 9D A1 E7 0F 3F 2C A9 09 E9 25 B7 F7 76 17 F0 34 FE 5A 1C F6 05 CD 9C 71 5F 26 7A 00 C6 4D DC 7E 37 BB D4 4E 09 DE 1B 0A 20 E6 59 10 C4 36 39 BA A2 00 D3 D2 69 97 4B A7 4D 37 0B 95 37 1B 31 0F DE AA BC 0B 7E 06 E3 10 16 3B CB 2D AA F7 41 04 AD 72 07 EF 06 5C 47 76 4E E9 CE 76 32 EE D0 2E 24 E5 2E 63 0D 79 9F 2F 99 39 3B A2 14 F0 F6 65 C1 F4 9F 44 0F 57 A9 9F C2 0D DC 1A 57 9E 0B 02 90 5C C1 4D 9C DF D1 34 C7 10 9D 2C E6 04 A1 70 52 B3 E3 7A 3D BA CB B1 D3 6F 94 2A 01 E0 74 E7 00 44 F0 39 64 F9 0B B2 A3 CD CD 97 77 31 54 99 9B C9 D7 0C 35 C0 30 B2 1C 3B FF 39 03 7A 50 6B A2 EB D3 FE 0C 3C 1F 69 F0 61 33 3F 07 F1 5B 6A 32 41 C3 00 27 4A 10 4F C0 C0 5C 42 20 BA B0 4D 30 4D F4 2B 30 3B 09 66 F5 3E 7C F1 05 5D 34 E6 AC D6 B0 66 50 B0 C3 64 A5 73 C6 EA E7 49 20 CF 4D EB D4 05 AA 02 C6 AF 5A D5 00 16 A5 3B D2 D4 95 10 25 55 59 07 25 D0 DC F6 3B CF 6E 60 29 10 4A A3 9C F0 74 D0 E0 B9 0B 0A F0 20 00 DD D1 35 51 3E 07 F6 07 CD 4C 7C 50 20 5C 53 42 54 BD DA 05 C0 90 05 AB 91 E4 41 1B ED C1 AB F4 26 D9 74 2B 50 C2 5A EE 4E 34 4D 9A 50 DB 4F 07 00 7C 57 74 92 AD 1B 23 B4 69 24 3E 47 F7 64 A7 4E 6A 29 63 2E C3 B2 F1 36 26 6A E6 5A 1B 35 60 5B 00 FF C5 AA 9A 20 CE D2 C2 06 7B 1F FC BB 64 E0 FB 13 CC 04 E5 0D EE 0A 3F DE 19 26 41 93 7E C3 BD E7 06 52 95 97 F7 1E FD 7B 00 F6 6A 00 0B 0B 63 1D F2 11 12 2C F6 CA F1 71 DB 6F 0C 25 73 AA D0 30 93 D6 1E 59 0D 7C 57 34 5B 44 29 01 56 30 B3 57 19 D4 D2 6A F6 6B 42 3A 52 F9 20 C1 F0 A3 76 95 00 9A 00 B5 CC 10 01 03 BF 33 C4 0C 73 DD F0 5D E9 45 9A 0C 12 A3 E9 6E 60 F2 16 C5 6D 09 AB E2 47 1D BD 5A ED E9 72 73 AA EC 1A 40 AF 52 94 23 A7 5F 0C A0 3D 94 4F 2C 2E 0E B4 ED DE B7 1D 3C AB 0C BA 44 95 A0 25 4A 40 21 AF FC 30 4F 75 D5 4D 5C 17 E1 EA 7B 23 3C BF 7F 3A 5A 49 52 19 26 3F D4 4E 0C 5E C2 03 27 74 11 49 36 6E 4E 95 37 45 1B 56 65 C7 11 66 F1 93 62 5F 7C EC 40 00 00 00 00 00 00 00 00 00 00 00 00 AA 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +06 0064 07 00 00 00 00 00 00 00 00 00 00 00 90 EA 51 0B 90 EA 63 C6 8D 9F B4 04 DD 4C 24 B4 00 62 79 DE CD 7A A4 F8 3D 23 D9 06 F9 EF 43 5B FD 08 8E 80 DE 67 4B 67 FC 3C 7F 3D 02 4E 58 34 FD F9 15 D6 8A 5B 11 96 CB 03 3E 29 86 25 6A 00 27 0C C1 64 34 0F C4 91 3C FD 68 74 9A C7 DB 7C 24 07 DE E9 06 A8 87 2D F3 C5 A8 22 B6 A9 8C E5 6F 13 58 B8 72 56 6A 36 31 1E 9D BA 3B C1 C1 69 F0 42 88 38 D3 0E 35 9F 8F 46 1C 61 28 D3 B0 F0 16 39 CF 33 AE 07 87 00 49 8B 22 B5 A8 64 63 66 6F 7F 97 27 D9 B0 7D 0B 19 D5 4F 5C DA B2 C9 07 38 26 8A 8A C9 D4 D6 88 61 B1 3B B7 D4 4B C2 A8 B7 56 C2 94 E9 B9 CF 46 97 F0 57 81 63 9A 9A B6 29 0B 18 60 70 A9 F3 CF 92 5C 7F 18 E7 E7 D2 53 B0 CB E3 3A 58 3F 2B 31 EA BD 7C 17 A7 3C D4 70 7D ED 72 C8 C0 CC F3 DD 6E E4 0A CE 7C ED 85 4F 03 EC FF ED 42 74 7C FA 70 3F D0 F8 CC 0A C2 D0 6A DC 7B A9 00 82 3A E7 61 D0 39 44 2E 5A 96 DA B7 28 E5 CC 87 93 0A A1 86 AD 77 E5 53 8E 94 69 B4 50 00 57 07 7A 95 CC 7F 27 8D 18 BA FF 6E B4 C2 CD 1C 60 4F 5D 16 37 48 DF B2 C8 51 26 C1 3A F0 A5 AE 0A 69 BF E1 F6 9D 4F 53 4D 64 06 1C E0 95 53 28 44 7B D2 D5 6B 50 56 42 38 F6 C0 05 91 2A D8 2F 6C 8E DF DC 9F 5C 41 1C 17 8F B1 B5 52 0A A7 9A BD 6E 2B 96 40 EB 68 BE 9D B4 45 90 B1 C6 2F E3 CF 53 93 47 B1 6C FC 6D A5 7A 83 29 9B F5 EB B9 46 59 53 05 A5 6F E7 2C 4A 85 07 A7 55 8A E7 5D 96 1D 0D 99 ED 13 3D 5D A1 55 87 A5 FA 8E 5C 24 37 E3 97 2F 9C CD 19 DC 48 26 92 E4 80 25 44 B0 1E E8 14 4A 59 77 10 D2 BA F4 C3 68 A1 64 45 E5 6A 69 DF E1 EE DE 34 89 B8 2B CD 0C 92 A1 4F 1E 9E CD 5D BE 4D 68 FE FB 20 13 71 5D A7 2D 71 71 93 A5 17 CE 05 7E 8A 92 B1 94 96 F0 A3 7C A0 98 C6 C8 54 01 DB F9 3C 8E BB A0 AF 8A 76 66 70 A0 01 A9 AF 47 61 F2 45 B4 0E 8F E5 ED 18 E5 3E 04 47 A7 D5 EA 19 A2 FB 6B 63 90 66 35 98 F4 AE CD B6 02 C7 7A 09 76 2C D0 3E CC FF 2C 0D 2E B1 2E 82 5B D1 18 3C 43 05 28 3D B2 1D D1 2A 5D F4 DE 0C CF 15 3F 5E DE 01 54 D6 E9 81 F0 D5 7D B5 D0 E7 90 7A B7 EF CD B5 D2 A9 F6 FA 41 5D 43 64 AF 0B C0 28 1D 5A 95 1F B0 21 B4 F4 7D 3D 57 27 B3 EF C4 55 D3 DE 97 F6 44 0F BA 51 D1 19 F0 CD DE BB CD 78 A1 64 9D 08 53 94 06 91 8B C9 F4 C1 E6 58 5D DE 9A 1B 07 46 C5 BC 14 FB DD 70 49 8A EB 38 50 CD 65 F0 6E 26 E9 60 B4 35 B6 91 B4 34 45 3B 39 1A A4 A0 51 E6 0F C4 FD A9 24 23 FC 6B 8E 4B B1 0B 93 CC 8B 36 3A 64 59 A7 9B 19 85 DA 91 7B 1E 93 E1 C4 4E 4F 1A BC E1 72 9E E9 98 28 3D 67 BD 3D 80 3F 88 60 45 B6 33 EF CD 5E 56 0D 46 00 45 68 59 B8 11 AE 13 82 A3 BF F4 9E 9F 32 13 F3 E0 96 47 26 38 C9 9E 70 2A E6 CB 40 4B 0F 2F E9 30 B6 13 85 C3 EE B4 04 9F 20 44 68 1B 80 AC 77 E6 DD FC E3 BE 6E 6B 8A D2 0D 8A CB 1D CE 90 31 53 A6 5E 06 06 57 B5 9F 9D FA EF D8 B3 BF 34 18 FB 14 4E 21 19 A7 EF AF 9D 66 EA 7B 91 53 7D 3C C6 E9 90 76 7F 0B EA 77 0F 8C FB FD 79 31 EA 98 E9 5C 5B DA 36 C1 92 60 67 77 0E AD C6 D8 0A A8 5D 5C 0B 36 7C AB A8 5F 9A 18 23 9B B8 0D A3 FD E8 15 EA 52 EA DD 83 12 4C 5B A4 50 3F BC 4B 22 13 01 04 A7 28 91 C4 A6 92 31 FC 6D 5B A5 7A 30 4C C9 D2 F2 7C 2D B8 01 40 0C 41 91 99 01 DB D7 44 CF E9 CE 9A 40 AD 29 B8 D8 11 4E 3A BB E6 0C 11 7F 7C E0 7F C1 9F 3E BE E4 6F F0 8B 62 27 D8 66 13 11 80 C3 C7 A5 EE 3D 4C 93 EC D2 46 FB 34 5C F8 B7 93 10 90 06 9D B6 7C 89 62 7E A9 32 5E 63 AB A4 B6 12 89 FA 31 F1 1E 31 0D 0F B0 97 BA 4C 30 B2 F4 B5 BF D9 62 E7 7C 3F C1 AC CC 70 30 8C D9 09 D1 E4 2D D0 67 1B C3 1E 46 09 A1 90 C9 87 17 A0 B6 16 36 AF 82 93 8E C0 7B 5A DD DF 41 71 49 1C 85 69 B6 4D F9 4A 9B E7 E5 60 71 70 84 CA 49 13 AD 74 0D 5F 44 FB B3 B7 54 9E 9F FB C7 9C 99 A0 09 D1 18 B3 17 B8 C7 77 A0 B0 32 C4 D6 8B DC E4 0F 85 C5 1F 61 AF 47 1C D7 1A 1F 6D 0D 0E 5E 1B 06 B0 9A ED 96 79 6D 85 CB 6C 63 96 1B 47 4C 40 0D 17 41 49 01 21 41 C3 89 5C D9 B1 9B B5 D5 26 63 D0 81 5D 7E 3D BC 42 1D 2C 70 2A C5 E9 40 34 29 12 02 6D 0A 73 D3 A3 9D CA 6D 79 34 AD AA B1 30 7B 46 3F D2 EC 7C B4 A6 2C 5E AA FD 7B D8 91 60 83 8E E5 40 36 90 F3 1E 3E 4C 44 7D 60 E7 F9 7F EF F0 53 DC 40 87 78 2A 0A FE 13 8B BF 40 75 DB 71 6C 46 A2 3F A8 50 E1 +07 0064 08 00 00 00 00 00 00 00 00 00 00 00 7E 52 F3 98 DC 76 FB 33 3C DD B7 F9 82 A3 A4 97 45 63 0D 42 38 08 CD FD A3 8D B2 46 4F B0 36 D1 E4 0F 19 10 0D D1 6A 7A 22 88 3B EB 10 EC E9 38 BC 14 F9 11 DA B4 7D 5B 4D 64 41 61 0D BA D4 E0 6A 04 0D DE A9 94 FE 10 F4 0F 97 AD 26 0E C8 60 B8 42 7A B3 28 09 8F 26 47 E2 82 F6 7E E7 B9 6F 1C D5 2C B6 08 C8 6B F1 5C 47 87 64 D2 37 49 57 91 CD 36 6F A4 E1 82 06 45 48 B8 0D 19 3D D6 6D 6D E4 46 ED 14 11 1D 50 CC BF B1 AA 8A CD 1A E7 32 74 10 BB 9C ED 9E 45 7C DE 15 2F F1 27 28 CA 2A A5 2D FB 47 5E C8 65 27 CA F1 17 68 AD D5 05 36 9B 90 D2 F7 D5 8A F7 93 D9 54 6A C4 03 B2 A3 6F 1E 69 51 D0 3D 45 9C 2A B5 6A 34 5D 77 A0 3D 7E E2 EC A4 58 E2 A9 0A CF AD BF 93 EA BE 1F 12 6F C3 2F 28 67 FB 25 79 4B B1 AC C5 5F 4C BF 3A E5 E0 1A 77 F8 41 B1 FF 45 F2 C5 EA 11 3A B7 6A B4 71 36 2C 8A 89 33 CB FA 15 93 18 3B C7 21 5E 60 F8 C5 9B A2 8E D8 C9 43 64 D6 07 9E F1 C8 7F 9E 5A 9E C8 BF 55 34 8B 03 21 63 42 61 31 26 48 1D A4 AE 39 30 2D 89 03 E4 AB 93 EA 68 4C D1 58 5D 94 24 6F 60 3C 0C BC F2 BC A9 65 39 6C B7 90 EE D4 3C 32 7A 18 F8 1C FA C7 32 95 A4 32 5A 59 84 0C 13 5E 83 A1 F5 79 A9 46 BC 03 0B 56 29 CF 81 AB F6 7E 11 8A 2A 10 D2 A1 73 06 D5 BD 60 79 F6 B4 E6 A0 7F 83 73 5C F5 F0 2A 8B E9 FE 44 6C D0 12 D9 F0 80 0A 62 EF BE 39 D0 A9 91 D6 3E 1B EE 8A 2C EA 06 5A 11 8E 75 B2 9A BC 46 23 7C 86 EC A2 D6 38 D0 6D 52 5F 22 15 7D 52 B3 44 27 73 81 BF FC FF BF 00 A9 4A 48 8B D7 03 8E 8C AA 61 C8 AB 04 77 99 31 0D B8 F1 FB 8E 89 B9 E4 D1 04 40 5F 18 BA E4 8E 88 A4 80 1F D0 94 A2 56 50 AE B3 1D D7 4D C6 AF 6B 88 92 85 08 70 0B 7D 05 82 D8 67 F0 4B F0 B4 77 71 0D A8 7A E6 3A 94 52 EC 2E E6 B4 9D 61 F3 A9 3B 80 85 19 49 8F 4C E4 38 B0 FE AB 6D DF 25 B4 9B 8C 1F 29 38 47 69 7A D2 B0 0D D2 8F 0D 54 CD 46 62 93 0A 6C 75 7C 38 D2 56 FA E5 99 F2 50 45 A7 EF 07 96 C2 EF F1 C6 2B 04 6D 33 05 0C 76 33 FD B9 14 17 2D D9 9F 75 A6 33 60 7C C0 37 01 81 4B 68 DE DC F0 7E 92 4D 70 8B 2A 58 18 CC 5D B0 56 F4 93 9F CD CE 07 EE 99 CC 2C AF 55 39 02 51 31 86 8F 9F BB 7F 19 C3 A0 A9 81 77 0B EF 9C 19 21 DE E8 31 86 E8 F7 42 24 6D 4F 94 08 6D 82 D4 9A 71 D8 B4 E4 60 19 46 A6 AD 0E 7E 82 4B 84 DE DA 55 5E CE E6 DF 2D 3B 56 1E 9C 75 C4 07 9A D6 69 80 45 22 0C FC D8 2B 54 D1 38 B2 7A E7 1F 07 99 22 A9 63 97 A3 03 F0 55 35 70 BC C0 FB 98 62 32 23 FE 0B 25 5A A5 2B F1 C6 FC FA 43 94 FD DD 86 01 06 03 6D E2 01 7D 86 EE 1D 78 E4 0D A2 2F 61 87 05 28 C0 4F EE D5 24 01 2E 6B 71 21 89 04 5D B7 CA 5E 0B C7 45 2B 52 1E 5A 3D C4 A1 AC 94 18 80 08 9C 48 09 2F 18 81 38 00 40 6F C3 9F 48 86 63 43 1E 4E E5 66 3D DD D3 10 51 D8 1A B9 CD 5B 3C DA 86 DA C6 A0 0D 80 1F 2E FB 0E F7 43 31 8B 7C 98 7F 02 FF 77 A6 BF 54 D9 F1 DF C0 7E 36 5A DB 9B 1E 9F E1 CC 07 37 B8 68 05 0A C4 6E 90 B6 EC 3A 2B 3A 20 88 D1 58 C0 F0 CA 41 6C 95 91 01 09 44 ED 99 83 05 2F F2 4B A0 69 EB 72 5E 97 07 65 DB 68 46 DB DB B2 A6 E6 0E 00 A3 CB 71 43 46 9F 01 D2 6D 7F 5B FB 78 20 9F 4B 66 56 8C 42 87 B6 00 C2 B6 69 D0 35 A2 7D 89 DD 6E 19 22 F3 FB AF 4F F1 B6 C4 6A 0A E3 A1 E6 F1 65 E9 45 8F FE 61 26 BB 1D E1 4E 4E 1C 75 CC D8 2F FC DD E3 89 90 89 70 CC 9A 89 11 32 07 DE 4B C7 0A B5 42 15 F3 07 66 9D DB CB F7 AE 59 13 10 96 0A 7D C0 FC CC 08 A2 BC 2A CE 6D E8 B1 02 C8 90 A0 DD BD 47 37 80 DA AA F1 19 FF 38 13 C8 99 14 89 5F F8 D1 A2 41 45 4B B6 2A D5 AE A9 86 FD 8E 00 3A 13 31 6C DB 3E 18 97 24 68 B8 4A B5 2D F9 4A 90 13 A5 24 45 87 D9 EB F0 68 1F 4C 45 42 2A 99 83 D2 8D 9F F7 3B A0 CF 57 47 D3 71 BA 86 BD 79 6C FC 07 70 E7 2A 86 3E 69 D7 F8 BB C2 E1 C4 02 A8 69 9A F9 52 87 7E 62 6C 0A 10 7E 5C 80 05 06 1A C0 12 9D E9 03 35 3F 8B 6B 04 7B 85 2D CE BC 57 6D A3 7D A6 97 9B B0 EF 95 95 64 56 5E 87 6F 81 89 7C B9 22 FD C7 B2 95 8E 1C BE C5 E3 C0 00 93 95 50 C3 1E 03 F2 66 0D 71 66 BB 59 96 B6 37 9A D4 8F AB AF 35 B7 C8 DE 30 C0 86 11 C2 FB 2E D6 75 0E AB FF 7C AF C1 90 FC DA D4 3C 4A AB 1B 02 7A E4 A9 AB BE 9E 52 A7 F1 55 5D AB 10 C8 98 43 77 FA 4F F9 7C 27 C2 67 94 50 +08 0064 FF 00 00 00 00 00 00 00 00 00 00 00 7D AD EC DF 12 B6 F7 28 A9 86 14 35 7F 6E D0 8F 14 4B D2 9D 7D C0 DE 30 A0 FC 17 25 03 34 AC 0E 4E 01 27 68 51 37 05 4B 80 B8 06 2F 2D C5 FC 5E F5 B9 9D 45 FE E3 59 7B 9C 57 DF E0 71 A6 C2 FB E1 58 30 9C DD 30 75 E5 8C 30 39 AC C5 72 3A D7 CD 25 C6 BD D6 27 FE 24 F7 AB B9 A9 FD D4 BE 63 54 F4 18 07 63 65 4C A7 D6 BF 50 1B F0 DB F2 02 1C 3F 70 82 34 1E 1B 10 0D 31 87 C3 EC AD 21 DA 98 05 FB C0 18 1D 5D 60 C3 5B C2 77 6D B9 54 4E A7 9E A0 B7 4B BF 62 A5 77 E4 CD 14 04 C2 43 0B 56 8A E1 86 1A 96 08 43 D9 8C 68 23 57 FC 1F 3A DD 00 BE BE 86 D5 09 14 11 56 CB 61 BB 25 E9 CA 53 47 8A 7C C7 AC 98 06 20 F5 ED AA 97 D1 35 8A 58 6D BE 79 9F 80 B0 81 58 B9 3C A3 75 C0 4E F6 55 88 B0 CE AD D0 0D 4C 38 2A E6 35 08 A3 D8 2E AC 52 34 16 34 C6 E2 78 7D 73 CD 7A 7C 04 E3 10 34 06 D5 2D 9A DF 2D 9B 5A EE 9A 7C FE 73 28 50 A9 3D 6B 1D EE 57 27 EF AE D6 2D FD BB F4 E1 50 FC 81 EE CB B6 51 4E 47 73 BC 72 DE 24 02 BE 63 C7 85 1C 37 63 0B C7 D9 46 12 53 BB 05 D1 D0 B0 19 9A 38 FF 0B 96 0A 16 79 18 56 08 46 4C 64 C2 9C 68 33 12 F3 8A 85 1C FA C7 32 95 A4 32 5A 59 84 0C 13 5E 83 A1 F5 79 A9 46 BC 03 0B 56 29 CF 81 AB F6 7E 11 8A 2A 10 D2 A1 73 06 D5 BD 60 79 F6 B4 E6 A0 7F 83 73 5C F5 F0 2A 8B E9 FE 44 6C D0 12 D9 F0 80 0A 62 EF BE 39 D0 A9 91 D6 3E 1B EE 8A 2C EA 06 5A 11 8E 75 B2 9A BC 46 23 7C 86 EC A2 D6 38 D0 6D 52 5F 22 15 7D 52 B3 44 27 73 81 BF FC FF BF 00 A9 4A 48 8B D7 03 8E 8C AA 61 C8 AB 04 77 99 31 0D B8 F1 FB 8E 89 B9 E4 D1 04 40 5F 18 BA E4 8E 88 A4 80 1F D0 94 A2 56 50 AE B3 1D D7 4D C6 AF 6B 88 92 85 08 70 0B 7D 05 82 D8 67 F0 4B F0 B4 77 71 0D A8 7A E6 3A 94 52 EC 2E E6 B4 9D 61 F3 A9 3B 80 85 19 49 8F 4C E4 38 B0 FE AB 6D DF 25 B4 9B 8C 1F 29 38 47 69 7A D2 B0 0D D2 8F 0D 54 CD 46 62 93 0A 6C 75 7C 38 D2 56 FA E5 99 F2 50 45 A7 EF 07 96 C2 EF F1 C6 2B 04 6D 33 05 0C 76 33 FD B9 14 17 2D D9 9F 75 A6 33 60 7C C0 37 01 81 4B 68 DE DC F0 7E 92 4D 70 8B 2A 58 18 CC 5D B0 56 F4 93 9F CD CE 07 EE 99 CC 2C AF 55 39 02 51 31 86 8F 9F BB 7F 19 C3 A0 A9 81 77 0B EF 9C 19 21 DE E8 31 86 E8 F7 42 24 6D 4F 94 08 6D 82 D4 9A 71 D8 B4 E4 60 19 46 A6 AD 0E 7E 82 4B 84 DE DA 55 5E CE E6 DF 2D 3B 56 1E 9C 75 C4 07 9A D6 69 80 45 22 0C FC D8 2B 54 D1 38 B2 7A E7 1F 07 99 22 A9 63 97 A3 03 F0 55 35 70 BC C0 FB 98 62 32 23 FE 0B 25 5A A5 2B F1 C6 FC FA 43 94 FD DD 86 01 06 03 6D E2 01 7D 86 EE 1D 78 E4 0D A2 2F 61 87 05 28 C0 4F EE D5 24 01 2E 6B 71 21 89 04 5D B7 CA 5E 0B C7 45 2B 52 1E 5A 3D C4 A1 AC 94 18 80 08 9C 48 09 2F 18 81 38 00 40 6F C3 9F 48 86 63 43 1E 4E E5 66 3D DD D3 10 51 D8 1A B9 CD 5B 3C DA 86 DA C6 A0 0D 80 1F 2E FB 0E F7 43 31 8B 7C 98 7F 02 FF 77 A6 BF 54 D9 F1 DF C0 7E 36 5A DB 9B 1E 9F E1 CC 07 37 B8 68 05 0A C4 6E 90 B6 EC 3A 2B 3A 20 88 D1 58 C0 F0 CA 41 6C 95 91 01 09 44 ED 99 83 05 2F F2 4B A0 69 EB 72 5E 97 07 65 DB 68 46 DB DB B2 A6 E6 0E 00 A3 CB 71 43 46 9F 01 D2 6D 7F 5B FB 78 20 9F 4B 66 56 8C 42 87 B6 00 C2 B6 69 D0 35 A2 7D 89 DD 6E 19 22 F3 FB AF 4F F1 B6 C4 6A 0A E3 A1 E6 F1 65 E9 45 8F FE 61 26 BB 1D E1 4E 4E 1C 75 CC D8 2F FC DD E3 89 90 89 70 CC 9A 89 11 32 07 DE 4B C7 0A B5 42 15 F3 07 66 9D DB CB F7 AE 59 13 10 96 0A 7D C0 FC CC 08 A2 BC 2A CE 6D E8 B1 02 C8 90 A0 DD BD 47 37 80 DA AA F1 19 FF 38 13 C8 99 14 89 5F F8 D1 A2 41 45 4B B6 2A D5 AE A9 86 FD 8E 00 3A 13 31 6C DB 3E 18 97 24 68 B8 4A B5 2D F9 4A 90 13 A5 24 45 87 D9 EB F0 68 1F 4C 45 42 2A 99 83 D2 8D 9F F7 3B A0 CF 57 47 D3 71 BA 86 BD 79 6C FC 07 70 E7 2A 86 3E 69 D7 F8 BB C2 E1 C4 02 A8 69 9A F9 52 87 7E 62 6C 0A 10 7E 5C 80 05 06 1A C0 12 9D E9 03 35 3F 8B 6B 04 7B 85 2D CE BC 57 6D A3 7D A6 97 9B B0 EF 95 95 64 56 5E 87 6F 81 89 7C B9 22 FD C7 B2 95 8E 1C BE C5 E3 C0 00 93 95 50 C3 1E 03 F2 66 0D 71 66 BB 59 96 B6 37 9A D4 8F AB AF 35 B7 C8 DE 30 C0 86 11 C2 FB 2E D6 75 0E AB FF 7C AF C1 90 FC DA D4 3C 4A AB 1B 02 7A E4 A9 AB BE 9E 52 A7 F1 55 5D AB 10 C8 98 43 77 FA 4F F9 7C 27 C2 67 94 50 +09 0064 FF 00 00 00 00 00 00 00 00 00 00 00 F4 F2 FA 02 F4 F2 09 51 20 03 12 D4 6A 43 E3 F9 76 F4 D4 D5 F7 26 BF F2 EF F3 73 7B 00 B0 05 6A D7 39 26 DD 00 C4 C4 F7 46 1B 54 D6 BC 50 DD 60 7B 0B 4B 62 3F 47 F1 50 95 E6 4D D4 72 1B 12 30 10 73 DA 34 00 0B F6 EE 09 01 44 2F 50 2F 0D 4E 55 DB 7F B7 F9 3C 9E 13 5C FC 49 D0 4B 61 A6 9B D9 00 11 C9 9F EA AB AA 62 00 29 E4 77 53 52 3D B4 60 19 06 B7 90 06 C1 76 73 BD 07 72 2B 24 AB 00 81 00 00 88 31 3A E9 48 49 4D 22 21 CC FC 3A 5A FF BE CA 0D 80 77 3A 5A FF 4F E6 10 D1 C8 CD E4 13 C0 D5 79 0F C9 4F 9F CD E3 33 E1 21 9F F9 71 C9 78 CD 3B 85 79 C3 3B 85 EB CD 62 88 69 60 01 63 57 C5 CD E9 34 01 01 06 0D 3E 80 C3 B5 39 21 51 86 CD 99 8A CD D2 85 CD 60 84 CA B0 83 3A E4 FC D6 42 FE 03 D2 AD 83 CD 80 20 CA 79 80 21 57 80 CD 46 85 CD 07 82 21 F5 89 22 59 F6 CD BD 20 E5 2A 12 FD 4C 45 C5 21 01 01 25 3A E4 FC 57 0F F5 AA A5 57 F1 0F 0F 7A 17 6F 09 44 4D 3D CA DF 80 FA 48 8A 21 52 8B CD 9A 85 E5 CD 0E 21 E1 3E 80 EB E1 E3 D5 1B 32 9D F9 CD 11 22 3E 03 CD 7A 84 E1 CD B2 88 AF 47 09 E3 08 E3 C2 C4 80 C1 CD 16 21 01 01 02 0D CD 80 84 32 9D F9 C9 2A C0 FB CD 9A 85 3E 1A 12 3E C0 C3 B3 80 69 74 20 65 78 69 73 74 73 20 28 4F 2F 52 2F 53 29 3F 01 02 06 F0 51 F0 7F 40 2B F0 6C A9 5A 20 40 DD 0C 16 02 F2 61 C3 27 0E D0 E0 09 24 B5 F4 71 05 D9 39 33 62 79 0D C7 13 10 01 B0 DA 42 5D 22 95 CA 15 B4 B4 E2 0B CB 63 14 2B 32 91 00 4C AD 5B 97 17 EA 10 0E B4 90 06 04 C7 54 00 53 A1 AE 32 6E D7 EE CF 5B ED 2C A4 20 A7 02 64 49 74 F9 BD 1D 1F 50 1C DE 5D 79 36 50 95 66 40 17 40 FE 03 A4 24 02 A9 B0 11 DD 55 EB 71 41 79 A0 00 57 6C 21 47 50 5C CE 30 75 00 1A 0F 74 73 FB 66 19 ED B4 BA E3 99 C0 1E 04 FF 07 5C 04 0D 0D 45 0E 46 6D 0B B9 03 D1 6A E0 71 09 D0 74 E1 AD 61 D9 9B F0 43 90 2B DB C9 EC BB 20 6B 79 05 5F 14 B7 0D 1A CF 1C C1 25 67 D6 F6 DC 0C 1D 1D 01 A6 ED AB 50 ED E2 07 DB F7 F0 E0 20 B0 C9 19 E0 01 96 0F 2A B7 6C F5 3A 6D E9 6A 27 4E FA 04 67 02 46 7E 96 06 19 A2 09 57 64 C0 6D CE EC 06 BD 69 76 EC A0 1E 0C 71 00 76 C5 69 49 52 23 4B 61 BE 9F 22 00 4C A0 10 30 07 3F 01 DB BB 9D 57 E1 70 27 E0 3F 59 5A C2 90 12 55 40 BF EA 50 A1 31 CF E0 DB 04 2A A1 05 C5 0A 51 2D D0 F7 02 7E 00 DC 3D DD 04 B2 29 15 20 7B 2D 2A 46 55 DF DB 0E 35 3E FD 79 CD 22 31 07 24 3F DA 1D 92 F0 40 7E 56 33 22 4E 45 3A DD F1 BC 01 F6 09 2F 40 C3 0A 7D 5F 49 D4 7C 42 1F 22 27 7E C9 22 B1 D0 76 0D C5 DB 20 02 E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AA AA 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +10 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +11 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +12 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +13 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +14 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +15 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +16 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +17 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +18 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +19 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +20 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +21 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +22 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +23 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +24 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +25 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +26 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +27 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +28 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +29 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +30 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +31 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +32 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +33 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +34 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +35 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +36 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +37 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +38 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +39 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +40 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +41 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +42 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +43 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +44 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +45 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +46 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +47 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +48 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +49 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +50 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +51 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +52 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +53 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +54 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +55 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +56 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +57 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +58 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +59 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +60 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +61 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +62 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +63 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +64 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +65 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +66 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +67 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +68 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +69 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +70 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +71 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +72 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +73 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +74 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +75 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +76 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +77 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +78 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +79 0064 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/clients/teeny/D_WEENY.100 b/clients/teeny/D_WEENY.100 new file mode 100644 index 0000000..d689034 --- /dev/null +++ b/clients/teeny/D_WEENY.100 @@ -0,0 +1 @@ +0'D.100 & WEENY.100 Ron Wiesen 0CLEAR99:GOSUB3 1?"0 for D.CO - DOS w/batch capability"TAB(40)"1 for WEENY.CO - World's teeniest DOS"TAB(40);:F$=INPUT$(1):F=ASC(F$)-48:IFF<0ORF>1THEN1ELSEF$="D.CO":IFFTHENF$="WEENY.CO" 2GOSUB6:END 3?"12 seconds..":FORN=64710TO64994:P=P+2:IFP>LEN(D$)THENREADD$:P=1 4D=(ASC(MID$(D$,P,1))-65)*16+ASC(MID$(D$,P+1,1))-65:POKEN,D:C=C+D:NEXT:IFC=41383THENRETURN 5GOSUB8:?"loader. Can't continue.":END 6?"End address for ";F$;:A=-1:INPUT" (Press ENTER for just below HIMEM)";A:CALL64710,F,A:F=F+1:E=PEEK(64704):IFETHEN?"Warning - ";:GOSUB8ELSE?"Loaded "; 7CALL4514,,64659:?".CO":RETURN 8?"Bad checksum on ";:BEEP:RETURN 9DATAMGDADCMAPMDCMBPMOFCKHMPGOLONCLCCMEPMCBJDPMFHMNDMPNCBMOPKMNDMPNOBNFAIMKBFPNCDAIMCPDPMCKPEPFOFCKNAPKEEENOBAIOFBBMOPKONEEEN 10DATAOBNJAICCMCPMOLCKNCPKHMLFMKBFPNBJCCNCPKMNEGCBMNIJCAMENJBPMNEGCBMNLJPNMNIJCAOLMNFADECDCDNBMNDPPNDCJJPMMNGBPNJCDCMAPMMJABAG 11DATAAAMFOFMNGBPNOBHHEHHKNKFFPNCLEOOLCKMCPMAJNJOLCDIAAPFHCDMBALHILBMCDPPNMJNFFEMNHOPNPOCKNCHJPNNGCFFHAPAPOGMAFPMNHOPNNGDALDNG 12DATAGLBINBMJCKMEPMHOLHMKJBPNHOPOCJCDCCMEPMMADODKMJABAFAAAJHONGIDMCKNPNCDLOMKJEPNABMAPMAKLHMKKNPNDKMBPMJGACCDHOMKICPNLHMCKNPN 13DATAMDJBPNMNOMCAOFCKNAPKABAGAAAJEEENCKLCPLNEGNGLNKCCDPOLCKLAPLAICCLAPLDOKAOBMNDJCCCBMOPKMDEACF 14DATA0#_#;#;#;#;#;g]_mg]##>#=kh#<$5$5#=yh#Euhd!J#Mwh#<"o&NP#<;&P8!=|8#_#a#<$H&N#=#ma#<$aa#Q#=8z#g8#a#<#U$`ai#l5!K&Pi#n5#c&P`8#) 15DATA &O5$6&N\A#f5x&O#X5$S&O#9kl#9ml#9ql#9sl#9{l#9}l#9"ol#9#1#Uwh!R5$^&N@#Eqh#_#h#Eoh8!)$F<##Qk4F!VQ#;3#9o.$J&N#<{h$Y#>$a$2$Y$)#b#> 16DATA !R$U52&N$a#>#8-,&N#J$R#Yp$[#b#p-;&N#<{h8$7$Q8i&N8i&N#jw8i&Nx-X&N!J#K#<|h#i#>$Y!R48!B&N8$Y$HE$<&N-$9&N$R#>4#Yp8!)&N8!L&N3Q[#)#)#)$).$J&N86$I8!1&N# 17DATA |$baqt8$D#Oqz#Q#;#>p-#]&O#Q#a#>$K8!L&N#b#U{hi}5#1&O$S!R4#9l#Yl8!)&N$R#>$N.}&O<#Yo8!)&N$L#>#\8$D#O.}&O8!J#;-$?&N#<$E&N#=#ma8O#;P8#Z&P#E#Fh#`#g$D$;#=shv$)#Wn#X-!3&O$2# 18DATA $9#>$1@#>$9#>$A$F$9#>$1$;$D#=qhV#=ohP8$H$FE$B&N#w.F&O#9n8$9&OP@#Yn8!)&N8#h&O!J#b#j#M{h 19DATA $R#EqhV#E!If#4#=!If4#Eoh#=!Kf4\#EohV#6L.#T#=#U!4gA#^[#Ym48#)&O-$?&N#U!4gi#]E$H&Ni#`=$H&N8!J#;5$6&N8#Z&P#j#Ym$l0@V8!8#<<$X$n$J$W!5$B,w#>#Fx-$S&P$X!O3@P8$7&O&N\A#f5#0&O#X5$[ 22DATA &O#9kl#9ml#9ql#9sl#9{l#9}l#9"ol#9#1#Ush!R5$f&N@#Emh#_#h#Ekh8!)$F<##Qk4F!VQ#;3#9o.$R&N#$a$2$Y$)#b#>!R$U5)&N$a#>#8-4&N#J$R#Yp$[ 23DATA #b#p-C&N#$Y!R48!J&N8$Y$HE$D&N-$A&N$R#>4#Yp8!B&N8!T&N3Q[#)#)#)$).$R&N86$I8!9&N#|$baqt8$D#Oqz#Q#;#>p-#e&O#Q#a#> 24DATA $K8!T&N#b#Uwhi}5#9&O$S!R4#9l#Yl8!B&N$R#>$N.#5&O<#Yo8!B&N$L#>#\8$D#O.#5&O8!J#;-$G&N#<$M&N#=#ma8O#;P8#b&P#E#Bh#`#g$D$;#=ohv$)#Wn#X-!;&O$2#<"o&P#4#4#4#4#4$Y`|#X&P@#>$9#>$1@#>$9#>$A$F$9#> 25DATA $1$;$D#=mhV#=khP8$H$FE$J&N#w.N&O#9n8$A&OP@#Yn8!B&N8$0&O!J#b#j#Mwh&P!If$[#A&P!5d#Q#54!J$R#> 26DATA $R#EmhV#E!If#4#=!If4#Ekh#=!Kf4\#EkhV#6L.#T#=#U!4gA#^[#Ym48#B&O-$G&N#U!4gi#]E$P&Ni#`=$P&N8!J#;5$>&N8#b&P#j#Ym$l0@V8!8#<<$X$n$J$W!5$B,w#>#Fx-$[&P$X!O3@P8$?&O Date: Wed, 22 Jun 2022 19:06:10 -0400 Subject: [PATCH 068/206] path mismatch --- Makefile | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index cd11b48..6942ef7 100644 --- a/Makefile +++ b/Makefile @@ -11,12 +11,12 @@ APP_DOC_DIR := $(PREFIX)/share/doc/$(APP_NAME) APP_VERSION := $(shell git describe --long 2>&-) CLIENT_LOADERS := \ - clients/ttwd/TINY.100 \ - clients/ttwd/D_WEENY.100 \ - clients/ttwd/TEENY.100 \ - clients/ttwd/TEENY.200 \ - clients/ttwd/TEENY.NEC \ - clients/ttwd/TEENY.M10 \ + clients/teeny/TINY.100 \ + clients/teeny/D_WEENY.100 \ + clients/teeny/TEENY.100 \ + clients/teeny/TEENY.200 \ + clients/teeny/TEENY.NEC \ + clients/teeny/TEENY.M10 \ clients/dskmgr/DSKMGR.100 \ clients/dskmgr/DSKMGR.200 \ clients/dskmgr/DSKMGR.K85 \ @@ -34,11 +34,11 @@ LIB_OTHER := \ clients/disk_power/Disk_Power_KC-85_Install_Disk.p1h CLIENT_DOCS := \ - clients/ttwd/teenydoc.txt \ - clients/ttwd/hownec.do \ - clients/ttwd/TNYO10.TXT \ - clients/ttwd/tindoc.do \ - clients/ttwd/ddoc.do \ + clients/teeny/teenydoc.txt \ + clients/teeny/hownec.do \ + clients/teeny/TNYO10.TXT \ + clients/teeny/tindoc.do \ + clients/teeny/ddoc.do \ clients/dskmgr/DSKMGR.DOC \ clients/ts-dos/tsdos.pdf \ clients/disk_power/Disk_Power.txt \ From 6bab177c43437a75b26d6e34c4c6ad21686c440f Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 22 Jun 2022 21:56:08 -0400 Subject: [PATCH 069/206] tpdd filesize only 16bit, fix bootstrap post-install, ioctl()->fcntl(), baudrates --- Makefile | 2 +- constants.h | 8 +- dir_list.c | 52 ++---- dir_list.h | 2 +- dl.c | 496 ++++++++++++++++++++++++++++++---------------------- 5 files changed, 308 insertions(+), 252 deletions(-) diff --git a/Makefile b/Makefile index 6942ef7..5e83669 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ OS ?= $(shell uname) CC ?= gcc CFLAGS += -O2 -Wall -#CFLAGS += -std=c90 -D_DEFAULT_SOURCE # prove the code is still plain c +#CFLAGS += -std=c99 -D_DEFAULT_SOURCE # prove the code is still plain c PREFIX ?= /usr/local APP_NAME := dl APP_LIB_DIR := $(PREFIX)/lib/$(APP_NAME) diff --git a/constants.h b/constants.h index f629e35..78120c3 100644 --- a/constants.h +++ b/constants.h @@ -94,6 +94,7 @@ #define FDC_WRITE_SECTOR 'W' // write sector data #define FDC_WRITE_SECTOR_NV 'X' // write sector data without verify + // TPDD1 FDC-mode error codes // There is no documentation for FDC error codes. // These are guesses from experimenting. @@ -123,8 +124,13 @@ // KC-85 platform BASIC interpreter EOL & EOF bytes for bootstrap() #define BASIC_EOL 0x0D #define BASIC_EOF 0x1A +#define LOCAL_EOL 0x0A + +#define OPR_CMD_SYNC 0x5A +#define FDC_CMD_EOL 0x0D -#define DIR_FLAG 0x01 +#define FE_FLAGS_NONE 0x00 +#define FE_FLAGS_DIR 0x01 #define NO_RET 0 #define ALLOW_RET 1 diff --git a/dir_list.c b/dir_list.c index 341672f..787efaa 100644 --- a/dir_list.c +++ b/dir_list.c @@ -32,8 +32,7 @@ static FILE_ENTRY *tblp = 0; static FILE_ENTRY * current_record (void); -int file_list_init () -{ +int file_list_init () { tblp = malloc (sizeof (FILE_ENTRY) * FEQ ); if (!tblp) return -1; allocated = FEQ; @@ -42,8 +41,7 @@ int file_list_init () return 0; } -int file_list_cleanup() -{ +int file_list_cleanup() { allocated = 0; ndx = 0; cur = 0; @@ -52,16 +50,13 @@ int file_list_cleanup() return 0; } -void file_list_clear_all () -{ +void file_list_clear_all () { cur = ndx = 0; } -int add_file (FILE_ENTRY *fe) -{ +int add_file (FILE_ENTRY *fe) { /** allocate FEQ more records if out of space */ - if (ndx >= allocated) - { + if (ndx >= allocated) { /** resize the array */ tblp = realloc (tblp, (allocated + FEQ) * sizeof (FILE_ENTRY) ); if (!tblp) return -1; @@ -79,50 +74,35 @@ int add_file (FILE_ENTRY *fe) return 0; } -FILE_ENTRY * find_file (char *client_fname) -{ +FILE_ENTRY * find_file (char *client_fname) { int i; - for(i=0;i ndx) - return NULL; - +FILE_ENTRY * get_next_file (void) { + if (cur + 1 > ndx) return NULL; cur++; - return current_record (); + return current_record(); } -FILE_ENTRY * get_prev_file (void) -{ - if(cur==0) - return NULL; - +FILE_ENTRY * get_prev_file (void) { + if (cur==0) return NULL; cur--; return current_record (); } -static FILE_ENTRY * current_record (void) -{ +static FILE_ENTRY * current_record (void) { FILE_ENTRY *ep; - - /** return error if out-of-range */ if (cur >= ndx) return NULL; - if (!tblp) return NULL; - ep = tblp + cur; return ep; } diff --git a/dir_list.h b/dir_list.h index 1a120c5..f2d1004 100644 --- a/dir_list.h +++ b/dir_list.h @@ -30,7 +30,7 @@ typedef struct { char client_fname[TPDD_FILENAME_LEN+1]; char local_fname[LOCAL_FILENAME_MAX]; - uint32_t len; + uint16_t len; uint8_t flags; } FILE_ENTRY; diff --git a/dl.c b/dl.c index 3e98fea..a599e84 100644 --- a/dl.c +++ b/dl.c @@ -29,39 +29,42 @@ Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ -/* Some basic info about TPDD protocol formatting that explains - * some frequent idioms in here. TPDD Operation-mode transactions, both - * commands issued by the client, and responses issued by the server, - * have this general form: - * - * type - 1 byte the format or type of this packet - * length - 1 byte number of bytes that come next - * payload - length bytes range is 0-128 - * checksum - 1 byte includes type, length, and payload - * - * Most functions pass around a pointer to a buffer containing this - * entire structure. - * - * Frequently a buffer will be declared with a SIZE+3, where - * SIZE will be a pertinent payload size of a given command, - * like 128 for the max possible, or 11 for a DME message, etc, - * and the +3 is 3 extra bytes for type, length, and checksum. - * - * Similarly, most functions include frequent references to these - * byte offsets gb[0], gb[1], gb[2], gb+2, gb[gb[1]+2]. - * - * functions named req_*() (request) receive a command in this format - * functions named ret_*() (return) generate a response in this format - * - * There is also an FDC-mode that TPDD1/FB-100 drives have, which has - * a completely different format. This program only implements - * Operation-mode. TPDD2 drives do not have FDC-mode, but they do have - * extra Operation-mode commands that TPDD1 does not have, - * some of which this program does implement. - * - * See the ref/ directory for more details, including a copy of the - * TPDD1 software manual. There is no known TPDD2 software manual. - */ +/* +2022 bkw + +Some basic info about TPDD protocol formatting that explains +some frequent idioms in here. TPDD Operation-mode transactions, both +commands issued by the client, and responses issued by the server, +have this general form: + +type - 1 byte the format or type of this packet +length - 1 byte number of bytes that come next +payload - length bytes range is 0-128 +checksum - 1 byte includes type, length, and payload + +Most functions pass around a pointer to a buffer containing this +entire structure. + +Frequently a buffer will be declared with a SIZE+3, where +SIZE will be a pertinent payload size of a given command, +like 128 for the max possible, or 11 for a DME message, etc, +and the +3 is 3 extra bytes for type, length, and checksum. + +Similarly, most functions include frequent references to these +byte offsets gb[0], gb[1], gb[2], gb+2, gb[gb[1]+2]. + +functions named req_*() (request) receive a command in this format +functions named ret_*() (return) generate a response in this format + +There is also an FDC-mode that TPDD1/FB-100 drives have, which has +a completely different format. This program only implements +Operation-mode. TPDD2 drives do not have FDC-mode, but they do have +extra Operation-mode commands that TPDD1 does not have, +some of which this program does implement. + +See the ref/ directory for more details, including a copy of the +TPDD1 software manual. There is no known TPDD2 software manual. +*/ #include #include @@ -114,31 +117,32 @@ MA 02111, USA. #define DEFAULT_TPDD_FILE_ATTR 0x46 // F -// These defaults are the same as what the original Desk-Link does. -// But you can change them to pretty much anything. The parent label is -// picky because whatever you use has to look like a valid filename -// to ts-dos. ".." doesn't work, but "^" does for instance. -#define DEFAULT_DME_ROOT_LABEL " ROOT " // ROOT_LABEL='0:' '-root-' -#define DEFAULT_DME_PARENT_LABEL "PARENT" // PARENT_LABEL'^:' '-back-' +// To mimic the original DeskLink from Travelling Software: +//#define DEFAULT_DME_ROOT_LABEL "ROOT " +//#define DEFAULT_DME_PARENT_LABEL "PARENT" // environment variables: +#define DEFAULT_DME_ROOT_LABEL "0: " // ROOT_LABEL='0:' '-root-' 'C:\' +#define DEFAULT_DME_PARENT_LABEL "^ " // PARENT_LABEL='^:' '-back-' 'UP:' // this you can't change unless you also hack ts-dos -#define DEFAULT_DME_DIR_LABEL "<>" // DIR_LABEL='/' +#define DEFAULT_DME_DIR_LABEL "<>" // DIR_LABEL='/' -// Support for Ultimate ROM-II TS-DOS loader: see ref/ur2.txt -// files that are always readable in any cd path, or even if -// the file doesn't exist anywhere in the share tree. -// Search path for any of these: cwd, then share root, then app_lib_dir. -// TODO add $XDG_DATA_HOME (~/.local/share/myapp mac: ~/Library/myapp/) +/* + * Support for Ultimate ROM-II TS-DOS loader: see ref/ur2.txt + * files that are always readable in any cd path, or even if + * the file doesn't exist anywhere in the share tree. + * Search path for any of these: cwd, share root, app_lib_dir. + * TODO add $XDG_DATA_HOME (~/.local/share/myapp mac: ~/Library/myapp/) + */ char * magic_files [] = { "DOS100.CO", - "SAR100.CO", "DOS200.CO", - "SAR200.CO", "DOSNEC.CO", + "SAR100.CO", + "SAR200.CO", "SARNEC.CO", - "DOSK85.CO", // these probably never existed but whatever - "SARK85.CO", - "DOSM10.CO", - "SARM10.CO" + "DOSM10.CO", // these probably never existed + "DOSK85.CO", + "SARM10.CO", + "SARK85.CO" }; // termios VMIN & VTIME @@ -147,7 +151,6 @@ char * magic_files [] = { /*************************************************************/ -// configuration int debug = 0; bool upcase = false; bool rtscts = false; @@ -164,7 +167,6 @@ bool enable_ur2_dos_hack = true; bool getty_mode = false; bool bootstrap_mode = false; -// globals char **args; int f_open_mode = F_OPEN_NONE; int client_tty_fd = -1; @@ -174,7 +176,7 @@ unsigned char gb[TPDD_DATA_MAX+3]; char cwd[PATH_MAX] = {0x00}; char dme_cwd[7] = DEFAULT_DME_ROOT_LABEL; char bootstrap_file[PATH_MAX] = {0x00}; -int opr_mode = 1; // 0=FDC-mode 1=Operation-mode +int opr_mode = 1; bool dme_detected = false; bool dme_fdc = false; bool dme_disabled = false; @@ -220,8 +222,52 @@ void dbg_p(const int v, unsigned char *b) { dbg_b(v,b+2,b[1]); } +// On Linux 76800 requires termios2() and BOTHER +// https://stackoverflow.com/a/39924923/5754855 +// no idea about bsd or mac +/* + struct termios2 t; + ioctl(fd, TCGETS2, &t); // Read current settings + t.c_cflag &= ~CBAUD; // Remove current baud rate + t.c_cflag |= BOTHER; // Allow custom baud rate using int input + t.c_ispeed = 76800; // Set the input baud rate + t.c_ospeed = 76800; // Set the output baud rate + ioctl(fd, TCSETS2, &t); // Apply new settings +*/ +// clients really only ever use 9600 or 19200, but the +// real drive has dip switches for all these speeds so... void set_baud (char * s) { - client_baud=atoi(s)==9600?B9600:B19200; + int i=atoi(s); + client_baud= + i==150?B150: + i==300?B300: + i==600?B600: + i==1200?B1200: + i==2400?B2400: + i==4800?B4800: + i==9600?B9600: + i==38400?B38400: +#if defined(__sparc__) + i==76800?B76800: +#endif + B19200; +} + +int get_baud () { + return + client_baud==B150?150: + client_baud==B300?300: + client_baud==B600?600: + client_baud==B1200?1200: + client_baud==B2400?2400: + client_baud==B4800?4800: + client_baud==B9600?9600: + client_baud==B19200?19200: + client_baud==B38400?38400: +#if defined(__sparc__) + client_baud==B76800?76800: +#endif + 0; } void resolve_client_tty_name () { @@ -229,11 +275,12 @@ void resolve_client_tty_name () { switch (client_tty_name[0]) { case 0x00: case '-': + debug = 0; strcpy (client_tty_name,"/dev/tty"); client_tty_fd=1; break; default: - if(!access(client_tty_name,F_OK)) break; + if (!access(client_tty_name,F_OK)) break; char t[PATH_MAX]={0x00}; int i = 0; strcpy(t,client_tty_name); @@ -260,22 +307,21 @@ int open_client_tty () { if (client_tty_fd<0) client_tty_fd=open((char *)client_tty_name,O_RDWR,O_NOCTTY); if (client_tty_fd<0) { - dbg(1,"Can't open \"%s\": %s\n",client_tty_name,strerror(errno)); + dbg(1,"Can't open \"%s\" : %s\n",client_tty_name,strerror(errno)); return 1; } ioctl(client_tty_fd,TIOCEXCL); if (getty_mode) { + debug = 0; if (login_tty(client_tty_fd)==0) client_tty_fd = STDIN_FILENO; else (void)(daemon(1,1)+1); } (void)(tcflush(client_tty_fd, TCIOFLUSH)+1); - int off=0; - ioctl(client_tty_fd, FIONBIO, &off); - ioctl(client_tty_fd, FIOASYNC, &off); + fcntl(client_tty_fd, F_SETFL, fcntl(client_tty_fd, F_GETFL, NULL) & ~O_NONBLOCK); if (tcgetattr(client_tty_fd,&client_termios)==-1) return 21; @@ -313,22 +359,35 @@ int read_client_tty(void *b, const unsigned int n) { } // cat a file to terminal, for bootstrap directions -void cat(char *f) { - char b[4097]; - int h; - if ((h=open(f,O_RDONLY))<0) return; - while (read(h,&b,4096)>0) printf("%s",b); +void dcat(char *f) { + char b[4097]={0x00}; int h=open(f,O_RDONLY); + if (h<0) return; + while (read(h,&b,4096)>0) dbg(0,"%s",b); close(h); } -// b[0] = cmd -// b[1] = len -// b[2] to b[1+len] = 0 to 128 bytes of payload -// ignore everything after b[1+len] +/* + * The manual says: + * + * "The checksum is the one's complement of the least significant byte + * of the number of bytes from the block format through the data block." + * + * But the bytes are summed, not just counted! + * Replace "number of" with "sum of the". + * + * Sum all the bytes in the specified range. + * Take the least significant byte of that sum. + * Invert all the bits in that byte. + * + * b[0] = cmd (block format) + * b[1] = len + * b[2] to b[1+len] = 0 to 128 bytes of payload (data block) + * ignore everything after b[1+len] + */ unsigned char checksum(unsigned char *b) { - unsigned short s=0; - for (int i=0;i<2+b[1];i++) s+=b[i]; - return ((s&0xFF)^0xFF); + unsigned short s=0; unsigned char i; unsigned char l=2+b[1]; + for (i=0;i0;i--) if (namep[i]=='.') break; // write client extension - if (flags&DIR_FLAG) { + if (flags&FE_FLAGS_DIR) { // directory - put TS-DOS DME ext on client fname f.client_fname[dot_offset+1]=dme_dir_label[0]; f.client_fname[dot_offset+2]=dme_dir_label[1]; @@ -410,19 +468,23 @@ FILE_ENTRY *make_file_entry(char *namep, uint32_t len, uint8_t flags) } } - f.client_fname[dot_offset]='.'; - f.client_fname[dot_offset+3]=0x00; + // upcase if (upcase) for(i=0;id_name,&st)) { if (m) ret_std(ERR_NO_FILE); return 0; } - if (S_ISDIR(st.st_mode)) flags=DIR_FLAG; + if (S_ISDIR(st.st_mode)) flags=FE_FLAGS_DIR; else if (!S_ISREG (st.st_mode)) continue; - if (flags==DIR_FLAG && !dme_detected) continue; + if (flags==FE_FLAGS_DIR && !dme_detected) continue; if (dot_offset) { if (dire->d_name[0]=='.') continue; // skip "." ".." and hidden files if (strlen(dire->d_name)>LOCAL_FILENAME_MAX) continue; // skip long filenames } + // If filesize is too large for the tpdd 16bit filesize field, still + // allow the file to be accessed, because REXCPM (cpmupd.CO) violates + // the protocol to load a CP/M disk image. But declare the size 0 + // rather than give a random value from taking only 16 of 32 bits. + if (st.st_size>UINT16_MAX) st.st_size=0; + add_file(make_file_entry(dire->d_name, st.st_size, flags)); break; } @@ -473,7 +541,7 @@ void update_file_list(int m) { dir=opendir("."); file_list_clear_all(); dbg(1,"-------------------------------------------------------------------------------\n"); - if (dir_depth) add_file(make_file_entry("..", 0, DIR_FLAG)); + if (dir_depth) add_file(make_file_entry("..", 0, FE_FLAGS_DIR)); while (read_next_dirent(dir,m)); dbg(1,"-------------------------------------------------------------------------------\n"); closedir(dir); @@ -482,6 +550,7 @@ void update_file_list(int m) { //////////////////////////////////////////////////////////////////////// // // OPERATION MODE +// // standard return - return for: error open close delete status write void ret_std(unsigned char err) @@ -555,7 +624,7 @@ void dirent_set_name(unsigned char *b) { cur_file=make_file_entry(filename,0,0); char t[LOCAL_FILENAME_MAX+1] = {0x00}; // try share root - for (int i=dir_depth;i>0;i--) strncat(t,"../",3); + for (int i=dir_depth;i>0;i--) strcat(t,"../"); strncat(t,cur_file->local_fname,LOCAL_FILENAME_MAX-dir_depth*3); struct stat st; int e=stat(t,&st); if (e) { // try loaders dir @@ -571,9 +640,9 @@ void dirent_set_name(unsigned char *b) { ret_dirent(cur_file); } } else { - if (!strncmp(filename+dot_offset+1,dme_dir_label,2)) f = DIR_FLAG; + if (!strncmp(filename+dot_offset+1,dme_dir_label,2)) f = FE_FLAGS_DIR; cur_file=make_file_entry(collapse_padded_name(filename), 0, f); - dbg(3,"New %s: \"%s\"\n",f==DIR_FLAG?"Directory":"File",cur_file->local_fname); + dbg(3,"New %s: \"%s\"\n",f==FE_FLAGS_DIR?"Directory":"File",cur_file->local_fname); ret_dirent(NULL); } } @@ -618,7 +687,8 @@ int req_dirent(unsigned char *b) { } // update dme_cwd with current dir, truncated & padded both required -// TS-DOS doesn't blank all 6 chars if you don't send all 6 +// If you don't send all 6 bytes, TS-DOS doesn't clear the previous +// contents from the display void update_dme_cwd() { dbg(2,"%s()\n",__func__); int i; @@ -644,7 +714,7 @@ void ret_dme_cwd() { gb[1]=LEN_RET_DME; gb[2]=0x00; memcpy(gb+3,dme_cwd,6); - gb[9]=0x00; // gb[9]='.'; // contents don't matter but length does + gb[9]=0x00; // gb[9]='.'; // contents don't matter but length does gb[10]=0x00; // gb[10]=dme_dir_label[0]; gb[11]=0x00; // gb[11]=dme_dir_label[1]; gb[12]=0x00; // gb[12]=0x20; @@ -668,7 +738,7 @@ void req_fdc() { client_tty_vmt(0,1); // allow this read to time out (void)(read(client_tty_fd,gb,1)+1); client_tty_vmt(-1,-1); // restore normal VMIN/VTIME - if (gb[0]==0x0D) dme_fdc = true; + if (gb[0]==FDC_CMD_EOL) dme_fdc = true; } if (dme_fdc) { dme_detected=true; @@ -701,8 +771,8 @@ int req_open(unsigned char *b) close (o_file_h); o_file_h=-1; } - if (cur_file->flags&DIR_FLAG) { - if(mkdir(cur_file->local_fname,0775)==0) { + if (cur_file->flags&FE_FLAGS_DIR) { + if (mkdir(cur_file->local_fname,0775)==0) { ret_std(ERR_SUCCESS); } else { ret_std(ERR_FMT_MISMATCH); @@ -748,7 +818,7 @@ int req_open(unsigned char *b) return -1; } - if (cur_file->flags&DIR_FLAG) { + if (cur_file->flags&FE_FLAGS_DIR) { int err=0; // directory if (cur_file->local_fname[0]=='.' && cur_file->local_fname[1]=='.') { @@ -781,14 +851,10 @@ int req_open(unsigned char *b) return o_file_h; } -// b[0] = 0x03 -// b[1] = 0x00 -// b[2] = chk void req_read(void) { if (ch[1]!=REQ_READ || debug>2) dbg(2,"%s()\n",__func__); int i; - gb[0]=RET_READ; if (o_file_h<0) { ret_std(ERR_CMDSEQ); return; @@ -800,10 +866,11 @@ void req_read(void) { i = read(o_file_h, gb+2, TPDD_DATA_MAX); + gb[0]=RET_READ; gb[1] = (unsigned char) i; gb[2+i] = checksum(gb); - if(ch[1]==REQ_READ && debug<4) { + if (debug<4) { dbg(1,"."); if (iflags&DIR_FLAG) rmdir(cur_file->local_fname); + if (cur_file->flags&FE_FLAGS_DIR) rmdir(cur_file->local_fname); else unlink (cur_file->local_fname); dbg(1,"Deleted: %s\n",cur_file->local_fname); ret_std (ERR_SUCCESS); } -// TPDD2 sector cache write - but not really doing it -// Previously called "TS-DOS mystery command 1" -// This is just something TS-DOS does to detect TPDD2. Respond just enough -// to satisfy TS-DOS that it may use TPDD2 features like dirent(get-prev). -// Just return a canned packet that means "cache write suceeded". -// http://bitchin100.com/wiki/index.php?title=TPDD-2_Sector_Access_Protocol -// https://github.com/bkw777/pdd.sh search for "pdd2_write_cache -// FIXME: We should really only respond success if the payload exactly -// matches TS-DOS's, and error any other attempt to use this function. +/* + * TPDD2 sector cache write - but not really doing it. + * Previously called "TS-DOS mystery command 1" + * This is just something TS-DOS does to detect TPDD2. Respond just enough + * to satisfy TS-DOS that it may use TPDD2 features like dirent(get-prev). + * Just return a canned packet that means "cache write suceeded". + * http://bitchin100.com/wiki/index.php?title=TPDD-2_Sector_Access_Protocol + * https://github.com/bkw777/pdd.sh search for "pdd2_write_cache + * FIXME: We should really only respond success if the payload exactly + * matches TS-DOS's, and error any other attempt to use this function. + */ void ret_cache_write() { dbg(3,"%s()\n",__func__); gb[0]=RET_CACHE_STD; @@ -869,16 +938,18 @@ void ret_cache_write() { write_client_tty(gb,4); } -// Another part of TS-DOS's drive/server capabilities detection scheme. -// Previously called "TS-DOS mystery command 2" -// The function of the command in a real drive is unknown. -// The meaning of the response is unkmnown. -// But the command apparently takes no parameters, and a real TPDD2 always -// responds with the same string of bytes, and TPDD1 ignores it. -// not counting ZZ or checksums: -// Client sends : 23 00 -// TPDD2 responds: 14 0F 41 10 01 00 50 05 00 02 00 28 00 E1 00 00 00 -// TPDD1 does not respond. +/* + * Another part of TS-DOS's drive/server capabilities detection scheme. + * Previously called "TS-DOS mystery command 2" + * The function of the command in a real drive is unknown. + * The meaning of the response is unkmnown. + * But the command apparently takes no parameters, and a real TPDD2 always + * responds with the same string of bytes, and TPDD1 ignores it. + * not counting ZZ or checksums: + * Client sends : 23 00 + * TPDD2 responds: 14 0F 41 10 01 00 50 05 00 02 00 28 00 E1 00 00 00 + * TPDD1 does not respond. + */ void ret_pdd2_unk23() { dbg(3,"%s()\n",__func__); static unsigned char canned[] = {RET_PDD2_UNK23, 0x0F, 0x41, 0x10, 0x01, 0x00, 0x50, 0x05, 0x00, 0x02, 0x00, 0x28, 0x00, 0xE1, 0x00, 0x00, 0x00}; @@ -887,16 +958,18 @@ void ret_pdd2_unk23() { write_client_tty(gb, gb[1]+3); } -// Similar to unk23, except the response is different, and not used by TS-DOS -// Nothing uses this command that I know of. I just found it by feeding -// abitrary commands to a real drive with github/bkw777/pdd.sh -// 0x11 and 0x33 both produce the same response. Possibly 0x11 and 0x33 are -// just different versions of the same function, like how 0x4# commands are -// really just 0x0# commands for bank 1 instead of bank 0? Just a guess. -// not counting ZZ or checksums: -// Client sends : 11 00 -// or sends : 33 00 -// TPDD2 responds: 3A 06 80 13 05 00 10 E1 +/* + * Similar to unk23, except the response is different, and not used by TS-DOS. + * Nothing uses this command that I know of. I just found it by feeding + * abitrary commands to a real drive with github/bkw777/pdd.sh + * 0x11 and 0x33 both produce the same response. Possibly 0x11 and 0x33 are + * just different versions of the same function, like how 0x4# commands are + * really just 0x0# commands for bank 1 instead of bank 0? Just a guess. + * not counting ZZ or checksums: + * Client sends : 11 00 + * or sends : 33 00 + * TPDD2 responds: 3A 06 80 13 05 00 10 E1 + */ void ret_pdd2_unk11() { dbg(3,"%s()\n",__func__); static unsigned char canned[] = {RET_PDD2_UNK11, 0x06, 0x80, 0x13, 0x05, 0x00, 0x10, 0xE1}; @@ -939,27 +1012,6 @@ void req_format() { ret_std(ERR_SUCCESS); } -void dispatch_opr_cmd(unsigned char *b) { - dbg(3,"%s(%02X)\n",__func__,b[0]); - switch(b[0]) { - case REQ_DIRENT: req_dirent(b); break; - case REQ_OPEN: req_open(b); break; - case REQ_CLOSE: req_close(); break; - case REQ_READ: req_read(); break; - case REQ_WRITE: req_write(b); break; - case REQ_DELETE: req_delete(); break; - case REQ_FORMAT: req_format(); break; - case REQ_STATUS: req_status(); break; - case REQ_FDC: req_fdc(); break; - case REQ_CONDITION: req_condition(); break; - case REQ_RENAME: req_rename(b); break; - case REQ_PDD2_UNK23: ret_pdd2_unk23(); break; - case REQ_CACHE_WRITE: ret_cache_write(); break; - case REQ_PDD2_UNK11: ret_pdd2_unk11(); break; - case REQ_PDD2_UNK33: ret_pdd2_unk11(); break; - } -} - void get_opr_cmd(void) { dbg(3,"%s()\n",__func__); @@ -968,7 +1020,7 @@ void get_opr_cmd(void) memset(gb,0x00,TPDD_DATA_MAX+3); while (read_client_tty(&b,1) == 1) { - if (b[0]==0x5A) i++; else { i=0; b[0]=0x00; continue; } + if (b[0]==OPR_CMD_SYNC) i++; else { i=0; b[0]=0x00; continue; } if (i<2) { b[0]=0x00; continue; } if (read_client_tty(&b,2) == 2) if (read_client_tty(&b[2],b[1]+1) == b[1]+1) break; i=0; memset(b,0x00,TPDD_DATA_MAX+3); @@ -976,29 +1028,51 @@ void get_opr_cmd(void) dbg_p(3,b); - i = checksum(b); - if (b[b[1]+2]!=i) { + if ((i=checksum(b))!=b[b[1]+2]) { dbg(0,"Failed checksum: received: %02X calculated: %02X\n",b[b[1]+2],i); return; // real drive does not return anything } - ch[1]=ch[0]; ch[0]=b[0]; + ch[1]=ch[0]; ch[0]=b[0]; // command history - dispatch_opr_cmd(b); + // dispatch + switch(b[0]) { + case REQ_DIRENT: req_dirent(b); break; + case REQ_OPEN: req_open(b); break; + case REQ_CLOSE: req_close(); break; + case REQ_READ: req_read(); break; + case REQ_WRITE: req_write(b); break; + case REQ_DELETE: req_delete(); break; + case REQ_FORMAT: req_format(); break; + case REQ_STATUS: req_status(); break; + case REQ_FDC: req_fdc(); break; + case REQ_CONDITION: req_condition(); break; + case REQ_RENAME: req_rename(b); break; + case REQ_PDD2_UNK23: ret_pdd2_unk23(); break; + case REQ_CACHE_WRITE: ret_cache_write(); break; + case REQ_PDD2_UNK11: ret_pdd2_unk11(); break; + case REQ_PDD2_UNK33: ret_pdd2_unk11(); break; + default: dbg(1,"OPR: unknown cmd \"%02X\"\n",b[0]); if (debug<3) dbg_p(2,b); + // local msg, nothing to client + } } //////////////////////////////////////////////////////////////////////// // // FDC MODE - -// Just a stub yet, but one operation works, which is switching back -// and forth between FDC-mode and Operation-mode. // -// You can see it happen by running "OPR_MODE=0 dl -vv" -// See it starts on get_fdc_cmd() instead of get_opr_cmd() -// Then load the directory from TS-DOS. -// standard 8-character FDC-mode response +/* + * Just a stub, but one operation works, which is switching back + * and forth between FDC-mode and Operation-mode. It is actually used + * as part of DME detection. + * + * You can see it happen by running "OPR_MODE=0 dl -vv" + * See it starts on get_fdc_cmd() instead of get_opr_cmd() + * Then load the directory from TS-DOS. + */ + +// standard fdc-mode 8-byte response void ret_fdc_std(unsigned char e, unsigned char d, unsigned short l) { dbg(2,"%s()\n",__func__); char b[9] = { 0x00 }; @@ -1055,7 +1129,7 @@ void req_fdc_write_sector_nv(char *b) { ret_fdc_std(ERR_FDC_COMMAND,0,0); } -/* ref/fdc.txt */ +// ref/fdc.txt void get_fdc_cmd(void) { dbg(3,"%s()\n",__func__); char b[TPDD_DATA_MAX] = {0x00}; @@ -1063,14 +1137,14 @@ void get_fdc_cmd(void) { bool eol = false; // see if the command byte was collected already by req_fdc() - if (gb[0]>0x00 && gb[0]!=0x0D && gb[1]==0x00) {b[0]=gb[0];i=1;} + if (gb[0]>0x00 && gb[0]!=FDC_CMD_EOL && gb[1]==0x00) {b[0]=gb[0];i=1;} - // TODO canonical mode + // TODO - this could be done in canonical/line mode // read command while (i=0) { - cat(pre_install_txt_file); - } else { - puts("Prepare BASIC to receive:"); - puts(""); - puts(" RUN \"COM:98N1ENN\" [Enter] <-- for TANDY/Olivetti/Kyotronic"); - puts(" RUN \"COM:9N81XN\" [Enter] <-- for NEC"); - puts(""); - } + if (!access(prein,F_OK)) dcat(prein); + else dbg(0,"Prepare BASIC to receive:\n" + "\n" + " RUN \"COM:98N1ENN\" [Enter] <-- for TANDY/Olivetti/Kyotronic" + " RUN \"COM:9N81XN\" [Enter] <-- for NEC\n"); - puts(""); - puts("Press [Enter] when ready..."); + dbg(0,"\nPress [Enter] when ready..."); getchar(); - if ((r=send_BASIC(loader_file))!=0) return r; + if ((r=send_BASIC(loader))!=0) return r; - cat(post_install_txt_file); + dcat(postin); - printf("\n\n\"%s -b\" will now exit.\n",args[0]); - printf("Re-run \"%s\" (without -b this time) to run the TPDD server.\n",args[0]); - puts(""); + dbg(0,"\n\n\"%1$s -b\" will now exit.\n" + "Re-run \"%s\" (without -b this time) to run the TPDD server.\n\n",args[0]); return 0; } @@ -1227,6 +1295,7 @@ int bootstrap(char *f) //////////////////////////////////////////////////////////////////////// // // MAIN +// void show_config () { dbg(0,"getty_mode : %s\n",getty_mode?"true":"false"); @@ -1241,7 +1310,7 @@ void show_config () { dbg(0,"client_tty_name : \"%s\"\n",client_tty_name); dbg(0,"share_path : \"%s\"\n",cwd); dbg(2,"opr_mode : %d\n",opr_mode); - dbg(2,"baud : %d\n",client_baud==B9600?9600:client_baud==B19200?19200:-1); + dbg(2,"baud : %d\n",get_baud()); dbg(0,"dme_disabled : %s\n",dme_disabled?"true":"false"); dbg(2,"dme_root_label : \"%-6.6s\"\n",dme_root_label); dbg(2,"dme_parent_label: \"%-6.6s\"\n",dme_parent_label); @@ -1356,5 +1425,6 @@ int main(int argc, char **argv) // process commands forever while (1) if (opr_mode) get_opr_cmd(); else get_fdc_cmd(); + // file_list_cleanup() return 0; } From 75589aa4f4499c33dd314abbccb864dfd2707f44 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 22 Jun 2022 22:04:22 -0400 Subject: [PATCH 070/206] docs --- bootstrap.txt => ref/bootstrap.txt | 4 ++++ 1 file changed, 4 insertions(+) rename bootstrap.txt => ref/bootstrap.txt (73%) diff --git a/bootstrap.txt b/ref/bootstrap.txt similarity index 73% rename from bootstrap.txt rename to ref/bootstrap.txt index fd08a36..9ec0828 100644 --- a/bootstrap.txt +++ b/ref/bootstrap.txt @@ -18,3 +18,7 @@ Olivetti M-10: Aditionally, 100 & 102 also accept "COM:98N1EN" All but NEC also accept "COM:98N1ENN" + +Thus, two commands cover all KC-85 platfom machines: +RUN "COM:98N1ENN" <-- TANDY, Olivetti, Kyotronic +RUN "COM:9N81XN" <-- NEC From 336ed6b0ed979e77a3617a45ca959d63f686d828 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 22 Jun 2022 23:36:12 -0400 Subject: [PATCH 071/206] bsd makefile --- BSDmakefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/BSDmakefile b/BSDmakefile index 5b9b2fa..6fdf128 100644 --- a/BSDmakefile +++ b/BSDmakefile @@ -1,3 +1,3 @@ -default: - @echo "Please run gmake instead." - exit 1 +$(.TARGETS) all: + @which gmake 2>&- >&- || { echo "Please install gmake." ;false ; } + @gmake $(.TARGETS) From 1ac0d6edcdbec6729f197858488b81d66f941058 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 23 Jun 2022 00:42:29 -0400 Subject: [PATCH 072/206] fixup bsd build --- Makefile | 2 +- dl.c | 27 +++++++++++++++------------ 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 5e83669..4374a68 100644 --- a/Makefile +++ b/Makefile @@ -51,7 +51,7 @@ ifeq ($(OS),Darwin) #DEFAULT_CLIENT_TTY := cu.* else ifneq (,$(findstring BSD,$(OS))) - #DEFAULT_CLIENT_TTY := ttyU0 + DEFAULT_CLIENT_TTY := ttyU0 else ifeq ($(OS),Linux) DEFAULT_CLIENT_TTY := ttyUSB0 else diff --git a/dl.c b/dl.c index a599e84..5a5c3dd 100644 --- a/dl.c +++ b/dl.c @@ -185,7 +185,8 @@ char ch[2] = {0xFF}; FILE_ENTRY *cur_file; int dir_depth=0; -// blarghamagargle +// blarghamagargles +void show_main_help(); void ret_std(unsigned char err); /* primitives and utilities */ @@ -273,7 +274,7 @@ int get_baud () { void resolve_client_tty_name () { dbg(3,"%s()\n",__func__); switch (client_tty_name[0]) { - case 0x00: + case 0x00: break; case '-': debug = 0; strcpy (client_tty_name,"/dev/tty"); @@ -304,12 +305,14 @@ void client_tty_vmt(int m,int t) { int open_client_tty () { dbg(3,"%s()\n",__func__); - if (client_tty_fd<0) client_tty_fd=open((char *)client_tty_name,O_RDWR,O_NOCTTY); + if (!strcmp(client_tty_name,"")) { show_main_help() ;dbg(0,"Error: No serial device specified\n"); return 1; } - if (client_tty_fd<0) { - dbg(1,"Can't open \"%s\" : %s\n",client_tty_name,strerror(errno)); - return 1; - } + dbg(0,"Opening \"%s\" ... ",client_tty_name); + // open with O_NONBLOCK to avoid hang, then unset later. + // it can still hang on open anyway though if the client isn't connected or powered on + if (client_tty_fd<0) client_tty_fd=open((char *)client_tty_name,O_RDWR,O_NOCTTY,O_NONBLOCK); + if (client_tty_fd<0) { dbg(0,"%s\n",strerror(errno)); return 1; } + dbg(0,"\n"); ioctl(client_tty_fd,TIOCEXCL); @@ -321,6 +324,7 @@ int open_client_tty () { (void)(tcflush(client_tty_fd, TCIOFLUSH)+1); + // unset O_NONBLOCK fcntl(client_tty_fd, F_SETFL, fcntl(client_tty_fd, F_GETFL, NULL) & ~O_NONBLOCK); if (tcgetattr(client_tty_fd,&client_termios)==-1) return 21; @@ -1179,8 +1183,7 @@ void get_fdc_cmd(void) { // void show_bootstrap_help() { - dbg(0, - "%1$s - DeskLink+ " APP_VERSION " - \"bootstrap\" help\n\n" + dbg(0,"%1$s - DeskLink+ " APP_VERSION " - \"bootstrap\" help\n\n" "Available loader files (in %2$s):\n\n",args[0],app_lib_dir); dbg(0, "TRS-80 Model 100/102 :"); lsx(app_lib_dir,"100"); @@ -1276,7 +1279,7 @@ int bootstrap(char *f) if (!access(prein,F_OK)) dcat(prein); else dbg(0,"Prepare BASIC to receive:\n" "\n" - " RUN \"COM:98N1ENN\" [Enter] <-- for TANDY/Olivetti/Kyotronic" + " RUN \"COM:98N1ENN\" [Enter] <-- for TANDY/Olivetti/Kyotronic\n" " RUN \"COM:9N81XN\" [Enter] <-- for NEC\n"); dbg(0,"\nPress [Enter] when ready..."); @@ -1287,7 +1290,7 @@ int bootstrap(char *f) dcat(postin); dbg(0,"\n\n\"%1$s -b\" will now exit.\n" - "Re-run \"%s\" (without -b this time) to run the TPDD server.\n\n",args[0]); + "Re-run \"%1$s\" (without -b this time) to run the TPDD server.\n\n",args[0]); return 0; } @@ -1392,8 +1395,8 @@ int main(int argc, char **argv) else dbg(0,"Unknown option character \"0x%02X\"\n",optopt); default: show_main_help(); return 1; } - // commandline non-option arguments + for (i=0; optind < argc; optind++) { if (x) dbg(1,"non-option arg %u: \"%s\"\n",i,argv[optind]); switch (i++) { From 602ad0ad3673715d524d2fafc5c1d0a9df06e9c4 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 23 Jun 2022 00:49:56 -0400 Subject: [PATCH 073/206] tty open() flags --- dl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dl.c b/dl.c index 5a5c3dd..2eede6d 100644 --- a/dl.c +++ b/dl.c @@ -310,7 +310,7 @@ int open_client_tty () { dbg(0,"Opening \"%s\" ... ",client_tty_name); // open with O_NONBLOCK to avoid hang, then unset later. // it can still hang on open anyway though if the client isn't connected or powered on - if (client_tty_fd<0) client_tty_fd=open((char *)client_tty_name,O_RDWR,O_NOCTTY,O_NONBLOCK); + if (client_tty_fd<0) client_tty_fd=open((char *)client_tty_name,O_RDWR|O_NOCTTY|O_NONBLOCK); if (client_tty_fd<0) { dbg(0,"%s\n",strerror(errno)); return 1; } dbg(0,"\n"); From 7f68418e7117a562dc405112e89103f592b0ecf9 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 23 Jun 2022 00:52:39 -0400 Subject: [PATCH 074/206] fixed bsd hang on open --- dl.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dl.c b/dl.c index 2eede6d..84479dc 100644 --- a/dl.c +++ b/dl.c @@ -308,11 +308,10 @@ int open_client_tty () { if (!strcmp(client_tty_name,"")) { show_main_help() ;dbg(0,"Error: No serial device specified\n"); return 1; } dbg(0,"Opening \"%s\" ... ",client_tty_name); - // open with O_NONBLOCK to avoid hang, then unset later. - // it can still hang on open anyway though if the client isn't connected or powered on + // open with O_NONBLOCK to avoid hang from client not ready, then unset later. if (client_tty_fd<0) client_tty_fd=open((char *)client_tty_name,O_RDWR|O_NOCTTY|O_NONBLOCK); if (client_tty_fd<0) { dbg(0,"%s\n",strerror(errno)); return 1; } - dbg(0,"\n"); + dbg(0,"OK\n"); ioctl(client_tty_fd,TIOCEXCL); From 8847c69d3b56905bce9ee8ca5ecac746c27c0cc3 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 24 Jun 2022 19:18:11 -0400 Subject: [PATCH 075/206] FDC-mode sector access and disk-image filesgit status! --- AUTHORS | 28 +- Makefile | 2 +- README.md | 38 +- clients/disk_power/Disk_Power.K85.pdd1 | Bin 0 -> 103760 bytes .../Disk_Power.K85.post-install.txt | 9 +- .../disk_power/Disk_Power.K85.pre-install.txt | 6 +- clients/disk_power/Disk_Power.txt | 41 +- .../Disk_Power_KC-85_Install_Disk.p1h | 80 --- constants.h | 43 +- dl.c | 511 ++++++++++++++---- 10 files changed, 514 insertions(+), 244 deletions(-) create mode 100644 clients/disk_power/Disk_Power.K85.pdd1 delete mode 100644 clients/disk_power/Disk_Power_KC-85_Install_Disk.p1h diff --git a/AUTHORS b/AUTHORS index 9f165d0..8ef9385 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,15 +1,19 @@ dlplus: -Stephen Hurd Initial version? -John R. Hogerhuis Enhancements including WP-2 support -Brian K. White Bootstrap function and loaders library - main cmd scanner, serial tty handling -Gabriele Gorla Support for TS-DOS subdirectories +Stephen Hurd Initial versions 1.0-1.3 +John R. Hogerhuis Enhancements including WP-2 support +Brian K. White Bootstrap function and loaders library + main cmd scanner, serial tty handling + FDC-mode disk image sector access support + magic files for UR-II +Gabriele Gorla Support for TS-DOS subdirectories TPDD Clients & loaders: -Kurt McCullum TS-DOS loaders -Ron Weisen TEENY loaders -J.K. Heilman DSKMGR -Phil Wheeler DSKMGR loaders -A. Ryan Port of DSKMGR & loader for Olivetti M10 -ACROATIX TINY -Tracy Allen TINY loader +Kurt McCullum TS-DOS loaders +Ron Weisen TEENY, WEENY, & D loaders +J.K. Heilman DSKMGR +Phil Wheeler DSKMGR loaders +A. Ryan Port of DSKMGR & loader for Olivetti M10 +ACROATIX TINY +Tracy Allen TINY loader +Hugo Ferreyra Disk Power +Brian K. White Disk Power loader & disk image diff --git a/Makefile b/Makefile index 4374a68..cf203d4 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ LIB_OTHER := \ clients/ts-dos/DOS100.CO \ clients/ts-dos/DOS200.CO \ clients/ts-dos/DOSNEC.CO \ - clients/disk_power/Disk_Power_KC-85_Install_Disk.p1h + clients/disk_power/Disk_Power.K85.pdd1 CLIENT_DOCS := \ clients/teeny/teenydoc.txt \ diff --git a/README.md b/README.md index 087e6a2..0cb818c 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,43 @@ $ dl -vb TS-DOS.100 $ unzip REXCPMV21_b19.ZIP $ dl -vb ./rxcini.DO ;dl -vu ``` -## fun + +## FDC-mode sector access - disk images +``` +$ dl -vi tpdd1_disk_image.pdd1 +``` +Initial support for raw disk image files that allow use of FDC-mode sector access commands on a virtual disk image file. + +This has not been tried with Sardine yet, but that is one of the intended uses. + +TPDD1 and TPDD2 sector access methods are completely different from each other, and at this time only the TPDD1 / "FDC-mode" commands are supported. + +Also this does not provide virtual filesystem access to the files on the disk, it provides raw sector access to the disk for programs that use sector access, like databases. + +The first real-world use of this is it allows fully virtualized installation of Disk Power, which normally requires the original physical distribution disk and a working TPDD1 drive. + +The Disk Power installer actually uses only raw sector access commends to install from it's disk. + +See [Disk_Power.txt](clients/disk_power/Disk_Power.txt) + +The disk image was created by using github.com/bkw777/pdd.sh to read the disk into it's own form of disk image file, then using pdd.sh to "restore" that disk image, but into dlplus instead of to a real drive. + +To create an empty disk image, start dl with the -i option the name of a new file in a writable directory. IE: ```$ dl -vi ./newdiskimg.pdd1```, and then issue an FDC-mode format command from a client, ie for pdd.sh do +``` +$ pdd1 +1) /dev/ttyUSB0 +2) /dev/ttyUSB1 +Which serial port is the TPDD drive on? 2 +PDD(opr:6.2,F)> fdc +PDD(fdc:6.2,F)> F 0 +Formatting Disk, TPDD1 "FDC" mode, 64-Byte Logical Sectors +[########################################] 100% +PDD(fdc:6.2,F)>q +$ ls -l *.pdd1 +-rw-rw-r-- 1 bkw bkw 103760 Jun 24 19:05 new_disk.pdd1 +``` + +## trivia The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT". TS-DOS thinks it's an invalid filename (even though it DISPLAYS it in the file list just fine. If it would just go ahead and send the command to "open" it, it would work.) However, plenty of other things that are all better than "ROOT " and "PARENT" do work. ``` $ ROOT_LABEL=/ PARENT_LABEL=^ dl diff --git a/clients/disk_power/Disk_Power.K85.pdd1 b/clients/disk_power/Disk_Power.K85.pdd1 new file mode 100644 index 0000000000000000000000000000000000000000..5124d571b5083e15effb4cc0ab7fff1d70eb5f53 GIT binary patch literal 103760 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 ascii hex pair +// s = status or data -> ascii hex pair +// l = length or address -> 2 ascii hex pairs +// TODO - don't assume endianness +void ret_fdc_std(uint8_t e, uint8_t s, uint16_t l) { dbg(2,"%s()\n",__func__); char b[9] = { 0x00 }; - snprintf(b,9,"%02X%02X%04X",e,d,l); + snprintf(b,9,"%02X%02X%04X",e,s,l); dbg(1,"FDC: response: \"%s\"\n",b); write_client_tty(b,8); } -void req_fdc_set_mode(char *b) { - dbg(2,"%s(%s)\n",__func__,b+1); - int m = atoi(&b[1]); +int get_logical_size (int i) { + dbg(2,"%s(%d)\n",__func__,i); + return + i==FDC_LS_64?64: + i==FDC_LS_80?80: + i==FDC_LS_128?128: + //i==FDC_LS_256?256: // real drive default + i==FDC_LS_512?512: + i==FDC_LS_1024?1024: + i==FDC_LS_1280?1280: + 256; +} + +// p : physical sector to seek to +// wr : read-only/write-only/read-write +// ret : send or don't send response packet to client from here +int open_disk_image (uint8_t p, int wr, int ret) { + + if (!strcmp(disk_img_fname,"")) return ERR_FDC_NO_DISK; + int of; int e=ERR_FDC_SUCCESS; + + switch (wr) { + case RW: of=O_RDWR; dbg(0,"edit\n"); + if (access(disk_img_fname,W_OK)) e=ERR_FDC_WRITE_PROTECT; + break; + case WR: of=O_WRONLY; + if (access(disk_img_fname,F_OK)) { of|=O_CREAT; dbg(0,"create\n");} else { + of|=O_TRUNC; dbg(0,"overwite\n"); + if (access(disk_img_fname,W_OK)) e=ERR_FDC_WRITE_PROTECT; + } + break; + default: of=O_RDONLY; dbg(0,"read\n"); break; + } + + if (!e) { + disk_img_fd=open(disk_img_fname,of|O_EXCL,0666); + if (disk_img_fd<0) { dbg(0,"%s\n",strerror(errno)) ;e=ERR_FDC_READ;} + } + + if (!e) { + int s = (p*(il+sl)); // initial seek position to start of physical sector + if (lseek(disk_img_fd,s,SEEK_SET)!=s) e=ERR_FDC_READ; + } + + if (ret && e) ret_fdc_std(e,0,0); + return e; +} + +void req_fdc_set_mode(int m) { + dbg(2,"%s(%d)\n",__func__,m); dbg(1,"FDC: Switching to \"%s\" mode\n",m==0?"FDC":m==1?"Operation":"-invalid-"); opr_mode=m; // no response, just switch modes } -void req_fdc_condition(char *b) { - dbg(2,"%s(%s)\n",__func__,b+1); - ret_fdc_std(ERR_FDC_SUCCESS,0,0); -} -void req_fdc_format(char *b) { - dbg(2,"%s(%s)\n",__func__,b+1); - ret_fdc_std(ERR_FDC_SUCCESS,0,0); +// disk not-ready conditions +// ret_fdc_std(e,s,l) +// e = ERR_FDC_SUCCESS +// s = bit flags: +// 7: 1 = disk not inserted FDC_COND_NOTINS +// 6: 1 = disk removed FDC_COND_REMOVED +// 5: 1 = disk write-protected FDC_COND_WP +// l = 0 +// examples +// ret_fdc_std(ERR_FDC_SUCCESS,FDC_COND_WP,0) +// ret_fdc_std(ERR_FDC_SUCCESS,FDC_COND_NOTINS|FDC_COND_REMOVED,0) +void req_fdc_condition() { + dbg(2,"%s()\n",__func__); + int s=FDC_COND_NONE; + if (access(disk_img_fname,F_OK)) s=FDC_COND_NOTINS; + else if (access(disk_img_fname,W_OK)) s=FDC_COND_WP; + ret_fdc_std(ERR_FDC_SUCCESS,s,0); } -void req_fdc_format_nv(char *b) { - dbg(2,"%s(%s)\n",__func__,b+1); + +// lc = logical sector size code +void req_fdc_format(uint8_t lc) { + dbg(2,"%s(%d)\n",__func__,lc); + if (lc<0 || lc>6) {ret_fdc_std(ERR_FDC_PARAM,0,0); return;} + int ll = get_logical_size(lc); // logical sector length in bytes + int lw = sl/ll; // number of whole logical sectors + int pn = 0; // physical sector number + int pl = il + (ll*lw); // physical sector length in bytes + int tl = il+sl; // total length + + dbg(0,"Format: Logical sector size: %d = %d\n",lc,ll); + + if (open_disk_image(0,WR,ALLOW_RET)) return; + + memset(sb,0x00,tl); // despite pl, we always fill all 1280 bytes + for (pn=0;pn<80;pn++) { + +// The first 2 bytes in the ID section in the manual are not exposed over +// the wire by a real drive. They *probably* tell the drive firmware +// internally the bounds of the following physical sector within the full +// physical 1280, independant of calculating from the logical size code. +// We don't need that really but it's mimicked here anyway. + + // 1st 5 bytes of the ID section. + memcpy(sb,&pl,2); // sector length + memcpy(sb+2,&pn,2); // sector number + sb[4]=lc; // logical sector length code (0-6) + + if (write(disk_img_fd,sb,tl)<0) { + dbg(0,"%s\n",strerror(errno)); + (void)(close(disk_img_fd)+1); + ret_fdc_std(ERR_FDC_READ,pn,0); + return; + } + } + + (void)(close(disk_img_fd)+1); ret_fdc_std(ERR_FDC_SUCCESS,0,0); } -void req_fdc_read_id(char *b) { - dbg(2,"%s(%s)\n",__func__,b+1); - ret_fdc_std(ERR_FDC_COMMAND,0,0); -} -void req_fdc_read_sector(char *b) { - dbg(2,"%s(%s)\n",__func__,b+1); - ret_fdc_std(ERR_FDC_COMMAND,0,0); -} -void req_fdc_search_id(char *b) { - dbg(2,"%s(%s)\n",__func__,b+1); - ret_fdc_std(ERR_FDC_COMMAND,0,0); + +// p = physical sector number +void req_fdc_read_id(int p) { + dbg(2,"%s(%d)\n",__func__,p); + if (open_disk_image(p,RD,ALLOW_RET)) return; // open and seek + uint8_t r = read(disk_img_fd,sb,il); // read all 17 bytes of ID disk + dbg_b(2,sb,il); + int l = get_logical_size(sb[PDD1_ID_HDR_LEN-1]); // get logical size from header + ret_fdc_std(ERR_FDC_SUCCESS,p,l); // send OK + char t=0x00; read_client_tty(&t,1); // read 1 byte from client + if (t!=FDC_CMD_EOL) return; // if it's anything but CR, silently abort + write_client_tty(sb+PDD1_ID_HDR_LEN,r-PDD1_ID_HDR_LEN); // if it's CR, send data + (void)(close(disk_img_fd)+1); } -void req_fdc_write_id(char *b) { - dbg(2,"%s(%s)\n",__func__,b+1); - ret_fdc_std(ERR_FDC_COMMAND,0,0); + +// b[] = CPP,LL +// C=cmd +// PP 0 to 2 bytes ascii physical sector # null or 0-79 +// comma +// LL 0 to 2 bytes ascii logical sector # null 1-20 +void req_fdc_read_sector(int tp,int tl) { + dbg(2,"%s(%d,%d)\n",__func__,tp,tl); + if (open_disk_image(tp,RD,ALLOW_RET)) return; // open & seek to tp + if (read(disk_img_fd,sb,il)!=il) { // read ID section + dbg(1,"failed read ID\n"); + (void)(close(disk_img_fd)+1); + ret_fdc_std(ERR_FDC_READ,tp,0); + return; + } + dbg_b(3,sb,il); + + int l = get_logical_size(sb[PDD1_ID_HDR_LEN-1]); // get logical size from header + + // seek to target_physical*(id_len+physical_len) + id_len + (target_logical-1)*logical_len + int s = (tp*(il+sl))+il+((tl-1)*l); + if (lseek(disk_img_fd,s,SEEK_SET)!=s) { + dbg(1,"failed seek %d : %s\n",s,strerror(errno)); + (void)(close(disk_img_fd)+1); + ret_fdc_std(ERR_FDC_READ,tp,0); + return; + } + memset(sb,0x00,l); + if (read(disk_img_fd,sb,l)!=l) { // read one logical sector of DATA + dbg(1,"failed logical sector read\n"); + (void)(close(disk_img_fd)+1); + ret_fdc_std(ERR_FDC_READ,tp,0); + return; + } + ret_fdc_std(ERR_FDC_SUCCESS,tp,l); // 1st stage response + char t=0x00; + read_client_tty(&t,1); // read 1 byte from client + if (t!=0x0D) return; // if it's anything but CR, silently abort + write_client_tty(sb,l); // if it's CR, send data + (void)(close(disk_img_fd)+1); } -void req_fdc_write_id_nv(char *b) { - dbg(2,"%s(%s)\n",__func__,b+1); - ret_fdc_std(ERR_FDC_COMMAND,0,0); + +void req_fdc_search_id() { + dbg(2,"%s()\n",__func__); + // send OK to client + // read 12 bytes from client + // search all ID's for match + // return, what? Send another OK? + // manual says it's the same as write_sector, which + // sends an OK to tell client to send, and then + // another OK to ack. So perhaps we return + // just a status return that indicates if a match + // was found and probably which (first) sector in the len/addr field. + // Probably the response is always always success and the other bits + // indicate whether a match was found and where. + ret_fdc_std(ERR_FDC_SUCCESS,0,0); } -void req_fdc_write_sector(char *b) { - dbg(2,"%s(%s)\n",__func__,b+1); - ret_fdc_std(ERR_FDC_COMMAND,0,0); + +void req_fdc_write_id(uint16_t tp) { + dbg(2,"%s(%d)\n",__func__,tp); + int s = (tp*(il+sl)); + if (open_disk_image(s,RW,ALLOW_RET)) return; // we need both read & write + uint8_t r = read(disk_img_fd,sb,il); // read ID + dbg_b(2,sb,r); + int l = get_logical_size(sb[PDD1_ID_HDR_LEN-1]); // get logical size from header + + // seek file back to tp+5 (skip the ID header to the start of the 12 bytes of user ID data) + if (lseek(disk_img_fd,s+PDD1_ID_HDR_LEN,SEEK_SET)!=s+PDD1_ID_HDR_LEN) { + dbg(1,"failed seek %d : %s\n",s+PDD1_ID_HDR_LEN,strerror(errno)); + (void)(close(disk_img_fd)+1); + ret_fdc_std(ERR_FDC_READ,tp,0); + return; + } + + ret_fdc_std(ERR_FDC_SUCCESS,tp,l); // tell client to send data + + read_client_tty(sb,il-PDD1_ID_HDR_LEN); // read 12 bytes from client + + // write those to the file + if (write(disk_img_fd,sb,il-PDD1_ID_HDR_LEN)<0) { + dbg(0,"%s\n",strerror(errno)); + (void)(close(disk_img_fd)+1); + ret_fdc_std(ERR_FDC_READ,tp,0); + return; + } + + // close file + (void)(close(disk_img_fd)+1); + + // send a final success response to the client + ret_fdc_std(ERR_FDC_SUCCESS,tp,l); } -void req_fdc_write_sector_nv(char *b) { - dbg(2,"%s(%s)\n",__func__,b+1); - ret_fdc_std(ERR_FDC_COMMAND,0,0); + +void req_fdc_write_sector(int tp,int tl) { + dbg(2,"%s(%d,%d)\n",__func__,tp,tl); + if (open_disk_image(tp,RW,ALLOW_RET)) return; // open & seek to tp + if (read(disk_img_fd,sb,il)!=il) { // read ID section + dbg(0,"failed read ID\n"); + (void)(close(disk_img_fd)+1); + ret_fdc_std(ERR_FDC_READ,tp,0); + return; + } + + int l = get_logical_size(sb[PDD1_ID_HDR_LEN-1]); // get logical size from header + + // seek to target_physical*full_sectors+ID+target_logical*logical_size + int s = (tp*(il+sl))+il+((tl-1)*l); + if (lseek(disk_img_fd,s,SEEK_SET)!=s) { + dbg(0,"failed seek %d : %s\n",s,strerror(errno)); + (void)(close(disk_img_fd)+1); + ret_fdc_std(ERR_FDC_READ,tp,0); + return; + } + + ret_fdc_std(ERR_FDC_SUCCESS,tp,l); // tell client to send data + + read_client_tty(sb,l); // read logical_size bytes from client + + // write them to the file + if (write(disk_img_fd,sb,l)<0) { + dbg(0,"%s\n",strerror(errno)); + (void)(close(disk_img_fd)+1); + ret_fdc_std(ERR_FDC_READ,tp,0); + return; + } + + // close file + (void)(close(disk_img_fd)+1); + + // send a final success response to the client + ret_fdc_std(ERR_FDC_SUCCESS,tp,l); } // ref/fdc.txt void get_fdc_cmd(void) { dbg(3,"%s()\n",__func__); - char b[TPDD_DATA_MAX] = {0x00}; + char b[6] = {0x00}; unsigned i = 0; bool eol = false; + char c = 0x00; + int p = -1; + int l = -1; + + // all kind of inelegant, but the client & server get out of sync too easily // see if the command byte was collected already by req_fdc() - if (gb[0]>0x00 && gb[0]!=FDC_CMD_EOL && gb[1]==0x00) {b[0]=gb[0];i=1;} + if (gb[0]>0x00 && gb[0]!=FDC_CMD_EOL && gb[1]==0x00) c=gb[0]; + memset(gb,0x00,TPDD_DATA_MAX+3); + + // scan for a valid command byte first + while (!c) { + read_client_tty(&c,1); + if (c==FDC_CMD_EOL) return; // empty command, just restart + if (!strchr(valid_fdc_cmds,c)) c=0x00 ; // eat bytes until valid cmd or eol + } - // TODO - this could be done in canonical/line mode - // read command - while (i5), just fall through to restart if (read_client_tty(&b[i],1)==1) { + dbg(3,"i:%d b:\"%s\"\n",i,b); switch (b[i]) { case FDC_CMD_EOL: eol=true; case 0x20: b[i]=0x00; break; @@ -1155,22 +1449,39 @@ void get_fdc_cmd(void) { } } + // We can pre-parse & validate the params since they take the same + // form (or a consistent subset) for all commands. + // Parameters, if they exist, are always one of: + // P,L + // P + // + // where: + // P = physical sector number 0-79 (decimal integer as 0-2 ascii characters) + // L = logical sector number 1-20 (decimal integer as 0-2 ascii characters) + // (format & condition have different meanings but the rule still holds) + p=0; // real drive uses physical sector 0 when omitted + l=1; // real drive uses logical sector 1 when omitted + char* t; + if ((t=strtok(b,","))!=NULL) p=atoi(t); // target physical sector number + if ((t=strtok(NULL,","))!=NULL) l=atoi(t); // target logical sector number + if (p<0 || p>79 || l<1 || l>20) {ret_fdc_std(ERR_FDC_PARAM,0,0); return;} + // debug - dbg(3,"\"%s\"\n",b); + dbg(3,"\"c:%c p:%d l:%d\"\n",c,p,l); // dispatch - switch (b[0]) { - case FDC_SET_MODE: req_fdc_set_mode(b); break; - case FDC_CONDITION: req_fdc_condition(b); break; - case FDC_FORMAT: req_fdc_format(b); break; - case FDC_FORMAT_NV: req_fdc_format_nv(b); break; - case FDC_READ_ID: req_fdc_read_id(b); break; - case FDC_READ_SECTOR: req_fdc_read_sector(b); break; - case FDC_SEARCH_ID: req_fdc_search_id(b); break; - case FDC_WRITE_ID: req_fdc_write_id(b); break; - case FDC_WRITE_ID_NV: req_fdc_write_id_nv(b); break; - case FDC_WRITE_SECTOR: req_fdc_write_sector(b); break; - case FDC_WRITE_SECTOR_NV: req_fdc_write_sector_nv(b); break; + switch (c) { + case FDC_SET_MODE: req_fdc_set_mode(p); break; + case FDC_CONDITION: req_fdc_condition(); break; + case FDC_FORMAT_NV: + case FDC_FORMAT: req_fdc_format(p); break; + case FDC_READ_ID: req_fdc_read_id(p); break; + case FDC_READ_SECTOR: req_fdc_read_sector(p,l); break; + case FDC_SEARCH_ID: req_fdc_search_id(); break; + case FDC_WRITE_ID_NV: + case FDC_WRITE_ID: req_fdc_write_id(p); break; + case FDC_WRITE_SECTOR_NV: + case FDC_WRITE_SECTOR: req_fdc_write_sector(p,l); break; case 0x00: if (!i) {dbg(2,"FDC: empty command\n"); break;} default: dbg(1,"FDC: unknown cmd \"%s\"\n",b); // local msg, nothing to client @@ -1214,18 +1525,17 @@ void slowbyte(char b) { if (b!=LOCAL_EOL && ch[0]==LOCAL_EOL) {ch[0]=0x00; dbg(0,"%c%c",LOCAL_EOL,b);} else if (b==LOCAL_EOL || b==BASIC_EOL) ch[0]=LOCAL_EOL; else if (isprint(b)) dbg(0,"%c",b); - else dbg(0,"\033[7m%02X\033[m",b); + else dbg(0,"\033[7m%02X\033[m",b); // hardcoded ansi/vt codes, sorry break; } } -int send_BASIC(char *f) -{ +int send_BASIC(char *f) { int fd; char b; if ((fd=open(f,O_RDONLY))<0) { - dbg(1,"Could not open \"%s\"\n",f); + dbg(1,"Could not open \"%s\" : %s\n",f,errno); return 9; } @@ -1243,40 +1553,18 @@ int send_BASIC(char *f) return 0; } -int bootstrap(char *f) -{ - int r = 0; - char loader[PATH_MAX]={0x00}; - char prein[PATH_MAX]={0x00}; - char postin[PATH_MAX]={0x00}; - - if (f[0]=='~' && f[1]=='/') { - strcpy(loader,getenv("HOME")); - strcat(loader,f+1); - } else strcpy(loader,f); - - if (access(loader,F_OK)) memset(loader,0x00,PATH_MAX); - - if (loader[0]==0) { - strcpy(loader,app_lib_dir); - strcat(loader,"/"); - strcat(loader,f); - } - - strcpy(prein,loader); - strcat(prein,".pre-install.txt"); - - strcpy(postin,loader); - strcat(postin,".post-install.txt"); - - dbg(0,"Bootstrap: Installing \"%s\"\n\n",loader); - - if (access(loader,F_OK)==-1) { +int bootstrap(char *f) { + dbg(0,"Bootstrap: Installing \"%s\"\n\n",f); + if (access(f,F_OK)==-1) { dbg(0,"Not found.\n"); return 1; } - if (!access(prein,F_OK)) dcat(prein); + char t[PATH_MAX]={0x00}; + + strcpy(t,f); + strcat(t,".pre-install.txt"); + if (!access(t,F_OK)) dcat(t); else dbg(0,"Prepare BASIC to receive:\n" "\n" " RUN \"COM:98N1ENN\" [Enter] <-- for TANDY/Olivetti/Kyotronic\n" @@ -1285,9 +1573,11 @@ int bootstrap(char *f) dbg(0,"\nPress [Enter] when ready..."); getchar(); - if ((r=send_BASIC(loader))!=0) return r; + { int r; if ((r=send_BASIC(f))!=0) return r; } - dcat(postin); + strcpy(t,f); + strcat(t,".post-install.txt"); + dcat(t); dbg(0,"\n\n\"%1$s -b\" will now exit.\n" "Re-run \"%1$s\" (without -b this time) to run the TPDD server.\n\n",args[0]); @@ -1308,9 +1598,10 @@ void show_config () { dbg(0,"dot_offset : %d\n",dot_offset); dbg(0,"BASIC_byte_ms : %d\n",BASIC_byte_us/1000); dbg(0,"bootstrap_mode : %s\n",bootstrap_mode?"true":"false"); - dbg(0,"bootstrap_file : \"%s\"\n",bootstrap_file); + dbg(0,"bootstrap_fname : \"%s\"\n",bootstrap_fname); dbg(0,"app_lib_dir : \"%s\"\n",app_lib_dir); dbg(0,"client_tty_name : \"%s\"\n",client_tty_name); + dbg(0,"disk_img_fname : \"%s\"\n",disk_img_fname); dbg(0,"share_path : \"%s\"\n",cwd); dbg(2,"opr_mode : %d\n",opr_mode); dbg(2,"baud : %d\n",get_baud()); @@ -1353,8 +1644,9 @@ void show_main_help() { ,args[0],DEFAULT_TPDD_FILE_ATTR,DEFAULT_BASIC_BYTE_MS); } -int main(int argc, char **argv) -{ +int main(int argc, char **argv) { + dbg(0,"DeskLink+ " APP_VERSION "\n"); + int i; bool x = false; args = argv; @@ -1372,14 +1664,15 @@ int main(int argc, char **argv) if (getenv("ATTR")) default_attr = *getenv("ATTR"); // commandline - while ((i = getopt (argc, argv, ":0a:b:d:ghlp:rs:uvwz:^")) >=0) + while ((i = getopt (argc, argv, ":0a:b:d:ghi:lp:rs:uvwz:^")) >=0) switch (i) { case '0': dot_offset=0; upcase=false; default_attr=0x20; break; case 'a': default_attr=*strndup(optarg,1); break; - case 'b': bootstrap_mode=true; strcpy(bootstrap_file,optarg); break; + case 'b': bootstrap_mode=true; strcpy(bootstrap_fname,optarg);break; case 'd': strcpy(client_tty_name,optarg); break; case 'g': getty_mode = true; debug = 0; break; case 'h': show_main_help(); exit(0); break; + case 'i': strcpy(disk_img_fname,optarg); break; case 'l': show_bootstrap_help(); exit(0); break; case 'p': (void)(chdir(optarg)+1); break; case 'r': rtscts = true; break; @@ -1406,20 +1699,22 @@ int main(int argc, char **argv) } } + // convenience auto fixups for user supplied filenames resolve_client_tty_name(); + find_lib_file(disk_img_fname); + find_lib_file(bootstrap_fname); (void)(getcwd(cwd,PATH_MAX-1)+1); if (x) { show_config(); return 0; } - dbg(0,"DeskLink+ " APP_VERSION "\n" - "Serial Device: %s\n" + dbg(0,"Serial Device: %s\n" "Working Dir : %s\n",client_tty_name,cwd); if ((i=open_client_tty())) return i; // send loader and exit - if (bootstrap_mode) return (bootstrap(bootstrap_file)); + if (bootstrap_mode) return (bootstrap(bootstrap_fname)); // initialize the file list file_list_init(); From e30cbc7a79459b038a63ee2792e1978fca362f42 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 27 Jun 2022 07:51:56 -0400 Subject: [PATCH 076/206] docs, remove unnecessary fields from disk image file format --- README.md | 9 +- clients/disk_power/Disk_Power.K85.pdd1 | Bin 103760 -> 103440 bytes constants.h | 4 +- dl.c | 162 +++++++++++-------------- ref/disk_image_files.txt | 63 ++++++++++ 5 files changed, 143 insertions(+), 95 deletions(-) create mode 100644 ref/disk_image_files.txt diff --git a/README.md b/README.md index 0cb818c..ed63453 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ options: -d tty Serial device to client (ttyUSB0) -g Getty mode - run as daemon -h Print this help + -i file Disk image file for raw sector access, TPDD1 only -l List available loader files and bootstrap help -p dir Share path - directory with files to be served (.) -r RTS/CTS hardware flow control @@ -116,9 +117,9 @@ The Disk Power installer actually uses only raw sector access commends to instal See [Disk_Power.txt](clients/disk_power/Disk_Power.txt) -The disk image was created by using github.com/bkw777/pdd.sh to read the disk into it's own form of disk image file, then using pdd.sh to "restore" that disk image, but into dlplus instead of to a real drive. +The disk image was created by using github.com/bkw777/pdd.sh to read the disk into it's own form of disk image file, then "restoring" that disk image into dlplus instead of to a real drive. -To create an empty disk image, start dl with the -i option the name of a new file in a writable directory. IE: ```$ dl -vi ./newdiskimg.pdd1```, and then issue an FDC-mode format command from a client, ie for pdd.sh do +To create an empty disk image, start dl with the -i option the name of a new file. IE: ```$ dl -vi ./my_disk.pdd1```, and then issue an FDC-mode format command from a client. Example using pdd.sh as the client (connected with a 2nd usb-serial adapter and a null-modem serial cable): ``` $ pdd1 1) /dev/ttyUSB0 @@ -130,9 +131,11 @@ Formatting Disk, TPDD1 "FDC" mode, 64-Byte Logical Sectors [########################################] 100% PDD(fdc:6.2,F)>q $ ls -l *.pdd1 --rw-rw-r-- 1 bkw bkw 103760 Jun 24 19:05 new_disk.pdd1 +-rw-rw-r-- 1 bkw bkw 103440 Jun 24 19:05 new_disk.pdd1 ``` +Disk image format [disk_images](ref/disk_images.txt) + ## trivia The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT". TS-DOS thinks it's an invalid filename (even though it DISPLAYS it in the file list just fine. If it would just go ahead and send the command to "open" it, it would work.) However, plenty of other things that are all better than "ROOT " and "PARENT" do work. ``` diff --git a/clients/disk_power/Disk_Power.K85.pdd1 b/clients/disk_power/Disk_Power.K85.pdd1 index 5124d571b5083e15effb4cc0ab7fff1d70eb5f53..1e73e25302f571af2a8964f62e42382d19b5ab3b 100644 GIT binary patch delta 339 zcmcbxifzIQwv8;jteZtyfrJ_tkTB;55*{KzB2p4aWXS=EYGokNqX8u5>hiK~a{tdV MiZR1rW5N|?08@>dMF0Q* delta 732 zcmXxdNm2q)5QO1Uc#R<4(1HV~$fO{HDB?T;qB45`F2I(B_wX2oD!5-KL8E^oyAP4fG z0E*xc9Dx!jgJVzuRZs(UZ~_|O6r6!3I0r3o0WQH6xCS@i7Tke*@Bkjc6KI1D=z?d^ X125neyn#L#fFT%xF_?fUc(?cihIfR1 diff --git a/constants.h b/constants.h index 4f48632..8492c66 100644 --- a/constants.h +++ b/constants.h @@ -134,8 +134,8 @@ #define LEN_RET_DIRENT 0x1C #define TPDD_FILENAME_LEN 24 #define LOCAL_FILENAME_MAX 256 -#define PDD1_SECTOR_ID_LEN 17 -#define PDD1_ID_HDR_LEN 5 +#define PDD1_SECTOR_ID_LEN 13 +#define PDD1_ID_HDR_LEN 1 #define PDD1_SECTOR_DATA_LEN 1280 // KC-85 platform BASIC interpreter EOL & EOF bytes for bootstrap() diff --git a/dl.c b/dl.c index 23ef7fb..36a5296 100644 --- a/dl.c +++ b/dl.c @@ -10,7 +10,8 @@ /* DeskLink+ 2005 John R. Hogerhuis Extensions and enhancements -2019 Brian K. White - repackaging, reorganizing, bootstrap function +2019,2022 Brian K. White - repackaging, reorganizing, bootstrap function + pdd1 disk image files, FDC-mode Kurt McCullum - TS-DOS loaders 2022 Gabriele Gorla - Add support for TS-DOS subdirectories @@ -183,8 +184,9 @@ bool dme_detected = false; bool dme_fdc = false; bool dme_disabled = false; char ch[2] = {0xFF}; -const uint8_t il = PDD1_SECTOR_ID_LEN; -const uint16_t sl = PDD1_SECTOR_DATA_LEN; +const uint8_t ilen = PDD1_SECTOR_ID_LEN; +const uint16_t dlen = PDD1_SECTOR_DATA_LEN; +//uint8_t llen = 0; unsigned char sb[(PDD1_SECTOR_ID_LEN+PDD1_SECTOR_DATA_LEN)]={0x00}; // avoid malloc/free FILE_ENTRY *cur_file; @@ -821,17 +823,17 @@ int req_open(unsigned char *b) case F_OPEN_WRITE: dbg(3,"mode: write\n"); if (o_file_h >= 0) { - close (o_file_h); + close(o_file_h); o_file_h=-1; } if (cur_file->flags&FE_FLAGS_DIR) { - if (mkdir(cur_file->local_fname,0775)==0) { + if (mkdir(cur_file->local_fname,0755)==0) { ret_std(ERR_SUCCESS); } else { ret_std(ERR_FMT_MISMATCH); } } else { - o_file_h = open (cur_file->local_fname,O_CREAT|O_TRUNC|O_WRONLY|O_EXCL,0666); + o_file_h = open(cur_file->local_fname,O_CREAT|O_TRUNC|O_WRONLY|O_EXCL,0666); if (o_file_h<0) ret_std(ERR_FMT_MISMATCH); else { @@ -851,23 +853,23 @@ int req_open(unsigned char *b) ret_std(ERR_FMT_MISMATCH); return -1; } - o_file_h = open (cur_file->local_fname, O_WRONLY | O_APPEND); + o_file_h = open(cur_file->local_fname, O_WRONLY | O_APPEND); if (o_file_h < 0) ret_std(ERR_FMT_MISMATCH); else { f_open_mode=omode; dbg(1,"Open for append: \"%s\"\n",cur_file->local_fname); - ret_std (ERR_SUCCESS); + ret_std(ERR_SUCCESS); } break; case F_OPEN_READ: dbg(3,"mode: read\n"); if (o_file_h >= 0) { - close (o_file_h); + close(o_file_h); o_file_h=-1; } if (cur_file==0) { - ret_std (ERR_NO_FILE); + ret_std(ERR_NO_FILE); return -1; } @@ -877,7 +879,7 @@ int req_open(unsigned char *b) if (cur_file->local_fname[0]=='.' && cur_file->local_fname[1]=='.') { // parent dir if (dir_depth>0) { - err=chdir (cur_file->local_fname); + err=chdir(cur_file->local_fname); if (!err) dir_depth--; } } else { @@ -886,17 +888,17 @@ int req_open(unsigned char *b) if (!err) dir_depth++; } update_dme_cwd(); - if (err) ret_std (ERR_FMT_MISMATCH); - else ret_std (ERR_SUCCESS); + if (err) ret_std(ERR_FMT_MISMATCH); + else ret_std(ERR_SUCCESS); } else { // regular file o_file_h = open(cur_file->local_fname, O_RDONLY); if (o_file_h<0) - ret_std (ERR_NO_FILE); + ret_std(ERR_NO_FILE); else { f_open_mode = omode; dbg(1,"Open for read: \"%s\"\n",cur_file->local_fname); - ret_std (ERR_SUCCESS); + ret_std(ERR_SUCCESS); } } break; @@ -1115,27 +1117,13 @@ void get_opr_cmd(void) // FDC MODE // -/* - * WIP: - * [*] set_mode - * [*] condition - * [*] format - * [*] read_id - * [ ] search_id - * [ ] write_id - * [*] read_sector - * [ ] write_sector - */ - /* sectors: 0-79 -sector: 1297 bytes -| ID 17 bytes | DATA 1280 bytes | +sector: 1293 bytes +| ID 13 bytes | DATA 1280 bytes | --- - 2 sector len - 2 sector num - 1 logical sector length code -12 reserved +1 logical sector length code +12 data --- 1280 data --- @@ -1150,42 +1138,52 @@ void ret_fdc_std(uint8_t e, uint8_t s, uint16_t l) { dbg(2,"%s()\n",__func__); char b[9] = { 0x00 }; snprintf(b,9,"%02X%02X%04X",e,s,l); - dbg(1,"FDC: response: \"%s\"\n",b); + dbg(2,"FDC: response: \"%s\"\n",b); write_client_tty(b,8); } +// takes logical size code (0-6), returns size in bytes +// default 256 to match real drive int get_logical_size (int i) { dbg(2,"%s(%d)\n",__func__,i); return i==FDC_LS_64?64: i==FDC_LS_80?80: i==FDC_LS_128?128: - //i==FDC_LS_256?256: // real drive default + //i==FDC_LS_256?256: i==FDC_LS_512?512: i==FDC_LS_1024?1024: i==FDC_LS_1280?1280: 256; } +/* +int seek_disk_image (int p, int l, int r) { + int s = (p*(ilen+dlen)); + if (l) s+=ilen+l*llen-l; + return lseek(disk_img_fd,s,SEEK_SET); +} +*/ + // p : physical sector to seek to -// wr : read-only/write-only/read-write -// ret : send or don't send response packet to client from here -int open_disk_image (uint8_t p, int wr, int ret) { +// m : read-only / write-only / read-write +// r : send or don't send error response to client from here +int open_disk_image (int p, int m, int r) { if (!strcmp(disk_img_fname,"")) return ERR_FDC_NO_DISK; int of; int e=ERR_FDC_SUCCESS; - switch (wr) { - case RW: of=O_RDWR; dbg(0,"edit\n"); + switch (m) { + case RW: of=O_RDWR; dbg(2,"edit\n"); if (access(disk_img_fname,W_OK)) e=ERR_FDC_WRITE_PROTECT; break; case WR: of=O_WRONLY; - if (access(disk_img_fname,F_OK)) { of|=O_CREAT; dbg(0,"create\n");} else { - of|=O_TRUNC; dbg(0,"overwite\n"); + if (access(disk_img_fname,F_OK)) { of|=O_CREAT; dbg(2,"create\n");} else { + of|=O_TRUNC; dbg(2,"overwite\n"); if (access(disk_img_fname,W_OK)) e=ERR_FDC_WRITE_PROTECT; } break; - default: of=O_RDONLY; dbg(0,"read\n"); break; + default: of=O_RDONLY; dbg(2,"read\n"); break; } if (!e) { @@ -1194,11 +1192,11 @@ int open_disk_image (uint8_t p, int wr, int ret) { } if (!e) { - int s = (p*(il+sl)); // initial seek position to start of physical sector + int s = (p*(ilen+dlen)); // initial seek position to start of physical sector if (lseek(disk_img_fd,s,SEEK_SET)!=s) e=ERR_FDC_READ; } - if (ret && e) ret_fdc_std(e,0,0); + if (r && e) ret_fdc_std(e,0,0); return e; } @@ -1228,33 +1226,20 @@ void req_fdc_condition() { } // lc = logical sector size code -void req_fdc_format(uint8_t lc) { +void req_fdc_format(int lc) { dbg(2,"%s(%d)\n",__func__,lc); if (lc<0 || lc>6) {ret_fdc_std(ERR_FDC_PARAM,0,0); return;} int ll = get_logical_size(lc); // logical sector length in bytes - int lw = sl/ll; // number of whole logical sectors int pn = 0; // physical sector number - int pl = il + (ll*lw); // physical sector length in bytes - int tl = il+sl; // total length + int tl = ilen+dlen; // total length dbg(0,"Format: Logical sector size: %d = %d\n",lc,ll); if (open_disk_image(0,WR,ALLOW_RET)) return; - memset(sb,0x00,tl); // despite pl, we always fill all 1280 bytes + memset(sb,0x00,tl); + sb[0]=lc; // logical sector size code for (pn=0;pn<80;pn++) { - -// The first 2 bytes in the ID section in the manual are not exposed over -// the wire by a real drive. They *probably* tell the drive firmware -// internally the bounds of the following physical sector within the full -// physical 1280, independant of calculating from the logical size code. -// We don't need that really but it's mimicked here anyway. - - // 1st 5 bytes of the ID section. - memcpy(sb,&pl,2); // sector length - memcpy(sb+2,&pn,2); // sector number - sb[4]=lc; // logical sector length code (0-6) - if (write(disk_img_fd,sb,tl)<0) { dbg(0,"%s\n",strerror(errno)); (void)(close(disk_img_fd)+1); @@ -1271,36 +1256,33 @@ void req_fdc_format(uint8_t lc) { void req_fdc_read_id(int p) { dbg(2,"%s(%d)\n",__func__,p); if (open_disk_image(p,RD,ALLOW_RET)) return; // open and seek - uint8_t r = read(disk_img_fd,sb,il); // read all 17 bytes of ID disk - dbg_b(2,sb,il); - int l = get_logical_size(sb[PDD1_ID_HDR_LEN-1]); // get logical size from header - ret_fdc_std(ERR_FDC_SUCCESS,p,l); // send OK + int r = read(disk_img_fd,sb,ilen); // read ID section + dbg_b(2,sb,ilen); + int l = get_logical_size(sb[0]); // get logical size from header + ret_fdc_std(ERR_FDC_SUCCESS,p,l); // send OK char t=0x00; read_client_tty(&t,1); // read 1 byte from client if (t!=FDC_CMD_EOL) return; // if it's anything but CR, silently abort - write_client_tty(sb+PDD1_ID_HDR_LEN,r-PDD1_ID_HDR_LEN); // if it's CR, send data + write_client_tty(sb+PDD1_ID_HDR_LEN,r-PDD1_ID_HDR_LEN); // send data (void)(close(disk_img_fd)+1); } -// b[] = CPP,LL -// C=cmd -// PP 0 to 2 bytes ascii physical sector # null or 0-79 -// comma -// LL 0 to 2 bytes ascii logical sector # null 1-20 +// tp = target physical sector +// tl = target logical sector void req_fdc_read_sector(int tp,int tl) { dbg(2,"%s(%d,%d)\n",__func__,tp,tl); if (open_disk_image(tp,RD,ALLOW_RET)) return; // open & seek to tp - if (read(disk_img_fd,sb,il)!=il) { // read ID section + if (read(disk_img_fd,sb,ilen)!=ilen) { // read ID section dbg(1,"failed read ID\n"); (void)(close(disk_img_fd)+1); ret_fdc_std(ERR_FDC_READ,tp,0); return; } - dbg_b(3,sb,il); + dbg_b(3,sb,ilen); int l = get_logical_size(sb[PDD1_ID_HDR_LEN-1]); // get logical size from header // seek to target_physical*(id_len+physical_len) + id_len + (target_logical-1)*logical_len - int s = (tp*(il+sl))+il+((tl-1)*l); + int s = (tp*(ilen+dlen))+ilen+((tl-1)*l); if (lseek(disk_img_fd,s,SEEK_SET)!=s) { dbg(1,"failed seek %d : %s\n",s,strerror(errno)); (void)(close(disk_img_fd)+1); @@ -1316,9 +1298,9 @@ void req_fdc_read_sector(int tp,int tl) { } ret_fdc_std(ERR_FDC_SUCCESS,tp,l); // 1st stage response char t=0x00; - read_client_tty(&t,1); // read 1 byte from client + read_client_tty(&t,1); // read 1 byte from client if (t!=0x0D) return; // if it's anything but CR, silently abort - write_client_tty(sb,l); // if it's CR, send data + write_client_tty(sb,l); // send data (void)(close(disk_img_fd)+1); } @@ -1331,22 +1313,21 @@ void req_fdc_search_id() { // manual says it's the same as write_sector, which // sends an OK to tell client to send, and then // another OK to ack. So perhaps we return - // just a status return that indicates if a match - // was found and probably which (first) sector in the len/addr field. - // Probably the response is always always success and the other bits - // indicate whether a match was found and where. + // just a status return that indicates if a match was found + // and probably the first matching sector number in the len/addr field. + // Probably the err field is always success. ret_fdc_std(ERR_FDC_SUCCESS,0,0); } void req_fdc_write_id(uint16_t tp) { dbg(2,"%s(%d)\n",__func__,tp); - int s = (tp*(il+sl)); + int s = (tp*(ilen+dlen)); if (open_disk_image(s,RW,ALLOW_RET)) return; // we need both read & write - uint8_t r = read(disk_img_fd,sb,il); // read ID + uint8_t r = read(disk_img_fd,sb,ilen); // read ID dbg_b(2,sb,r); - int l = get_logical_size(sb[PDD1_ID_HDR_LEN-1]); // get logical size from header + int l = get_logical_size(sb[0]); // get logical size from header - // seek file back to tp+5 (skip the ID header to the start of the 12 bytes of user ID data) + // seek file back to tp+hdr (skip the ID header to the start of the 12 bytes of user ID data) if (lseek(disk_img_fd,s+PDD1_ID_HDR_LEN,SEEK_SET)!=s+PDD1_ID_HDR_LEN) { dbg(1,"failed seek %d : %s\n",s+PDD1_ID_HDR_LEN,strerror(errno)); (void)(close(disk_img_fd)+1); @@ -1356,10 +1337,10 @@ void req_fdc_write_id(uint16_t tp) { ret_fdc_std(ERR_FDC_SUCCESS,tp,l); // tell client to send data - read_client_tty(sb,il-PDD1_ID_HDR_LEN); // read 12 bytes from client + read_client_tty(sb,ilen-PDD1_ID_HDR_LEN); // read 12 bytes from client // write those to the file - if (write(disk_img_fd,sb,il-PDD1_ID_HDR_LEN)<0) { + if (write(disk_img_fd,sb,ilen-PDD1_ID_HDR_LEN)<0) { dbg(0,"%s\n",strerror(errno)); (void)(close(disk_img_fd)+1); ret_fdc_std(ERR_FDC_READ,tp,0); @@ -1376,17 +1357,17 @@ void req_fdc_write_id(uint16_t tp) { void req_fdc_write_sector(int tp,int tl) { dbg(2,"%s(%d,%d)\n",__func__,tp,tl); if (open_disk_image(tp,RW,ALLOW_RET)) return; // open & seek to tp - if (read(disk_img_fd,sb,il)!=il) { // read ID section + if (read(disk_img_fd,sb,ilen)!=ilen) { // read ID section dbg(0,"failed read ID\n"); (void)(close(disk_img_fd)+1); ret_fdc_std(ERR_FDC_READ,tp,0); return; } - int l = get_logical_size(sb[PDD1_ID_HDR_LEN-1]); // get logical size from header + int l = get_logical_size(sb[0]); // get logical size from header // seek to target_physical*full_sectors+ID+target_logical*logical_size - int s = (tp*(il+sl))+il+((tl-1)*l); + int s = (tp*(ilen+dlen))+ilen+((tl-1)*l); if (lseek(disk_img_fd,s,SEEK_SET)!=s) { dbg(0,"failed seek %d : %s\n",s,strerror(errno)); (void)(close(disk_img_fd)+1); @@ -1624,6 +1605,7 @@ void show_main_help() { " -d tty Serial device connected to client (" DEFAULT_CLIENT_TTY ")\n" " -g Getty mode - run as daemon\n" " -h Print this help\n" + " -i file Disk image file for raw sector access, TPDD1 only\n" " -l List loader files and show bootstrap help\n" " -p dir Share path - directory with files to be served (.)\n" " -r RTS/CTS hardware flow control\n" diff --git a/ref/disk_image_files.txt b/ref/disk_image_files.txt new file mode 100644 index 0000000..0aa5986 --- /dev/null +++ b/ref/disk_image_files.txt @@ -0,0 +1,63 @@ +Disk Image Files + +This feature is new, crude, and limited at present. + +The -i option takes a filename of a disk image file of a TPDD1/FB-100 +disk (no TPDD2). + +If the file does not already exist, and the client issues a format command, +the file will be created and filled with nulls and sector headers. + +A disk image file is composed of 80 1293-byte records. + +Each record is one full physical sector, +composed of an ID section and a DATA section: + + +-----------------------------------------------------------+ + | FULL PHYSICAL SECTOR | + +----------+------------------------------------------------+ + | ID | DATA | + +----------+------------------------------------------------+ + | 13 bytes | 1280 bytes | + +----------+------------------------------------------------+ + +The ID section is composed of the logical block size code +and 12 bytes of ID data + +-----------------------------------------------------------+ + | ID | + +-----------+-----------------------------------------------+ + | logical | | + | size code | ID data | + +-----------+-----------------------------------------------+ + | 1 byte | 12 bytes | + +-----------+-----------------------------------------------+ + +There are no delimiters or other formatting bytes anywhere. + +See the software manual in the ref/ directory for the info about +the contents of the fields and how they are accessed. + +This is a subset of the fields on a real disk, but it's everything +needed to duplicate a disk. The other fields are just things a +real drive uses internally. + +Currently the only way to create and populate a disk image file is by +issuing format, write_id, and write_sector commands from a client. + +github.com/bkw777/pdd.sh can do this. It's dump_disk command can read an +entire disk from a real drive into it's own form of disk image file, and +then it's restore_disk command can restore that image into dlplus, +creating a dlplud disk image file. + +Currently, disk image files are only usable for the FDC-mode sector access +commands. Meaning you can not use dlplus to access the files within a disk +image, only read and write the raw sectors. It's useful for cloning whole +disks that are otherwise impossible to copy by normal file-access commands, +and for applications that only use FDC-mode commands like databases. +The included Disk_Power.K85.pdd1 disk image is a normal disk with a +filesystem and files, but the Disk_Power installer actually only uses +sector-access commands to install itself. + +The file format is new and still subject to change. It may gain a metadata +header to make the file self-documenting and to support TPDD2. + From 8cee9a0a53658e5e298e128279e15413e21a4171 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Tue, 28 Jun 2022 08:26:48 -0400 Subject: [PATCH 077/206] Update README.md --- README.md | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index ed63453..349d153 100644 --- a/README.md +++ b/README.md @@ -99,43 +99,45 @@ $ unzip REXCPMV21_b19.ZIP $ dl -vb ./rxcini.DO ;dl -vu ``` -## FDC-mode sector access - disk images +## Disk image files and FDC-mode sector access ``` $ dl -vi tpdd1_disk_image.pdd1 ``` -Initial support for raw disk image files that allow use of FDC-mode sector access commands on a virtual disk image file. +Initial support for [disk image files](ref/disk_image_files.txt) that allow use of FDC-mode sector access commands on a virtual disk image file. -This has not been tried with Sardine yet, but that is one of the intended uses. +The feature does not support normal "Operation-mode" file access to the filesystem on a disk, just raw sector access. If you issue normal file access commands from a client, like load or save in TS-DOS, they operate on regular files in the share directory the same as if you had not included the -i option. -TPDD1 and TPDD2 sector access methods are completely different from each other, and at this time only the TPDD1 / "FDC-mode" commands are supported. +The feature does not yet support TPDD2 disks or the TPDD2 version of sector access commands. -Also this does not provide virtual filesystem access to the files on the disk, it provides raw sector access to the disk for programs that use sector access, like databases. +What it does do is allow applications that use sector access commands like databases to work on a virtual disk image file. -The first real-world use of this is it allows fully virtualized installation of Disk Power, which normally requires the original physical distribution disk and a working TPDD1 drive. +The most well known possible example would be [Sardine](https://ftp.whtech.com/club100/doc/sardine.pdf) and it's [dictionary disk](http://www.club100.org/memfiles/index.php?&direction=0&order=&directory=Kurt%20McCullum/Sardine), but that has not been tested yet. (the sector log needs to be converted to the .pdd1 format, and needs either a [Sardine ROM](http://www.club100.org/memfiles/index.php?&direction=0&order=&directory=Kurt%20McCullum/SARDOS) or RAM version of Sardine +It has been tested with a [Disk Power for KC-85](clients/disk_power/Disk_Power.txt) install disk. -The Disk Power installer actually uses only raw sector access commends to install from it's disk. +Disk images are currently only created by specifying a new image filename with `dl -i` ,and then issuing FDC-mode format and sector-write commands from a tpdd client. -See [Disk_Power.txt](clients/disk_power/Disk_Power.txt) - -The disk image was created by using github.com/bkw777/pdd.sh to read the disk into it's own form of disk image file, then "restoring" that disk image into dlplus instead of to a real drive. +Example: + using pdd.sh as the client, + (connected with a 2nd usb-serial adapter and a null-modem cable) + to create a disk image of the TPDD1 Utility Disk from pdd.sh's existing image of that disk, + using pdd.sh's "restore_disk" command to read the .p1h disk image and write it's sectors into dlplus, + which writes them into a .pdd1 file. +``` +$ dl -vi ./new_disk.pdd1 ttyUSB0 +``` -To create an empty disk image, start dl with the -i option the name of a new file. IE: ```$ dl -vi ./my_disk.pdd1```, and then issue an FDC-mode format command from a client. Example using pdd.sh as the client (connected with a 2nd usb-serial adapter and a null-modem serial cable): ``` -$ pdd1 -1) /dev/ttyUSB0 -2) /dev/ttyUSB1 -Which serial port is the TPDD drive on? 2 -PDD(opr:6.2,F)> fdc -PDD(fdc:6.2,F)> F 0 -Formatting Disk, TPDD1 "FDC" mode, 64-Byte Logical Sectors +$ pdd1 ttyUSB1 +PDD(opr:6.2,F)> rd TPDD1_26-3808_Utility_Disk.p1h +Formatting Disk, TPDD1 "FDC" mode, 1280-Byte Logical Sectors [########################################] 100% +Restoring Disk from TPDD1_26-3808_Utility_Disk.p1h +[########################################] 100% (80/80 P:79 L:-/-) PDD(fdc:6.2,F)>q $ ls -l *.pdd1 -rw-rw-r-- 1 bkw bkw 103440 Jun 24 19:05 new_disk.pdd1 ``` -Disk image format [disk_images](ref/disk_images.txt) - ## trivia The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT". TS-DOS thinks it's an invalid filename (even though it DISPLAYS it in the file list just fine. If it would just go ahead and send the command to "open" it, it would work.) However, plenty of other things that are all better than "ROOT " and "PARENT" do work. ``` From 9d58941497d83129cb84dd498951858c512c0c79 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 30 Jun 2022 10:06:35 -0400 Subject: [PATCH 078/206] FDC-mode sector access disk image support, Sardine --- Makefile | 3 + README.md | 75 +++++++------- clients/ts-dos/SAR100.CO | Bin 0 -> 4957 bytes clients/ts-dos/SAR200.CO | Bin 0 -> 5009 bytes clients/ts-dos/Sardine_American.pdd1 | Bin 0 -> 103440 bytes constants.h | 41 +++++--- dl.c | 143 ++++++++++++++------------- 7 files changed, 141 insertions(+), 121 deletions(-) create mode 100644 clients/ts-dos/SAR100.CO create mode 100644 clients/ts-dos/SAR200.CO create mode 100644 clients/ts-dos/Sardine_American.pdd1 diff --git a/Makefile b/Makefile index cf203d4..9edfe40 100644 --- a/Makefile +++ b/Makefile @@ -31,6 +31,9 @@ LIB_OTHER := \ clients/ts-dos/DOS100.CO \ clients/ts-dos/DOS200.CO \ clients/ts-dos/DOSNEC.CO \ + clients/ts-dos/SAR100.CO \ + clients/ts-dos/SAR200.CO \ + clients/ts-dos/Sardine_American.pdd1 \ clients/disk_power/Disk_Power.K85.pdd1 CLIENT_DOCS := \ diff --git a/README.md b/README.md index ed63453..8d3cda9 100644 --- a/README.md +++ b/README.md @@ -39,10 +39,12 @@ options: -a c Attr - attribute used for all files (F) -b file Bootstrap: Send loader file to client -d tty Serial device to client (ttyUSB0) + -e Disable TS-DOS directory extension (enabled) -g Getty mode - run as daemon -h Print this help -i file Disk image file for raw sector access, TPDD1 only -l List available loader files and bootstrap help + -m # TPDD Model - 1 or 2 (2) -p dir Share path - directory with files to be served (.) -r RTS/CTS hardware flow control -s # Speed - serial port baud rate 9600 or 19200 (19200) @@ -69,7 +71,7 @@ Available loader files (in /usr/local/lib/dl): TRS-80 Model 100 & 102 : TEENY.100 TINY.100 TS-DOS.100 DSKMGR.100 TANDY Model 200 : TEENY.200 TS-DOS.200 DSKMGR.200 NEC PC-8201(a)/PC-8300 : TEENY.NEC TS-DOS.NEC -Kyotronic KC-85 : DSKMGR.K85 +Kyotronic KC-85 : DSKMGR.K85 Disk_Power.K85 Olivetti M-10 : DSKMGR.M10 TEENY.M10 Filenames without any leading path are searched from above @@ -99,27 +101,53 @@ $ unzip REXCPMV21_b19.ZIP $ dl -vb ./rxcini.DO ;dl -vu ``` -## FDC-mode sector access - disk images +## trivia +The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT". TS-DOS thinks it's an invalid filename (even though it DISPLAYS it in the file list just fine. If it would just go ahead and send the command to "open" it, it would work.) However, plenty of other things that are all better than "ROOT " and "PARENT" do work. ``` -$ dl -vi tpdd1_disk_image.pdd1 +$ ROOT_LABEL=/ PARENT_LABEL=^ dl +$ ROOT_LABEL='-root-' PARENT_LABEL='-back-' dl +$ ROOT_LABEL='0:' PARENT_LABEL='^:' dl +or you can confuse someone... +$ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl ``` -Initial support for raw disk image files that allow use of FDC-mode sector access commands on a virtual disk image file. +## UR-II +Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS from disk on-the-fly. +This allows you to keep the TS-DOS executable on the disk instead of in ram, and it is loaded and then discarded on-demand by selecting the TS-DOS menu entry from inside UR2. -This has not been tried with Sardine yet, but that is one of the intended uses. +That normally requires that there be a copy of DOS100.CO on the "disk" so that UR-II can load it. And since this "disk" is actually a server that can cd into other directories, you would normally need a copy of the file in every single directory. +This version of dlplus has special support for that so that the TS-DOS button always works, even if the file doesn't exist in the current directory, or even if the file doesn't exist anywhere within the share tree. + +There are copies of [DOS100.CO](clients/ts-dos/DOS100.CO), [DOS200.CO](clients/ts-dos/DOS200.CO), and [DOSNEC.CO](clients/ts-dos/DOSNEC.CO) installed to ```/usr/local/lib/dl``` by ```sudo make install```. -TPDD1 and TPDD2 sector access methods are completely different from each other, and at this time only the TPDD1 / "FDC-mode" commands are supported. +When the client machine requests any of these files, dlplus first looks in the current directory like normal. If it's there, that is what is used. +Failing that, then it looks in the root share dir. Failing that, finally it gets the file from /usr/local/lib/dl. This way the TS-DOS button in Ultimate ROM II just always works by magic. -Also this does not provide virtual filesystem access to the files on the disk, it provides raw sector access to the disk for programs that use sector access, like databases. +[More details](ref/ur2.txt) -The first real-world use of this is it allows fully virtualized installation of Disk Power, which normally requires the original physical distribution disk and a working TPDD1 drive. +## FDC-mode sector access - disk images +``` +$ dl -vi tpdd1_disk_image.pdd1 +``` +Support for raw disk image files that allow use of FDC-mode sector access commands on a virtual disk image file. +Limitations: Only TPDD1 disks, only sector access. You can't access the files on a disk as files, just as raw sectors, and TPDD2 disks and TPDD2 sector/cache commands aren't supported. -The Disk Power installer actually uses only raw sector access commends to install from it's disk. +Working examples: Sardine_American.pdd1, Disk_Power_KC-85.pdd1 -See [Disk_Power.txt](clients/disk_power/Disk_Power.txt) +Example, using Sardine with a Model 100 with [Ultimate ROM II rom](http://www.club100.org/library/librom.html) (or [REX](http://bitchin100.com/wiki/index.php?title=Rex) with UR-II loaded): +Firast, run dl with the following commandline arguments to force TPDD1 emulation, disable TS-DOS directory support, and load the Sardine American dictionary disk: +``` +$ dl -vue -m 1 -i Sardine_American.pdd1 +``` +This provides both SAR100.CO and the dictionary disk. SAR100.CO (and SAR200.CO) are installed in /usr/local/lib/dl, and are "magic" files that are always found when the client tries to load them, even if they aren't in the directory being shared. Similarly, Sardine_American.pdd1 is in the same lib directory and is found when you specify the filename without any path. +Enter the UR-2 menu. Notice the SARDIN entry with the word OFF under it. Hit enter on SORDIN and say Y to any prompts if you get any (about himem). +This loads SAR100.CO into ram, and now the SARDIN entry says ON under it. +Now enter T-Word and start a new document and type some text. +Finally hit Graph+F to invoke Sardine to spell-check the document. -The disk image was created by using github.com/bkw777/pdd.sh to read the disk into it's own form of disk image file, then "restoring" that disk image into dlplus instead of to a real drive. +Example, installing Disk_Power for KC-85 +See [Disk_Power.txt](clients/disk_power/Disk_Power.txt) -To create an empty disk image, start dl with the -i option the name of a new file. IE: ```$ dl -vi ./my_disk.pdd1```, and then issue an FDC-mode format command from a client. Example using pdd.sh as the client (connected with a 2nd usb-serial adapter and a null-modem serial cable): +To create a disk image, start dl with the -i option the name of a new file. IE: ```$ dl -vi ./my_disk.pdd1```, and then issue an FDC-mode format command from a client. Example using pdd.sh as the client (connected with a 2nd usb-serial adapter and a null-modem serial cable): ``` $ pdd1 1) /dev/ttyUSB0 @@ -136,29 +164,6 @@ $ ls -l *.pdd1 Disk image format [disk_images](ref/disk_images.txt) -## trivia -The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT". TS-DOS thinks it's an invalid filename (even though it DISPLAYS it in the file list just fine. If it would just go ahead and send the command to "open" it, it would work.) However, plenty of other things that are all better than "ROOT " and "PARENT" do work. -``` -$ ROOT_LABEL=/ PARENT_LABEL=^ dl -$ ROOT_LABEL='-root-' PARENT_LABEL='-back-' dl -$ ROOT_LABEL='0:' PARENT_LABEL='^:' dl -or you can confuse someone... -$ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl -``` -## UR-II -Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS from disk on-the-fly. -This allows you to keep the TS-DOS executable on the disk instead of in ram, and it is loaded and then discarded on-demand by selecting the TS-DOS menu entry from inside UR2. - -That normally requires that there be a copy of DOS100.CO on the "disk" so that UR-II can load it. And since this "disk" is actually a server that can cd into other directories, you would normally need a copy of the file in every single directory. -This version of dlplus has special support for that so that the TS-DOS button always works, even if the file doesn't exist in the current directory, or even if the file doesn't exist anywhere within the share tree. - -There are copies of [DOS100.CO](clients/ts-dos/DOS100.CO), [DOS200.CO](clients/ts-dos/DOS200.CO), and [DOSNEC.CO](clients/ts-dos/DOSNEC.CO) installed to ```/usr/local/lib/dl``` by ```sudo make install```. - -When the client machine requests any of these files, dlplus first looks in the current directory like normal. If it's there, that is what is used. -Failing that, then it looks in the root share dir. Failing that, finally it gets the file from /usr/local/lib/dl. This way the TS-DOS button in Ultimate ROM II just always works by magic. - -[More details](ref/ur2.txt) - ## OS Compatibility Tested on Linux, Macos, FreeBSD diff --git a/clients/ts-dos/SAR100.CO b/clients/ts-dos/SAR100.CO new file mode 100644 index 0000000000000000000000000000000000000000..e94499abea5fbfe6ae9f9592cffe12f4bc718dd4 GIT binary patch literal 4957 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 literal 0 HcmV?d00001 diff --git a/clients/ts-dos/SAR200.CO b/clients/ts-dos/SAR200.CO new file mode 100644 index 0000000000000000000000000000000000000000..4984c11487aff73831c7db40e227191674c6afa1 GIT binary patch literal 5009 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 literal 0 HcmV?d00001 diff --git a/clients/ts-dos/Sardine_American.pdd1 b/clients/ts-dos/Sardine_American.pdd1 new file mode 100644 index 0000000000000000000000000000000000000000..6919055ecebd6fa6bb9fbb1144846532b6230a5a GIT binary patch literal 103440 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

(vDvcs) zRBYp#sYsSX(oS!P9|sYiTvu0Ui&x)tcGFDLpYBLa)^I7$&&f&G-> z59|IT{p`)IP05fKc6up;r>Z37Qb|2L6<7US+QG7hzuvXpcdZRWru8n^M_{7A%B%US{Kzl7>T}NUpEl+f(9fJr z_FJ|5Kh+_Q(#^eUcqn8kTrOzq6Y&&fm_vxo4<=RVf@v)bdgA~;kDZXp0a2#kt{+zM z;9)fR1VhawMYJTt)lSKov^aG;%hs{Gnv1ta8c(aGFY literal 0 HcmV?d00001 diff --git a/constants.h b/constants.h index 8492c66..072e66f 100644 --- a/constants.h +++ b/constants.h @@ -12,14 +12,14 @@ #define REQ_DELETE 0x05 #define REQ_FORMAT 0x06 #define REQ_STATUS 0x07 -#define REQ_FDC 0x08 +#define REQ_FDC 0x08 // TPDD1 #define REQ_SEEK 0x09 #define REQ_TELL 0x0A #define REQ_SET_EXT 0x0B #define REQ_CONDITION 0x0C // TPDD2 -#define REQ_RENAME 0x0D -#define REQ_REQ_EXT_QUERY 0x0E -#define REQ_COND_LIST 0x0F +#define REQ_RENAME 0x0D // TPDD2 +#define REQ_EXT_QUERY 0x0E +#define REQ_COND_LIST 0x0F // generates 0x38 ret fmt #define REQ_PDD2_UNK11 0x11 // TPDD2 unknown function - TPDD2 responds: 3A 06 80 13 05 00 10 E1 36 #define REQ_PDD2_UNK23 0x23 // TPDD2 unknown function - "TS-DOS mystery" TS-DOS uses for to detect TPDD2 - TPDD2 responds, TPDD1 does not. #define REQ_CACHE_LOAD 0x30 // TPDD2 sector access @@ -33,7 +33,7 @@ #define RET_STD 0x12 // shared return format for: error open close delete status write #define RET_PDD2_UNK23 0x14 // TPDD2 unknown function - "TS-DOS mystery" TS-DOS uses to detect TPDD2 #define RET_CONDITION 0x15 // TPDD2 -#define RET_CACHE_STD 0x38 // TPDD2 shared return format for: sector_cache write_cache +#define RET_CACHE_STD 0x38 // TPDD2 shared return format for: cache_load cache_write cond_list #define RET_READ_CACHE 0x39 // TPDD2 #define RET_PDD2_UNK11 0x3A // TPDD2 unknown function #define RET_PDD2_UNK33 0x3A // TPDD2 same as UNK11 @@ -93,6 +93,7 @@ #define FDC_WRITE_ID_NV 'C' // write sector ID without verify #define FDC_WRITE_SECTOR 'W' // write sector data #define FDC_WRITE_SECTOR_NV 'X' // write sector data without verify +#define FDC_CMDS {FDC_SET_MODE,FDC_CONDITION,FDC_FORMAT,FDC_FORMAT_NV,FDC_READ_ID,FDC_READ_SECTOR,FDC_SEARCH_ID,FDC_WRITE_ID,FDC_WRITE_ID_NV,FDC_WRITE_SECTOR,FDC_WRITE_SECTOR_NV,0x00} // TPDD1 FDC-mode error codes // There is no documentation for FDC error codes. @@ -112,19 +113,29 @@ #define ERR_FDC_NO_DISK 209 // 'Disk Not Inserted' // TPDD1 FDC Condition bits -#define FDC_COND_NOTINS 0x80 // bit 7: 1 = disk not inserted -#define FDC_COND_REMOVED 0x40 // bit 6: 1 = disk removed -#define FDC_COND_WP 0x20 // bit 5: 1 = disk write-protected +#define FDC_COND_NOTINS 0x80 // bit 7 : disk not inserted +#define FDC_COND_CHANGED 0x40 // bit 6 : disk changed +#define FDC_COND_WPROT 0x20 // bit 5 : disk write-protected +#define FDC_COND_b4 0x10 +#define FDC_COND_b3 0x08 +#define FDC_COND_b2 0x04 +#define FDC_COND_b1 0x02 +#define FDC_COND_b0 0x01 #define FDC_COND_NONE 0x00 // no conditions // TPDD1 FDC Logical Sector Length Codes -#define FDC_LS_64 0 -#define FDC_LS_80 1 -#define FDC_LS_128 2 -#define FDC_LS_256 3 -#define FDC_LS_512 4 -#define FDC_LS_1024 5 -#define FDC_LS_1280 6 +#define FDC_LOGICAL_SIZE_CODES {64,80,128,256,512,1024,1280} + +// TPDD2 Condition bits +#define PDD2_COND_b7 0x80 +#define PDD2_COND_b6 0x40 +#define PDD2_COND_b5 0x20 +#define PDD2_COND_b4 0x10 +#define PDD2_COND_CHANGED 0x08 // bit 3 : disk changed +#define PDD2_COND_NOTINS 0x04 // bit 2 : disk not inserted +#define PDD2_COND_WPROT 0x02 // bit 1 : write protected disk +#define PDD2_COND_POWER 0x01 // bit 0 : low power +#define PDD2_COND_NONE 0x00 // no conditions // fixed lengths #define TPDD_DATA_MAX 0x80 diff --git a/dl.c b/dl.c index 36a5296..d930023 100644 --- a/dl.c +++ b/dl.c @@ -165,9 +165,10 @@ char dme_root_label[7] = DEFAULT_DME_ROOT_LABEL; char dme_parent_label[7] = DEFAULT_DME_PARENT_LABEL; char dme_dir_label[3] = DEFAULT_DME_DIR_LABEL; char default_attr = DEFAULT_TPDD_FILE_ATTR; -bool enable_ur2_dos_hack = true; +bool enable_magic_files = true; bool getty_mode = false; bool bootstrap_mode = false; +int model = 2; char **args; int f_open_mode = F_OPEN_NONE; @@ -186,27 +187,14 @@ bool dme_disabled = false; char ch[2] = {0xFF}; const uint8_t ilen = PDD1_SECTOR_ID_LEN; const uint16_t dlen = PDD1_SECTOR_DATA_LEN; -//uint8_t llen = 0; unsigned char sb[(PDD1_SECTOR_ID_LEN+PDD1_SECTOR_DATA_LEN)]={0x00}; // avoid malloc/free +const int fdc_logical_size_codes[] = FDC_LOGICAL_SIZE_CODES; +const char fdc_cmds[] = FDC_CMDS; FILE_ENTRY *cur_file; int dir_depth=0; // blarghamagargles -const char valid_fdc_cmds[]={ - FDC_SET_MODE, - FDC_CONDITION, - FDC_FORMAT, - FDC_FORMAT_NV, - FDC_READ_ID, - FDC_READ_SECTOR, - FDC_SEARCH_ID, - FDC_WRITE_ID, - FDC_WRITE_ID_NV, - FDC_WRITE_SECTOR, - FDC_WRITE_SECTOR_NV, - 0x00 -}; void show_main_help(); void ret_std(unsigned char err); @@ -477,15 +465,14 @@ void lsx (char *path,char *match) { int check_magic_file(char *b) { dbg(3,"%s(\"%s\")\n",__func__,b); - if (!enable_ur2_dos_hack) return 1; - if (dot_offset!=6) return 1; // UR2 is only on the KC-85 platform + if (!enable_magic_files) return 1; + if (dot_offset!=6) return 1; // UR2 only exists on the KC-85 clones int l = sizeof(magic_files)/sizeof(magic_files[0]); for (int i=0;iclient_fname); int i; @@ -783,7 +768,6 @@ void ret_dme_cwd() { // dme_detected is retained forever void req_fdc() { dbg(2,"%s()\n",__func__); - dbg(3,"dme detection %s\n",dme_disabled?"disabled":"allowed"); dbg(3,"dme %spreviously detected\n",dme_fdc?"":"not "); @@ -800,6 +784,7 @@ void req_fdc() { dbg(3,"dme detected\n"); ret_dme_cwd(); } else { + if (model==2) { ret_std(ERR_PARAM); return; } // real tpdd2 returns opr_mode = 0; dbg(1,"Switching to \"FDC\" mode\n"); } @@ -811,8 +796,7 @@ void req_fdc() { // 0x02 write append // 0x03 read // b[3] = chk -int req_open(unsigned char *b) -{ +int req_open(unsigned char *b) { dbg(2,"%s(\"%s\")\n",__func__,cur_file->client_fname); dbg(5,"b[]\n"); dbg_b(5,b,-1); dbg_p(4,b); @@ -973,6 +957,27 @@ void req_delete(void) { ret_std (ERR_SUCCESS); } +void ret_cache_std(int e) { + dbg(3,"%s()\n",__func__); + gb[0]=RET_CACHE_STD; + gb[1]=0x01; + gb[2]=e; + gb[3]=checksum(gb); + write_client_tty(gb,4); +} + +void req_cache_load() { + dbg(3,"%s()\n",__func__); + if (model==1) return; + ret_cache_std(ERR_PARAM); +} + +void req_cache_read() { + dbg(3,"%s()\n",__func__); + if (model==1) return; + ret_cache_std(ERR_PARAM); +} + /* * TPDD2 sector cache write - but not really doing it. * Previously called "TS-DOS mystery command 1" @@ -984,13 +989,10 @@ void req_delete(void) { * FIXME: We should really only respond success if the payload exactly * matches TS-DOS's, and error any other attempt to use this function. */ -void ret_cache_write() { +void req_cache_write() { dbg(3,"%s()\n",__func__); - gb[0]=RET_CACHE_STD; - gb[1]=0x01; - gb[2]=ERR_SUCCESS; - gb[3]=checksum(gb); - write_client_tty(gb,4); + if (model==1) return; + ret_cache_std(ERR_SUCCESS); } /* @@ -1007,6 +1009,7 @@ void ret_cache_write() { */ void ret_pdd2_unk23() { dbg(3,"%s()\n",__func__); + if (model==1) return; static unsigned char canned[] = {RET_PDD2_UNK23, 0x0F, 0x41, 0x10, 0x01, 0x00, 0x50, 0x05, 0x00, 0x02, 0x00, 0x28, 0x00, 0xE1, 0x00, 0x00, 0x00}; memcpy(gb, canned, canned[1]+2); gb[canned[1]+2] = checksum(gb); @@ -1027,6 +1030,7 @@ void ret_pdd2_unk23() { */ void ret_pdd2_unk11() { dbg(3,"%s()\n",__func__); + if (model==2) return; static unsigned char canned[] = {RET_PDD2_UNK11, 0x06, 0x80, 0x13, 0x05, 0x00, 0x10, 0xE1}; memcpy(gb, canned, canned[1]+2); gb[canned[1]+2] = checksum(gb); @@ -1035,6 +1039,7 @@ void ret_pdd2_unk11() { void req_rename(unsigned char *b) { dbg(3,"%s(%-24.24s)\n",__func__,b+2); + if (model==1) return; char *t = (char *)b + 2; memcpy(t,collapse_padded_name(t),TPDD_FILENAME_LEN); if (rename(cur_file->local_fname,t)) @@ -1067,8 +1072,7 @@ void req_format() { ret_std(ERR_SUCCESS); } -void get_opr_cmd(void) -{ +void get_opr_cmd(void) { dbg(3,"%s()\n",__func__); unsigned char b[TPDD_DATA_MAX+3] = {0x00}; unsigned i = 0; @@ -1104,7 +1108,9 @@ void get_opr_cmd(void) case REQ_CONDITION: req_condition(); break; case REQ_RENAME: req_rename(b); break; case REQ_PDD2_UNK23: ret_pdd2_unk23(); break; - case REQ_CACHE_WRITE: ret_cache_write(); break; + case REQ_CACHE_LOAD: req_cache_load(); break; + case REQ_CACHE_READ: req_cache_read(); break; + case REQ_CACHE_WRITE: req_cache_write(); break; case REQ_PDD2_UNK11: ret_pdd2_unk11(); break; case REQ_PDD2_UNK33: ret_pdd2_unk11(); break; default: dbg(1,"OPR: unknown cmd \"%02X\"\n",b[0]); if (debug<3) dbg_p(2,b); @@ -1129,6 +1135,11 @@ sector: 1293 bytes --- */ +int lsc_to_len(int l) { + if (l<0||l>6) l=3; + return fdc_logical_size_codes[l]; +} + // standard fdc-mode 8-byte response // e = error code ERR_FDC_* -> ascii hex pair // s = status or data -> ascii hex pair @@ -1142,21 +1153,6 @@ void ret_fdc_std(uint8_t e, uint8_t s, uint16_t l) { write_client_tty(b,8); } -// takes logical size code (0-6), returns size in bytes -// default 256 to match real drive -int get_logical_size (int i) { - dbg(2,"%s(%d)\n",__func__,i); - return - i==FDC_LS_64?64: - i==FDC_LS_80?80: - i==FDC_LS_128?128: - //i==FDC_LS_256?256: - i==FDC_LS_512?512: - i==FDC_LS_1024?1024: - i==FDC_LS_1280?1280: - 256; -} - /* int seek_disk_image (int p, int l, int r) { int s = (p*(ilen+dlen)); @@ -1169,6 +1165,7 @@ int seek_disk_image (int p, int l, int r) { // m : read-only / write-only / read-write // r : send or don't send error response to client from here int open_disk_image (int p, int m, int r) { + dbg(2,"%s(%d,%d,%d)\n",__func__,p,m,r); if (!strcmp(disk_img_fname,"")) return ERR_FDC_NO_DISK; int of; int e=ERR_FDC_SUCCESS; @@ -1211,25 +1208,24 @@ void req_fdc_set_mode(int m) { // e = ERR_FDC_SUCCESS // s = bit flags: // 7: 1 = disk not inserted FDC_COND_NOTINS -// 6: 1 = disk removed FDC_COND_REMOVED -// 5: 1 = disk write-protected FDC_COND_WP +// 6: 1 = disk changed FDC_COND_CHANGED +// 5: 1 = disk write-protected FDC_COND_WPROT // l = 0 // examples -// ret_fdc_std(ERR_FDC_SUCCESS,FDC_COND_WP,0) -// ret_fdc_std(ERR_FDC_SUCCESS,FDC_COND_NOTINS|FDC_COND_REMOVED,0) +// ret_fdc_std(ERR_FDC_SUCCESS,FDC_COND_WPROT,0) +// ret_fdc_std(ERR_FDC_SUCCESS,FDC_COND_NOTINS|FDC_COND_CHANGED,0) void req_fdc_condition() { dbg(2,"%s()\n",__func__); int s=FDC_COND_NONE; if (access(disk_img_fname,F_OK)) s=FDC_COND_NOTINS; - else if (access(disk_img_fname,W_OK)) s=FDC_COND_WP; + else if (access(disk_img_fname,W_OK)) s=FDC_COND_WPROT; ret_fdc_std(ERR_FDC_SUCCESS,s,0); } // lc = logical sector size code void req_fdc_format(int lc) { dbg(2,"%s(%d)\n",__func__,lc); - if (lc<0 || lc>6) {ret_fdc_std(ERR_FDC_PARAM,0,0); return;} - int ll = get_logical_size(lc); // logical sector length in bytes + int ll = lsc_to_len(lc); int pn = 0; // physical sector number int tl = ilen+dlen; // total length @@ -1258,7 +1254,7 @@ void req_fdc_read_id(int p) { if (open_disk_image(p,RD,ALLOW_RET)) return; // open and seek int r = read(disk_img_fd,sb,ilen); // read ID section dbg_b(2,sb,ilen); - int l = get_logical_size(sb[0]); // get logical size from header + int l = lsc_to_len(sb[0]); // get logical size from header ret_fdc_std(ERR_FDC_SUCCESS,p,l); // send OK char t=0x00; read_client_tty(&t,1); // read 1 byte from client if (t!=FDC_CMD_EOL) return; // if it's anything but CR, silently abort @@ -1279,7 +1275,7 @@ void req_fdc_read_sector(int tp,int tl) { } dbg_b(3,sb,ilen); - int l = get_logical_size(sb[PDD1_ID_HDR_LEN-1]); // get logical size from header + int l = lsc_to_len(sb[PDD1_ID_HDR_LEN-1]); // get logical size from header // seek to target_physical*(id_len+physical_len) + id_len + (target_logical-1)*logical_len int s = (tp*(ilen+dlen))+ilen+((tl-1)*l); @@ -1325,7 +1321,7 @@ void req_fdc_write_id(uint16_t tp) { if (open_disk_image(s,RW,ALLOW_RET)) return; // we need both read & write uint8_t r = read(disk_img_fd,sb,ilen); // read ID dbg_b(2,sb,r); - int l = get_logical_size(sb[0]); // get logical size from header + int l = lsc_to_len(sb[0]); // get logical size from header // seek file back to tp+hdr (skip the ID header to the start of the 12 bytes of user ID data) if (lseek(disk_img_fd,s+PDD1_ID_HDR_LEN,SEEK_SET)!=s+PDD1_ID_HDR_LEN) { @@ -1364,7 +1360,7 @@ void req_fdc_write_sector(int tp,int tl) { return; } - int l = get_logical_size(sb[0]); // get logical size from header + int l = lsc_to_len(sb[0]); // get logical size from header // seek to target_physical*full_sectors+ID+target_logical*logical_size int s = (tp*(ilen+dlen))+ilen+((tl-1)*l); @@ -1413,8 +1409,8 @@ void get_fdc_cmd(void) { // scan for a valid command byte first while (!c) { read_client_tty(&c,1); - if (c==FDC_CMD_EOL) return; // empty command, just restart - if (!strchr(valid_fdc_cmds,c)) c=0x00 ; // eat bytes until valid cmd or eol + if (c==FDC_CMD_EOL) { eol=true; c=0x20; break; } // empty command + if (!strchr(fdc_cmds,c)) c=0x20 ; // eat bytes until valid cmd or eol } // read params @@ -1462,9 +1458,8 @@ void get_fdc_cmd(void) { case FDC_WRITE_ID: req_fdc_write_id(p); break; case FDC_WRITE_SECTOR_NV: case FDC_WRITE_SECTOR: req_fdc_write_sector(p,l); break; - case 0x00: if (!i) {dbg(2,"FDC: empty command\n"); break;} - default: dbg(1,"FDC: unknown cmd \"%s\"\n",b); - // local msg, nothing to client + default: dbg(3,"FDC: invalid cmd \"%s\"\n",b); + ret_fdc_std(ERR_FDC_COMMAND,0,0); // required for model detection } } @@ -1575,6 +1570,7 @@ void show_config () { dbg(0,"upcase : %s\n",upcase?"true":"false"); dbg(0,"rtscts : %s\n",rtscts?"true":"false"); dbg(0,"verbosity : %d\n",debug); + dbg(0,"model : %d\n",model); dbg(0,"dot_offset : %d\n",dot_offset); dbg(0,"BASIC_byte_ms : %d\n",BASIC_byte_us/1000); dbg(0,"bootstrap_mode : %s\n",bootstrap_mode?"true":"false"); @@ -1589,7 +1585,7 @@ void show_config () { dbg(2,"dme_root_label : \"%-6.6s\"\n",dme_root_label); dbg(2,"dme_parent_label: \"%-6.6s\"\n",dme_parent_label); dbg(2,"dme_dir_label : \"%-2.2s\"\n",dme_dir_label); - dbg(0,"ur2_dos_hack : %s\n",enable_ur2_dos_hack?"enabled":"disabled"); + dbg(0,"magic_files : %s\n",enable_magic_files?"enabled":"disabled"); dbg(2,"default_attr : '%c'\n",default_attr); } @@ -1603,10 +1599,12 @@ void show_main_help() { " -a c Attr - attribute used for all files (%2$c)\n" " -b file Bootstrap - send loader file to client\n" " -d tty Serial device connected to client (" DEFAULT_CLIENT_TTY ")\n" + " -e Disable TS-DOS directory extension (enabled)\n" " -g Getty mode - run as daemon\n" " -h Print this help\n" " -i file Disk image file for raw sector access, TPDD1 only\n" " -l List loader files and show bootstrap help\n" + " -m model Model: 1 for TPDD1, 2 for TPDD2 (2)\n" " -p dir Share path - directory with files to be served (.)\n" " -r RTS/CTS hardware flow control\n" " -s # Speed - serial port baud rate 9600 or 19200 (19200)\n" @@ -1635,7 +1633,7 @@ int main(int argc, char **argv) { // environment if (getenv("OPR_MODE")) opr_mode = atoi(getenv("OPR_MODE")); if (getenv("DISABLE_DME")) dme_disabled = true; - if (getenv("DISABLE_UR2_DOS_HACK")) enable_ur2_dos_hack = false; + if (getenv("DISABLE_MAGIC_FILES")) enable_magic_files = false; if (getenv("DOT_OFFSET")) dot_offset = atoi(getenv("DOT_OFFSET")); if (getenv("BAUD")) set_baud(getenv("BAUD")); if (getenv("ROOT_LABEL")) {snprintf(dme_root_label,7,"%-6.6s",getenv("ROOT_LABEL")); @@ -1645,16 +1643,18 @@ int main(int argc, char **argv) { if (getenv("ATTR")) default_attr = *getenv("ATTR"); // commandline - while ((i = getopt (argc, argv, ":0a:b:d:ghi:lp:rs:uvwz:^")) >=0) + while ((i = getopt (argc, argv, ":0a:b:d:eghi:lm:p:rs:uvwz:^")) >=0) switch (i) { case '0': dot_offset=0; upcase=false; default_attr=0x20; break; case 'a': default_attr=*strndup(optarg,1); break; case 'b': bootstrap_mode=true; strcpy(bootstrap_fname,optarg);break; case 'd': strcpy(client_tty_name,optarg); break; + case 'e': dme_disabled = true; break; case 'g': getty_mode = true; debug = 0; break; case 'h': show_main_help(); exit(0); break; case 'i': strcpy(disk_img_fname,optarg); break; case 'l': show_bootstrap_help(); exit(0); break; + case 'm': model=atoi(optarg); break; case 'p': (void)(chdir(optarg)+1); break; case 'r': rtscts = true; break; case 's': set_baud(optarg); break; @@ -1680,10 +1680,11 @@ int main(int argc, char **argv) { } } - // convenience auto fixups for user supplied filenames + // convenience auto completes and fixups resolve_client_tty_name(); find_lib_file(disk_img_fname); find_lib_file(bootstrap_fname); + if (model<1||model>2) model=2; (void)(getcwd(cwd,PATH_MAX-1)+1); From 2a2b687be593ed5033f7d36727731346f64dcbc4 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 1 Jul 2022 00:58:36 -0400 Subject: [PATCH 079/206] Sardine disk image had size code byte in ascii --- clients/ts-dos/Sardine_American.pdd1 | Bin 103440 -> 103440 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/clients/ts-dos/Sardine_American.pdd1 b/clients/ts-dos/Sardine_American.pdd1 index 6919055ecebd6fa6bb9fbb1144846532b6230a5a..e69037f9bbdc3d91ba592590f8bbb8c7a4c75a47 100644 GIT binary patch delta 713 zcmYMxODIH97zgk^W2P{k4S6*bMIsVOp@x#kBPE4GA&=w{3PqvN#EhZFViXHvlrWi7 zEG$?^N{WRA3rZppi=otY?*AjJU-$mcx#xe+XI*L9@XA-$F~t^h5F@&$>3AkzTy zBlKP(%tl16@@R$R>T)B3x;W652nJHXcsj6Vfu$VaGyzcvj!VEr1-PvO&o$t)9%!3E zNIQt>k_}?fAh{O}lKT*34}!uG6%lMBe{wZUC>q(ZVG2>_3>dP3Njq3@fRz=nwWinb z*XIwMirjjziT5Yl;A#)t?St1t@O=z?PC?i?h`R)7*C6*66yJmDN6_>Fdfvf^M^C^1 zW&TpU~$o`?&0dq*dL4}%ZrB?jy~d{JBc6tQ`yK2 zHX)nM$YV_fY*`UoTgtXpvi;TUSRKh(7}OJmrCy#WkF+#$=4fFzI#_o%d(_WjKH_GW r)B%Z`QMEg!YJVC>_ooS7=$ZbHyk`-4Tj=ku?7?%Ss2ksCZaL@&uno1# delta 737 zcmYk(Nhm~d90&0J!%X2>Ls=RJibP~d3Wbu$l9FP|C}c^NP^g(<6cRJzspr7Kfh;9V zyyBoNB`GNm4kJ+#i8!Ft^MBu;iPNXo_x<~A_9dNtNykz*n4o2;PCqS(@CI@IAUzo5 zg$Wu_Ck~3n2#d2UQepi6GCd+gG-!?ky@|k@0_+)JE(@&W0=WPj7K8J0a9s(Ws=;S1 z&^Cae77*3Wdw6}O9um6HLqa#A%sxFd~8JSuj5j z))oa1cLi~GMd6QkSCJgAgUc;&y8~YK!1p2WIsu_)Ao>C%UxDmvP;>{X9zgvw=zIgF z4}rOBJIB8i4KF_atw!<;!-3=l9l7a4?gfyiA>>s!7g=9?$*;GOHRFOjlCTJwCuW29*61C$JqbSa}uGajr}c73Un| Date: Fri, 1 Jul 2022 06:41:20 -0400 Subject: [PATCH 080/206] add opr-format comand for disk images --- constants.h | 5 +- dl.c | 1181 +++++++++++++++++++++++++++------------------------ 2 files changed, 631 insertions(+), 555 deletions(-) diff --git a/constants.h b/constants.h index 072e66f..8472a95 100644 --- a/constants.h +++ b/constants.h @@ -138,8 +138,11 @@ #define PDD2_COND_NONE 0x00 // no conditions // fixed lengths +#define PDD1_TRACKS 40 +#define PDD1_SECTORS 2 +#define PDD2_TRACKS 80 +#define PDD2_SECTORS 2 #define TPDD_DATA_MAX 0x80 -#define TPDD_FREE_SECTORS 80 // max 80 for TPDD1, 160 for TPDD2 #define LEN_RET_STD 0x01 #define LEN_RET_DME 0x0B #define LEN_RET_DIRENT 0x1C diff --git a/dl.c b/dl.c index d930023..0a42373 100644 --- a/dl.c +++ b/dl.c @@ -196,7 +196,7 @@ int dir_depth=0; // blarghamagargles void show_main_help(); -void ret_std(unsigned char err); + /* primitives and utilities */ @@ -472,173 +472,532 @@ int check_magic_file(char *b) { return 1; } -FILE_ENTRY *make_file_entry(char *namep, uint16_t len, char flags) { - dbg(3,"%s(\"%s\")\n",__func__,namep); - static FILE_ENTRY f; - int i; - - strncpy (f.local_fname, namep, sizeof (f.local_fname) - 1); - memset(f.client_fname,0x20,TPDD_FILENAME_LEN); - f.len = len; - f.flags = flags; - - if (dot_offset) { - // if not in raw mode, reformat the client filename +//////////////////////////////////////////////////////////////////////// +// +// FDC MODE +// - // find the last dot in the local filename - for(i=strlen(namep);i>0;i--) if (namep[i]=='.') break; +/* +sectors: 0-79 +sector: 1293 bytes +| ID 13 bytes | DATA 1280 bytes | +--- +1 logical sector length code +12 data +--- +1280 data +--- +*/ - // write client extension - if (flags&FE_FLAGS_DIR) { - // directory - put TS-DOS DME ext on client fname - f.client_fname[dot_offset+1]=dme_dir_label[0]; - f.client_fname[dot_offset+2]=dme_dir_label[1]; - f.len=0; - } else if (i>0) { - // file - put first 2 bytes of ext on client fname - f.client_fname[dot_offset+1]=namep[i+1]; - f.client_fname[dot_offset+2]=namep[i+2]; - } +// return the length in bytes for a given logical size code +int lsc_to_len(int l) { + if (l<0||l>6) l=3; + return fdc_logical_size_codes[l]; +} - // replace ".." with dme_parent_label - if (f.local_fname[0]=='.' && f.local_fname[1]=='.') { - memcpy (f.client_fname, dme_parent_label, 6); - } else { - for(i=0;i ascii hex pair +// s = status or data -> ascii hex pair +// l = length or address -> 2 ascii hex pairs +// TODO - don't assume endianness +void ret_fdc_std(uint8_t e, uint8_t s, uint16_t l) { + dbg(2,"%s()\n",__func__); + char b[9] = { 0x00 }; + snprintf(b,9,"%02X%02X%04X",e,s,l); + dbg(2,"FDC: response: \"%s\"\n",b); + write_client_tty(b,8); +} - // upcase - if (upcase) for(i=0;id_name,&st)) { - if (m) ret_std(ERR_NO_FILE); - return 0; - } - - if (S_ISDIR(st.st_mode)) flags=FE_FLAGS_DIR; - else if (!S_ISREG (st.st_mode)) continue; - - if (flags==FE_FLAGS_DIR && !dme_detected) continue; - - if (dot_offset) { - if (dire->d_name[0]=='.') continue; // skip "." ".." and hidden files - if (strlen(dire->d_name)>LOCAL_FILENAME_MAX) continue; // skip long filenames - } - - // If filesize is too large for the tpdd 16bit filesize field, still - // allow the file to be accessed, because REXCPM (cpmupd.CO) violates - // the protocol to load a CP/M disk image. But declare the size 0 - // rather than give a random value from taking only 16 of 32 bits. - if (st.st_size>UINT16_MAX) st.st_size=0; - - add_file(make_file_entry(dire->d_name, st.st_size, flags)); - break; + if (!e) { + int s = (p*(ilen+dlen)); // initial seek position to start of physical sector + if (lseek(disk_img_fd,s,SEEK_SET)!=s) e=ERR_FDC_READ; } - if (dire == NULL) return 0; - - return 1; + if (r && e) ret_fdc_std(e,0,0); + return e; } -void update_file_list(int m) { - dbg(3,"%s()\n",__func__); - DIR * dir; - - dir=opendir("."); - file_list_clear_all(); - dbg(1,"-------------------------------------------------------------------------------\n"); - if (dir_depth) add_file(make_file_entry("..", 0, FE_FLAGS_DIR)); - while (read_next_dirent(dir,m)); - dbg(1,"-------------------------------------------------------------------------------\n"); - closedir(dir); +void req_fdc_set_mode(int m) { + dbg(2,"%s(%d)\n",__func__,m); + dbg(1,"FDC: Switching to \"%s\" mode\n",m==0?"FDC":m==1?"Operation":"-invalid-"); + opr_mode=m; // no response, just switch modes } -//////////////////////////////////////////////////////////////////////// -// -// OPERATION MODE -// - -// standard return - return for: error open close delete status write -void ret_std(unsigned char err) { - dbg(3,"%s()\n",__func__); - gb[0]=RET_STD; - gb[1]=0x01; - gb[2]=err; - gb[3]=checksum(gb); - dbg(3,"Response: %02X\n",err); - write_client_tty(gb,4); - if (gb[2]!=ERR_SUCCESS) dbg(2,"ERROR RESPONSE TO CLIENT\n"); +// disk not-ready conditions +// ret_fdc_std(e,s,l) +// e = ERR_FDC_SUCCESS +// s = bit flags: +// 7: 1 = disk not inserted FDC_COND_NOTINS +// 6: 1 = disk changed FDC_COND_CHANGED +// 5: 1 = disk write-protected FDC_COND_WPROT +// l = 0 +// examples +// ret_fdc_std(ERR_FDC_SUCCESS,FDC_COND_WPROT,0) +// ret_fdc_std(ERR_FDC_SUCCESS,FDC_COND_NOTINS|FDC_COND_CHANGED,0) +void req_fdc_condition() { + dbg(2,"%s()\n",__func__); + int s=FDC_COND_NONE; + if (access(disk_img_fname,F_OK)) s=FDC_COND_NOTINS; + else if (access(disk_img_fname,W_OK)) s=FDC_COND_WPROT; + ret_fdc_std(ERR_FDC_SUCCESS,s,0); } -// return for dirent -int ret_dirent(FILE_ENTRY *ep) { - dbg(2,"%s(\"%s\")\n",__func__,ep->client_fname); - int i; - - memset(gb,0x00,TPDD_DATA_MAX+3); - gb[0]=RET_DIRENT; - gb[1]=LEN_RET_DIRENT; +// lc = logical sector size code +void req_fdc_format(int lc) { + dbg(2,"%s(%d)\n",__func__,lc); + int ll = lsc_to_len(lc); + int pn = 0; // physical sector number + int tl = ilen+dlen; // total length + int sc = (PDD1_TRACKS*PDD1_SECTORS); - if (ep) { - // name - memset (gb + 2, ' ', TPDD_FILENAME_LEN); - if (dot_offset) for (i=0;iclient_fname[i])?ep->client_fname[i]:' '; - else memcpy (gb+2,ep->client_fname,TPDD_FILENAME_LEN); + dbg(0,"Format: Logical sector size: %d = %d\n",lc,ll); - // attribute - gb[26] = default_attr; + if (open_disk_image(0,WR,ALLOW_RET)) return; - // size - gb[27]=(uint8_t)(ep->len >> 0x08); // most significant byte - gb[28]=(uint8_t)(ep->len & 0xFF); // least significant byte + memset(sb,0x00,tl); + sb[0]=lc; // logical sector size code + for (pn=0;pn0x00 && gb[0]!=FDC_CMD_EOL && gb[1]==0x00) c=gb[0]; + memset(gb,0x00,TPDD_DATA_MAX+3); + + // scan for a valid command byte first + while (!c) { + read_client_tty(&c,1); + if (c==FDC_CMD_EOL) { eol=true; c=0x20; break; } // fall through to ERR_FDC_COMMAND, important for Sardine + if (!strchr(fdc_cmds,c)) c=0x20 ; // eat bytes until valid cmd or eol + } + + // read params + while (i<6 && !eol) { // if we get out of sync (i>5), just fall through to restart + if (read_client_tty(&b[i],1)==1) { + dbg(3,"i:%d b:\"%s\"\n",i,b); + switch (b[i]) { + case FDC_CMD_EOL: eol=true; + case 0x20: b[i]=0x00; break; + default: i++; + } + } + } + + // We can pre-parse & validate the params since they take the same + // form (or a consistent subset) for all commands. + // Parameters, if they exist, are always one of: + // P,L + // P + // + // where: + // P = physical sector number 0-79 (decimal integer as 0-2 ascii characters) + // L = logical sector number 1-20 (decimal integer as 0-2 ascii characters) + // (format & condition have different meanings but the rule still holds) + p=0; // real drive uses physical sector 0 when omitted + l=1; // real drive uses logical sector 1 when omitted + char* t; + if ((t=strtok(b,","))!=NULL) p=atoi(t); // target physical sector number + if ((t=strtok(NULL,","))!=NULL) l=atoi(t); // target logical sector number + if (p<0 || p>79 || l<1 || l>20) {ret_fdc_std(ERR_FDC_PARAM,0,0); return;} + + // debug + dbg(3,"\"c:%c p:%d l:%d\"\n",c,p,l); + + // dispatch + switch (c) { + case FDC_SET_MODE: req_fdc_set_mode(p); break; + case FDC_CONDITION: req_fdc_condition(); break; + case FDC_FORMAT_NV: + case FDC_FORMAT: req_fdc_format(p); break; + case FDC_READ_ID: req_fdc_read_id(p); break; + case FDC_READ_SECTOR: req_fdc_read_sector(p,l); break; + case FDC_SEARCH_ID: req_fdc_search_id(); break; + case FDC_WRITE_ID_NV: + case FDC_WRITE_ID: req_fdc_write_id(p); break; + case FDC_WRITE_SECTOR_NV: + case FDC_WRITE_SECTOR: req_fdc_write_sector(p,l); break; + default: dbg(3,"FDC: invalid cmd \"%s\"\n",b); + ret_fdc_std(ERR_FDC_COMMAND,0,0); // required for model detection + } +} + + + + +//////////////////////////////////////////////////////////////////////// +// +// OPERATION MODE +// + +FILE_ENTRY *make_file_entry(char *namep, uint16_t len, char flags) { + dbg(3,"%s(\"%s\")\n",__func__,namep); + static FILE_ENTRY f; + int i; + + strncpy (f.local_fname, namep, sizeof (f.local_fname) - 1); + memset(f.client_fname,0x20,TPDD_FILENAME_LEN); + f.len = len; + f.flags = flags; + + if (dot_offset) { + // if not in raw mode, reformat the client filename + + // find the last dot in the local filename + for(i=strlen(namep);i>0;i--) if (namep[i]=='.') break; + + // write client extension + if (flags&FE_FLAGS_DIR) { + // directory - put TS-DOS DME ext on client fname + f.client_fname[dot_offset+1]=dme_dir_label[0]; + f.client_fname[dot_offset+2]=dme_dir_label[1]; + f.len=0; + } else if (i>0) { + // file - put first 2 bytes of ext on client fname + f.client_fname[dot_offset+1]=namep[i+1]; + f.client_fname[dot_offset+2]=namep[i+2]; + } + + // replace ".." with dme_parent_label + if (f.local_fname[0]=='.' && f.local_fname[1]=='.') { + memcpy (f.client_fname, dme_parent_label, 6); + } else { + for(i=0;id_name,&st)) { + if (m) ret_std(ERR_NO_FILE); + return 0; + } + + if (S_ISDIR(st.st_mode)) flags=FE_FLAGS_DIR; + else if (!S_ISREG (st.st_mode)) continue; + + if (flags==FE_FLAGS_DIR && !dme_detected) continue; + + if (dot_offset) { + if (dire->d_name[0]=='.') continue; // skip "." ".." and hidden files + if (strlen(dire->d_name)>LOCAL_FILENAME_MAX) continue; // skip long filenames + } + + // If filesize is too large for the tpdd 16bit filesize field, still + // allow the file to be accessed, because REXCPM (cpmupd.CO) violates + // the protocol to load a CP/M disk image. But declare the size 0 + // rather than give a random value from taking only 16 of 32 bits. + if (st.st_size>UINT16_MAX) st.st_size=0; + + add_file(make_file_entry(dire->d_name, st.st_size, flags)); + break; + } + + if (dire == NULL) return 0; + + return 1; +} + +// read the current share directory +void update_file_list(int m) { + dbg(3,"%s()\n",__func__); + DIR * dir; + + dir=opendir("."); + file_list_clear_all(); + dbg(1,"-------------------------------------------------------------------------------\n"); + if (dir_depth) add_file(make_file_entry("..", 0, FE_FLAGS_DIR)); + while (read_next_dirent(dir,m)); + dbg(1,"-------------------------------------------------------------------------------\n"); + closedir(dir); +} + +// return for dirent +int ret_dirent(FILE_ENTRY *ep) { + dbg(2,"%s(\"%s\")\n",__func__,ep->client_fname); + int i; + + memset(gb,0x00,TPDD_DATA_MAX+3); + gb[0]=RET_DIRENT; + gb[1]=LEN_RET_DIRENT; + + if (ep) { + // name + memset (gb + 2, ' ', TPDD_FILENAME_LEN); + if (dot_offset) for (i=0;iclient_fname[i])?ep->client_fname[i]:' '; + else memcpy (gb+2,ep->client_fname,TPDD_FILENAME_LEN); + + // attribute + gb[26] = default_attr; + + // size + gb[27]=(uint8_t)(ep->len >> 0x08); // most significant byte + gb[28]=(uint8_t)(ep->len & 0xFF); // least significant byte + } + + dbg(3,"\"%24.24s\"\n",gb+2); + + // free sectors + gb[29] = model==1?(PDD1_TRACKS*PDD1_SECTORS):(PDD2_TRACKS*PDD2_SECTORS); + + gb[30] = checksum (gb); + + return (write_client_tty(gb,31) == 31); +} + +void dirent_set_name(unsigned char *b) { dbg(2,"%s(%-24.24s)\n",__func__,b+2); char *p; char filename[TPDD_FILENAME_LEN+1]={0x00}; @@ -1003,463 +1362,177 @@ void req_cache_write() { * But the command apparently takes no parameters, and a real TPDD2 always * responds with the same string of bytes, and TPDD1 ignores it. * not counting ZZ or checksums: - * Client sends : 23 00 - * TPDD2 responds: 14 0F 41 10 01 00 50 05 00 02 00 28 00 E1 00 00 00 - * TPDD1 does not respond. - */ -void ret_pdd2_unk23() { - dbg(3,"%s()\n",__func__); - if (model==1) return; - static unsigned char canned[] = {RET_PDD2_UNK23, 0x0F, 0x41, 0x10, 0x01, 0x00, 0x50, 0x05, 0x00, 0x02, 0x00, 0x28, 0x00, 0xE1, 0x00, 0x00, 0x00}; - memcpy(gb, canned, canned[1]+2); - gb[canned[1]+2] = checksum(gb); - write_client_tty(gb, gb[1]+3); -} - -/* - * Similar to unk23, except the response is different, and not used by TS-DOS. - * Nothing uses this command that I know of. I just found it by feeding - * abitrary commands to a real drive with github/bkw777/pdd.sh - * 0x11 and 0x33 both produce the same response. Possibly 0x11 and 0x33 are - * just different versions of the same function, like how 0x4# commands are - * really just 0x0# commands for bank 1 instead of bank 0? Just a guess. - * not counting ZZ or checksums: - * Client sends : 11 00 - * or sends : 33 00 - * TPDD2 responds: 3A 06 80 13 05 00 10 E1 - */ -void ret_pdd2_unk11() { - dbg(3,"%s()\n",__func__); - if (model==2) return; - static unsigned char canned[] = {RET_PDD2_UNK11, 0x06, 0x80, 0x13, 0x05, 0x00, 0x10, 0xE1}; - memcpy(gb, canned, canned[1]+2); - gb[canned[1]+2] = checksum(gb); - write_client_tty(gb, gb[1]+3); -} - -void req_rename(unsigned char *b) { - dbg(3,"%s(%-24.24s)\n",__func__,b+2); - if (model==1) return; - char *t = (char *)b + 2; - memcpy(t,collapse_padded_name(t),TPDD_FILENAME_LEN); - if (rename(cur_file->local_fname,t)) - ret_std(ERR_SECTOR_NUM); - else { - dbg(1,"Renamed: %s -> %s\n",cur_file->local_fname,t); - ret_std(ERR_SUCCESS); - } -} - -void req_close() { - if (o_file_h>=0) close(o_file_h); - o_file_h = -1; - dbg(2,"\nClosed: \"%s\"\n",cur_file->local_fname); - ret_std(ERR_SUCCESS); -} - -void req_status() { - dbg(2,"%s()\n",__func__); - ret_std(ERR_SUCCESS); -} - -void req_condition() { - dbg(2,"%s()\n",__func__); - ret_std(ERR_SUCCESS); -} - -void req_format() { - dbg(2,"%s()\n",__func__); - ret_std(ERR_SUCCESS); -} - -void get_opr_cmd(void) { - dbg(3,"%s()\n",__func__); - unsigned char b[TPDD_DATA_MAX+3] = {0x00}; - unsigned i = 0; - memset(gb,0x00,TPDD_DATA_MAX+3); - - while (read_client_tty(&b,1) == 1) { - if (b[0]==OPR_CMD_SYNC) i++; else { i=0; b[0]=0x00; continue; } - if (i<2) { b[0]=0x00; continue; } - if (read_client_tty(&b,2) == 2) if (read_client_tty(&b[2],b[1]+1) == b[1]+1) break; - i=0; memset(b,0x00,TPDD_DATA_MAX+3); - } - - dbg_p(3,b); - - if ((i=checksum(b))!=b[b[1]+2]) { - dbg(0,"Failed checksum: received: %02X calculated: %02X\n",b[b[1]+2],i); - return; // real drive does not return anything - } - - ch[1]=ch[0]; ch[0]=b[0]; // command history - - // dispatch - switch(b[0]) { - case REQ_DIRENT: req_dirent(b); break; - case REQ_OPEN: req_open(b); break; - case REQ_CLOSE: req_close(); break; - case REQ_READ: req_read(); break; - case REQ_WRITE: req_write(b); break; - case REQ_DELETE: req_delete(); break; - case REQ_FORMAT: req_format(); break; - case REQ_STATUS: req_status(); break; - case REQ_FDC: req_fdc(); break; - case REQ_CONDITION: req_condition(); break; - case REQ_RENAME: req_rename(b); break; - case REQ_PDD2_UNK23: ret_pdd2_unk23(); break; - case REQ_CACHE_LOAD: req_cache_load(); break; - case REQ_CACHE_READ: req_cache_read(); break; - case REQ_CACHE_WRITE: req_cache_write(); break; - case REQ_PDD2_UNK11: ret_pdd2_unk11(); break; - case REQ_PDD2_UNK33: ret_pdd2_unk11(); break; - default: dbg(1,"OPR: unknown cmd \"%02X\"\n",b[0]); if (debug<3) dbg_p(2,b); - // local msg, nothing to client - } -} - -//////////////////////////////////////////////////////////////////////// -// -// FDC MODE -// - -/* -sectors: 0-79 -sector: 1293 bytes -| ID 13 bytes | DATA 1280 bytes | ---- -1 logical sector length code -12 data ---- -1280 data ---- -*/ - -int lsc_to_len(int l) { - if (l<0||l>6) l=3; - return fdc_logical_size_codes[l]; -} - -// standard fdc-mode 8-byte response -// e = error code ERR_FDC_* -> ascii hex pair -// s = status or data -> ascii hex pair -// l = length or address -> 2 ascii hex pairs -// TODO - don't assume endianness -void ret_fdc_std(uint8_t e, uint8_t s, uint16_t l) { - dbg(2,"%s()\n",__func__); - char b[9] = { 0x00 }; - snprintf(b,9,"%02X%02X%04X",e,s,l); - dbg(2,"FDC: response: \"%s\"\n",b); - write_client_tty(b,8); -} - -/* -int seek_disk_image (int p, int l, int r) { - int s = (p*(ilen+dlen)); - if (l) s+=ilen+l*llen-l; - return lseek(disk_img_fd,s,SEEK_SET); -} -*/ - -// p : physical sector to seek to -// m : read-only / write-only / read-write -// r : send or don't send error response to client from here -int open_disk_image (int p, int m, int r) { - dbg(2,"%s(%d,%d,%d)\n",__func__,p,m,r); - - if (!strcmp(disk_img_fname,"")) return ERR_FDC_NO_DISK; - int of; int e=ERR_FDC_SUCCESS; - - switch (m) { - case RW: of=O_RDWR; dbg(2,"edit\n"); - if (access(disk_img_fname,W_OK)) e=ERR_FDC_WRITE_PROTECT; - break; - case WR: of=O_WRONLY; - if (access(disk_img_fname,F_OK)) { of|=O_CREAT; dbg(2,"create\n");} else { - of|=O_TRUNC; dbg(2,"overwite\n"); - if (access(disk_img_fname,W_OK)) e=ERR_FDC_WRITE_PROTECT; - } - break; - default: of=O_RDONLY; dbg(2,"read\n"); break; - } - - if (!e) { - disk_img_fd=open(disk_img_fname,of|O_EXCL,0666); - if (disk_img_fd<0) { dbg(0,"%s\n",strerror(errno)) ;e=ERR_FDC_READ;} - } - - if (!e) { - int s = (p*(ilen+dlen)); // initial seek position to start of physical sector - if (lseek(disk_img_fd,s,SEEK_SET)!=s) e=ERR_FDC_READ; - } - - if (r && e) ret_fdc_std(e,0,0); - return e; -} - -void req_fdc_set_mode(int m) { - dbg(2,"%s(%d)\n",__func__,m); - dbg(1,"FDC: Switching to \"%s\" mode\n",m==0?"FDC":m==1?"Operation":"-invalid-"); - opr_mode=m; // no response, just switch modes -} - -// disk not-ready conditions -// ret_fdc_std(e,s,l) -// e = ERR_FDC_SUCCESS -// s = bit flags: -// 7: 1 = disk not inserted FDC_COND_NOTINS -// 6: 1 = disk changed FDC_COND_CHANGED -// 5: 1 = disk write-protected FDC_COND_WPROT -// l = 0 -// examples -// ret_fdc_std(ERR_FDC_SUCCESS,FDC_COND_WPROT,0) -// ret_fdc_std(ERR_FDC_SUCCESS,FDC_COND_NOTINS|FDC_COND_CHANGED,0) -void req_fdc_condition() { - dbg(2,"%s()\n",__func__); - int s=FDC_COND_NONE; - if (access(disk_img_fname,F_OK)) s=FDC_COND_NOTINS; - else if (access(disk_img_fname,W_OK)) s=FDC_COND_WPROT; - ret_fdc_std(ERR_FDC_SUCCESS,s,0); -} - -// lc = logical sector size code -void req_fdc_format(int lc) { - dbg(2,"%s(%d)\n",__func__,lc); - int ll = lsc_to_len(lc); - int pn = 0; // physical sector number - int tl = ilen+dlen; // total length - - dbg(0,"Format: Logical sector size: %d = %d\n",lc,ll); - - if (open_disk_image(0,WR,ALLOW_RET)) return; - - memset(sb,0x00,tl); - sb[0]=lc; // logical sector size code - for (pn=0;pn<80;pn++) { - if (write(disk_img_fd,sb,tl)<0) { - dbg(0,"%s\n",strerror(errno)); - (void)(close(disk_img_fd)+1); - ret_fdc_std(ERR_FDC_READ,pn,0); - return; - } - } - - (void)(close(disk_img_fd)+1); - ret_fdc_std(ERR_FDC_SUCCESS,0,0); + * Client sends : 23 00 + * TPDD2 responds: 14 0F 41 10 01 00 50 05 00 02 00 28 00 E1 00 00 00 + * TPDD1 does not respond. + */ +void ret_pdd2_unk23() { + dbg(3,"%s()\n",__func__); + if (model==1) return; + static unsigned char canned[] = {RET_PDD2_UNK23, 0x0F, 0x41, 0x10, 0x01, 0x00, 0x50, 0x05, 0x00, 0x02, 0x00, 0x28, 0x00, 0xE1, 0x00, 0x00, 0x00}; + memcpy(gb, canned, canned[1]+2); + gb[canned[1]+2] = checksum(gb); + write_client_tty(gb, gb[1]+3); } -// p = physical sector number -void req_fdc_read_id(int p) { - dbg(2,"%s(%d)\n",__func__,p); - if (open_disk_image(p,RD,ALLOW_RET)) return; // open and seek - int r = read(disk_img_fd,sb,ilen); // read ID section - dbg_b(2,sb,ilen); - int l = lsc_to_len(sb[0]); // get logical size from header - ret_fdc_std(ERR_FDC_SUCCESS,p,l); // send OK - char t=0x00; read_client_tty(&t,1); // read 1 byte from client - if (t!=FDC_CMD_EOL) return; // if it's anything but CR, silently abort - write_client_tty(sb+PDD1_ID_HDR_LEN,r-PDD1_ID_HDR_LEN); // send data - (void)(close(disk_img_fd)+1); +/* + * Similar to unk23, except the response is different, and not used by TS-DOS. + * Nothing uses this command that I know of. I just found it by feeding + * abitrary commands to a real drive with github/bkw777/pdd.sh + * 0x11 and 0x33 both produce the same response. Possibly 0x11 and 0x33 are + * just different versions of the same function, like how 0x4# commands are + * really just 0x0# commands for bank 1 instead of bank 0? Just a guess. + * not counting ZZ or checksums: + * Client sends : 11 00 + * or sends : 33 00 + * TPDD2 responds: 3A 06 80 13 05 00 10 E1 + */ +void ret_pdd2_unk11() { + dbg(3,"%s()\n",__func__); + if (model==2) return; + static unsigned char canned[] = {RET_PDD2_UNK11, 0x06, 0x80, 0x13, 0x05, 0x00, 0x10, 0xE1}; + memcpy(gb, canned, canned[1]+2); + gb[canned[1]+2] = checksum(gb); + write_client_tty(gb, gb[1]+3); } -// tp = target physical sector -// tl = target logical sector -void req_fdc_read_sector(int tp,int tl) { - dbg(2,"%s(%d,%d)\n",__func__,tp,tl); - if (open_disk_image(tp,RD,ALLOW_RET)) return; // open & seek to tp - if (read(disk_img_fd,sb,ilen)!=ilen) { // read ID section - dbg(1,"failed read ID\n"); - (void)(close(disk_img_fd)+1); - ret_fdc_std(ERR_FDC_READ,tp,0); - return; +void req_rename(unsigned char *b) { + dbg(3,"%s(%-24.24s)\n",__func__,b+2); + if (model==1) return; + char *t = (char *)b + 2; + memcpy(t,collapse_padded_name(t),TPDD_FILENAME_LEN); + if (rename(cur_file->local_fname,t)) + ret_std(ERR_SECTOR_NUM); + else { + dbg(1,"Renamed: %s -> %s\n",cur_file->local_fname,t); + ret_std(ERR_SUCCESS); } - dbg_b(3,sb,ilen); - - int l = lsc_to_len(sb[PDD1_ID_HDR_LEN-1]); // get logical size from header +} - // seek to target_physical*(id_len+physical_len) + id_len + (target_logical-1)*logical_len - int s = (tp*(ilen+dlen))+ilen+((tl-1)*l); - if (lseek(disk_img_fd,s,SEEK_SET)!=s) { - dbg(1,"failed seek %d : %s\n",s,strerror(errno)); - (void)(close(disk_img_fd)+1); - ret_fdc_std(ERR_FDC_READ,tp,0); - return; - } - memset(sb,0x00,l); - if (read(disk_img_fd,sb,l)!=l) { // read one logical sector of DATA - dbg(1,"failed logical sector read\n"); - (void)(close(disk_img_fd)+1); - ret_fdc_std(ERR_FDC_READ,tp,0); - return; - } - ret_fdc_std(ERR_FDC_SUCCESS,tp,l); // 1st stage response - char t=0x00; - read_client_tty(&t,1); // read 1 byte from client - if (t!=0x0D) return; // if it's anything but CR, silently abort - write_client_tty(sb,l); // send data - (void)(close(disk_img_fd)+1); +void req_close() { + if (o_file_h>=0) close(o_file_h); + o_file_h = -1; + dbg(2,"\nClosed: \"%s\"\n",cur_file->local_fname); + ret_std(ERR_SUCCESS); } -void req_fdc_search_id() { +void req_status() { dbg(2,"%s()\n",__func__); - // send OK to client - // read 12 bytes from client - // search all ID's for match - // return, what? Send another OK? - // manual says it's the same as write_sector, which - // sends an OK to tell client to send, and then - // another OK to ack. So perhaps we return - // just a status return that indicates if a match was found - // and probably the first matching sector number in the len/addr field. - // Probably the err field is always success. - ret_fdc_std(ERR_FDC_SUCCESS,0,0); + ret_std(ERR_SUCCESS); } -void req_fdc_write_id(uint16_t tp) { - dbg(2,"%s(%d)\n",__func__,tp); - int s = (tp*(ilen+dlen)); - if (open_disk_image(s,RW,ALLOW_RET)) return; // we need both read & write - uint8_t r = read(disk_img_fd,sb,ilen); // read ID - dbg_b(2,sb,r); - int l = lsc_to_len(sb[0]); // get logical size from header +void req_condition() { + dbg(2,"%s()\n",__func__); + ret_std(ERR_SUCCESS); +} - // seek file back to tp+hdr (skip the ID header to the start of the 12 bytes of user ID data) - if (lseek(disk_img_fd,s+PDD1_ID_HDR_LEN,SEEK_SET)!=s+PDD1_ID_HDR_LEN) { - dbg(1,"failed seek %d : %s\n",s+PDD1_ID_HDR_LEN,strerror(errno)); - (void)(close(disk_img_fd)+1); - ret_fdc_std(ERR_FDC_READ,tp,0); - return; +// opr-format - this creates a disk that can load & save files +// the only difference from fdc-format is a single byte, the first byte of the SMT +// opr-format is just this: +// start with: fdc-format 0 (0=64-byte logical sector size) +// then: sector 0, byte 1240, write 0x80 (or physical:0 logical:20 byte:25 counting from 1 +void req_format() { + dbg(2,"%s()\n",__func__); + const int lc = 0; // logical size code + const int ll = lsc_to_len(lc); // logical sector length + //const int mp = 0; // smt physical sector + const int ml = 20; // smt logical sector + const int ms = 24; // smt first byte (from 0) + const int md = 0x80; // smt first byte data (bit flag first sector used) + const int fsl = ilen+dlen; // full sector length + const int sc = (PDD1_TRACKS*PDD1_SECTORS); // sectors count + + int pn = 0; // physical sector number + + dbg(0,"Operation-mode Format (make a filesystem)\n"); + + int e = open_disk_image(0,WR,NO_RET); + // convert the FDC error codes to equivalent OPR error codes + switch (e) { + case ERR_FDC_NO_DISK: e=ERR_NO_DISK; break; + case ERR_FDC_WRITE_PROTECT: e=ERR_WRITE_PROTECT; break; + case ERR_FDC_READ: e=ERR_FMT_INTERRUPT; break; + case ERR_FDC_SUCCESS: e=0; } + if (e) { ret_std(e); return; } - ret_fdc_std(ERR_FDC_SUCCESS,tp,l); // tell client to send data - - read_client_tty(sb,ilen-PDD1_ID_HDR_LEN); // read 12 bytes from client - - // write those to the file - if (write(disk_img_fd,sb,ilen-PDD1_ID_HDR_LEN)<0) { + // create the blank space + memset(sb,0x00,fsl); // one full sector including size code, ID, & DATA + sb[0]=lc; // logical size code + for (pn=0;pn0x00 && gb[0]!=FDC_CMD_EOL && gb[1]==0x00) c=gb[0]; memset(gb,0x00,TPDD_DATA_MAX+3); - // scan for a valid command byte first - while (!c) { - read_client_tty(&c,1); - if (c==FDC_CMD_EOL) { eol=true; c=0x20; break; } // empty command - if (!strchr(fdc_cmds,c)) c=0x20 ; // eat bytes until valid cmd or eol + while (read_client_tty(&b,1) == 1) { + if (b[0]==OPR_CMD_SYNC) i++; else { i=0; b[0]=0x00; continue; } + if (i<2) { b[0]=0x00; continue; } + if (read_client_tty(&b,2) == 2) if (read_client_tty(&b[2],b[1]+1) == b[1]+1) break; + i=0; memset(b,0x00,TPDD_DATA_MAX+3); } - // read params - while (i<6 && !eol) { // if we get out of sync (i>5), just fall through to restart - if (read_client_tty(&b[i],1)==1) { - dbg(3,"i:%d b:\"%s\"\n",i,b); - switch (b[i]) { - case FDC_CMD_EOL: eol=true; - case 0x20: b[i]=0x00; break; - default: i++; - } - } - } + dbg_p(3,b); - // We can pre-parse & validate the params since they take the same - // form (or a consistent subset) for all commands. - // Parameters, if they exist, are always one of: - // P,L - // P - // - // where: - // P = physical sector number 0-79 (decimal integer as 0-2 ascii characters) - // L = logical sector number 1-20 (decimal integer as 0-2 ascii characters) - // (format & condition have different meanings but the rule still holds) - p=0; // real drive uses physical sector 0 when omitted - l=1; // real drive uses logical sector 1 when omitted - char* t; - if ((t=strtok(b,","))!=NULL) p=atoi(t); // target physical sector number - if ((t=strtok(NULL,","))!=NULL) l=atoi(t); // target logical sector number - if (p<0 || p>79 || l<1 || l>20) {ret_fdc_std(ERR_FDC_PARAM,0,0); return;} + if ((i=checksum(b))!=b[b[1]+2]) { + dbg(0,"Failed checksum: received: %02X calculated: %02X\n",b[b[1]+2],i); + return; // real drive does not return anything + } - // debug - dbg(3,"\"c:%c p:%d l:%d\"\n",c,p,l); + ch[1]=ch[0]; ch[0]=b[0]; // command history // dispatch - switch (c) { - case FDC_SET_MODE: req_fdc_set_mode(p); break; - case FDC_CONDITION: req_fdc_condition(); break; - case FDC_FORMAT_NV: - case FDC_FORMAT: req_fdc_format(p); break; - case FDC_READ_ID: req_fdc_read_id(p); break; - case FDC_READ_SECTOR: req_fdc_read_sector(p,l); break; - case FDC_SEARCH_ID: req_fdc_search_id(); break; - case FDC_WRITE_ID_NV: - case FDC_WRITE_ID: req_fdc_write_id(p); break; - case FDC_WRITE_SECTOR_NV: - case FDC_WRITE_SECTOR: req_fdc_write_sector(p,l); break; - default: dbg(3,"FDC: invalid cmd \"%s\"\n",b); - ret_fdc_std(ERR_FDC_COMMAND,0,0); // required for model detection + switch(b[0]) { + case REQ_DIRENT: req_dirent(b); break; + case REQ_OPEN: req_open(b); break; + case REQ_CLOSE: req_close(); break; + case REQ_READ: req_read(); break; + case REQ_WRITE: req_write(b); break; + case REQ_DELETE: req_delete(); break; + case REQ_FORMAT: req_format(); break; + case REQ_STATUS: req_status(); break; + case REQ_FDC: req_fdc(); break; + case REQ_CONDITION: req_condition(); break; + case REQ_RENAME: req_rename(b); break; + case REQ_PDD2_UNK23: ret_pdd2_unk23(); break; + case REQ_CACHE_LOAD: req_cache_load(); break; + case REQ_CACHE_READ: req_cache_read(); break; + case REQ_CACHE_WRITE: req_cache_write(); break; + case REQ_PDD2_UNK11: ret_pdd2_unk11(); break; + case REQ_PDD2_UNK33: ret_pdd2_unk11(); break; + default: dbg(1,"OPR: unknown cmd \"%02X\"\n",b[0]); if (debug<3) dbg_p(2,b); + // local msg, nothing to client } } From 89c232f92d40ea485b59a6183cb0cb107d81c0af Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sun, 3 Jul 2022 06:41:31 -0400 Subject: [PATCH 081/206] docs about pdd.sh and disk images --- README.md | 25 +++++++------------------ ref/disk_image_files.txt | 14 ++++---------- 2 files changed, 11 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 8d3cda9..9fe1033 100644 --- a/README.md +++ b/README.md @@ -134,35 +134,24 @@ Limitations: Only TPDD1 disks, only sector access. You can't access the files on Working examples: Sardine_American.pdd1, Disk_Power_KC-85.pdd1 Example, using Sardine with a Model 100 with [Ultimate ROM II rom](http://www.club100.org/library/librom.html) (or [REX](http://bitchin100.com/wiki/index.php?title=Rex) with UR-II loaded): -Firast, run dl with the following commandline arguments to force TPDD1 emulation, disable TS-DOS directory support, and load the Sardine American dictionary disk: +First, run dl with the following commandline arguments to force TPDD1 emulation, disable TS-DOS directory support, and load the Sardine American dictionary disk: ``` $ dl -vue -m 1 -i Sardine_American.pdd1 ``` This provides both SAR100.CO and the dictionary disk. SAR100.CO (and SAR200.CO) are installed in /usr/local/lib/dl, and are "magic" files that are always found when the client tries to load them, even if they aren't in the directory being shared. Similarly, Sardine_American.pdd1 is in the same lib directory and is found when you specify the filename without any path. -Enter the UR-2 menu. Notice the SARDIN entry with the word OFF under it. Hit enter on SORDIN and say Y to any prompts if you get any (about himem). +Enter the UR-2 menu. Notice the SARDIN entry with the word OFF under it. Hit enter on SARDIN. Say Y if you get a prompt about HIMEM. This loads SAR100.CO into ram, and now the SARDIN entry says ON under it. Now enter T-Word and start a new document and type some text. -Finally hit Graph+F to invoke Sardine to spell-check the document. +Finally, hit Graph+F to invoke Sardine to spell-check the document. Example, installing Disk_Power for KC-85 See [Disk_Power.txt](clients/disk_power/Disk_Power.txt) -To create a disk image, start dl with the -i option the name of a new file. IE: ```$ dl -vi ./my_disk.pdd1```, and then issue an FDC-mode format command from a client. Example using pdd.sh as the client (connected with a 2nd usb-serial adapter and a null-modem serial cable): -``` -$ pdd1 -1) /dev/ttyUSB0 -2) /dev/ttyUSB1 -Which serial port is the TPDD drive on? 2 -PDD(opr:6.2,F)> fdc -PDD(fdc:6.2,F)> F 0 -Formatting Disk, TPDD1 "FDC" mode, 64-Byte Logical Sectors -[########################################] 100% -PDD(fdc:6.2,F)>q -$ ls -l *.pdd1 --rw-rw-r-- 1 bkw bkw 103440 Jun 24 19:05 new_disk.pdd1 -``` +Disk image files may be created 2 ways: +* Run `dl -i ./filename` with a non-existing or empty file (include the ./ to prevent it from trying to find a file in /usr/local/ib/dl), and then issue a format command from a client. "client" may be TS-DOS or Floppy on a M100, or pdd.sh or PDD.EXE or TpddTool.py etc connected by a null-modem cable, or even a WP-2 or Z88, etc.) +* Use [pdd.sh](https://github.com/bkw777/pdd.sh) "dump disk" command to read a real disk from a real drive into a disk image file. pdd.sh now uses the same binary disk image file format as dlplus. -Disk image format [disk_images](ref/disk_images.txt) +Disk image format [disk_image_files.txt](ref/disk_image_files.txt) ## OS Compatibility Tested on Linux, Macos, FreeBSD diff --git a/ref/disk_image_files.txt b/ref/disk_image_files.txt index 0aa5986..959739d 100644 --- a/ref/disk_image_files.txt +++ b/ref/disk_image_files.txt @@ -41,14 +41,6 @@ This is a subset of the fields on a real disk, but it's everything needed to duplicate a disk. The other fields are just things a real drive uses internally. -Currently the only way to create and populate a disk image file is by -issuing format, write_id, and write_sector commands from a client. - -github.com/bkw777/pdd.sh can do this. It's dump_disk command can read an -entire disk from a real drive into it's own form of disk image file, and -then it's restore_disk command can restore that image into dlplus, -creating a dlplud disk image file. - Currently, disk image files are only usable for the FDC-mode sector access commands. Meaning you can not use dlplus to access the files within a disk image, only read and write the raw sectors. It's useful for cloning whole @@ -58,6 +50,8 @@ The included Disk_Power.K85.pdd1 disk image is a normal disk with a filesystem and files, but the Disk_Power installer actually only uses sector-access commands to install itself. -The file format is new and still subject to change. It may gain a metadata -header to make the file self-documenting and to support TPDD2. +https://github.co/bkw777/pdd.sh now uses the same image file format, so +you can use pdd.sh to create disk images from real disks or create real +dusks from image files. + From 7dcb9ef444d9307875e2a8caa5d82767a806d33d Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 6 Jul 2022 11:46:15 -0400 Subject: [PATCH 082/206] Disk Power KC-85 better loader encoding --- clients/disk_power/Disk_Power.K85 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clients/disk_power/Disk_Power.K85 b/clients/disk_power/Disk_Power.K85 index d6874e1..138e18a 100644 --- a/clients/disk_power/Disk_Power.K85 +++ b/clients/disk_power/Disk_Power.K85 @@ -1 +1 @@ -0?"Loading Disk Power KC-85 installer";:CLEAR0,59072:S=0:I=0:FORA=59072TO62954:READB:POKEA,B:S=S+B:I=I+1:IFI>32THENI=0:?"."; 1NEXT:BEEP:IFS<>472368THEN?"Bad Checksum":END 2CLS:?"Connect TPDD drive and insert the":?"Disk Power KC-85 install disk.":LINEINPUT"Press [ENTER] when ready ";A$:CLS:CALL59343 3DATA12,27,112,32,84,111,111,32,109,97,110,121,32,102,105,108,101,115,32,27,113,0,129,0,0,195,27,134,205,65,234,17,0,255,216,119,223,202,95,233,35,195,220,230,17,59,235,33,57,234,205,109,233,205,99,87,235,195,168,88,33,41,231,1,7,0,176,202,7,231,9,215,50 4DATA224,231,215,50,33,232,50,35,232,50,37,232,215,50,98,232,215,50,127,232,215,50,203,232,215,50,57,235,215,50,201,233,201,61,35,193,197,175,175,35,60,43,225,229,167,167,43,229,205,189,32,209,65,195,66,52,7,13,10,102,111,114,32,116,104,101,32,105,110 5DATA115,116,97,108,108,97,116,105,111,110,32,112,114,111,99,101,115,115,13,10,112,108,101,97,115,101,32,107,105,108,108,32,115,111,109,101,32,102,105,108,101,115,32,97,110,100,32,116,114,121,32,97,103,97,105,110,0,85,85,7,15,248,126,205,1,234,35,5,194 6DATA140,231,201,12,27,112,32,85,110,101,120,112,101,99,116,101,100,0,33,98,246,17,0,255,205,148,49,33,103,233,195,59,233,33,233,232,195,86,234,12,27,112,32,67,111,109,109,117,110,105,99,97,116,105,111,110,0,66,62,2,1,45,0,33,7,234,229,205,99,87,50,159 7DATA249,60,204,252,230,8,119,33,135,235,17,165,252,205,24,37,205,90,32,42,196,251,196,48,235,1,7,12,9,17,0,0,235,57,223,218,180,231,33,83,234,34,89,246,33,171,249,229,126,183,196,56,231,225,54,254,17,204,249,1,11,0,9,223,218,10,232,194,220,231,8,119,8 8DATA119,8,119,12,121,229,33,241,233,12,35,35,129,218,45,232,34,89,246,245,205,167,233,17,128,233,193,225,205,66,52,229,42,196,251,6,14,205,66,52,205,131,18,205,128,32,196,170,31,205,22,33,92,101,107,171,135,61,135,29,71,75,8,1,81,11,205,117,104,175,87 9DATA95,235,37,37,202,109,232,229,205,14,33,225,68,205,26,37,213,1,55,4,8,235,217,33,151,235,1,83,10,209,205,227,104,1,6,0,9,34,244,245,33,27,134,17,225,244,217,209,225,205,148,49,213,33,214,230,17,2,128,205,24,37,1,11,0,33,16,251,17,18,233,62,4,245,19 10DATA245,205,109,87,241,133,111,241,205,109,87,229,237,227,40,8,225,217,198,176,225,8,119,205,22,33,17,2,233,33,97,248,62,16,205,109,87,103,108,34,157,249,205,208,32,205,219,123,195,109,233,12,27,112,32,78,111,116,32,101,110,111,117,103,104,32,109,101 11DATA109,111,114,121,32,27,113,0,84,101,114,109,24,67,65,76,76,51,51,49,51,56,13,32,130,248,130,11,139,42,130,198,132,121,134,132,6,0,197,205,85,233,205,117,106,193,194,220,230,5,194,32,233,195,50,233,33,66,233,195,98,233,33,255,254,215,212,48,52,195 12DATA200,23,12,27,112,32,68,105,115,107,32,78,111,116,32,82,101,97,100,121,0,1,0,48,11,121,176,200,195,88,233,33,186,231,17,111,234,195,242,230,57,56,78,49,68,229,213,33,204,231,6,3,205,140,231,205,85,233,205,56,233,209,225,201,176,253,255,65,68,68,82 13DATA83,83,32,0,176,254,255,83,67,72,69,68,76,32,0,0,0,128,1,254,1,0,195,115,88,1,254,1,0,195,122,88,205,165,231,33,135,231,6,5,205,140,231,205,85,233,33,0,254,229,33,58,234,6,7,205,140,231,229,205,85,233,1,2,0,225,8,53,229,33,8,255,205,30,233,58,14,255 14DATA254,52,194,95,233,62,2,205,1,234,205,85,233,225,62,56,190,225,245,205,30,233,241,229,194,185,233,195,227,79,33,150,231,195,98,233,33,0,128,176,196,92,234,33,205,98,234,195,58,107,68,80,75,56,53,46,83,89,32,32,73,110,115,116,97,108,108,97,116,105 15DATA111,110,32,105,110,32,112,114,111,103,114,101,115,115,27,89,36,41,80,108,101,97,115,101,32,87,65,73,84,46,0,93,63,54,35,63,60,2,205,98,234,205,117,106,55,200,205,134,106,218,236,230,194,95,233,201,33,192,230,17,65,231,195,245,230,205,249,233,169,79 16DATA6,79,219,187,230,32,194,50,233,62,15,169,79,201,32,101,114,114,111,114,32,27,113,13,10,7,67,104,101,99,107,32,121,111,117,114,32,99,97,98,108,101,115,32,97,110,100,32,100,114,105,118,101,46,13,10,73,102,32,112,114,111,98,108,101,109,32,112,101,114 17DATA115,105,115,116,115,44,32,121,111,117,114,32,100,105,115,116,114,105,98,117,116,105,111,110,13,10,100,105,115,107,32,109,97,121,32,98,101,32,100,97,109,97,103,101,100,44,32,111,114,32,121,111,117,32,97,114,101,32,116,114,121,105,110,103,13,10,116 18DATA111,32,105,110,115,116,97,108,108,32,102,114,111,109,32,97,32,110,111,110,45,111,114,105,103,105,110,97,108,32,100,105,115,107,13,10,27,112,32,80,108,101,97,115,101,32,99,111,110,116,97,99,116,32,109,97,110,117,102,97,99,116,117,114,101,114,32,27 19DATA113,0,229,19,19,237,40,6,213,193,225,8,201,7,12,80,114,111,99,101,115,115,32,105,110,116,101,114,114,117,112,116,101,100,32,45,32,67,97,110,39,116,32,99,111,110,116,105,110,117,101,13,10,84,117,114,110,32,79,70,70,32,97,110,100,32,79,78,32,121,111 20DATA117,114,32,100,114,105,118,101,32,97,110,100,32,114,117,110,13,10,73,84,76,75,56,53,46,67,79,32,97,103,97,105,110,0,0,80,139,1,0,185,195,27,134,54,56,58,33,213,252,175,6,7,205,84,132,195,135,112,205,24,131,1,255,249,3,9,195,88,66,105,110,103,32,102 21DATA105,108,101,115,44,32,112,114,111,99,101,101,100,32,40,65,47,89,47,78,41,63,34,35,205,238,87,19,213,205,69,128,215,205,89,134,225,213,197,205,177,17,33,140,246,193,209,195,96,134,225,205,25,132,33,203,252,202,105,129,53,242,106,129,62,7,52,231,195 22DATA24,131,183,192,29,201,225,205,13,66,50,180,250,195,147,81,205,228,131,50,202,252,205,201,134,14,1,205,101,132,14,42,202,67,136,205,13,133,14,2,195,135,129,245,205,250,133,241,50,200,252,205,250,133,58,202,252,183,202,24,131,62,32,6,80,33,200,254 23DATA205,186,78,33,4,33,205,88,66,205,95,136,197,33,9,131,227,216,205,75,132,58,171,252,254,80,208,205,95,136,235,61,250,62,129,202,86,134,205,21,37,1,255,18,33,173,37,17,212,254,205,96,134,33,7,11,205,88,66,42,212,250,229,205,253,129,193,42,214,250,9 24DATA205,253,129,42,216,250,175,195,77,132,33,26,135,205,153,138,205,95,136,218,176,131,61,250,232,31,202,144,31,195,170,31,197,205,128,32,19,254,128,204,206,130,205,22,33,205,7,130,193,160,201,205,151,136,205,135,105,175,103,111,34,89,246,195,87,105,33 25DATA124,129,229,42,196,252,17,165,252,205,148,49,205,21,134,33,55,132,205,69,134,195,218,135,208,32,212,135,113,133,124,129,1,130,73,131,58,34,49,132,123,60,186,216,175,201,33,26,135,205,153,138,205,96,132,202,176,131,195,250,136,123,214,5,208,209,201 26DATA229,213,33,158,249,126,183,250,51,21,53,196,92,135,42,171,252,17,68,79,235,34,171,252,223,202,159,130,123,254,32,194,248,137,205,21,134,205,96,132,209,225,229,213,87,1,6,1,5,9,175,119,50,159,249,123,15,179,238,2,230,3,95,61,61,122,33,107,135,229 27DATA250,226,130,202,110,129,183,202,242,137,201,205,251,5,235,19,42,194,252,195,4,33,205,250,133,205,63,132,195,178,138,183,200,213,205,250,136,205,96,132,209,201,233,80,83,84,34,33,159,249,195,193,23,214,48,192,29,35,205,51,76,254,58,192,51,51,62,9 28DATA183,201,62,255,6,10,33,101,251,205,186,78,46,6,205,186,69,58,200,252,33,1,5,43,148,44,210,31,131,132,60,135,135,135,103,195,88,66,33,153,134,205,138,39,33,37,129,205,75,134,1,1,6,13,195,128,132,205,223,137,71,205,223,137,79,201,183,200,33,204,135 29DATA205,69,134,33,158,249,17,1,249,58,202,252,183,194,98,131,22,9,54,1,35,175,205,200,76,205,46,78,218,182,137,17,103,131,33,151,137,213,229,254,13,200,254,10,200,254,32,208,246,64,71,62,94,205,151,137,120,201,125,130,46,138,155,132,31,135,242,130,229 30DATA205,122,27,205,242,110,202,147,131,225,195,240,15,57,56,78,49,68,82,65,77,32,68,73,82,34,14,11,33,14,8,17,14,9,209,33,222,38,175,71,195,11,138,17,174,252,33,221,252,62,6,205,109,87,54,46,35,205,107,87,6,15,62,32,195,186,78,58,20,253,46,1,45,103,16 31DATA205,72,132,195,127,137,205,101,135,205,13,66,205,27,66,62,20,50,203,252,175,50,201,252,50,200,252,50,180,250,42,121,251,34,127,246,225,205,8,63,229,209,27,27,27,213,233,18,18,7,18,18,18,23,18,52,23,57,55,58,200,252,38,1,37,111,41,41,41,1,7,254,9 32DATA126,1,249,255,9,238,187,254,32,201,205,240,136,195,164,84,27,89,36,32,83,97,118,34,33,200,252,52,58,201,252,190,201,62,48,17,62,32,245,205,69,128,241,6,6,245,205,69,66,205,169,27,241,231,195,74,66,205,190,131,175,79,97,46,70,34,245,252,1,26,1,5,205 33DATA177,133,205,140,136,202,138,132,167,201,50,221,252,1,1,1,205,177,133,229,205,140,136,225,183,200,33,250,137,229,1,4,240,160,15,15,15,15,145,185,208,79,201,241,245,1,245,20,197,254,26,200,205,68,23,214,127,192,14,3,8,119,9,14,128,6,4,205,180,133,195 34DATA131,132,175,48,205,223,137,47,186,225,194,233,137,75,201,205,151,136,205,254,65,33,220,132,34,89,246,33,42,91,205,135,87,175,50,87,246,196,5,66,205,91,90,33,29,91,205,138,39,205,242,69,215,17,114,129,213,200,205,222,33,209,229,175,103,111,34,238 35DATA246,60,235,195,121,92,89,129,98,130,3,139,119,130,88,136,98,130,6,6,205,169,27,205,205,64,220,48,52,126,246,32,231,62,32,231,35,126,245,33,201,252,126,52,205,248,138,241,119,35,58,19,253,119,35,58,18,253,119,201,62,13,254,47,205,58,107,219,187,230 36DATA32,200,195,233,137,58,198,252,183,200,229,33,237,128,205,158,84,225,205,146,131,254,79,200,227,254,82,200,227,209,254,83,200,213,205,5,66,195,83,133,32,45,45,157,45,45,32,32,183,200,213,58,200,252,245,205,90,129,42,200,252,235,205,98,130,202,138 37DATA133,33,120,133,229,245,205,250,133,241,202,138,133,50,200,252,205,250,133,195,24,131,205,117,104,218,236,137,197,229,175,119,35,11,120,177,194,162,133,34,194,252,225,193,201,33,221,252,197,1,90,90,205,51,128,193,205,51,128,120,129,87,12,122,13,202 38DATA58,133,134,87,126,35,205,59,133,195,195,133,58,198,252,183,200,33,13,135,205,191,137,205,242,69,218,239,137,215,200,205,210,33,229,33,248,137,34,89,246,225,205,193,75,42,180,252,34,171,252,201,205,23,129,205,25,132,6,7,196,250,86,17,165,252,205,24 39DATA37,205,239,15,18,19,205,245,138,126,18,33,174,252,195,25,34,205,92,135,205,228,131,47,50,202,252,50,199,250,205,22,33,33,196,249,1,8,1,5,9,126,35,35,35,60,14,20,202,67,136,229,252,13,133,225,195,46,134,205,191,137,33,43,129,205,32,137,195,254,65,76 40DATA111,97,100,34,14,26,17,175,79,6,80,17,200,254,126,35,185,200,254,13,194,107,134,62,143,254,32,210,114,134,62,32,18,19,5,200,195,96,134,245,213,229,71,58,95,246,183,120,204,250,74,33,108,255,126,35,166,214,3,194,149,134,43,119,205,110,82,225,209,241 41DATA201,7,12,73,110,115,101,114,116,32,98,108,97,110,107,32,100,105,115,107,10,10,67,65,85,84,73,79,78,13,10,70,111,114,109,97,116,32,107,105,108,108,115,32,68,83,75,7,34,205,236,134,219,187,230,32,14,7,194,250,137,1,1,7,13,205,177,133,205,233,134,205 42DATA140,136,200,1,49,77,205,51,128,205,55,133,38,46,43,124,181,194,238,134,201,73,79,87,80,76,83,78,73,72,84,67,79,65,66,78,82,78,70,70,69,68,70,66,78,27,89,37,32,102,105,108,101,110,97,109,101,34,75,105,108,108,34,229,56,8,237,17,103,24,223,194,48,135 43DATA33,40,128,56,8,217,225,235,33,159,249,205,143,24,235,205,84,23,230,127,194,75,135,205,178,136,175,71,9,54,26,8,175,79,9,126,254,26,55,63,194,62,78,50,159,249,63,195,62,78,33,98,246,17,205,252,205,148,49,33,159,131,195,243,136,123,205,122,132,209 44DATA225,123,254,8,194,233,20,30,2,195,233,20,33,224,136,58,202,252,183,196,97,138,34,192,252,205,159,129,205,135,112,205,122,27,205,99,137,205,242,110,202,143,135,42,192,252,6,1,5,79,254,8,17,140,135,58,201,252,218,19,93,183,200,121,254,13,202,60,137 45DATA213,17,1,133,214,27,254,6,210,5,66,79,33,151,129,229,42,200,252,235,195,19,93,12,27,87,76,105,115,116,34,33,59,132,205,153,138,205,36,34,205,210,133,205,36,34,205,96,132,202,245,135,33,218,135,205,70,133,205,250,136,205,96,132,62,1,205,122,132,205 46DATA95,136,218,176,131,235,121,176,202,179,131,175,95,121,214,128,79,120,155,71,245,197,121,218,22,136,175,198,128,79,205,177,132,193,241,218,37,136,177,194,6,136,1,1,2,13,195,128,132,175,71,197,205,240,136,193,33,157,249,126,112,183,194,23,130,35,126 47DATA112,35,112,183,201,58,201,252,145,47,79,13,202,124,135,33,105,133,6,8,205,169,27,195,73,136,123,198,5,186,216,209,201,205,128,32,229,235,23,183,23,245,7,95,241,123,143,245,229,17,121,136,213,210,117,33,209,225,229,209,241,245,6,1,5,79,9,43,43,125 48DATA147,79,124,154,71,241,225,201,33,249,252,205,1,137,120,254,18,126,201,205,13,66,33,34,139,6,38,62,234,231,205,84,132,175,111,14,192,205,125,86,205,254,65,195,92,123,1,1,3,13,205,180,133,205,143,136,192,254,48,194,138,132,175,79,201,58,199,252,50 49DATA201,252,61,205,27,131,205,11,69,6,40,33,76,251,205,185,78,50,200,252,195,181,69,124,129,81,128,113,133,30,134,104,130,73,131,45,131,49,132,33,204,252,215,212,48,52,195,200,23,1,1,5,13,195,128,132,229,205,10,115,205,64,131,89,120,129,12,87,13,202 50DATA185,132,205,223,137,119,35,130,195,12,137,233,70,82,69,32,34,205,138,39,205,146,131,214,65,50,198,252,200,254,24,200,254,13,209,225,200,229,213,205,5,66,195,35,137,58,202,252,60,50,198,252,202,79,137,205,87,128,183,192,33,57,130,227,205,95,136,218 51DATA5,66,61,194,46,86,35,35,35,34,196,252,235,195,244,132,58,202,252,183,192,58,201,252,183,200,205,24,128,175,119,205,25,132,17,213,252,205,148,49,33,11,129,229,205,23,129,62,8,231,205,13,128,218,214,131,205,245,138,205,238,87,205,75,132,195,127,137 52DATA79,58,198,252,183,121,205,97,75,204,11,75,205,242,110,200,254,27,202,181,137,205,242,110,202,172,137,254,27,192,225,205,244,78,33,169,131,195,44,92,205,138,39,62,74,205,76,66,17,165,252,205,193,131,33,221,252,62,234,231,6,9,205,84,132,33,239,137,34 53DATA89,246,201,205,62,133,205,134,106,218,239,137,200,14,5,33,14,2,17,14,6,42,14,8,58,14,10,33,14,11,205,44,136,33,13,132,9,94,194,100,4,17,30,134,33,165,131,213,229,197,205,244,78,33,7,1,205,88,66,205,11,69,193,33,244,134,9,9,215,231,215,231,33,241,3 54DATA205,99,87,225,195,44,92,58,158,249,183,202,66,138,205,53,23,196,177,132,1,1,2,13,205,128,132,205,44,136,195,15,77,42,194,251,205,154,133,34,194,251,40,2,227,1,6,1,5,8,217,9,227,62,160,195,179,128,33,33,139,205,158,84,62,128,42,139,249,205,59,128,33 55DATA237,130,205,138,39,62,192,42,150,249,205,59,128,33,8,128,205,138,39,42,244,245,205,65,128,33,26,137,205,138,39,205,92,123,62,32,231,33,82,130,201,209,183,200,213,229,205,189,138,33,5,1,205,88,66,225,205,138,39,33,34,129,205,32,137,61,225,200,229,17 56DATA217,130,213,229,195,250,133,58,203,252,254,20,204,90,129,33,255,255,34,199,252,33,199,252,52,126,205,28,132,235,205,63,132,202,197,136,205,25,132,194,212,138,205,148,49,62,32,27,18,205,245,138,94,58,199,252,205,248,138,115,195,203,138,58,200,252,79 57DATA135,129,79,175,71,33,93,253,9,201,123,61,240,122,61,240,60,201,51,51,229,213,245,17,4,1,21,25,126,254,9,194,213,80,17,136,131,195,227,80,32,68,73,83,75,32,80,79,87,69,82,32,75,56,53,32,49,46,48,32,171,49,57,56,55,32,72,117,103,111,32,70,101,114,114 58DATA101,121,114,97,27,89,39,32,66,65,83,0,0,0,253 \ No newline at end of file +0'Disk Power KC-85 loader - 2022 b.kenyon.w@gmail.com 0CLEAR0,59072:A=59072:S=0:N$="Disk Power KC-85":CLS:?"Loading "N$" installer..."; 1D$="":READD$:FORI=1TOLEN(D$)STEP2:B=((ASC(MID$(D$,I,1))-65)*16)+(ASC(MID$(D$,I+1,1))-65):POKEA,B:A=A+1:S=S+B:NEXT:?".";:IFA<62955THEN1 2IFS<>472368THEN?"Bad Checksum":END 3CLS:?"Connect TPDD drive and insert the":?N$" install disk.":LINE INPUT "Press [ENTER] when ready ";A$:CLS:CALL59343 4DATAAMBLHACAFEGPGPCAGNGBGOHJCAGGGJGMGFHDCABLHBAAIBAAAAMDBLIGMNEBOKBBAAPPNIHHNPMKFPOJCDMDNMOGBBDLOLCBDJOKMNGNOJMNGDFHOLMDKIFICBCJOHABAHAALAMKAHOHAJNHDCOAOHNHDCCBOIDCCDOIDCCFOINHDCGCOINHDCHPOINHDCMLOINHDCDJOLNHDCMJOJMJDNCDMBMFKPKPCDDMCLOBOFKHKHCL 5DATAOFMNLNCANBEBMDECDEAHANAKGGGPHCCAHEGIGFCAGJGOHDHEGBGMGMGBHEGJGPGOCAHAHCGPGDGFHDHDANAKHAGMGFGBHDGFCAGLGJGMGMCAHDGPGNGFCAGGGJGMGFHDCAGBGOGECAHEHCHJCAGBGHGBGJGOAAFFFFAHAPPIHOMNABOKCDAFMCIMOHMJAMBLHACAFFGOGFHIHAGFGDHEGFGEAACBGCPGBBAAPPMNJEDBCBGH 6DATAOJMDDLOJCBOJOIMDFGOKAMBLHACAEDGPGNGNHFGOGJGDGBHEGJGPGOAAECDOACABCNAACBAHOKOFMNGDFHDCJPPJDMMMPMOGAIHHCBIHOLBBKFPMMNBICFMNFKCACKMEPLMEDAOLABAHAMAJBBAAAAOLDJNPNKLEOHCBFDOKCCFJPGCBKLPJOFHOLHMEDIOHOBDGPOBBMMPJABALAAAJNPNKAKOIMCNMOHAIHHAIHHAIHHAM 7DATAHJOFCBPBOJAMCDCDIBNKCNOICCFJPGPFMNKHOJBBIAOJMBOBMNECDEOFCKMEPLAGAOMNECDEMNIDBCMNIACAMEKKBPMNBGCBFMGFGLKLIHDNIHBNEHELAIABFBALMNHFGIKPFHFPOLCFCFMKGNOIOFMNAOCBOBEEMNBKCFNFABDHAEAIOLNJCBJHOLABFDAKNBMNODGIABAGAAAJCCPEPFCBBLIGBBOBPENJNBOBMNJEDBNF 8DATACBNGOGBBACIAMNBICFABALAACBBAPLBBBCOJDOAEPFBDPFMNGNFHPBIFGPPBMNGNFHOFONODCIAIOBNJMGLAOBAIHHMNBGCBBBACOJCBGBPIDOBAMNGNFHGHGMCCJNPJMNNACAMNNLHLMDGNOJAMBLHACAEOGPHECAGFGOGPHFGHGICAGNGFGNGPHCHJCABLHBAAFEGFHCGNBIEDEBEMEMDDDDDBDDDIANCAICPIICALILCK 9DATAICMGIEHJIGIEAGAAMFMNFFOJMNHFGKMBMCNMOGAFMCCAOJMDDCOJCBECOJMDGCOJCBPPPONHNEDADEMDMIBHAMBLHACAEEGJHDGLCAEOGPHECAFCGFGBGEHJAAABAADAALHJLAMIMDFIOJCBLKOHBBGPOKMDPCOGDJDIEODBEEOFNFCBMMOHAGADMNIMOHMNFFOJMNDIOJNBOBMJLAPNPPEBEEEEFCFDFDCAAALAPOPPFDED 10DATAEIEFEEEMCAAAAAAAIAABPOABAAMDHDFIABPOABAAMDHKFIMNKFOHCBIHOHAGAFMNIMOHMNFFOJCBAAPOOFCBDKOKAGAHMNIMOHOFMNFFOJABACAAOBAIDFOFCBAIPPMNBOOJDKAOPPPODEMCFPOJDOACMNABOKMNFFOJOBDODILOOBPFMNBOOJPBOFMCLJOJMDODEPCBJGOHMDGCOJCBAAIALAMEFMOKCBMNGCOKMDDKGLEE 11DATAFAELDIDFCOFDFJCACAEJGOHDHEGBGMGMGBHEGJGPGOCAGJGOCAHAHCGPGHHCGFHDHDBLFJCECJFAGMGFGBHDGFCAFHEBEJFECOAAFNDPDGCDDPDMACMNGCOKMNHFGKDHMIMNIGGKNKOMOGMCFPOJMJCBMAOGBBEBOHMDPFOGMNPJOJKJEPAGEPNLLLOGCAMCDCOJDOAPKJEPMJCAGFHCHCGPHCCABLHBANAKAHEDGIGFGDGL 12DATACAHJGPHFHCCAGDGBGCGMGFHDCAGBGOGECAGEHCGJHGGFCOANAKEJGGCAHAHCGPGCGMGFGNCAHAGFHCHDGJHDHEHDCMCAHJGPHFHCCAGEGJHDHEHCGJGCHFHEGJGPGOANAKGEGJHDGLCAGNGBHJCAGCGFCAGEGBGNGBGHGFGECMCAGPHCCAHJGPHFCAGBHCGFCAHEHCHJGJGOGHANAKHEGPCAGJGOHDHEGBGMGMCAGGHCGPGN 13DATACAGBCAGOGPGOCNGPHCGJGHGJGOGBGMCAGEGJHDGLANAKBLHACAFAGMGFGBHDGFCAGDGPGOHEGBGDHECAGNGBGOHFGGGBGDHEHFHCGFHCCABLHBAAOFBDBDONCIAGNFMBOBAIMJAHAMFAHCGPGDGFHDHDCAGJGOHEGFHCHCHFHAHEGFGECACNCAEDGBGOCHHECAGDGPGOHEGJGOHFGFANAKFEHFHCGOCAEPEGEGCAGBGOGECA 14DATAEPEOCAHJGPHFHCCAGEHCGJHGGFCAGBGOGECAHCHFGOANAKEJFEEMELDIDFCOEDEPCAGBGHGBGJGOAAAAFAILABAALJMDBLIGDGDIDKCBNFPMKPAGAHMNFEIEMDIHHAMNBIIDABPPPJADAJMDFIECGJGOGHCAGGGJGMGFHDCMCAHAHCGPGDGFGFGECACIEBCPFJCPEOCJDPCCCDMNOOFHBDNFMNEFIANHMNFJIGOBNFMFMNLB 15DATABBCBIMPGMBNBMDGAIGOBMNBJIECBMLPMMKGJIBDFPCGKIBDOAHDEOHMDBIIDLHMABNMJOBMNANECDCLEPKMDJDFBMNOEIDDCMKPMMNMJIGAOABMNGFIEAOCKMKEDIIMNANIFAOACMDIHIBPFMNPKIFPBDCMIPMMNPKIFDKMKPMLHMKBIIDDOCAAGFACBMIPOMNLKEOCBAECBMNFIECMNFPIIMFCBAJIDODNIMNELIEDKKLPM 16DATAPOFANAMNFPIIOLDNPKDOIBMKFGIGMNBFCFABPPBCCBKNCFBBNEPOMNGAIGCBAHALMNFIECCKNEPKOFMNPNIBMBCKNGPKAJMNPNIBCKNIPKKPMDENIECBBKIHMNJJIKMNFPIINKLAIDDNPKOIBPMKJABPMDKKBPMFMNIACABDPOIAMMMOICMNBGCBMNAHICMBKAMJMNJHIIMNIHGJKPGHGPCCFJPGMDFHGJCBHMIBOFCKMEPM 17DATABBKFPMMNJEDBMNBFIGCBDHIEMNEFIGMDNKIHNACANEIHHBIFHMIBABICEJIDDKCCDBIEHLDMLKNIKPMJCBBKIHMNJJIKMNGAIEMKLAIDMDPKIIHLNGAFNANBMJOFNFCBJOPJHOLHPKDDBFDFMEFMIHCKKLPMBBEEEPOLCCKLPMNPMKJPICHLPOCAMCPIIJMNBFIGMNGAIENBOBOFNFFHABAGABAFAJKPHHDCJPPJHLAPLDOO 18DATAACOGADFPDNDNHKCBGLIHOFPKOCICMKGOIBLHMKPCIJMJMNPLAFOLBDCKMCPMMDAECBMNPKIFMNDPIEMDLCIKLHMINFMNPKIIMNGAIENBMJOJFAFDFECCCBJPPJMDMBBHNGDAMABNCDMNDDEMPODKMADDDDDOAJLHMJDOPPAGAKCBGFPLMNLKEOCOAGMNLKEFDKMIPMCBABAFCLJECMNCBPIDIEDMIHIHIHGHMDFIECCBJJIG 19DATAMNIKCHCBCFIBMNELIGABABAGANMDIAIEMNNPIJEHMNNPIJEPMJLHMICBMMIHMNEFIGCBJOPJBBABPJDKMKPMLHMCGCIDBGAJDGABCDKPMNMIEMMNCOEONKLGIJBBGHIDCBJHIJNFOFPOANMIPOAKMIPOCANAPGEAEHDOFOMNJHIJHIMJHNICCOIKJLIEBPIHPCICOFMNHKBLMNPCGOMKJDIDOBMDPAAPDJDIEODBEEFCEBEN 20DATACAEEEJFCCCAOALCBAOAIBBAOAJNBCBNOCGKPEHMDALIKBBKOPMCBNNPMDOAGMNGNFHDGCOCDMNGLFHAGAPDOCAMDLKEODKBEPNCOABCNGHBAMNEIIEMDHPIJMNGFIHMNANECMNBLECDOBEDCMLPMKPDCMJPMDCMIPMDCLEPKCKHJPLCCHPPGOBMNAIDPOFNBBLBLBLNFOJBCBCAHBCBCBCBHBCDEBHDJDHDKMIPMCGABCFGP 21DATACJCJCJABAHPOAJHOABPJPPAJOOLLPOCAMJMNPAIIMDKEFEBLFJCECAFDGBHGCCCBMIPMDEDKMJPMLOMJDODABBDOCAPFMNEFIAPBAGAGPFMNEFECMNKJBLPBOHMDEKECMNLOIDKPEPGBCOEGCCPFPMABBKABAFMNLBIFMNIMIIMKIKIEKHMJDCNNPMABABABMNLBIFOFMNIMIIOBLHMICBPKIJOFABAEPAKAAPAPAPAPJBLJ 22DATANAEPMJPBPFABPFBEMFPOBKMIMNEEBHNGHPMAAOADAIHHAJAOIAAGAEMNLEIFMDIDIEKPDAMNNPIJCPLKOBMCOJIJELMJMNJHIIMNPOEBCBNMIECCFJPGCBCKFLMNIHFHKPDCFHPGMEAFECMNFLFKCBBNFLMNIKCHMNPCEFNHBBHCIBNFMIMNNOCBNBOFKPGHGPCCOOPGDMOLMDHJFMFJIBGCICADILHHICFIIIGCICAGAGMN 23DATAKJBLMNMNEANMDADEHOPGCAOHDOCAOHCDHOPFCBMJPMHODEMNPIIKPBHHCDDKBDPNHHCDDKBCPNHHMJDOANPOCPMNDKGLNLLLOGCAMIMDOJIJDKMGPMLHMIOFCBONIAMNJOFEOBMNJCIDPOEPMIODPOFCMIODNBPOFDMINFMNAFECMDFDIFCACNCNJNCNCNCACALHMINFDKMIPMPFMNFKIBCKMIPMOLMNGCICMKIKIFCBHIIF 24DATAOFPFMNPKIFPBMKIKIFDCMIPMMNPKIFMDBIIDMNHFGINKOMIJMFOFKPHHCDALHILBMCKCIFCCMCPMOBMBMJCBNNPMMFABFKFKMNDDIAMBMNDDIAHIIBFHAMHKANMKDKIFIGFHHOCDMNDLIFMDMDIFDKMGPMLHMICBANIHMNLPIJMNPCEFNKOPIJNHMIMNNCCBOFCBPIIJCCFJPGOBMNMBELCKLEPMCCKLPMMJMNBHIBMNBJIE 25DATAAGAHMEPKFGBBKFPMMNBICFMNOPAPBCBDMNPFIKHOBCCBKOPMMDBJCCMNFMIHMNOEIDCPDCMKPMDCMHPKMNBGCBCBMEPJABAIABAFAJHOCDCDCDDMAOBEMKEDIIOFPMANIFOBMDCOIGMNLPIJCBCLIBMNCAIJMDPOEBEMGPGBGECCAOBKBBKPEPAGFABBMIPOHOCDLJMIPOANMCGLIGDOIPPOCANCHCIGDOCABCBDAFMIMDGA 26DATAIGPFNFOFEHDKFPPGLHHIMMPKEKCBGMPPHOCDKGNGADMCJFIGCLHHMNGOFCOBNBPBMJAHAMEJGOHDGFHCHECAGCGMGBGOGLCAGEGJHDGLAKAKEDEBFFFEEJEPEOANAKEGGPHCGNGBHECAGLGJGMGMHDCAEEFDELAHCCMNOMIGNLLLOGCAAOAHMCPKIJABABAHANMNLBIFMNOJIGMNIMIIMIABDBENMNDDIAMNDHIFCGCOCLHM 27DATALFMCOOIGMJEJEPFHFAEMFDEOEJEIFEEDEPEBECEOFCEOEGEGEFEEEGECEOBLFJCFCAGGGJGMGFGOGBGNGFCCELGJGMGMCCOFDIAIONBBGHBINPMCDAIHCBCIIADIAINJOBOLCBJPPJMNIPBIOLMNFEBHOGHPMCELIHMNLCIIKPEHAJDGBKAIKPEPAJHOPOBKDHDPMCDOEODCJPPJDPMDDOEOCBGCPGBBMNPMMNJEDBCBJPID 28DATAMDPDIIHLMNHKIENBOBHLPOAIMCOJBEBOACMDOJBECBOAIIDKMKPMLHMEGBIKCCMAPMMNJPIBMNIHHAMNHKBLMNGDIJMNPCGOMKIPIHCKMAPMAGABAFEPPOAIBBIMIHDKMJPMNKBDFNLHMIHJPOANMKDMIJNFBBABIFNGBLPOAGNCAFECEPCBJHIBOFCKMIPMOLMDBDFNAMBLFHEMGJHDHECCCBDLIEMNJJIKMNCECCMNNCIF 29DATAMNCECCMNGAIEMKPFIHCBNKIHMNEGIFMNPKIIMNGAIEDOABMNHKIEMNFPIINKLAIDOLHJLAMKLDIDKPFPHJNGIAEPHIJLEHPFMFHJNKBGIIKPMGIAEPMNLBIEMBPBNKCFIILBMCAGIIABABACANMDIAIEKPEHMFMNPAIIMBCBJNPJHOHALHMCBHICCDHOHACDHALHMJDKMJPMJBCPEPANMKHMIHCBGJIFAGAIMNKJBLMDEJII 30DATAHLMGAFLKNINBMJMNIACAOFOLBHLHBHPFAHFPPBHLIPPFOFBBHJIINFNCHFCBNBOBOFNBPBPFAGABAFEPAJCLCLHNJDEPHMJKEHPBOBMJCBPJPMMNABIJHIPOBCHOMJMNANECCBCCILAGCGDOOKOHMNFEIEKPGPAOMAMNHNFGMNPOEBMDFMHLABABADANMNLEIFMNIPIIMAPODAMCIKIEKPEPMJDKMHPMDCMJPMDNMNBLIDMN 31DATAALEFAGCICBEMPLMNLJEODCMIPMMDLFEFHMIBFBIAHBIFBOIGGIICEJIDCNIDDBIECBMMPMNHNEDADEMDMIBHABABAFANMDIAIEOFMNAKHDMNEAIDFJHIIBAMFHANMKLJIEMNNPIJHHCDICMDAMIJOJEGFCEFCACCMNIKCHMNJCIDNGEBDCMGPMMIPOBIMIPOANNBOBMIOFNFMNAFECMDCDIJDKMKPMDMDCMGPMMKEPIJMNFH 32DATAIALHMACBDJICODMNFPIINKAFECDNMCCOFGCDCDCDCCMEPMOLMDPEIEDKMKPMLHMADKMJPMLHMIMNBIIAKPHHMNBJIEBBNFPMMNJEDBCBALIBOFMNBHIBDOAIOHMNANIANKNGIDMNPFIKMNOOFHMNELIEMDHPIJEPDKMGPMLHHJMNGBELMMALELMNPCGOMIPOBLMKLFIJMNPCGOMKKMIJPOBLMAOBMNPEEOCBKJIDMDCMFMMN 33DATAIKCHDOEKMNEMECBBKFPMMNMBIDCBNNPMDOOKOHAGAJMNFEIECBOPIJCCFJPGMJMNDOIFMNIGGKNKOPIJMIAOAFCBAOACBBAOAGCKAOAIDKAOAKCBAOALMNCMIICBANIEAJFOMCGEAEBBBOIGCBKFIDNFOFMFMNPEEOCBAHABMNFIECMNALEFMBCBPEIGAJAJNHOHNHOHCBPBADMNGDFHOBMDCMFMDKJOPJLHMKECIKMNDFBH 34DATAMELBIEABABACANMNIAIEMNCMIIMDAPENCKMCPLMNJKIFCCMCPLCIACODABAGABAFAINJAJODDOKAMDLDIACBCBILMNJOFEDOIACKILPJMNDLIACBONICMNIKCHDOMACKJGPJMNDLIACBAIIAMNIKCHCKPEPFMNEBIACBBKIJMNIKCHMNFMHLDOCAOHCBFCICMJNBLHMINFOFMNLNIKCBAFABMNFIECOBMNIKCHCBCCIBMNCA 35DATAIJDNOBMIOFBBNJICNFOFMDPKIFDKMLPMPOBEMMFKIBCBPPPPCCMHPMCBMHPMDEHOMNBMIEOLMNDPIEMKMFIIMNBJIEMCNEIKMNJEDBDOCABLBCMNPFIKFODKMHPMMNPIIKHDMDMLIKDKMIPMEPIHIBEPKPEHCBFNPNAJMJHLDNPAHKDNPADMMJDDDDOFNFPFBBAEABBFBJHOPOAJMCNFFABBIIIDMDODFACAEEEJFDELCAFA 36DATAEPFHEFFCCAELDIDFCADBCODACAKLDBDJDIDHCAEIHFGHGPCAEGGFHCHCGFHJHCGBBLFJCHCAECEBFDAAAAAAPN \ No newline at end of file From f8f32d9a766e1e20f3401dd96948f0689b6fb309 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 8 Jul 2022 07:23:42 -0400 Subject: [PATCH 083/206] disk power loader & directions --- clients/disk_power/Disk_Power.K85 | 2 +- .../Disk_Power.K85.post-install.txt | 4 ++-- clients/disk_power/Disk_Power.txt | 23 ++++++++----------- 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/clients/disk_power/Disk_Power.K85 b/clients/disk_power/Disk_Power.K85 index 138e18a..3cfb2f2 100644 --- a/clients/disk_power/Disk_Power.K85 +++ b/clients/disk_power/Disk_Power.K85 @@ -1 +1 @@ -0'Disk Power KC-85 loader - 2022 b.kenyon.w@gmail.com 0CLEAR0,59072:A=59072:S=0:N$="Disk Power KC-85":CLS:?"Loading "N$" installer..."; 1D$="":READD$:FORI=1TOLEN(D$)STEP2:B=((ASC(MID$(D$,I,1))-65)*16)+(ASC(MID$(D$,I+1,1))-65):POKEA,B:A=A+1:S=S+B:NEXT:?".";:IFA<62955THEN1 2IFS<>472368THEN?"Bad Checksum":END 3CLS:?"Connect TPDD drive and insert the":?N$" install disk.":LINE INPUT "Press [ENTER] when ready ";A$:CLS:CALL59343 4DATAAMBLHACAFEGPGPCAGNGBGOHJCAGGGJGMGFHDCABLHBAAIBAAAAMDBLIGMNEBOKBBAAPPNIHHNPMKFPOJCDMDNMOGBBDLOLCBDJOKMNGNOJMNGDFHOLMDKIFICBCJOHABAHAALAMKAHOHAJNHDCOAOHNHDCCBOIDCCDOIDCCFOINHDCGCOINHDCHPOINHDCMLOINHDCDJOLNHDCMJOJMJDNCDMBMFKPKPCDDMCLOBOFKHKHCL 5DATAOFMNLNCANBEBMDECDEAHANAKGGGPHCCAHEGIGFCAGJGOHDHEGBGMGMGBHEGJGPGOCAHAHCGPGDGFHDHDANAKHAGMGFGBHDGFCAGLGJGMGMCAHDGPGNGFCAGGGJGMGFHDCAGBGOGECAHEHCHJCAGBGHGBGJGOAAFFFFAHAPPIHOMNABOKCDAFMCIMOHMJAMBLHACAFFGOGFHIHAGFGDHEGFGEAACBGCPGBBAAPPMNJEDBCBGH 6DATAOJMDDLOJCBOJOIMDFGOKAMBLHACAEDGPGNGNHFGOGJGDGBHEGJGPGOAAECDOACABCNAACBAHOKOFMNGDFHDCJPPJDMMMPMOGAIHHCBIHOLBBKFPMMNBICFMNFKCACKMEPLMEDAOLABAHAMAJBBAAAAOLDJNPNKLEOHCBFDOKCCFJPGCBKLPJOFHOLHMEDIOHOBDGPOBBMMPJABALAAAJNPNKAKOIMCNMOHAIHHAIHHAIHHAM 7DATAHJOFCBPBOJAMCDCDIBNKCNOICCFJPGPFMNKHOJBBIAOJMBOBMNECDEOFCKMEPLAGAOMNECDEMNIDBCMNIACAMEKKBPMNBGCBFMGFGLKLIHDNIHBNEHELAIABFBALMNHFGIKPFHFPOLCFCFMKGNOIOFMNAOCBOBEEMNBKCFNFABDHAEAIOLNJCBJHOLABFDAKNBMNODGIABAGAAAJCCPEPFCBBLIGBBOBPENJNBOBMNJEDBNF 8DATACBNGOGBBACIAMNBICFABALAACBBAPLBBBCOJDOAEPFBDPFMNGNFHPBIFGPPBMNGNFHOFONODCIAIOBNJMGLAOBAIHHMNBGCBBBACOJCBGBPIDOBAMNGNFHGHGMCCJNPJMNNACAMNNLHLMDGNOJAMBLHACAEOGPHECAGFGOGPHFGHGICAGNGFGNGPHCHJCABLHBAAFEGFHCGNBIEDEBEMEMDDDDDBDDDIANCAICPIICALILCK 9DATAICMGIEHJIGIEAGAAMFMNFFOJMNHFGKMBMCNMOGAFMCCAOJMDDCOJCBECOJMDGCOJCBPPPONHNEDADEMDMIBHAMBLHACAEEGJHDGLCAEOGPHECAFCGFGBGEHJAAABAADAALHJLAMIMDFIOJCBLKOHBBGPOKMDPCOGDJDIEODBEEOFNFCBMMOHAGADMNIMOHMNFFOJMNDIOJNBOBMJLAPNPPEBEEEEFCFDFDCAAALAPOPPFDED 10DATAEIEFEEEMCAAAAAAAIAABPOABAAMDHDFIABPOABAAMDHKFIMNKFOHCBIHOHAGAFMNIMOHMNFFOJCBAAPOOFCBDKOKAGAHMNIMOHOFMNFFOJABACAAOBAIDFOFCBAIPPMNBOOJDKAOPPPODEMCFPOJDOACMNABOKMNFFOJOBDODILOOBPFMNBOOJPBOFMCLJOJMDODEPCBJGOHMDGCOJCBAAIALAMEFMOKCBMNGCOKMDDKGLEE 11DATAFAELDIDFCOFDFJCACAEJGOHDHEGBGMGMGBHEGJGPGOCAGJGOCAHAHCGPGHHCGFHDHDBLFJCECJFAGMGFGBHDGFCAFHEBEJFECOAAFNDPDGCDDPDMACMNGCOKMNHFGKDHMIMNIGGKNKOMOGMCFPOJMJCBMAOGBBEBOHMDPFOGMNPJOJKJEPAGEPNLLLOGCAMCDCOJDOAPKJEPMJCAGFHCHCGPHCCABLHBANAKAHEDGIGFGDGL 12DATACAHJGPHFHCCAGDGBGCGMGFHDCAGBGOGECAGEHCGJHGGFCOANAKEJGGCAHAHCGPGCGMGFGNCAHAGFHCHDGJHDHEHDCMCAHJGPHFHCCAGEGJHDHEHCGJGCHFHEGJGPGOANAKGEGJHDGLCAGNGBHJCAGCGFCAGEGBGNGBGHGFGECMCAGPHCCAHJGPHFCAGBHCGFCAHEHCHJGJGOGHANAKHEGPCAGJGOHDHEGBGMGMCAGGHCGPGN 13DATACAGBCAGOGPGOCNGPHCGJGHGJGOGBGMCAGEGJHDGLANAKBLHACAFAGMGFGBHDGFCAGDGPGOHEGBGDHECAGNGBGOHFGGGBGDHEHFHCGFHCCABLHBAAOFBDBDONCIAGNFMBOBAIMJAHAMFAHCGPGDGFHDHDCAGJGOHEGFHCHCHFHAHEGFGECACNCAEDGBGOCHHECAGDGPGOHEGJGOHFGFANAKFEHFHCGOCAEPEGEGCAGBGOGECA 14DATAEPEOCAHJGPHFHCCAGEHCGJHGGFCAGBGOGECAHCHFGOANAKEJFEEMELDIDFCOEDEPCAGBGHGBGJGOAAAAFAILABAALJMDBLIGDGDIDKCBNFPMKPAGAHMNFEIEMDIHHAMNBIIDABPPPJADAJMDFIECGJGOGHCAGGGJGMGFHDCMCAHAHCGPGDGFGFGECACIEBCPFJCPEOCJDPCCCDMNOOFHBDNFMNEFIANHMNFJIGOBNFMFMNLB 15DATABBCBIMPGMBNBMDGAIGOBMNBJIECBMLPMMKGJIBDFPCGKIBDOAHDEOHMDBIIDLHMABNMJOBMNANECDCLEPKMDJDFBMNOEIDDCMKPMMNMJIGAOABMNGFIEAOCKMKEDIIMNANIFAOACMDIHIBPFMNPKIFPBDCMIPMMNPKIFDKMKPMLHMKBIIDDOCAAGFACBMIPOMNLKEOCBAECBMNFIECMNFPIIMFCBAJIDODNIMNELIEDKKLPM 16DATAPOFANAMNFPIIOLDNPKDOIBMKFGIGMNBFCFABPPBCCBKNCFBBNEPOMNGAIGCBAHALMNFIECCKNEPKOFMNPNIBMBCKNGPKAJMNPNIBCKNIPKKPMDENIECBBKIHMNJJIKMNFPIINKLAIDDNPKOIBPMKJABPMDKKBPMFMNIACABDPOIAMMMOICMNBGCBMNAHICMBKAMJMNJHIIMNIHGJKPGHGPCCFJPGMDFHGJCBHMIBOFCKMEPM 17DATABBKFPMMNJEDBMNBFIGCBDHIEMNEFIGMDNKIHNACANEIHHBIFHMIBABICEJIDDKCCDBIEHLDMLKNIKPMJCBBKIHMNJJIKMNGAIEMKLAIDMDPKIIHLNGAFNANBMJOFNFCBJOPJHOLHPKDDBFDFMEFMIHCKKLPMBBEEEPOLCCKLPMNPMKJPICHLPOCAMCPIIJMNBFIGMNGAIENBOBOFNFFHABAGABAFAJKPHHDCJPPJHLAPLDOO 18DATAACOGADFPDNDNHKCBGLIHOFPKOCICMKGOIBLHMKPCIJMJMNPLAFOLBDCKMCPMMDAECBMNPKIFMNDPIEMDLCIKLHMINFMNPKIIMNGAIENBMJOJFAFDFECCCBJPPJMDMBBHNGDAMABNCDMNDDEMPODKMADDDDDOAJLHMJDOPPAGAKCBGFPLMNLKEOCOAGMNLKEFDKMIPMCBABAFCLJECMNCBPIDIEDMIHIHIHGHMDFIECCBJJIG 19DATAMNIKCHCBCFIBMNELIGABABAGANMDIAIEMNNPIJEHMNNPIJEPMJLHMICBMMIHMNEFIGCBJOPJBBABPJDKMKPMLHMCGCIDBGAJDGABCDKPMNMIEMMNCOEONKLGIJBBGHIDCBJHIJNFOFPOANMIPOAKMIPOCANAPGEAEHDOFOMNJHIJHIMJHNICCOIKJLIEBPIHPCICOFMNHKBLMNPCGOMKJDIDOBMDPAAPDJDIEODBEEFCEBEN 20DATACAEEEJFCCCAOALCBAOAIBBAOAJNBCBNOCGKPEHMDALIKBBKOPMCBNNPMDOAGMNGNFHDGCOCDMNGLFHAGAPDOCAMDLKEODKBEPNCOABCNGHBAMNEIIEMDHPIJMNGFIHMNANECMNBLECDOBEDCMLPMKPDCMJPMDCMIPMDCLEPKCKHJPLCCHPPGOBMNAIDPOFNBBLBLBLNFOJBCBCAHBCBCBCBHBCDEBHDJDHDKMIPMCGABCFGP 21DATACJCJCJABAHPOAJHOABPJPPAJOOLLPOCAMJMNPAIIMDKEFEBLFJCECAFDGBHGCCCBMIPMDEDKMJPMLOMJDODABBDOCAPFMNEFIAPBAGAGPFMNEFECMNKJBLPBOHMDEKECMNLOIDKPEPGBCOEGCCPFPMABBKABAFMNLBIFMNIMIIMKIKIEKHMJDCNNPMABABABMNLBIFOFMNIMIIOBLHMICBPKIJOFABAEPAKAAPAPAPAPJBLJ 22DATANAEPMJPBPFABPFBEMFPOBKMIMNEEBHNGHPMAAOADAIHHAJAOIAAGAEMNLEIFMDIDIEKPDAMNNPIJCPLKOBMCOJIJELMJMNJHIIMNPOEBCBNMIECCFJPGCBCKFLMNIHFHKPDCFHPGMEAFECMNFLFKCBBNFLMNIKCHMNPCEFNHBBHCIBNFMIMNNOCBNBOFKPGHGPCCOOPGDMOLMDHJFMFJIBGCICADILHHICFIIIGCICAGAGMN 23DATAKJBLMNMNEANMDADEHOPGCAOHDOCAOHCDHOPFCBMJPMHODEMNPIIKPBHHCDDKBDPNHHCDDKBCPNHHMJDOANPOCPMNDKGLNLLLOGCAMIMDOJIJDKMGPMLHMIOFCBONIAMNJOFEOBMNJCIDPOEPMIODPOFCMIODNBPOFDMINFMNAFECMDFDIFCACNCNJNCNCNCACALHMINFDKMIPMPFMNFKIBCKMIPMOLMNGCICMKIKIFCBHIIF 24DATAOFPFMNPKIFPBMKIKIFDCMIPMMNPKIFMDBIIDMNHFGINKOMIJMFOFKPHHCDALHILBMCKCIFCCMCPMOBMBMJCBNNPMMFABFKFKMNDDIAMBMNDDIAHIIBFHAMHKANMKDKIFIGFHHOCDMNDLIFMDMDIFDKMGPMLHMICBANIHMNLPIJMNPCEFNKOPIJNHMIMNNCCBOFCBPIIJCCFJPGOBMNMBELCKLEPMCCKLPMMJMNBHIBMNBJIE 25DATAAGAHMEPKFGBBKFPMMNBICFMNOPAPBCBDMNPFIKHOBCCBKOPMMDBJCCMNFMIHMNOEIDCPDCMKPMDCMHPKMNBGCBCBMEPJABAIABAFAJHOCDCDCDDMAOBEMKEDIIOFPMANIFOBMDCOIGMNLPIJCBCLIBMNCAIJMDPOEBEMGPGBGECCAOBKBBKPEPAGFABBMIPOHOCDLJMIPOANMCGLIGDOIPPOCANCHCIGDOCABCBDAFMIMDGA 26DATAIGPFNFOFEHDKFPPGLHHIMMPKEKCBGMPPHOCDKGNGADMCJFIGCLHHMNGOFCOBNBPBMJAHAMEJGOHDGFHCHECAGCGMGBGOGLCAGEGJHDGLAKAKEDEBFFFEEJEPEOANAKEGGPHCGNGBHECAGLGJGMGMHDCAEEFDELAHCCMNOMIGNLLLOGCAAOAHMCPKIJABABAHANMNLBIFMNOJIGMNIMIIMIABDBENMNDDIAMNDHIFCGCOCLHM 27DATALFMCOOIGMJEJEPFHFAEMFDEOEJEIFEEDEPEBECEOFCEOEGEGEFEEEGECEOBLFJCFCAGGGJGMGFGOGBGNGFCCELGJGMGMCCOFDIAIONBBGHBINPMCDAIHCBCIIADIAINJOBOLCBJPPJMNIPBIOLMNFEBHOGHPMCELIHMNLCIIKPEHAJDGBKAIKPEPAJHOPOBKDHDPMCDOEODCJPPJDPMDDOEOCBGCPGBBMNPMMNJEDBCBJPID 28DATAMDPDIIHLMNHKIENBOBHLPOAIMCOJBEBOACMDOJBECBOAIIDKMKPMLHMEGBIKCCMAPMMNJPIBMNIHHAMNHKBLMNGDIJMNPCGOMKIPIHCKMAPMAGABAFEPPOAIBBIMIHDKMJPMNKBDFNLHMIHJPOANMKDMIJNFBBABIFNGBLPOAGNCAFECEPCBJHIBOFCKMIPMOLMDBDFNAMBLFHEMGJHDHECCCBDLIEMNJJIKMNCECCMNNCIF 29DATAMNCECCMNGAIEMKPFIHCBNKIHMNEGIFMNPKIIMNGAIEDOABMNHKIEMNFPIINKLAIDOLHJLAMKLDIDKPFPHJNGIAEPHIJLEHPFMFHJNKBGIIKPMGIAEPMNLBIEMBPBNKCFIILBMCAGIIABABACANMDIAIEKPEHMFMNPAIIMBCBJNPJHOHALHMCBHICCDHOHACDHALHMJDKMJPMJBCPEPANMKHMIHCBGJIFAGAIMNKJBLMDEJII 30DATAHLMGAFLKNINBMJMNIACAOFOLBHLHBHPFAHFPPBHLIPPFOFBBHJIINFNCHFCBNBOBOFNBPBPFAGABAFEPAJCLCLHNJDEPHMJKEHPBOBMJCBPJPMMNABIJHIPOBCHOMJMNANECCBCCILAGCGDOOKOHMNFEIEKPGPAOMAMNHNFGMNPOEBMDFMHLABABADANMNLEIFMNIPIIMAPODAMCIKIEKPEPMJDKMHPMDCMJPMDNMNBLIDMN 31DATAALEFAGCICBEMPLMNLJEODCMIPMMDLFEFHMIBFBIAHBIFBOIGGIICEJIDCNIDDBIECBMMPMNHNEDADEMDMIBHABABAFANMDIAIEOFMNAKHDMNEAIDFJHIIBAMFHANMKLJIEMNNPIJHHCDICMDAMIJOJEGFCEFCACCMNIKCHMNJCIDNGEBDCMGPMMIPOBIMIPOANNBOBMIOFNFMNAFECMDCDIJDKMKPMDMDCMGPMMKEPIJMNFH 32DATAIALHMACBDJICODMNFPIINKAFECDNMCCOFGCDCDCDCCMEPMOLMDPEIEDKMKPMLHMADKMJPMLHMIMNBIIAKPHHMNBJIEBBNFPMMNJEDBCBALIBOFMNBHIBDOAIOHMNANIANKNGIDMNPFIKMNOOFHMNELIEMDHPIJEPDKMGPMLHHJMNGBELMMALELMNPCGOMIPOBLMKLFIJMNPCGOMKKMIJPOBLMAOBMNPEEOCBKJIDMDCMFMMN 33DATAIKCHDOEKMNEMECBBKFPMMNMBIDCBNNPMDOOKOHAGAJMNFEIECBOPIJCCFJPGMJMNDOIFMNIGGKNKOPIJMIAOAFCBAOACBBAOAGCKAOAIDKAOAKCBAOALMNCMIICBANIEAJFOMCGEAEBBBOIGCBKFIDNFOFMFMNPEEOCBAHABMNFIECMNALEFMBCBPEIGAJAJNHOHNHOHCBPBADMNGDFHOBMDCMFMDKJOPJLHMKECIKMNDFBH 34DATAMELBIEABABACANMNIAIEMNCMIIMDAPENCKMCPLMNJKIFCCMCPLCIACODABAGABAFAINJAJODDOKAMDLDIACBCBILMNJOFEDOIACKILPJMNDLIACBONICMNIKCHDOMACKJGPJMNDLIACBAIIAMNIKCHCKPEPFMNEBIACBBKIJMNIKCHMNFMHLDOCAOHCBFCICMJNBLHMINFOFMNLNIKCBAFABMNFIECOBMNIKCHCBCCIBMNCA 35DATAIJDNOBMIOFBBNJICNFOFMDPKIFDKMLPMPOBEMMFKIBCBPPPPCCMHPMCBMHPMDEHOMNBMIEOLMNDPIEMKMFIIMNBJIEMCNEIKMNJEDBDOCABLBCMNPFIKFODKMHPMMNPIIKHDMDMLIKDKMIPMEPIHIBEPKPEHCBFNPNAJMJHLDNPAHKDNPADMMJDDDDOFNFPFBBAEABBFBJHOPOAJMCNFFABBIIIDMDODFACAEEEJFDELCAFA 36DATAEPFHEFFCCAELDIDFCADBCODACAKLDBDJDIDHCAEIHFGHGPCAEGGFHCHCGFHJHCGBBLFJCHCAECEBFDAAAAAAPN \ No newline at end of file +0'Disk Power KC-85 loader - 2022 b.kenyon.w@gmail.com 0CLEAR0,59072:A=59072:S=0:N$="Disk Power KC-85":CLS:?"Loading "N$" installer..."; 1D$="":READD$:FORI=1TOLEN(D$)STEP2:B=(ASC(MID$(D$,I,1))-97)*16+ASC(MID$(D$,I+1,1))-97:POKEA,B:A=A+1:S=S+B:NEXT:?".";:IFA<62955THEN1 2IFS<>472368THEN?"Bad Checksum":END 3CLS:?"Connect TPDD drive and insert the":?N$" install disk.":LINE INPUT "Press [ENTER] when ready ";A$:CLS:CALL59343 4DATAamblhacafegpgpcagngbgohjcagggjgmgfhdcablhbaaibaaaamdbligmnebokbbaappnihhnpmkfpojcdmdnmogbbdlolcbdjokmngnojmngdfholmdkificbcjohabahaalamkahohajnhdcoaohnhdccboidccdoidccfoinhdcgcoinhdchpoinhdcmloinhdcdjolnhdcmjojmjdncdmbmfkpkpcddmclobofkhkhcl 5DATAofmnlncanbebmdecdeahanakgggphccahegigfcagjgohdhegbgmgmgbhegjgpgocahahcgpgdgfhdhdanakhagmgfgbhdgfcaglgjgmgmcahdgpgngfcagggjgmgfhdcagbgogecahehchjcagbghgbgjgoaaffffahappihomnabokcdafmcimohmjamblhacaffgogfhihagfgdhegfgeaacbgcpgbbaappmnjedbcbgh 6DATAojmddlojcbojoimdfgokamblhacaedgpgngnhfgogjgdgbhegjgpgoaaecdoacabcnaacbahokofmngdfhdcjppjdmmmpmogaihhcbiholbbkfpmmnbicfmnfkcackmeplmedaolabahamajbbaaaaoldjnpnkleohcbfdokccfjpgcbklpjofholhmediohobdgpobbmmpjabalaaajnpnkakoimcnmohaihhaihhaihham 7DATAhjofcbpbojamcdcdibnkcnoiccfjpgpfmnkhojbbiaojmbobmnecdeofckmeplagaomnecdemnidbcmniacamekkbpmnbgcbfmgfglklihdnihbnehelaiabfbalmnhfgikpfhfpolcfcfmkgnoiofmnaocbobeemnbkcfnfabdhaeaiolnjcbjholabfdaknbmnodgiabagaaajccpepfcbbligbbobpenjnbobmnjedbnf 8DATAcbngogbbaciamnbicfabalaacbbaplbbbcojdoaepfbdpfmngnfhpbifgppbmngnfhofonodciaiobnjmglaobaihhmnbgcbbbacojcbgbpidobamngnfhghgmccjnpjmnnacamnnlhlmdgnojamblhacaeogphecagfgogphfghgicagngfgngphchjcablhbaafegfhcgnbiedebememdddddbdddiancaicpiicalilck 9DATAicmgiehjigieagaamfmnffojmnhfgkmbmcnmogafmccaojmddcojcbecojmdgcojcbppponhnedademdmibhamblhacaeegjhdglcaeogphecafcgfgbgehjaaabaadaalhjlamimdfiojcblkohbbgpokmdpcogdjdieodbeeofnfcbmmohagadmnimohmnffojmndiojnbobmjlapnppebeeeefcfdfdcaaalapoppfded 10DATAeiefeeemcaaaaaaaiaabpoabaamdhdfiabpoabaamdhkfimnkfohcbihohagafmnimohmnffojcbaapoofcbdkokagahmnimohofmnffojabacaaobaidfofcbaippmnboojdkaopppodemcfpojdoacmnabokmnffojobdodiloobpfmnboojpbofmcljojmdodepcbjgohmdgcojcbaaialamefmokcbmngcokmddkglee 11DATAfaeldidfcofdfjcacaejgohdhegbgmgmgbhegjgpgocagjgocahahcgpghhcgfhdhdblfjcecjfagmgfgbhdgfcafhebejfecoaafndpdgcddpdmacmngcokmnhfgkdhmimniggknkomogmcfpojmjcbmaogbbebohmdpfogmnpjojkjepagepnlllogcamcdcojdoapkjepmjcagfhchcgphccablhbanakahedgigfgdgl 12DATAcahjgphfhccagdgbgcgmgfhdcagbgogecagehcgjhggfcoanakejggcahahcgpgcgmgfgncahagfhchdgjhdhehdcmcahjgphfhccagegjhdhehcgjgchfhegjgpgoanakgegjhdglcagngbhjcagcgfcagegbgngbghgfgecmcagphccahjgphfcagbhcgfcahehchjgjgoghanakhegpcagjgohdhegbgmgmcagghcgpgn 13DATAcagbcagogpgocngphcgjghgjgogbgmcagegjhdglanakblhacafagmgfgbhdgfcagdgpgohegbgdhecagngbgohfgggbgdhehfhcgfhccablhbaaofbdbdonciagnfmbobaimjahamfahcgpgdgfhdhdcagjgohegfhchchfhahegfgecacncaedgbgochhecagdgpgohegjgohfgfanakfehfhcgocaepegegcagbgogeca 14DATAepeocahjgphfhccagehcgjhggfcagbgogecahchfgoanakejfeemeldidfcoedepcagbghgbgjgoaaaafailabaaljmdbligdgdidkcbnfpmkpagahmnfeiemdihhamnbiidabpppjadajmdfiecgjgoghcagggjgmgfhdcmcahahcgpgdgfgfgecaciebcpfjcpeocjdpcccdmnoofhbdnfmnefianhmnfjigobnfmfmnlb 15DATAbbcbimpgmbnbmdgaigobmnbjiecbmlpmmkgjibdfpcgkibdoahdeohmdbiidlhmabnmjobmnanecdclepkmdjdfbmnoeiddcmkpmmnmjigaoabmngfieaockmkediimnanifaoacmdihibpfmnpkifpbdcmipmmnpkifdkmkpmlhmkbiiddocaagfacbmipomnlkeocbaecbmnfiecmnfpiimfcbajidodnimneliedkklpm 16DATApofanamnfpiioldnpkdoibmkfgigmnbfcfabppbccbkncfbbnepomngaigcbahalmnfieccknepkofmnpnibmbckngpkajmnpnibcknipkkpmdeniecbbkihmnjjikmnfpiinklaiddnpkoibpmkjabpmdkkbpmfmniacabdpoiammmoicmnbgcbmnahicmbkamjmnjhiimnihgjkpghgpccfjpgmdfhgjcbhmibofckmepm 17DATAbbkfpmmnjedbmnbfigcbdhiemnefigmdnkihnacaneihhbifhmibabicejiddkccdbiehldmlknikpmjcbbkihmnjjikmngaiemklaidmdpkiihlngafnanbmjofnfcbjopjholhpkddbfdfmefmihckklpmbbeeepolccklpmnpmkjpichlpocamcpiijmnbfigmngaienbobofnffhabagabafajkphhdcjppjhlapldoo 18DATAacogadfpdndnhkcbglihofpkocicmkgoiblhmkpcijmjmnplafolbdckmcpmmdaecbmnpkifmndpiemdlciklhminfmnpkiimngaienbmjojfafdfecccbjppjmdmbbhngdamabncdmnddempodkmadddddoajlhmjdoppagakcbgfplmnlkeocoagmnlkefdkmipmcbabafcljecmncbpidiedmihihihghmdfieccbjjig 19DATAmnikchcbcfibmneligababaganmdiaiemnnpijehmnnpijepmjlhmicbmmihmnefigcbjopjbbabpjdkmkpmlhmcgcidbgajdgabcdkpmnmiemmncoeonklgijbbghidcbjhijnfofpoanmipoakmipocanapgeaehdofomnjhijhimjhniccoikjliebpihpcicofmnhkblmnpcgomkjdidobmdpaapdjdieodbeefceben 20DATAcaeeejfcccaoalcbaoaibbaoajnbcbnocgkpehmdalikbbkopmcbnnpmdoagmngnfhdgcocdmnglfhagapdocamdlkeodkbepncoabcnghbamneiiemdhpijmngfihmnanecmnblecdobedcmlpmkpdcmjpmdcmipmdclepkckhjplcchppgobmnaidpofnbblblblnfojbcbcahbcbcbcbhbcdebhdjdhdkmipmcgabcfgp 21DATAcjcjcjabahpoajhoabpjppajoollpocamjmnpaiimdkefeblfjcecafdgbhgcccbmipmdedkmjpmlomjdodabbdocapfmnefiapbagagpfmnefecmnkjblpbohmdekecmnloidkpepgbcoegccpfpmabbkabafmnlbifmnimiimkikiekhmjdcnnpmabababmnlbifofmnimiioblhmicbpkijofabaepakaapapapapjblj 22DATAnaepmjpbpfabpfbemfpobkmimneebhnghpmaaoadaihhajaoiaagaemnleifmdidiekpdamnnpijcplkobmcojijelmjmnjhiimnpoebcbnmieccfjpgcbckflmnihfhkpdcfhpgmeafecmnflfkcbbnflmnikchmnpcefnhbbhcibnfmimnnocbnbofkpghgpccoopgdmolmdhjfmfjibgcicadilhhicfiiigcicagagmn 23DATAkjblmnmneanmdadehopgcaohdocaohcdhopfcbmjpmhodemnpiikpbhhcddkbdpnhhcddkbcpnhhmjdoanpocpmndkglnlllogcamimdojijdkmgpmlhmiofcboniamnjofeobmnjcidpoepmiodpofcmiodnbpofdminfmnafecmdfdifcacncnjncncncacalhminfdkmipmpfmnfkibckmipmolmngcicmkikifcbhiif 24DATAofpfmnpkifpbmkikifdcmipmmnpkifmdbiidmnhfginkomijmfofkphhcdalhilbmckcifccmcpmobmbmjcbnnpmmfabfkfkmnddiambmnddiahiibfhamhkanmkdkifigfhhocdmndlifmdmdifdkmgpmlhmicbanihmnlpijmnpcefnkopijnhmimnnccbofcbpiijccfjpgobmnmbelcklepmccklpmmjmnbhibmnbjie 25DATAagahmepkfgbbkfpmmnbicfmnopapbcbdmnpfikhobccbkopmmdbjccmnfmihmnoeidcpdcmkpmdcmhpkmnbgcbcbmepjabaiabafajhocdcdcddmaobemkediiofpmanifobmdcoigmnlpijcbclibmncaijmdpoebemgpgbgeccaobkbbkpepagfabbmipohocdljmipoanmcgligdoippocanchcigdocabcbdafmimdga 26DATAigpfnfofehdkfppglhhimmpkekcbgmpphocdkgngadmcjfigclhhmngofcobnbpbmjahamejgohdgfhchecagcgmgbgoglcagegjhdglakakedebfffeejepeoanakeggphcgngbhecaglgjgmgmhdcaeefdelahccmnomignlllogcaaoahmcpkijababahanmnlbifmnojigmnimiimiabdbenmnddiamndhifcgcoclhm 27DATAlfmcooigmjejepfhfaemfdeoejeifeedepebeceofceoegegefeeegeceoblfjcfcagggjgmgfgogbgngfccelgjgmgmccofdiaionbbghbinpmcdaihcbciiadiainjobolcbjppjmnipbiolmnfebhoghpmcelihmnlciikpehajdgbkaikpepajhopobkdhdpmcdoeodcjppjdpmddoeocbgcpgbbmnpmmnjedbcbjpid 28DATAmdpdiihlmnhkienbobhlpoaimcojbeboacmdojbecboaiidkmkpmlhmegbikccmapmmnjpibmnihhamnhkblmngdijmnpcgomkipihckmapmagabafeppoaibbimihdkmjpmnkbdfnlhmihjpoanmkdmijnfbbabifngblpoagncafecepcbjhibofckmipmolmdbdfnamblfhemgjhdhecccbdliemnjjikmnceccmnncif 29DATAmnceccmngaiemkpfihcbnkihmnegifmnpkiimngaiedoabmnhkiemnfpiinklaidolhjlamkldidkpfphjngiaephijlehpfmfhjnkbgiikpmgiaepmnlbiembpbnkcfiilbmcagiiababacanmdiaiekpehmfmnpaiimbcbjnpjhohalhmcbhiccdhohacdhalhmjdkmjpmjbcpepanmkhmihcbgjifagaimnkjblmdejii 30DATAhlmgaflkninbmjmniacaofolbhlhbhpfahfppbhlippfofbbhjiinfnchfcbnbobofnbpbpfagabafepajclclhnjdephmjkehpbobmjcbpjpmmnabijhipobchomjmnaneccbccilagcgdookohmnfeiekpgpaomamnhnfgmnpoebmdfmhlababadanmnleifmnipiimapodamcikiekpepmjdkmhpmdcmjpmdnmnblidmn 31DATAalefagcicbemplmnljeodcmipmmdlfefhmibfbiahbifboiggiicejidcniddbiecbmmpmnhnedademdmibhababafanmdiaieofmnakhdmneaidfjhiibamfhanmkljiemnnpijhhcdicmdamijojegfcefcaccmnikchmnjcidngebdcmgpmmipobimipoannbobmiofnfmnafecmdcdijdkmkpmdmdcmgpmmkepijmnfh 32DATAialhmacbdjicodmnfpiinkafecdnmccofgcdcdcdccmepmolmdpeiedkmkpmlhmadkmjpmlhmimnbiiakphhmnbjiebbnfpmmnjedbcbalibofmnbhibdoaiohmnaniankngidmnpfikmnoofhmneliemdhpijepdkmgpmlhhjmngbelmmalelmnpcgomipoblmklfijmnpcgomkkmijpoblmaobmnpeeocbkjidmdcmfmmn 33DATAikchdoekmnemecbbkfpmmnmbidcbnnpmdookohagajmnfeiecbopijccfjpgmjmndoifmniggknkopijmiaoafcbaoacbbaoagckaoaidkaoakcbaoalmncmiicbanieajfomcgeaebbboigcbkfidnfofmfmnpeeocbahabmnfiecmnalefmbcbpeigajajnhohnhohcbpbadmngdfhobmdcmfmdkjopjlhmkecikmndfbh 34DATAmelbieababacanmniaiemncmiimdapenckmcplmnjkifccmcplciacodabagabafainjajoddokamdldiacbcbilmnjofedoiackilpjmndliacbonicmnikchdomackjgpjmndliacbaiiamnikchckpepfmnebiacbbkijmnikchmnfmhldocaohcbfcicmjnblhminfofmnlnikcbafabmnfiecobmnikchcbccibmnca 35DATAijdnobmiofbbnjicnfofmdpkifdkmlpmpobemmfkibcbppppccmhpmcbmhpmdehomnbmieolmndpiemkmfiimnbjiemcneikmnjedbdocablbcmnpfikfodkmhpmmnpiikhdmdmlikdkmipmepihibepkpehcbfnpnajmjhldnpahkdnpadmmjddddofnfpfbbaeabbfbjhopoajmcnffabbiiidmdodfacaeeejfdelcafa 36DATAepfheffccaeldidfcadbcodacakldbdjdidhcaeihfghgpcaeggfhchcgfhjhcgbblfjchcaecebfdaaaaaapn \ No newline at end of file diff --git a/clients/disk_power/Disk_Power.K85.post-install.txt b/clients/disk_power/Disk_Power.K85.post-install.txt index eb26d94..dcba6c5 100644 --- a/clients/disk_power/Disk_Power.K85.post-install.txt +++ b/clients/disk_power/Disk_Power.K85.post-install.txt @@ -1,6 +1,6 @@ -Next, while the KC-85 is busy loading, run this command: +Next, if you haven't already, run this command: - dl -vui Disk_Power.K85.pdd1 + dl -vue -m 1 -i Disk_Power.K85.pdd1 This loads an image of the install disk, and dlplus will act as a virtual drive with that disk inserted, which the installer requires. diff --git a/clients/disk_power/Disk_Power.txt b/clients/disk_power/Disk_Power.txt index 5b42747..1a7016e 100644 --- a/clients/disk_power/Disk_Power.txt +++ b/clients/disk_power/Disk_Power.txt @@ -3,26 +3,21 @@ Disk Power for KC-85 Excerpt, more info here: http://tandy.wiki/TPDD_client:Disk_Power:KC-85 -Disk Power normally requires both the INSTAL.CO program on the cassette -(not the INSTAL.CO with the same name on the disk!), AND the original -distribution disk to install (not any copies, they don't work!). And -that means also needing a cassette player at least one time to record an -mp3, and a working TPDD1 drive every time (TPDD1 or equivalent like -FB-100 or Purple Computing specifically, not TPDD2). - -Here INSTAL.CO from the cassette has been repackaged into a standard BASIC -loader which can be bootstrapped over the serial cable, and the disk has -been imaged so that dlplus can act as a virtual drive for the raw sector -access that the Disk Power installer uses. +Disk Power originally required both the INSTAL.CO program from the cassette +(not the one from the disk), AND the original disk (not a copy) to install. +Which means also needing a cassette player, and a TPDD1 drive (not TPDD2). + +Here, INSTAL.CO from the cassette has been repackaged into a BASIC loader which +can be bootstrapped over a serial cable, and the disk has been imaged with +pdd.sh so that dlplus can act as a virtual drive for sector access to it. --------------------------------------------------------------------------- Installation: Just run the following command: - $ dl -vb Disk_Power.K85 && dl -vui Disk_Power.K85.pdd1 + $ dl -vb Disk_Power.K85 && dl -vue -m 1 -i Disk_Power.K85.pdd1 - Don't worry about the paths to those files. dlplus will get them from - /usr/local/lib/dl +(dlplus will get both files from /usr/local/lib/dl) When the installer prompts to insert the disk, just hit [Enter]. From 4b97cc1d4102346e984694a1c9f8af9d4560b268 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 8 Jul 2022 19:02:12 -0400 Subject: [PATCH 084/206] docs --- README.md | 8 +- clients/disk_power/Disk_Power.txt | 10 +- ...can.pdd1 => Sardine_American_English.pdd1} | Bin dl.c | 2 +- ref/disk_image_files.txt | 86 ++++++++++++------ 5 files changed, 65 insertions(+), 41 deletions(-) rename clients/ts-dos/{Sardine_American.pdd1 => Sardine_American_English.pdd1} (100%) diff --git a/README.md b/README.md index 9fe1033..cd0b067 100644 --- a/README.md +++ b/README.md @@ -131,14 +131,14 @@ $ dl -vi tpdd1_disk_image.pdd1 Support for raw disk image files that allow use of FDC-mode sector access commands on a virtual disk image file. Limitations: Only TPDD1 disks, only sector access. You can't access the files on a disk as files, just as raw sectors, and TPDD2 disks and TPDD2 sector/cache commands aren't supported. -Working examples: Sardine_American.pdd1, Disk_Power_KC-85.pdd1 +Working examples: Sardine_American_English.pdd1, Disk_Power_KC-85.pdd1 Example, using Sardine with a Model 100 with [Ultimate ROM II rom](http://www.club100.org/library/librom.html) (or [REX](http://bitchin100.com/wiki/index.php?title=Rex) with UR-II loaded): -First, run dl with the following commandline arguments to force TPDD1 emulation, disable TS-DOS directory support, and load the Sardine American dictionary disk: +First, run dl with the following commandline arguments to force TPDD1 emulation, disable TS-DOS directory support, and load the Sardine American English dictionary disk: ``` -$ dl -vue -m 1 -i Sardine_American.pdd1 +$ dl -vue -m 1 -i Sardine_American_English.pdd1 ``` -This provides both SAR100.CO and the dictionary disk. SAR100.CO (and SAR200.CO) are installed in /usr/local/lib/dl, and are "magic" files that are always found when the client tries to load them, even if they aren't in the directory being shared. Similarly, Sardine_American.pdd1 is in the same lib directory and is found when you specify the filename without any path. +This provides both SAR100.CO and the dictionary disk. SAR100.CO (and SAR200.CO) are installed in /usr/local/lib/dl, and are "magic" files that are always found when the client tries to load them, even if they aren't in the directory being shared. Similarly, Sardine_American_English.pdd1 is in the same lib directory and is found when you specify the filename without any path. Enter the UR-2 menu. Notice the SARDIN entry with the word OFF under it. Hit enter on SARDIN. Say Y if you get a prompt about HIMEM. This loads SAR100.CO into ram, and now the SARDIN entry says ON under it. Now enter T-Word and start a new document and type some text. diff --git a/clients/disk_power/Disk_Power.txt b/clients/disk_power/Disk_Power.txt index 1a7016e..9b24aee 100644 --- a/clients/disk_power/Disk_Power.txt +++ b/clients/disk_power/Disk_Power.txt @@ -3,19 +3,17 @@ Disk Power for KC-85 Excerpt, more info here: http://tandy.wiki/TPDD_client:Disk_Power:KC-85 -Disk Power originally required both the INSTAL.CO program from the cassette -(not the one from the disk), AND the original disk (not a copy) to install. -Which means also needing a cassette player, and a TPDD1 drive (not TPDD2). +Disk Power requires both INSTAL.CO and the distribution disk to install. -Here, INSTAL.CO from the cassette has been repackaged into a BASIC loader which -can be bootstrapped over a serial cable, and the disk has been imaged with +Here, INSTAL.CO has been repackaged into a BASIC loader which can be +bootstrapped over a serial cable, and the disk has been imaged with pdd.sh so that dlplus can act as a virtual drive for sector access to it. --------------------------------------------------------------------------- Installation: Just run the following command: - $ dl -vb Disk_Power.K85 && dl -vue -m 1 -i Disk_Power.K85.pdd1 + $ dl -vvb Disk_Power.K85 && dl -vue -m 1 -i Disk_Power.K85.pdd1 (dlplus will get both files from /usr/local/lib/dl) diff --git a/clients/ts-dos/Sardine_American.pdd1 b/clients/ts-dos/Sardine_American_English.pdd1 similarity index 100% rename from clients/ts-dos/Sardine_American.pdd1 rename to clients/ts-dos/Sardine_American_English.pdd1 diff --git a/dl.c b/dl.c index 0a42373..abd01e5 100644 --- a/dl.c +++ b/dl.c @@ -1145,7 +1145,7 @@ void req_fdc() { } else { if (model==2) { ret_std(ERR_PARAM); return; } // real tpdd2 returns opr_mode = 0; - dbg(1,"Switching to \"FDC\" mode\n"); + dbg(1,"Switching to \"FDC\" mode\n"); // no response to client, just switch modes } } diff --git a/ref/disk_image_files.txt b/ref/disk_image_files.txt index 959739d..2af61b9 100644 --- a/ref/disk_image_files.txt +++ b/ref/disk_image_files.txt @@ -1,57 +1,83 @@ Disk Image Files -This feature is new, crude, and limited at present. +This feature is new and limited at present. The -i option takes a filename of a disk image file of a TPDD1/FB-100 -disk (no TPDD2). +disk (no TPDD2 support yet). If the file does not already exist, and the client issues a format command, the file will be created and filled with nulls and sector headers. -A disk image file is composed of 80 1293-byte records. +Both TPDD1 and TPDD2 are described here but only TPDD1 is actually supported +yet. The TPDD2 image file format is just already known because pdd.sh already +uses it, and dlplus will eventually use the same thing. -Each record is one full physical sector, -composed of an ID section and a DATA section: +A *.pdd1 TPDD1 disk image file is composed of 80 records. +Each record is composed of 3 fields: Logical Size Code, ID, DATA + + +--------+----------+---------------------------------------+ + | LSC | ID | DATA | + +--------+----------+---------------------------------------+ + | 1 byte | 12 bytes | 1280 bytes | + +--------+----------+---------------------------------------+ + +A *.pdd2 TPDD2 disk image is composed of 160 records. +Each record is composed of 2 fields: METADATA, DATA - +-----------------------------------------------------------+ - | FULL PHYSICAL SECTOR | +----------+------------------------------------------------+ - | ID | DATA | + | META | DATA | +----------+------------------------------------------------+ - | 13 bytes | 1280 bytes | + | 4 bytes | 1280 bytes | +----------+------------------------------------------------+ -The ID section is composed of the logical block size code -and 12 bytes of ID data - +-----------------------------------------------------------+ - | ID | - +-----------+-----------------------------------------------+ - | logical | | - | size code | ID data | - +-----------+-----------------------------------------------+ - | 1 byte | 12 bytes | - +-----------+-----------------------------------------------+ - There are no delimiters or other formatting bytes anywhere. -See the software manual in the ref/ directory for the info about -the contents of the fields and how they are accessed. +See the software manual in the ref/ directory and github.com/bkw777/pdd.sh +for the info about the contents of the fields and how they are accessed. This is a subset of the fields on a real disk, but it's everything needed to duplicate a disk. The other fields are just things a real drive uses internally. -Currently, disk image files are only usable for the FDC-mode sector access +Currently, disk image files are only usable for TPDD1 FDC-mode sector access commands. Meaning you can not use dlplus to access the files within a disk image, only read and write the raw sectors. It's useful for cloning whole disks that are otherwise impossible to copy by normal file-access commands, -and for applications that only use FDC-mode commands like databases. -The included Disk_Power.K85.pdd1 disk image is a normal disk with a -filesystem and files, but the Disk_Power installer actually only uses -sector-access commands to install itself. +and useful for applications that only use FDC-mode commands like databases. + +Two examples so far are a dictionary disk for Sardine, +and the install disk for Disk Power KC-85. + +Sardine's dictionary disk is a pure data disk with no filesystem. + +Disk Power's install disk is a normal disk with a filesystem and files, +but the installer uses sector-access commands to read 4 64-byte chunks +of raw data from an unmarked sector. + +Generally, you also need to use some extra commandline options to disable +TS-DOS DME support: "-e" , and to force TPDD1-only emulation: "-m 1" . +Ex: $ dl -vue -m 1 -i Sardine_American_English.pdd1 +It's not a requirement of using disk images in general, it's just that in both +real example uses so far, the client software triggers unexpected responses +that a real drive wouldn't do. Disabling TPDD2 and DME makes dlplus act more +like a real TPDD1 drive, and allows the client software to work. + +https://github.co/bkw777/pdd.sh creates disk image files from real disks, +and re-creates real disks from disk image files of this same format. -https://github.co/bkw777/pdd.sh now uses the same image file format, so -you can use pdd.sh to create disk images from real disks or create real -dusks from image files. +dlplus can also create new disk images from client-issued format and sector +access commands. Ex: run "$ dl -vve -m 1 -i ./newdisk.pdd1" +and then use a client to "format" and write data with sector access commands. +For TPDD1, both the fdc-mode the opr-mode format commands do what a real drive +does. The fdc-mode format just generates all nulls and the one logical size +code byte per record, which creates a raw data disk with no filesystem like the +Sardine dictionary disk. The opr-mode format command does the same as fdc-mode +format with logical size code 0 (64-byte logical sectors) and then writes the +single byte of non-null data at the right address to create a valid Space +Management Table, which makes the disk into a filesystem disk. +Real disks can only be dumped or restored using the matching type of drive. +IE, although a TPDD2 drive is partly backwards compatible enough to read a +TPDD1 disk, you must use a TPDD1 drive to dump a TPDD1 disk to a .pdd1 file +or to restore a .pdd1 image to a real disk, and the same for TPDD2 & .pdd2 From cfe7f82ab1115a8664799bde8b7e63fa3d7720de Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 8 Jul 2022 20:06:27 -0400 Subject: [PATCH 085/206] renamed Sardine disk, disk power loader from the disk copy of INSTAL.CO --- Makefile | 2 +- clients/disk_power/Disk_Power.K85 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 9edfe40..e236d20 100644 --- a/Makefile +++ b/Makefile @@ -33,7 +33,7 @@ LIB_OTHER := \ clients/ts-dos/DOSNEC.CO \ clients/ts-dos/SAR100.CO \ clients/ts-dos/SAR200.CO \ - clients/ts-dos/Sardine_American.pdd1 \ + clients/ts-dos/Sardine_American_English.pdd1 \ clients/disk_power/Disk_Power.K85.pdd1 CLIENT_DOCS := \ diff --git a/clients/disk_power/Disk_Power.K85 b/clients/disk_power/Disk_Power.K85 index 3cfb2f2..df75604 100644 --- a/clients/disk_power/Disk_Power.K85 +++ b/clients/disk_power/Disk_Power.K85 @@ -1 +1 @@ -0'Disk Power KC-85 loader - 2022 b.kenyon.w@gmail.com 0CLEAR0,59072:A=59072:S=0:N$="Disk Power KC-85":CLS:?"Loading "N$" installer..."; 1D$="":READD$:FORI=1TOLEN(D$)STEP2:B=(ASC(MID$(D$,I,1))-97)*16+ASC(MID$(D$,I+1,1))-97:POKEA,B:A=A+1:S=S+B:NEXT:?".";:IFA<62955THEN1 2IFS<>472368THEN?"Bad Checksum":END 3CLS:?"Connect TPDD drive and insert the":?N$" install disk.":LINE INPUT "Press [ENTER] when ready ";A$:CLS:CALL59343 4DATAamblhacafegpgpcagngbgohjcagggjgmgfhdcablhbaaibaaaamdbligmnebokbbaappnihhnpmkfpojcdmdnmogbbdlolcbdjokmngnojmngdfholmdkificbcjohabahaalamkahohajnhdcoaohnhdccboidccdoidccfoinhdcgcoinhdchpoinhdcmloinhdcdjolnhdcmjojmjdncdmbmfkpkpcddmclobofkhkhcl 5DATAofmnlncanbebmdecdeahanakgggphccahegigfcagjgohdhegbgmgmgbhegjgpgocahahcgpgdgfhdhdanakhagmgfgbhdgfcaglgjgmgmcahdgpgngfcagggjgmgfhdcagbgogecahehchjcagbghgbgjgoaaffffahappihomnabokcdafmcimohmjamblhacaffgogfhihagfgdhegfgeaacbgcpgbbaappmnjedbcbgh 6DATAojmddlojcbojoimdfgokamblhacaedgpgngnhfgogjgdgbhegjgpgoaaecdoacabcnaacbahokofmngdfhdcjppjdmmmpmogaihhcbiholbbkfpmmnbicfmnfkcackmeplmedaolabahamajbbaaaaoldjnpnkleohcbfdokccfjpgcbklpjofholhmediohobdgpobbmmpjabalaaajnpnkakoimcnmohaihhaihhaihham 7DATAhjofcbpbojamcdcdibnkcnoiccfjpgpfmnkhojbbiaojmbobmnecdeofckmeplagaomnecdemnidbcmniacamekkbpmnbgcbfmgfglklihdnihbnehelaiabfbalmnhfgikpfhfpolcfcfmkgnoiofmnaocbobeemnbkcfnfabdhaeaiolnjcbjholabfdaknbmnodgiabagaaajccpepfcbbligbbobpenjnbobmnjedbnf 8DATAcbngogbbaciamnbicfabalaacbbaplbbbcojdoaepfbdpfmngnfhpbifgppbmngnfhofonodciaiobnjmglaobaihhmnbgcbbbacojcbgbpidobamngnfhghgmccjnpjmnnacamnnlhlmdgnojamblhacaeogphecagfgogphfghgicagngfgngphchjcablhbaafegfhcgnbiedebememdddddbdddiancaicpiicalilck 9DATAicmgiehjigieagaamfmnffojmnhfgkmbmcnmogafmccaojmddcojcbecojmdgcojcbppponhnedademdmibhamblhacaeegjhdglcaeogphecafcgfgbgehjaaabaadaalhjlamimdfiojcblkohbbgpokmdpcogdjdieodbeeofnfcbmmohagadmnimohmnffojmndiojnbobmjlapnppebeeeefcfdfdcaaalapoppfded 10DATAeiefeeemcaaaaaaaiaabpoabaamdhdfiabpoabaamdhkfimnkfohcbihohagafmnimohmnffojcbaapoofcbdkokagahmnimohofmnffojabacaaobaidfofcbaippmnboojdkaopppodemcfpojdoacmnabokmnffojobdodiloobpfmnboojpbofmcljojmdodepcbjgohmdgcojcbaaialamefmokcbmngcokmddkglee 11DATAfaeldidfcofdfjcacaejgohdhegbgmgmgbhegjgpgocagjgocahahcgpghhcgfhdhdblfjcecjfagmgfgbhdgfcafhebejfecoaafndpdgcddpdmacmngcokmnhfgkdhmimniggknkomogmcfpojmjcbmaogbbebohmdpfogmnpjojkjepagepnlllogcamcdcojdoapkjepmjcagfhchcgphccablhbanakahedgigfgdgl 12DATAcahjgphfhccagdgbgcgmgfhdcagbgogecagehcgjhggfcoanakejggcahahcgpgcgmgfgncahagfhchdgjhdhehdcmcahjgphfhccagegjhdhehcgjgchfhegjgpgoanakgegjhdglcagngbhjcagcgfcagegbgngbghgfgecmcagphccahjgphfcagbhcgfcahehchjgjgoghanakhegpcagjgohdhegbgmgmcagghcgpgn 13DATAcagbcagogpgocngphcgjghgjgogbgmcagegjhdglanakblhacafagmgfgbhdgfcagdgpgohegbgdhecagngbgohfgggbgdhehfhcgfhccablhbaaofbdbdonciagnfmbobaimjahamfahcgpgdgfhdhdcagjgohegfhchchfhahegfgecacncaedgbgochhecagdgpgohegjgohfgfanakfehfhcgocaepegegcagbgogeca 14DATAepeocahjgphfhccagehcgjhggfcagbgogecahchfgoanakejfeemeldidfcoedepcagbghgbgjgoaaaafailabaaljmdbligdgdidkcbnfpmkpagahmnfeiemdihhamnbiidabpppjadajmdfiecgjgoghcagggjgmgfhdcmcahahcgpgdgfgfgecaciebcpfjcpeocjdpcccdmnoofhbdnfmnefianhmnfjigobnfmfmnlb 15DATAbbcbimpgmbnbmdgaigobmnbjiecbmlpmmkgjibdfpcgkibdoahdeohmdbiidlhmabnmjobmnanecdclepkmdjdfbmnoeiddcmkpmmnmjigaoabmngfieaockmkediimnanifaoacmdihibpfmnpkifpbdcmipmmnpkifdkmkpmlhmkbiiddocaagfacbmipomnlkeocbaecbmnfiecmnfpiimfcbajidodnimneliedkklpm 16DATApofanamnfpiioldnpkdoibmkfgigmnbfcfabppbccbkncfbbnepomngaigcbahalmnfieccknepkofmnpnibmbckngpkajmnpnibcknipkkpmdeniecbbkihmnjjikmnfpiinklaiddnpkoibpmkjabpmdkkbpmfmniacabdpoiammmoicmnbgcbmnahicmbkamjmnjhiimnihgjkpghgpccfjpgmdfhgjcbhmibofckmepm 17DATAbbkfpmmnjedbmnbfigcbdhiemnefigmdnkihnacaneihhbifhmibabicejiddkccdbiehldmlknikpmjcbbkihmnjjikmngaiemklaidmdpkiihlngafnanbmjofnfcbjopjholhpkddbfdfmefmihckklpmbbeeepolccklpmnpmkjpichlpocamcpiijmnbfigmngaienbobofnffhabagabafajkphhdcjppjhlapldoo 18DATAacogadfpdndnhkcbglihofpkocicmkgoiblhmkpcijmjmnplafolbdckmcpmmdaecbmnpkifmndpiemdlciklhminfmnpkiimngaienbmjojfafdfecccbjppjmdmbbhngdamabncdmnddempodkmadddddoajlhmjdoppagakcbgfplmnlkeocoagmnlkefdkmipmcbabafcljecmncbpidiedmihihihghmdfieccbjjig 19DATAmnikchcbcfibmneligababaganmdiaiemnnpijehmnnpijepmjlhmicbmmihmnefigcbjopjbbabpjdkmkpmlhmcgcidbgajdgabcdkpmnmiemmncoeonklgijbbghidcbjhijnfofpoanmipoakmipocanapgeaehdofomnjhijhimjhniccoikjliebpihpcicofmnhkblmnpcgomkjdidobmdpaapdjdieodbeefceben 20DATAcaeeejfcccaoalcbaoaibbaoajnbcbnocgkpehmdalikbbkopmcbnnpmdoagmngnfhdgcocdmnglfhagapdocamdlkeodkbepncoabcnghbamneiiemdhpijmngfihmnanecmnblecdobedcmlpmkpdcmjpmdcmipmdclepkckhjplcchppgobmnaidpofnbblblblnfojbcbcahbcbcbcbhbcdebhdjdhdkmipmcgabcfgp 21DATAcjcjcjabahpoajhoabpjppajoollpocamjmnpaiimdkefeblfjcecafdgbhgcccbmipmdedkmjpmlomjdodabbdocapfmnefiapbagagpfmnefecmnkjblpbohmdekecmnloidkpepgbcoegccpfpmabbkabafmnlbifmnimiimkikiekhmjdcnnpmabababmnlbifofmnimiioblhmicbpkijofabaepakaapapapapjblj 22DATAnaepmjpbpfabpfbemfpobkmimneebhnghpmaaoadaihhajaoiaagaemnleifmdidiekpdamnnpijcplkobmcojijelmjmnjhiimnpoebcbnmieccfjpgcbckflmnihfhkpdcfhpgmeafecmnflfkcbbnflmnikchmnpcefnhbbhcibnfmimnnocbnbofkpghgpccoopgdmolmdhjfmfjibgcicadilhhicfiiigcicagagmn 23DATAkjblmnmneanmdadehopgcaohdocaohcdhopfcbmjpmhodemnpiikpbhhcddkbdpnhhcddkbcpnhhmjdoanpocpmndkglnlllogcamimdojijdkmgpmlhmiofcboniamnjofeobmnjcidpoepmiodpofcmiodnbpofdminfmnafecmdfdifcacncnjncncncacalhminfdkmipmpfmnfkibckmipmolmngcicmkikifcbhiif 24DATAofpfmnpkifpbmkikifdcmipmmnpkifmdbiidmnhfginkomijmfofkphhcdalhilbmckcifccmcpmobmbmjcbnnpmmfabfkfkmnddiambmnddiahiibfhamhkanmkdkifigfhhocdmndlifmdmdifdkmgpmlhmicbanihmnlpijmnpcefnkopijnhmimnnccbofcbpiijccfjpgobmnmbelcklepmccklpmmjmnbhibmnbjie 25DATAagahmepkfgbbkfpmmnbicfmnopapbcbdmnpfikhobccbkopmmdbjccmnfmihmnoeidcpdcmkpmdcmhpkmnbgcbcbmepjabaiabafajhocdcdcddmaobemkediiofpmanifobmdcoigmnlpijcbclibmncaijmdpoebemgpgbgeccaobkbbkpepagfabbmipohocdljmipoanmcgligdoippocanchcigdocabcbdafmimdga 26DATAigpfnfofehdkfppglhhimmpkekcbgmpphocdkgngadmcjfigclhhmngofcobnbpbmjahamejgohdgfhchecagcgmgbgoglcagegjhdglakakedebfffeejepeoanakeggphcgngbhecaglgjgmgmhdcaeefdelahccmnomignlllogcaaoahmcpkijababahanmnlbifmnojigmnimiimiabdbenmnddiamndhifcgcoclhm 27DATAlfmcooigmjejepfhfaemfdeoejeifeedepebeceofceoegegefeeegeceoblfjcfcagggjgmgfgogbgngfccelgjgmgmccofdiaionbbghbinpmcdaihcbciiadiainjobolcbjppjmnipbiolmnfebhoghpmcelihmnlciikpehajdgbkaikpepajhopobkdhdpmcdoeodcjppjdpmddoeocbgcpgbbmnpmmnjedbcbjpid 28DATAmdpdiihlmnhkienbobhlpoaimcojbeboacmdojbecboaiidkmkpmlhmegbikccmapmmnjpibmnihhamnhkblmngdijmnpcgomkipihckmapmagabafeppoaibbimihdkmjpmnkbdfnlhmihjpoanmkdmijnfbbabifngblpoagncafecepcbjhibofckmipmolmdbdfnamblfhemgjhdhecccbdliemnjjikmnceccmnncif 29DATAmnceccmngaiemkpfihcbnkihmnegifmnpkiimngaiedoabmnhkiemnfpiinklaidolhjlamkldidkpfphjngiaephijlehpfmfhjnkbgiikpmgiaepmnlbiembpbnkcfiilbmcagiiababacanmdiaiekpehmfmnpaiimbcbjnpjhohalhmcbhiccdhohacdhalhmjdkmjpmjbcpepanmkhmihcbgjifagaimnkjblmdejii 30DATAhlmgaflkninbmjmniacaofolbhlhbhpfahfppbhlippfofbbhjiinfnchfcbnbobofnbpbpfagabafepajclclhnjdephmjkehpbobmjcbpjpmmnabijhipobchomjmnaneccbccilagcgdookohmnfeiekpgpaomamnhnfgmnpoebmdfmhlababadanmnleifmnipiimapodamcikiekpepmjdkmhpmdcmjpmdnmnblidmn 31DATAalefagcicbemplmnljeodcmipmmdlfefhmibfbiahbifboiggiicejidcniddbiecbmmpmnhnedademdmibhababafanmdiaieofmnakhdmneaidfjhiibamfhanmkljiemnnpijhhcdicmdamijojegfcefcaccmnikchmnjcidngebdcmgpmmipobimipoannbobmiofnfmnafecmdcdijdkmkpmdmdcmgpmmkepijmnfh 32DATAialhmacbdjicodmnfpiinkafecdnmccofgcdcdcdccmepmolmdpeiedkmkpmlhmadkmjpmlhmimnbiiakphhmnbjiebbnfpmmnjedbcbalibofmnbhibdoaiohmnaniankngidmnpfikmnoofhmneliemdhpijepdkmgpmlhhjmngbelmmalelmnpcgomipoblmklfijmnpcgomkkmijpoblmaobmnpeeocbkjidmdcmfmmn 33DATAikchdoekmnemecbbkfpmmnmbidcbnnpmdookohagajmnfeiecbopijccfjpgmjmndoifmniggknkopijmiaoafcbaoacbbaoagckaoaidkaoakcbaoalmncmiicbanieajfomcgeaebbboigcbkfidnfofmfmnpeeocbahabmnfiecmnalefmbcbpeigajajnhohnhohcbpbadmngdfhobmdcmfmdkjopjlhmkecikmndfbh 34DATAmelbieababacanmniaiemncmiimdapenckmcplmnjkifccmcplciacodabagabafainjajoddokamdldiacbcbilmnjofedoiackilpjmndliacbonicmnikchdomackjgpjmndliacbaiiamnikchckpepfmnebiacbbkijmnikchmnfmhldocaohcbfcicmjnblhminfofmnlnikcbafabmnfiecobmnikchcbccibmnca 35DATAijdnobmiofbbnjicnfofmdpkifdkmlpmpobemmfkibcbppppccmhpmcbmhpmdehomnbmieolmndpiemkmfiimnbjiemcneikmnjedbdocablbcmnpfikfodkmhpmmnpiikhdmdmlikdkmipmepihibepkpehcbfnpnajmjhldnpahkdnpadmmjddddofnfpfbbaeabbfbjhopoajmcnffabbiiidmdodfacaeeejfdelcafa 36DATAepfheffccaeldidfcadbcodacakldbdjdidhcaeihfghgpcaeggfhchcgfhjhcgbblfjchcaecebfdaaaaaapn \ No newline at end of file +0'Disk Power KC-85 loader - 2022 b.kenyon.w@gmail.com 0CLEAR0,59072:A=59072:S=0:N$="Disk Power KC-85":CLS:?"Loading "N$" installer..."; 1D$="":READD$:FORI=1TOLEN(D$)STEP2:B=(ASC(MID$(D$,I,1))-97)*16+ASC(MID$(D$,I+1,1))-97:POKEA,B:A=A+1:S=S+B:NEXT:?".";:IFA<62954THEN1 2IFS<>472115THEN?"Bad Checksum":END 3CLS:?"Connect TPDD drive and insert the":?N$" install disk.":LINE INPUT "Press [ENTER] when ready ";A$:CLS:CALL59343 4DATAamblhacafegpgpcagngbgohjcagggjgmgfhdcablhbaaibaaaamdbligmnebokbbaappnihhnpmkfpojcdmdnmogbbdlolcbdjokmngnojmngdfholmdkificbcjohabahaalamkahohajnhdcoaohnhdccboidccdoidccfoinhdcgcoinhdchpoinhdcmloinhdcdjolnhdcmjojmjdncdmbmfkpkpcddmclobofkhkhcl 5DATAofmnlncanbebmdecdeahanakgggphccahegigfcagjgohdhegbgmgmgbhegjgpgocahahcgpgdgfhdhdanakhagmgfgbhdgfcaglgjgmgmcahdgpgngfcagggjgmgfhdcagbgogecahehchjcagbghgbgjgoaaffffahappihomnabokcdafmcimohmjamblhacaffgogfhihagfgdhegfgeaacbgcpgbbaappmnjedbcbgh 6DATAojmddlojcbojoimdfgokamblhacaedgpgngnhfgogjgdgbhegjgpgoaaecdoacabcnaacbahokofmngdfhdcjppjdmmmpmogaihhcbiholbbkfpmmnbicfmnfkcackmeplmedaolabahamajbbaaaaoldjnpnkleohcbfdokccfjpgcbklpjofholhmediohobdgpobbmmpjabalaaajnpnkakoimcnmohaihhaihhaihham 7DATAhjofcbpbojamcdcdibnkcnoiccfjpgpfmnkhojbbiaojmbobmnecdeofckmeplagaomnecdemnidbcmniacamekkbpmnbgcbfmgfglklihdnihbnehelaiabfbalmnhfgikpfhfpolcfcfmkgnoiofmnaocbobeemnbkcfnfabdhaeaiolnjcbjholabfdaknbmnodgiabagaaajccpepfcbbligbbobpenjnbobmnjedbnf 8DATAcbngogbbaciamnbicfabalaacbbaplbbbcojdoaepfbdpfmngnfhpbifgppbmngnfhofonodciaiobnjmglaobaihhmnbgcbbbacojcbgbpidobamngnfhghgmccjnpjmnnacamnnlhlmdgnojamblhacaeogphecagfgogphfghgicagngfgngphchjcablhbaafegfhcgnbiedebememdddddbdddiancaicpiicalilck 9DATAicmgiehjigieagaamfmnffojmnhfgkmbmcnmogafmccaojmddcojcbecojmdgcojcbppponhnedademdmibhamblhacaeegjhdglcaeogphecafcgfgbgehjaaabaadaalhjlamimdfiojcblkohbbgpokmdpcogdjdieodbeeofnfcbmmohagadmnimohmnffojmndiojnbobmjlapnppebeeeefcfdfdcaaalapoppfded 10DATAeiefeeemcaaaaaaaiaabpoabaamdhdfiabpoabaamdhkfimnkfohcbihohagafmnimohmnffojcbaapoofcbdkokagahmnimohofmnffojabacaaobaidfofcbaippmnboojdkaopppodemcfpojdoacmnabokmnffojobdodiloobpfmnboojpbofmcljojmdodepcbjgohmdgcojcbaaialamefmokcbmngcokmddkglee 11DATAfaeldidfcofdfjcacaejgohdhegbgmgmgbhegjgpgocagjgocahahcgpghhcgfhdhdblfjcecjfagmgfgbhdgfcafhebejfecoaafndpdgcddpdmacmngcokmnhfgkdhmimniggknkomogmcfpojmjcbmaogbbebohmdpfogmnpjojkjepagepnlllogcamcdcojdoapkjepmjcagfhchcgphccablhbanakahedgigfgdgl 12DATAcahjgphfhccagdgbgcgmgfhdcagbgogecagehcgjhggfcoanakejggcahahcgpgcgmgfgncahagfhchdgjhdhehdcmcahjgphfhccagegjhdhehcgjgchfhegjgpgoanakgegjhdglcagngbhjcagcgfcagegbgngbghgfgecmcagphccahjgphfcagbhcgfcahehchjgjgoghanakhegpcagjgohdhegbgmgmcagghcgpgn 13DATAcagbcagogpgocngphcgjghgjgogbgmcagegjhdglanakblhacafagmgfgbhdgfcagdgpgohegbgdhecagngbgohfgggbgdhehfhcgfhccablhbaaofbdbdonciagnfmbobaimjahamfahcgpgdgfhdhdcagjgohegfhchchfhahegfgecacncaedgbgochhecagdgpgohegjgohfgfanakfehfhcgocaepegegcagbgogeca 14DATAepeocahjgphfhccagehcgjhggfcagbgogecahchfgoanakejfeemeldidfcoedepcagbghgbgjgoaaaafailabaaljmdbligdgdidkcbnfpmkpagahmnfeiemdihhamnbiidabpppjadajmdfiecgjgoghcagggjgmgfhdcmcahahcgpgdgfgfgecaciebcpfjcpeocjdpcccdmnoofhbdnfmnefianhmnfjigobnfmfmnlb 15DATAbbcbimpgmbnbmdgaigobmnbjiecbmlpmmkgjibdfpcgkibdoahdeohmdbiidlhmabnmjobmnanecdclepkmdjdfbmnoeiddcmkpmmnmjigaoabmngfieaockmkediimnanifaoacmdihibpfmnpkifpbdcmipmmnpkifdkmkpmlhmkbiiddocaagfacbmipomnlkeocbaecbmnfiecmnfpiimfcbajidodnimneliedkklpm 16DATApofanamnfpiioldnpkdoibmkfgigmnbfcfabppbccbkncfbbnepomngaigcbahalmnfieccknepkofmnpnibmbckngpkajmnpnibcknipkkpmdeniecbbkihmnjjikmnfpiinklaiddnpkoibpmkjabpmdkkbpmfmniacabdpoiammmoicmnbgcbmnahicmbkamjmnjhiimnihgjkpghgpccfjpgmdfhgjcbhmibofckmepm 17DATAbbkfpmmnjedbmnbfigcbdhiemnefigmdnkihnacaneihhbifhmibabicejiddkccdbiehldmlknikpmjcbbkihmnjjikmngaiemklaidmdpkiihlngafnanbmjofnfcbjopjholhpkddbfdfmefmihckklpmbbeeepolccklpmnpmkjpichlpocamcpiijmnbfigmngaienbobofnffhabagabafajkphhdcjppjhlapldoo 18DATAacogadfpdndnhkcbglihofpkocicmkgoiblhmkpcijmjmnplafolbdckmcpmmdaecbmnpkifmndpiemdlciklhminfmnpkiimngaienbmjojfafdfecccbjppjmdmbbhngdamabncdmnddempodkmadddddoajlhmjdoppagakcbgfplmnlkeocoagmnlkefdkmipmcbabafcljecmncbpidiedmihihihghmdfieccbjjig 19DATAmnikchcbcfibmneligababaganmdiaiemnnpijehmnnpijepmjlhmicbmmihmnefigcbjopjbbabpjdkmkpmlhmcgcidbgajdgabcdkpmnmiemmncoeonklgijbbghidcbjhijnfofpoanmipoakmipocanapgeaehdofomnjhijhimjhniccoikjliebpihpcicofmnhkblmnpcgomkjdidobmdpaapdjdieodbeefceben 20DATAcaeeejfcccaoalcbaoaibbaoajnbcbnocgkpehmdalikbbkopmcbnnpmdoagmngnfhdgcocdmnglfhagapdocamdlkeodkbepncoabcnghbamneiiemdhpijmngfihmnanecmnblecdobedcmlpmkpdcmjpmdcmipmdclepkckhjplcchppgobmnaidpofnbblblblnfojbcbcahbcbcbcbhbcdebhdjdhdkmipmcgabcfgp 21DATAcjcjcjabahpoajhoabpjppajoollpocamjmnpaiimdkefeblfjcecafdgbhgcccbmipmdedkmjpmlomjdodabbdocapfmnefiapbagagpfmnefecmnkjblpbohmdekecmnloidkpepgbcoegccpfpmabbkabafmnlbifmnimiimkikiekhmjdcnnpmabababmnlbifofmnimiioblhmicbpkijofabaepakaapapapapjblj 22DATAnaepmjpbpfabpfbemfpobkmimneebhnghpmaaoadaihhajaoiaagaemnleifmdidiekpdamnnpijcplkobmcojijelmjmnjhiimnpoebcbnmieccfjpgcbckflmnihfhkpdcfhpgmeafecmnflfkcbbnflmnikchmnpcefnhbbhcibnfmimnnocbnbofkpghgpccoopgdmolmdhjfmfjibgcicadilhhicfiiigcicagagmn 23DATAkjblmnmneanmdadehopgcaohdocaohcdhopfcbmjpmhodemnpiikpbhhcddkbdpnhhcddkbcpnhhmjdoanpocpmndkglnlllogcamimdojijdkmgpmlhmiofcboniamnjofeobmnjcidpoepmiodpofcmiodnbpofdminfmnafecmdfdifcacncnjncncncacalhminfdkmipmpfmnfkibckmipmolmngcicmkikifcbhiif 24DATAofpfmnpkifpbmkikifdcmipmmnpkifmdbiidmnhfginkomijmfofkphhcdalhilbmckcifccmcpmobmbmjcbnnpmmfabfkfkmnddiambmnddiahiibfhamhkanmkdkifigfhhocdmndlifmdmdifdkmgpmlhmicbanihmnlpijmnpcefnkopijnhmimnnccbofcbpiijccfjpgobmnmbelcklepmccklpmmjmnbhibmnbjie 25DATAagahmepkfgbbkfpmmnbicfmnopapbcbdmnpfikhobccbkopmmdbjccmnfmihmnoeidcpdcmkpmdcmhpkmnbgcbcbmepjabaiabafajhocdcdcddmaobemkediiofpmanifobmdcoigmnlpijcbclibmncaijmdpoebemgpgbgeccaobkbbkpepagfabbmipohocdljmipoanmcgligdoippocanchcigdocabcbdafmimdga 26DATAigpfnfofehdkfppglhhimmpkekcbgmpphocdkgngadmcjfigclhhmngofcobnbpbmjahamejgohdgfhchecagcgmgbgoglcagegjhdglakakedebfffeejepeoanakeggphcgngbhecaglgjgmgmhdcaeefdelahccmnomignlllogcaaoahmcpkijababahanmnlbifmnojigmnimiimiabdbenmnddiamndhifcgcoclhm 27DATAlfmcooigmjejepfhfaemfdeoejeifeedepebeceofceoegegefeeegeceoblfjcfcagggjgmgfgogbgngfccelgjgmgmccofdiaionbbghbinpmcdaihcbciiadiainjobolcbjppjmnipbiolmnfebhoghpmcelihmnlciikpehajdgbkaikpepajhopobkdhdpmcdoeodcjppjdpmddoeocbgcpgbbmnpmmnjedbcbjpid 28DATAmdpdiihlmnhkienbobhlpoaimcojbeboacmdojbecboaiidkmkpmlhmegbikccmapmmnjpibmnihhamnhkblmngdijmnpcgomkipihckmapmagabafeppoaibbimihdkmjpmnkbdfnlhmihjpoanmkdmijnfbbabifngblpoagncafecepcbjhibofckmipmolmdbdfnamblfhemgjhdhecccbdliemnjjikmnceccmnncif 29DATAmnceccmngaiemkpfihcbnkihmnegifmnpkiimngaiedoabmnhkiemnfpiinklaidolhjlamkldidkpfphjngiaephijlehpfmfhjnkbgiikpmgiaepmnlbiembpbnkcfiilbmcagiiababacanmdiaiekpehmfmnpaiimbcbjnpjhohalhmcbhiccdhohacdhalhmjdkmjpmjbcpepanmkhmihcbgjifagaimnkjblmdejii 30DATAhlmgaflkninbmjmniacaofolbhlhbhpfahfppbhlippfofbbhjiinfnchfcbnbobofnbpbpfagabafepajclclhnjdephmjkehpbobmjcbpjpmmnabijhipobchomjmnaneccbccilagcgdookohmnfeiekpgpaomamnhnfgmnpoebmdfmhlababadanmnleifmnipiimapodamcikiekpepmjdkmhpmdcmjpmdnmnblidmn 31DATAalefagcicbemplmnljeodcmipmmdlfefhmibfbiahbifboiggiicejidcniddbiecbmmpmnhnedademdmibhababafanmdiaieofmnakhdmneaidfjhiibamfhanmkljiemnnpijhhcdicmdamijojegfcefcaccmnikchmnjcidngebdcmgpmmipobimipoannbobmiofnfmnafecmdcdijdkmkpmdmdcmgpmmkepijmnfh 32DATAialhmacbdjicodmnfpiinkafecdnmccofgcdcdcdccmepmolmdpeiedkmkpmlhmadkmjpmlhmimnbiiakphhmnbjiebbnfpmmnjedbcbalibofmnbhibdoaiohmnaniankngidmnpfikmnoofhmneliemdhpijepdkmgpmlhhjmngbelmmalelmnpcgomipoblmklfijmnpcgomkkmijpoblmaobmnpeeocbkjidmdcmfmmn 33DATAikchdoekmnemecbbkfpmmnmbidcbnnpmdookohagajmnfeiecbopijccfjpgmjmndoifmniggknkopijmiaoafcbaoacbbaoagckaoaidkaoakcbaoalmncmiicbanieajfomcgeaebbboigcbkfidnfofmfmnpeeocbahabmnfiecmnalefmbcbpeigajajnhohnhohcbpbadmngdfhobmdcmfmdkjopjlhmkecikmndfbh 34DATAmelbieababacanmniaiemncmiimdapenckmcplmnjkifccmcplciacodabagabafainjajoddokamdldiacbcbilmnjofedoiackilpjmndliacbonicmnikchdomackjgpjmndliacbaiiamnikchckpepfmnebiacbbkijmnikchmnfmhldocaohcbfcicmjnblhminfofmnlnikcbafabmnfiecobmnikchcbccibmnca 35DATAijdnobmiofbbnjicnfofmdpkifdkmlpmpobemmfkibcbppppccmhpmcbmhpmdehomnbmieolmndpiemkmfiimnbjiemcneikmnjedbdocablbcmnpfikfodkmhpmmnpiikhdmdmlikdkmipmepihibepkpehcbfnpnajmjhldnpahkdnpadmmjddddofnfpfbbaeabbfbjhopoajmcnffabbiiidmdodfacaeeejfdelcafa 36DATAepfheffccaeldidfcadbcodacakldbdjdidhcaeihfghgpcaeggfhchcgfhjhcgbblfjchcaecebfdaaaaaa \ No newline at end of file From f089dd1ca339dd64d0a56f3016114ebcdf5d31b6 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 12 Jul 2022 13:07:22 -0400 Subject: [PATCH 086/206] pdd2 disk image and sector access --- AUTHORS | 8 +- CHANGES | 4 + Makefile | 3 +- README.md | 40 ++-- constants.h | 40 ++-- dir_list.c | 10 +- dl.c | 396 ++++++++++++++++++++++++++------------- ref/disk_image_files.txt | 20 +- 8 files changed, 338 insertions(+), 183 deletions(-) diff --git a/AUTHORS b/AUTHORS index 8ef9385..70024b7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,11 +1,11 @@ dlplus: Stephen Hurd Initial versions 1.0-1.3 John R. Hogerhuis Enhancements including WP-2 support -Brian K. White Bootstrap function and loaders library +Brian K. White Bootstrap function and loader collection main cmd scanner, serial tty handling - FDC-mode disk image sector access support - magic files for UR-II -Gabriele Gorla Support for TS-DOS subdirectories + magic files for UR-II ts-dos & sardine + pdd1 & pdd2 disk image sector access +Gabriele Gorla TS-DOS subdirectories TPDD Clients & loaders: Kurt McCullum TS-DOS loaders diff --git a/CHANGES b/CHANGES index 9b4f3e8..2423551 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +20220712 + Add sector access commands and disk image support for pdd1 & pdd2 + Magic ts-dos & sardine files for UR-II + 20220530 Replace main cmd parser. Improve tty efficiency. diff --git a/Makefile b/Makefile index e236d20..2b72441 100644 --- a/Makefile +++ b/Makefile @@ -49,6 +49,7 @@ CLIENT_DOCS := \ DOCS := dl.do README.txt README.md LICENSE $(CLIENT_DOCS) SOURCES := dl.c dir_list.c +HEADERS := dir_list.h constants.h ifeq ($(OS),Darwin) #DEFAULT_CLIENT_TTY := cu.* @@ -75,7 +76,7 @@ endif .PHONY: all all: $(APP_NAME) -$(APP_NAME): $(SOURCES) +$(APP_NAME): $(SOURCES) $(HEADERS) $(CC) $(CFLAGS) $(DEFINES) $(SOURCES) $(LDLIBS) -o $(@) install: $(APP_NAME) $(CLIENT_LOADERS) $(LIB_OTHER) $(DOCS) diff --git a/README.md b/README.md index cd0b067..8806d50 100644 --- a/README.md +++ b/README.md @@ -101,15 +101,6 @@ $ unzip REXCPMV21_b19.ZIP $ dl -vb ./rxcini.DO ;dl -vu ``` -## trivia -The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT". TS-DOS thinks it's an invalid filename (even though it DISPLAYS it in the file list just fine. If it would just go ahead and send the command to "open" it, it would work.) However, plenty of other things that are all better than "ROOT " and "PARENT" do work. -``` -$ ROOT_LABEL=/ PARENT_LABEL=^ dl -$ ROOT_LABEL='-root-' PARENT_LABEL='-back-' dl -$ ROOT_LABEL='0:' PARENT_LABEL='^:' dl -or you can confuse someone... -$ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl -``` ## UR-II Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS from disk on-the-fly. This allows you to keep the TS-DOS executable on the disk instead of in ram, and it is loaded and then discarded on-demand by selecting the TS-DOS menu entry from inside UR2. @@ -124,16 +115,26 @@ Failing that, then it looks in the root share dir. Failing that, finally it gets [More details](ref/ur2.txt) -## FDC-mode sector access - disk images +## sector access - disk images +For a TPDD1 disk image ``` -$ dl -vi tpdd1_disk_image.pdd1 +$ dl -v -m 1 -i disk_image.pdd1 +``` + +For a TPDD2 disk image ``` -Support for raw disk image files that allow use of FDC-mode sector access commands on a virtual disk image file. -Limitations: Only TPDD1 disks, only sector access. You can't access the files on a disk as files, just as raw sectors, and TPDD2 disks and TPDD2 sector/cache commands aren't supported. +$ dl -v -m 2 -i disk_image.pdd2 +``` + +Support for disk image files that allow use of raw sector access commands on a virtual disk image file. +Limitations: Only supports sector access to the disk image. You can't "mount" the disk image and access the files on a disk as files, just as raw sectors. -Working examples: Sardine_American_English.pdd1, Disk_Power_KC-85.pdd1 +Useful working examples: Sardine_American_English.pdd1, Disk_Power_KC-85.pdd1 + +Those examples are both TPDD1, but both TPDD1 and TPDD2 are supported. Merely there are no known database application disks like Sardine on TPDD2 media to make a good TPDD2 example. You can load up the image of the TPDD2 Utility Disk included with pdd.sh just to see that it works, but that isn't useful for anything. + +Example, using Sardine with a Model 100 with [Ultimate ROM II rom](http://www.club100.org/library/librom.html) (or [REX](http://bitchin100.com/wiki/index.php?title=Rex) with UR-II loaded): -Example, using Sardine with a Model 100 with [Ultimate ROM II rom](http://www.club100.org/library/librom.html) (or [REX](http://bitchin100.com/wiki/index.php?title=Rex) with UR-II loaded): First, run dl with the following commandline arguments to force TPDD1 emulation, disable TS-DOS directory support, and load the Sardine American English dictionary disk: ``` $ dl -vue -m 1 -i Sardine_American_English.pdd1 @@ -153,6 +154,15 @@ Disk image files may be created 2 ways: Disk image format [disk_image_files.txt](ref/disk_image_files.txt) +## trivia +The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT", but many other things work. The ROOT label allows almost anything, the PARENT label is only limited by what TS-DOS thinks is a valid filename. Here are a few examples that do work. +``` +$ ROOT_LABEL=/ PARENT_LABEL=^ dl +$ ROOT_LABEL='-root-' PARENT_LABEL='-back-' dl +$ ROOT_LABEL='0:' PARENT_LABEL='^:' dl +or you can confuse someone... +$ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl +``` ## OS Compatibility Tested on Linux, Macos, FreeBSD diff --git a/constants.h b/constants.h index 8472a95..93b9191 100644 --- a/constants.h +++ b/constants.h @@ -34,7 +34,7 @@ #define RET_PDD2_UNK23 0x14 // TPDD2 unknown function - "TS-DOS mystery" TS-DOS uses to detect TPDD2 #define RET_CONDITION 0x15 // TPDD2 #define RET_CACHE_STD 0x38 // TPDD2 shared return format for: cache_load cache_write cond_list -#define RET_READ_CACHE 0x39 // TPDD2 +#define RET_CACHE_READ 0x39 // TPDD2 #define RET_PDD2_UNK11 0x3A // TPDD2 unknown function #define RET_PDD2_UNK33 0x3A // TPDD2 same as UNK11 @@ -137,20 +137,39 @@ #define PDD2_COND_POWER 0x01 // bit 0 : low power #define PDD2_COND_NONE 0x00 // no conditions -// fixed lengths +// lengths & addresses #define PDD1_TRACKS 40 #define PDD1_SECTORS 2 #define PDD2_TRACKS 80 #define PDD2_SECTORS 2 -#define TPDD_DATA_MAX 0x80 +#define TPDD_DATA_MAX 260 // largest packet is cache_read can be 256+3 +#define REQ_RW_DATA_MAX 128 // largest chunk size in req_read() req_write() #define LEN_RET_STD 0x01 #define LEN_RET_DME 0x0B #define LEN_RET_DIRENT 0x1C #define TPDD_FILENAME_LEN 24 #define LOCAL_FILENAME_MAX 256 -#define PDD1_SECTOR_ID_LEN 13 -#define PDD1_ID_HDR_LEN 1 -#define PDD1_SECTOR_DATA_LEN 1280 +#define SECTOR_DATA_LEN 1280 +#define PDD1_SECTOR_LSC_LEN 1 +#define PDD1_SECTOR_ID_LEN 12 +#define PDD1_SECTOR_META_LEN (PDD1_SECTOR_LSC_LEN+PDD1_SECTOR_ID_LEN) +#define PDD2_SECTOR_META_LEN 4 +#define SMT_OFFSET 1240 +#define PDD1_SMT 0x80 +#define PDD2_SMT 0xC0 +#define PDD2_META_ADDR 32772 +#define PDD2_CACHE_READ_MAX 252 +#define PDD2_CACHE_WRITE_MAX 127 + +// flags +#define FE_FLAGS_NONE 0x00 +#define FE_FLAGS_DIR 0x01 +#define NO_RET 0 +#define ALLOW_RET 1 +#define CACHE_LOAD 0 +#define CACHE_UNLOAD 2 +#define CACHE_AREA_DATA 0 +#define CACHE_AREA_META 1 // KC-85 platform BASIC interpreter EOL & EOF bytes for bootstrap() #define BASIC_EOL 0x0D @@ -160,14 +179,5 @@ #define OPR_CMD_SYNC 0x5A #define FDC_CMD_EOL 0x0D -#define FE_FLAGS_NONE 0x00 -#define FE_FLAGS_DIR 0x01 -#define RD 0 -#define WR 1 -#define RW 2 - - -#define NO_RET 0 -#define ALLOW_RET 1 #endif // PDD_CONSTANTS_H diff --git a/dir_list.c b/dir_list.c index 787efaa..905591a 100644 --- a/dir_list.c +++ b/dir_list.c @@ -33,7 +33,7 @@ static FILE_ENTRY *tblp = 0; static FILE_ENTRY * current_record (void); int file_list_init () { - tblp = malloc (sizeof (FILE_ENTRY) * FEQ ); + tblp = malloc(sizeof (FILE_ENTRY) * FEQ ); if (!tblp) return -1; allocated = FEQ; ndx = 0; @@ -45,7 +45,7 @@ int file_list_cleanup() { allocated = 0; ndx = 0; cur = 0; - if (tblp) free (tblp); + if (tblp) free(tblp); tblp = NULL; return 0; } @@ -58,7 +58,7 @@ int add_file (FILE_ENTRY *fe) { /** allocate FEQ more records if out of space */ if (ndx >= allocated) { /** resize the array */ - tblp = realloc (tblp, (allocated + FEQ) * sizeof (FILE_ENTRY) ); + tblp = realloc(tblp, (allocated + FEQ) * sizeof (FILE_ENTRY) ); if (!tblp) return -1; allocated += FEQ; } @@ -66,7 +66,7 @@ int add_file (FILE_ENTRY *fe) { /** reference the entry */ if (!tblp) return -1; - memcpy (tblp+ndx, fe, sizeof(FILE_ENTRY)); + memcpy(tblp+ndx, fe, sizeof(FILE_ENTRY)); /** adjust cur to address this record, ndx to next avail */ cur = ndx; ndx++; @@ -96,7 +96,7 @@ FILE_ENTRY * get_next_file (void) { FILE_ENTRY * get_prev_file (void) { if (cur==0) return NULL; cur--; - return current_record (); + return current_record(); } static FILE_ENTRY * current_record (void) { diff --git a/dl.c b/dl.c index abd01e5..2803b31 100644 --- a/dl.c +++ b/dl.c @@ -176,7 +176,7 @@ int client_tty_fd = -1; int disk_img_fd = -1; struct termios client_termios; int o_file_h = -1; -unsigned char gb[TPDD_DATA_MAX+3]; +unsigned char gb[TPDD_DATA_MAX]; char cwd[PATH_MAX] = {0x00}; char dme_cwd[7] = DEFAULT_DME_ROOT_LABEL; char bootstrap_fname[PATH_MAX] = {0x00}; @@ -185,11 +185,11 @@ bool dme_detected = false; bool dme_fdc = false; bool dme_disabled = false; char ch[2] = {0xFF}; -const uint8_t ilen = PDD1_SECTOR_ID_LEN; -const uint16_t dlen = PDD1_SECTOR_DATA_LEN; -unsigned char sb[(PDD1_SECTOR_ID_LEN+PDD1_SECTOR_DATA_LEN)]={0x00}; // avoid malloc/free +uint8_t mlen = PDD2_SECTOR_META_LEN; +const uint16_t dlen = SECTOR_DATA_LEN; const int fdc_logical_size_codes[] = FDC_LOGICAL_SIZE_CODES; const char fdc_cmds[] = FDC_CMDS; +unsigned char * rb = 0x00; FILE_ENTRY *cur_file; int dir_depth=0; @@ -214,11 +214,11 @@ void dbg( const int v, const char* format, ... ) { // (verbosity_threshold, buffer , len) // dbg_b(3, b , 24); // like dbg() except // print the buffer as hex pairs with a single trailing newline -// if len<0, then assume the max tpdd buffer TPDD_DATA_MAX+3 (131) +// if len<0, then assume the max tpdd buffer TPDD_DATA_MAX void dbg_b(const int v, unsigned char *b, int n) { if (debug0x00 && gb[0]!=FDC_CMD_EOL && gb[1]==0x00) c=gb[0]; - memset(gb,0x00,TPDD_DATA_MAX+3); + memset(gb,0x00,TPDD_DATA_MAX); // scan for a valid command byte first while (!c) { @@ -799,9 +791,9 @@ void get_fdc_cmd(void) { // (format & condition have different meanings but the rule still holds) p=0; // real drive uses physical sector 0 when omitted l=1; // real drive uses logical sector 1 when omitted - char* t; - if ((t=strtok(b,","))!=NULL) p=atoi(t); // target physical sector number - if ((t=strtok(NULL,","))!=NULL) l=atoi(t); // target logical sector number + char* t; + if ((t=strtok(b,","))!=NULL) p=atoi(t); // target physical sector number + if ((t=strtok(NULL,","))!=NULL) l=atoi(t); // target logical sector number if (p<0 || p>79 || l<1 || l>20) {ret_fdc_std(ERR_FDC_PARAM,0,0); return;} // debug @@ -825,9 +817,6 @@ void get_fdc_cmd(void) { } } - - - //////////////////////////////////////////////////////////////////////// // // OPERATION MODE @@ -895,7 +884,7 @@ FILE_ENTRY *make_file_entry(char *namep, uint16_t len, char flags) { void ret_std(unsigned char err) { dbg(3,"%s()\n",__func__); gb[0]=RET_STD; - gb[1]=0x01; + gb[1]=1; gb[2]=err; gb[3]=checksum(gb); dbg(3,"Response: %02X\n",err); @@ -968,7 +957,7 @@ int ret_dirent(FILE_ENTRY *ep) { dbg(2,"%s(\"%s\")\n",__func__,ep->client_fname); int i; - memset(gb,0x00,TPDD_DATA_MAX+3); + memset(gb,0x00,TPDD_DATA_MAX); gb[0]=RET_DIRENT; gb[1]=LEN_RET_DIRENT; @@ -1040,7 +1029,7 @@ void dirent_set_name(unsigned char *b) { } } else { if (!strncmp(filename+dot_offset+1,dme_dir_label,2)) f = FE_FLAGS_DIR; - cur_file=make_file_entry(collapse_padded_name(filename), 0, f); + cur_file=make_file_entry(collapse_padded_fname(filename), 0, f); dbg(3,"New %s: \"%s\"\n",f==FE_FLAGS_DIR?"Directory":"File",cur_file->local_fname); ret_dirent(NULL); } @@ -1143,7 +1132,7 @@ void req_fdc() { dbg(3,"dme detected\n"); ret_dme_cwd(); } else { - if (model==2) { ret_std(ERR_PARAM); return; } // real tpdd2 returns + //if (model==2) { ret_std(ERR_PARAM); return; } // real tpdd2 returns opr_mode = 0; dbg(1,"Switching to \"FDC\" mode\n"); // no response to client, just switch modes } @@ -1262,7 +1251,7 @@ void req_read(void) { return; } - i = read(o_file_h, gb+2, TPDD_DATA_MAX); + i = read(o_file_h, gb+2, REQ_RW_DATA_MAX); gb[0]=RET_READ; gb[1] = (unsigned char) i; @@ -1270,7 +1259,7 @@ void req_read(void) { if (debug<4) { dbg(1,"."); - if (idisk) + * b[3] - + * b[4] track 0-79 + * b[5] - + * b[6] sector 0-1 + */ +void req_cache_load(unsigned char *b) { + dbg(3,"%s(action=%u track=%u sector=%u)\n",__func__,b[2],b[4],b[6]); if (model==1) return; - ret_cache_std(ERR_PARAM); + int a=b[2]; + int t=b[4]; + int s=b[6]; + if ((a!=0 && a!=2) || t>79 || s>1) { ret_cache_std(ERR_PARAM); return; } + int rn = t*2 + s; // convert track#:sector# to linear record# + int rl = mlen+dlen; + int e; + + switch (a) { + case CACHE_LOAD: + dbg(2,"cache load: track:%u sector:%u\n",t,s); + e = open_disk_image (rn, O_RDONLY, NO_RET ); + switch (e) { // convert the FDC error codes to equivalent OPR error codes + case ERR_FDC_NO_DISK: e=ERR_NO_DISK; break; + case ERR_FDC_WRITE_PROTECT: e=ERR_WRITE_PROTECT; break; + case ERR_FDC_READ: e=ERR_FMT_INTERRUPT; break; + case ERR_FDC_SUCCESS: e=ERR_SUCCESS; + } + if (e) { ret_cache_std(e); return; } + memset(rb,0x00,rl); + if (read(disk_img_fd,rb,rl)!=rl) { + dbg(2,"failed cache load\n"); + (void)(close(disk_img_fd)+1); + ret_cache_std(ERR_DEFECTIVE); + return; + } + break; + case CACHE_UNLOAD: + dbg(2,"cache unload: track:%u sector:%u\n",t,s); + e = open_disk_image (rn, O_WRONLY, NO_RET ); + switch (e) { // convert the FDC error codes to equivalent OPR error codes + case ERR_FDC_NO_DISK: e=ERR_NO_DISK; break; + case ERR_FDC_WRITE_PROTECT: e=ERR_WRITE_PROTECT; break; + case ERR_FDC_READ: e=ERR_FMT_INTERRUPT; break; + case ERR_FDC_SUCCESS: e=ERR_SUCCESS; + } + if (e) { ret_cache_std(e); return; } + if (write(disk_img_fd,rb,rl)!=rl) { + dbg(2,"failed cache unload\n"); + (void)(close(disk_img_fd)+1); + ret_cache_std(ERR_DEFECTIVE); + return; + } + } + (void)(close(disk_img_fd)+1); + dbg_b(3,rb,rl); + ret_cache_std(ERR_SUCCESS); } -void req_cache_read() { +/* Emulating access to the main data area is pretty straightforward, but the + * metadata area (or maybe it should be called a mode?) is mostly a mystery. + * So we aren't really implementing the full whatever a real drive does for + * metadata read/write, because we don't know what a real drive does. We just + * recognize one magic value for "offset" (which is probably not actually an + * offset while in metadata mode, but just 2 bytes with some other meaning), + * and treat that as an otherwise ordinary access but to the 4-byte metadata + * field instead of the main data field, and just return "success" for all + * other access to the metadata area without actually doing anything. + * Since all other observed accesses to the metadata area are always just writes + * without matching reads, and the data is always the same, it suggests these + * other writes are not storing data but issuing commands to control the drive. + * + * Some metadata accesses from common clients, not including ZZ or checksum: + * "metadatat access" = command 0x31 or 0x32, area/mode 0x01 + * + * BACKUP.BA len area offset data + * 0x31, 0x04, 0x01, 0x00,0x83, 0x00, + * 0x31, 0x04, 0x01, 0x00,0x96, 0x00, + * 0x31, 0x07, 0x01, 0x80,0x04, 0x16,0x00,0x00,0x00 (data varies) this is the only one we actually do anything + * + * TS-DOS + * 0x31, 0x04, 0x01, 0x00,0x84, 0xFF, + * 0x31, 0x04, 0x01, 0x00,0x96, 0x0F, + * 0x31, 0x04, 0x01, 0x00,0x94, 0x0F, + */ + +/* + * req: + * b[0] fmt + * b[1] len 4 + * b[2] area 0=data 1=meta + * b[3] offset msb 0000-0500 + * b[4] offset lsb + * b[5] dlen 00-FC + * b[6] chk + * + * ret: + * b[0] fmt ret_cache_read + * b[1] len + * b[2] area 0=data 1=meta + * b[3] offset msb + * b[4] offset lsb + * b[5+] data dlen bytes + * b[#] chk + */ +void req_cache_read(unsigned char *b) { dbg(3,"%s()\n",__func__); if (model==1) return; - ret_cache_std(ERR_PARAM); + int a = b[2]; + int o = b[3]*256+b[4]; + int l = b[5]; + int e = -1; + dbg(2,"cache_read: area:%u offset:%u len:%u\n",a,o,l); + switch (a) { + case CACHE_AREA_DATA: + if (o+l>SECTOR_DATA_LEN || l>PDD2_CACHE_READ_MAX) e=ERR_PARAM; + o+=PDD2_SECTOR_META_LEN; // shift offset past metadata field + break; + case CACHE_AREA_META: + if (o==PDD2_META_ADDR) { o=0; if (l>PDD2_SECTOR_META_LEN) e=ERR_PARAM; } // set offset to start of metadata field + else e=ERR_PARAM; // this is wrong, real drive returns all kinds of data + break; + default: e=ERR_PARAM; + } + if (e!=-1) { ret_cache_std(e); return; } + dbg(3,"offset:%u len:%u\n",o,l); + + // copy some data from rb[] and return to client + gb[0]=RET_CACHE_READ; + gb[1]=3+l; // len = area + omsb + olsb + data + gb[2]=b[2]; // area + gb[3]=b[3]; // offset msb + gb[4]=b[4]; // offset lsb + memcpy(gb+5,rb+o,l); // data + gb[2+gb[1]]=checksum(gb); // chk + dbg_b(3,gb,-1); + write_client_tty(gb,2+gb[1]+1); } /* - * TPDD2 sector cache write - but not really doing it. - * Previously called "TS-DOS mystery command 1" - * This is just something TS-DOS does to detect TPDD2. Respond just enough - * to satisfy TS-DOS that it may use TPDD2 features like dirent(get-prev). - * Just return a canned packet that means "cache write suceeded". - * http://bitchin100.com/wiki/index.php?title=TPDD-2_Sector_Access_Protocol - * https://github.com/bkw777/pdd.sh search for "pdd2_write_cache - * FIXME: We should really only respond success if the payload exactly - * matches TS-DOS's, and error any other attempt to use this function. + * TPDD2 sector cache write + * Previously called "TS-DOS mystery command 1" and had a canned response, + * now actually implements the function. Aside from being a normal PDD2 sector + * access command, TS-DOS uses it just to detect TPDD2 + * + * b[0] fmt + * b[1] len + * b[2] area + * b[3] offset msb + * b[4] offset lsb + * b[5+] data + * b[#] chk */ -void req_cache_write() { +void req_cache_write(unsigned char *b) { dbg(3,"%s()\n",__func__); if (model==1) return; + int a = b[2]; + int o = b[3]*256+b[4]; + int s = 5; // start of data + int l = b[1]-3; // length of data = length of packet - area - omsb - olsb + int e = -1; + dbg(2,"cache_write: area:%u offset:%u len:%u\n",a,o,l); + switch (a) { + case CACHE_AREA_DATA: + if (o+l>SECTOR_DATA_LEN || l>PDD2_CACHE_WRITE_MAX) e=ERR_PARAM; + o+=PDD2_SECTOR_META_LEN; // shift offset past metadata field + break; + case CACHE_AREA_META: + if (o==PDD2_META_ADDR) { o=0 ;if (l>PDD2_SECTOR_META_LEN) e=ERR_PARAM; } // set offset to start of metadata field + else e=ERR_SUCCESS; // thumbs-up but don't actually do anything + break; + default: e=ERR_PARAM; + } + if (e!=-1) { ret_cache_std(e); return; } + dbg(3,"offset:%u len:%u\n",o,l); + + // copy data from client over part of rb[] + dbg_b(3,b+s,l); + dbg_b(3,rb,mlen+dlen); + memcpy(rb+o,b+s,l); + dbg_b(3,rb,mlen+dlen); ret_cache_std(ERR_SUCCESS); } @@ -1400,7 +1553,7 @@ void req_rename(unsigned char *b) { dbg(3,"%s(%-24.24s)\n",__func__,b+2); if (model==1) return; char *t = (char *)b + 2; - memcpy(t,collapse_padded_name(t),TPDD_FILENAME_LEN); + memcpy(t,collapse_padded_fname(t),TPDD_FILENAME_LEN); if (rename(cur_file->local_fname,t)) ret_std(ERR_SECTOR_NUM); else { @@ -1433,22 +1586,14 @@ void req_condition() { // then: sector 0, byte 1240, write 0x80 (or physical:0 logical:20 byte:25 counting from 1 void req_format() { dbg(2,"%s()\n",__func__); - const int lc = 0; // logical size code - const int ll = lsc_to_len(lc); // logical sector length - //const int mp = 0; // smt physical sector - const int ml = 20; // smt logical sector - const int ms = 24; // smt first byte (from 0) - const int md = 0x80; // smt first byte data (bit flag first sector used) - const int fsl = ilen+dlen; // full sector length - const int sc = (PDD1_TRACKS*PDD1_SECTORS); // sectors count - - int pn = 0; // physical sector number + const int rl = mlen+dlen; // img file record length + const int rc = model==1?(PDD1_TRACKS*PDD1_SECTORS):(PDD2_TRACKS*PDD2_SECTORS); // records count + int rn = 0; // record number dbg(0,"Operation-mode Format (make a filesystem)\n"); - int e = open_disk_image(0,WR,NO_RET); - // convert the FDC error codes to equivalent OPR error codes - switch (e) { + int e = open_disk_image(0,O_WRONLY,NO_RET); + switch (e) { // convert the FDC error codes to equivalent OPR error codes case ERR_FDC_NO_DISK: e=ERR_NO_DISK; break; case ERR_FDC_WRITE_PROTECT: e=ERR_WRITE_PROTECT; break; case ERR_FDC_READ: e=ERR_FMT_INTERRUPT; break; @@ -1456,29 +1601,17 @@ void req_format() { } if (e) { ret_std(e); return; } - // create the blank space - memset(sb,0x00,fsl); // one full sector including size code, ID, & DATA - sb[0]=lc; // logical size code - for (pn=0;pn2) model=2; + if (model==1) mlen = PDD1_SECTOR_META_LEN; resolve_client_tty_name(); find_lib_file(disk_img_fname); + if (disk_img_fname[0]) rb = malloc(mlen+dlen); find_lib_file(bootstrap_fname); - if (model<1||model>2) model=2; - (void)(getcwd(cwd,PATH_MAX-1)+1); if (x) { show_config(); return 0; } diff --git a/ref/disk_image_files.txt b/ref/disk_image_files.txt index 2af61b9..79d8c62 100644 --- a/ref/disk_image_files.txt +++ b/ref/disk_image_files.txt @@ -2,16 +2,12 @@ Disk Image Files This feature is new and limited at present. -The -i option takes a filename of a disk image file of a TPDD1/FB-100 -disk (no TPDD2 support yet). +The -i option takes a filename of a disk image file of a TPDD1/FB-100 or +TPDD2 disk image. If the file does not already exist, and the client issues a format command, the file will be created and filled with nulls and sector headers. -Both TPDD1 and TPDD2 are described here but only TPDD1 is actually supported -yet. The TPDD2 image file format is just already known because pdd.sh already -uses it, and dlplus will eventually use the same thing. - A *.pdd1 TPDD1 disk image file is composed of 80 records. Each record is composed of 3 fields: Logical Size Code, ID, DATA @@ -39,9 +35,9 @@ This is a subset of the fields on a real disk, but it's everything needed to duplicate a disk. The other fields are just things a real drive uses internally. -Currently, disk image files are only usable for TPDD1 FDC-mode sector access -commands. Meaning you can not use dlplus to access the files within a disk -image, only read and write the raw sectors. It's useful for cloning whole +Currently, disk image files are only usable for sector access commands. +Meaning you can not use dlplus to access the files within a disk image, +only read and write the raw sectors. It's useful for cloning whole disks that are otherwise impossible to copy by normal file-access commands, and useful for applications that only use FDC-mode commands like databases. @@ -55,12 +51,12 @@ but the installer uses sector-access commands to read 4 64-byte chunks of raw data from an unmarked sector. Generally, you also need to use some extra commandline options to disable -TS-DOS DME support: "-e" , and to force TPDD1-only emulation: "-m 1" . +TS-DOS DME support: "-e" , and to force TPDD1-only or TPDD2-only emulation: +"-m 1" / "-m 2". Ex: $ dl -vue -m 1 -i Sardine_American_English.pdd1 It's not a requirement of using disk images in general, it's just that in both real example uses so far, the client software triggers unexpected responses -that a real drive wouldn't do. Disabling TPDD2 and DME makes dlplus act more -like a real TPDD1 drive, and allows the client software to work. +from the server that a real drive wouldn't do. https://github.co/bkw777/pdd.sh creates disk image files from real disks, and re-creates real disks from disk image files of this same format. From 0dbd33ba707949525727b99db6c1a7c95dd625b1 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 14 Jul 2022 07:01:06 -0400 Subject: [PATCH 087/206] fix req_format() --- README.md | 70 +++++++++++++++++-------------- constants.h | 4 ++ dl.c | 89 ++++++++++++++++++---------------------- ref/disk_image_files.txt | 46 ++++++++++----------- 4 files changed, 106 insertions(+), 103 deletions(-) diff --git a/README.md b/README.md index 8806d50..d794729 100644 --- a/README.md +++ b/README.md @@ -26,25 +26,22 @@ $ dl -h ``` $ dl -h -dl - DeskLink+ v1.5.010-47-g93f3db4 - help +DeskLink+ v1.5.010-90-gf089dd1 +dl - DeskLink+ v1.5.010-90-gf089dd1 - main help usage: dl [options] [tty_device] [share_path] options: - -0 Raw mode. Do not munge filenames in any way. - Disables 6.2 or 8.2 filename trucating & padding - Changes the attribute byte to ' ' instead of 'F' - Disables adding the TS-DOS ".<>" extension for directories - The entire 24 bytes of the filename field on a real drive is used. + -0 Raw mode - no filename munging, attr = ' ' -a c Attr - attribute used for all files (F) - -b file Bootstrap: Send loader file to client - -d tty Serial device to client (ttyUSB0) + -b file Bootstrap - send loader file to client + -d tty Serial device connected to client (ttyUSB0) -e Disable TS-DOS directory extension (enabled) -g Getty mode - run as daemon -h Print this help -i file Disk image file for raw sector access, TPDD1 only - -l List available loader files and bootstrap help - -m # TPDD Model - 1 or 2 (2) + -l List loader files and show bootstrap help + -m model Model: 1 for TPDD1, 2 for TPDD2 (2) -p dir Share path - directory with files to be served (.) -r RTS/CTS hardware flow control -s # Speed - serial port baud rate 9600 or 19200 (19200) @@ -53,14 +50,14 @@ options: -w WP-2 mode - 8.2 filenames -z # Milliseconds per byte for bootstrap (7) -Alternative to the -d and -p options, The 1st non-option argument is another way to specify the tty device. The 2nd non-option argument is another way to specify the share path. dl - dl -vv /dev/ttyS0 - dl ttyUSB1 -v -w ~/Documents/wp2files + dl -vvvu -p ~Downloads/REX/ROMS + dl -vw ttyUSB1 ~/Documents/wp2files +$ ``` ``` $ dl -l @@ -79,8 +76,8 @@ if not found in the current directory. Examples: dl -b TS-DOS.100 - dl -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 - dl -b ./rxcini.DO + dl -vb ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 + dl -vb rxcini.DO ``` @@ -98,7 +95,7 @@ $ dl -vb TS-DOS.100 ## bootstrap a [REXCPM](http://bitchin100.com/wiki/index.php?title=REXCPM) ``` $ unzip REXCPMV21_b19.ZIP -$ dl -vb ./rxcini.DO ;dl -vu +$ dl -vb rxcini.DO && dl -vu ``` ## UR-II @@ -131,26 +128,39 @@ Limitations: Only supports sector access to the disk image. You can't "mount" th Useful working examples: Sardine_American_English.pdd1, Disk_Power_KC-85.pdd1 -Those examples are both TPDD1, but both TPDD1 and TPDD2 are supported. Merely there are no known database application disks like Sardine on TPDD2 media to make a good TPDD2 example. You can load up the image of the TPDD2 Utility Disk included with pdd.sh just to see that it works, but that isn't useful for anything. +Those examples are both TPDD1, but both TPDD1 and TPDD2 are supported. There just are no known database application disks like Sardine on TPDD2 media to make a good TPDD2 example. You can load up the image of the TPDD2 Utility Disk included with pdd.sh just to see that it works, but that isn't useful for anything. -Example, using Sardine with a Model 100 with [Ultimate ROM II rom](http://www.club100.org/library/librom.html) (or [REX](http://bitchin100.com/wiki/index.php?title=Rex) with UR-II loaded): +Example, using Sardine with a Model 100 with an [Ultimate ROM II rom](http://www.club100.org/library/librom.html) installed (or loaded in a [REX](http://bitchin100.com/wiki/index.php?title=Rex)): +One way to use Sardine is to let UR-II load/unload the program (SAR100.CO for model 100, or SAR200.CO for model 200) from disk into ram on the fly instead of installing permanently in ram normally, and then the program accesses a special dictionary data disk with sector access commands. +So for this to work, UR-II has to be able to load SAR100.CO from disk, and then SAR100.CO needs to be able to read raw sectors from the dictionary disk. +This involves two features of dlplus. First, magic files. SAR100.CO is one of the "magic" files bundled with the app, which are always loadable from a client even if there is no such file in the share directory. When UR-II tries to load a file by that name, if there is a file by that name in the current working directory it is used, but even if there is no such file, the file access still works because then it just comes from /usr/local/lib/dl . +Second, disk image files and sector-access commands. If a disk image file is loaded with the -i option, then when a client tries to use sector-access commands, they work, and the data reads from / writes to the image file. If the given filename does not exist it will be created if the client issues a format command. If the given filename does not exist and is not given with any leading path, then it is searched for in /usr/local/lib/dl, as a few special disks are bundled with the app, and the Sardine dictionary is one. -First, run dl with the following commandline arguments to force TPDD1 emulation, disable TS-DOS directory support, and load the Sardine American English dictionary disk: +To try it out, + +1: Run dl with the following commandline arguments, ``` $ dl -vue -m 1 -i Sardine_American_English.pdd1 ``` -This provides both SAR100.CO and the dictionary disk. SAR100.CO (and SAR200.CO) are installed in /usr/local/lib/dl, and are "magic" files that are always found when the client tries to load them, even if they aren't in the directory being shared. Similarly, Sardine_American_English.pdd1 is in the same lib directory and is found when you specify the filename without any path. -Enter the UR-2 menu. Notice the SARDIN entry with the word OFF under it. Hit enter on SARDIN. Say Y if you get a prompt about HIMEM. -This loads SAR100.CO into ram, and now the SARDIN entry says ON under it. -Now enter T-Word and start a new document and type some text. -Finally, hit Graph+F to invoke Sardine to spell-check the document. +This tells dlplus to strictly emulate a TPDD1, disable some TPDD2 features and TS-DOS directory support which confuses SAR100.CO, and load the Sardine American English dictionary disk for sector-access commands. +SAR100.CO is always being provided automatically regardless of any commandline options, and "-i Sardine_American_English.pdd1" will get "Sardine_American_English.pdd1" from /usr/local/lib/dl. + +2: Enter the UR-2 menu. +Notice the SARDIN entry with the word OFF under it. +Hit enter on SARDIN. +Say Y if you get a prompt about HIMEM. +This loads SAR100.CO into ram, and now the SARDIN entry says ON under it. + +3: Enter T-Word and start a new document and type some text. -Example, installing Disk_Power for KC-85 -See [Disk_Power.txt](clients/disk_power/Disk_Power.txt) +4: Press GRPH+F to invoke Sardine to spell-check the document. +This will invoke the SAR100.CO previously loaded, which will try to do TPDD1 FDC-mode sector access, wich dlplus will respond to with data from the .pdd1 file. + +Another example, [installing Disk Power for Kyotronic KC-85](clients/disk_power/Disk_Power.txt) Disk image files may be created 2 ways: -* Run `dl -i ./filename` with a non-existing or empty file (include the ./ to prevent it from trying to find a file in /usr/local/ib/dl), and then issue a format command from a client. "client" may be TS-DOS or Floppy on a M100, or pdd.sh or PDD.EXE or TpddTool.py etc connected by a null-modem cable, or even a WP-2 or Z88, etc.) -* Use [pdd.sh](https://github.com/bkw777/pdd.sh) "dump disk" command to read a real disk from a real drive into a disk image file. pdd.sh now uses the same binary disk image file format as dlplus. +* Use [pdd.sh](https://github.com/bkw777/pdd.sh) **dd** command to read a real disk from a real drive into a disk image file. +* Run `dl -v -m 1 -i filename.pdd1` or `dl -v -m 2 -i filename.pdd2` with a non-existing or empty file, and then use a client to format disk and write sectors. Disk image format [disk_image_files.txt](ref/disk_image_files.txt) @@ -164,6 +174,4 @@ or you can confuse someone... $ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl ``` ## OS Compatibility -Tested on Linux, Macos, FreeBSD - -Notes for [FreeBSD](ref/freebsd.txt) +Tested on Linux, Macos, [FreeBSD](ref/freebsd.txt) diff --git a/constants.h b/constants.h index 93b9191..40044c7 100644 --- a/constants.h +++ b/constants.h @@ -137,6 +137,10 @@ #define PDD2_COND_POWER 0x01 // bit 0 : low power #define PDD2_COND_NONE 0x00 // no conditions +// misc +#define UNK11_RET_DAT {RET_PDD2_UNK11,0x06,0x80,0x13,0x05,0x00,0x10,0xE1} +#define UNK23_RET_DAT {RET_PDD2_UNK23,0x0F,0x41,0x10,0x01,0x00,0x50,0x05,0x00,0x02,0x00,0x28,0x00,0xE1,0x00,0x00,0x00} + // lengths & addresses #define PDD1_TRACKS 40 #define PDD1_SECTORS 2 diff --git a/dl.c b/dl.c index 2803b31..9eb8a6e 100644 --- a/dl.c +++ b/dl.c @@ -139,11 +139,11 @@ char * magic_files [] = { "DOSNEC.CO", "SAR100.CO", "SAR200.CO", - "SARNEC.CO", - "DOSM10.CO", // these probably never existed - "DOSK85.CO", - "SARM10.CO", - "SARK85.CO" + "SARNEC.CO", // This is known to have existed, but is currently lost. + "DOSM10.CO", // The rest may have never existed, + "DOSK85.CO", // and the filenames are just guesses. + "SARM10.CO", // + "SARK85.CO" // }; // termios VMIN & VTIME @@ -194,10 +194,8 @@ unsigned char * rb = 0x00; FILE_ENTRY *cur_file; int dir_depth=0; -// blarghamagargles void show_main_help(); - /* primitives and utilities */ // (verbosity_threshold, printf_format , args...) @@ -287,28 +285,24 @@ void find_lib_file (char *f) { char t[PATH_MAX]={0x00}; if (f[0]=='~' && f[1]=='/') { - strcpy(t,getenv("HOME")); - strcat(t,f+1); - } else strcpy(t,f); - - if (f[0]!='/' && !(f[0]=='.' && f[1]=='/')) { - if (access(t,F_OK)) memset(t,0x00,PATH_MAX); - if (t[0]==0) { - strcpy(t,app_lib_dir); - strcat(t,"/"); - strcat(t,f); - } + strcpy(t,f); + memset(f,0x00,PATH_MAX); + strcpy(f,getenv("HOME")); + strcat(f,t+1); } - dbg(0,"Loading: \"%s\"\n",t); - - if (access(t,F_OK)==-1) { - dbg(0,"Not found.\n"); - return; + if (f[0]!='/' && f[0]!='.' && f[1]!='/' && access(f,F_OK)) { + memset(t,0x00,PATH_MAX); + strcpy(t,app_lib_dir); + strcat(t,"/"); + strcat(t,f); + if (!access(t,F_OK)) { + memset(f,0x00,PATH_MAX); + strcpy(f,t); + } } - memset(f,0x00,PATH_MAX); - strcpy(f,t); + dbg(0,"Loading: \"%s\"\n",f); } void resolve_client_tty_name () { @@ -1522,7 +1516,7 @@ void req_cache_write(unsigned char *b) { void ret_pdd2_unk23() { dbg(3,"%s()\n",__func__); if (model==1) return; - static unsigned char canned[] = {RET_PDD2_UNK23, 0x0F, 0x41, 0x10, 0x01, 0x00, 0x50, 0x05, 0x00, 0x02, 0x00, 0x28, 0x00, 0xE1, 0x00, 0x00, 0x00}; + static unsigned char canned[] = UNK23_RET_DAT; memcpy(gb, canned, canned[1]+2); gb[canned[1]+2] = checksum(gb); write_client_tty(gb, gb[1]+3); @@ -1530,8 +1524,8 @@ void ret_pdd2_unk23() { /* * Similar to unk23, except the response is different, and not used by TS-DOS. - * Nothing uses this command that I know of. I just found it by feeding - * abitrary commands to a real drive with github/bkw777/pdd.sh + * Nothing is known to use this command. It was just found by feeding arbitrary + * commands to a real drive with github/bkw777/pdd.sh * 0x11 and 0x33 both produce the same response. Possibly 0x11 and 0x33 are * just different versions of the same function, like how 0x4# commands are * really just 0x0# commands for bank 1 instead of bank 0? Just a guess. @@ -1542,8 +1536,8 @@ void ret_pdd2_unk23() { */ void ret_pdd2_unk11() { dbg(3,"%s()\n",__func__); - if (model==2) return; - static unsigned char canned[] = {RET_PDD2_UNK11, 0x06, 0x80, 0x13, 0x05, 0x00, 0x10, 0xE1}; + if (model==1) return; + static unsigned char canned[] = UNK11_RET_DAT; memcpy(gb, canned, canned[1]+2); gb[canned[1]+2] = checksum(gb); write_client_tty(gb, gb[1]+3); @@ -1602,11 +1596,15 @@ void req_format() { if (e) { ret_std(e); return; } // write the image + // TPDD1 fresh OPR-mode format is strange. + // Sector 0 gets logical size code 0, and all other sectors get lsc 1. + // We exactly mimick that here "just because", even though the lsc 1's + // don't seem to serve any purpose or have any effect. for (rn=0;rn Date: Tue, 19 Jul 2022 00:17:06 -0400 Subject: [PATCH 088/206] TEENY.M10 --- clients/teeny/TEENY.M10 | 34 +--------------------------------- 1 file changed, 1 insertion(+), 33 deletions(-) diff --git a/clients/teeny/TEENY.M10 b/clients/teeny/TEENY.M10 index f9f025b..8f1924b 100644 --- a/clients/teeny/TEENY.M10 +++ b/clients/teeny/TEENY.M10 @@ -1,33 +1 @@ -0'TEENY for Olivetti M10 USA variant laptop (c) 2015 Ron Wiesen Technical Products -0'Installer tweaks for dlplus - b.kenyon.w@gmail.com 2021 -0CLEAR99:B%=0:I%=0:S!=0:U$="":L$="":H$="0123456789ABCDEF":P%=0:D$="":T%=0:E%=0 -1FORB%=0TO7:S!=S!+PEEK(B%+32496):NEXT:IFS!-624THEN?"Not an Olivetti M-10":END -2READT%,E%:I%=T%:S!=T%+E%+T%:IFHIMEM-2^16>T%THENCLEAR0,T%:RUN -3READD$:IFD$="END"THEN7 -4FORP%=1TOLEN(D$)STEP2:U$=MID$(D$,P%,1):L$=MID$(D$,P%+1,1) -5B%=16*INSTR(H$,U$)-17+INSTR(H$,L$) -6POKEI%,B%:?".";:S!=S!+B%:I%=I%+1:NEXT:GOTO3 -7READD$:IFS!-VAL(D$)THEN?"Checksum Error":END -8IFFRE(0)<7+E%-T%THENEND -9SAVEM"TEENY",T%,E%,T%:END -10DATA-3323,-2577 -11DATA210000392206FD215A5A220AFD2A06FDF9AF3208FD2112F3E521AFF3CDA511326DFFCD3946216EF3 -12DATA2255F62189F63622CD1E4CCD5A213A88F6FE51CAA257FE53CA88F5F5CD5FF4CA5CF3F1D64BCA4DF4 -13DATA3DCAB8F41E00011E02011E06011E08011E10011E12011E14011E163A08FDB7CA84F3D52A02FD444D -14DATA2A00FDCDA46BD12197F31600197EE7D7E721CAF3CDA511C312F3534E46464E52434D494F57504446 -15DATA4E4441454F4D464C4E4D3E2043204646464646462E58582028433D4B4C5351290D0A3E2000204572 -16DATA720D0A00162E1B7AB3C2D3F3C939384E3144210CFD77233600C9DBBBE620C91E04C370F3210CFD7E -17DATA2386577E5F4723B77ACA07F486231DC201F42F773E058047210AFD7ECD396EDA62F3CDE7F32305C2 -18DATA10F4210CFDCD9F76CD3EF4CD3EF44F0CCD3EF40DC22DF4AF30210DFD4E237EB7C9CDE7F3CD856DDA -19DATA62F3C25FF37723C93E05CDDFF3CDF1F3C8E6F01F1F1F5FC370F3CD636FCDD1F321DAF337CDF0173E -20DATA07CD4FF4AFCDDFF3361A23118AF60609CD8334060F36202305C282F436462370CDF1F3473A0CFDFE -21DATA12CA56F478B7C91E013E01CDDFF3772373C352F4D13E04CDDFF3712341CD8334C352F4CDC120C265 -22DATAF3216BF32255F6CDF620E5CD7FF52A27FD454C69602204FD0B5F3C033DC2D8F457214CF519191919 -23DATA197EF51175F5D5235E2356D5235E23666B5E235660692202FDEB2200FDE5CD726BDA68F32108FD34 -24DATACD34F52A04FDEBE13A0CFD4F06007AB379320CFDC8B7FC39F51BE5210EFD097EE177230CC31BF51E -25DATA03CD9EF4E5D53E03CDDFF3CD8DF4AF474F320CFDD1E1C9A06EF5B6FBC05BF5B4FB805EF59DF9361A -26DATAC9AF7723772A02FDEB2AB4FB1922B4FBC92A00FD22B6FBC9F12A00FDEB1BE1C352223A9FFCD643F0 -27DATA3E02C9CD5FF4C265F33A9FFCFE42DA6EF3FE45D26EF3CDC120CA5CF3CD7FF54F3E0291C5D5EBCDB6 -28DATA21D17D936F7C9A67C10C232B0DC2B8F57DB4C8D5E5CD9CF4D1E1CDCFF53E02C34FF4E5E5218000DF -29DATAD2EBF54D44E109E3EB0180FF09E5CDAAF4D1E1C3CFF54BE1C3A9F4 -30DATAEND,85504 +0'TEENY installer for Olivetti M10, USA variant (c) 2015 Ron Wiesen Technical Products, based on TINY by Acroatix 0CLS:?"Installing TEENY...";:CLEAR99:S!=0:H$="0123456789ABCDEF":FORB%=0TO7:S!=S!+PEEK(B%+32496):NEXT:IFS!-624THEN?"Not a North American Olivetti M-10":END 1READT%,E%:I%=T%:S!=T%+E%+T%:IFHIMEM-2^16>T%THENCLEAR0,T%:RUN 2?".";:READD$:IFD$="END"THEN6 3FORP%=1TOLEN(D$)STEP2:U$=MID$(D$,P%,1):L$=MID$(D$,P%+1,1) 4B%=16*INSTR(H$,U$)-17+INSTR(H$,L$) 5POKEI%,B%:S!=S!+B%:I%=I%+1:NEXT:GOTO2 6READD$:IFS!-VAL(D$)THEN?"Checksum Error":END 7IFFRE(0)<7+E%-T%THENEND 8SAVEM"TEENY",T%,E%,T%:END 9DATA-3323,-2577 10DATA210000392206FD215A5A220AFD2A06FDF9AF3208FD2112F3E521AFF3CDA511326DFFCD3946216EF32255F62189F63622CD1E4CCD5A213A88F6FE51CAA257FE53CA88F5F5CD5FF4CA5CF3F1D64BCA4DF43DCAB8F41E00011E02011E06011E08011E10011E12011E14011E163A08FDB7CA84F3D52A02FD444D 11DATA2A00FDCDA46BD12197F31600197EE7D7E721CAF3CDA511C312F3534E46464E52434D494F575044464E4441454F4D464C4E4D3E2043204646464646462E58582028433D4B4C5351290D0A3E2000204572720D0A00162E1B7AB3C2D3F3C939384E3144210CFD77233600C9DBBBE620C91E04C370F3210CFD7E 12DATA2386577E5F4723B77ACA07F486231DC201F42F773E058047210AFD7ECD396EDA62F3CDE7F32305C210F4210CFDCD9F76CD3EF4CD3EF44F0CCD3EF40DC22DF4AF30210DFD4E237EB7C9CDE7F3CD856DDA62F3C25FF37723C93E05CDDFF3CDF1F3C8E6F01F1F1F5FC370F3CD636FCDD1F321DAF337CDF0173E 13DATA07CD4FF4AFCDDFF3361A23118AF60609CD8334060F36202305C282F436462370CDF1F3473A0CFDFE12CA56F478B7C91E013E01CDDFF3772373C352F4D13E04CDDFF3712341CD8334C352F4CDC120C265F3216BF32255F6CDF620E5CD7FF52A27FD454C69602204FD0B5F3C033DC2D8F457214CF519191919 14DATA197EF51175F5D5235E2356D5235E23666B5E235660692202FDEB2200FDE5CD726BDA68F32108FD34CD34F52A04FDEBE13A0CFD4F06007AB379320CFDC8B7FC39F51BE5210EFD097EE177230CC31BF51E03CD9EF4E5D53E03CDDFF3CD8DF4AF474F320CFDD1E1C9A06EF5B6FBC05BF5B4FB805EF59DF9361A 15DATAC9AF7723772A02FDEB2AB4FB1922B4FBC92A00FD22B6FBC9F12A00FDEB1BE1C352223A9FFCD643F03E02C9CD5FF4C265F33A9FFCFE42DA6EF3FE45D26EF3CDC120CA5CF3CD7FF54F3E0291C5D5EBCDB621D17D936F7C9A67C10C232B0DC2B8F57DB4C8D5E5CD9CF4D1E1CDCFF53E02C34FF4E5E5218000DF 16DATAD2EBF54D44E109E3EB0180FF09E5CDAAF4D1E1C3CFF54BE1C3A9F4 17DATAEND,85504 \ No newline at end of file From 77bb331ff4054cb96f8c2d73fad43498b17ca97d Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 20 Jul 2022 05:47:12 -0400 Subject: [PATCH 089/206] teeny.m10 --- clients/teeny/TEENY.M10 | 2 +- dl.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/clients/teeny/TEENY.M10 b/clients/teeny/TEENY.M10 index 8f1924b..0af3335 100644 --- a/clients/teeny/TEENY.M10 +++ b/clients/teeny/TEENY.M10 @@ -1 +1 @@ -0'TEENY installer for Olivetti M10, USA variant (c) 2015 Ron Wiesen Technical Products, based on TINY by Acroatix 0CLS:?"Installing TEENY...";:CLEAR99:S!=0:H$="0123456789ABCDEF":FORB%=0TO7:S!=S!+PEEK(B%+32496):NEXT:IFS!-624THEN?"Not a North American Olivetti M-10":END 1READT%,E%:I%=T%:S!=T%+E%+T%:IFHIMEM-2^16>T%THENCLEAR0,T%:RUN 2?".";:READD$:IFD$="END"THEN6 3FORP%=1TOLEN(D$)STEP2:U$=MID$(D$,P%,1):L$=MID$(D$,P%+1,1) 4B%=16*INSTR(H$,U$)-17+INSTR(H$,L$) 5POKEI%,B%:S!=S!+B%:I%=I%+1:NEXT:GOTO2 6READD$:IFS!-VAL(D$)THEN?"Checksum Error":END 7IFFRE(0)<7+E%-T%THENEND 8SAVEM"TEENY",T%,E%,T%:END 9DATA-3323,-2577 10DATA210000392206FD215A5A220AFD2A06FDF9AF3208FD2112F3E521AFF3CDA511326DFFCD3946216EF32255F62189F63622CD1E4CCD5A213A88F6FE51CAA257FE53CA88F5F5CD5FF4CA5CF3F1D64BCA4DF43DCAB8F41E00011E02011E06011E08011E10011E12011E14011E163A08FDB7CA84F3D52A02FD444D 11DATA2A00FDCDA46BD12197F31600197EE7D7E721CAF3CDA511C312F3534E46464E52434D494F575044464E4441454F4D464C4E4D3E2043204646464646462E58582028433D4B4C5351290D0A3E2000204572720D0A00162E1B7AB3C2D3F3C939384E3144210CFD77233600C9DBBBE620C91E04C370F3210CFD7E 12DATA2386577E5F4723B77ACA07F486231DC201F42F773E058047210AFD7ECD396EDA62F3CDE7F32305C210F4210CFDCD9F76CD3EF4CD3EF44F0CCD3EF40DC22DF4AF30210DFD4E237EB7C9CDE7F3CD856DDA62F3C25FF37723C93E05CDDFF3CDF1F3C8E6F01F1F1F5FC370F3CD636FCDD1F321DAF337CDF0173E 13DATA07CD4FF4AFCDDFF3361A23118AF60609CD8334060F36202305C282F436462370CDF1F3473A0CFDFE12CA56F478B7C91E013E01CDDFF3772373C352F4D13E04CDDFF3712341CD8334C352F4CDC120C265F3216BF32255F6CDF620E5CD7FF52A27FD454C69602204FD0B5F3C033DC2D8F457214CF519191919 14DATA197EF51175F5D5235E2356D5235E23666B5E235660692202FDEB2200FDE5CD726BDA68F32108FD34CD34F52A04FDEBE13A0CFD4F06007AB379320CFDC8B7FC39F51BE5210EFD097EE177230CC31BF51E03CD9EF4E5D53E03CDDFF3CD8DF4AF474F320CFDD1E1C9A06EF5B6FBC05BF5B4FB805EF59DF9361A 15DATAC9AF7723772A02FDEB2AB4FB1922B4FBC92A00FD22B6FBC9F12A00FDEB1BE1C352223A9FFCD643F03E02C9CD5FF4C265F33A9FFCFE42DA6EF3FE45D26EF3CDC120CA5CF3CD7FF54F3E0291C5D5EBCDB621D17D936F7C9A67C10C232B0DC2B8F57DB4C8D5E5CD9CF4D1E1CDCFF53E02C34FF4E5E5218000DF 16DATAD2EBF54D44E109E3EB0180FF09E5CDAAF4D1E1C3CFF54BE1C3A9F4 17DATAEND,85504 \ No newline at end of file +0'TEENY installer for Olivetti M10, USA variant (c) 2015 Ron Wiesen Technical Products, based on TINY by Acroatix 0CLS:?"Installing TEENY...";:CLEAR99:S!=0:H$="0123456789ABCDEF":FORB%=0TO7:S!=S!+PEEK(B%+32496):NEXT:IFS!-624THEN?"Not a North American Olivetti M-10":END 1READT%,E%:I%=T%:S!=T%+E%+T%:IFHIMEM-2^16>T%THENCLEAR0,T%:RUN 2?".";:READD$:IFD$="END"THEN6 3FORP%=1TOLEN(D$)STEP2:U$=MID$(D$,P%,1):L$=MID$(D$,P%+1,1) 4B%=16*INSTR(H$,U$)-17+INSTR(H$,L$) 5POKEI%,B%:S!=S!+B%:I%=I%+1:NEXT:GOTO2 6READD$:IFS!-VAL(D$)THEN?"Checksum Error":END 7IFFRE(0)<7+E%-T%THENEND 8SAVEM"TEENY",T%,E%,T%:CLEAR:END 9DATA-3323,-2577 10DATA210000392206FD215A5A220AFD2A06FDF9AF3208FD2112F3E521AFF3CDA511326DFFCD3946216EF32255F62189F63622CD1E4CCD5A213A88F6FE51CAA257FE53CA88F5F5CD5FF4CA5CF3F1D64BCA4DF43DCAB8F41E00011E02011E06011E08011E10011E12011E14011E163A08FDB7CA84F3D52A02FD444D 11DATA2A00FDCDA46BD12197F31600197EE7D7E721CAF3CDA511C312F3534E46464E52434D494F575044464E4441454F4D464C4E4D3E2043204646464646462E58582028433D4B4C5351290D0A3E2000204572720D0A00162E1B7AB3C2D3F3C939384E3144210CFD77233600C9DBBBE620C91E04C370F3210CFD7E 12DATA2386577E5F4723B77ACA07F486231DC201F42F773E058047210AFD7ECD396EDA62F3CDE7F32305C210F4210CFDCD9F76CD3EF4CD3EF44F0CCD3EF40DC22DF4AF30210DFD4E237EB7C9CDE7F3CD856DDA62F3C25FF37723C93E05CDDFF3CDF1F3C8E6F01F1F1F5FC370F3CD636FCDD1F321DAF337CDF0173E 13DATA07CD4FF4AFCDDFF3361A23118AF60609CD8334060F36202305C282F436462370CDF1F3473A0CFDFE12CA56F478B7C91E013E01CDDFF3772373C352F4D13E04CDDFF3712341CD8334C352F4CDC120C265F3216BF32255F6CDF620E5CD7FF52A27FD454C69602204FD0B5F3C033DC2D8F457214CF519191919 14DATA197EF51175F5D5235E2356D5235E23666B5E235660692202FDEB2200FDE5CD726BDA68F32108FD34CD34F52A04FDEBE13A0CFD4F06007AB379320CFDC8B7FC39F51BE5210EFD097EE177230CC31BF51E03CD9EF4E5D53E03CDDFF3CD8DF4AF474F320CFDD1E1C9A06EF5B6FBC05BF5B4FB805EF59DF9361A 15DATAC9AF7723772A02FDEB2AB4FB1922B4FBC92A00FD22B6FBC9F12A00FDEB1BE1C352223A9FFCD643F03E02C9CD5FF4C265F33A9FFCFE42DA6EF3FE45D26EF3CDC120CA5CF3CD7FF54F3E0291C5D5EBCDB621D17D936F7C9A67C10C232B0DC2B8F57DB4C8D5E5CD9CF4D1E1CDCFF53E02C34FF4E5E5218000DF 16DATAD2EBF54D44E109E3EB0180FF09E5CDAAF4D1E1C3CFF54BE1C3A9F4 17DATAEND,85504 \ No newline at end of file diff --git a/dl.c b/dl.c index 9eb8a6e..202e360 100644 --- a/dl.c +++ b/dl.c @@ -114,7 +114,8 @@ TPDD1 software manual. There is no known TPDD2 software manual. // Most things get away with 5ms. // REXCPM rxcini.do requires 6ms. // TS-DOS.200 requires 7ms. (a "?" on line 3 gets dropped) -#define DEFAULT_BASIC_BYTE_MS 7 +// TEENY.M10 requires 8-10 +#define DEFAULT_BASIC_BYTE_MS 8 #define DEFAULT_TPDD_FILE_ATTR 0x46 // F From 47cb32ce3eda60a79e7d768170f40edda999bdad Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 20 Jul 2022 06:02:45 -0400 Subject: [PATCH 090/206] disk power doc --- clients/disk_power/Disk_Power.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clients/disk_power/Disk_Power.txt b/clients/disk_power/Disk_Power.txt index 9b24aee..93489a6 100644 --- a/clients/disk_power/Disk_Power.txt +++ b/clients/disk_power/Disk_Power.txt @@ -13,7 +13,7 @@ pdd.sh so that dlplus can act as a virtual drive for sector access to it. Installation: Just run the following command: - $ dl -vvb Disk_Power.K85 && dl -vue -m 1 -i Disk_Power.K85.pdd1 + $ dl -vb Disk_Power.K85 && dl -vue -m 1 -i Disk_Power.K85.pdd1 (dlplus will get both files from /usr/local/lib/dl) From 5786abcdbda08ead9b6755341530ae557c3a077f Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 10 Sep 2022 17:13:01 -0400 Subject: [PATCH 091/206] expand REXCPM directions --- README.md | 2 +- REXCPM.md | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 REXCPM.md diff --git a/README.md b/README.md index d794729..9b32231 100644 --- a/README.md +++ b/README.md @@ -94,9 +94,9 @@ $ dl -vb TS-DOS.100 ## bootstrap a [REXCPM](http://bitchin100.com/wiki/index.php?title=REXCPM) ``` -$ unzip REXCPMV21_b19.ZIP $ dl -vb rxcini.DO && dl -vu ``` +([full directions](REXCPM.md)) ## UR-II Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS from disk on-the-fly. diff --git a/REXCPM.md b/REXCPM.md new file mode 100644 index 0000000..83bd301 --- /dev/null +++ b/REXCPM.md @@ -0,0 +1,69 @@ +# Initializing a [REXCPM](http://bitchin100.com/wiki/index.php?title=REXCPM) +REXCPM is a pure RAM device. It has no flash or eeprom, and so has to be loaded with software when first installed or any time it loses power. + +## 1: Download and unzip these files all into one directory: +* REXCPMV21_b19.ZIP (or whatever is the latest version) from http://bitchin100.com/wiki/index.php?title=REXCPM#Software +* M100_OPTION_ROMS.zip (or T200_ or NEC_) from http://bitchin100.com/wiki/index.php?title=REXCPM#Option_ROM_Images_for_Download +* CPMUPD.CO and CPM210.BK (or CPM410.BK if you have a 4 Meg unit) from http://bitchin100.com/wiki/index.php?title=M100_CP/M +``` +$ wget http://bitchin100.com/wiki/images/0/03/REXCPMV21_b19.ZIP +$ wget http://bitchin100.com/wiki/images/6/63/M100_OPTION_ROMS.zip +$ wget http://bitchin100.com/wiki/images/8/8e/CPMUPD.CO +$ wget http://bitchin100.com/wiki/images/9/9d/Cpm210.bk +$ unzip REXCPMV21_b19.ZIP +$ unzip M100_OPTION_ROMS.zip +``` + +## 2: bootstrap rxcini.DO and then start the tpdd server with the upcase option. +``` +$ dl -vb rxcini.DO && dl -vu +``` +Enter BASIC on the 100 and type `RUN "COM:98N1ENN"` \[Enter\] +Press Enter on the modern machine. +Load REXCPM code? Yes +Init REXCPM dir? Yes +Execute choices.. sure? (y/n) Y +Name: RXC_12 +("Name:" is the basename portion of `RXC_\*.BR` filename from the REXCPM*.ZIP file. The \* part may change over time, and you don't type the .BR part. Currently in REXCPMV21_b19.ZIP this is `RXC_12.BR`, so you enter `RXC_12` at that prompt.) + +When rxcini finishes, turn the 100 off and back on (electrically triggers the REXCPM into a default state) +Hard-reset the 100: CTRL+BREAK+RESET (frees the ram used by rxcini) +Run BASIC and type: `CALL 63012` \[Enter\] (installs RXCMGR from the REXCPM to the 100's main menu) + +At this point: +* dl will be left running in tpdd server mode on the modern machine. Leave that running while performing all the following actions on the 100. +* the 100 is at the main menu +* there is a `RXCMGR` entry on the main menu + +The REXCPM now has it's basic firmware installed which provides the same REX functionality as REX# or REX Classic. You can use RXCMGR to load option rom images from TPDD, select & activate installed rom images, create and restore ram backup images. + +What is not done yet: +* TS-DOS option rom not installed yet +* CP/M not installed yet + +## 3: Install the TS-DOS option rom image +Run RXCMGR +Press TAB to get to the ROM screen +Press F2 (Load) +Loading from image filename: TSD100 +Press Enter again after the TS-DOS image finishes loading, to activate the TS-DOS rom. (Tis also launches TS-DOS as if you had selected it from the main menu, so at this point you are out of RXCMGR and in the TS-DOS program. It looks very similar to the 100's main menu, because it's the same RAM file list.) + +## 4: Use TS-DOS to copy the CP/M installer onto the 100 +The end of the previous step launched TS-DOS so you should already be sitting in TS-DOS right now. +Press F4 to switch from the RAM file list to the DISK file list. +Use the arrow keys to highlight CPMUPD.CO +Press F1, Enter (don't type anything after "Load as: ") +Press F8 to exit TS-DOS and return to the main menu + +## 5: run the CP/M installer +Run BASIC +Type: `CLEAR 0,60000` \[enter\] +Press F8 to return to the main menu +Run CPMUPD.CO +Enter file name: CPM210.BK (or CPM410.BK if you have a 4M unit) +Are you sure? (y/n) Y + +## Done +REXCPM is now fully installed with both the REX and CP/M parts. +Enter CP/M by pressing CTRL+C at the main menu. +Return from CP/M to the normal main menu by pressing F8. From 5fa5ad79288fb6ba983206c90e4019456611010e Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sat, 10 Sep 2022 17:14:41 -0400 Subject: [PATCH 092/206] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9b32231..487d110 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,8 @@ $ dl -vb TS-DOS.100 ``` $ dl -vb rxcini.DO && dl -vu ``` -([full directions](REXCPM.md)) +([Full directions for REXCPM](REXCPM.md)) + ## UR-II Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS from disk on-the-fly. From 86a734c43ae7928fc0fd8d367d37e0300097858c Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sat, 10 Sep 2022 17:53:59 -0400 Subject: [PATCH 093/206] Update REXCPM.md --- REXCPM.md | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/REXCPM.md b/REXCPM.md index 83bd301..085457d 100644 --- a/REXCPM.md +++ b/REXCPM.md @@ -1,11 +1,19 @@ # Initializing a [REXCPM](http://bitchin100.com/wiki/index.php?title=REXCPM) -REXCPM is a pure RAM device. It has no flash or eeprom, and so has to be loaded with software when first installed or any time it loses power. +REXCPM is a pure RAM device. It has no flash or eeprom, and so has to be loaded with software when first installed, or any time the 100's internal memory battery dies all the way, or if the REXCPM is removed from the 100 for more than a minute or so. + +## 1: Download and unzip the following all into one directory: +* REXCPMV21_b19.ZIP (or whatever is the latest version at the time) +from http://bitchin100.com/wiki/index.php?title=REXCPM#Software + +* M100_OPTION_ROMS.zip (or T200_ or NEC_) +from http://bitchin100.com/wiki/index.php?title=REXCPM#Option_ROM_Images_for_Download + +* CPMUPD.CO and CPM210.BK (or CPM410.BK if you have a 4 Meg unit) +from http://bitchin100.com/wiki/index.php?title=M100_CP/M -## 1: Download and unzip these files all into one directory: -* REXCPMV21_b19.ZIP (or whatever is the latest version) from http://bitchin100.com/wiki/index.php?title=REXCPM#Software -* M100_OPTION_ROMS.zip (or T200_ or NEC_) from http://bitchin100.com/wiki/index.php?title=REXCPM#Option_ROM_Images_for_Download -* CPMUPD.CO and CPM210.BK (or CPM410.BK if you have a 4 Meg unit) from http://bitchin100.com/wiki/index.php?title=M100_CP/M ``` +$ mkdir rexcpm +$ cd rexcpm $ wget http://bitchin100.com/wiki/images/0/03/REXCPMV21_b19.ZIP $ wget http://bitchin100.com/wiki/images/6/63/M100_OPTION_ROMS.zip $ wget http://bitchin100.com/wiki/images/8/8e/CPMUPD.CO @@ -15,27 +23,33 @@ $ unzip M100_OPTION_ROMS.zip ``` ## 2: bootstrap rxcini.DO and then start the tpdd server with the upcase option. + ``` $ dl -vb rxcini.DO && dl -vu ``` Enter BASIC on the 100 and type `RUN "COM:98N1ENN"` \[Enter\] Press Enter on the modern machine. +``` Load REXCPM code? Yes Init REXCPM dir? Yes -Execute choices.. sure? (y/n) Y +Execute choices.. sure? (y/n) Y Name: RXC_12 -("Name:" is the basename portion of `RXC_\*.BR` filename from the REXCPM*.ZIP file. The \* part may change over time, and you don't type the .BR part. Currently in REXCPMV21_b19.ZIP this is `RXC_12.BR`, so you enter `RXC_12` at that prompt.) +``` +"Name:" is the basename portion of `RXC_\*.BR` from the REXCPM\*.ZIP file. +The \* part may change over time, and you don't type the .BR part. +Currently in REXCPMV21_b19.ZIP this is `RXC_12.BR`, so you enter `RXC_12` at that prompt. -When rxcini finishes, turn the 100 off and back on (electrically triggers the REXCPM into a default state) +When rxcini finishes: +Turn the 100 off and back on (electrically triggers the REXCPM into a default state) Hard-reset the 100: CTRL+BREAK+RESET (frees the ram used by rxcini) -Run BASIC and type: `CALL 63012` \[Enter\] (installs RXCMGR from the REXCPM to the 100's main menu) +Enter BASIC and type: `CALL 63012` \[Enter\] (installs RXCMGR from the REXCPM to the 100's main menu) -At this point: +### At this point: * dl will be left running in tpdd server mode on the modern machine. Leave that running while performing all the following actions on the 100. * the 100 is at the main menu * there is a `RXCMGR` entry on the main menu -The REXCPM now has it's basic firmware installed which provides the same REX functionality as REX# or REX Classic. You can use RXCMGR to load option rom images from TPDD, select & activate installed rom images, create and restore ram backup images. +The REXCPM now has it's basic firmware installed which provides the same REX functionality as [REXCPM](http://bitchin100.com/wiki/index.php?title=REXsharp) or [REX Classic](http://tandy.wiki/REX). You can use RXCMGR to load option rom images from TPDD, select & activate installed rom images, create and restore ram backup images. What is not done yet: * TS-DOS option rom not installed yet From 08fa5477a9f1e3a72e02cd2ff3cf7ea7940999cd Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sat, 10 Sep 2022 18:00:25 -0400 Subject: [PATCH 094/206] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 487d110..aa52627 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,7 @@ Failing that, then it looks in the root share dir. Failing that, finally it gets [More details](ref/ur2.txt) -## sector access - disk images +## Sector Access / Disk Images For a TPDD1 disk image ``` $ dl -v -m 1 -i disk_image.pdd1 @@ -166,7 +166,7 @@ Disk image files may be created 2 ways: Disk image format [disk_image_files.txt](ref/disk_image_files.txt) ## trivia -The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT", but many other things work. The ROOT label allows almost anything, the PARENT label is only limited by what TS-DOS thinks is a valid filename. Here are a few examples that do work. +The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT", but many other things work. Almost anything mmay be used for the ROOT label. The PARENT label is limited to things that TS-DOS thinks is a valid filename. Unfortunately ".." can't be used for PARENT, but here are a few examples that do work. ``` $ ROOT_LABEL=/ PARENT_LABEL=^ dl $ ROOT_LABEL='-root-' PARENT_LABEL='-back-' dl From b2aaa994749ab1edbc7b203ed2dcc4956dafbde6 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sat, 10 Sep 2022 18:01:41 -0400 Subject: [PATCH 095/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aa52627..e8f2666 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,7 @@ Disk image files may be created 2 ways: Disk image format [disk_image_files.txt](ref/disk_image_files.txt) ## trivia -The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Sadly, this does not extend as far as being able to use ".." for "PARENT", but many other things work. Almost anything mmay be used for the ROOT label. The PARENT label is limited to things that TS-DOS thinks is a valid filename. Unfortunately ".." can't be used for PARENT, but here are a few examples that do work. +The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Almost anything mmay be used for the ROOT label. The PARENT label is limited to things that TS-DOS thinks is a valid filename. Sadly ".." can't be used for PARENT, but here are a few examples that do work. ``` $ ROOT_LABEL=/ PARENT_LABEL=^ dl $ ROOT_LABEL='-root-' PARENT_LABEL='-back-' dl From 60656017a270eb3b0685a1eb2d54a0003045c8c3 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sat, 10 Sep 2022 18:10:21 -0400 Subject: [PATCH 096/206] Update README.md --- README.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index e8f2666..17f452d 100644 --- a/README.md +++ b/README.md @@ -9,17 +9,17 @@ Docs from the past versions of this program. They don't exactly match this versi [dl.do](dl.do) from dl 1.0-1.3 the original "DeskLink for \*nix" by Steven Hurd -## install +## Install ``` $ make clean all && sudo make install ``` -## uninstall +## Uninstall ``` $ sudo make uninstall ``` -## manual +## Manual ``` $ dl -h ``` @@ -81,25 +81,27 @@ Examples: ``` -## run the TPDD server, verbose, upcase, serving files from the current directory +## Examples: + +### Run the TPDD server, verbose, upcase, serving files from the current directory ``` $ dl -vu ``` -## list all available TPDD client installers, and then bootstrap one of them +### List all available TPDD client installers, and then bootstrap one of them ``` $ dl -l $ dl -vb TS-DOS.100 ``` -## bootstrap a [REXCPM](http://bitchin100.com/wiki/index.php?title=REXCPM) +### Bootstrap a [REXCPM](http://bitchin100.com/wiki/index.php?title=REXCPM) ``` $ dl -vb rxcini.DO && dl -vu ``` ([Full directions for REXCPM](REXCPM.md)) -## UR-II +## "Magic Files" / Ultimate ROM 2 Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS from disk on-the-fly. This allows you to keep the TS-DOS executable on the disk instead of in ram, and it is loaded and then discarded on-demand by selecting the TS-DOS menu entry from inside UR2. @@ -165,7 +167,7 @@ Disk image files may be created 2 ways: Disk image format [disk_image_files.txt](ref/disk_image_files.txt) -## trivia +## ROOT & PARENT labels The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Almost anything mmay be used for the ROOT label. The PARENT label is limited to things that TS-DOS thinks is a valid filename. Sadly ".." can't be used for PARENT, but here are a few examples that do work. ``` $ ROOT_LABEL=/ PARENT_LABEL=^ dl From 07063990bde13e56cf267bb1cefb19f82d313f39 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 8 Nov 2022 20:12:02 -0500 Subject: [PATCH 097/206] revert 2b07aa61572ec99674d5db64dc087be84f4c6362 just for TEENY.200, fails with FC error --- clients/teeny/TEENY.200 | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/clients/teeny/TEENY.200 b/clients/teeny/TEENY.200 index 5c87490..514b750 100644 --- a/clients/teeny/TEENY.200 +++ b/clients/teeny/TEENY.200 @@ -1 +1,22 @@ -0'TEENY.200 - Smaller version of Acroatix TINY TPDD client - Ron Wiesen 2005 0CLEAR99:GOSUB1:F$="TEENY.CO":F=0:GOSUB4:END 1?"12 seconds..":FORN=-2122TO-1838:P=P+2:IFP>LEN(D$)THENREADD$:P=1 2D=(ASC(MID$(D$,P,1))-65)*16+ASC(MID$(D$,P+1,1))-65:POKEN,D:C=C+D:NEXT:IFC=40895THENRETURN 3GOSUB7:?"loader. Can't continue.":END 4?"(ENTER for just below HIMEM):?"End address for ";F$;:A=-1:INPUTA 5CALL-2122,F,A:F=F+1:E=PEEK(-2128):IFETHEN?"Warning - ";:GOSUB7ELSE?"Loaded "; 6CALL4556,,-2234:?".CO":RETURN 7?"Bad checksum on ";:BEEP:RETURN 8MGDADCLAPHDCLBPHOFCKGHOPOLONCLCCLEPHCBEGPHFHMNCMPICBPLPEMNCMPIOBNFAIMKAFPICDAIMCODPHCKLEOOOFCKPNPEEEENOBAIOFBBPLPEONEEEN 9DATAOBNJAICCLCPHOLCKPPPEHMLFMKAFPIBJCCPPPEMNGCCMMNKGCLMEMOCKMNGCCMMNKJPIMNKGCLOLMNKBEBCDCDNBMNCPPIDCEMPHMNFBPIJCDCLAPHMJABAG 10DATAAAMFOFMNFBPIOBHHEHHKNKEFPICLEOOLCKLCPHAJNJOLCDIAAPFHCDMBALHILBMCCPPIMJNFFEMNGOPIPOCKNCGJPINGCFFHAPAPOGMAFPMNGOPINGDALDNG 11DATAGLBINBMJCKLEPHHOLHMKIBPIHOPOCJCDCCLEPHMADODKMJABAFAAAJHONGIDMCJNPICDLOMKIEPIABLAPHAKLHMKJNPIDKLBPHJGACCDHOMKHCPILHMCJNPI 12DATAMDIBPIMNAJCMOFCKPNPEABAGAAAJEEENCKGFPGNEKIICNKDNEMOLCKGDPGAICCGDPGDOKAOBMNKMCNCBPLPEMDKFDC 13DATA0#o#`#`#i$4#;0VVm0V#$a$2$Y$)#b#>!R$U5A&G$a#>#8-;&G#J$R#Yp$[#b#p-J&G#$Y!R4#Yp8_&H8+&G3Q[#)#)#)$).#K&G8!P$b8$l&G#|$MZqt8!U#\qz#Q#;#>p-#]&H#Q#a#>$K8+&G#b#Ugbi}5#1&H$S!R4#9l#Yl8_&H$R#>$N.}&H<#Yo8_&H$L#>#\8!U#\.}&H87#F-#@&G#<#F&G#=#OZ8l#GP8$c&G#E#2c#`#g$D$;#=_bv$)#Wn#X-!3&H$2#<#0&I#4#4#4#4#4$Y`|#Y&I@#>$9#>$1@ 17DATA #>$9#>$A$F$9#>$1$;$D#=]bV#=[bP8!C$]E#C&G#w.F&H##Qk4F4Q$[+#9o.#K&G8g&H8#4$`E#=&G-#)&G$R#>4!;#R&I$>a+#?&I$$R#E]bV#E$a4\ 18DATA #E[bV#6L.!G#H8#)&H-#@&G#U#gbi#]E#I&Gi#`=#I&G87#F5#7&G8$c&G#j#Ym$l0@V8;#G<$X$n$J$W!5$B,w#>#Fx-$S&I$X!O3@P8$7&HLEN(D$)THENREADD$:P=1 +24 D=(ASC(MID$(D$,P,1))-65)*16+ASC(MID$(D$,P+1,1))-65:POKEN,D:C=C+D:NEXT:IFC=40895THENRETURN +28 GOSUB45:PRINT"loader. Can't continue.":END +30 PRINT"End address for ";F$;:A=-1:INPUT" (Press ENTER for just below HIMEM)";A +40 CALL-2122,F,A:F=F+1:E=PEEK(-2128):IFETHENPRINT"Warning - ";:GOSUB45ELSEPRINT"Loaded "; +44 CALL4556,,-2234:PRINT".CO":RETURN +45 PRINT"Bad checksum on ";:BEEP:RETURN +50 DATA MGDADCLAPHDCLBPHOFCKGHOPOLONCLCCLEPHCBEGPHFHMNCMPICBPLPEMNCMPIOBNFAIMKAFPICDAIMCODPHCKLEOOOFCKPNPEEEENOBAIOFBBPLPEONEEEN +55 DATA OBNJAICCLCPHOLCKPPPEHMLFMKAFPIBJCCPPPEMNGCCMMNKGCLMEMOCKMNGCCMMNKJPIMNKGCLOLMNKBEBCDCDNBMNCPPIDCEMPHMNFBPIJCDCLAPHMJABAG +60 DATA AAMFOFMNFBPIOBHHEHHKNKEFPICLEOOLCKLCPHAJNJOLCDIAAPFHCDMBALHILBMCCPPIMJNFFEMNGOPIPOCKNCGJPINGCFFHAPAPOGMAFPMNGOPINGDALDNG +65 DATA GLBINBMJCKLEPHHOLHMKIBPIHOPOCJCDCCLEPHMADODKMJABAFAAAJHONGIDMCJNPICDLOMKIEPIABLAPHAKLHMKJNPIDKLBPHJGACCDHOMKHCPILHMCJNPI +70 DATA MDIBPIMNAJCMOFCKPNPEABAGAAAJEEENCKGFPGNEKIICNKDNEMOLCKGDPGAICCGDPGDOKAOBMNKMCNCBPLPEMDKFDC +100 DATA0#o#`#`#i$4#;0VVm0V#$a$2$Y$)#b#>!R$U5A&G$a#>#8-;&G#J$R#Yp$[#b#p-J&G#$Y!R4#Yp8_&H8+&G3Q[#)#)#)$).#K&G8!P$b8$l&G#|$MZqt8!U#\qz#Q#;#>p-#]&H#Q#a#>$K8+&G#b#Ugbi}5#1&H$S!R4#9l#Yl8_&H$R#>$N.}&H<#Yo8_&H$L#>#\8!U#\.}&H87#F-#@&G#<#F&G#=#OZ8l#GP8$c&G#E#2c#`#g$D$;#=_bv$)#Wn#X-!3&H$2#<#0&I#4#4#4#4#4$Y`|#Y&I@#>$9#>$1@ +104 DATA #>$9#>$A$F$9#>$1$;$D#=]bV#=[bP8!C$]E#C&G#w.F&H##Qk4F4Q$[+#9o.#K&G8g&H8#4$`E#=&G-#)&G$R#>4!;#R&I$>a+#?&I$$R#E]bV#E$a4\ +105 DATA #E[bV#6L.!G#H8#)&H-#@&G#U#gbi#]E#I&Gi#`=#I&G87#F5#7&G8$c&G#j#Ym$l0@V8;#G<$X$n$J$W!5$B,w#>#Fx-$S&I$X!O3@P8$7&H Date: Tue, 8 Nov 2022 20:16:42 -0500 Subject: [PATCH 098/206] comments --- dl.c | 91 ++++++++++++++++++------------------------------------------ 1 file changed, 27 insertions(+), 64 deletions(-) diff --git a/dl.c b/dl.c index 202e360..58415dc 100644 --- a/dl.c +++ b/dl.c @@ -10,10 +10,10 @@ /* DeskLink+ 2005 John R. Hogerhuis Extensions and enhancements -2019,2022 Brian K. White - repackaging, reorganizing, bootstrap function - pdd1 disk image files, FDC-mode - Kurt McCullum - TS-DOS loaders -2022 Gabriele Gorla - Add support for TS-DOS subdirectories +2019 Brian K. White - repackaging, reorganizing, bootstrap function +2022 disk image files and sector-access +2020 Kurt McCullum - TS-DOS loaders +2022 Gabriele Gorla - TS-DOS subdirectories DeskLink+ is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or any @@ -30,43 +30,6 @@ Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ -/* -2022 bkw - -Some basic info about TPDD protocol formatting that explains -some frequent idioms in here. TPDD Operation-mode transactions, both -commands issued by the client, and responses issued by the server, -have this general form: - -type - 1 byte the format or type of this packet -length - 1 byte number of bytes that come next -payload - length bytes range is 0-128 -checksum - 1 byte includes type, length, and payload - -Most functions pass around a pointer to a buffer containing this -entire structure. - -Frequently a buffer will be declared with a SIZE+3, where -SIZE will be a pertinent payload size of a given command, -like 128 for the max possible, or 11 for a DME message, etc, -and the +3 is 3 extra bytes for type, length, and checksum. - -Similarly, most functions include frequent references to these -byte offsets gb[0], gb[1], gb[2], gb+2, gb[gb[1]+2]. - -functions named req_*() (request) receive a command in this format -functions named ret_*() (return) generate a response in this format - -There is also an FDC-mode that TPDD1/FB-100 drives have, which has -a completely different format. This program only implements -Operation-mode. TPDD2 drives do not have FDC-mode, but they do have -extra Operation-mode commands that TPDD1 does not have, -some of which this program does implement. - -See the ref/ directory for more details, including a copy of the -TPDD1 software manual. There is no known TPDD2 software manual. -*/ - #include #include #include @@ -128,10 +91,10 @@ TPDD1 software manual. There is no known TPDD2 software manual. #define DEFAULT_DME_DIR_LABEL "<>" // DIR_LABEL='/' /* - * Support for Ultimate ROM-II TS-DOS loader: see ref/ur2.txt - * files that are always readable in any cd path, or even if - * the file doesn't exist anywhere in the share tree. - * Search path for any of these: cwd, share root, app_lib_dir. + * Support for Ultimate ROM II TS-DOS loader: see ref/ur2.txt + * These filenames will always be loadable by "magic" in any cd path, even + * if no such filename exists anywhere in the share tree. For any of these + * filenames, search the following paths: cwd, share root, app_lib_dir. * TODO add $XDG_DATA_HOME (~/.local/share/myapp mac: ~/Library/myapp/) */ char * magic_files [] = { @@ -224,15 +187,14 @@ void dbg_b(const int v, unsigned char *b, int n) { } // like dbg_b, except assume the buffer is a tpdd Operation-mode -// block and parse it to display cmd, len payload, checksum. -// length is read from the data itself +// block and parse it to display cmd, len, payload, checksum. void dbg_p(const int v, unsigned char *b) { dbg(v,"cmd: %1$02X\nlen: %2$02X (%2$u)\nchk: %3$02X\ndat: ",b[0],b[1],b[b[1]+2]); dbg_b(v,b+2,b[1]); } -// On Linux 76800 would require termios2() and BOTHER -// https://stackoverflow.com/a/39924923/5754855 +// Drive supposedly supports 76800, but on Linux (except Sparc) that would +// require termios2() and BOTHER. https://stackoverflow.com/a/39924923/5754855 // no idea about bsd or mac /* struct termios2 t; @@ -254,8 +216,8 @@ void set_baud (char * s) { i==1200?B1200: i==2400?B2400: i==4800?B4800: - i==9600?B9600: - //i==19200?B19200: // real drive default + i==9600?B9600: // Brother FB-100, KnitKing FDD19, Purple Computing D103 default + //i==19200?B19200: // TPDD1 & TPDD2 default i==38400?B38400: #if defined(__sparc__) i==76800?B76800: @@ -653,16 +615,17 @@ void req_fdc_read_sector(int tp,int tl) { void req_fdc_search_id() { dbg(2,"%s()\n",__func__); - // send OK to client - // read 12 bytes from client - // search all ID's for match - // return, what? Send another OK? - // manual says it's the same as write_sector, which - // sends an OK to tell client to send, and then - // another OK to ack. So perhaps we return - // just a status return that indicates if a match was found - // and probably the first matching sector number in the len/addr field. - // Probably the err field is always success. + // not sure how this is supposed to work yet, this is a guess: + // send OK to client + // read 12 bytes from client + // search all ID's for match + // return, what? Send another OK? + // manual says it's the same as write_sector, which + // sends an OK to tell client to send, and then + // another OK to ack. So perhaps we return + // just a status return that indicates if a match was found + // and probably the first matching sector number in the len/addr field. + // Probably the err field is always success. ret_fdc_std(ERR_FDC_SUCCESS,0,0); } @@ -1698,11 +1661,11 @@ void slowbyte(char b) { write_client_tty(&b,1); tcdrain(client_tty_fd); usleep(BASIC_byte_us); - if (debug) { + if (debug) { // local display nicely regardless if CR, LF, or CRLF if (b!=LOCAL_EOL && ch[0]==LOCAL_EOL) {ch[0]=0x00; dbg(0,"%c%c",LOCAL_EOL,b);} else if (b==LOCAL_EOL || b==BASIC_EOL) ch[0]=LOCAL_EOL; - else if (isprint(b)) dbg(0,"%c",b); - else dbg(0,"\033[7m%02X\033[m",b); // hardcoded ansi/vt codes, sorry + else if (b<32 || b>126) dbg(0,"\033[7m^%02X\033[m",b); // hardcoded ansi/vt codes, sorry + else dbg(0,"%c",b); } } From 5911848a92cae26748b8498426300519eeb9afa1 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Thu, 10 Nov 2022 19:15:04 -0500 Subject: [PATCH 099/206] Update README.md --- README.md | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 17f452d..1d7b866 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,5 @@ # dlplus -DeskLink+ is a [Tandy Portable Disk Drive](http://tandy.wiki/TPDD) emulator or "[TPDD server](http://tandy.wiki/TPDD_server)" implimented in C. -2022 [GGLabs](https://gglabs.us/) has added support for TS-DOS subdirectories! -[hacky extra options](ref/advanced_options.txt) -[Serial Cable](http://tandy.wiki/Model_T_Serial_Cable) - -Docs from the past versions of this program. They don't exactly match this version any more. -[README.txt](README.txt) from dlplus by John R. Hogerhuis -[dl.do](dl.do) from dl 1.0-1.3 the original "DeskLink for \*nix" by Steven Hurd - +DeskLink+ is a [Tandy Portable Disk Drive](http://tandy.wiki/TPDD) emulator or "[TPDD server](http://tandy.wiki/TPDD_server)" written in C. ## Install ``` @@ -20,10 +12,6 @@ $ sudo make uninstall ``` ## Manual -``` -$ dl -h -``` - ``` $ dl -h DeskLink+ v1.5.010-90-gf089dd1 @@ -81,6 +69,15 @@ Examples: ``` +[hacky extra options](ref/advanced_options.txt) + +Docs from the past versions of this program. They don't exactly match this version any more. +[README.txt](README.txt) from [dlplus](http://bitchin100.com/files/linux/dlplus.zip) by John R. Hogerhuis +[dl.do](dl.do) from [dl 1.0-1.3](http://m100.bbsdev.net/) the original "DeskLink for \*nix" by Steven Hurd + +## Hardware +[KC-85 to PC Serial Cable](http://tandy.wiki/Model_T_Serial_Cable) + ## Examples: ### Run the TPDD server, verbose, upcase, serving files from the current directory @@ -101,17 +98,20 @@ $ dl -vb rxcini.DO && dl -vu ([Full directions for REXCPM](REXCPM.md)) -## "Magic Files" / Ultimate ROM 2 -Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS from disk on-the-fly. -This allows you to keep the TS-DOS executable on the disk instead of in ram, and it is loaded and then discarded on-demand by selecting the TS-DOS menu entry from inside UR2. +## "Magic Files" / Ultimate ROM II +Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS or Sardine from disk on-the-fly. +This allows you to keep the TS-DOS and/or Sardine executables on the disk instead of installed in ram, and it is loaded and then discarded on-demand by selecting the TS-DOS or Sardine entry from the UR-II menu. + +On a real drive this requires a copy of DOS100.CO (or DOS200.CO, or DOSNEC.CO, and/or SAR100.CO, SAR200.CO etc) on a disk, or on each disk if you want to avoid having to swap them all the time. On an emulator like dlplus, it would normally require that there be a copy of DOS100.CO in the share path in place of on a disk, and since dlplus can CD into subdirectories, it would even require keeping a copy in every subdirectory. -That normally requires that there be a copy of DOS100.CO on the "disk" so that UR-II can load it. And since this "disk" is actually a server that can cd into other directories, you would normally need a copy of the file in every single directory. -This version of dlplus has special support for that so that the TS-DOS button always works, even if the file doesn't exist in the current directory, or even if the file doesn't exist anywhere within the share tree. +But this version of dlplus has special support for this feature so that the TS-DOS and Sardine entries in UR-II always work "by magic" in any directory, even if the files don't exist in the current working directory, or the share root, or anywhere within the shared tree. -There are copies of [DOS100.CO](clients/ts-dos/DOS100.CO), [DOS200.CO](clients/ts-dos/DOS200.CO), and [DOSNEC.CO](clients/ts-dos/DOSNEC.CO) installed to ```/usr/local/lib/dl``` by ```sudo make install```. +There are copies of [DOS100.CO](clients/ts-dos/DOS100.CO), [DOS200.CO](clients/ts-dos/DOS200.CO), [DOSNEC.CO](clients/ts-dos/DOSNEC.CO) ,[SAR100.CO](clients/ts-dos/SAR100.CO) and [SAR200.CO](clients/ts-dos/SAR200.CO) installed to ```/usr/local/lib/dl``` by ```sudo make install```. (Sadly, no SARNEC.CO . It is known to have existed, but is currently still lost to time. If you have a copy, please upload it! There may or may not have ever existed any versions of TS-DOS or Sardine for Olivetti M10 or Kyotronic KC-85, but the code in dlplus is ready to support them if they ever turn up, or any other files you may wish to work by magic like that.) -When the client machine requests any of these files, dlplus first looks in the current directory like normal. If it's there, that is what is used. -Failing that, then it looks in the root share dir. Failing that, finally it gets the file from /usr/local/lib/dl. This way the TS-DOS button in Ultimate ROM II just always works by magic. +When the client machine requests any of these filenames, dlplus first looks in the current directory like normal. If a file matching the requested filename is there, that is what is used, just like for any other file. This can be used to override the files bundled with dlplus, just for the current working directory. +Failing that, then it looks in the root share dir. This is another way to override the files bundled with dlplus, for the entire shared directory tree. +Failing that, it gets the file from /usr/local/lib/dl. These files are bundled with dlplus, and means you never have to manually supply DOS100.CO or any of the others in any share paths. +This way the TS-DOS and Sardine options in Ultimate ROM II always work "by magic" without you having to do anything to provide the files like with a real drive & disk, yet if you want to use some other version of the files, you can, by just placing them in the share path just like placing them on a disk. [More details](ref/ur2.txt) @@ -177,4 +177,5 @@ or you can confuse someone... $ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl ``` ## OS Compatibility -Tested on Linux, Macos, [FreeBSD](ref/freebsd.txt) +Tested on Linux, Macos, [FreeBSD](ref/freebsd.txt) +Others have claimed it works under [Cygwin](https://www.cygwin.com/) on Windows, though I have not tried it myself. It probably does not work under WSL2 because WSL2 still does not provide good usb or serial port support. From c6e8bdc1826765dff4059a45af372a0d3a6b28d5 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Thu, 10 Nov 2022 19:43:29 -0500 Subject: [PATCH 100/206] Update README.md --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 1d7b866..fb8b9b2 100644 --- a/README.md +++ b/README.md @@ -162,10 +162,10 @@ This will invoke the SAR100.CO previously loaded, which will try to do TPDD1 FDC Another example, [installing Disk Power for Kyotronic KC-85](clients/disk_power/Disk_Power.txt) Disk image files may be created 2 ways: -* Use [pdd.sh](https://github.com/bkw777/pdd.sh) **dd** command to read a real disk from a real drive into a disk image file. -* Run `dl -v -m 1 -i filename.pdd1` or `dl -v -m 2 -i filename.pdd2` with a non-existing or empty file, and then use a client to format disk and write sectors. +* One method is you may use the **dd** command within [pdd.sh](https://github.com/bkw777/pdd.sh) to read a real TPDD1 or TPDD2 disk from a real TPDD1 or TPDD2 drive, and output a disk image file. +* Another method is you may run `dl -v -m 1 -i filename.pdd1` (for TPDD1) or `dl -v -m 2 -i filename.pdd2` (for TPDD2) where filename.pddN either doesn't exist or is zero bytes, and then use a client (like TS-DOS or pdd.sh) to format the "disk". The format command will cause dlplus to generate the empty disk image. If the client uses the "Operation-mode" format command, the generated disk image will be a valid filesystem disk, which just means it will have a particular logical sector size (64K) and valid empty Space Management Table and File Control Blocks. If the client uses the FDC-mode format command (TPDD1-only, TPDD2 does not have an FDC-mode) then the generated image will be a raw database format not a filesystem disk. This just means it will have whatever logical sector size specified by the parameters to the format command, and no SMT or FCB data, and won't be usable for saving files. In both cases, this mimics what a real drive does. -Disk image format [disk_image_files.txt](ref/disk_image_files.txt) +More details about the disk image format [disk_image_files.txt](ref/disk_image_files.txt) ## ROOT & PARENT labels The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Almost anything mmay be used for the ROOT label. The PARENT label is limited to things that TS-DOS thinks is a valid filename. Sadly ".." can't be used for PARENT, but here are a few examples that do work. @@ -178,4 +178,5 @@ $ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl ``` ## OS Compatibility Tested on Linux, Macos, [FreeBSD](ref/freebsd.txt) -Others have claimed it works under [Cygwin](https://www.cygwin.com/) on Windows, though I have not tried it myself. It probably does not work under WSL2 because WSL2 still does not provide good usb or serial port support. +Purported to work under [Cygwin](https://www.cygwin.com/) on Windows, though I have not tried it myself. +It probably does *not* work under WSL2 because WSL2 still does not fully support usb or serial ports. From 996502a4b35727d694316c427f6385ae250e3c57 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Thu, 10 Nov 2022 21:20:35 -0500 Subject: [PATCH 101/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fb8b9b2..7de00b6 100644 --- a/README.md +++ b/README.md @@ -163,7 +163,7 @@ Another example, [installing Disk Power for Kyotronic KC-85](clients/disk_power/ Disk image files may be created 2 ways: * One method is you may use the **dd** command within [pdd.sh](https://github.com/bkw777/pdd.sh) to read a real TPDD1 or TPDD2 disk from a real TPDD1 or TPDD2 drive, and output a disk image file. -* Another method is you may run `dl -v -m 1 -i filename.pdd1` (for TPDD1) or `dl -v -m 2 -i filename.pdd2` (for TPDD2) where filename.pddN either doesn't exist or is zero bytes, and then use a client (like TS-DOS or pdd.sh) to format the "disk". The format command will cause dlplus to generate the empty disk image. If the client uses the "Operation-mode" format command, the generated disk image will be a valid filesystem disk, which just means it will have a particular logical sector size (64K) and valid empty Space Management Table and File Control Blocks. If the client uses the FDC-mode format command (TPDD1-only, TPDD2 does not have an FDC-mode) then the generated image will be a raw database format not a filesystem disk. This just means it will have whatever logical sector size specified by the parameters to the format command, and no SMT or FCB data, and won't be usable for saving files. In both cases, this mimics what a real drive does. +* Another method is you may run `dl -v -m 1 -i filename.pdd1` (for TPDD1) or `dl -v -m 2 -i filename.pdd2` (for TPDD2) where filename.pddN either doesn't exist or is zero bytes, and then use a client (like TS-DOS or pdd.sh) to format the "disk". The format command will cause dlplus to generate the empty disk image. If the client uses the "Operation-mode" format command, the generated disk image will be a valid filesystem disk, which just means it will have a particular logical sector size (64 byte) and valid empty Space Management Table and File Control Blocks. If the client uses the "FDC-mode" format command (TPDD1-only, TPDD2 does not have an FDC-mode) then the generated image will be a raw database format not a filesystem disk. This just means it will have whatever logical sector size specified by the parameters to the format command, and no SMT or FCB data, and won't be usable for saving files. In both cases, this mimics what a real drive does. More details about the disk image format [disk_image_files.txt](ref/disk_image_files.txt) From 3169c472a79f05ba03b903ce457ef8c33e23da53 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Thu, 10 Nov 2022 21:26:43 -0500 Subject: [PATCH 102/206] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7de00b6..0b1f532 100644 --- a/README.md +++ b/README.md @@ -163,7 +163,9 @@ Another example, [installing Disk Power for Kyotronic KC-85](clients/disk_power/ Disk image files may be created 2 ways: * One method is you may use the **dd** command within [pdd.sh](https://github.com/bkw777/pdd.sh) to read a real TPDD1 or TPDD2 disk from a real TPDD1 or TPDD2 drive, and output a disk image file. -* Another method is you may run `dl -v -m 1 -i filename.pdd1` (for TPDD1) or `dl -v -m 2 -i filename.pdd2` (for TPDD2) where filename.pddN either doesn't exist or is zero bytes, and then use a client (like TS-DOS or pdd.sh) to format the "disk". The format command will cause dlplus to generate the empty disk image. If the client uses the "Operation-mode" format command, the generated disk image will be a valid filesystem disk, which just means it will have a particular logical sector size (64 byte) and valid empty Space Management Table and File Control Blocks. If the client uses the "FDC-mode" format command (TPDD1-only, TPDD2 does not have an FDC-mode) then the generated image will be a raw database format not a filesystem disk. This just means it will have whatever logical sector size specified by the parameters to the format command, and no SMT or FCB data, and won't be usable for saving files. In both cases, this mimics what a real drive does. +* Another method is you may run `dl -v -m 1 -i filename.pdd1` (for TPDD1) or `dl -v -m 2 -i filename.pdd2` (for TPDD2) where filename.pddN either doesn't exist or is zero bytes, and then use a client (like TS-DOS or pdd.sh) to format the "disk". The format command will cause dlplus to generate the empty disk image. +In the case of TPDD1: If the client uses the "Operation-mode" format command, the generated disk image will be a valid filesystem disk, which just means it will have a particular logical sector size (64 bytes) and valid empty Space Management Table and File Control Blocks. If the client uses the "FDC-mode" format command then the generated image will be a raw data format not a filesystem disk. This just means it will have whatever logical sector size specified by the parameters to the format command, and no SMT or FCB data, and won't be usable for saving files. In both cases, this mimics what a real drive does. +TPDD2 does not have an "FDC-mode" and there is only one kind of format command and only one kind of new empty disk format. More details about the disk image format [disk_image_files.txt](ref/disk_image_files.txt) From 8ab5b5bbda19a8ea69e06be36fc884abaafecf48 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sun, 5 Feb 2023 23:46:23 -0500 Subject: [PATCH 103/206] detect lost tty while read(client_tty_fd) for macos --- dl.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dl.c b/dl.c index 58415dc..92cceea 100644 --- a/dl.c +++ b/dl.c @@ -354,6 +354,10 @@ int read_client_tty(void *b, const unsigned int n) { unsigned t = 0; int i = 0; while (t Date: Mon, 6 Feb 2023 16:21:18 -0500 Subject: [PATCH 104/206] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 0b1f532..37f380e 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,10 @@ $ dl -vb rxcini.DO && dl -vu ``` ([Full directions for REXCPM](REXCPM.md)) +### Update a [REX#](http://bitchin100.com/wiki/index.php?title=REXsharp) +``` +dl -vb 'rx#u1.do' && dl -v +``` ## "Magic Files" / Ultimate ROM II Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS or Sardine from disk on-the-fly. From c6fef6d75ba2e426463dc4c8f4dfe003cb04d915 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Mon, 6 Feb 2023 17:25:46 -0500 Subject: [PATCH 105/206] Update README.md --- README.md | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 37f380e..87bad46 100644 --- a/README.md +++ b/README.md @@ -135,13 +135,13 @@ Limitations: Only supports sector access to the disk image. You can't "mount" th Useful working examples: Sardine_American_English.pdd1, Disk_Power_KC-85.pdd1 -Those examples are both TPDD1, but both TPDD1 and TPDD2 are supported. There just are no known database application disks like Sardine on TPDD2 media to make a good TPDD2 example. You can load up the image of the TPDD2 Utility Disk included with pdd.sh just to see that it works, but that isn't useful for anything. +Those examples are both TPDD1 disks, but both TPDD1 and TPDD2 are supported. There just are no known database application disks like the Sardine dictionary disk on TPDD2 media to make a good TPDD2 example. You could use the image of the TPDD2 Utility Disk included with [pdd.sh](https://github.com/bkw777/pdd.sh) just to see that it works, but that isn't useful for anything. -Example, using Sardine with a Model 100 with an [Ultimate ROM II rom](http://www.club100.org/library/librom.html) installed (or loaded in a [REX](http://bitchin100.com/wiki/index.php?title=Rex)): -One way to use Sardine is to let UR-II load/unload the program (SAR100.CO for model 100, or SAR200.CO for model 200) from disk into ram on the fly instead of installing permanently in ram normally, and then the program accesses a special dictionary data disk with sector access commands. -So for this to work, UR-II has to be able to load SAR100.CO from disk, and then SAR100.CO needs to be able to read raw sectors from the dictionary disk. -This involves two features of dlplus. First, magic files. SAR100.CO is one of the "magic" files bundled with the app, which are always loadable from a client even if there is no such file in the share directory. When UR-II tries to load a file by that name, if there is a file by that name in the current working directory it is used, but even if there is no such file, the file access still works because then it just comes from /usr/local/lib/dl . -Second, disk image files and sector-access commands. If a disk image file is loaded with the -i option, then when a client tries to use sector-access commands, they work, and the data reads from / writes to the image file. If the given filename does not exist it will be created if the client issues a format command. If the given filename does not exist and is not given with any leading path, then it is searched for in /usr/local/lib/dl, as a few special disks are bundled with the app, and the Sardine dictionary is one. +Example, using Sardine with a Model 100 with [Ultimate ROM II](http://www.club100.org/library/librom.html): +One way to use Sardine is to let UR-II load/unload the program from disk into ram on the fly instead of installing permanently in ram like normal. Sardine uses raw sector access commands to read a special dictionary data disk. +For this to work, UR-II has to be able to load SAR100.CO from a normal filesystem disk using normal file/filesystem access, and then SAR100.CO needs to be able to read raw sectors from the special dictionary data disk. +This involves two features of dlplus. First, **magic files**. SAR100.CO is one of the "magic" files bundled with the app, which are always loadable from a client at any time from any directory even if there is no such file in the directory being served as the virtual "disk". When UR-II tries to load a file by that particular name, if there is a file by that name in the current working directory it is used, but if there is no such file, dlplus just serves up the one from /usr/local/lib/dl, and the client never knows the difference. +Second, **disk image files and sector-access commands**. If a disk image file is loaded with the **-i** option, then when a client tries to use sector-access commands, they work, and the data reads from / writes to the image file. If the specified filename does not exist it will be created if/when the client issues a format command. If the specified filename does not exist and, is not given with any leading path, then it is searched for in /usr/local/lib/dl, as a few special disks are bundled with the app, and the Sardine dictionary disk is one such. To try it out, @@ -149,26 +149,28 @@ To try it out, ``` $ dl -vue -m 1 -i Sardine_American_English.pdd1 ``` -This tells dlplus to strictly emulate a TPDD1, disable some TPDD2 features and TS-DOS directory support which confuses SAR100.CO, and load the Sardine American English dictionary disk for sector-access commands. -SAR100.CO is always being provided automatically regardless of any commandline options, and "-i Sardine_American_English.pdd1" will get "Sardine_American_English.pdd1" from /usr/local/lib/dl. +This set of flags tells dlplus to strictly emulate a TPDD1, disable some TPDD2 features and TS-DOS directory support which confuse SAR100.CO, and use the Sardine American English dictionary disk image file for any sector-access commands the client might issue. +SAR100.CO is always being provided by default regardless of any commandline options so you don't have to do anything extra for that, and assuming "Sardine_American_English.pdd1" doesn't exist in your current working directory, dlplus will use the copy in /usr/local/lib/dl. +The disk image file is marked read-only and behaves the same as a normal disk with the write-protect notch open (write-protected). 2: Enter the UR-2 menu. -Notice the SARDIN entry with the word OFF under it. +Notice the "SARDIN" entry with the word "OFF" under it. Hit enter on SARDIN. -Say Y if you get a prompt about HIMEM. -This loads SAR100.CO into ram, and now the SARDIN entry says ON under it. +If you get a prompt about HIMEM, answer Y. +This loads SAR100.CO into ram. +Notice the SARDIN entry now says "ON" under it. 3: Enter T-Word and start a new document and type some text. 4: Press GRPH+F to invoke Sardine to spell-check the document. -This will invoke the SAR100.CO previously loaded, which will try to do TPDD1 FDC-mode sector access, wich dlplus will respond to with data from the .pdd1 file. +This will invoke the SAR100.CO previously loaded, which will try to use TPDD1 FDC-mode sector access commands, wich dlplus will respond to with data from the .pdd1 file. Another example, [installing Disk Power for Kyotronic KC-85](clients/disk_power/Disk_Power.txt) Disk image files may be created 2 ways: * One method is you may use the **dd** command within [pdd.sh](https://github.com/bkw777/pdd.sh) to read a real TPDD1 or TPDD2 disk from a real TPDD1 or TPDD2 drive, and output a disk image file. * Another method is you may run `dl -v -m 1 -i filename.pdd1` (for TPDD1) or `dl -v -m 2 -i filename.pdd2` (for TPDD2) where filename.pddN either doesn't exist or is zero bytes, and then use a client (like TS-DOS or pdd.sh) to format the "disk". The format command will cause dlplus to generate the empty disk image. -In the case of TPDD1: If the client uses the "Operation-mode" format command, the generated disk image will be a valid filesystem disk, which just means it will have a particular logical sector size (64 bytes) and valid empty Space Management Table and File Control Blocks. If the client uses the "FDC-mode" format command then the generated image will be a raw data format not a filesystem disk. This just means it will have whatever logical sector size specified by the parameters to the format command, and no SMT or FCB data, and won't be usable for saving files. In both cases, this mimics what a real drive does. +In the case of TPDD1, there is more than one kind of format command. If the client uses the "Operation-mode" format command, the generated disk image will be a valid filesystem disk, which just means it will have a particular logical sector size (64 bytes) and valid Space Management Table and File Control Blocks. If the client uses the "FDC-mode" format command then the generated image will be a raw data format not a filesystem disk. This just means it will have whatever logical sector size was specified by the parameters to the format command, and no SMT or FCB data, and won't be usable for saving files. In both cases, this mimics what a real drive does. TPDD2 does not have an "FDC-mode" and there is only one kind of format command and only one kind of new empty disk format. More details about the disk image format [disk_image_files.txt](ref/disk_image_files.txt) @@ -183,6 +185,6 @@ or you can confuse someone... $ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl ``` ## OS Compatibility -Tested on Linux, Macos, [FreeBSD](ref/freebsd.txt) +Tested on Linux, Macos, and [FreeBSD](ref/freebsd.txt) Purported to work under [Cygwin](https://www.cygwin.com/) on Windows, though I have not tried it myself. -It probably does *not* work under WSL2 because WSL2 still does not fully support usb or serial ports. +As of Feb 2023, WSL2 still does not fully support usb or serial port hardware access, so WSL2 doesn't work. From 9d2a48837506ac2f03428e0846567e51711d5c01 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Fri, 10 Feb 2023 06:52:37 -0500 Subject: [PATCH 106/206] Update REXCPM.md --- REXCPM.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/REXCPM.md b/REXCPM.md index 085457d..ec5ed7b 100644 --- a/REXCPM.md +++ b/REXCPM.md @@ -35,7 +35,7 @@ Init REXCPM dir? Yes Execute choices.. sure? (y/n) Y Name: RXC_12 ``` -"Name:" is the basename portion of `RXC_\*.BR` from the REXCPM\*.ZIP file. +"Name:" is the basename portion of `RXC_*.BR` from the REXCPM\*.ZIP file. The \* part may change over time, and you don't type the .BR part. Currently in REXCPMV21_b19.ZIP this is `RXC_12.BR`, so you enter `RXC_12` at that prompt. @@ -49,7 +49,7 @@ Enter BASIC and type: `CALL 63012` \[Enter\] (installs RXCMGR from the REXCPM t * the 100 is at the main menu * there is a `RXCMGR` entry on the main menu -The REXCPM now has it's basic firmware installed which provides the same REX functionality as [REXCPM](http://bitchin100.com/wiki/index.php?title=REXsharp) or [REX Classic](http://tandy.wiki/REX). You can use RXCMGR to load option rom images from TPDD, select & activate installed rom images, create and restore ram backup images. +The REXCPM now has it's basic firmware installed which provides the same REX functionality as [REX#](http://bitchin100.com/wiki/index.php?title=REXsharp) or [REX Classic](http://tandy.wiki/REX). You can use RXCMGR to load option rom images from TPDD, select & activate installed rom images, create and restore ram backup images. What is not done yet: * TS-DOS option rom not installed yet From fca274b410a6d6bed315baf7de883e67d3223034 Mon Sep 17 00:00:00 2001 From: "Brian K. White" Date: Thu, 16 Feb 2023 20:58:00 -0500 Subject: [PATCH 107/206] support cygwin --- .gitignore | 1 + Makefile | 18 ++++++++++++------ dl.c | 18 +++++++++++++++++- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index b3ee1c6..d51c5a8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.o dl +*.exe diff --git a/Makefile b/Makefile index 2b72441..2a7f78e 100644 --- a/Makefile +++ b/Makefile @@ -64,6 +64,12 @@ else LDLIBS += -lutil endif +INSTALLOWNER = -o root +ifeq ($(OS),Windows_NT) + INSTALLOWNER = + CFLAGS += -D_WIN +endif + DEFINES := \ -DAPP_VERSION=\"$(APP_VERSION)\" \ -DAPP_LIB_DIR=\"$(APP_LIB_DIR)\" \ @@ -83,21 +89,21 @@ install: $(APP_NAME) $(CLIENT_LOADERS) $(LIB_OTHER) $(DOCS) mkdir -p $(APP_LIB_DIR) for s in $(CLIENT_LOADERS) ;do \ d=$(APP_LIB_DIR)/$${s##*/} ; \ - install -o root -m 0644 $${s} $${d} ; \ - install -o root -m 0644 $${s}.pre-install.txt $${d}.pre-install.txt ; \ - install -o root -m 0644 $${s}.post-install.txt $${d}.post-install.txt ; \ + install $(INSTALLOWNER) -m 0644 $${s} $${d} ; \ + install $(INSTALLOWNER) -m 0644 $${s}.pre-install.txt $${d}.pre-install.txt ; \ + install $(INSTALLOWNER) -m 0644 $${s}.post-install.txt $${d}.post-install.txt ; \ done for s in $(LIB_OTHER) ;do \ d=$(APP_LIB_DIR)/$${s##*/} ; \ - install -o root -m 0644 $${s} $${d} ; \ + install $(INSTALLOWNER) -m 0644 $${s} $${d} ; \ done for s in $(DOCS) ;do \ d=$(APP_DOC_DIR)/$${s} ; \ mkdir -p $${d%/*} ; \ - install -o root -m 0644 $${s} $${d} ; \ + install $(INSTALLOWNER) -m 0644 $${s} $${d} ; \ done mkdir -p $(PREFIX)/bin - install -o root -m 0755 $(APP_NAME) $(PREFIX)/bin/$(APP_NAME) + install $(INSTALLOWNER) -m 0755 $(APP_NAME) $(PREFIX)/bin/$(APP_NAME) uninstall: rm -rf $(APP_LIB_DIR) $(APP_DOC_DIR) $(PREFIX)/bin/$(APP_NAME) diff --git a/dl.c b/dl.c index 92cceea..3c81653 100644 --- a/dl.c +++ b/dl.c @@ -130,7 +130,9 @@ char dme_parent_label[7] = DEFAULT_DME_PARENT_LABEL; char dme_dir_label[3] = DEFAULT_DME_DIR_LABEL; char default_attr = DEFAULT_TPDD_FILE_ATTR; bool enable_magic_files = true; -bool getty_mode = false; +#if !defined(_WIN) + bool getty_mode = false; +#endif bool bootstrap_mode = false; int model = 2; @@ -310,13 +312,17 @@ int open_client_tty () { if (client_tty_fd<0) { dbg(0,"%s\n",strerror(errno)); return 1; } dbg(0,"OK\n"); +#ifdef TIOCEXCL ioctl(client_tty_fd,TIOCEXCL); +#endif +#if !defined(_WIN) if (getty_mode) { debug = 0; if (login_tty(client_tty_fd)==0) client_tty_fd = STDIN_FILENO; else (void)(daemon(1,1)+1); } +#endif (void)(tcflush(client_tty_fd, TCIOFLUSH)+1); @@ -1734,7 +1740,9 @@ int bootstrap(char *f) { // void show_config () { +#if !defined(_WIN) dbg(0,"getty_mode : %s\n",getty_mode?"true":"false"); +#endif dbg(0,"upcase : %s\n",upcase?"true":"false"); dbg(0,"rtscts : %s\n",rtscts?"true":"false"); dbg(0,"verbosity : %d\n",debug); @@ -1768,7 +1776,9 @@ void show_main_help() { " -b file Bootstrap - send loader file to client\n" " -d tty Serial device connected to client (" DEFAULT_CLIENT_TTY ")\n" " -e Disable TS-DOS directory extension (enabled)\n" +#if !defined(_WIN) " -g Getty mode - run as daemon\n" +#endif " -h Print this help\n" " -i file Disk image file for raw sector access, TPDD1 only\n" " -l List loader files and show bootstrap help\n" @@ -1810,14 +1820,20 @@ int main(int argc, char **argv) { if (getenv("ATTR")) default_attr = *getenv("ATTR"); // commandline +#if defined(_WIN) + while ((i = getopt (argc, argv, ":0a:b:d:ehi:lm:p:rs:uvwz:^")) >=0) +#else while ((i = getopt (argc, argv, ":0a:b:d:eghi:lm:p:rs:uvwz:^")) >=0) +#endif switch (i) { case '0': dot_offset=0; upcase=false; default_attr=0x20; break; case 'a': default_attr=*strndup(optarg,1); break; case 'b': bootstrap_mode=true; strcpy(bootstrap_fname,optarg);break; case 'd': strcpy(client_tty_name,optarg); break; case 'e': dme_disabled = true; break; +#if !defined(_WIN) case 'g': getty_mode = true; debug = 0; break; +#endif case 'h': show_main_help(); exit(0); break; case 'i': strcpy(disk_img_fname,optarg); break; case 'l': show_bootstrap_help(); exit(0); break; From 41777aba2ccc21e9ab2c991982600cafad465f7f Mon Sep 17 00:00:00 2001 From: "Brian K. White" Date: Thu, 16 Feb 2023 23:36:28 -0500 Subject: [PATCH 108/206] document windows/cygwin --- README.md | 4 +- ref/cygwin.md | 417 ++++++++++++++++++++++++++++++++++++++++++++++++ ref/freebsd.md | 2 +- ref/freebsd.txt | 28 ---- 4 files changed, 419 insertions(+), 32 deletions(-) create mode 100644 ref/cygwin.md delete mode 100644 ref/freebsd.txt diff --git a/README.md b/README.md index 87bad46..074ae4c 100644 --- a/README.md +++ b/README.md @@ -185,6 +185,4 @@ or you can confuse someone... $ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl ``` ## OS Compatibility -Tested on Linux, Macos, and [FreeBSD](ref/freebsd.txt) -Purported to work under [Cygwin](https://www.cygwin.com/) on Windows, though I have not tried it myself. -As of Feb 2023, WSL2 still does not fully support usb or serial port hardware access, so WSL2 doesn't work. +Tested on Linux, Macos, [FreeBSD](ref/freebsd.md), and [Windows](ref/cygwin.md).. diff --git a/ref/cygwin.md b/ref/cygwin.md new file mode 100644 index 0000000..72e234e --- /dev/null +++ b/ref/cygwin.md @@ -0,0 +1,417 @@ +# Notes for Windows +Sorry these are just the high points + +## Requires Cygwin +* Install [Cygwin](https://www.cygwin.com/) +* Add packages: cygwin-devel make gcc-g++ git unzip + at least, possibly others +* Launch a Cygwin terminal window + +## Download, build, & install +``` +git clone https://github.com/bkw777/dlplus.git +cd dlplus +make clean all && make install +``` + +## Platform notes + +* Getty/daemon mode is #ifdef'd out at compile-time on Windows. No getty option. + + +* Example session that excersizes both the bootstrap and normal file access functions. + Download & unzip the REXCPM setup files for the Model 100 + +``` +bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX +$ curl -O http://www.bitchin100.com/wiki/images/0/03/REXCPMV21_b19.ZIP + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed +100 19859 100 19859 0 0 197k 0 --:--:-- --:--:-- --:--:-- 199k + +bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX +$ curl -O http://www.bitchin100.com/wiki/images/6/63/M100_OPTION_ROMS.zip + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed +100 172k 100 172k 0 0 220k 0 --:--:-- --:--:-- --:--:-- 220k + +bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX +$ curl -O http://www.bitchin100.com/wiki/images/8/8e/CPMUPD.CO + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed +100 1206 100 1206 0 0 1088 0 0:00:01 0:00:01 --:--:-- 1089 + +bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX +$ curl -O http://www.bitchin100.com/wiki/images/a/a7/Cpm410.bk + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed +100 198k 100 198k 0 0 899k 0 --:--:-- --:--:-- --:--:-- 904k + +bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX +$ unzip REXCPMV21_b19.ZIP +Archive: REXCPMV21_b19.ZIP + inflating: rxctst.DO + inflating: rxcini.DO + inflating: rxcupg.DO + inflating: rxcutl.do + inflating: RXC_12.BR + +bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX +$ unzip M100_OPTION_ROMS.zip +Archive: M100_OPTION_ROMS.zip + inflating: checksums.txt + inflating: IS100.BX + inflating: MFORTH.BX + inflating: MP100.bx + inflating: notes.txt + inflating: R2C1D.BX + inflating: R2C100.BX + inflating: SAR100.BX + inflating: SUP100.BX + inflating: TSD100.BX + inflating: TSR100.BX + inflating: UR2100.BX + inflating: ANLYST.BX + +bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX +$ +``` + + +* Identify the serial port tty device + +``` +bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX +$ ls /dev/tty* +/dev/tty /dev/ttyS6 +``` + +* run dl, specifying ttyS6 for the tty device + +``` +bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX +$ dl -vb rxcini.DO ttyS6 && dl -vu ttyS6 +DeskLink+ v2.0.000-16-g9d2a488 +Loading: "rxcini.DO" +Serial Device: /dev/ttyS6 +Working Dir : /cygdrive/c/Users/bkw/Documents/REX +Opening "/dev/ttyS6" ... OK +Bootstrap: Installing "rxcini.DO" + +Prepare BASIC to receive: + + RUN "COM:98N1ENN" [Enter] <-- TANDY/Olivetti/Kyotronic + RUN "COM:9N81XN" [Enter] <-- NEC + +Press [Enter] when ready... +Sending "rxcini.DO" ... +10 clear1000,62000:SCREEN0:GOSUB300:GOSUB75 +15 RESTORE 90:FORI=0TO1:READR(I),Q$(I),C$(I,0),C$(I,1):CH(I)=0:NEXTI +20 I=0 +25 K=0:GOSUB80 +30 GOSUB85 +35 Z$=INKEY$:IFZ$=""THEN 35 +40 IF ASC(Z$)=32 THEN K=(K+1)MOD2:GOTO 30 +45 IF ASC(Z$)=13 THEN CH(I)=K:I=I+1 +50 IF I<2 THEN GOTO 25 +55 PRINT@280,"Execute choices.. sure? (y/n) "; +60 Z$=INKEY$:IFZ$=""THEN 60 +65 IF Z$="y" OR Z$="Y" THEN 198 ELSE 10 +75 PRINT@280,"selection: choice:"; +76 print@40,"This program is able to load REXCPM" +77 print@80,"software, and able to wipe clean" +78 print@120,"the directory." +80 PRINT@R(I)*40,Q$(I):RETURN +85 PRINT@R(I)*40+19,C$(I,K):RETURN +90 DATA 5,"Load REXCPM code? ", "No ","Yes" +91 DATA 6,"Init REXCPM dir? ", "No ","Yes" + +198 if CH(0)=0 and CH(1)=0 then end +199 a=CH(0): hl= CH(1) +200 gosub300 +201 n=1:restore400:gosub280:q0=q1 +213 gosub240 +215 FORX=1TOpeek(m)step2:k=16*peek(z)+peek(z+1)-1105:POKEQ,k:Q=Q+1:cs=cs+k:z=z+2:NEXT:GOTO213 +216 gosub270 + +220 n=2:restore500:gosub280 +223 gosub240 +224 pokeq0+2,m-256*INT(m/256):pokeq0+3,INT(m/256):callq0+4,0,q:cs=cs+256*peek(q0+1)+peek(q0):q=q+peek(m)/2:GOTO223 +226 gosub270 + +230 rem a$=inkey$:ifa$=""then 207 +232 callq1,a,hl:END + +240 READP$:m=65536+varptr(p$):print".";:z=256*peek(m+2)+peek(m+1) +241 on (1+((-n)*(peek(z)=47))) goto 242,216,226 +242 return + +270 print">";q-1:READP:ifcs=Pthenreturn +272 beep:print"Checksum Error! Check file!":end + +280 cs=0:print"Stage ";n;": ";:readq1:q=q1:printq;"<";:ifq>=himemthenreturn +281 beep:print"Himem conflict!":end + +400 DATA 64704 +401 DATA AAAAAAAAOFKPDCMAPMDCMBPMCKMCPMEGCDFOCDFGOBOLHONG +402 DATA EBAHAHAHAHEPCDHONGEBIBOFBCBDNFBGAAFPCKMAPMBJCCMA +403 DATA PMNBOBCDAFAFMCNGPMMJ +404 DATA / +405 DATA 6667 +300 CLS:print"REXCPM INITIALIZE v3" +304 return +500 DATA 62000 +501 DATA DCFOPDHNDCFPPDDIAAOLCCFMPDCBDCPEDHMNOGBHCBAGAAMN +502 DATA CNPFPOAAMCBGPECBAHAAMNCNPFPOABMCBGPECBAFAAMNCNPF +503 DATA POACMCBGPECBPPPFHOPOMJMCBGPEMNFPPFDKFOPDLHMKBOPD +504 DATA CBGMPDMNKCBBCBHPPDMNKCBBMNEEEGAFMKAOPFDOAGLIMCHO +505 DATA PCCBILPGDGCOCDDGECCDDGFCCDCIAODGCANPCDMCJPPCBBEG +506 DATA AAOLNJDOABDCGHPDCBAHAAMNDIPEMCBAPECBAABKMNDIPEMK +507 DATA HOPCDOADDCIFPGCBABABMNDIPEMCBAPEKPMNCEPFDOACMNCK +508 DATA PFDOABDCGHPDKPDCGGPDDOBLOHDOEBOHCBAAIACCGKPDCKGK +509 DATA PDDKGHPDKEPOKAMKBOPDOLCBADAAMNDIPEHINGBCMKBAPEDO +510 DATA ANOHDKGHPDOGEAEHCKGKPDHMOGHPLAGHMNNEDJMDOOPCDKFP +511 DATA PDLHMKEMPDCBIIPDMNKCBBDOADMNCKPFKPMNCEPFCBAAKADG +512 DATA PPCDHMPOKDMCDHPDCBAAKBDGAACDHMPOKCMCEDPDKPMNCKPF +513 DATA DOABMNCEPFCBKFPDMDKCBBAAAAAAAAAAAAAAAAAAAAAAAAAA +514 DATA AAAAAAAAANAKAJEGGPHCGNGBHEDKFIFIFIFIFIFIANAKAAAJ +515 DATA EOGBGNGFCACADKAAANAKAJEJGOGJHEGJGBGMGJHKGJGOGHCA +516 DATA GEGJHCGFGDHEGPHCHJCOCOCOAAAHANAKAJEDGPGNHAGMGFHE +517 DATA GFCBCBAAAHAHANAKEDGBGOCHHECAHCHFGOCBCBANAKFCGFGN +518 DATA GPHGGFCAFCEFFICAGIGPGPGLCAEDEOFEEMCNFIANAKFAGPHH +519 DATA GFHCCAGDHJGDGMGFCOAAAHAHANAKEDGIGFGDGLCAFEFAEEEE +520 DATA CBCBAAAHAHANAKEDGIGFGDGLHDHFGNCAEFHCHCGPHCCBCBAA +521 DATA CBOKPDMDBPPECBLEPDMDBPPECBPLPDMNJBFHCKFMPDPJKPMN +522 DATA CKPFDOABMNCEPFMDKAFLDJDIEODBEEAAHNDCGAPDOFCBIFPG +523 DATA CCGIPDCBLHPGCCGKPDDKGAPDPOAEMCFIPEOLCCGIPDMDGEPE +524 DATA DKGAPDPOADMCGEPEOLCCGKPDOBKPEPDOFKMNBIPFMNBIPFHN +525 DATA DCGAPDMNBIPFIBEPHMMNBIPFIBEPOLCKGIPDOLCECFMKJCPE +526 DATA BKMNBIPFIBEPBDMDIEPEOLCCGIPDCKGKPDHJCPMNBIPFPDMN +527 DATA APPFFPDCGBPDMNAPPFDCGCPDOFFHIDFPDKGHPDLHMCLKPEMD +528 DATA NPPEHMPOMAMCNIPECBAAIADKGHPDPOPPMKLHPEDOPPDCGHPD +529 DATA DOADMNCKPFCBAAIAMNAPPFHHCDIDFPBFMCLAPEMNAPPFDCGD +530 DATA PDFHHLCPDCGEPDLKMCBMPEDOIAEHDKGCPDLIMKABPFKPDCGC +531 DATA PDDKGBPDEHCCGKPDOBKPIGDCGFPDMJCAOGCAMKAPPFNLMIMJ +532 DATA PFNLNIOGBAMKBJPFPBNDMIMJCBAAAAMDCNPFCBACAAPFHNOG +533 DATA AHAHAHAHAHPGIAGHGPPBPFOGPAAPAPAPAPLEGHPBOGAPLFGP +534 DATA PDDKAALIDKAAPCDKAAMEDKAAONDKAAKBDKAAJIHOGFHOMJCB +535 DATA ILPFMNKCBBCBJGPFMNKCBBCBJNPFDKFOPDLHMCHIPFCBKDPF +536 DATA MNKCBBCBKMPFDKFPPDLHMCIIPFCBLBPFMDKCBBANAKAJEBGD +537 DATA HEGJGPGODNAADBDJDCDADACMAAEMGPGBGECMAAEOGPCAGMGP +538 DATA GBGECMAAEJGOGJHEAAEOGPCAGJGOGJHEAA +539 DATA / +540 DATA 104506 + +DONE + +"dl -b" will now exit. +Re-run "dl" (without -b this time) to run the TPDD server. + +DeskLink+ v2.0.000-16-g9d2a488 +Serial Device: /dev/ttyS6 +Working Dir : /cygdrive/c/Users/bkw/Documents/REX +Opening "/dev/ttyS6" ... OK +------------------------------------------------------------------------------- +"ANLYST.BX" ANLYST.BX +"CHECKS.TX" checksums.txt +"CPM410.BK" Cpm410.bk +"CPMUPD.CO" CPMUPD.CO +"IS100 .BX" IS100.BX +"M100_O.ZI" M100_OPTION_ROMS.zip +"MFORTH.BX" MFORTH.BX +"MP100 .BX" MP100.bx +"NOTES .TX" notes.txt +"R2C100.BX" R2C100.BX +"R2C1D .BX" R2C1D.BX +"REXCPM.ZI" REXCPMV21_b19.ZIP +"RXCINI.DO" rxcini.DO +"RXCTST.DO" rxctst.DO +"RXCUPG.DO" rxcupg.DO +"RXCUTL.DO" rxcutl.do +"RXC_12.BR" RXC_12.BR +"SAR100.BX" SAR100.BX +"SUP100.BX" SUP100.BX +"TSD100.BX" TSD100.BX +"TSR100.BX" TSR100.BX +"UR2100.BX" UR2100.BX +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +"ANLYST.BX" ANLYST.BX +"CHECKS.TX" checksums.txt +"CPM410.BK" Cpm410.bk +"CPMUPD.CO" CPMUPD.CO +"IS100 .BX" IS100.BX +"M100_O.ZI" M100_OPTION_ROMS.zip +"MFORTH.BX" MFORTH.BX +"MP100 .BX" MP100.bx +"NOTES .TX" notes.txt +"R2C100.BX" R2C100.BX +"R2C1D .BX" R2C1D.BX +"REXCPM.ZI" REXCPMV21_b19.ZIP +"RXCINI.DO" rxcini.DO +"RXCTST.DO" rxctst.DO +"RXCUPG.DO" rxcupg.DO +"RXCUTL.DO" rxcutl.do +"RXC_12.BR" RXC_12.BR +"SAR100.BX" SAR100.BX +"SUP100.BX" SUP100.BX +"TSD100.BX" TSD100.BX +"TSR100.BX" TSR100.BX +"UR2100.BX" UR2100.BX +------------------------------------------------------------------------------- +``` + +Typed "RXC_12" at filename prompt in rxcini + +``` +Open for read: "RXC_12.BR" +................................................................................................................................................................................................------------------------------------------------------------------------------- +"ANLYST.BX" ANLYST.BX +"CHECKS.TX" checksums.txt +"CPM410.BK" Cpm410.bk +"CPMUPD.CO" CPMUPD.CO +"IS100 .BX" IS100.BX +"M100_O.ZI" M100_OPTION_ROMS.zip +"MFORTH.BX" MFORTH.BX +"MP100 .BX" MP100.bx +"NOTES .TX" notes.txt +"R2C100.BX" R2C100.BX +"R2C1D .BX" R2C1D.BX +"REXCPM.ZI" REXCPMV21_b19.ZIP +"RXCINI.DO" rxcini.DO +"RXCTST.DO" rxctst.DO +"RXCUPG.DO" rxcupg.DO +"RXCUTL.DO" rxcutl.do +"RXC_12.BR" RXC_12.BR +"SAR100.BX" SAR100.BX +"SUP100.BX" SUP100.BX +"TSD100.BX" TSD100.BX +"TSR100.BX" TSR100.BX +"UR2100.BX" UR2100.BX +------------------------------------------------------------------------------- +``` + +After rxcini completed, ran "CALL 63012" to install RXCMGR from the REXCPM, +ran RXCMGR, press Tab to switch to the ROM screen, F2 Load, and entered "TSD100" + +``` +Open for read: "TSD100.BX" +................................................................................................................................................................................................................................................................------------------------------------------------------------------------------- +"ANLYST.BX" ANLYST.BX +"CHECKS.TX" checksums.txt +"CPM410.BK" Cpm410.bk +"CPMUPD.CO" CPMUPD.CO +"IS100 .BX" IS100.BX +"M100_O.ZI" M100_OPTION_ROMS.zip +"MFORTH.BX" MFORTH.BX +"MP100 .BX" MP100.bx +"NOTES .TX" notes.txt +"R2C100.BX" R2C100.BX +"R2C1D .BX" R2C1D.BX +"REXCPM.ZI" REXCPMV21_b19.ZIP +"RXCINI.DO" rxcini.DO +"RXCTST.DO" rxctst.DO +"RXCUPG.DO" rxcupg.DO +"RXCUTL.DO" rxcutl.do +"RXC_12.BR" RXC_12.BR +"SAR100.BX" SAR100.BX +"SUP100.BX" SUP100.BX +"TSD100.BX" TSD100.BX +"TSR100.BX" TSR100.BX +"UR2100.BX" UR2100.BX +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +"ANLYST.BX" ANLYST.BX +"CHECKS.TX" checksums.txt +"CPM410.BK" Cpm410.bk +"CPMUPD.CO" CPMUPD.CO +"IS100 .BX" IS100.BX +"M100_O.ZI" M100_OPTION_ROMS.zip +"MFORTH.BX" MFORTH.BX +"MP100 .BX" MP100.bx +"NOTES .TX" notes.txt +"R2C100.BX" R2C100.BX +"R2C1D .BX" R2C1D.BX +"REXCPM.ZI" REXCPMV21_b19.ZIP +"RXCINI.DO" rxcini.DO +"RXCTST.DO" rxctst.DO +"RXCUPG.DO" rxcupg.DO +"RXCUTL.DO" rxcutl.do +"RXC_12.BR" RXC_12.BR +"SAR100.BX" SAR100.BX +"SUP100.BX" SUP100.BX +"TSD100.BX" TSD100.BX +"TSR100.BX" TSR100.BX +"UR2100.BX" UR2100.BX +------------------------------------------------------------------------------- +``` + +Now TS-DOS option rom is installed, used it to copy CPMUPD.CO from "disk" to the 100. + +``` +Open for read: "CPMUPD.CO" +.......... +------------------------------------------------------------------------------- +"ANLYST.BX" ANLYST.BX +"CHECKS.TX" checksums.txt +"CPM410.BK" Cpm410.bk +"CPMUPD.CO" CPMUPD.CO +"IS100 .BX" IS100.BX +"M100_O.ZI" M100_OPTION_ROMS.zip +"MFORTH.BX" MFORTH.BX +"MP100 .BX" MP100.bx +"NOTES .TX" notes.txt +"R2C100.BX" R2C100.BX +"R2C1D .BX" R2C1D.BX +"REXCPM.ZI" REXCPMV21_b19.ZIP +"RXCINI.DO" rxcini.DO +"RXCTST.DO" rxctst.DO +"RXCUPG.DO" rxcupg.DO +"RXCUTL.DO" rxcutl.do +"RXC_12.BR" RXC_12.BR +"SAR100.BX" SAR100.BX +"SUP100.BX" SUP100.BX +"TSD100.BX" TSD100.BX +"TSR100.BX" TSR100.BX +"UR2100.BX" UR2100.BX +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +"ANLYST.BX" ANLYST.BX +"CHECKS.TX" checksums.txt +"CPM410.BK" Cpm410.bk +"CPMUPD.CO" CPMUPD.CO +"IS100 .BX" IS100.BX +"M100_O.ZI" M100_OPTION_ROMS.zip +"MFORTH.BX" MFORTH.BX +"MP100 .BX" MP100.bx +"NOTES .TX" notes.txt +"R2C100.BX" R2C100.BX +"R2C1D .BX" R2C1D.BX +"REXCPM.ZI" REXCPMV21_b19.ZIP +"RXCINI.DO" rxcini.DO +"RXCTST.DO" rxctst.DO +"RXCUPG.DO" rxcupg.DO +"RXCUTL.DO" rxcutl.do +"RXC_12.BR" RXC_12.BR +"SAR100.BX" SAR100.BX +"SUP100.BX" SUP100.BX +"TSD100.BX" TSD100.BX +"TSR100.BX" TSR100.BX +"UR2100.BX" UR2100.BX +------------------------------------------------------------------------------- +``` + +Entered "CPM410.BK" at the firlname prompt in CPMUPD. + + +``` +Open for read: "Cpm410.bk" +................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + + +bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX +$ +``` + +REXCPM is now fully installed. + diff --git a/ref/freebsd.md b/ref/freebsd.md index a1f0de7..4f03bee 100644 --- a/ref/freebsd.md +++ b/ref/freebsd.md @@ -27,7 +27,7 @@ notify 100 { * Re-plug the usb-serial adapter. -## Behavior +## Behavior Quirks Hangs at opening the client tty if the client machine is not connected yet. Proceeds as soon as the client machine is connected. diff --git a/ref/freebsd.txt b/ref/freebsd.txt deleted file mode 100644 index 58b9cdf..0000000 --- a/ref/freebsd.txt +++ /dev/null @@ -1,28 +0,0 @@ -Notes for FreeBSD - --- Building -- - use gmake instead of make - - --- Permissions -- - -Create the file: -/usr/local/etc/devd/usbserial.conf - - notify 100 { - match "system" "DEVFS"; - match "subsystem" "CDEV"; - match "type" "CREATE"; - match "cdev" "ttyU[0-9]+"; - action "chgrp dialer /dev/$cdev ;chmod g+rw /dev/$cdev"; - }; - - -Restart the devd service: -service devd restart - -Add yourself to the dialer group (replace "bkw" with your login name): -pw group mod dialer -m bkw - -Re-plug the usb-serial adapter. - From bd1fd5e797fe72f11c7a6ee9b87141874bc801df Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Thu, 16 Feb 2023 23:40:18 -0500 Subject: [PATCH 109/206] Update cygwin.md --- ref/cygwin.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ref/cygwin.md b/ref/cygwin.md index 72e234e..88b1112 100644 --- a/ref/cygwin.md +++ b/ref/cygwin.md @@ -2,9 +2,9 @@ Sorry these are just the high points ## Requires Cygwin -* Install [Cygwin](https://www.cygwin.com/) -* Add packages: cygwin-devel make gcc-g++ git unzip - at least, possibly others +* Install [Cygwin](https://www.cygwin.com/) +* Add packages: cygwin-devel make gcc-g++ git unzip + (at least, possibly others) * Launch a Cygwin terminal window ## Download, build, & install From aaeb56e159f5018b44cdfe780e256fecf7f6840b Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Fri, 17 Feb 2023 02:17:17 -0500 Subject: [PATCH 110/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 074ae4c..ca35185 100644 --- a/README.md +++ b/README.md @@ -185,4 +185,4 @@ or you can confuse someone... $ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl ``` ## OS Compatibility -Tested on Linux, Macos, [FreeBSD](ref/freebsd.md), and [Windows](ref/cygwin.md).. +Tested on Linux, Macos, [FreeBSD](ref/freebsd.md), and [Windows](ref/cygwin.md). From 188e16a0fa0c2d873abd9b9e040261942807cc43 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 20 Feb 2023 14:00:14 -0500 Subject: [PATCH 111/206] crunch TEENY.200 --- clients/teeny/TEENY.200 | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/clients/teeny/TEENY.200 b/clients/teeny/TEENY.200 index 514b750..920a270 100644 --- a/clients/teeny/TEENY.200 +++ b/clients/teeny/TEENY.200 @@ -1,22 +1 @@ -1 'TEENY.200 - Smaller version of Acroatix TINY TPDD client - Ron Wiesen 2005 -10 CLEAR99:GOSUB20 -15 F$="TEENY.CO":F=0:GOSUB30 -19 END -20 PRINT"12 seconds..":FORN=-2122TO-1838:P=P+2:IFP>LEN(D$)THENREADD$:P=1 -24 D=(ASC(MID$(D$,P,1))-65)*16+ASC(MID$(D$,P+1,1))-65:POKEN,D:C=C+D:NEXT:IFC=40895THENRETURN -28 GOSUB45:PRINT"loader. Can't continue.":END -30 PRINT"End address for ";F$;:A=-1:INPUT" (Press ENTER for just below HIMEM)";A -40 CALL-2122,F,A:F=F+1:E=PEEK(-2128):IFETHENPRINT"Warning - ";:GOSUB45ELSEPRINT"Loaded "; -44 CALL4556,,-2234:PRINT".CO":RETURN -45 PRINT"Bad checksum on ";:BEEP:RETURN -50 DATA MGDADCLAPHDCLBPHOFCKGHOPOLONCLCCLEPHCBEGPHFHMNCMPICBPLPEMNCMPIOBNFAIMKAFPICDAIMCODPHCKLEOOOFCKPNPEEEENOBAIOFBBPLPEONEEEN -55 DATA OBNJAICCLCPHOLCKPPPEHMLFMKAFPIBJCCPPPEMNGCCMMNKGCLMEMOCKMNGCCMMNKJPIMNKGCLOLMNKBEBCDCDNBMNCPPIDCEMPHMNFBPIJCDCLAPHMJABAG -60 DATA AAMFOFMNFBPIOBHHEHHKNKEFPICLEOOLCKLCPHAJNJOLCDIAAPFHCDMBALHILBMCCPPIMJNFFEMNGOPIPOCKNCGJPINGCFFHAPAPOGMAFPMNGOPINGDALDNG -65 DATA GLBINBMJCKLEPHHOLHMKIBPIHOPOCJCDCCLEPHMADODKMJABAFAAAJHONGIDMCJNPICDLOMKIEPIABLAPHAKLHMKJNPIDKLBPHJGACCDHOMKHCPILHMCJNPI -70 DATA MDIBPIMNAJCMOFCKPNPEABAGAAAJEEENCKGFPGNEKIICNKDNEMOLCKGDPGAICCGDPGDOKAOBMNKMCNCBPLPEMDKFDC -100 DATA0#o#`#`#i$4#;0VVm0V#$a$2$Y$)#b#>!R$U5A&G$a#>#8-;&G#J$R#Yp$[#b#p-J&G#$Y!R4#Yp8_&H8+&G3Q[#)#)#)$).#K&G8!P$b8$l&G#|$MZqt8!U#\qz#Q#;#>p-#]&H#Q#a#>$K8+&G#b#Ugbi}5#1&H$S!R4#9l#Yl8_&H$R#>$N.}&H<#Yo8_&H$L#>#\8!U#\.}&H87#F-#@&G#<#F&G#=#OZ8l#GP8$c&G#E#2c#`#g$D$;#=_bv$)#Wn#X-!3&H$2#<#0&I#4#4#4#4#4$Y`|#Y&I@#>$9#>$1@ -104 DATA #>$9#>$A$F$9#>$1$;$D#=]bV#=[bP8!C$]E#C&G#w.F&H##Qk4F4Q$[+#9o.#K&G8g&H8#4$`E#=&G-#)&G$R#>4!;#R&I$>a+#?&I$$R#E]bV#E$a4\ -105 DATA #E[bV#6L.!G#H8#)&H-#@&G#U#gbi#]E#I&Gi#`=#I&G87#F5#7&G8$c&G#j#Ym$l0@V8;#G<$X$n$J$W!5$B,w#>#Fx-$S&I$X!O3@P8$7&HLEN(D$)THENREADD$:P=1 2D=(ASC(MID$(D$,P,1))-65)*16+ASC(MID$(D$,P+1,1))-65:POKEN,D:C=C+D:NEXT:IFC=40895THENRETURN 3GOSUB7:?"loader. Can't continue.":END 4?"End address for ";F$:?"(Press ENTER for just below HIMEM)":A=-1:INPUTA 5CALL-2122,F,A:F=F+1:E=PEEK(-2128):IFETHEN?"Warning - ";:GOSUB7ELSE?"Loaded "; 6CALL4556,,-2234:PRINT".CO":RETURN 7?"Bad checksum on ";:BEEP:RETURN 8DATAMGDADCLAPHDCLBPHOFCKGHOPOLONCLCCLEPHCBEGPHFHMNCMPICBPLPEMNCMPIOBNFAIMKAFPICDAIMCODPHCKLEOOOFCKPNPEEEENOBAIOFBBPLPEONEEENOBNJAICCLCPHOLCKPPPEHMLFMKAFPIBJCCPPPEMNGCCMMNKGCLMEMOCKMNGCCMMNKJPIMNKG 9DATACLOLMNKBEBCDCDNBMNCPPIDCEMPHMNFBPIJCDCLAPHMJABAGAAMFOFMNFBPIOBHHEHHKNKEFPICLEOOLCKLCPHAJNJOLCDIAAPFHCDMBALHILBMCCPPIMJNFFEMNGOPIPOCKNCGJPINGCFFHAPAPOGMAFPMNGOPINGDALDNGGLBINBMJCKLEPHHOLHMKIBPI 10DATAHOPOCJCDCCLEPHMADODKMJABAFAAAJHONGIDMCJNPICDLOMKIEPIABLAPHAKLHMKJNPIDKLBPHJGACCDHOMKHCPILHMCJNPIMDIBPIMNAJCMOFCKPNPEABAGAAAJEEENCKGFPGNEKIICNKDNEMOLCKGDPGAICCGDPGDOKAOBMNKMCNCBPLPEMDKFDC 11DATA0#o#`#`#i$4#;0VVm0V#$a$2$Y$)#b#>!R$U5A&G$a#>#8-;&G#J$R#Yp$[#b#p-J&G#$Y!R4#Yp8_&H8+&G3Q[#)#)#)$).#K&G8!P$b8$l&G#|$MZqt8!U#\qz#Q#;#>p-#]&H#Q#a#>$K8+&G#b#Ugbi}5#1&H$S!R4#9l#Yl8_&H$R#>$N.}&H<#Yo8_&H$L#>#\8!U#\.}&H87#F-#@&G#<#F&G#=#OZ8l#GP8$c&G#E#2c#`#g$D$;#=_bv$)#Wn#X-!3&H$2#<#0&I#4#4#4#4#4$Y`|#Y&I@#>$9#>$1@ 15DATA #>$9#>$A$F$9#>$1$;$D#=]bV#=[bP8!C$]E#C&G#w.F&H##Qk4F4Q$[+#9o.#K&G8g&H8#4$`E#=&G-#)&G$R#>4!;#R&I$>a+#?&I$$R#E]bV#E$a4\ 16DATA #E[bV#6L.!G#H8#)&H-#@&G#U#gbi#]E#I&Gi#`=#I&G87#F5#7&G8$c&G#j#Ym$l0@V8;#G<$X$n$J$W!5$B,w#>#Fx-$S&I$X!O3@P8$7&H Date: Mon, 20 Feb 2023 14:31:09 -0500 Subject: [PATCH 112/206] docs --- README.md | 5 ++-- REXCPM.md => ref/REXCPM.md | 0 ref/cygwin.md | 48 +++++++++++++++++++++++++++----------- 3 files changed, 38 insertions(+), 15 deletions(-) rename REXCPM.md => ref/REXCPM.md (100%) diff --git a/README.md b/README.md index ca35185..9187cd9 100644 --- a/README.md +++ b/README.md @@ -95,11 +95,11 @@ $ dl -vb TS-DOS.100 ``` $ dl -vb rxcini.DO && dl -vu ``` -([Full directions for REXCPM](REXCPM.md)) +([Full directions for REXCPM](ref/REXCPM.md)) ### Update a [REX#](http://bitchin100.com/wiki/index.php?title=REXsharp) ``` -dl -vb 'rx#u1.do' && dl -v +dl -vb 'rx#u1.do' && dl -vu ``` ## "Magic Files" / Ultimate ROM II @@ -184,5 +184,6 @@ $ ROOT_LABEL='0:' PARENT_LABEL='^:' dl or you can confuse someone... $ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl ``` + ## OS Compatibility Tested on Linux, Macos, [FreeBSD](ref/freebsd.md), and [Windows](ref/cygwin.md). diff --git a/REXCPM.md b/ref/REXCPM.md similarity index 100% rename from REXCPM.md rename to ref/REXCPM.md diff --git a/ref/cygwin.md b/ref/cygwin.md index 88b1112..c22434f 100644 --- a/ref/cygwin.md +++ b/ref/cygwin.md @@ -1,10 +1,8 @@ # Notes for Windows -Sorry these are just the high points ## Requires Cygwin * Install [Cygwin](https://www.cygwin.com/) * Add packages: cygwin-devel make gcc-g++ git unzip - (at least, possibly others) * Launch a Cygwin terminal window ## Download, build, & install @@ -18,10 +16,18 @@ make clean all && make install * Getty/daemon mode is #ifdef'd out at compile-time on Windows. No getty option. +* Serial tty devices are named like ttyS# +Use ```ls /dev/tty*``` to find the serial tty device after plugging in a usb-serial adapter. +Then use ```ttyS4``` (for example) as the last argument on the dl command line. -* Example session that excersizes both the bootstrap and normal file access functions. - Download & unzip the REXCPM setup files for the Model 100 +* The Windows user may need to be in the Administrator group, I haven't done much testing. +## Example usage session - initialize a REXCPM +Initializing a REXCPM excersizes both the bootstrap and normal file access functions. + +Started with a cold-reset of the Model 100: SHIFT+CTRL+BREAK+RESET + +* Download & unzip the REXCPM setup files for the Model 100 ``` bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX $ curl -O http://www.bitchin100.com/wiki/images/0/03/REXCPMV21_b19.ZIP @@ -79,14 +85,21 @@ $ * Identify the serial port tty device - ``` bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX $ ls /dev/tty* /dev/tty /dev/ttyS6 ``` -* run dl, specifying ttyS6 for the tty device +* Run dl, specifying ttyS6 for the tty device +The command line is two consecutive commands with different arguments. +First ```dl -vb rxcini.DO ttyS6``` uses the bootstrap function to send rxcini.DO to the 100 and run it, +As soon as the previous command is done sending rxcini.DO, the next command ```dl -vu ttyS6``` immediately starts providing normal TPDD file access, with uppercase filename conversion. + +rxcini.DO while it is running will use the TPDD to load the REXCPM firmware image, +and then RXCMGR uses TPDD to load the TS-DOS option rom image, +and then you use TS-DOS to copy CPMUPD.CO to the 100, +and then CPMUPD.CO uses TPDD to load the CP/M disk image. ``` bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX @@ -261,7 +274,7 @@ Opening "/dev/ttyS6" ... OK ------------------------------------------------------------------------------- ``` -Typed "RXC_12" at filename prompt in rxcini +Typed ```RXC_12``` at filename prompt in rxcini ``` Open for read: "RXC_12.BR" @@ -291,8 +304,13 @@ Open for read: "RXC_12.BR" ------------------------------------------------------------------------------- ``` -After rxcini completed, ran "CALL 63012" to install RXCMGR from the REXCPM, -ran RXCMGR, press Tab to switch to the ROM screen, F2 Load, and entered "TSD100" +After rxcini completed: +- Typed ```CALL 63012``` in BASIC to install RXCMGR from the REXCPM +- Exited BASIC and launched RXCMGR from the main menu +- Pressed TAB to switch to the ROM screen in RXCMGR +- Pressed F2 for Load +- Entered ```TSD100``` +- Pressed Enter on the TS-DOS entry to install/activate the TS-DOS option rom (which also launches it) ``` Open for read: "TSD100.BX" @@ -346,7 +364,8 @@ Open for read: "TSD100.BX" ------------------------------------------------------------------------------- ``` -Now TS-DOS option rom is installed, used it to copy CPMUPD.CO from "disk" to the 100. +Now TS-DOS option rom is installed. +Used TS-DOS to copy CPMUPD.CO from "disk" to the 100. ``` Open for read: "CPMUPD.CO" @@ -401,8 +420,10 @@ Open for read: "CPMUPD.CO" ------------------------------------------------------------------------------- ``` -Entered "CPM410.BK" at the firlname prompt in CPMUPD. - +- Exited TS-DOS +- Entered BASIC and did ```CLEAR0,60000``` to make room for CPMUPD to run +- Launched CPMUPD from the main menu +- Entered ```CPM410.BK``` at the filename prompt in CPMUPD because I have a 4MB REXCPM ``` Open for read: "Cpm410.bk" @@ -413,5 +434,6 @@ bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX $ ``` -REXCPM is now fully installed. +Pressed Ctrl+C on the pc to quit dlplus. +REXCPM is now fully installed. From 5d2490733ccb71e00a77273cb051c6dac08c9f01 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 20 Feb 2023 14:34:32 -0500 Subject: [PATCH 113/206] Makefile don't error for missing pre/post-install.txt --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 2a7f78e..15a2772 100644 --- a/Makefile +++ b/Makefile @@ -90,8 +90,8 @@ install: $(APP_NAME) $(CLIENT_LOADERS) $(LIB_OTHER) $(DOCS) for s in $(CLIENT_LOADERS) ;do \ d=$(APP_LIB_DIR)/$${s##*/} ; \ install $(INSTALLOWNER) -m 0644 $${s} $${d} ; \ - install $(INSTALLOWNER) -m 0644 $${s}.pre-install.txt $${d}.pre-install.txt ; \ - install $(INSTALLOWNER) -m 0644 $${s}.post-install.txt $${d}.post-install.txt ; \ + [ ! -f $${s}.pre-install.txt ] && continue ;install $(INSTALLOWNER) -m 0644 $${s}.pre-install.txt $${d}.pre-install.txt ; \ + [ ! -f $${s}.post-install.txt ] && continue ;install $(INSTALLOWNER) -m 0644 $${s}.post-install.txt $${d}.post-install.txt ; \ done for s in $(LIB_OTHER) ;do \ d=$(APP_LIB_DIR)/$${s##*/} ; \ From aa05322e1a237b4bc98d99a644c3fee9630605c1 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 20 Feb 2023 14:41:03 -0500 Subject: [PATCH 114/206] add co2ba.sh --- Makefile | 3 ++- README.md | 6 ++++++ co2ba.md | 25 ++++++++++++++++++++++ co2ba.sh | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 co2ba.md create mode 100755 co2ba.sh diff --git a/Makefile b/Makefile index 15a2772..c642de6 100644 --- a/Makefile +++ b/Makefile @@ -104,9 +104,10 @@ install: $(APP_NAME) $(CLIENT_LOADERS) $(LIB_OTHER) $(DOCS) done mkdir -p $(PREFIX)/bin install $(INSTALLOWNER) -m 0755 $(APP_NAME) $(PREFIX)/bin/$(APP_NAME) + install $(INSTALLOWNER) -m 0755 co2ba.sh $(PREFIX)/bin/co2ba uninstall: - rm -rf $(APP_LIB_DIR) $(APP_DOC_DIR) $(PREFIX)/bin/$(APP_NAME) + rm -rf $(APP_LIB_DIR) $(APP_DOC_DIR) $(PREFIX)/bin/$(APP_NAME) $(PREFIX)/bin/co2ba clean: rm -f $(APP_NAME) diff --git a/README.md b/README.md index 9187cd9..1e05e07 100644 --- a/README.md +++ b/README.md @@ -185,5 +185,11 @@ or you can confuse someone... $ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl ``` +## co2ba.sh +Also included is a bash script to read a binary .CO file and output an ascii BASIC loader .DO file, +which may then be used with the bootstrap function to re-create the original binary .CO file on the portable. +All KC-85 platform machines are supported including TRS-80 Model 100, TANDY 102 & 200, Kyotronic KC-85, Olivetti M10, NEC PC-8201 & PC-8300. +See [co2ba](co2ba.md) + ## OS Compatibility Tested on Linux, Macos, [FreeBSD](ref/freebsd.md), and [Windows](ref/cygwin.md). diff --git a/co2ba.md b/co2ba.md new file mode 100644 index 0000000..4a02131 --- /dev/null +++ b/co2ba.md @@ -0,0 +1,25 @@ +# co2ba.sh + +Reads a binary .CO file and generates an ascii BASIC loader .DO file + +The general usage is +```co2ba FILE.CO [action] [comment] > FILE.DO``` + +**FILE.CO** is the input binary .CO filename that you want to bootstrap onto the portable. + +**action** is what the loader should do with the .CO after it's done re-creating it on the portable: + call - Immediately execute - for TANDY, Kyotronic, Olivetti + exec - Immediately execute - for NEC + savem - Save FILE.CO - for TANDY, Kyotronic, Olivetti + bsave - Save FILE.CO - for NEC + Otherwise if the option is not given, or any other value than these, the loader will only print a message showing the Top, End, and Exec addresses of the loaded binary. + +**comment** is an optional custom replacement text for the first half of the line #0 comment. + By default a basic comment giving the name of the .CO file is generated. + The 2nd half of the line always has co2ba.sh itself and the date it was run to generate the loader. + You can use this to give more info about the payload than just the filename. + +**FILE.DO** is the output ascii BASIC .DO filename. + +For example, to generate TSLOAD.200 +```co2ba TSLOAD.CO savem "TSLOAD for TANDY 200 - Travelling Software" >TSLOAD.200``` diff --git a/co2ba.sh b/co2ba.sh new file mode 100755 index 0000000..eeb5641 --- /dev/null +++ b/co2ba.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# Read a .CO file and generate a BASIC loader +# Brian K. White + +CO_IN="$1" ;shift +ACTION="${1^^}" ;shift +COMMENT="$@" + +CO="${CO_IN##*/}" ;CO="${CO:0:6}.CO" +BYTES_PER_DATA_LINE=120 +typeset -ra h=({a..p}) # hex data output alphabet + +typeset -i i t b c SUM TOP END EXE LEN LINE +typeset -a d=() + +abrt () { printf '%s: Usage\n%s IN.CO [call|exec|savem|bsave] ["comment..."] > OUT.DO\n%s\n' "$0" "${0##*/}" "$@" >&2 ;exit 1 ; } + +# read a binary file into to global int array d[] +ftoi () { + [[ -r "$1" ]] || abrt "Can't read \"$1\"" + local -i i= ;local x= LANG=C ;d=() + while IFS= read -d '' -r -n 1 x ;do printf -v d[i++] '%u' "'$x" ;done < $1 +} + +############################################################################### + +# help +[[ "${CO_IN}" ]] || abrt + +# read the .CO file into d[] +ftoi "$CO_IN" + +# parse & discard the .CO header +((TOP=${d[1]}*256+${d[0]})) +((LEN=${d[3]}*256+${d[2]})) +((END=TOP+LEN-1)) +((EXE=${d[5]}*256+${d[4]})) +d=(${d[*]:6}) +((LEN==${#d[*]})) || abrt "Corrupt .CO file\nheader declares LEN=$LEN\nfile has ${#d[*]} bytes after header" +SUM= ;for ((i=0;i%uTHEN?"Bad Checksum":END\r' $((LINE++)) $SUM + +# action after loading +case "$ACTION" in + CALL|EXEC) printf '%uCLS:%s%u\r' $((LINE++)) $ACTION $EXE ;; + SAVEM|BSAVE) printf '%uCLS:?"Saving "N$:%sN$,%u,%u,%u\r' $((LINE++)) $ACTION $TOP $END $EXE ;; + *) printf '%uCLS:?"Loaded:":?"top %u":?"end %u":?"exe %u"\r' $((LINE++)) $TOP $END $EXE ;; +esac + +# DATA lines +c= ;for ((i=0;i Date: Mon, 20 Feb 2023 14:45:16 -0500 Subject: [PATCH 115/206] add TSLOAD.100 TSLOAD.200 --- Makefile | 2 ++ clients/ts-dos/TSLOAD.100 | 1 + clients/ts-dos/TSLOAD.200 | 1 + 3 files changed, 4 insertions(+) create mode 100644 clients/ts-dos/TSLOAD.100 create mode 100644 clients/ts-dos/TSLOAD.200 diff --git a/Makefile b/Makefile index c642de6..2a71a0d 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,8 @@ CLIENT_LOADERS := \ clients/dskmgr/DSKMGR.200 \ clients/dskmgr/DSKMGR.K85 \ clients/dskmgr/DSKMGR.M10 \ + clients/ts-dos/TSLOAD.100 \ + clients/ts-dos/TSLOAD.200 \ clients/ts-dos/TS-DOS.100 \ clients/ts-dos/TS-DOS.200 \ clients/ts-dos/TS-DOS.NEC \ diff --git a/clients/ts-dos/TSLOAD.100 b/clients/ts-dos/TSLOAD.100 new file mode 100644 index 0000000..e9301b9 --- /dev/null +++ b/clients/ts-dos/TSLOAD.100 @@ -0,0 +1 @@ +0'TSLOAD for TRS-80 Model 100 - Travelling Software - loader: co2ba.sh b.kenyon.w@gmail.com 2023-02-20 0CLEAR256,56400:A=56400:S=0:N$="TSLOAD.CO":CLS:?"Loading "N$" installer..."; 1D$="":READD$:FORI=1TOLEN(D$)STEP2:B=(ASC(MID$(D$,I,1))-97)*16+ASC(MID$(D$,I+1,1))-97:POKEA,B:A=A+1:S=S+B:NEXT:?".";:IFA<56927THEN1 2IFS<>65583THEN?"Bad Checksum":END 3CLS:?"Saving "N$:SAVEMN$,56400,56926,56400 4DATAcbaaaadjccfhnocbflpgbbbfnoabafaamnnlglcbapnodhmnogbhcbbonomnjhnncgbecoppcnmchenmcfmchcnmmngngnmcjdnmmnmlgocbapnodfdhmnogbhcbbonomnjhnnmneknndkifpgpobcmclonncbdhnomnjhnnmneknndkjppgkhmkmenncbdanomnjhnnmneknndkihpgkhmclonnmnddnnngagepmnhpnnfp 5DATAmnhpnnfhnfmfmnhpnngpmnhpnnghaiccblnomnhpnnmnhpnncknkpkhopoejmcpinmbbahaabjbbpinmnfofcbbnnodgabmjcknkpkabpdhpaimclinnmbnbnfmdannnnfmnddnnnbmnhpnnbcbdanmcannnmnhpnnckblnohnlemcainncbcenomnjhnnmneknnmnkcnndkbnnopoabmjcbcknomnjhnnmnhpnnmnhpnnag 6DATAaaepckblnoaiccblnomjcbifpgmnfmhgofmnhjnnmnhjnnepmnhjnnebhjkhmkginnmnhjnnanmcgbnnobaeaekpdaigcdafmcgnnncplomclonnmjmnhpnnhhcdmjmnipnnmnhognnklonnmclonnmjmndcgonlllogcamimdlonnegcdhomnimnnafmcjinnmjcbbfnohongdknkogbhcdmdogbhcbppnnmnkcbbmdmlbc 7DATAcbnknnmdmhnncbodnnmdmhnncboonnolckfhnopjolmndbecmnkcbbmnkpnnmnkcnnmjfcebencaeghfgmgmaaeegjhdglcaefhchcgphcaaeeepfddbdadacagogphecagggphfgogeaaahcafahcgfhdhdcagbgohjcaglgfhjaadjdieodbeeaaaaaaaaaaaaaaaaaaaaaffkfkahaapiaffkfkacaapnaffkfkadaapm 8DATAagfkfkababadpkbpfkfkaabkeeepfddbdadacoedepcacacacacacacacacacacacacacacaegaaiiaaaaaabenpdhabig \ No newline at end of file diff --git a/clients/ts-dos/TSLOAD.200 b/clients/ts-dos/TSLOAD.200 new file mode 100644 index 0000000..e7494ea --- /dev/null +++ b/clients/ts-dos/TSLOAD.200 @@ -0,0 +1 @@ +0'TSLOAD for TANDY 200 - Travelling Software - loader: co2ba.sh b.kenyon.w@gmail.com 2023-02-20 0CLEAR256,54600:A=54600:S=0:N$="TSLOAD.CO":CLS:?"Loading "N$" installer..."; 1D$="":READD$:FORI=1TOLEN(D$)STEP2:B=(ASC(MID$(D$,I,1))-97)*16+ASC(MID$(D$,I+1,1))-97:POKEA,B:A=A+1:S=S+B:NEXT:?".";:IFA<55126THEN1 2IFS<>62866THEN?"Bad Checksum":END 3CLS:?"Saving "N$:SAVEMN$,54600,55125,54600 4DATAcbaaaadjccfbnhcbdmopbbannhabahaamnbgidcbafnhdhmnbnbjcbbinhmninngcgbecoppcnmcgmnfcfmcgknfmnaiifmcilnfmnlfihcbafnhdfdhmnbnbjcbbinhmninngmnedngdkhaoppobcmclengcbdbnhmninngmnedngdkikopkhmklkngcbcknhmninngmnedngdkhcopkhmclengmncmngngagepmnhfngfp 5DATAmnhfngfhnfmfmnhfnggpmnhfngghaiccbfnhmnhfngmnhfngckahpfhopoejmcpbnfbbahaabjbbpbnfnfofcbbhnhdgabplmjckahpfabkijmaimckongmbnbnfmdagngnfmncmngnbmnhfngbcbdanmcagngmnhfngckbfnhhnlemcabngcbbonhmninngmnedngmnjingdkbhnhpoabmjcbcenhmninngmnhfngmnhfng 6DATAagaaepckbfnhaiccbfnhmjcbhaopofmngpngmngpngepmngpngebhjkhmkfongmngpnganmcfhngobaeaekpdaigcdafmcgdngcplomclengmjmnhfnghhcdmjmnifngmnbjifnklengmclengmjmnedignlmpogiamamdlengegcdhomnicngafmciongmjcbannhhongdknkbnbjcdmdbnbjcbpfngmnmmbbmdphbccbna 7DATAngmdlnngcbnjngmdlnngcboengolckfbnhpjolmnenepmnmmbbmnkfngmnjingmjfcebencaeghfgmgmaaeegjhdglcaefhchcgphcaaeeepfddcdadacagogphecagggphfgogeaaahcafahcgfhdhdcagbgohjcaglgfhjaadjdieodbeeeoeoaaaaaaaaaaaaaaaaaaaaaaaaaffkfkahaapiaffkfkacaapnaffkfkad 8DATAaapmagfkfkababadpkbpfkfkaabkeeepfddcdadacoedepcacacacacacacacacacacacacacacaegaaihaaaafopkaa \ No newline at end of file From d28f0ec941367f278dd94b0849f621b7bd9e956a Mon Sep 17 00:00:00 2001 From: "Brian K. White" Date: Wed, 22 Feb 2023 13:05:47 -0500 Subject: [PATCH 116/206] add $CLIENT_TTY, reduce TSLOAD installers ram waste, MSYS2 directions --- README.md | 15 ++++++++++---- clients/ts-dos/TSLOAD.100 | 2 +- clients/ts-dos/TSLOAD.200 | 2 +- dl.c | 1 + ref/advanced_options.txt | 5 +++++ ref/{cygwin.md => windows.md} | 38 +++++++++++++++++++++++++++-------- 6 files changed, 49 insertions(+), 14 deletions(-) rename ref/{cygwin.md => windows.md} (91%) diff --git a/README.md b/README.md index 1e05e07..0f27d32 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ Examples: ``` -[hacky extra options](ref/advanced_options.txt) +Several of the above settings can alternatively be supplied via environment variables, as well as a few other [hacky extra options](ref/advanced_options.txt) Docs from the past versions of this program. They don't exactly match this version any more. [README.txt](README.txt) from [dlplus](http://bitchin100.com/files/linux/dlplus.zip) by John R. Hogerhuis @@ -102,11 +102,16 @@ $ dl -vb rxcini.DO && dl -vu dl -vb 'rx#u1.do' && dl -vu ``` -## "Magic Files" / Ultimate ROM II +## "Magic Files" / Ultimate ROM II / TSLOAD Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS or Sardine from disk on-the-fly. This allows you to keep the TS-DOS and/or Sardine executables on the disk instead of installed in ram, and it is loaded and then discarded on-demand by selecting the TS-DOS or Sardine entry from the UR-II menu. -On a real drive this requires a copy of DOS100.CO (or DOS200.CO, or DOSNEC.CO, and/or SAR100.CO, SAR200.CO etc) on a disk, or on each disk if you want to avoid having to swap them all the time. On an emulator like dlplus, it would normally require that there be a copy of DOS100.CO in the share path in place of on a disk, and since dlplus can CD into subdirectories, it would even require keeping a copy in every subdirectory. +Similarly, a stand-alone program called TSLOAD is available that does the same thing. TSLOAD allows you to install an executable in ram that is much smaller than TS-DOS, and leave the actual TS-DOS executable on the disk. Then when you want to use TS-DOS, to run TSLOAD, and it loads TS-DOS from the disk and runs it, but does not install it. + +On a real drive this requires keeping a copy of DOS100.CO (or DOS200.CO, or DOSNEC.CO, and/or SAR100.CO, SAR200.CO etc) on a disk, or on every disk if you want to avoid having to swap them all the time. +On an emulator like dlplus, the equivalent of that would mean keeping a copy of DOS100.CO in whatever directory you are sharing. +Additionally, since dlplus can CD into subdirectories, and since UR2 doesn't know about subdirectories, it means you would also have to keep a copy in every subdirectory. +(if you didn't , then what can happen is, you cd into some directory without a copy of DOS100.CO in it, exit TS-DOS, and then you can never get back in to TS-DOS because the UR2/TSLOAD don't know about cding up to the root directory, they just try to load DOS100.CO, which fails. The only fix is to restart dlplus so it's no longer cd'd in some subdirectory, or copying DOS100.CO to the subdirectory on the host side.) But this version of dlplus has special support for this feature so that the TS-DOS and Sardine entries in UR-II always work "by magic" in any directory, even if the files don't exist in the current working directory, or the share root, or anywhere within the shared tree. @@ -117,6 +122,8 @@ Failing that, then it looks in the root share dir. This is another way to overri Failing that, it gets the file from /usr/local/lib/dl. These files are bundled with dlplus, and means you never have to manually supply DOS100.CO or any of the others in any share paths. This way the TS-DOS and Sardine options in Ultimate ROM II always work "by magic" without you having to do anything to provide the files like with a real drive & disk, yet if you want to use some other version of the files, you can, by just placing them in the share path just like placing them on a disk. +There are bootstrap installers for TSLOAD for Model 100 and 200 bundled with the other client installers. + [More details](ref/ur2.txt) ## Sector Access / Disk Images @@ -192,4 +199,4 @@ All KC-85 platform machines are supported including TRS-80 Model 100, TANDY 102 See [co2ba](co2ba.md) ## OS Compatibility -Tested on Linux, Macos, [FreeBSD](ref/freebsd.md), and [Windows](ref/cygwin.md). +Tested on Linux, Macos, [FreeBSD](ref/freebsd.md), and [Windows](ref/windows.md). diff --git a/clients/ts-dos/TSLOAD.100 b/clients/ts-dos/TSLOAD.100 index e9301b9..04329ab 100644 --- a/clients/ts-dos/TSLOAD.100 +++ b/clients/ts-dos/TSLOAD.100 @@ -1 +1 @@ -0'TSLOAD for TRS-80 Model 100 - Travelling Software - loader: co2ba.sh b.kenyon.w@gmail.com 2023-02-20 0CLEAR256,56400:A=56400:S=0:N$="TSLOAD.CO":CLS:?"Loading "N$" installer..."; 1D$="":READD$:FORI=1TOLEN(D$)STEP2:B=(ASC(MID$(D$,I,1))-97)*16+ASC(MID$(D$,I+1,1))-97:POKEA,B:A=A+1:S=S+B:NEXT:?".";:IFA<56927THEN1 2IFS<>65583THEN?"Bad Checksum":END 3CLS:?"Saving "N$:SAVEMN$,56400,56926,56400 4DATAcbaaaadjccfhnocbflpgbbbfnoabafaamnnlglcbapnodhmnogbhcbbonomnjhnncgbecoppcnmchenmcfmchcnmmngngnmcjdnmmnmlgocbapnodfdhmnogbhcbbonomnjhnnmneknndkifpgpobcmclonncbdhnomnjhnnmneknndkjppgkhmkmenncbdanomnjhnnmneknndkihpgkhmclonnmnddnnngagepmnhpnnfp 5DATAmnhpnnfhnfmfmnhpnngpmnhpnnghaiccblnomnhpnnmnhpnncknkpkhopoejmcpinmbbahaabjbbpinmnfofcbbnnodgabmjcknkpkabpdhpaimclinnmbnbnfmdannnnfmnddnnnbmnhpnnbcbdanmcannnmnhpnnckblnohnlemcainncbcenomnjhnnmneknnmnkcnndkbnnopoabmjcbcknomnjhnnmnhpnnmnhpnnag 6DATAaaepckblnoaiccblnomjcbifpgmnfmhgofmnhjnnmnhjnnepmnhjnnebhjkhmkginnmnhjnnanmcgbnnobaeaekpdaigcdafmcgnnncplomclonnmjmnhpnnhhcdmjmnipnnmnhognnklonnmclonnmjmndcgonlllogcamimdlonnegcdhomnimnnafmcjinnmjcbbfnohongdknkogbhcdmdogbhcbppnnmnkcbbmdmlbc 7DATAcbnknnmdmhnncbodnnmdmhnncboonnolckfhnopjolmndbecmnkcbbmnkpnnmnkcnnmjfcebencaeghfgmgmaaeegjhdglcaefhchcgphcaaeeepfddbdadacagogphecagggphfgogeaaahcafahcgfhdhdcagbgohjcaglgfhjaadjdieodbeeaaaaaaaaaaaaaaaaaaaaaffkfkahaapiaffkfkacaapnaffkfkadaapm 8DATAagfkfkababadpkbpfkfkaabkeeepfddbdadacoedepcacacacacacacacacacacacacacacaegaaiiaaaaaabenpdhabig \ No newline at end of file +0'TSLOAD for TRS-80 Model 100 - Travelling Software - loader: co2ba.sh b.kenyon.w@gmail.com 2023-02-20 0CLEAR256,56400:T=56400:E=56926:K=65583:N$="TSLOAD":T$="TMP.DO":Q$=CHR$(34):A=T:S=0:CLS:?"Installing "N$" ..."; 1D$="":READD$:FORI=1TOLEN(D$)STEP2:B=(ASC(MID$(D$,I,1))-97)*16+ASC(MID$(D$,I+1,1))-97:POKEA,B:A=A+1:S=S+B:NEXT:?".";:IFA<=ETHEN1 2IFS<>KTHEN?"Bad Checksum":END 3OPENT$FOROUTPUTAS#1:?#1,"0CLEAR0,"T":RUNM"Q$N$Q$":CLEAR0,MAXRAM:MENU":CLOSE#1:CLS:?"Please type:":?"LOAD "Q$T$Q$:?"KILL "Q$T$Q$:?"SAVE "Q$"TS-DOS"Q$:SAVEMN$,T,E,T 4DATAcbaaaadjccfhnocbflpgbbbfnoabafaamnnlglcbapnodhmnogbhcbbonomnjhnncgbecoppcnmchenmcfmchcnmmngngnmcjdnmmnmlgocbapnodfdhmnogbhcbbonomnjhnnmneknndkifpgpobcmclonncbdhnomnjhnnmneknndkjppgkhmkmenncbdanomnjhnnmneknndkihpgkhmclonnmnddnnngagepmnhpnnfp 5DATAmnhpnnfhnfmfmnhpnngpmnhpnnghaiccblnomnhpnnmnhpnncknkpkhopoejmcpinmbbahaabjbbpinmnfofcbbnnodgabmjcknkpkabpdhpaimclinnmbnbnfmdannnnfmnddnnnbmnhpnnbcbdanmcannnmnhpnnckblnohnlemcainncbcenomnjhnnmneknnmnkcnndkbnnopoabmjcbcknomnjhnnmnhpnnmnhpnnag 6DATAaaepckblnoaiccblnomjcbifpgmnfmhgofmnhjnnmnhjnnepmnhjnnebhjkhmkginnmnhjnnanmcgbnnobaeaekpdaigcdafmcgnnncplomclonnmjmnhpnnhhcdmjmnipnnmnhognnklonnmclonnmjmndcgonlllogcamimdlonnegcdhomnimnnafmcjinnmjcbbfnohongdknkogbhcdmdogbhcbppnnmnkcbbmdmlbc 7DATAcbnknnmdmhnncbodnnmdmhnncboonnolckfhnopjolmndbecmnkcbbmnkpnnmnkcnnmjfcebencaeghfgmgmaaeegjhdglcaefhchcgphcaaeeepfddbdadacagogphecagggphfgogeaaahcafahcgfhdhdcagbgohjcaglgfhjaadjdieodbeeaaaaaaaaaaaaaaaaaaaaaffkfkahaapiaffkfkacaapnaffkfkadaapm 8DATAagfkfkababadpkbpfkfkaabkeeepfddbdadacoedepcacacacacacacacacacacacacacacaegaaiiaaaaaabenpdhabig \ No newline at end of file diff --git a/clients/ts-dos/TSLOAD.200 b/clients/ts-dos/TSLOAD.200 index e7494ea..e7b0786 100644 --- a/clients/ts-dos/TSLOAD.200 +++ b/clients/ts-dos/TSLOAD.200 @@ -1 +1 @@ -0'TSLOAD for TANDY 200 - Travelling Software - loader: co2ba.sh b.kenyon.w@gmail.com 2023-02-20 0CLEAR256,54600:A=54600:S=0:N$="TSLOAD.CO":CLS:?"Loading "N$" installer..."; 1D$="":READD$:FORI=1TOLEN(D$)STEP2:B=(ASC(MID$(D$,I,1))-97)*16+ASC(MID$(D$,I+1,1))-97:POKEA,B:A=A+1:S=S+B:NEXT:?".";:IFA<55126THEN1 2IFS<>62866THEN?"Bad Checksum":END 3CLS:?"Saving "N$:SAVEMN$,54600,55125,54600 4DATAcbaaaadjccfbnhcbdmopbbannhabahaamnbgidcbafnhdhmnbnbjcbbinhmninngcgbecoppcnmcgmnfcfmcgknfmnaiifmcilnfmnlfihcbafnhdfdhmnbnbjcbbinhmninngmnedngdkhaoppobcmclengcbdbnhmninngmnedngdkikopkhmklkngcbcknhmninngmnedngdkhcopkhmclengmncmngngagepmnhfngfp 5DATAmnhfngfhnfmfmnhfnggpmnhfngghaiccbfnhmnhfngmnhfngckahpfhopoejmcpbnfbbahaabjbbpbnfnfofcbbhnhdgabplmjckahpfabkijmaimckongmbnbnfmdagngnfmncmngnbmnhfngbcbdanmcagngmnhfngckbfnhhnlemcabngcbbonhmninngmnedngmnjingdkbhnhpoabmjcbcenhmninngmnhfngmnhfng 6DATAagaaepckbfnhaiccbfnhmjcbhaopofmngpngmngpngepmngpngebhjkhmkfongmngpnganmcfhngobaeaekpdaigcdafmcgdngcplomclengmjmnhfnghhcdmjmnifngmnbjifnklengmclengmjmnedignlmpogiamamdlengegcdhomnicngafmciongmjcbannhhongdknkbnbjcdmdbnbjcbpfngmnmmbbmdphbccbna 7DATAngmdlnngcbnjngmdlnngcboengolckfbnhpjolmnenepmnmmbbmnkfngmnjingmjfcebencaeghfgmgmaaeegjhdglcaefhchcgphcaaeeepfddcdadacagogphecagggphfgogeaaahcafahcgfhdhdcagbgohjcaglgfhjaadjdieodbeeeoeoaaaaaaaaaaaaaaaaaaaaaaaaaffkfkahaapiaffkfkacaapnaffkfkad 8DATAaapmagfkfkababadpkbpfkfkaabkeeepfddcdadacoedepcacacacacacacacacacacacacacacaegaaihaaaafopkaa \ No newline at end of file +0'TSLOAD for TANDY 200 - Travelling Software - loader: co2ba.sh b.kenyon.w@gmail.com 2023-02-20 0CLEAR256,54600:T=54600:E=55125:K=62866:N$="TSLOAD":T$="TMP.DO":Q$=CHR$(34):A=T:S=0:CLS:?"Installing "N$" ..."; 1D$="":READD$:FORI=1TOLEN(D$)STEP2:B=(ASC(MID$(D$,I,1))-97)*16+ASC(MID$(D$,I+1,1))-97:POKEA,B:A=A+1:S=S+B:NEXT:?".";:IFA<=ETHEN1 2IFS<>KTHEN?"Bad Checksum":END 3SAVEMN$,T,E,T:OPENT$FOROUTPUTAS#1:?#1,"0CLEAR0,"T":RUNM"Q$N$Q$":CLEAR0,MAXRAM:MENU":CLOSE#1:CLS:?"Please Type:":?"KILL "Q$T$Q$:?"SAVE "Q$"TS-DOS"Q$:?"CLEAR 0,MAXRAM":LOADT$ 4DATAcbaaaadjccfbnhcbdmopbbannhabahaamnbgidcbafnhdhmnbnbjcbbinhmninngcgbecoppcnmcgmnfcfmcgknfmnaiifmcilnfmnlfihcbafnhdfdhmnbnbjcbbinhmninngmnedngdkhaoppobcmclengcbdbnhmninngmnedngdkikopkhmklkngcbcknhmninngmnedngdkhcopkhmclengmncmngngagepmnhfngfp 5DATAmnhfngfhnfmfmnhfnggpmnhfngghaiccbfnhmnhfngmnhfngckahpfhopoejmcpbnfbbahaabjbbpbnfnfofcbbhnhdgabplmjckahpfabkijmaimckongmbnbnfmdagngnfmncmngnbmnhfngbcbdanmcagngmnhfngckbfnhhnlemcabngcbbonhmninngmnedngmnjingdkbhnhpoabmjcbcenhmninngmnhfngmnhfng 6DATAagaaepckbfnhaiccbfnhmjcbhaopofmngpngmngpngepmngpngebhjkhmkfongmngpnganmcfhngobaeaekpdaigcdafmcgdngcplomclengmjmnhfnghhcdmjmnifngmnbjifnklengmclengmjmnedignlmpogiamamdlengegcdhomnicngafmciongmjcbannhhongdknkbnbjcdmdbnbjcbpfngmnmmbbmdphbccbna 7DATAngmdlnngcbnjngmdlnngcboengolckfbnhpjolmnenepmnmmbbmnkfngmnjingmjfcebencaeghfgmgmaaeegjhdglcaefhchcgphcaaeeepfddcdadacagogphecagggphfgogeaaahcafahcgfhdhdcagbgohjcaglgfhjaadjdieodbeeeoeoaaaaaaaaaaaaaaaaaaaaaaaaaffkfkahaapiaffkfkacaapnaffkfkad 8DATAaapmagfkfkababadpkbpfkfkaabkeeepfddcdadacoedepcacacacacacacacacacacacacacacaegaaihaaaafopkaa \ No newline at end of file diff --git a/dl.c b/dl.c index 3c81653..f2c3f49 100644 --- a/dl.c +++ b/dl.c @@ -1812,6 +1812,7 @@ int main(int argc, char **argv) { if (getenv("DISABLE_DME")) dme_disabled = true; if (getenv("DISABLE_MAGIC_FILES")) enable_magic_files = false; if (getenv("DOT_OFFSET")) dot_offset = atoi(getenv("DOT_OFFSET")); + if (getenv("CLIENT_TTY")) strcpy(client_tty_name,getenv("CLIENT_TTY")); if (getenv("BAUD")) set_baud(getenv("BAUD")); if (getenv("ROOT_LABEL")) {snprintf(dme_root_label,7,"%-6.6s",getenv("ROOT_LABEL")); memcpy(dme_cwd,dme_root_label,6);} diff --git a/ref/advanced_options.txt b/ref/advanced_options.txt index 89c7790..0e43ef1 100644 --- a/ref/advanced_options.txt +++ b/ref/advanced_options.txt @@ -117,3 +117,8 @@ Example: instead of 19200, this how you can. Some drives like Purple Computing are actually hard wired to run at 9600. This would let you emulate one of those, perhaps for testing software against it. + +CLIENT_TTY + + The device name of the tty that the client is connected to. + Examples: ttyUSB0, ttyS6 diff --git a/ref/cygwin.md b/ref/windows.md similarity index 91% rename from ref/cygwin.md rename to ref/windows.md index c22434f..0f91949 100644 --- a/ref/cygwin.md +++ b/ref/windows.md @@ -1,10 +1,29 @@ # Notes for Windows -## Requires Cygwin +## Install either Cygwin or MSYS2 + +### Cygwin * Install [Cygwin](https://www.cygwin.com/) -* Add packages: cygwin-devel make gcc-g++ git unzip + When it gets to the **Select Packages** screen, + select these additional packages to install: + **cygwin-devel make gcc-g++ git** + * View->Full + * Scroll or search to find **cygwin-devel** + * Pull-down menu to the right in the "New" column + * Select the highest number that doesn't say "(Test)" + * Repeat for: **gcc-g++**, **make**, **git** * Launch a Cygwin terminal window +### MSYS2 +* Install [MSYS2](https://www.msys2.org/) +* Close the URCT window that opens after install +* Launch an MSYS window + Start -> MSYS2 -> MSYS2 MSYS +* Update the installed packages: ```$ pacman -Syu``` +* If the window closed, launch new MSYS window +* Update again: ```$ pacman -Syu``` +* Install git, gcc, & make: ```$ pacman -Sy git gcc make``` + ## Download, build, & install ``` git clone https://github.com/bkw777/dlplus.git @@ -24,8 +43,11 @@ Then use ```ttyS4``` (for example) as the last argument on the dl command line. ## Example usage session - initialize a REXCPM Initializing a REXCPM excersizes both the bootstrap and normal file access functions. +In addition to the packages above, install the "unzip" package, or download and unzip the the files from Windows and skip the download & unzip steps shown here. +You want to get the latest versions from the REXCPM documentation page anyway instead of the exact versions shown below. -Started with a cold-reset of the Model 100: SHIFT+CTRL+BREAK+RESET +Start with a cold-reset of the Model 100: SHIFT+CTRL+BREAK+RESET +(this erases all RAM, including all files) * Download & unzip the REXCPM setup files for the Model 100 ``` @@ -274,7 +296,7 @@ Opening "/dev/ttyS6" ... OK ------------------------------------------------------------------------------- ``` -Typed ```RXC_12``` at filename prompt in rxcini +Here I typed ```RXC_12``` at the filename prompt in rxcini ``` Open for read: "RXC_12.BR" @@ -310,7 +332,7 @@ After rxcini completed: - Pressed TAB to switch to the ROM screen in RXCMGR - Pressed F2 for Load - Entered ```TSD100``` -- Pressed Enter on the TS-DOS entry to install/activate the TS-DOS option rom (which also launches it) +- Pressed Enter on the new TS-DOS entry to install the TS-DOS option rom (which also launches it) ``` Open for read: "TSD100.BX" @@ -365,7 +387,7 @@ Open for read: "TSD100.BX" ``` Now TS-DOS option rom is installed. -Used TS-DOS to copy CPMUPD.CO from "disk" to the 100. +Next, use TS-DOS to copy CPMUPD.CO from "disk" to the 100. ``` Open for read: "CPMUPD.CO" @@ -423,7 +445,7 @@ Open for read: "CPMUPD.CO" - Exited TS-DOS - Entered BASIC and did ```CLEAR0,60000``` to make room for CPMUPD to run - Launched CPMUPD from the main menu -- Entered ```CPM410.BK``` at the filename prompt in CPMUPD because I have a 4MB REXCPM +- Entered ```CPM410.BK``` at the filename prompt in CPMUPD because my REXCPM has a 4MB chip. ``` Open for read: "Cpm410.bk" @@ -434,6 +456,6 @@ bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX $ ``` -Pressed Ctrl+C on the pc to quit dlplus. +Press Ctrl+C on the pc to quit dlplus. REXCPM is now fully installed. From 8e886523fe4ae8a16e2c0a0e8f5063cf387866d8 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Mon, 6 Mar 2023 13:51:36 -0500 Subject: [PATCH 117/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0f27d32..fbdb625 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ The 1st non-option argument is another way to specify the tty device. The 2nd non-option argument is another way to specify the share path. dl - dl -vvvu -p ~Downloads/REX/ROMS + dl -vvvu -p ~/Downloads/REX/ROMS dl -vw ttyUSB1 ~/Documents/wp2files $ From d0f80bbce717471d47ae9fe5d7f8452f4b0a6b97 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Mon, 6 Mar 2023 13:52:41 -0500 Subject: [PATCH 118/206] typo in help output --- dl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dl.c b/dl.c index f2c3f49..2e9d08c 100644 --- a/dl.c +++ b/dl.c @@ -1795,7 +1795,7 @@ void show_main_help() { "The 2nd non-option argument is another way to specify the share path.\n" "\n" " %1$s\n" - " %1$s -vvu -p ~Downloads/REX/ROMS\n" + " %1$s -vvu -p ~/Downloads/REX/ROMS\n" " %1$s -v -w ttyUSB1 ~/Documents/wp2files\n\n" ,args[0],DEFAULT_TPDD_FILE_ATTR,DEFAULT_BASIC_BYTE_MS); } From 03507b08c2646aba7247f259f7bece49bd227972 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sun, 26 Mar 2023 09:09:23 -0400 Subject: [PATCH 119/206] Update ur2.txt --- ref/ur2.txt | 69 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 29 deletions(-) diff --git a/ref/ur2.txt b/ref/ur2.txt index e49246a..b54002b 100644 --- a/ref/ur2.txt +++ b/ref/ur2.txt @@ -1,8 +1,8 @@ -Special support for the TS-DOS button in Ultimate ROM II +Special support for the TS-DOS and SARDIN buttons in Ultimate ROM II A few "magic" filenames that have the following properties: -* Names: DOS100.CO, DOS200.CO, DOSNEC.CO +* Names: DOS100.CO, DOS200.CO, DOSNEC.CO, SAR100.CO, SAR200.CO (1) * If client tries to open(read), and file doesn't exist in cwd, silently @@ -15,16 +15,17 @@ A few "magic" filenames that have the following properties: If client tries to load a file that actually exists in cwd, it should work as normal, not sustitute the contents from some other file. -X Do not apply to open(write) or open(append). If client tries to save a - file, it should work as normal, not overwite the copy in the share root! +X Do not apply the remapping/translation to open(write) or open(append). + If client tries to save a file, it should work as normal, + not overwite the copy in the share root! (2) X DO allow overwriting the share root copy if the client is actually in the share root dir. Not implemented yet but no problem to. * Don't even look if not in "floppy compat" mode (dot_offset=6). - There is no UR-II for CP/M or WP-2 or Z88 any other kind of client, - it's an option ROM for KC-85 platform clones only. + There is no UR-II for CP/M or WP-2 or Z88 any other kind of client. + TS-LOAD, Sardine/SarDOS, and UR-II are the only users of this feature. Explaination @@ -56,34 +57,49 @@ share root dir, and failing that finally gets it from /usr/local/lib/dl, so the load always succeeds no matter if the user has CD'd into some subdirectory, no matter if there is even no copy of DOS100.CO anywhere in the share tree. -------------------------------------------------------------------------------- - -(1) There are actually more filenames in the list, but the rest either don't - actually exist or we're not yet implementing the features needed to use - them. The rest of the recognized filenames are DOSM10.CO, DOSK85.CO, - SAR100.CO, SAR200.CO, SARNEC.CO, SARM10.CO, and SARK85.CO. +All the above also applies similarly to SAR100.CO/SAR200.CO, +which is loaded by the SARDIN button in UR-II. - *M10 & *K85 would be TS-DOS & Sardine for Olivetti and Kyotronic, - which may not exist. If they did exist, these are just my guesses - what the filenames would be. Maybe they will turn up some day. +------------------------------------------------------------------------------- - SAR* is Sardine, which does exist at least for 100 & 200, and did exist - for NEC though is currently lost, but requires emulating TPDD1 FDC-mode. +(1) There are actually more filenames in the list, but the rest don't actually + exist. The rest of the recognized filenames are DOSM10.CO, DOSK85.CO, + SARNEC.CO, SARM10.CO, and SARK85.CO. + \*M10.CO & \*K85.CO would be TS-DOS & Sardine for Olivetti and Kyotronic, + which may not have ever existed. If they did exist, these are just my + guesses what the filenames would be. Maybe they will turn up some day. (2) *Not quite possible* The magic files don't get overwritten, so it's only an annoying cosmetic problem, but there's basically no way around it unless we can detect something unique about the way UR-II requests DOS100.CO vs any other client. - I don't think there is any such tell, but maybe. + If we could do that, then we could answer UR-II always with "file exists" + and answer any other client honestly, which would allow a normal client to + create and write to the file. I don't think there is any such tell, but maybe. The problem is the tpdd protocol requires the server to say if a file - exists *before* the client says what they intend to do with it. If we - answer set-name with null, then the magic LOAD doesn't work because - we told the client that the file doesn't exist. If we answer set-name - with the filename & size, then SAVE doesn't work because we told the - client that the file already exists. + exists *before* the client says what they intend to do with it. + We don't know that they want to write until it's too late to give + the right response to allow writing. + + The sequence of events when a client accesses a file goes like this: + + Client: I want to do something with a file named "DOS100.CO". + Server: OK. DOS100.CO does not exist. + Client: open for writing. + Server: OK. + Client: Write this data ...... + Server: OK. + + Except in the special case of DOS100.CO, that first server response + always has to say "OK. DOS100.CO exists and is N bytes". + + If we answer set-name with null, then the magic LOAD doesn't work + because we told the client that the file doesn't exist. + If we answer set-name with the filename & size, then SAVE doesn't work + because we told the client that the file already exists. It's far more frequently needed, and more useful & important to load DOS___.CO than to save it, so dl defaults to make load work. And if the @@ -96,12 +112,7 @@ no matter if there is even no copy of DOS100.CO anywhere in the share tree. of trying to overwite the magic file. The user would still get an annoying "Overwrite? Append? Cancel?" message, but at least if they just ignore that and choose Overwite, the file would appear in the current dir - otherwise as expected. This last little bit is not implemented yet. - - - - - + otherwise as expected. This last little bit is not implemented currently. ----------- From c5973ed7784c1cbb69ad1ab0f29c388eef2a0418 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sun, 30 Apr 2023 21:13:24 -0400 Subject: [PATCH 120/206] req_fdc_write_id() simplify and fix reading lsc --- README.md | 8 ++++- dl.c | 98 +++++++++++++++++++++++++------------------------------ 2 files changed, 51 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index fbdb625..f1f4eb1 100644 --- a/README.md +++ b/README.md @@ -183,7 +183,7 @@ TPDD2 does not have an "FDC-mode" and there is only one kind of format command a More details about the disk image format [disk_image_files.txt](ref/disk_image_files.txt) ## ROOT & PARENT labels -The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Almost anything mmay be used for the ROOT label. The PARENT label is limited to things that TS-DOS thinks is a valid filename. Sadly ".." can't be used for PARENT, but here are a few examples that do work. +The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Almost anything may be used for the ROOT label. The PARENT label is limited to things that TS-DOS thinks is a valid filename. Sadly ".." can't be used for PARENT, but here are a few examples that do work. ``` $ ROOT_LABEL=/ PARENT_LABEL=^ dl $ ROOT_LABEL='-root-' PARENT_LABEL='-back-' dl @@ -196,7 +196,13 @@ $ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl Also included is a bash script to read a binary .CO file and output an ascii BASIC loader .DO file, which may then be used with the bootstrap function to re-create the original binary .CO file on the portable. All KC-85 platform machines are supported including TRS-80 Model 100, TANDY 102 & 200, Kyotronic KC-85, Olivetti M10, NEC PC-8201 & PC-8300. +It's simple and doesn't handle all situations or do anything fancy like relocating, but it handles the common case and serves as a reference and starting point for making a custom loader. See [co2ba](co2ba.md) ## OS Compatibility Tested on Linux, Macos, [FreeBSD](ref/freebsd.md), and [Windows](ref/windows.md). + +## TODO +* implement req_fdc_search_id() - it's currently just a stub +* support big-endian platforms +* file/filesystem access on disk images - currently can only use for sector access diff --git a/dl.c b/dl.c index 2e9d08c..4c6e5db 100644 --- a/dl.c +++ b/dl.c @@ -131,7 +131,7 @@ char dme_dir_label[3] = DEFAULT_DME_DIR_LABEL; char default_attr = DEFAULT_TPDD_FILE_ATTR; bool enable_magic_files = true; #if !defined(_WIN) - bool getty_mode = false; +bool getty_mode = false; #endif bool bootstrap_mode = false; int model = 2; @@ -195,20 +195,20 @@ void dbg_p(const int v, unsigned char *b) { dbg_b(v,b+2,b[1]); } -// Drive supposedly supports 76800, but on Linux (except Sparc) that would -// require termios2() and BOTHER. https://stackoverflow.com/a/39924923/5754855 -// no idea about bsd or mac +// 76800 is a native baud rate on some platforms +// but requires termios2 & BOTHER on most linux +// https://stackoverflow.com/a/39924923/5754855 /* struct termios2 t; ioctl(fd, TCGETS2, &t); // Read current settings t.c_cflag &= ~CBAUD; // Remove current baud rate - t.c_cflag |= BOTHER; // Allow custom baud rate using int input - t.c_ispeed = 76800; // Set the input baud rate - t.c_ospeed = 76800; // Set the output baud rate + t.c_cflag |= BOTHER; // Allow arbitrary int baud rate + t.c_ispeed = 76800; // Set the input baud rate (int) + t.c_ospeed = 76800; // Set the output baud rate (int) ioctl(fd, TCSETS2, &t); // Apply new settings */ -// clients really only ever use 9600 or 19200, but the -// real drive has dip switches for all these speeds so... +// most clients only use 9600 or 19200 but the drive supports these +// pdd.sh is one at least that can use any speed void set_baud (char * s) { int i=atoi(s); client_baud= @@ -218,10 +218,10 @@ void set_baud (char * s) { i==1200?B1200: i==2400?B2400: i==4800?B4800: - i==9600?B9600: // Brother FB-100, KnitKing FDD19, Purple Computing D103 default - //i==19200?B19200: // TPDD1 & TPDD2 default + i==9600?B9600: // Brother FB-100, KnitKing FDD19, Purple Computing D103 + i==19200?B19200: // TPDD1 & TPDD2 i==38400?B38400: -#if defined(__sparc__) +#if defined(B76800) //#if defined(__sparc__) i==76800?B76800: #endif B19200; @@ -238,7 +238,7 @@ int get_baud () { client_baud==B9600?9600: client_baud==B19200?19200: client_baud==B38400?38400: -#if defined(__sparc__) +#if defined(B76800) client_baud==B76800?76800: #endif 0; @@ -421,8 +421,8 @@ char *collapse_padded_fname(char *fname) { void lsx (char *path,char *match) { struct dirent *files; DIR *dir = opendir(path); - int i; if (dir == NULL){dbg(0,"Cannot open \"%s\"",path); return;} + int i; while ((files = readdir(dir)) != NULL) { for (i=strlen(files->d_name);files->d_name[i]!='.';i--); if (!strcmp(files->d_name+i+1,match)) dbg(0," %s",files->d_name); @@ -433,7 +433,7 @@ void lsx (char *path,char *match) { int check_magic_file(char *b) { dbg(3,"%s(\"%s\")\n",__func__,b); if (!enable_magic_files) return 1; - if (dot_offset!=6) return 1; // UR2 only exists on the KC-85 clones + if (dot_offset!=6) return 1; // UR2/TSLOAD only exists on a few KC-85 clones int l = sizeof(magic_files)/sizeof(magic_files[0]); for (int i=0;i Date: Sun, 30 Apr 2023 21:26:07 -0400 Subject: [PATCH 121/206] req_fdc_write_id() match int type --- dl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dl.c b/dl.c index 4c6e5db..97ba1ed 100644 --- a/dl.c +++ b/dl.c @@ -636,7 +636,7 @@ void req_fdc_search_id() { ret_fdc_std(ERR_FDC_SUCCESS,0,0); } -void req_fdc_write_id(uint16_t tp) { +void req_fdc_write_id(int tp) { dbg(2,"%s(%d)\n",__func__,tp); if (open_disk_image(tp,O_RDWR,ALLOW_RET)) return; // we need both read & write @@ -966,7 +966,7 @@ void dirent_set_name(unsigned char *b) { dbg(3,"Exists: \"%s\" %u\n", cur_file->local_fname, cur_file->len); ret_dirent(cur_file); } else if (check_magic_file(filename)==0) { - // let UR2 load /DOSxxx.CO from anywhere + // let UR2/TSLOAD load DOSxxx.CO from anywhere cur_file=make_file_entry(filename,0,0); char t[LOCAL_FILENAME_MAX+1] = {0x00}; // try share root From 5af3f1fde8958640f93b2771b4fe43a3029bb515 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 1 May 2023 04:54:15 -0400 Subject: [PATCH 122/206] req_fdc_search_id() ref/search_id_section.txt --- README.md | 1 - constants.h | 3 +++ dl.c | 51 +++++++++++++++++++++++++++--------- ref/search_id_section.txt | 55 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 97 insertions(+), 13 deletions(-) create mode 100644 ref/search_id_section.txt diff --git a/README.md b/README.md index f1f4eb1..42de96e 100644 --- a/README.md +++ b/README.md @@ -203,6 +203,5 @@ See [co2ba](co2ba.md) Tested on Linux, Macos, [FreeBSD](ref/freebsd.md), and [Windows](ref/windows.md). ## TODO -* implement req_fdc_search_id() - it's currently just a stub * support big-endian platforms * file/filesystem access on disk images - currently can only use for sector access diff --git a/constants.h b/constants.h index 40044c7..960c9d1 100644 --- a/constants.h +++ b/constants.h @@ -106,11 +106,14 @@ #define ERR_FDC_PARAM 33 // 'Parameter Invalid, Wrong Type' #define ERR_FDC_LSSC_LO 50 // 'Invalid Logical Sector Size Code' #define ERR_FDC_LSSC_HI 51 // 'Logical Sector Size Code Above Range' +#define ERR_FDC_ID_NOT_FOUND 60 // 'ID Not Found' +#define ERR_FDC_S_BAD_PARAM 61 // 'Search ID Unexpected Parameter' #define ERR_FDC_NOT_FORMATTED 160 // 'Disk Not Formatted' #define ERR_FDC_READ 161 // 'Read Error' #define ERR_FDC_WRITE_PROTECT 176 // 'Write-Protected Disk' #define ERR_FDC_COMMAND 193 // 'Invalid Command' #define ERR_FDC_NO_DISK 209 // 'Disk Not Inserted' +#define ERR_FDC_INTERRUPTED 216 // 'Operation Interrupted' // TPDD1 FDC Condition bits #define FDC_COND_NOTINS 0x80 // bit 7 : disk not inserted diff --git a/dl.c b/dl.c index 97ba1ed..997b772 100644 --- a/dl.c +++ b/dl.c @@ -620,20 +620,47 @@ void req_fdc_read_sector(int tp,int tl) { (void)(close(disk_img_fd)+1); } +// ref/search_id_section.txt void req_fdc_search_id() { dbg(2,"%s()\n",__func__); - // not sure how this is supposed to work yet, this is a guess: - // send OK to client - // read 12 bytes from client - // search all ID's for match - // return, what? Send another OK? - // manual says it's the same as write_sector, which - // sends an OK to tell client to send, and then - // another OK to ack. So perhaps we return - // just a status return that indicates if a match was found - // and probably the first matching sector number in the len/addr field. - // Probably the err field is always success. - ret_fdc_std(ERR_FDC_SUCCESS,0,0); + int rn = 0; // physical sector number + int rl = mlen+dlen; // total length of one record + int rc = (PDD1_TRACKS*PDD1_SECTORS); // total record count + char sb[PDD1_SECTOR_ID_LEN] = {0x00}; // search data + + if (open_disk_image(0,O_RDONLY,ALLOW_RET)) return; // open disk image + ret_fdc_std(ERR_FDC_SUCCESS,0,0); // tell client to send data + read_client_tty(sb,PDD1_SECTOR_ID_LEN); // read 12 bytes from client + + int l = 0; + bool found = false; + for (rn=0;rn Date: Mon, 1 May 2023 05:07:26 -0400 Subject: [PATCH 123/206] docs --- ref/search_id_section.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ref/search_id_section.txt b/ref/search_id_section.txt index b647234..33b2494 100644 --- a/ref/search_id_section.txt +++ b/ref/search_id_section.txt @@ -10,8 +10,8 @@ So here is what I have found through some trial & error with a real drive. pdd.sh has an implementation of the client side of this and is working with real TPDD drives. -dlplus does not yet implement the server side of this. -| +dlplus has an implementation of the server side of this and is working with pdd.sh at least. + This function is not actually used by TS-DOS, DSKMGR, TEENY, Floppy, nor Sardine as far as I have seen so far. The process is actually more like the Write ID Section command. @@ -53,3 +53,5 @@ There seems to be no way to search for multiple matching records. You (apparently) can't supply any track# parameter to start searching after a previously found match, and repeating the same search just produces the same result which is the first match counting from track 0. +dlplus silently discards any paramaters instead of giving error 61 +because I don't feel like changing get_fdc_cmd() to allow it to detect that. From 042494caa35581a8fd353c0c4977c2aafbcb93f1 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 1 May 2023 17:07:22 -0400 Subject: [PATCH 124/206] docs --- ref/search_id_section.txt | 65 ++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/ref/search_id_section.txt b/ref/search_id_section.txt index 33b2494..e9029d1 100644 --- a/ref/search_id_section.txt +++ b/ref/search_id_section.txt @@ -1,57 +1,58 @@ TPDD1 FDC-mode command "S" - Search ID Section bkw -The software manual says almost nothing about this command. It only says: +This is an odd command that isn't actually used by any of the main TPDD clients +as far as I've seen yet. TS-DOS, DSKMGR, TEENY, Floppy, even Sardine all worked fine +with dlplus before this command was implemented. +Particularly, this is an FDC-mode command, and the only applications that actually use FDC mode +known so far are Sardine and the installer for Disk-Power, and both of those worked with dlplus +before this command was added. + +The software manual explains almost nothing about this command. It only says: "The procedure is similar to that for the Write Sector command, except that you send a search string instead of data to be written." So here is what I have found through some trial & error with a real drive. -pdd.sh has an implementation of the client side of this and is working with real TPDD drives. - -dlplus has an implementation of the server side of this and is working with pdd.sh at least. - -This function is not actually used by TS-DOS, DSKMGR, TEENY, Floppy, nor Sardine as far as I have seen so far. - The process is actually more like the Write ID Section command. 1 - client sends "S" and carriage-return - - 2 - drive responds with standard FDC-mode 8-byte response packet + This command takes no parameters after the S. + dlplus silently ignores any extra characters, + but a real drive gives error 61 if there are any extra bytes after the S. + + 2 - drive responds with standard FDC-mode response block(a) + If the command was valid and no hardware problem: err:0 dat:0 len:0 + If the command was malformed: err:61 dat:0 len:0 - client parses the response the same as with any other FDC-mode command + client parses the response block - if the response is not success, abort operation + if err>0, abort operation drive returns to waiting for new commands client should not send or expect anything more for this operation - otherwise, proceed... + otherwise, if err=0, proceed... 3 - client sends exactly 12 bytes of data - right-pad with 0x00 and truncate to 12 bytes as necessary + right-pad with 0x00 or truncate to 12 bytes as necessary - drive works for up to 40 seconds searching all 80 tracks for a match - drive does not send enything during this time + drive is busy for up to 20 seconds while searching all 80 IDs for a match + drive does not send anything during this time client must not send anything during this time - 4 - drive sends a standard FDC-mode 8-byte response block - 2 bytes - hex pair status/error code: 0=success 60=not-found other=various errors - 2 bytes - hex pair result data: physical sector number if found, or 255 if not found or error - 4 bytes - 2 hex pairs result offset/length/size: logical sector size for indicated physical sector + 4 - drive sends another FDC-mode response block + If a match was found: err:0 dat:sector-number len:logical-sector-size-bytes + If a match was not found: err:60 dat:255 len:logical-sector-size-bytes - * Initial command syntax is simply "S", with no parameters. - Most FDC-mode commands either require or at least optionally take - one or two parameters for physical sector number and logical sector number, - or logical sector size code in the case of the fdc-format command. - This command gives an error 61 if given any parameters, they aren't simply ignored. +There seems to be no way to search for multiple matching records. +You (apparently) can't supply any sector-number parameter to start searching after a previously found match to find the next match, +and repeating the same search just produces the same result which is the first match counting from physical sector 0. - * In the second stage where you send the search data, the client must send exactly 12 bytes. - Sending any fewer that 12 hangs the drive (it's waiting unknown time for the rest of the bytes). - Extra bytes get dropped or interpreted as the next command or hangs the drive. +github/bkw777/pdd.sh has an implementation of the client side of this and is working with real TPDD drives. -There seems to be no way to search for multiple matching records. -You (apparently) can't supply any track# parameter to start searching after a previously found match, -and repeating the same search just produces the same result which is the first match counting from track 0. +dlplus has an implementation of the server side of this and is working with pdd.sh. -dlplus silently discards any paramaters instead of giving error 61 -because I don't feel like changing get_fdc_cmd() to allow it to detect that. +(a) FDC-mode 8-byte response block common to all FDC-mode commands: + 2 bytes = ascii hex pair representing a uint_8 for error/status code (err:#) 0=success, >0 = various errors & conditions + 2 bytes = ascii hex pair representing a uint_8 for result data (dat:#) meaning & valid values depends on command + 4 bytes = 2 ascii hex pairs representing a uint_16 (msb-first) for length or offset (len:#) meaning & valid values depends on command From 035c6dd83581bae30f1229cf2a7cef867ee67f34 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 11 Oct 2023 07:52:26 -0400 Subject: [PATCH 125/206] reference docs --- ref/baud_linux.c | 57 +++++++++++++++++++++++++++++++++++++ ref/search_id_section.txt | 60 +++++++++++++++++++++++++++++---------- 2 files changed, 102 insertions(+), 15 deletions(-) create mode 100644 ref/baud_linux.c diff --git a/ref/baud_linux.c b/ref/baud_linux.c new file mode 100644 index 0000000..809bbc2 --- /dev/null +++ b/ref/baud_linux.c @@ -0,0 +1,57 @@ +// the TPDD drive has a dip switch setting for 76800 baud + +/* set weird baud rates on linux + * + * cc -o baud baud.c + * baud /dev/ttyUSB0 74880 + * picocom --noinit /dev/ttyUSB0 + * + * http://cholla.mmto.org/esp8266/weird_baud/ + */ + +#define DEFAULT_DEVICE "/dev/ttyUSB0" +#define DEFAULT_BAUD 76800 + +#include +#include +#include +#include +#include +#include +#include + +int ioctl (int,int,struct termios2 *); + +void set_bother (int fd,int baud) { + struct termios2 tio; + int x; + + x = ioctl(fd,TCGETS2,&tio); + // printf ("x = %d\n",x); + + tio.c_cflag &= ~CBAUD; + tio.c_cflag |= BOTHER; + tio.c_ispeed = baud; + tio.c_ospeed = baud; + x = ioctl(fd,TCSETS2,&tio); + // printf ("x = %d\n",x); +} + +int main (int argc,char **argv) +{ + char *device = DEFAULT_DEVICE; + int baud = DEFAULT_BAUD; + int fd; + + if (argc==2) device = argv[1]; + if (argc>2) baud = atoi(argv[2]); + + fd = open(device,O_RDWR); + if (fd<0) { + printf("Sorry, cannot open %s\n",device); + return 1; + } + + set_bother(fd,baud); + printf("Baud rate for %s set to %d\n",device,baud); +} diff --git a/ref/search_id_section.txt b/ref/search_id_section.txt index e9029d1..15007ea 100644 --- a/ref/search_id_section.txt +++ b/ref/search_id_section.txt @@ -1,51 +1,81 @@ TPDD1 FDC-mode command "S" - Search ID Section -bkw +Page 38 of the software manual +https://archive.org/details/tandy-service-manual-26-3808-s-software-manual-for-portable-disk-drive/page/38/ This is an odd command that isn't actually used by any of the main TPDD clients -as far as I've seen yet. TS-DOS, DSKMGR, TEENY, Floppy, even Sardine all worked fine -with dlplus before this command was implemented. -Particularly, this is an FDC-mode command, and the only applications that actually use FDC mode -known so far are Sardine and the installer for Disk-Power, and both of those worked with dlplus -before this command was added. +or applications as far as I've seen yet. All the "DOS"s (TS-DOS, DSKMGR, TEENY, Floppy, etc) +use only "Operation-mode" (aka file-access) commands. +The only applications I know of so far that use FDC-mode (aka sector-access) commands +are Sardine and the installer for Disk-Power, and neither of those uses this command. + +So there is no client software I know of to test if we are emulating this function well enough. +What we do have is, pdd.sh was used to probe out what a real drive does, +and then both pdd.sh and dlplus do that. +So *maybe* we are emulating the real drives "S" command more or less? The software manual explains almost nothing about this command. It only says: "The procedure is similar to that for the Write Sector command, except that you send a search string instead of data to be written." -So here is what I have found through some trial & error with a real drive. +Which is not only insufficient but also not as correct as it could be. The process is actually more like the Write ID Section command. - 1 - client sends "S" and carriage-return +The process goes like this (as far as I can tell): + + 0 - client sends the Operation-mode command for "switch to FDC-mode" + 0x5A 0x5A 0x08 0x00 0xDC + (ZZ 0x08 NULL checksum) + + "Search ID Section" is an FDC-mode command, and a real drive always starts + in Operation-mode at power-on by default. So if not done already, + the drive must first be switched from Operation-mode to FDC-mode before + you can issue any FDC-mode commands. + + https://archive.org/details/tandy-service-manual-26-3808-s-software-manual-for-portable-disk-drive/page/21/ + + The drive does not send back any response to this command. + The drive is simply now in FDC-mode, waiting to accept FDC-mode commands instead of Operation-mode commands. + + 1 - client sends 0x53 0x0D + (S carriage-return) + This command takes no parameters after the S. dlplus silently ignores any extra characters, but a real drive gives error 61 if there are any extra bytes after the S. - - 2 - drive responds with standard FDC-mode response block(a) + + 2 - drive sends a standard FDC-mode response block(a) + (8 bytes, all ascii "0"s if there was no hardware fault or other error) + If the command was valid and no hardware problem: err:0 dat:0 len:0 + (0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 = "00000000" = err:0 = success) + If the command was malformed: err:61 dat:0 len:0 + (0x36 0x31 0x30 0x30 0x30 0x30 0x30 0x30 = "61000000" = err:61 = error) client parses the response block if err>0, abort operation drive returns to waiting for new commands client should not send or expect anything more for this operation - otherwise, if err=0, proceed... + otherwise, if err==0, proceed... 3 - client sends exactly 12 bytes of data right-pad with 0x00 or truncate to 12 bytes as necessary + to search for "abc" send 0x61 0x62 0x63 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 - drive is busy for up to 20 seconds while searching all 80 IDs for a match + drive is busy for up to 20 seconds while searching up to 80 IDs for a match drive does not send anything during this time client must not send anything during this time + wait at least 20 seconds and abort if no response by 30 seconds 4 - drive sends another FDC-mode response block If a match was found: err:0 dat:sector-number len:logical-sector-size-bytes If a match was not found: err:60 dat:255 len:logical-sector-size-bytes There seems to be no way to search for multiple matching records. -You (apparently) can't supply any sector-number parameter to start searching after a previously found match to find the next match, +For instance, as far as I can tell you can't supply any sector-number parameter to start searching at the next sector after a previously found match to find the next match, and repeating the same search just produces the same result which is the first match counting from physical sector 0. github/bkw777/pdd.sh has an implementation of the client side of this and is working with real TPDD drives. @@ -54,5 +84,5 @@ dlplus has an implementation of the server side of this and is working with pdd. (a) FDC-mode 8-byte response block common to all FDC-mode commands: 2 bytes = ascii hex pair representing a uint_8 for error/status code (err:#) 0=success, >0 = various errors & conditions - 2 bytes = ascii hex pair representing a uint_8 for result data (dat:#) meaning & valid values depends on command - 4 bytes = 2 ascii hex pairs representing a uint_16 (msb-first) for length or offset (len:#) meaning & valid values depends on command + 2 bytes = ascii hex pair representing a uint_8 for result data (dat:#), meaning depends on command + 4 bytes = 2 ascii hex pairs representing a uint_16 (msb-first) for length or offset (len:#), meaning depends on command From a1680791055853f611acafcb358bf1526fb9dafd Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 11 Oct 2023 07:57:07 -0400 Subject: [PATCH 126/206] make the BASIC commands in the bootstrap hint text reflect the current baud setting --- dl.c | 56 +++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 13 deletions(-) diff --git a/dl.c b/dl.c index 997b772..38c15cf 100644 --- a/dl.c +++ b/dl.c @@ -207,12 +207,13 @@ void dbg_p(const int v, unsigned char *b) { t.c_ospeed = 76800; // Set the output baud rate (int) ioctl(fd, TCSETS2, &t); // Apply new settings */ -// most clients only use 9600 or 19200 but the drive supports these -// pdd.sh is one at least that can use any speed +// most clients only use 9600 or 19200 but the drive supports all these void set_baud (char * s) { int i=atoi(s); client_baud= - i==150?B150: + i==75?B75: // real drive does not support, kc85 does + i==110?B110: // real drive does not support, kc85 does + i==150?B150: // real drive supports, kc85 does not i==300?B300: i==600?B600: i==1200?B1200: @@ -229,7 +230,9 @@ void set_baud (char * s) { int get_baud () { return - client_baud==B150?150: + client_baud==B75?75: // real drive does not support, kc85 does + client_baud==B110?110: // real drive does not support, kc85 does + client_baud==B150?150: // real drive supports, kc85 does not client_baud==B300?300: client_baud==B600?600: client_baud==B1200?1200: @@ -244,6 +247,22 @@ int get_baud () { 0; } +// return the baud param for STAT (the # in "COM:#8N1ENN") that matches client_baud +// ie: if client_baud == B19200 , return 9 to put in "COM:98N1ENN" +int get_stat_baud () { + return + client_baud==B75?1: // real drive does not support + client_baud==B110?2: // real drive does not support + client_baud==B300?3: + client_baud==B600?4: + client_baud==B1200?5: + client_baud==B2400?6: + client_baud==B4800?7: + client_baud==B9600?8: + client_baud==B19200?9: + 0; +} + void find_lib_file (char *f) { if (f[0]==0x00) return; @@ -1495,11 +1514,11 @@ void req_cache_write(unsigned char *b) { /* * Another part of TS-DOS's drive/server capabilities detection scheme. * Previously called "TS-DOS mystery command 2" - * The function of the command in a real drive is unknown. - * The meaning of the response is unkmnown. + * The actual intended function of the command in a real drive is unknown. + * The meaning of the response is unknown. * But the command apparently takes no parameters, and a real TPDD2 always * responds with the same string of bytes, and TPDD1 ignores it. - * not counting ZZ or checksums: + * Not including the ZZ or checksums: * Client sends : 23 00 * TPDD2 responds: 14 0F 41 10 01 00 50 05 00 02 00 28 00 E1 00 00 00 * TPDD1 does not respond. @@ -1728,13 +1747,24 @@ int bootstrap(char *f) { char t[PATH_MAX]={0x00}; - strcpy(t,f); - strcat(t,".pre-install.txt"); - if (!access(t,F_OK)) dcat(t); - else dbg(0,"Prepare BASIC to receive:\n" + int b = get_stat_baud(); + if (!b) { + dbg(0,"Prepare the client to receive data." "\n" - " RUN \"COM:98N1ENN\" [Enter] <-- TANDY/Olivetti/Kyotronic\n" - " RUN \"COM:9N81XN\" [Enter] <-- NEC\n"); + "Note: The current baud setting, %d, is not supported\n" + "by the TRS-80 Model 100 or other KC-85 platform machines.\n" + "There is no way for BASIC or TELCOM to use this baud rate.\n",get_baud()); + } else { + strcpy(t,f); + strcat(t,".pre-install.txt"); + if (!access(t,F_OK) && b==9) dcat(t); + else { + dbg(0,"Prepare BASIC to receive:\n" + "\n" + " RUN \"COM:%1$d8N1ENN\" [Enter] <-- TANDY/Olivetti/Kyotronic\n" + " RUN \"COM:%1$dN81XN\" [Enter] <-- NEC\n",b); + } + } dbg(0,"\nPress [Enter] when ready..."); getchar(); From 3c7dca7b479bc21de6a41c5b2b2420182de925fc Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 12 Oct 2023 15:02:56 -0400 Subject: [PATCH 127/206] document macos tty devices --- README.md | 2 +- dl.c | 21 +++++++++++---------- ref/mac.md | 20 ++++++++++++++++++++ 3 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 ref/mac.md diff --git a/README.md b/README.md index 42de96e..799084f 100644 --- a/README.md +++ b/README.md @@ -200,7 +200,7 @@ It's simple and doesn't handle all situations or do anything fancy like relocati See [co2ba](co2ba.md) ## OS Compatibility -Tested on Linux, Macos, [FreeBSD](ref/freebsd.md), and [Windows](ref/windows.md). +Tested on Linux, [Mac](ref/mac.md), [FreeBSD](ref/freebsd.md), and [Windows](ref/windows.md). ## TODO * support big-endian platforms diff --git a/dl.c b/dl.c index 38c15cf..7da9057 100644 --- a/dl.c +++ b/dl.c @@ -207,8 +207,9 @@ void dbg_p(const int v, unsigned char *b) { t.c_ospeed = 76800; // Set the output baud rate (int) ioctl(fd, TCSETS2, &t); // Apply new settings */ -// most clients only use 9600 or 19200 but the drive supports all these -void set_baud (char * s) { +// given string "9600", set client_baud = B9600 +// most clients only use 9600 or 19200 but a real drive supports all these +void set_client_baud (char * s) { int i=atoi(s); client_baud= i==75?B75: // real drive does not support, kc85 does @@ -228,7 +229,8 @@ void set_baud (char * s) { B19200; } -int get_baud () { +// return a normal int corresponding to the current client_baud +int get_int_baud () { return client_baud==B75?75: // real drive does not support, kc85 does client_baud==B110?110: // real drive does not support, kc85 does @@ -247,8 +249,8 @@ int get_baud () { 0; } -// return the baud param for STAT (the # in "COM:#8N1ENN") that matches client_baud -// ie: if client_baud == B19200 , return 9 to put in "COM:98N1ENN" +// return the kc85 STAT baud param (the # in "COM:#8N1ENN") that will work with the current client_baud +// ie: if client_baud == B19200 , return 9, to be put into "COM:98N1ENN" int get_stat_baud () { return client_baud==B75?1: // real drive does not support @@ -1746,14 +1748,13 @@ int bootstrap(char *f) { } char t[PATH_MAX]={0x00}; - int b = get_stat_baud(); if (!b) { dbg(0,"Prepare the client to receive data." "\n" "Note: The current baud setting, %d, is not supported\n" "by the TRS-80 Model 100 or other KC-85 platform machines.\n" - "There is no way for BASIC or TELCOM to use this baud rate.\n",get_baud()); + "There is no way for BASIC or TELCOM to use this baud rate.\n",get_int_baud()); } else { strcpy(t,f); strcat(t,".pre-install.txt"); @@ -1803,7 +1804,7 @@ void show_config () { dbg(0,"disk_img_fname : \"%s\"\n",disk_img_fname); dbg(0,"share_path : \"%s\"\n",cwd); dbg(2,"opr_mode : %d\n",opr_mode); - dbg(2,"baud : %d\n",get_baud()); + dbg(2,"baud : %d\n",get_int_baud()); dbg(0,"dme_disabled : %s\n",dme_disabled?"true":"false"); dbg(2,"dme_root_label : \"%-6.6s\"\n",dme_root_label); dbg(2,"dme_parent_label: \"%-6.6s\"\n",dme_parent_label); @@ -1860,7 +1861,7 @@ int main(int argc, char **argv) { if (getenv("DISABLE_MAGIC_FILES")) enable_magic_files = false; if (getenv("DOT_OFFSET")) dot_offset = atoi(getenv("DOT_OFFSET")); if (getenv("CLIENT_TTY")) strcpy(client_tty_name,getenv("CLIENT_TTY")); - if (getenv("BAUD")) set_baud(getenv("BAUD")); + if (getenv("BAUD")) set_client_baud(getenv("BAUD")); if (getenv("ROOT_LABEL")) {snprintf(dme_root_label,7,"%-6.6s",getenv("ROOT_LABEL")); memcpy(dme_cwd,dme_root_label,6);} if (getenv("PARENT_LABEL")) snprintf(dme_parent_label,7,"%-6.6s",getenv("PARENT_LABEL")); @@ -1888,7 +1889,7 @@ int main(int argc, char **argv) { case 'm': model=atoi(optarg); break; case 'p': (void)(chdir(optarg)+1); break; case 'r': rtscts = true; break; - case 's': set_baud(optarg); break; + case 's': set_client_baud(optarg); break; case 'u': upcase = true; break; case 'v': debug++; break; case 'w': dot_offset = 8; break; diff --git a/ref/mac.md b/ref/mac.md new file mode 100644 index 0000000..f8dd4e2 --- /dev/null +++ b/ref/mac.md @@ -0,0 +1,20 @@ +# Notes for Macos / OSX + +## TTY Device +There is no predictable likely default tty device name like `ttyUSB0` on Linux, so there can be no default built-in, so you must always supply the tty device name via the commandline or the environment variable CLIENT_TTY. + +Each serial tty device has two interfaces, a `/dev/tty.foo` and a `/dev/cu.foo` +Either one usually works, but you always want to use the cu.\* version for this simply because it guarantees the process has exclusive access to the device while it's open (No other process can corrupt the data). + +There is usually at least one bluetooth device that shows up as a serial device, so you need to ignore those. + +`$ ls /dev/cu.* |grep -v Bluetooth` + +Or just start writing the command and use tab-completion to show the cu.* devices and pick one: + +``` +$ dl -v -u /dev/cu. +cu.Bluetooth-Incoming-Port cu.usbserial-AL03RAXP +$ dl -v -u /dev/cu.usbserial-AL03RAXP +... +``` From 60a8b7770a815fbace2dbd5a7b4e509a8c36c9e9 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 17 Oct 2023 11:27:22 -0400 Subject: [PATCH 128/206] rename to dl2 --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 799084f..faa0705 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# dlplus +# dl2 DeskLink+ is a [Tandy Portable Disk Drive](http://tandy.wiki/TPDD) emulator or "[TPDD server](http://tandy.wiki/TPDD_server)" written in C. ## Install @@ -205,3 +205,10 @@ Tested on Linux, [Mac](ref/mac.md), [FreeBSD](ref/freebsd.md), and [Windows](ref ## TODO * support big-endian platforms * file/filesystem access on disk images - currently can only use for sector access + +## History / Credits +1.05 [DeskLink for ms-dos](https://ftp.whtech.com/club100/com/dl-arc.exe.gz) 1987 Travelling Software +1.0-1.3 DeskLink for *nix 2004 Stephen Hurd +1.4 [DeskLink+](https://www.bitchin100.com/files/linux/dlplus.zip) 2005 John R. Hogerhuis +1.5 2019 Brian K. White +2.0 DeskLink2 2023 Brian K. White From 27e51322bb3e15da9f905dd0098a13c480078800 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 18 Oct 2023 17:15:38 -0400 Subject: [PATCH 129/206] links to past versions --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index faa0705..bc39942 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # dl2 -DeskLink+ is a [Tandy Portable Disk Drive](http://tandy.wiki/TPDD) emulator or "[TPDD server](http://tandy.wiki/TPDD_server)" written in C. +DeskLink2 is a [Tandy Portable Disk Drive](http://tandy.wiki/TPDD) emulator or "[TPDD server](http://tandy.wiki/TPDD_server)" written in C. ## Install ``` @@ -207,8 +207,8 @@ Tested on Linux, [Mac](ref/mac.md), [FreeBSD](ref/freebsd.md), and [Windows](ref * file/filesystem access on disk images - currently can only use for sector access ## History / Credits -1.05 [DeskLink for ms-dos](https://ftp.whtech.com/club100/com/dl-arc.exe.gz) 1987 Travelling Software -1.0-1.3 DeskLink for *nix 2004 Stephen Hurd +[DeskLink for ms-dos](https://ftp.whtech.com/club100/com/dl-arc.exe.gz) 1987 Travelling Software +1.0-1.3 [DeskLink for *nix](http://m100.bbsdev.net/) 2004 Stephen Hurd 1.4 [DeskLink+](https://www.bitchin100.com/files/linux/dlplus.zip) 2005 John R. Hogerhuis 1.5 2019 Brian K. White 2.0 DeskLink2 2023 Brian K. White From a4078958ee40967d7366a48858169e01ea886f79 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 19 Dec 2023 16:47:38 -0500 Subject: [PATCH 130/206] co2ba Installing... message, remove comment --- co2ba.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/co2ba.sh b/co2ba.sh index eeb5641..e9c97ea 100755 --- a/co2ba.sh +++ b/co2ba.sh @@ -6,14 +6,14 @@ CO_IN="$1" ;shift ACTION="${1^^}" ;shift COMMENT="$@" -CO="${CO_IN##*/}" ;CO="${CO:0:6}.CO" +CO="${CO_IN##*/}" ;CO="${CO:0:6}" ;CO="${CO%%.*}.CO" BYTES_PER_DATA_LINE=120 typeset -ra h=({a..p}) # hex data output alphabet typeset -i i t b c SUM TOP END EXE LEN LINE typeset -a d=() -abrt () { printf '%s: Usage\n%s IN.CO [call|exec|savem|bsave] ["comment..."] > OUT.DO\n%s\n' "$0" "${0##*/}" "$@" >&2 ;exit 1 ; } +abrt () { printf '%s: Usage\n%s IN.CO [call|exec|savem|bsave] > OUT.DO\n%s\n' "$0" "${0##*/}" "$@" >&2 ;exit 1 ; } # read a binary file into to global int array d[] ftoi () { @@ -31,18 +31,18 @@ ftoi () { ftoi "$CO_IN" # parse & discard the .CO header -((TOP=${d[1]}*256+${d[0]})) -((LEN=${d[3]}*256+${d[2]})) -((END=TOP+LEN-1)) -((EXE=${d[5]}*256+${d[4]})) +((TOP=${d[0]}+${d[1]}*256)) +((LEN=${d[2]}+${d[3]}*256)) +((EXE=${d[4]}+${d[5]}*256)) d=(${d[*]:6}) ((LEN==${#d[*]})) || abrt "Corrupt .CO file\nheader declares LEN=$LEN\nfile has ${#d[*]} bytes after header" +((END=TOP+LEN-1)) SUM= ;for ((i=0;i%uTHEN?"Bad Checksum":END\r' $((LINE++)) $SUM From daa1b7f1975a08f122669f306114b29223acb91e Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Fri, 5 Jan 2024 18:24:15 -0500 Subject: [PATCH 131/206] Update Disk_Power.txt --- clients/disk_power/Disk_Power.txt | 84 +++++++++++++++++++++++++------ 1 file changed, 69 insertions(+), 15 deletions(-) diff --git a/clients/disk_power/Disk_Power.txt b/clients/disk_power/Disk_Power.txt index 93489a6..3a2a5c1 100644 --- a/clients/disk_power/Disk_Power.txt +++ b/clients/disk_power/Disk_Power.txt @@ -7,7 +7,7 @@ Disk Power requires both INSTAL.CO and the distribution disk to install. Here, INSTAL.CO has been repackaged into a BASIC loader which can be bootstrapped over a serial cable, and the disk has been imaged with -pdd.sh so that dlplus can act as a virtual drive for sector access to it. +pdd.sh so that dl2 can act as a virtual drive for sector access to it. --------------------------------------------------------------------------- @@ -15,9 +15,9 @@ Installation: Just run the following command: $ dl -vb Disk_Power.K85 && dl -vue -m 1 -i Disk_Power.K85.pdd1 -(dlplus will get both files from /usr/local/lib/dl) +(dl2 will get both files from /usr/local/lib/dl) -When the installer prompts to insert the disk, just hit [Enter]. +When the installer on the KC-85 prompts to insert the disk, just hit [Enter]. --------------------------------------------------------------------------- @@ -31,22 +31,76 @@ Usage: | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | +--------+--------+--------+--------+--------+--------+--------+--------+ -The top row are DISK functions, available while in DISK view. -The bottom row are RAM functions, available while in RAM view. +The top row are DISK operations which apply while in DISK view mode. +The bottom row are RAM operations which apply while in RAM view mode. -F4 toggles between RAM and DISK view. +DISK Operations: -F8 exits back to the main menu. + F1 - NewDsk - (re)-Read the (changed) disk directory. -ClrBAS and ClrPST clear the BASIC program area an the Paste buffer to -recover ram for saving files. + F2 - Load - Load a file from DISK to RAM. -F7 Format quirk: F4 will not enter DISK view unless there is a valid -formatted disk inserted to read. This means it's not possible to format a -new blank disk unless you already have some other formatted disk to put in -the drive first in order to access DISK view. Once in DISK view, then you -can swap in the blank disk and press F7 to format it. You can use the install -disk for that if nothing else. You can also format a new disk with pdd.sh + F3 - ALL - TODO/FIXME: I don't remember now, select all probably? + + F4 - RAMDIR - Switch to RAM View Mode + + F5 - Kill - Delete a file from the DISK. + + F6 - List - TODO/FIXME: I don't remember. + + F7 - Format - Format the disk. (note1) + + F8 - Menu - Exit out of Disk-Power back to the KC-85 main menu. + +RAM Operations: + + F1 - ClrBAS - Clear the BASIC program area to recover ram for loading files. + + F2 - Save - Save a file from RAM to DISK. + + F3 - ALL - TODO/FIXME: I don't remember now, select all probably? + + F4 - DSKDIR - Switch to DISK View Mode. (note1) + + F5 - Kill - Delete a file from RAM. + + F6 - List - TODO/FIXME: I don't remember. + + F7 - ClrPST - Clear the PASTE buffer area to recover ram for loading files. + + F8 - Menu - Exit out of Disk-Power back to the KC-85 main menu. + + +(note1) F4 Disk / F7 Format quirk: + + F4 will not enter DISK view unless there is a valid formatted disk + inserted to read. + + The F7 Format Disk function... + needed to create a formatted disk... + is in the DISK menu... + which requires a formatted disk to access... + + This means that it's not possible to format a new blank disk unless you + already have at least one other already-formatted disk available, just + to put in the drive first, just so that you can access the DISK + functions at all, where the Format function is. + + Once in DISK view mode, then you can swap in another disk and press + F7 to format it. + + Presumably the user was expected to always have the distribution disk + available if nothing else, because the software required the original + distribution disk to install or re-install after a crash. There was no + way to back up either the installed program or the original disk. + So, since crashes can happen at any time, you needed to carry the + actual distribution disk around with the computer at all times. + And so you could always use that to access the DISK menu if nothing else. + + In reality, today you can just use another TPDD client like DSKMGR on the + KC-85, or pdd.sh on a PC. This is only a theoretical limitation if it were + 1985, you were away from home, and had only your not-crashed KC-85 with + Disk-Power already installed, and a new disk. --------------------------------------------------------------------------- From 8e8523ce3e3d4ea481f0e5f2d6bad130bd0c5b58 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Fri, 5 Jan 2024 18:26:14 -0500 Subject: [PATCH 132/206] Update Disk_Power.txt --- clients/disk_power/Disk_Power.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clients/disk_power/Disk_Power.txt b/clients/disk_power/Disk_Power.txt index 3a2a5c1..428005f 100644 --- a/clients/disk_power/Disk_Power.txt +++ b/clients/disk_power/Disk_Power.txt @@ -92,7 +92,7 @@ RAM Operations: Presumably the user was expected to always have the distribution disk available if nothing else, because the software required the original distribution disk to install or re-install after a crash. There was no - way to back up either the installed program or the original disk. + way to back up either the installed program or the whole original disk. So, since crashes can happen at any time, you needed to carry the actual distribution disk around with the computer at all times. And so you could always use that to access the DISK menu if nothing else. From 3b027143f66919a8d0c33beade3ad1b91c5fde02 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 10 Jan 2024 07:07:46 -0500 Subject: [PATCH 133/206] co2ba better end prompts --- co2ba.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/co2ba.sh b/co2ba.sh index e9c97ea..46935aa 100755 --- a/co2ba.sh +++ b/co2ba.sh @@ -48,9 +48,9 @@ printf '%uIFS<>%uTHEN?"Bad Checksum":END\r' $((LINE++)) $SUM # action after loading case "$ACTION" in - CALL|EXEC) printf '%uCLS:%s%u\r' $((LINE++)) $ACTION $EXE ;; - SAVEM|BSAVE) printf '%uCLS:?"Saving "N$:%sN$,%u,%u,%u\r' $((LINE++)) $ACTION $TOP $END $EXE ;; - *) printf '%uCLS:?"Loaded:":?"top %u":?"end %u":?"exe %u"\r' $((LINE++)) $TOP $END $EXE ;; + CALL|EXEC) printf '%u%s%u\r' $((LINE++)) $ACTION $EXE ;; + SAVEM|BSAVE) printf '%u?:?"Done. Please type: NEW":%sN$,%u,%u,%u\r' $((LINE++)) $ACTION $TOP $END $EXE ;; + *) printf '%uCLS:?"Loaded:":?"top %u":?"end %u":?"exe %u":"?"Please type: NEW"\r' $((LINE++)) $TOP $END $EXE ;; esac # DATA lines From d4c29575bed6235e44665d3039148c24673998d7 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 10 Jan 2024 07:09:59 -0500 Subject: [PATCH 134/206] add PAKDOS --- Makefile | 2 + clients/pakdos/PAKDOS.200 | 68 ++++++++++ clients/pakdos/PAKDOS.DOC | 258 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 328 insertions(+) create mode 100644 clients/pakdos/PAKDOS.200 create mode 100644 clients/pakdos/PAKDOS.DOC diff --git a/Makefile b/Makefile index 2a71a0d..d564738 100644 --- a/Makefile +++ b/Makefile @@ -26,6 +26,7 @@ CLIENT_LOADERS := \ clients/ts-dos/TS-DOS.100 \ clients/ts-dos/TS-DOS.200 \ clients/ts-dos/TS-DOS.NEC \ + clients/pakdos/PAKDOS.200 \ clients/disk_power/Disk_Power.K85 \ # clients/power-dos/POWR-D.100 @@ -46,6 +47,7 @@ CLIENT_DOCS := \ clients/teeny/ddoc.do \ clients/dskmgr/DSKMGR.DOC \ clients/ts-dos/tsdos.pdf \ + clients/pakdos/PAKDOS.DOC \ clients/disk_power/Disk_Power.txt \ # clients/power-dos/powr-d.txt diff --git a/clients/pakdos/PAKDOS.200 b/clients/pakdos/PAKDOS.200 new file mode 100644 index 0000000..a9c16c4 --- /dev/null +++ b/clients/pakdos/PAKDOS.200 @@ -0,0 +1,68 @@ +5 'PakDOS v1.2 [1-7-91] for T200 +6 '(C)1990 by James Yi [73327,1653] +7 'Disk file compression utility +10 CLEAR256:PRINT"Loading.." +20 FORM=63415TO63708:IFS$=""THENREADS$ +22 D=(ASC(MID$(S$,1))-97)*16+ASC(MID$(S$,2))-97:POKEM,D:S$=MID$(S$,3):C=C+D:NEXT:IFC<>41889THENGOSUB85:END +30 RESTORE100:CALL63415,,HIMEM:GOSUB80 +70 FORW=1TO500:NEXT:MENU +80 IFPEEK(63408)=0THENPRINT" Loaded":RETURN +85 PRINT" Cksm Error!":BEEP:RETURN +90 DATAofcbegphagaimnghpiohhhcdafmclnphmnajcmofcblaphagahmnmbfncbplpeaoagmnlnpickpnpeofciagecelckgfpgmnkiicnkdnemofbbgdpgonainj +91 DATAobbbplpeagagofmnlkebnbmbmfmnlnpioboddokamnkmcnmbobaimnhlpilhmebopicblapheomnhlpijbhhmjofonodnjbdbdmbaieeenonbdbdofonajnj +92 DATAobbjofbdbdnfmfabapaagagiciabmdeipimnmjpincehpibjbimnmjpinkeapiblbjaimkfipiajnmkiebmbnbbjolobninpniofonajnjmddcpiofckglpg +93 DATAhocdccglpglhcdcdcdcdcdmkglpiobmjofnfcblbphboaihocddfpmjlpibpclhhhkbpfhbnmcicpicligilahhhhknbobmjdgafofcblephhodnpcldpimn +94 DATAghpipockmclhpimnghpingdjhhdkldphclhhngdlobmjmnhlpihhcdalhilbmclnpimjofcblfphhocddfpcnipidgahmnhlpiclbphhobmj +100 DATAPAKDOSCOKlxvL;@r>ZGs>VGskk=Gk;>Gkc^i;*z*z*z*z*[^RXlpRYC?Sls`RHIGoYoDJYp@RZt\gPr>^Or<^rk@SlsPRWx`BmUXJGMXBwk@SLn;phEklHZZ +101 DATAor@RWl@azKneqxtxTyBHfUrbZFZZogeXv>Cbf]WW>MnUrAfNxtXYwbvNFDrGKXrw;V?m@mrGyXZPnsrxazlgjDaCmlXCYCZnsrxPH^ZrBWkTSn>TcIKohgHJ_\JhRs`JwEYz_Z^ +103 DATAowKAASBm^]rjowKAAykapStH>u^HbL\RxOnTOsRBHgNYZrC^CzwB]NDWNnYVSnNvXneuXnCvX?;WOnbuXYm?Lrb=W?;WKnFsh>uogA]dNxwZoNb]WCKmXn=sXnTOsX^O[kwuxkapSCH@^CKmh<=oGqYvN>>J_\\;DrHF[ry +105 DATAHMn>TS<=vhr>VQ^u?Lrb]WC?yZnyvXCQyKnyvXCOy[CMmXC<;[CKmX???nkftXn;pXngwhLHBptSv;^ftLSox\;DrASKnuA_Hi +106 DATAGmk?sqfH>Prbt]L][ErLc<;HjarytZ;DzeGUohJzFNAXrwwZfxpZfMAXzUjgDGVZzaJPHBpty;gobyhIdohp=xk>JSG[e_ErGPOsHRXtUfprH>OruONrbMJBbBMHXvbtztvXSJ=HHBctC^ZnJXIojm^GpoXmroGKXrWjZ^XHiT=;HZbQHVstHRtt[ +108 DATASOUgPqwDrGOXfNHXZEyHjr]jSY;\ONrqYBmr_WCpohZq>sXHBprpnX>ZrWJZBZmH>OrLOLrhJMqVgLvrHMqVcoGUYjRoxCl?yHMqbaWn;pHYl]w=ypGB[JmkgsrHmkv_W +110 DATABL;QU]WLryGkkY=iIMoxd?>>syCkkcthxrOII=giC[lXsMjLsLKnvhRYC>EYqHFttG;PSfLoNN<]Xls]G[gPGhWNFt?NrHFttE;PSf +111 DATALoNNdVnnNppEnHs`vzIcwbYlL;rvPBkZzpwdm[KnPlNsHvhtHNHBWRwoWeaBW?X@YvNG\ANWfmKAiy<@Ii=FOs`rysd +112 DATArwYYv^;>betJphLxEyMiKiOvLYOhBiKOGyzvtHL`FINSIIPvKyOzGYLFKyzP@YPE +113 DATAK_JdDBCNtNSqPACGtnV\LAC@t^W\HRT[K`JtrLABoOThxaWt<]Tp +114 DATAlAvMKOUnhACDxmnQsoV[wAW`DRSiLIHIxAX[SqVptAtrCOS_<]TdlQT[sQShPYIM@QV[KQUm<]TplAvKX`WdLRT[;bWjLRT^LRT_>ALdHrU[KQUm<]TplAv\ +115 DATALOUnhACaPBVg>BLdHrU[wQXoBBLdHrU[GAU\tqT`LI;e;ArfgmEf_zYr]WnMYYLmDrVmktHRttXd>c\wZsyXuPffg\bjyCvegbbvrCbEJh]Jwd] +116 DATArgjarwUdfHo]rGeb^Xnl`yk>FYn=[YnAYYnPYIC=`BX`HBCaDRT`bWnyUYnLxhqsFYncYIqHfpr>jisegEra;K?;=KntLOnAYiJkWykQFIO^ +117 DATArwJarGTdNXLdBmJirw>B@=bqVKMHBptU +118 DATAnrscSkuFgk=Fgk=HbAsHfFsHnot\NXLdrWfarWWdJWL^BWkBsHZ@tM^?tHRpr>v>tMRAty;PnwXyYO>T@r_Wn@cpP\o[=Z^gQy;PnLXiYO>T@>^utHjQuS +121 DATAjYnDMYnl`ykyLYnyw?Yli;myHmtH^utMnCtDz@P@p?O[;@LHfirHZtu\gMr]sNrbqWgaB]a_F=JXrGG`rgJ[fh]`vjB=jFtHretH>muHJzrORXtUJItHJvrH +122 DATAv>syz\kSNykvMiJYoGB`B=TWVK?yH]zKcgz_vjBEvJtyz\kBOYxy;LnWOYwA>OnWOY<=rItHv>sHnLtyz\kIOykvMYn;pX?soXvrHMqHNztKrGV`JGJ`rgT` +123 DATANXE_B=;;C]IXrWR`fh>ZpWf[f]IXjYnNPiEdTjCsoXmuHFmVogJ[JwO`f]JXrggaJW=[f=JXJGS`fM@XF]IXrgT`rwa[fMUqRILHd=IX^ksWtHrPtekNrfrwFZBLAHGwUYrGG`rgJ[NHB`Fxk`rGV`rWR`JWE_ZNn;pX?^oXnqUi>C[Kn=jYtHzotUj]tuONrbezEa^>m;Lr>F_tH>Ory;mk=rPnKpXCAXZ;CW[Z^sjECvzJCvJC=bdt@[Z>= +127 DATAfctG_WnbVYnfVKHBctkv^EmSoxmkox>netyXuHCJ]z\[xdDrWna^goRVYnHVImUvhtf_Wn;pxL\;rvHvht@czJa +128 DATArwpavZFERjt>Bjt]lys=n@cP<=JktDrGKXRWnAXYxOZbQuWkvxKgB;oG;bBZsSrg\bf>WWVyB?v<;?zQrDv>QLs>NLsnKLsNNL +129 DATAsNMH>PrR@=Wjrwpa^gzhCGQbJ]ZHNPrHNptSrwJargca>zHDrGPbB<;;[xkQ_Kn;pXnJWOCVUzkGBLnrdpsHvtt^bWnrd`Zazbj^WimYYYmH +130 DATAN;@CrwxMowxMWemjYiz[_Wn[pXnrdPnWWYnMYiO`uyc\kj[Yn\AoC^_[ZyI]kj[yE<^;I?_XmH>Or@>PQHNDufgYAfNWC>AwCffmTjzhqi\Y=]WqvPf=SW +132 DATAjYvNGLloY=TJl?xCg]cbGLHdMUqRI=?pOsDrGKXRYlOpP=`rG`cBIlQGCSd@G=?pOs> +133 DATAr?uH>Or@JYn]^ysH>HufrwIcrWocjykx]itrOX?kcZlOVl[fnh@>iYkLbW;;E;=Kb;LH@=;;[Rg;BWkDRZty>em\_Y=y>gmb_Y?PEjp;eWFdj=EAOWn\GsCk +134 DATAH=W^gYsTv[cpRiE`Tzkq_Y?[Ez=yclX^Wr;>oyCTjmu\rWicrW=g?Zngqmk]lMn;pxEQh]RfsRnQ[iz[ewQdFhQdJk;q;kuHzDu>FAF\ONryTJ[r +135 DATA@MhmF]^WzeGklXnnzhqRzX?ImXvJvrHvftHBjuSrgJ[fXidJ\zZCWfdjYnAXIpAYYncYIp; +136 DATAgykgaYnevXnf`iqqdiG`lXtPRWlLSArroghaBiCilX?=;kfwCoMCchxdb;Ayr[kcbYJyB[n;OjJNpGZbfX=eBzYyBKxlRjJlsH;mKArjE>XWZqV]OLrHVauH +137 DATAnVrysLnW;YC_lX;L;KnehIW^;RwzWu\WNryXFkoow`ffz[?GW`[BmHX +138 DATAzejrLgi[ZUmHBjuOfguSFwheZqV]OBre_ax`RgI_lhzkkWMfNGKhrwQfzPnVhyPeOBrZBWs=rfuuOArHjwsH>ku>NcuHFtt=@AT[G_O>JwheRWnmUYn_`YkU +139 DATAbiuy>ek]fiJSpWObFXuerWib>Wn@`YnJ[iqxkofDrw`fFx[?oW=[fh>ZpWf[rWfarwwZfxpZrgJ[fxpZvjB=bkuH>muHRXtU>ku>JvreOLr`B=TWBK?;oWMf +140 DATAf>XWzOCkcZnDhYkeOLrCGmuesAr?pOC`lhZ^_Wn;pHYl]w=HjpurHMn=oykGhYny;izK;Wny;ip;`Wn;pHYl]w=ypWYfrg;hJmkehYxy>\mDiizYcW]fvzB= +141 DATAFtupv>?HnmH;B=O?`XmZpgjfNpYm[BrHrBvHBzuISkkNniCCmhC;mhCylHSdD]]WB];;_^CGmhJBCnYWv>[moBrjE>ZW +142 DATAZqV]SCrwCnXWv];]_Brg`Wn^nIq>V;vulfkjkYlHfAv\jMnMqiEylxuhV=;]CCr`kaC?mhE;mhKFpwsgfhUgJk;>f=vesBrfByYxeGyff\j^CgEgJ\AVsfke +143 DATAky?`JgLgf\j=R=v^GLYvEWKg^bi=B?v^j]C=mxC^RiE?mxC]KCr\rwsgJ[omvDvrymVHvmoBrDrGSXf]]WNONLSCrh +145 DATA^kHCbkCTrbtzlWEhB<]WriZ^_XtpfMXWnuTY[KEMZLvwtI?bpbv\wQB=jKv]OBrlBYmHbruy;sdnbWnrd`EAmXnFW_JUYiEPoXnFW_JHWywDrgjfrGFiB[Lh +146 DATARWnGsio=qYn=riYnewWhJk;e;Crf_luesBrUWRn[sy?^g;YlEwShJg_hbrd\[Br=>Sv\gBry[kXDfnYWzOnerYZesBrrHMn[siCylxue;CrfKONf^kue_BrZ +147 DATA>Xt\WBru[BryEWihf]ZWBG=^C=[WbGH\b]Ctlxk]qiIrlxNHfYv`BQUc?KpHn[vMJYvHn[vMnXvT[lsdGykJrYoV_ZWZ_IxlXOrHFKvLSCrhJMq?p_EEmH=;f=^WbZmHjpuAWkwDR=RP@ZWotWEjFjJjwY`wEzdq`FPvMZsY +149 DATAOMvarVHjMfOE@qIQtQdoAEBTmNqOd[smEn@PWdX]tFUQjmbQWAA`mmagRUtJryMRIjw_ne=;;_fUPXtmB`Nd;=W>\F`Fk`MHJ[]^I?Og@`[f?NRua[CNKO;f +150 DATAIB^Ju[;A[TYV`MSs?OO_M>;Y@K;=d;COwQ>dPEwfkF`xYPcp`mWQjIZ]gNGXi`OfcX`NtHLdMjUrE@PEZuhOfMdmuOdwfxdn`fWvPnM_fNdpjjwtHhM`[EVR +151 DATA;LD;WMiWicQANt`_G@hVDdCDDDoqE +152 DATAnr diff --git a/clients/pakdos/PAKDOS.DOC b/clients/pakdos/PAKDOS.DOC new file mode 100644 index 0000000..9087f1f --- /dev/null +++ b/clients/pakdos/PAKDOS.DOC @@ -0,0 +1,258 @@ +PAKDOS.DOC -- Documentation for the disk file manager/archiver, + PAKDOS.100 and PAKDOS.200 v1.2 [1-7-91] +By James Yi [73327,1653] + + +___ What is it? ___ + + PAKDOS allows you to compress and combine Ram files to disk, in addition + to other routine disk file management tasks, such as Save, Load, Erase, etc. + Since files can be combined, more than 40 files can be stored per disk. + DO files get reduced by about %40-%60, BA and CO files %10-%30. + It runs on Model 100 or 200 with either PDD1 or PDD2. + + +___ How to load and run it ___ + +1. Download the program in the form of text file. There are two versions, + PAKDOS.100 for Model 100 and PAKDOS.200 for Tandy 200. + +2. Convert the text file to BA program file by going to BASIC and LOADing it. + If you get ?OM error, you can either save the text file to cassette or disk + and LOAD from there, or use DO2BA.100 or DO2BA.200 to convert it directly to + a BA file. + +3. Run the converted BA loader to create PAKDOS.CO. While being created, its + loading address is set according to the value of HIMEM; the address of its + last byte is set at HIMEM-1. If you are not worried about it conflicting + with other machine language programs in HIMEM, you can just load it at the + highest possible address by setting HIMEM to MAXRAM before running the + loader. HIMEM can be set by typing CLEAR 0,xxxxx + where xxxxx is the new HIMEM value. After it is created, you may delete + the loader. + +4. Run PAKDOS.CO. If it just beeps at you or gives an ?OM error, you need to + make space for it in HIMEM by setting HIMEM to at or below the load address + of PAKDOS.CO. The load address is found out by going to BASIC and + LOADMing the program by typing + LOADM "PAKDOS" + There will be displayed "Top", "End", "Exe" values; set HIMEM equal to "Top", + by typing + CLEAR 0,xxxxx + where xxxxx is the value of "Top". If you get ?OM error again, it means there + is not enough free Ram. + + +___ How to use it ___ + +At the command prompt "PakDOS:", enter a command in the following format: + + CMD FNM1 FNM2 ... -OPT1 -OPT2 ... + (Each item is seperated by blanks.) + +CMD is the command string. It is one character long. +FNM is the name of the file for the command to process. Enter as many FNMs + as are needed. +-OPT (option) is optional subcommand. For example, -L option shows, in + addition to the name of the file being processed, its size and date/time. + + +___ List of commands ___ + +Note: + 1. Although the command words shown below are spelled out, you need to + specify only the first letter. + + 2. Abbreviations for file name specifications: DFL = file on disk, + RFL = file in RAM, FNM = just any name. + + 4. Wildcards(*,?) are allowed for file name specifications when W is attached + to it. For example, RFLW means that wildcard substitution is allowed for + RFL. More about wildcards later. + + 3. Use of brackets([]) means that the item in it is optional. If a file name + specification is in [], it means that by omitting the file name, you can + pause before processing each file and press Y to process it, N to skip, or a + control character(^C, ESC, ENTER, etc.) to stop. + + 5. The following subcommands have common use in all of the commands that + allow them: + -I (Interact) gives a pause at each file to be processed, so you can + press Y to process it, N to skip, or a control character(^C, ESC, ENTER, etc.) + to stop. For example, to select only some DO files, specify *.DO and use -I. + It will then pause at every file with DO extension. + -L (Long format) displays in addition to the name of the file being + processed, its size, and where applicable, date/time and compressed + size. + -M (Move) deletes the file after it is processed. + -D (Date/time stamp) stamps the + date/time when creating a disk file. As a side effect, putting the date/time + on the file makes it unreadable by other disk related programs that do not + expect the date/time stamp. + -X (execute) executes DO, BA, or CO file after it is created in Ram, by + Load or Unpack command. DO and BA files load as files, but CO file does + not, i.e., it won't be on the Menu when you exit the CO file. If the load + address of CO file conflicts with that of PakDOS, you can still execute it, + but PakDOS will be overwritten. + + + Pack DFL [RFLW] [-S] [-M] [-I] [-L] [-D] + +compresses RFLW and stores them as DFL. Packed files are simply combined with + other packed files in DFL if DFL exists already. The default extension for + DFL is "PD". + -S (Skip compression) skips compression, when you want to just + combine files together without size reduction. + + + Unpack DFL [RFLW] [-I] [-L] [-X] + +decompresses RFLW from DFL and loads them to Ram. + + + View DFL [FNMW] [-L] + +lists packed files in DFL. + + + Omit DFL [FNMW] [-I] [-L] [-D] + +deletes packed files from DFL. Leave enough free Ram to buffer the DFL. + If there isn't enough free Ram, the DFL will be read from disk more than + once, in order to process it in parts. The more parts it has to be divided up + into, the longer it will take. + + + Save [RFLW] [-M] [-ADFL] [-I] [-H] [-D] [-L] + +saves RAM files to disk. + -ADFL option lets you append RFLW to DFL. + -H (remove Header) lets you remove the 6 bytes header of a CO type file to + save only the data part of it. This might come handy when for example, you + have Loaded a PD file from disk into Ram, and want to save it back onto + disk; -H removes the header that was attached to the PD file when it was + Loaded. + + + Load [DFLW] [-I] [-L] [-X] + +loads disk files to Ram. If the file extension's first letter is not one of + B for Basic, C for CO(binary) type, D for text type, it will load the file as + a CO type file, attaching to it a 6 bytes header needed to store a CO type + file in Ram. + + + DiskDirectory [FNMW] [-L] + +lists disk files. + + + Erase [DFLW] [-I] [-L] + +erases disk files. + + + Type [DFLW] [-Pnn] [-I] [-L] + +prints the content of disk files on screen. + -Pnn (print) outputs the file to printer, sending the printer code nn at + the end of each file, e.g., -P12 sends Form Feed, and just -P sends nothing. + + + Kill [RFLW] [-I] [-L] + +deletes RAM files. + + + Files [RFLW] [-L] + +lists RAM files. + + + Read [RFLW] [-L] + +prints content of Ram files on screen. + + + Quit + +exits the program. + + + Bye + +is a permanent exit, returning the HIMEM space occupied by PAKDOS to free + memory, and deleting PAKDOS.CO if it's in Ram. + + + HELP or any other nonexistent command shows the Help menu. + + +--- Other details --- + + ';' for command repeats the previous command. + + During files listing, press any key to pause, and then press a control + chr(^C, ESC, ENTER, etc.) to stop, or any other key to resume. + + Holding down SHIFT stops batch processing of files, letting the + current file finish, then stopping before processing the next file. + +Just press ENTER at the command prompt to clear the screen. + + If you use it with PDD2, you can add the prefix 0: or 1: to the file name to + specify which bank the file is in. Then the bank selection is set to that + bank for subsequent commands until you switch it back by using another prefix. + For example, + D 1: + lists directory of bank 1 and lets all subsequent operations take place in + bank 1. Or, + S 0:*.* + saves all Ram files to bank 0. + + Making a Ram file invisible makes it inaccessable by PakDOS. + + You can make CALLs to PakDOS to execute a single command and return. + The following example demonstrates this. It lists the disk files + directory in long format. + +10 LOADM"PakDOS" +20 PD=XXXXX:'"Top" address of PakDOS +30 C$="d -l"+CHR$(0):'Command string +40 C=VARPTR(C$):C=PEEK(C+1)+PEEK(C+2)*256 +50 CALL PD+3,,C +60 END + +Replace XXXXX in line 20 with the address of PakDOS's Top. When you CALL + PakDOS at Top, to run the program, or at Top+3, to execute a single command, + like the example above, all Basic variables are retained and you will be + returned to resume running the Basic program. The only case where a + variable might not be retained is when a string variable is assigned a single + constant literal string, like this: + +10 A$="hello" + +However this can be corrected by changing it to: + +10 A$=""+"hello" + or +10 A$="h"+"ello" + +The + forces the data of A$ to be located in a seperate variable storage + area, instead of being imbedded in the program line. + + If you up/download files using the built-in 300 baud modem and run out of +memory to hold all the files, you can use PakDOS without having to logoff + and relogon, by exiting the comm program, use PakDOS to save/load files + from disk, and resume the comm program. + +--- Wildcards --- + + * - Replaces a field...; *.* - any file; *.DO - any file with DO + extension; GR*.* - any file beginning with GR + + ? - Replaces a single letter...; ?ILE.* - file name with any first letter, + followed by "ILE" and any extension. ??????.?? is the same as *.* + + + END From 18214bca5d3be9a45c6d6c794ed19b7d2f11bc43 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 11 Jan 2024 06:27:25 -0500 Subject: [PATCH 135/206] add missing PAKDOS.100 --- clients/pakdos/PAKDOS.100 | 67 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 clients/pakdos/PAKDOS.100 diff --git a/clients/pakdos/PAKDOS.100 b/clients/pakdos/PAKDOS.100 new file mode 100644 index 0000000..8fa7ab0 --- /dev/null +++ b/clients/pakdos/PAKDOS.100 @@ -0,0 +1,67 @@ +5 'PakDOS v1.2 [1-7-91] for M100 +6 '(C)1990 by James Yi [73327,1653] +7 'Disk file manager/compressor +10 CLEAR256:PRINT"Loading.." +20 FORM=64711TO65004:IFS$=""THENREADS$ +22 D=(ASC(MID$(S$,1))-97)*16+ASC(MID$(S$,2))-97:POKEM,D:S$=MID$(S$,3):C=C+D:NEXT:IFC<>42415THENGOSUB85:END +30 RESTORE100:CALL64711,,HIMEM:GOSUB80 +70 FORW=1TO500:NEXT:MENU +80 IFPEEK(64704)=0THENPRINT" Loaded":RETURN +85 PRINT" Cksm Error!":BEEP:RETURN +90 DATAofcbjdpmagaimnhhpnohhhcdafmcmnpmmnomcaofcbmapmagahmnakepcbmopkaoagmnmnpncknapkofciagecelcklcplmngnglnkccdpofbblaplonainj +91 DATAobbbmopkagagofmngjdenbmbmfmnmnpnoboddokamndjccmbobaimnilpnlhmecopncbmapmeomnilpnjbhhmjofonodnjbdbdmbaieeenonbdbdofonajnj +92 DATAobbjofbdbdnfmfabapaagagiciabmdfipnmnnjpnncfhpnbjbimnnjpnnkfapnblbjaimkgipnajnmfhdembnbbjolobninpniofonajnjmdecpnofcklipl +93 DATAhocdcclipllhcdcdcdcdcdmkhlpnobmjofnfcbmbpmboaihocddfpmklpnbpclhhhkbpfhbnmcjcpncligilahhhhknbobmjdgafofcbmepmhodnpcmdpnmn +94 DATAhhpnpockmcmhpnmnhhpnngdjhhdkmdpmclhhngdlobmjmnilpnhhcdalhilbmcmnpnmjofcbmfpmhocddfpcoipndgahmnilpnclbphhobmj +100 DATAPAKDOSCOKlxuL;@r>JGs>FGskk=Gk;>Gkc^i;*z*z*z*z*[^RXlpRYChNls`RHIGoYoDJYp@RZt\gPr>^Or<^rkiNlsPRWx`BmUXJGMXBwkiNLn;phEklHZZ +101 DATAor@RWl@azKneqxtxTyBHfUrbZFZZogeXv>Cbf]WW>MnUrAfNxtXYwbvNFDrGKXrGcT?=EtrGyXZPnsrxazlgjDaCmlXCi_ZnsrxPyhmEBWkn`X`rg;YrWIjt^QHF^VHF^Vu;LrmqgGixoY\RykgsxNy +103 DATAHMnmsQ[XCZEYzMnmsQs>n>X`rGRqpgZhXpNHvRVZXokJtxX^?sNHvRV@CZNYNkFtqGJo@ikOM\YQFYv[IHnlOuSszBxodCB=_Wrg;YrgZhXrC@CGiYJGJo@MNlC=_WV[;HNhryokkmsQCKmXn=shZ^ogGi +105 DATAP[kUvxkwKbILoxdCB=\zrgyYB]`JogyYB=`JC]_WBM;;C=_WB<H^btyKOnHXIqIK;=HnVrL;BrAKkkoUY?NmZCKmhmryKPnH +107 DATAXiJ;FxcZfNEXVhKJwk>A>cEdmHN@@YnLRiqQxXn;phIpoxdo^lt\ONryTyZyYBq^KNnxTImsrwMb>xfwCNHXbwHH>OrHbvrSR^Va;KnsiOn=YYnLYICA`AV` +108 DATAHZmH>PruONrb]ZnlErFaBKCpohhr\wHDBMHXvbx;YRnHxXxWbkrHbnrlbWn;pX?PoXv^_xAVoyX^_xAUk^?kV<QreWLr?pO?PoXvC +109 DATAW>mDGMqVgLvVcLJmv@sPvn;Hbarv@XJMG\Z^_xdDrGKX^RgCj[ZH^OrHR;sZUg;m;DrL?K;H +110 DATAz=sbxaCPoXmH>Or[`aCRohJ>Gga[f^?XZElg;iJ=GWUYVzH`^^;fF=SWBioR?Y?MTZv`BmZ]bXnIYI>K@qU?xoO[SRGiC>CV@NFroMIloXnIYi=K@qU?xoOu +111 DATAqWKAXhmS>Ytyj>EzTkZGbAHGFU?G^vM\B;w[RW?@UZpPldz_b_>KnIYIOy?qSf[E[lxEfgmEtjrhCrg^bR_WmxaW[gXCNmZnwVYnLYYRu;UCvBiZbYpuEFstfJmiEfttyHmdm>fs>JesHfftH +116 DATAZQuUngsHNutSrWVdJwj]rgzbrg[brW_b>]KtLRTn<]TmPQtDrgiarWNZfHx]rGdb^XnQxxkbFiEfmhD;?<[;oWDrog[bv>GbJgo]>PKFLoNNHoN\[ksHj^tH +117 DATA>QuOBOu\g^vH^XI\_yyAOK?SlXn=PMCQlX?@UZpHJWT\JWy;pgtYrwTd^XtPRgJBosRssHrorSRZnAfYsSFgg^RYntwXnd=iEqiZnoZtsGxqX`DBCC`ON@p?;Rt>QH +119 DATArotudxvcrgv\vJcEFysHzIuHzEC>BMQLjYv?p_EoRzEC?mi^FX_R@mcRPyuH>@Hs@FmPjYvNGlsfJwqfpgtYrWNZ^XnYKYnLxxkHKYnCXIqHR;s\cLrpoWIZ +120 DATAvN<>barHZQuSrWKdrWVdJWF_rWNZ^XntwXnd=Yn]COnu;YnNLio?LYnLxxkuKio\LiJKpGYbjBpkLlHDrGLFXPCHckrCf`JKpWNbfBpkLlk_YYnb`IqfrW\_ +121 DATArWVdJgY_rgC=\RgF[gZ^WYn_YioCMYmZLPLH<@CKLOnavXnNiYCfohCyoxdHret\SDt]kNrHnMtHf>sUVStyv\krMYndUYnWgYnjzHpLRiqZNYnjyXnu;izZ +122 DATACGp_Jwh_v^BH^Lt\KArA?\Z^sJ?EfJtyv\muNizZCw;`RjJKoGA`Bjl;pGA`R[kdNYnu;YnSOizZCg=`Jwh_rGKXB^NtHFQtOR=t\ +123 DATA;;;]cNrHbPtUZ@OHbEsecNrfrwN`f]hvF=IXbgYn]wAHf>s>zOtesNrHvet>R;sekNr>nPteOLr]cNrHFQtHZDseSvy`NONe[NrCGYkHRAs>VFsH^QtHFQtU +124 DATAjWtuSNrbeWD_rwm`B]`_F]JXBmEXF=JXfN?XZemwQYnTPiEwoxuHjmrL_L>>narHnMtHf>sO^LtMzVtH^QtHbPt>R=troGKXBlCXrggav;=CoWZafzsN;=_GI=we?DJm?Hcgy`bbz=CGFaJwt`rGKXjYCN +126 DATAmjmy>]kPUYD +127 DATArwsarWZafgNK`Wn^Vixr?mAXvnHLGDzA[[q=PmkdLNnxTIwyc]GNmjGTmzkcUiZbY>m^sZCSZUmHbgtCFxoarWma^gqUVyEDrGKXZOC@UZnUVYOr@rgKbRJpsi_IuSZJ?v<;HnjtlBIqHFstu;BrazptL;;;SJwuCoGKXrGqt?=uvJgcLoGiFHYnUYysDrGiFtbtztvCbfgabbWnVJPr`f=SWBkRzbKkC_gEqiZlH +131 DATAJzt<>XC;;Km`rgzb^KsDrGKXRxuA>ApnR[ok[iJUCwEcrGOoGmCDsbj^CwEcjMkC[>Or`RGPX`KtH>Du\NwqfuHrGufJWicVyHPB<;yRGpVjquWjxUfBWoDB;K<[;oDKON\;;;s@FkG[H;gYnV]ykA@MCpohZq>sX\cVy] +135 DATAsCrjE>WWrwvZfxoZB\^WrY;F;[ZyzjmNzX=bEjZdVy>=vRuT^[Z^spCQHMnM[YnLRiqh`ykjyXnuUYnhfIqHf>sURVuNszB=bUufrgKbNh[brGdbNHzeJGed +136 DATArgtYrwTdfhWeFNTWRYp@RW?alxHHFft\F]VWB\;;wEJ=h?=UFZuD[\zHCGtdr^z[G_lxfmKBrbxaCPoXn]dYnwqhJY +137 DATAoGA[B=TWBK?;ogTf>rCk@Zk\nxSfRJpaiYweOBrxpWXfnRnphiJZoGA[NXDhrgC=pGMbNhWeBIp<`YndUYnh`ykFbYCrohZr=GHHJtuu^@<>BDs\WNrjuvX? +138 DATAVFsbaWnhfIpAfIq=JfubxaCplhEqiZt@f>TWvJGGRou?nNvHZpuZpwPfZ`EplxrDpk>Jfu@rgfarGSdBgq`fiz[ +139 DATAEgrev>QHrotMRiuHRvt;rWKdrw=cfhCzwUmHJtuM^@sUJxryv\k@gYnWgYnLRiqwfykjyhEPoXt\KArOnS;YwDvN;HjdtsBLawf\z[W>k\;@LTbwRHfvuOhbGslXntlYnhji>AGwngF=]WF=[WF]ZW>QU]cCr\C;;tC=^WvnGkkakiEylxu\jRjENzuUsvC=V=vNclAyEgDgJLt> +143 DATAF?vUsfk\kyCN_ri=r>vsdfkxkysfC][WJms`f=\WJ]C?mXsHzHv>CXJgBjE;mHLHd=\WjiE=mHD`cWggj;=dk]IrlxNHzGvfBL;;weKF\[qMmIAwGw\gbkNu +144 DATAoBr>NEvrwQrecCr?pO?AmXvCW>mD +145 DATAGMqxTyZGRMvL[CrhvrCTRYxeOBrgYaBC_]oNoIZi>lTxtYCjp\kBoiCplXw\bWnphiJ;YuwDrGiFd]\WrGpts^abfM@XrGptsN>bJZmHfvuH^]vG[E;mxETgiEylhArpGBiJlCF[Rg=zPv>vSvtXUCslhkwpYCvlhJCWRmugBrJpgthrbEylxX^oGBiF]ZWjiE;mxE?pouCgiEtlxrKRYCr +147 DATAlhIslhj=RVvesBr<^kC];CrDNNsdCMYWJgbhfnXWzOnarYt\`AEZWZ_IxlXmoBrsD>ZWbWn;pXnynY?AmXv^_HLHd]]W^;kekCrtbWnRhiP^MUrwY +149 DATAftPU`MdkqlErE`qKtCNYmaE@?RQTic]FhNGZLnuPyo]nkcOQq_xMFztqRumt`bWQP;;[WPfeFRycWE@K[VCWdWb[]]OU;kf;=KC@;\]rUChM\Z@Ydgrf=hiOanuptN_X]dnh_U@hfWEjDEPuPvQdcMtNj`UPEPQbE`ZhJXiW`VjUQ]WXEhyx`JjdPe?OTv=CE<[N +151 DATAm`n@pmSEj__dCkdcGThLM_]NEfWA`MNEV`mtE^\XqmmQQanGndWqIV`__`Xm`HVTIFbNQ?v^Rf^m`r@=V`pGIDNY@LtKYcXFD@DDD\qQtrz From 741dd288a286f9527965a0d47b96a2822cf298fc Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 11 Jan 2024 09:22:49 -0500 Subject: [PATCH 136/206] wip2.1 --- constants.h | 89 ++++++++++------ dl.c | 291 ++++++++++++++++++++++++++++++++++------------------ 2 files changed, 250 insertions(+), 130 deletions(-) diff --git a/constants.h b/constants.h index 960c9d1..522c865 100644 --- a/constants.h +++ b/constants.h @@ -13,30 +13,32 @@ #define REQ_FORMAT 0x06 #define REQ_STATUS 0x07 #define REQ_FDC 0x08 // TPDD1 -#define REQ_SEEK 0x09 -#define REQ_TELL 0x0A -#define REQ_SET_EXT 0x0B +#define REQ_SEEK 0x09 // NADSBox extension +#define REQ_TELL 0x0A // NADSBox extension +#define REQ_SET_EXT 0x0B // NADSBox extension #define REQ_CONDITION 0x0C // TPDD2 #define REQ_RENAME 0x0D // TPDD2 -#define REQ_EXT_QUERY 0x0E -#define REQ_COND_LIST 0x0F // generates 0x38 ret fmt -#define REQ_PDD2_UNK11 0x11 // TPDD2 unknown function - TPDD2 responds: 3A 06 80 13 05 00 10 E1 36 -#define REQ_PDD2_UNK23 0x23 // TPDD2 unknown function - "TS-DOS mystery" TS-DOS uses for to detect TPDD2 - TPDD2 responds, TPDD1 does not. -#define REQ_CACHE_LOAD 0x30 // TPDD2 sector access -#define REQ_CACHE_WRITE 0x31 // TPDD2 sector access -#define REQ_CACHE_READ 0x32 // TPDD2 sector access -#define REQ_PDD2_UNK33 0x33 // TPDD2 same as UNK11 +#define REQ_EXT_QUERY 0x0E // ??? Maybe NADSBox also, compliment of REQ_SET_EXT ? +#define REQ_COND_LIST 0x0F // ??? - TPDD2 responds RET_CACHE +#define REQ_UNDOC11 0x11 // TPDD2 undocumented synonym for REQ_PDD2_SYSINFO +#define REQ_VERSION 0x23 // TPDD2 Get Version Number - TPDD2 responds PDD2_VERSION_DAT +#define REQ_CACHE 0x30 // TPDD2 sector access +#define REQ_MEM_WRITE 0x31 // TPDD2 sector access +#define REQ_MEM_READ 0x32 // TPDD2 sector access +#define REQ_SYSINFO 0x33 // TPDD2 Get System Information - TPDD2 responds PDD2_SYSINFO_DAT +#define REQ_EXEC 0x34 // TPDD2 Execute Program // TPDD return block formats #define RET_READ 0x10 #define RET_DIRENT 0x11 #define RET_STD 0x12 // shared return format for: error open close delete status write -#define RET_PDD2_UNK23 0x14 // TPDD2 unknown function - "TS-DOS mystery" TS-DOS uses to detect TPDD2 +#define RET_VERSION 0x14 // TPDD2 #define RET_CONDITION 0x15 // TPDD2 -#define RET_CACHE_STD 0x38 // TPDD2 shared return format for: cache_load cache_write cond_list -#define RET_CACHE_READ 0x39 // TPDD2 -#define RET_PDD2_UNK11 0x3A // TPDD2 unknown function -#define RET_PDD2_UNK33 0x3A // TPDD2 same as UNK11 +#define RET_CACHE 0x38 // TPDD2 shared return format for: cache mem_write cond_list +#define RET_MEM_READ 0x39 // TPDD2 +#define RET_SYSINFO 0x3A // TPDD2 +#define RET_EXEC 0x3B // TPDD2 + // directory entry request types #define DIRENT_SET_NAME 0x00 @@ -55,7 +57,7 @@ #define ERR_SUCCESS 0x00 // 'Operation Complete' #define ERR_NO_FILE 0x10 // 'File Not Found' #define ERR_EXISTS 0x11 // 'File Exists' -#define ERR_CMDSEQ 0x30 // 'Command Parameter Error or Sequence Error' +#define ERR_NO_FNAME 0x30 // 'Missing Filename' #define ERR_DIR_SEARCH 0x31 // 'Directory Search Error' #define ERR_BANK 0x35 // 'Bank Error' #define ERR_PARAM 0x36 // 'Parameter Error' @@ -140,10 +142,6 @@ #define PDD2_COND_POWER 0x01 // bit 0 : low power #define PDD2_COND_NONE 0x00 // no conditions -// misc -#define UNK11_RET_DAT {RET_PDD2_UNK11,0x06,0x80,0x13,0x05,0x00,0x10,0xE1} -#define UNK23_RET_DAT {RET_PDD2_UNK23,0x0F,0x41,0x10,0x01,0x00,0x50,0x05,0x00,0x02,0x00,0x28,0x00,0xE1,0x00,0x00,0x00} - // lengths & addresses #define PDD1_TRACKS 40 #define PDD1_SECTORS 2 @@ -160,7 +158,7 @@ #define PDD1_SECTOR_LSC_LEN 1 #define PDD1_SECTOR_ID_LEN 12 #define PDD1_SECTOR_META_LEN (PDD1_SECTOR_LSC_LEN+PDD1_SECTOR_ID_LEN) -#define PDD2_SECTOR_META_LEN 4 +#define PDD2_SECTOR_META_LEN 4 // TODO - PDD2 service manual shows there is 17-bytes ID field #define SMT_OFFSET 1240 #define PDD1_SMT 0x80 #define PDD2_SMT 0xC0 @@ -168,17 +166,43 @@ #define PDD2_CACHE_READ_MAX 252 #define PDD2_CACHE_WRITE_MAX 127 +// TPDD2 version data: 41 10 01 00 50 05 00 02 00 28 00 E1 00 00 00 +#define VERSION_MSB 0x41 +#define VERSION_LSB 0x10 +#define SIDES 0x01 +#define TRACKS_MSB 0x00 +#define TRACKS_LSB 0x50 +#define SECTOR_SIZE_MSB 0x05 +#define SECTOR_SIZE_LSB 0x00 +#define SECTORS_PER_TRACK 0x02 +#define DIRENTS_MSB 0x00 +#define DIRENTS_LSB 0x28 +#define MAX_FD 0x00 +#define MODEL 0xE1 // E1 = TPDD2 +#define VERSION_R0 0x00 +#define VERSION_R1 0x00 +#define VERSION_R2 0x00 + +// TPDD2 sysinfo data: 80 13 05 00 10 E1 +#define SECTOR_CACHE_START_MSB 0x80 +#define SECTOR_CACHE_START_LSB 0x13 +#define SECTOR_CACHE_LEN_MSB 0x05 +#define SECTOR_CACHE_LEN_LSB 0x00 +#define SYSINFO_CPU 0x10 // 0x10 = HD6301 +//#define MODEL 0xE1 + // flags -#define FE_FLAGS_NONE 0x00 -#define FE_FLAGS_DIR 0x01 -#define NO_RET 0 -#define ALLOW_RET 1 -#define CACHE_LOAD 0 -#define CACHE_UNLOAD 2 -#define CACHE_AREA_DATA 0 -#define CACHE_AREA_META 1 - -// KC-85 platform BASIC interpreter EOL & EOF bytes for bootstrap() +#define FE_FLAGS_NONE 0x00 +#define FE_FLAGS_DIR 0x01 +#define NO_RET 0 +#define ALLOW_RET 1 +#define CACHE_LOAD 0 +#define CACHE_COMMIT 1 +#define CACHE_COMMIT_VERIFY 2 +#define MEM_CACHE 0 +#define MEM_CPU 1 + +// KC-85-platform BASIC interpreter EOL & EOF bytes for bootstrap() #define BASIC_EOL 0x0D #define BASIC_EOF 0x1A #define LOCAL_EOL 0x0A @@ -186,5 +210,4 @@ #define OPR_CMD_SYNC 0x5A #define FDC_CMD_EOL 0x0D - #endif // PDD_CONSTANTS_H diff --git a/dl.c b/dl.c index 7da9057..58da726 100644 --- a/dl.c +++ b/dl.c @@ -1249,7 +1249,7 @@ void req_read(void) { int i; if (o_file_h<0) { - ret_std(ERR_CMDSEQ); + ret_std(ERR_NO_FNAME); return; } if (f_open_mode!=F_OPEN_READ) { @@ -1287,7 +1287,7 @@ void req_write(unsigned char *b) { dbg_p(4,b); dbg(4,".....................\n"); - if (o_file_h<0) {ret_std(ERR_CMDSEQ); return;} + if (o_file_h<0) {ret_std(ERR_NO_FNAME); return;} if (f_open_mode!=F_OPEN_WRITE && f_open_mode !=F_OPEN_APPEND) { ret_std(ERR_FMT_MISMATCH); @@ -1311,38 +1311,42 @@ void req_delete(void) { ret_std (ERR_SUCCESS); } -void ret_cache_std(int e) { + +// also the return format for mem_write and undocumented 0x0F +void ret_cache(int e) { dbg(3,"%s()\n",__func__); - gb[0]=RET_CACHE_STD; + gb[0]=RET_CACHE; gb[1]=0x01; gb[2]=e; gb[3]=checksum(gb); write_client_tty(gb,4); } - /* - * Load a sector from disk into rb[], or unload rb[] to a sector on the disk, - * and like a real drive, flushing the cache to disk does not clear the cache. + * Load a sector from disk into rb[], + * or commit rb[] to a sector on the disk. * - * rb[] (record buffer) is the drive cache + * Committing the cache to disk does NOT clear the cache in ram. * - * Load/Unload Cache + * rb[] (record buffer) is the drive cache / sector buffer + * + * Load/Commit Cache * b[0] fmt 0x30 * b[1] len 0x05 - * b[2] action 0=load (cachedisk) - * b[3] - - * b[4] track 0-79 - * b[5] - + * b[2] action 0=load (cachedisk) 2=commit+verify + * b[3] track msb - (always 00) + * b[4] track lsb - 00-4F + * b[5] side (always 00) * b[6] sector 0-1 */ -void req_cache_load(unsigned char *b) { +void req_cache(unsigned char *b) { dbg(3,"%s(action=%u track=%u sector=%u)\n",__func__,b[2],b[4],b[6]); if (model==1) return; int a=b[2]; - int t=b[4]; + int t=b[3]*256+b[4]; + //int d=b[5]; int s=b[6]; - if ((a!=0 && a!=2) || t>79 || s>1) { ret_cache_std(ERR_PARAM); return; } + if (t>=PDD2_TRACKS || s>=PDD2_SECTORS) { ret_cache(ERR_PARAM); return; } int rn = t*2 + s; // convert track#:sector# to linear record# int rl = mlen+dlen; int e; @@ -1357,16 +1361,17 @@ void req_cache_load(unsigned char *b) { case ERR_FDC_READ: e=ERR_FMT_INTERRUPT; break; case ERR_FDC_SUCCESS: e=ERR_SUCCESS; } - if (e) { ret_cache_std(e); return; } + if (e) { ret_cache(e); return; } memset(rb,0x00,rl); if (read(disk_img_fd,rb,rl)!=rl) { dbg(2,"failed cache load\n"); (void)(close(disk_img_fd)+1); - ret_cache_std(ERR_DEFECTIVE); + ret_cache(ERR_DEFECTIVE); return; } break; - case CACHE_UNLOAD: + case CACHE_COMMIT: // write cache to disk + case CACHE_COMMIT_VERIFY: // write cache to disk and verify dbg(2,"cache unload: track:%u sector:%u\n",t,s); e = open_disk_image (rn, O_WRONLY, NO_RET ); switch (e) { // convert the FDC error codes to equivalent OPR error codes @@ -1375,36 +1380,40 @@ void req_cache_load(unsigned char *b) { case ERR_FDC_READ: e=ERR_FMT_INTERRUPT; break; case ERR_FDC_SUCCESS: e=ERR_SUCCESS; } - if (e) { ret_cache_std(e); return; } + if (e) { ret_cache(e); return; } if (write(disk_img_fd,rb,rl)!=rl) { dbg(2,"failed cache unload\n"); (void)(close(disk_img_fd)+1); - ret_cache_std(ERR_DEFECTIVE); + ret_cache(ERR_DEFECTIVE); return; } + default: ret_cache(ERR_PARAM); return; } (void)(close(disk_img_fd)+1); dbg_b(3,rb,rl); - ret_cache_std(ERR_SUCCESS); -} - -/* Emulating access to the main data area is pretty straightforward, but the - * metadata area (or maybe it should be called a mode?) is mostly a mystery. - * So we aren't really implementing the full whatever a real drive does for - * metadata read/write, because we don't know what a real drive does. We just - * recognize one magic value for "offset" (which is probably not actually an - * offset while in metadata mode, but just 2 bytes with some other meaning), - * and treat that as an otherwise ordinary access but to the 4-byte metadata - * field instead of the main data field, and just return "success" for all - * other access to the metadata area without actually doing anything. - * Since all other observed accesses to the metadata area are always just writes - * without matching reads, and the data is always the same, it suggests these - * other writes are not storing data but issuing commands to control the drive. + ret_cache(ERR_SUCCESS); +} + +/* Emulating access to the sector cache is straightforward. + * Emulating access to the cpu memory is less so. + * + * The command allows to read from anywhere in the cpus address space, + * but we wouldn't know what to return for much of that. + * + * We recognize a few special addresses and just return "success" + * for all other access to the cpu area without actually doing anything. + * + * cpu memory map: + * 0000-001F cpu i/o port + * 0080-00FF cpu internal ram 128 bytes + * 4000-4002 gate array (floppy controller) + * 8000-87FF ram 2k bytes + * F000-FFFF cpu internal rom 4k bytes * - * Some metadata accesses from common clients, not including ZZ or checksum: - * "metadatat access" = command 0x31 or 0x32, area/mode 0x01 + * Some cpu_memory writes observed from common clients, not including ZZ or checksum: * - * BACKUP.BA len area offset data + * fmt len area offset data + * BACKUP.BA * 0x31, 0x04, 0x01, 0x00,0x83, 0x00, * 0x31, 0x04, 0x01, 0x00,0x96, 0x00, * 0x31, 0x07, 0x01, 0x80,0x04, 0x16,0x00,0x00,0x00 (data varies) this is the only one we actually do anything @@ -1413,51 +1422,58 @@ void req_cache_load(unsigned char *b) { * 0x31, 0x04, 0x01, 0x00,0x84, 0xFF, * 0x31, 0x04, 0x01, 0x00,0x96, 0x0F, * 0x31, 0x04, 0x01, 0x00,0x94, 0x0F, + * + * pdd2 service manual p102 says: + * Reset Drive Status + * write FF to 0084 + * write 0F to 0096 + * write 0F to 0094 + * */ /* * req: - * b[0] fmt req_cache_read + * b[0] fmt req_mem_read * b[1] len 4 - * b[2] area 0=data 1=meta + * b[2] area 0=sector_cache 1=cpu_memory * b[3] offset msb 0000-0500 * b[4] offset lsb * b[5] dlen 00-FC * b[6] chk * * ret: - * b[0] fmt ret_cache_read + * b[0] fmt ret_mem_read * b[1] len (dlen+3) - * b[2] area 0=data 1=meta + * b[2] area 0=sector_cache 1=cpu_memory * b[3] offset msb * b[4] offset lsb * b[5+] data dlen bytes * b[#] chk */ -void req_cache_read(unsigned char *b) { +void req_mem_read(unsigned char *b) { dbg(3,"%s()\n",__func__); if (model==1) return; int a = b[2]; int o = b[3]*256+b[4]; int l = b[5]; int e = -1; - dbg(2,"cache_read: area:%u offset:%u len:%u\n",a,o,l); + dbg(2,"mem_read: area:%u offset:%u len:%u\n",a,o,l); switch (a) { - case CACHE_AREA_DATA: + case MEM_CACHE: if (o+l>SECTOR_DATA_LEN || l>PDD2_CACHE_READ_MAX) e=ERR_PARAM; o+=PDD2_SECTOR_META_LEN; // shift offset past metadata field break; - case CACHE_AREA_META: + case MEM_CPU: if (o==PDD2_META_ADDR) { o=0; if (l>PDD2_SECTOR_META_LEN) e=ERR_PARAM; } // set offset to start of metadata field else e=ERR_PARAM; // this is wrong, real drive returns all kinds of data break; default: e=ERR_PARAM; } - if (e!=-1) { ret_cache_std(e); return; } + if (e!=-1) { ret_cache(e); return; } dbg(3,"offset:%u len:%u\n",o,l); // copy some data from rb[] and return to client - gb[0]=RET_CACHE_READ; + gb[0]=RET_MEM_READ; gb[1]=3+l; // len = area + omsb + olsb + data gb[2]=b[2]; // area gb[3]=b[3]; // offset msb @@ -1469,20 +1485,17 @@ void req_cache_read(unsigned char *b) { } /* - * TPDD2 sector cache write - * Previously called "TS-DOS mystery command 1" and had a canned response, - * now actually implements the function. - * Aside from being a normal PDD2 sector-access command, TS-DOS uses it just to detect TPDD2 + * TPDD2 mem write * * b[0] fmt * b[1] len - * b[2] area - * b[3] offset msb - * b[4] offset lsb + * b[2] area 0=sector_cache 1=cpu_memory + * b[3] addr msb - address or offset, 2 bytes + * b[4] addr lsb * b[5+] data * b[#] chk */ -void req_cache_write(unsigned char *b) { +void req_mem_write(unsigned char *b) { dbg(3,"%s()\n",__func__); if (model==1) return; int a = b[2]; @@ -1492,17 +1505,17 @@ void req_cache_write(unsigned char *b) { int e = -1; dbg(2,"cache_write: area:%u offset:%u len:%u\n",a,o,l); switch (a) { - case CACHE_AREA_DATA: + case MEM_CACHE: if (o+l>SECTOR_DATA_LEN || l>PDD2_CACHE_WRITE_MAX) e=ERR_PARAM; o+=PDD2_SECTOR_META_LEN; // shift offset past metadata field break; - case CACHE_AREA_META: + case MEM_CPU: if (o==PDD2_META_ADDR) { o=0 ;if (l>PDD2_SECTOR_META_LEN) e=ERR_PARAM; } // set offset to start of metadata field else e=ERR_SUCCESS; // thumbs-up but don't actually do anything break; default: e=ERR_PARAM; } - if (e!=-1) { ret_cache_std(e); return; } + if (e!=-1) { ret_cache(e); return; } dbg(3,"offset:%u len:%u\n",o,l); // copy data from client over part of rb[] @@ -1510,49 +1523,66 @@ void req_cache_write(unsigned char *b) { dbg_b(3,rb,mlen+dlen); memcpy(rb+o,b+s,l); dbg_b(3,rb,mlen+dlen); - ret_cache_std(ERR_SUCCESS); + ret_cache(ERR_SUCCESS); } /* - * Another part of TS-DOS's drive/server capabilities detection scheme. - * Previously called "TS-DOS mystery command 2" - * The actual intended function of the command in a real drive is unknown. - * The meaning of the response is unknown. - * But the command apparently takes no parameters, and a real TPDD2 always - * responds with the same string of bytes, and TPDD1 ignores it. + * PDD2 get version + * * Not including the ZZ or checksums: * Client sends : 23 00 * TPDD2 responds: 14 0F 41 10 01 00 50 05 00 02 00 28 00 E1 00 00 00 * TPDD1 does not respond. + * + * Some versions of TS-DOS use this to detect TPDD2, matching the entire packet, + * so we have to return this exact canned data if we want TS-DOS to know + * that it can use TPDD2 features. (not a big deal really) + * */ -void ret_pdd2_unk23() { +void ret_version() { dbg(3,"%s()\n",__func__); if (model==1) return; - static unsigned char canned[] = UNK23_RET_DAT; - memcpy(gb, canned, canned[1]+2); - gb[canned[1]+2] = checksum(gb); - write_client_tty(gb, gb[1]+3); + gb[0]=RET_VERSION; + gb[1]=0x0F; + gb[2]=VERSION_MSB; + gb[3]=VERSION_LSB; + gb[4]=SIDES; + gb[5]=TRACKS_MSB; + gb[6]=TRACKS_LSB; + gb[7]=SECTOR_SIZE_MSB; + gb[8]=SECTOR_SIZE_LSB; + gb[9]=SECTORS_PER_TRACK; + gb[10]=DIRENTS_MSB; + gb[11]=DIRENTS_LSB; + gb[12]=MAX_FD; + gb[13]=MODEL; + gb[14]=VERSION_R0; + gb[15]=VERSION_R1; + gb[16]=VERSION_R2; + gb[17]=checksum(gb); + write_client_tty(gb,18); } /* - * Similar to unk23, except the response is different, and not used by TS-DOS. - * Nothing is known to use this command. It was just found by feeding arbitrary - * commands to a real drive with github/bkw777/pdd.sh - * 0x11 and 0x33 both produce the same response. Possibly 0x11 and 0x33 are - * just different versions of the same function, like how 0x4# commands are - * really just 0x0# commands for bank 1 instead of bank 0? Just a guess. - * not counting ZZ or checksums: - * Client sends : 11 00 - * or sends : 33 00 + * Similar to ret_version, except the response is different, and not used by TS-DOS. + * Real drives also respond to request 0x11 exactly the same as 0x33, though only 0x33 is documented. + * Not counting ZZ or checksums: + * Client sends : 33 00 * TPDD2 responds: 3A 06 80 13 05 00 10 E1 */ -void ret_pdd2_unk11() { +void ret_sysinfo() { dbg(3,"%s()\n",__func__); if (model==1) return; - static unsigned char canned[] = UNK11_RET_DAT; - memcpy(gb, canned, canned[1]+2); - gb[canned[1]+2] = checksum(gb); - write_client_tty(gb, gb[1]+3); + gb[0]=RET_SYSINFO; + gb[1]=0x06; + gb[2]=SECTOR_CACHE_START_MSB; + gb[3]=SECTOR_CACHE_START_LSB; + gb[4]=SECTOR_CACHE_LEN_MSB; + gb[5]=SECTOR_CACHE_LEN_LSB; + gb[6]=SYSINFO_CPU; + gb[7]=MODEL; + gb[8]=checksum(gb); + write_client_tty(gb,9); } void req_rename(unsigned char *b) { @@ -1575,8 +1605,9 @@ void req_close() { ret_std(ERR_SUCCESS); } -void req_status() { - dbg(2,"%s()\n",__func__); +void req_status(uint8_t fmt) { + dbg(2,"%s(0x%02X)\n",__func__,fmt); + if (fmt>REQ_STATUS && model!=1) return; ret_std(ERR_SUCCESS); } @@ -1633,6 +1664,63 @@ void req_format() { ret_std(ERR_SUCCESS); } +/* + * req_exec() - execute program + * + * Just a stub. Not likely to impliment any time soon, + * but might as well put the stub in to document it. + * + * TPDD2 IPL uses this + */ + +/* response from req_exec() + * returns the execution results from the cpu A and X registers + * b[0] fmt (0x3B) + * b[1] len (0x03) + * b[2] reg A - 1 byte + * b[3] reg X msb - 2 bytes + * b[4] reg X lsb + * b[5] chk +*/ +void ret_exec(uint8_t reg_A, uint16_t reg_X) { + dbg(3,"%s(%u,%u)\n",__func__,reg_A,reg_X); + gb[0]=RET_EXEC; + gb[1]=0x03; + gb[2]=reg_A; + gb[3]=(uint8_t)(reg_X >> 0x08); // msb + gb[4]=(uint8_t)(reg_X & 0xFF); // lsb + gb[5]=checksum(gb); + write_client_tty(gb,6); +} + +/* Loads cpu registers A and X with supplied values, then jumps to supplied address. + * + * To supply the code/data (instead of running some part of the rom), + * use mem_write() to write data to cpu memory before this. + * + * b[0] fmt (0x34) + * b[1] len (0x05) + * b[2] addr msb - execute address 2 bytes + * b[3] addr lsb + * b[4] reg A - 1 byte + * b[5] reg X msb - 2 bytes + * b[6] reg X lsb + * b[7] chk + */ +void req_exec(unsigned char *b) { + dbg(3,"%s()\n",__func__); + if (model==1) return; + uint16_t addr = b[2]*256+b[3]; + uint8_t reg_A = b[4]; + uint16_t reg_X = b[5]*256+b[6]; + dbg(2,"exec: addr:%u A:%u X:%u\n",addr,reg_A,reg_X); + /* + * ...6301 emulator here... + * executed code leaves new values in reg_A and reg_X + */ + ret_exec(reg_A,reg_X); +} + void get_opr_cmd(void) { dbg(3,"%s()\n",__func__); unsigned char b[TPDD_DATA_MAX] = {0x00}; @@ -1649,7 +1737,7 @@ void get_opr_cmd(void) { dbg_p(3,b); if ((i=checksum(b))!=b[b[1]+2]) { - dbg(0,"Failed checksum: received: %02X calculated: %02X\n",b[b[1]+2],i); + dbg(0,"Failed checksum: received: 0x%02X calculated: 0x%02X\n",b[b[1]+2],i); return; // real drive does not return anything } @@ -1657,24 +1745,33 @@ void get_opr_cmd(void) { // dispatch switch(b[0]) { + case REQ_DIRENT+0x40: case REQ_DIRENT: req_dirent(b); break; + case REQ_OPEN+0x40: case REQ_OPEN: req_open(b); break; + case REQ_CLOSE+0x40: case REQ_CLOSE: req_close(); break; + case REQ_READ+0x40: case REQ_READ: req_read(); break; + case REQ_WRITE+0x40: case REQ_WRITE: req_write(b); break; + case REQ_DELETE+0x40: case REQ_DELETE: req_delete(); break; case REQ_FORMAT: req_format(); break; - case REQ_STATUS: req_status(); break; + case REQ_STATUS+0x40: + case REQ_STATUS: req_status(b[0]); break; case REQ_FDC: req_fdc(); break; case REQ_CONDITION: req_condition(); break; + case REQ_RENAME+0x40: case REQ_RENAME: req_rename(b); break; - case REQ_PDD2_UNK23: ret_pdd2_unk23(); break; - case REQ_CACHE_LOAD: req_cache_load(b); break; - case REQ_CACHE_READ: req_cache_read(b); break; - case REQ_CACHE_WRITE: req_cache_write(b); break; - case REQ_PDD2_UNK11: ret_pdd2_unk11(); break; - case REQ_PDD2_UNK33: ret_pdd2_unk11(); break; - default: dbg(1,"OPR: unknown cmd \"%02X\"\n",b[0]); if (debug<3) dbg_p(2,b); + case REQ_VERSION: ret_version(); break; + case REQ_CACHE: req_cache(b); break; + case REQ_MEM_READ: req_mem_read(b); break; + case REQ_MEM_WRITE: req_mem_write(b); break; + case REQ_UNDOC11: + case REQ_SYSINFO: ret_sysinfo(); break; + case REQ_EXEC: req_exec(b); break; + default: dbg(1,"OPR: unknown cmd \"0x%02X\"\n",b[0]); dbg_p(1,b); // local msg, nothing to client } } From 7dcd6d7b87061d16b049f3fa21701f27aa002270 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 13 Jan 2024 01:39:54 -0500 Subject: [PATCH 137/206] PAKDOS.100 --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index d564738..d0ebdc7 100644 --- a/Makefile +++ b/Makefile @@ -26,6 +26,7 @@ CLIENT_LOADERS := \ clients/ts-dos/TS-DOS.100 \ clients/ts-dos/TS-DOS.200 \ clients/ts-dos/TS-DOS.NEC \ + clients/pakdos/PAKDOS.100 \ clients/pakdos/PAKDOS.200 \ clients/disk_power/Disk_Power.K85 \ # clients/power-dos/POWR-D.100 From 0b9647e1d895fd8a3281f3491fdff50f1af0f683 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 13 Jan 2024 01:40:52 -0500 Subject: [PATCH 138/206] wip --- constants.h | 8 ++++---- dl.c | 44 ++++++++++++++++++++++++++------------------ 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/constants.h b/constants.h index 522c865..a56a4e6 100644 --- a/constants.h +++ b/constants.h @@ -147,7 +147,7 @@ #define PDD1_SECTORS 2 #define PDD2_TRACKS 80 #define PDD2_SECTORS 2 -#define TPDD_DATA_MAX 260 // largest packet is cache_read can be 256+3 +#define TPDD_DATA_MAX 260 // largest possible packet is 256+3 #define REQ_RW_DATA_MAX 128 // largest chunk size in req_read() req_write() #define LEN_RET_STD 0x01 #define LEN_RET_DME 0x0B @@ -162,9 +162,9 @@ #define SMT_OFFSET 1240 #define PDD1_SMT 0x80 #define PDD2_SMT 0xC0 -#define PDD2_META_ADDR 32772 -#define PDD2_CACHE_READ_MAX 252 -#define PDD2_CACHE_WRITE_MAX 127 +#define PDD2_META_ADDR 0x8004 +#define PDD2_MEM_READ_MAX 252 +#define PDD2_MEM_WRITE_MAX 127 // TPDD2 version data: 41 10 01 00 50 05 00 02 00 28 00 E1 00 00 00 #define VERSION_MSB 0x41 diff --git a/dl.c b/dl.c index 58da726..1153347 100644 --- a/dl.c +++ b/dl.c @@ -774,7 +774,7 @@ void get_fdc_cmd(void) { } // read params - while (i<6 && !eol) { // if we get out of sync (i>5), just fall through to restart + while (i<5 && !eol) { // if we get out of sync (i>4), just fall through to restart if (read_client_tty(&b[i],1)==1) { dbg(3,"i:%d b:\"%s\"\n",i,b); switch (b[i]) { @@ -1313,7 +1313,7 @@ void req_delete(void) { // also the return format for mem_write and undocumented 0x0F -void ret_cache(int e) { +void ret_cache(uint8_t e) { dbg(3,"%s()\n",__func__); gb[0]=RET_CACHE; gb[1]=0x01; @@ -1343,7 +1343,7 @@ void req_cache(unsigned char *b) { dbg(3,"%s(action=%u track=%u sector=%u)\n",__func__,b[2],b[4],b[6]); if (model==1) return; int a=b[2]; - int t=b[3]*256+b[4]; + int t=b[4]; // t=b[3]*256+b[4]; //int d=b[5]; int s=b[6]; if (t>=PDD2_TRACKS || s>=PDD2_SECTORS) { ret_cache(ERR_PARAM); return; } @@ -1372,7 +1372,7 @@ void req_cache(unsigned char *b) { break; case CACHE_COMMIT: // write cache to disk case CACHE_COMMIT_VERIFY: // write cache to disk and verify - dbg(2,"cache unload: track:%u sector:%u\n",t,s); + dbg(2,"cache commit: track:%u sector:%u\n",t,s); e = open_disk_image (rn, O_WRONLY, NO_RET ); switch (e) { // convert the FDC error codes to equivalent OPR error codes case ERR_FDC_NO_DISK: e=ERR_NO_DISK; break; @@ -1382,7 +1382,7 @@ void req_cache(unsigned char *b) { } if (e) { ret_cache(e); return; } if (write(disk_img_fd,rb,rl)!=rl) { - dbg(2,"failed cache unload\n"); + dbg(2,"failed cache commit\n"); (void)(close(disk_img_fd)+1); ret_cache(ERR_DEFECTIVE); return; @@ -1453,14 +1453,14 @@ void req_cache(unsigned char *b) { void req_mem_read(unsigned char *b) { dbg(3,"%s()\n",__func__); if (model==1) return; - int a = b[2]; - int o = b[3]*256+b[4]; - int l = b[5]; + uint8_t a = b[2]; + uint16_t o = b[3]*256+b[4]; + uint8_t l = b[5]; int e = -1; dbg(2,"mem_read: area:%u offset:%u len:%u\n",a,o,l); switch (a) { case MEM_CACHE: - if (o+l>SECTOR_DATA_LEN || l>PDD2_CACHE_READ_MAX) e=ERR_PARAM; + if (o+l>SECTOR_DATA_LEN || l>PDD2_MEM_READ_MAX) e=ERR_PARAM; o+=PDD2_SECTOR_META_LEN; // shift offset past metadata field break; case MEM_CPU: @@ -1498,15 +1498,15 @@ void req_mem_read(unsigned char *b) { void req_mem_write(unsigned char *b) { dbg(3,"%s()\n",__func__); if (model==1) return; - int a = b[2]; - int o = b[3]*256+b[4]; - int s = 5; // start of data - int l = b[1]-3; // length of data = length of packet - area - omsb - olsb + uint8_t a = b[2]; + uint16_t o = b[3]*256+b[4]; + uint8_t s = 5; // start of data + uint8_t l = b[1]-3; // length of data = length of packet - area - omsb - olsb int e = -1; - dbg(2,"cache_write: area:%u offset:%u len:%u\n",a,o,l); + dbg(2,"mem_write: area:%u offset:%u len:%u\n",a,o,l); switch (a) { case MEM_CACHE: - if (o+l>SECTOR_DATA_LEN || l>PDD2_CACHE_WRITE_MAX) e=ERR_PARAM; + if (o+l>SECTOR_DATA_LEN || l>PDD2_MEM_WRITE_MAX) e=ERR_PARAM; o+=PDD2_SECTOR_META_LEN; // shift offset past metadata field break; case MEM_CPU: @@ -1802,15 +1802,23 @@ void show_bootstrap_help() { ,args[0]); } -void slowbyte(char b) { +// hardcoded vt codes, sorry +//void showbyte(const int v,uint8_t b) { +void showbyte(uint8_t b) { + //if (debug126) dbg(0,"\033[7m^%02X\033[m",b); + else dbg(0,"%c",b); +} + +void slowbyte(uint8_t b) { write_client_tty(&b,1); tcdrain(client_tty_fd); usleep(BASIC_byte_us); if (debug) { // local display nicely regardless if CR, LF, or CRLF if (b!=LOCAL_EOL && ch[0]==LOCAL_EOL) {ch[0]=0x00; dbg(0,"%c%c",LOCAL_EOL,b);} else if (b==LOCAL_EOL || b==BASIC_EOL) ch[0]=LOCAL_EOL; - else if (b<32 || b>126) dbg(0,"\033[7m^%02X\033[m",b); // hardcoded ansi/vt codes, sorry - else dbg(0,"%c",b); + else showbyte(b); } } From 1be01edb61d0221b25ce8b8eaeaa67ee90e00b54 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 13 Jan 2024 01:41:53 -0500 Subject: [PATCH 139/206] PAKDOS.100 --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index d564738..d0ebdc7 100644 --- a/Makefile +++ b/Makefile @@ -26,6 +26,7 @@ CLIENT_LOADERS := \ clients/ts-dos/TS-DOS.100 \ clients/ts-dos/TS-DOS.200 \ clients/ts-dos/TS-DOS.NEC \ + clients/pakdos/PAKDOS.100 \ clients/pakdos/PAKDOS.200 \ clients/disk_power/Disk_Power.K85 \ # clients/power-dos/POWR-D.100 From 9bb93a869cc1b4a477392f34a913392f4d090cc6 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 13 Jan 2024 02:16:58 -0500 Subject: [PATCH 140/206] rename D_WEENY.100 to D.100 --- Makefile | 2 +- clients/teeny/{D_WEENY.100 => D.100} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename clients/teeny/{D_WEENY.100 => D.100} (100%) diff --git a/Makefile b/Makefile index d0ebdc7..0c475e8 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ APP_VERSION := $(shell git describe --long 2>&-) CLIENT_LOADERS := \ clients/teeny/TINY.100 \ - clients/teeny/D_WEENY.100 \ + clients/teeny/D.100 \ clients/teeny/TEENY.100 \ clients/teeny/TEENY.200 \ clients/teeny/TEENY.NEC \ diff --git a/clients/teeny/D_WEENY.100 b/clients/teeny/D.100 similarity index 100% rename from clients/teeny/D_WEENY.100 rename to clients/teeny/D.100 From 9d97ef860bb8b5a1065556866313bd8462e0af2c Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sun, 14 Jan 2024 17:06:19 -0500 Subject: [PATCH 141/206] wip --- Makefile | 2 +- clients/teeny/{D_WEENY.100 => D.100} | 0 dl.c | 51 +++++++++++++++------------- 3 files changed, 29 insertions(+), 24 deletions(-) rename clients/teeny/{D_WEENY.100 => D.100} (100%) diff --git a/Makefile b/Makefile index d0ebdc7..0c475e8 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ APP_VERSION := $(shell git describe --long 2>&-) CLIENT_LOADERS := \ clients/teeny/TINY.100 \ - clients/teeny/D_WEENY.100 \ + clients/teeny/D.100 \ clients/teeny/TEENY.100 \ clients/teeny/TEENY.200 \ clients/teeny/TEENY.NEC \ diff --git a/clients/teeny/D_WEENY.100 b/clients/teeny/D.100 similarity index 100% rename from clients/teeny/D_WEENY.100 rename to clients/teeny/D.100 diff --git a/dl.c b/dl.c index 1153347..89f9de1 100644 --- a/dl.c +++ b/dl.c @@ -142,7 +142,7 @@ int client_tty_fd = -1; int disk_img_fd = -1; struct termios client_termios; int o_file_h = -1; -unsigned char gb[TPDD_DATA_MAX]; +uint8_t gb[TPDD_DATA_MAX]; char cwd[PATH_MAX] = {0x00}; char dme_cwd[7] = DEFAULT_DME_ROOT_LABEL; char bootstrap_fname[PATH_MAX] = {0x00}; @@ -153,9 +153,9 @@ bool dme_disabled = false; char ch[2] = {0xFF}; uint8_t mlen = PDD2_SECTOR_META_LEN; const uint16_t dlen = SECTOR_DATA_LEN; -const int fdc_logical_size_codes[] = FDC_LOGICAL_SIZE_CODES; +const uint16_t fdc_logical_size_codes[] = FDC_LOGICAL_SIZE_CODES; const char fdc_cmds[] = FDC_CMDS; -unsigned char * rb = 0x00; +uint8_t * rb = 0x00; FILE_ENTRY *cur_file; int dir_depth=0; @@ -607,6 +607,7 @@ void req_fdc_read_id(int p) { // tl = target logical sector void req_fdc_read_sector(int tp,int tl) { dbg(2,"%s(%d,%d)\n",__func__,tp,tl); + if (open_disk_image(tp,O_RDONLY,ALLOW_RET)) return; // open & seek to tp if (read(disk_img_fd,rb,mlen)!=mlen) { // read header dbg(1,"failed read header\n"); @@ -758,12 +759,15 @@ void get_fdc_cmd(void) { char b[6] = {0x00}; unsigned i = 0; bool eol = false; - char c = 0x00; + uint8_t c = 0x00; int p = -1; int l = -1; - // see if the command byte was collected already by req_fdc() - if (gb[0]>0x00 && gb[0]!=FDC_CMD_EOL && gb[1]==0x00) c=gb[0]; + // before we reset gb[], see if a command byte was collected already by req_fdc() + if (gb[0]>0x00 && gb[0]!=FDC_CMD_EOL && gb[1]==0x00) { + c=gb[0]; + dbg(3,"Command \"%b\" from req_fdc()\n",c); + } memset(gb,0x00,TPDD_DATA_MAX); // scan for a valid command byte first @@ -774,7 +778,8 @@ void get_fdc_cmd(void) { } // read params - while (i<5 && !eol) { // if we get out of sync (i>4), just fall through to restart + i = 0; + while (i<6 && !eol) { // if we get out of sync (i>5), just fall through to restart if (read_client_tty(&b[i],1)==1) { dbg(3,"i:%d b:\"%s\"\n",i,b); switch (b[i]) { @@ -1138,7 +1143,7 @@ void req_fdc() { dbg(3,"dme detected\n"); ret_dme_cwd(); } else { - //if (model==2) { ret_std(ERR_PARAM); return; } // real tpdd2 returns + if (model==2) { ret_std(ERR_PARAM); return; } // real tpdd2 does this opr_mode = 0; dbg(1,"Switching to \"FDC\" mode\n"); // no response to client, just switch modes } @@ -1724,14 +1729,14 @@ void req_exec(unsigned char *b) { void get_opr_cmd(void) { dbg(3,"%s()\n",__func__); unsigned char b[TPDD_DATA_MAX] = {0x00}; - unsigned i = 0; + uint16_t i = 0; memset(gb,0x00,TPDD_DATA_MAX); while (read_client_tty(&b,1) == 1) { if (b[0]==OPR_CMD_SYNC) i++; else { i=0; b[0]=0x00; continue; } if (i<2) { b[0]=0x00; continue; } if (read_client_tty(&b,2) == 2) if (read_client_tty(&b[2],b[1]+1) == b[1]+1) break; - i=0; memset(b,0x00,TPDD_DATA_MAX ); + i=0; memset(b,0x00,TPDD_DATA_MAX); } dbg_p(3,b); @@ -1802,29 +1807,27 @@ void show_bootstrap_help() { ,args[0]); } -// hardcoded vt codes, sorry -//void showbyte(const int v,uint8_t b) { -void showbyte(uint8_t b) { - //if (debug126) dbg(0,"\033[7m^%02X\033[m",b); - else dbg(0,"%c",b); -} - void slowbyte(uint8_t b) { write_client_tty(&b,1); tcdrain(client_tty_fd); usleep(BASIC_byte_us); if (debug) { // local display nicely regardless if CR, LF, or CRLF - if (b!=LOCAL_EOL && ch[0]==LOCAL_EOL) {ch[0]=0x00; dbg(0,"%c%c",LOCAL_EOL,b);} - else if (b==LOCAL_EOL || b==BASIC_EOL) ch[0]=LOCAL_EOL; - else showbyte(b); + if (ch[0]==BASIC_EOL) { + ch[0]=0x00; + dbg(0,"%c",LOCAL_EOL); + if (b==LOCAL_EOL) return; + } + if (b==BASIC_EOL) { ch[0]=BASIC_EOL; return; } + //if (b<32) { dbg(0,"\033[7m^%c\033[m",b+64); return; } + //if (b>126) { dbg(0,"\033[7m%02X\033[m",b); return; } + if (b<32||b>126) { dbg(0,"\033[7m%02X\033[m",b); return; } + dbg(0,"%c",b); } } int send_BASIC(char *f) { int fd; - char b; + uint8_t b; if ((fd=open(f,O_RDONLY))<0) { dbg(1,"Could not open \"%s\" : %s\n",f,errno); @@ -1832,7 +1835,9 @@ int send_BASIC(char *f) { } dbg(0,"Sending \"%s\" ... ",f); + //dbg(1,"%c F",27); // disable 8-bit vtxx control codes (0x80-0x9F) so we can display them dbg(1,"\n"); + ch[0]=0x00; while(read(fd,&b,1)==1) slowbyte(b); close(fd); if (dot_offset) { // if not in raw mode supply missing trailing EOF & EOL From 08e9a6fc2054b478d32fbc6b2891707f52abdbec Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sun, 14 Jan 2024 23:06:21 -0500 Subject: [PATCH 142/206] comments --- dl.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/dl.c b/dl.c index 89f9de1..6ec06ea 100644 --- a/dl.c +++ b/dl.c @@ -1123,8 +1123,8 @@ void ret_dme_cwd() { // Any FDC request might actually be a DME request // See ref/dme.txt for the full explaination because it's a lot. -// dme_fdc is only retained for the duration of one directory listing -// dme_detected is retained forever +// dme_fdc = Is the current FDC request a DME request? Retained during one dir listing. +// dme_detected = Have we ever recieved a DME request? Retained forever. void req_fdc() { dbg(2,"%s()\n",__func__); dbg(3,"dme detection %s\n",dme_disabled?"disabled":"allowed"); @@ -1143,7 +1143,7 @@ void req_fdc() { dbg(3,"dme detected\n"); ret_dme_cwd(); } else { - if (model==2) { ret_std(ERR_PARAM); return; } // real tpdd2 does this + //if (model==2) { ret_std(ERR_PARAM); return; } // real tpdd2 does this opr_mode = 0; dbg(1,"Switching to \"FDC\" mode\n"); // no response to client, just switch modes } @@ -1645,9 +1645,13 @@ void req_format() { // write the image // Real drive TPDD1 fresh OPR-mode format is strange. - // Sector 0 gets logical size code 0, and all other sectors get lsc 1. - // We exactly mimick that here "just because", even though the lsc 1s - // don't seem to serve any purpose or have any effect. + // Any sector with any data gets LSC 0, and all others get LSC 1. + // Later, any sector that gets used by a file gets changed from LSC 1 to + // LSC 0, and never changed back even when files are deleted. + // A fresh format has one byte of data in sector 0 in the SMT. + // So a fresh format sector 0 has LSC 0 and all other sectors have LSC 1. + // We exactly mimick that here "just because", even though the LSC 1s + // don't seem to actually matter and we could just make all LSC 0. for (rn=0;rn Date: Sun, 14 Jan 2024 23:29:03 -0500 Subject: [PATCH 143/206] ifdef bootstrap debug display options --- Makefile | 2 ++ dl.c | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 0c475e8..a554470 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,8 @@ OS ?= $(shell uname) CC ?= gcc CFLAGS += -O2 -Wall #CFLAGS += -std=c99 -D_DEFAULT_SOURCE # prove the code is still plain c +#CFLAGS += SHOWBYTES_A # bootstrap() display non-printing bytes differently +#CFLAGS += SHOWBYTES_B # bootstrap() display non-printing bytes differently PREFIX ?= /usr/local APP_NAME := dl APP_LIB_DIR := $(PREFIX)/lib/$(APP_NAME) diff --git a/dl.c b/dl.c index 6ec06ea..58b4d03 100644 --- a/dl.c +++ b/dl.c @@ -1827,9 +1827,19 @@ void slowbyte(uint8_t b) { if (b==LOCAL_EOL) return; } if (b==BASIC_EOL) { ch[0]=BASIC_EOL; return; } - //if (b<32) { dbg(0,"\033[7m^%c\033[m",b+64); return; } - //if (b>126) { dbg(0,"\033[7m%02X\033[m",b); return; } +#if defined(SHOWBYTES_A) + // show <32 as inverse "^X", >126 as inverse hex pair + if (b<32) { dbg(0,"\033[7m^%c\033[m",b+64); return; } + if (b>126) { dbg(0,"\033[7m%02X\033[m",b); return; } +#elseif defined(SHOWBYTES_B) + // show <32 and 127 as inverse ctrl char without ^ + // show everything else as-is, requires disable 8bit vt ctrl codes + if (b<32) { dbg(0,"\033[7m%c\033[m",b+64); return; } + if (b==127) { dbg(0,"\033[7m?\033[m"); return; } +#else + // show all non-ascii as inverse hex pair if (b<32||b>126) { dbg(0,"\033[7m%02X\033[m",b); return; } +#endif dbg(0,"%c",b); } } @@ -1844,7 +1854,9 @@ int send_BASIC(char *f) { } dbg(0,"Sending \"%s\" ... ",f); - //dbg(1,"%c F",27); // disable 8-bit vtxx control codes (0x80-0x9F) so we can display them +#if defined(SHOWBYTES_B) + dbg(1,"%c F",27); // disable 8-bit vtxx control codes (0x80-0x9F) so we can display them +#endif dbg(1,"\n"); ch[0]=0x00; while(read(fd,&b,1)==1) slowbyte(b); From a46674ff686909ea9f50e210f1a0ffae10629171 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sun, 14 Jan 2024 23:44:29 -0500 Subject: [PATCH 144/206] help text --- dl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dl.c b/dl.c index 58b4d03..44896bc 100644 --- a/dl.c +++ b/dl.c @@ -1884,7 +1884,7 @@ int bootstrap(char *f) { dbg(0,"Prepare the client to receive data." "\n" "Note: The current baud setting, %d, is not supported\n" - "by the TRS-80 Model 100 or other KC-85 platform machines.\n" + "by the TRS-80 Model 100 or other KC-85-platform machines.\n" "There is no way for BASIC or TELCOM to use this baud rate.\n",get_int_baud()); } else { strcpy(t,f); @@ -1962,7 +1962,7 @@ void show_main_help() { " -i file Disk image file for raw sector access, TPDD1 only\n" " -l List loader files and show bootstrap help\n" " -m model Model: 1 for TPDD1, 2 for TPDD2 (2)\n" - " -p dir Share path - directory with files to be served (.)\n" + " -p dir Share path - directory with files to be served (./)\n" " -r RTS/CTS hardware flow control\n" " -s # Speed - serial port baud rate 9600 or 19200 (19200)\n" " -u Uppercase all filenames\n" From 554d40a2984aea39184e33e36a637affe943d090 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 15 Jan 2024 01:58:32 -0500 Subject: [PATCH 145/206] comments --- dl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dl.c b/dl.c index 44896bc..39be831 100644 --- a/dl.c +++ b/dl.c @@ -1648,8 +1648,8 @@ void req_format() { // Any sector with any data gets LSC 0, and all others get LSC 1. // Later, any sector that gets used by a file gets changed from LSC 1 to // LSC 0, and never changed back even when files are deleted. - // A fresh format has one byte of data in sector 0 in the SMT. - // So a fresh format sector 0 has LSC 0 and all other sectors have LSC 1. + // A fresh format has one byte of data in sector 0 in the SMT, + // so a fresh format sector 0 has LSC 0 and all other sectors have LSC 1. // We exactly mimick that here "just because", even though the LSC 1s // don't seem to actually matter and we could just make all LSC 0. for (rn=0;rn Date: Mon, 15 Jan 2024 02:05:24 -0500 Subject: [PATCH 146/206] comments --- constants.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/constants.h b/constants.h index a56a4e6..7e4f1ce 100644 --- a/constants.h +++ b/constants.h @@ -21,11 +21,11 @@ #define REQ_EXT_QUERY 0x0E // ??? Maybe NADSBox also, compliment of REQ_SET_EXT ? #define REQ_COND_LIST 0x0F // ??? - TPDD2 responds RET_CACHE #define REQ_UNDOC11 0x11 // TPDD2 undocumented synonym for REQ_PDD2_SYSINFO -#define REQ_VERSION 0x23 // TPDD2 Get Version Number - TPDD2 responds PDD2_VERSION_DAT +#define REQ_VERSION 0x23 // TPDD2 Get Version Number #define REQ_CACHE 0x30 // TPDD2 sector access #define REQ_MEM_WRITE 0x31 // TPDD2 sector access #define REQ_MEM_READ 0x32 // TPDD2 sector access -#define REQ_SYSINFO 0x33 // TPDD2 Get System Information - TPDD2 responds PDD2_SYSINFO_DAT +#define REQ_SYSINFO 0x33 // TPDD2 Get System Information #define REQ_EXEC 0x34 // TPDD2 Execute Program // TPDD return block formats From 1d77bb222fc7d44c47415f7db5dabcca2d593bce Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 15 Jan 2024 02:27:53 -0500 Subject: [PATCH 147/206] comments --- dl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dl.c b/dl.c index 39be831..bea30aa 100644 --- a/dl.c +++ b/dl.c @@ -1569,7 +1569,7 @@ void ret_version() { } /* - * Similar to ret_version, except the response is different, and not used by TS-DOS. + * Similar to ret_version, except different data, and not used by TS-DOS. * Real drives also respond to request 0x11 exactly the same as 0x33, though only 0x33 is documented. * Not counting ZZ or checksums: * Client sends : 33 00 From a64a995452476925cedbf3a2784f0ef97ae9a7f8 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 15 Jan 2024 09:18:16 -0500 Subject: [PATCH 148/206] correct req_status 0x47 tpdd1 vs tpdd2 --- dl.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dl.c b/dl.c index bea30aa..8137603 100644 --- a/dl.c +++ b/dl.c @@ -1610,9 +1610,13 @@ void req_close() { ret_std(ERR_SUCCESS); } +// undocumented but TPDD2 responds to both 0x07 and 0x47 +// TPDD1 ignores 0x47, no error response +// PakDOS uses 0x47, but also falls back to 0x07 if 0x47 didn't work +// possibly as way to detect TPDD2 void req_status(uint8_t fmt) { dbg(2,"%s(0x%02X)\n",__func__,fmt); - if (fmt>REQ_STATUS && model!=1) return; + if (fmt>REQ_STATUS && model==1) return; ret_std(ERR_SUCCESS); } From 25f82e2ae55fd055d9cd36b78c7186b5cec23fe0 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 22 Jan 2024 21:54:16 -0500 Subject: [PATCH 149/206] a few more correct response codes, pointer decorations --- constants.h | 2 +- dir_list.c | 32 +++--- dir_list.h | 10 +- dl.c | 168 +++++++++++++++------------- ref/dme.txt | 308 ++++++++++++---------------------------------------- 5 files changed, 183 insertions(+), 337 deletions(-) diff --git a/constants.h b/constants.h index 7e4f1ce..fb01f8c 100644 --- a/constants.h +++ b/constants.h @@ -104,7 +104,7 @@ #define ERR_FDC_SUCCESS 0 // 'OK' #define ERR_FDC_LSN_LO 17 // 'Logical Sector Number Below Range' #define ERR_FDC_LSN_HI 18 // 'Logical Sector Number Above Range' -#define ERR_FDC_PSN HI 19 // 'Physical Sector Number Above Range' +#define ERR_FDC_PSN_HI 19 // 'Physical Sector Number Above Range' #define ERR_FDC_PARAM 33 // 'Parameter Invalid, Wrong Type' #define ERR_FDC_LSSC_LO 50 // 'Invalid Logical Sector Size Code' #define ERR_FDC_LSSC_HI 51 // 'Logical Sector Size Code Above Range' diff --git a/dir_list.c b/dir_list.c index 905591a..08f4669 100644 --- a/dir_list.c +++ b/dir_list.c @@ -25,12 +25,12 @@ MA 02111, USA. #include #include "dir_list.h" -static uint16_t allocated; -static uint16_t ndx; -static uint16_t cur; -static FILE_ENTRY *tblp = 0; +static uint16_t allocated; +static uint16_t ndx; +static uint16_t cur; +static FILE_ENTRY* tblp = 0; -static FILE_ENTRY * current_record (void); +static FILE_ENTRY* current_record (void); int file_list_init () { tblp = malloc(sizeof (FILE_ENTRY) * FEQ ); @@ -54,27 +54,27 @@ void file_list_clear_all () { cur = ndx = 0; } -int add_file (FILE_ENTRY *fe) { - /** allocate FEQ more records if out of space */ +int add_file (FILE_ENTRY* fe) { + /* allocate FEQ more records if out of space */ if (ndx >= allocated) { - /** resize the array */ + /* resize the array */ tblp = realloc(tblp, (allocated + FEQ) * sizeof (FILE_ENTRY) ); if (!tblp) return -1; allocated += FEQ; } - /** reference the entry */ + /* reference the entry */ if (!tblp) return -1; memcpy(tblp+ndx, fe, sizeof(FILE_ENTRY)); - /** adjust cur to address this record, ndx to next avail */ + /* adjust cur to address this record, ndx to next avail */ cur = ndx; ndx++; return 0; } -FILE_ENTRY * find_file (char *client_fname) { +FILE_ENTRY* find_file (char* client_fname) { int i; for (i=0;i ndx) return NULL; cur++; return current_record(); } -FILE_ENTRY * get_prev_file (void) { +FILE_ENTRY* get_prev_file (void) { if (cur==0) return NULL; cur--; return current_record(); } -static FILE_ENTRY * current_record (void) { - FILE_ENTRY *ep; +static FILE_ENTRY* current_record (void) { + FILE_ENTRY* ep; if (cur >= ndx) return NULL; if (!tblp) return NULL; ep = tblp + cur; diff --git a/dir_list.h b/dir_list.h index f2d1004..9635027 100644 --- a/dir_list.h +++ b/dir_list.h @@ -38,11 +38,11 @@ int file_list_init (); int file_list_cleanup (); void file_list_clear_all (); -int add_file (FILE_ENTRY *fe); +int add_file (FILE_ENTRY* fe); -FILE_ENTRY * find_file (char *client_fname); -FILE_ENTRY * get_first_file (void); -FILE_ENTRY * get_next_file (void); -FILE_ENTRY * get_prev_file (void); +FILE_ENTRY* find_file (char* client_fname); +FILE_ENTRY* get_first_file (void); +FILE_ENTRY* get_next_file (void); +FILE_ENTRY* get_prev_file (void); #endif diff --git a/dl.c b/dl.c index 8137603..ac6268b 100644 --- a/dl.c +++ b/dl.c @@ -136,7 +136,7 @@ bool getty_mode = false; bool bootstrap_mode = false; int model = 2; -char **args; +char** args; int f_open_mode = F_OPEN_NONE; int client_tty_fd = -1; int disk_img_fd = -1; @@ -147,17 +147,16 @@ char cwd[PATH_MAX] = {0x00}; char dme_cwd[7] = DEFAULT_DME_ROOT_LABEL; char bootstrap_fname[PATH_MAX] = {0x00}; int opr_mode = 1; -bool dme_detected = false; -bool dme_fdc = false; +uint8_t dme = 0; bool dme_disabled = false; -char ch[2] = {0xFF}; +char ch[2] = {0xFF}; // 0x00 is a valid OPR command, so init to 0xFF uint8_t mlen = PDD2_SECTOR_META_LEN; const uint16_t dlen = SECTOR_DATA_LEN; const uint16_t fdc_logical_size_codes[] = FDC_LOGICAL_SIZE_CODES; const char fdc_cmds[] = FDC_CMDS; -uint8_t * rb = 0x00; +uint8_t* rb = 0x00; -FILE_ENTRY *cur_file; +FILE_ENTRY* cur_file; int dir_depth=0; void show_main_help(); @@ -179,7 +178,7 @@ void dbg( const int v, const char* format, ... ) { // dbg_b(3, b , 24); // like dbg() except // print the buffer as hex pairs with a single trailing newline // if len<0, then assume the max tpdd buffer TPDD_DATA_MAX -void dbg_b(const int v, unsigned char *b, int n) { +void dbg_b(const int v, unsigned char* b, int n) { if (debug0) dbg(0,"%s",b); @@ -415,13 +414,13 @@ void dcat(char *f) { * b[2] to b[1+len] = 0 to 128 bytes of payload (data block) * ignore everything after b[1+len] */ -unsigned char checksum(unsigned char *b) { +unsigned char checksum(unsigned char* b) { unsigned short s=0; unsigned char i; unsigned char l=2+b[1]; for (i=0;iSECTOR_DATA_LEN) { + (void)(close(disk_img_fd)+1); + ret_fdc_std(ERR_FDC_LSN_HI,tp,l); + return; + } // seek to target_physical*(id_len+physical_len) + id_len + (target_logical-1)*logical_len int s = (tp*(mlen+dlen))+mlen+((tl-1)*l); @@ -634,12 +638,11 @@ void req_fdc_read_sector(int tp,int tl) { ret_fdc_std(ERR_FDC_READ,tp,0); return; } + (void)(close(disk_img_fd)+1); ret_fdc_std(ERR_FDC_SUCCESS,tp,l); // 1st stage response char t=0x00; read_client_tty(&t,1); // read 1 byte from client - if (t!=0x0D) return; // if it's anything but CR, silently abort - write_client_tty(rb,l); // send data - (void)(close(disk_img_fd)+1); + if (t==0x0D) write_client_tty(rb,l); // if it's \r send data } // ref/search_id_section.txt @@ -756,32 +759,32 @@ void req_fdc_write_sector(int tp,int tl) { // ref/fdc.txt void get_fdc_cmd(void) { dbg(3,"%s()\n",__func__); - char b[6] = {0x00}; + char b[8] = {0x00}; unsigned i = 0; bool eol = false; uint8_t c = 0x00; int p = -1; int l = -1; - // before we reset gb[], see if a command byte was collected already by req_fdc() - if (gb[0]>0x00 && gb[0]!=FDC_CMD_EOL && gb[1]==0x00) { - c=gb[0]; - dbg(3,"Command \"%b\" from req_fdc()\n",c); - } memset(gb,0x00,TPDD_DATA_MAX); - // scan for a valid command byte first while (!c) { - read_client_tty(&c,1); + if (ch[0]) { + c = ch[0]; + ch[0] = 0x00; + dbg(3,"Restored from req_fdc(): 0x%02X\n",c); + } else { + read_client_tty(&c,1); + } if (c==FDC_CMD_EOL) { eol=true; c=0x20; break; } // fall through to ERR_FDC_COMMAND, important for Sardine if (!strchr(fdc_cmds,c)) c=0x20 ; // eat bytes until valid cmd or eol } // read params i = 0; - while (i<6 && !eol) { // if we get out of sync (i>5), just fall through to restart + while (i<6 && !eol) { if (read_client_tty(&b[i],1)==1) { - dbg(3,"i:%d b:\"%s\"\n",i,b); + dbg(3,"i:%d b[]:\n%s\n",i,b); switch (b[i]) { case FDC_CMD_EOL: eol=true; case 0x20: b[i]=0x00; break; @@ -799,16 +802,21 @@ void get_fdc_cmd(void) { // where: // P = physical sector number 0-79 (decimal integer as 0-2 ascii characters) // L = logical sector number 1-20 (decimal integer as 0-2 ascii characters) - // (format & condition have different meanings but the rule still holds) + // (P & L sometimes have other meanings but the format & type rule still holds) p=0; // real drive uses physical sector 0 when omitted l=1; // real drive uses logical sector 1 when omitted char* t; if ((t=strtok(b,","))!=NULL) p=atoi(t); // target physical sector number if ((t=strtok(NULL,","))!=NULL) l=atoi(t); // target logical sector number - if (p<0 || p>79 || l<1 || l>20) {ret_fdc_std(ERR_FDC_PARAM,0,0); return;} + // for physical sector out of range, real drive error response will have dat=last_valid_p if any + // if no command has ever supplied a valid physical sector number yet, then dat=FF + if (p<0) {ret_fdc_std(ERR_FDC_PARAM,0xFF,0); return;} + if (p>79) {ret_fdc_std(ERR_FDC_PSN_HI,0xFF,0); return;} + if (l<1) {ret_fdc_std(ERR_FDC_LSN_LO,p,0); return;} + if (l>20) {ret_fdc_std(ERR_FDC_LSN_HI,p,0); return;} // debug - dbg(3,"\"c:%c p:%d l:%d\"\n",c,p,l); + dbg(3,"command:%c physical:%d logical:%d\n",c,p,l); // dispatch switch (c) { @@ -833,7 +841,7 @@ void get_fdc_cmd(void) { // OPERATION MODE // -FILE_ENTRY *make_file_entry(char *namep, uint16_t len, char flags) { +FILE_ENTRY* make_file_entry(char* namep, uint16_t len, char flags) { dbg(3,"%s(\"%s\")\n",__func__,namep); static FILE_ENTRY f; int i; @@ -903,10 +911,10 @@ void ret_std(unsigned char err) { if (gb[2]!=ERR_SUCCESS) dbg(2,"ERROR RESPONSE TO CLIENT\n"); } -int read_next_dirent(DIR *dir,int m) { +int read_next_dirent(DIR* dir,int m) { dbg(3,"%s()\n",__func__); struct stat st; - struct dirent *dire; + struct dirent* dire; int flags; if (dir == NULL) { @@ -927,7 +935,7 @@ int read_next_dirent(DIR *dir,int m) { if (S_ISDIR(st.st_mode)) flags=FE_FLAGS_DIR; else if (!S_ISREG (st.st_mode)) continue; - if (flags==FE_FLAGS_DIR && !dme_detected) continue; + if (flags==FE_FLAGS_DIR && dme<2) continue; if (dot_offset) { if (dire->d_name[0]=='.') continue; // skip "." ".." and hidden files @@ -952,7 +960,7 @@ int read_next_dirent(DIR *dir,int m) { // read the current share directory void update_file_list(int m) { dbg(3,"%s()\n",__func__); - DIR * dir; + DIR* dir; dir=opendir("."); file_list_clear_all(); @@ -964,7 +972,7 @@ void update_file_list(int m) { } // return for dirent -int ret_dirent(FILE_ENTRY *ep) { +int ret_dirent(FILE_ENTRY* ep) { dbg(2,"%s(\"%s\")\n",__func__,ep->client_fname); int i; @@ -997,9 +1005,9 @@ int ret_dirent(FILE_ENTRY *ep) { return (write_client_tty(gb,31) == 31); } -void dirent_set_name(unsigned char *b) { +void dirent_set_name(unsigned char* b) { dbg(2,"%s(%-24.24s)\n",__func__,b+2); - char *p; + char* p; char filename[TPDD_FILENAME_LEN+1]={0x00}; int f = 0; if (b[2]) { @@ -1010,7 +1018,7 @@ void dirent_set_name(unsigned char *b) { // * clients may open files without ever listing (teeny, ur2, etc) // * local files may be changed at any time by other processes update_file_list(ALLOW_RET); - strncpy(filename,(char *)b+2,TPDD_FILENAME_LEN); + strncpy(filename,(char*)b+2,TPDD_FILENAME_LEN); filename[TPDD_FILENAME_LEN]=0; // Remove trailing spaces for (p = strrchr(filename,' '); p >= filename && *p == ' '; p--) *p = 0x00; @@ -1052,7 +1060,7 @@ void dirent_get_first() { // because set-name is not required before get-first update_file_list(ALLOW_RET); ret_dirent(get_first_file()); - dme_fdc = 0; // see req_fdc() & ref/fdc.txt + dme = 0; } // b[0] = cmd @@ -1064,7 +1072,7 @@ void dirent_get_first() { // Ignore the name & attr until after determining the action. // TS-DOS submits get-first & get-next requests with junk data // in the filename & attribute fields left over from previous actions. -int req_dirent(unsigned char *b) { +int req_dirent(unsigned char* b) { dbg(2,"%s(%s)\n",__func__, b[27]==DIRENT_SET_NAME?"set_name": b[27]==DIRENT_GET_FIRST?"get_first": @@ -1122,25 +1130,31 @@ void ret_dme_cwd() { } // Any FDC request might actually be a DME request -// See ref/dme.txt for the full explaination because it's a lot. -// dme_fdc = Is the current FDC request a DME request? Retained during one dir listing. -// dme_detected = Have we ever recieved a DME request? Retained forever. +// See ref/dme.txt for the full explaination void req_fdc() { dbg(2,"%s()\n",__func__); - dbg(3,"dme detection %s\n",dme_disabled?"disabled":"allowed"); - dbg(3,"dme %spreviously detected\n",dme_fdc?"":"not "); - - if (!dme_fdc && !dme_disabled) { - dbg(3,"testing for dme\n"); - gb[0] = 0x00; + //dbg(3,"dme detection %s\n",dme_disabled?"disabled":"allowed"); + //if (!dme_disabled) dbg(3,"dme %spreviously detected\n",dme?"":"not "); + + // Some versions of TS-DOS send 2 FDC requests in a row, both with trailing \r. + // Some versions also send a 3rd one without the trailing \r. + // If we already have 2, then don't try to read a trailing \r any more, + // but do incriment the dme flag and do still treat the FDC request + // as really a DME request as long as the dme flag has not been reset. + // We don't really need to even track this once we have the 2 but whatever. + if (dme>1 && dme<0xFF) dme++; + + if (dme<2 && !dme_disabled) { + //dbg(3,"looking for dme req %d of 2\n",dme+1); + ch[0] = 0x00; client_tty_vmt(0,1); // allow this read to time out - (void)(read(client_tty_fd,gb,1)+1); + (void)(read(client_tty_fd,ch,1)+1); client_tty_vmt(-1,-1); // restore normal VMIN/VTIME - if (gb[0]==FDC_CMD_EOL) dme_fdc = true; + if (ch[0]==FDC_CMD_EOL) dbg(3,"Got dme req %d of 2\n",++dme); + //if (ch[0]) dbg(3,"ate a byte: %02X\n",ch[0]); } - if (dme_fdc) { - dme_detected=true; - dbg(3,"dme detected\n"); + if (dme>1) { + //dbg(3,"got dme req\n"); ret_dme_cwd(); } else { //if (model==2) { ret_std(ERR_PARAM); return; } // real tpdd2 does this @@ -1155,7 +1169,7 @@ void req_fdc() { // 0x02 write append // 0x03 read // b[3] = chk -int req_open(unsigned char *b) { +int req_open(unsigned char* b) { dbg(2,"%s(\"%s\")\n",__func__,cur_file->client_fname); dbg(5,"b[]\n"); dbg_b(5,b,-1); dbg_p(4,b); @@ -1250,7 +1264,7 @@ int req_open(unsigned char *b) { } void req_read(void) { - if (ch[1]!=REQ_READ || debug>2) dbg(2,"%s()\n",__func__); + dbg(2,"%s()\n",__func__); int i; if (o_file_h<0) { @@ -1285,8 +1299,8 @@ void req_read(void) { // b[1] = 0x01 - 0x80 // b[2] = b[1] bytes // b[2+len] = chk -void req_write(unsigned char *b) { - if (ch[1]!=REQ_WRITE || debug>2) dbg(2,"%s()\n",__func__); +void req_write(unsigned char* b) { + dbg(2,"%s()\n",__func__); dbg(4,"...incoming packet...\n"); dbg(5,"b[]\n"); dbg_b(5,b,-1); dbg_p(4,b); @@ -1344,7 +1358,7 @@ void ret_cache(uint8_t e) { * b[5] side (always 00) * b[6] sector 0-1 */ -void req_cache(unsigned char *b) { +void req_cache(unsigned char* b) { dbg(3,"%s(action=%u track=%u sector=%u)\n",__func__,b[2],b[4],b[6]); if (model==1) return; int a=b[2]; @@ -1455,7 +1469,7 @@ void req_cache(unsigned char *b) { * b[5+] data dlen bytes * b[#] chk */ -void req_mem_read(unsigned char *b) { +void req_mem_read(unsigned char* b) { dbg(3,"%s()\n",__func__); if (model==1) return; uint8_t a = b[2]; @@ -1500,7 +1514,7 @@ void req_mem_read(unsigned char *b) { * b[5+] data * b[#] chk */ -void req_mem_write(unsigned char *b) { +void req_mem_write(unsigned char* b) { dbg(3,"%s()\n",__func__); if (model==1) return; uint8_t a = b[2]; @@ -1590,7 +1604,7 @@ void ret_sysinfo() { write_client_tty(gb,9); } -void req_rename(unsigned char *b) { +void req_rename(unsigned char* b) { dbg(3,"%s(%-24.24s)\n",__func__,b+2); if (model==1) return; char *t = (char *)b + 2; @@ -1724,7 +1738,7 @@ void ret_exec(uint8_t reg_A, uint16_t reg_X) { * b[6] reg X lsb * b[7] chk */ -void req_exec(unsigned char *b) { +void req_exec(unsigned char* b) { dbg(3,"%s() ***STUB***\n",__func__); if (model==1) return; uint16_t addr = b[2]*256+b[3]; @@ -1759,8 +1773,6 @@ void get_opr_cmd(void) { return; // real drive does not return anything } - ch[1]=ch[0]; ch[0]=b[0]; // command history - // dispatch switch(b[0]) { case REQ_DIRENT+0x40: @@ -1848,7 +1860,7 @@ void slowbyte(uint8_t b) { } } -int send_BASIC(char *f) { +int send_BASIC(char* f) { int fd; uint8_t b; @@ -1875,7 +1887,7 @@ int send_BASIC(char *f) { return 0; } -int bootstrap(char *f) { +int bootstrap(char* f) { dbg(0,"Bootstrap: Installing \"%s\"\n\n",f); if (access(f,F_OK)==-1) { dbg(0,"Not found.\n"); @@ -1983,8 +1995,8 @@ void show_main_help() { ,args[0],DEFAULT_TPDD_FILE_ATTR,DEFAULT_BASIC_BYTE_MS); } -int main(int argc, char **argv) { - dbg(0,"DeskLink+ " APP_VERSION "\n"); +int main(int argc, char** argv) { + dbg(0,"DeskLink2 " APP_VERSION "\n"); int i; bool x = false; diff --git a/ref/dme.txt b/ref/dme.txt index 5acd436..d1c470a 100644 --- a/ref/dme.txt +++ b/ref/dme.txt @@ -1,246 +1,80 @@ The DMEReq sequence works like this: - DMEReq is a mutual-recognition process where both TS-DOS and Desk-Link(1) - have to recognize each other, using only "legal" tpdd commands and - responses on both sides so that TS-DOS still works with a real drive, - and Desk-Link still works with Floppy and other standard tpdd clients. +DMEReq is a mutual-recognition scheme that both TS-DOS and Desk-Link +(the original commercial Desk-Link for MS-DOS by Travelling Software Inc, +the same who also made TS-DOS) use to recognize each other, +while using only "legal" TPDD commands and responses on both sides. - TS-DOS has to detect if it is talking to Desk-Link without confusing - a real drive or any other server. +* TS-DOS has to detect if it is talking to Desk-Link + without confusing a real drive or any other server. - Desk-Link has to detect if it is talking to TS-DOS without confusing - Floppy or any other client. +* Desk-Link has to detect if it is talking to TS-DOS + without confusing FLOPPY or any other client. - (1) The original MS-DOS Desk-Link by the same Travelling Software as TS-DOS. - - The total sequence that TS-DOS sends is: - M 1 0D 5A 5A 08 00 F7 0D - - That is 3 things together: - 1: 3 bytes "M1\r" is the FDC-mode command to switch to Operation-mode. - 2: 5 bytes "ZZ" 08 00 F7 is the Operation-mode command to switch to - FDC-mode. - 3: 1 byte "\r" is the terminator for FDC-mode commands. - Like the opposite of "ZZ" in Operation-mode. - - This sequence makes no sense at first glance, especially considering - that the drive is always already in Operation-mode and so the initial - FDC-mode command is just unrecognized junk. - - How it works: +The total sequence that TS-DOS sends is: + 4D 31 0D 5A 5A 08 00 F7 0D + aka + M 1 \r Z Z [] [] [] \r - Step 1: - - The FDC-mode command to switch to Operation-mode. - - TS-DOS sends 0x4D 0x31 0x0D ("M1\r") - TS-DOS waits 3ms - TS-DOS flushes and discards it's RX buffer - - FDC-mode commands have a different format than Operation-mode - commands. Operation-mode commands are initiated by "ZZ" and - terminated by reading the LEN field and counting that many bytes - plus the checksum. FDC-mode commands start with the first - byte and are terminated by a carriage-return. - - A real drive is usually not in FDC-mode. A real drive is in - Operation-mode from power-on, and no normal clients use FDC-mode, - and so the drive is almost always in Operation-mode already. - But it's *possible* for a drive to be in either mode at any given - time. For example, it could have been left in FDC-mode by some other - software. - - Not counting random mid-command inconsistent states (a possibility - that ends up getting handled later), there are 2 main - initial conditions possible at the beginning of Step 1: - - OPR) If the drive was in Operation-mode: Step 1 is just junk data. - A real drive in Operation-mode is just scanning for ZZ, - and none of these 3 bytes are ZZ. They just get ignored. The drive - doesn't respond to them in any way (no error or anything). - End result at the end of step 1: - o The drive is in Operation mode and has emitted no output. - - FDC) If the drive was in FDC-mode: this should put it into - Operation-mode. This command sends no response. - End result at the end of step 1: - o The drive is in Operation mode and has emitted no output. - - There are other possible initial states, like if the drive was - not waiting for it's next command, but was in the middle of some - command like receiving payload bytes for a write or something. - In most of those cases the drive will send back nothing or an error. - This possibility is caught later. For now, proceed with the - assumption that at this point the drive IS in Operation-mode state. - - If the drive did send any kind of response, TS-DOS has discarded it. - - Step 2: - - The Operation-mode command to switch to FDC-mode. - - TS-DOS sends: 0x5A 0x5A 0x08 0x00 0xF7 - That is: Z Z REQ_FDC LEN:0 checksum - - Because of Step 1, the drive begins Step 2 definitely ready to - respond to Operation-mode commands, and this is an Operation-mode - command. - - Because of that, And because this is the Operation-mode command - to switch to FDC-mode, Step 2 should now garantee the drive is - switched to FDC-mode. - - This command does not emit a return block. And because the drive - should be in a known state this time, we can use the presense or - absense of any response as meaningful. TS-DOS previously cleared - it's RX queue, and since then has only issued a command which - produces no response from a real drive or conforming emulator. - - At the end of Step 2: - o The drive is in FDC-mode and has emitted no output. - - 3: - - Lastly, a final lone carriage-return. - - TS-DOS sends 0x0D - - This 0x0D is what tells TS-DOS the difference between a real drive and - Desk-Link, and tell Desk-Link the difference between Floppy and TS-DOS. - - At this point, a real drive should be in FDC-mode, and FDC-mode - commands are terminated with 0x0D. - - To a real drive this 0x0D is just an empty command, a no-op. A real - drive just goes back to waiting for the next FDC-mode command. - - If a real drive did not start out in a normal waiting-for-command - state (regardless which mode), then by now it may have issued an - error, or in an extremely unlikely case possibly even a non-error - response, but *never* a DME response. - - At the end of Step 3: - o A real drive should be in FDC-mode state. - o A real drive should still not have emitted any error or other - response, but may have. - - ---- now the reactions on both sides --- - -TS-DOS waits 3ms -TS-DOS checks it's RX queue - -A real drive or other emulator that's in a normal state will have -sent back nothing at this point. - -A real drive or other emulator that's in some unknown unexpected -state may have sent back some error response or even possibly a -non-error response. - -But Desk-Link recognizes this sequence of events and sends back the -DME response. TS-DOS can always distinguish a DME response from any -other normal response from a real drive or other server, because -the DME response block is not a valid response that a real drive -can ever send. The DME response is essentially a malformed or "illegal" -0x12 standard return. The 0x12 standard return is a single byte -payload response that just returns the success or error status of -a command, no data. It only has this one fixed format and length: -0x5A 0x5A 0x12 0x01 0x## 0x## -Z Z RET_STD LEN=1 errolevel checksum -A real drive can never send a 0x12 packet of any other form. - -A DME response is 0x12 but with an 11-byte payload. -5A 5A 12 0B payload checksum - -payload 11 bytes: +This breaks down as a sequence of 3 things: + +1) 3 bytes "M1\r" is the FDC-mode command to switch to Operation-mode. + + If a real drive drive was already in Operation-mode, then these bytes + have no effect, as a drive in Operation-mode is reading bytes and silently + ignoring everything until it gets two 0x5A (Z) in a row. + + If a real drive was in FDC-mode, then this is just the valid FDC-mode command + to switch to Operation-mode. This command does not send back any response. + + Either way, the command was safe to blindly send to the drive, and + either way, you know the drive is not stuck waiting for you to read + anything from it, and you know the drive should now be in Operation-mode + instead of the unknown initial state. + +2) 5 bytes "ZZ" 08 00 F7 is the Operation-mode command to switch to FDC-mode. + + The drive should definitely be in Operation-mode now, and this is just a + normal Operation-mode command, so this command should be processed normally. + + This command also does not send back any kind of response or result back + to the client. The drive is simply now no longer scanning for "ZZ" but is + instead reading command lines that end with "\r". + +3) 1 byte "\r" is the terminator for FDC-mode commands. + + The drive is in FDC-mode, and while in FDC-mode a lone "\r" is essentially + an empty command. + + A real drive sends back a standard FDC-mode response block containing the + result code that means "invalid command" + +TS-DOS sends the above sequence twice in a row. Some versions actually +send 3 times in a row with no trailing \r on the 3rd time. + +dl2 responds like a real drive the first time through, so as to +be compatible with FLOPPY and other standard clients. On the 2nd time through, +dl2 concludes the client is TS-DOS requesting directory extensions. + +In that case, on the 2nd FDC request, instead of actually switching to +FDC-mode and sending back an "invalid command" response, dl2 stays in +Operation-mode, and sends back a DME packet. A DME response packet is +technically an illegal or malformed Operation-mode return packet +with format code 0x12 but 11 bytes of payload data instead of 1. +Return format 0x12 has only one valid payload size which is 1 byte, +not 11 or any other value. A real drive can never send a return packet +like this, so this helps TS-DOS verify that it is receiving a DME packet +instead of an actual 0x12 packet. + +The 11 byte payload is: 0x00 0x## 0x## 0x## 0x## 0x## 0x## 0x2E 0x3C 0x3E 0x20 -That is: 0x00 6-bytes ".<> " - -The 6 bytes are a space-padded directory name, or an arbitrary -string standing for the root dir. - -At this point, TS-DOS checks it's RX queue to decide whether the -drive is Desk-Link or not. - -If TS-DOS does not have any pending RX data, or has any data is -not specifically the above Desk-Link DME response, then it knows -it's talking to a real drive or some other server besides Desk-Link, -and forgets about DME. - -If it did get the DME response, then it knows it's talking to -Desk-Link, and uses it, displays the working dir, handles the ".<>" -virtual files for directories, etc. - -In either case the next things TS-DOS does is put the drive back -into Operation-mode and issue an Operation-mode drive status request. - -TS-DOS flushes and discards it's RX queue -TS-DOS sends 0x4D 0x31 0x0D (put the drive back to Operation-mode) -TS-DOS waits 3ms -TS-DOS flushes and discards it's RX queue -TS-DOS sends 0x5A 0x5A 0x07 0x00 0xF8 (request drive status) - - -From Desk-Link's point of view: - -Any client could legally just happen to send an FDC-mode command to -switch to Operation-mode followed by an Operation-mode command to -switch to FDC-mode, as they are both legal commands. But the final -carriage-return, essentially an "empty" FDC-mode command, is not -something any client would have a reason to do. A client would only -ever issue some command, or be silent. - -So Desk-Link can tell from the final 0x0D that it is talking to -TS-DOS, and that's when it sends the DME response. - - -.... but wait there's actually more .... - -All of that is only true for the first 2 out of 3 FDC requests -per directory listing cycle. - -When TS-DOS does a directory listing, it sends *3* FDC requests before -the dirent(get-first) which is the start of the actual file list. - -However, only the first 2 of those 3 FDC calls has the trailing 0x0D -that indicates DME, the 3rd FDC call does NOT have it!!!! - -If we look for 0x0D on every FDC call, we HANG on the 3rd one because, -not seeing the 0x0D, we switch to FDC mode instead of sending a DME. -While we're sitting at the top of get_fdc_cmd() waiting forever for an -FDC-mode command to come in, TS-DOS is waiting forever for us to send a -DME response. Deadlock. - -So we need to detect dme by looking for a trailing 0x0D, and remember -that and avoid looking again, but only for the duration of the current -directory listing cycle. - -On the first fdc request (or 2nd if we somehow missed the 1st one) -we set a flag that says we detected dme, and do not look for it -anymore but just respond with dme instead of fdc based on that flag. - -If we left it at that, that would permanently brick FDC mode. A client -could not use both DME and FDC in the same session. - -That would actually be fine 99% of the time. TS-DOS always does DME so -always responding with DME is fine. Floppy and other clients never do -DME so never responding with DME is also fine. - -But Sardine is a client that does both DME and FDC. -So, bricking FDC is not acceptable. - -Since TS-DOS does send the extra 0x0D again on the first 2-of-3 FDC -calls before the next directory listing, we can clear that flag on -every dirent(get-first). The flag gets us through the current -directory listing cycle, but is cleared between cycles, and so actual -FDC requests should still work. +NULL ABCDEF.<> SPACE -When we test for the 0x0D and do NOT find it, do NOT remember that. -If a non-dme fdc request comes in, it does not mean "this client -does not support dme", it only means "this fdc request is not a -dme request" +The full packet is: +0x12 0x0B 11_bytes checksum -Seperately we keep a different flag that says "this client supports dme" -which is never cleared. That one tells the directory scanner whether or -not to generate the ".<>" virtual filenames and include directories when -building or updating the file list. +dl2 then rembers that there is a dme request in progress until it gets a +dirent(get-first) command. The dme-in-progress flag tells dirent() to include +the directory names in the file list it generates. Then the flag is reset +at the end of the directory listing process, so that legit switch-to-FDC-mode +commands will still work. From 01289417cb6099604e7cb088c10713fce1ed2889 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 30 Jan 2024 15:30:28 -0500 Subject: [PATCH 150/206] tpdd2 12+1 bytes sector header, recognize cmd synonyms --- Makefile | 23 +- constants.h | 49 ++-- dl.c | 215 +++++++++++------- ...oftware_Manual_for_Portable_Disk_Drive.pdf | Bin 1556422 -> 0 bytes ...le Disk Drive Operation Manual 26-3808.pdf | Bin 369787 -> 0 bytes ref/disk_image_files.txt | 14 +- ref/tsdos_mystery_1.txt | 202 ---------------- 7 files changed, 185 insertions(+), 318 deletions(-) delete mode 100644 ref/TANDY_Service_Manual_26-3808S_Software_Manual_for_Portable_Disk_Drive.pdf delete mode 100644 ref/Tandy Portable Disk Drive Operation Manual 26-3808.pdf delete mode 100644 ref/tsdos_mystery_1.txt diff --git a/Makefile b/Makefile index a554470..a9ef1e2 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -# Makefile for DeskLink+ +# Makefile for DeskLink2 OS ?= $(shell uname) CC ?= gcc @@ -6,10 +6,12 @@ CFLAGS += -O2 -Wall #CFLAGS += -std=c99 -D_DEFAULT_SOURCE # prove the code is still plain c #CFLAGS += SHOWBYTES_A # bootstrap() display non-printing bytes differently #CFLAGS += SHOWBYTES_B # bootstrap() display non-printing bytes differently +#CFLAGS += NADSBOX_EXTENSIONS # placeholder but not implemented PREFIX ?= /usr/local -APP_NAME := dl -APP_LIB_DIR := $(PREFIX)/lib/$(APP_NAME) -APP_DOC_DIR := $(PREFIX)/share/doc/$(APP_NAME) +NAME := dl +APP_NAME := DeskLink2 +APP_LIB_DIR := $(PREFIX)/lib/$(NAME) +APP_DOC_DIR := $(PREFIX)/share/doc/$(NAME) APP_VERSION := $(shell git describe --long 2>&-) CLIENT_LOADERS := \ @@ -78,6 +80,7 @@ ifeq ($(OS),Windows_NT) endif DEFINES := \ + -DAPP_NAME=\"$(APP_NAME)\" \ -DAPP_VERSION=\"$(APP_VERSION)\" \ -DAPP_LIB_DIR=\"$(APP_LIB_DIR)\" \ -DDEFAULT_CLIENT_TTY=\"$(DEFAULT_CLIENT_TTY)\" @@ -87,12 +90,12 @@ ifdef DEBUG endif .PHONY: all -all: $(APP_NAME) +all: $(NAME) -$(APP_NAME): $(SOURCES) $(HEADERS) +$(NAME): $(SOURCES) $(HEADERS) $(CC) $(CFLAGS) $(DEFINES) $(SOURCES) $(LDLIBS) -o $(@) -install: $(APP_NAME) $(CLIENT_LOADERS) $(LIB_OTHER) $(DOCS) +install: $(NAME) $(CLIENT_LOADERS) $(LIB_OTHER) $(DOCS) mkdir -p $(APP_LIB_DIR) for s in $(CLIENT_LOADERS) ;do \ d=$(APP_LIB_DIR)/$${s##*/} ; \ @@ -110,11 +113,11 @@ install: $(APP_NAME) $(CLIENT_LOADERS) $(LIB_OTHER) $(DOCS) install $(INSTALLOWNER) -m 0644 $${s} $${d} ; \ done mkdir -p $(PREFIX)/bin - install $(INSTALLOWNER) -m 0755 $(APP_NAME) $(PREFIX)/bin/$(APP_NAME) + install $(INSTALLOWNER) -m 0755 $(NAME) $(PREFIX)/bin/$(NAME) install $(INSTALLOWNER) -m 0755 co2ba.sh $(PREFIX)/bin/co2ba uninstall: - rm -rf $(APP_LIB_DIR) $(APP_DOC_DIR) $(PREFIX)/bin/$(APP_NAME) $(PREFIX)/bin/co2ba + rm -rf $(APP_LIB_DIR) $(APP_DOC_DIR) $(PREFIX)/bin/$(NAME) $(PREFIX)/bin/co2ba clean: - rm -f $(APP_NAME) + rm -f $(NAME) diff --git a/constants.h b/constants.h index fb01f8c..1162a40 100644 --- a/constants.h +++ b/constants.h @@ -4,23 +4,26 @@ // TPDD drive firmware/protocol constants // TPDD request block formats -#define REQ_DIRENT 0x00 -#define REQ_OPEN 0x01 -#define REQ_CLOSE 0x02 -#define REQ_READ 0x03 -#define REQ_WRITE 0x04 -#define REQ_DELETE 0x05 +#define REQ_DIRENT 0x00 // (add 0x40 for TPDD2 bank 1) +#define REQ_OPEN 0x01 // (add 0x40 for TPDD2 bank 1) +#define REQ_CLOSE 0x02 // (add 0x40 for TPDD2 bank 1) +#define REQ_READ 0x03 // (add 0x40 for TPDD2 bank 1) +#define REQ_WRITE 0x04 // (add 0x40 for TPDD2 bank 1) +#define REQ_DELETE 0x05 // (add 0x40 for TPDD2 bank 1) #define REQ_FORMAT 0x06 -#define REQ_STATUS 0x07 +#define REQ_STATUS 0x07 // (add 0x40 for undocumented synonym on TPDD2) #define REQ_FDC 0x08 // TPDD1 -#define REQ_SEEK 0x09 // NADSBox extension -#define REQ_TELL 0x0A // NADSBox extension -#define REQ_SET_EXT 0x0B // NADSBox extension +#ifdef NADSBOX_EXTENSIONS + #define REQ_NADSBOX_SEEK 0x09 + #define REQ_NADSBOX_TELL 0x0A + #define REQ_NADSBOX_SET_EXT 0x0B +#endif #define REQ_CONDITION 0x0C // TPDD2 -#define REQ_RENAME 0x0D // TPDD2 -#define REQ_EXT_QUERY 0x0E // ??? Maybe NADSBox also, compliment of REQ_SET_EXT ? -#define REQ_COND_LIST 0x0F // ??? - TPDD2 responds RET_CACHE -#define REQ_UNDOC11 0x11 // TPDD2 undocumented synonym for REQ_PDD2_SYSINFO +#define REQ_RENAME 0x0D // TPDD2 (add 0x40 for bank 1) +#ifdef NADSBOX_EXTENSIONS + #define REQ_NADSBOX_GET_EXT 0x0E + #define REQ_NADSBOX_COND_LIST 0x0F // NADSBox but TPDD2 also responds with RET_CACHE +#endif #define REQ_VERSION 0x23 // TPDD2 Get Version Number #define REQ_CACHE 0x30 // TPDD2 sector access #define REQ_MEM_WRITE 0x31 // TPDD2 sector access @@ -147,24 +150,26 @@ #define PDD1_SECTORS 2 #define PDD2_TRACKS 80 #define PDD2_SECTORS 2 -#define TPDD_DATA_MAX 260 // largest possible packet is 256+3 +#define TPDD_DATA_MAX 260 // largest theoretical packet is 256+3 #define REQ_RW_DATA_MAX 128 // largest chunk size in req_read() req_write() #define LEN_RET_STD 0x01 #define LEN_RET_DME 0x0B #define LEN_RET_DIRENT 0x1C #define TPDD_FILENAME_LEN 24 #define LOCAL_FILENAME_MAX 256 +#define SECTOR_ID_LEN 12 +#define SECTOR_HEADER_LEN (SECTOR_ID_LEN+1) // pdd1: lsc+id, pdd2: id+unknown #define SECTOR_DATA_LEN 1280 -#define PDD1_SECTOR_LSC_LEN 1 -#define PDD1_SECTOR_ID_LEN 12 -#define PDD1_SECTOR_META_LEN (PDD1_SECTOR_LSC_LEN+PDD1_SECTOR_ID_LEN) -#define PDD2_SECTOR_META_LEN 4 // TODO - PDD2 service manual shows there is 17-bytes ID field +//#define OLD_PDD2_HEADER_LEN 4 // for old .pdd2 disk image files +#define SECTOR_LEN (SECTOR_HEADER_LEN+SECTOR_DATA_LEN) +#define PDD1_IMG_LEN (PDD1_TRACKS*PDD1_SECTORS*SECTOR_LEN) +#define PDD2_IMG_LEN (PDD2_TRACKS*PDD2_SECTORS*SECTOR_LEN) #define SMT_OFFSET 1240 #define PDD1_SMT 0x80 #define PDD2_SMT 0xC0 -#define PDD2_META_ADDR 0x8004 -#define PDD2_MEM_READ_MAX 252 -#define PDD2_MEM_WRITE_MAX 127 +#define PDD2_ID_ADDR 0x8004 +#define PDD2_MEM_READ_MAX 252 // real drive absolute limit +#define PDD2_MEM_WRITE_MAX 127 // real drive absolute limit // TPDD2 version data: 41 10 01 00 50 05 00 02 00 28 00 E1 00 00 00 #define VERSION_MSB 0x41 diff --git a/dl.c b/dl.c index ac6268b..2ae9cb8 100644 --- a/dl.c +++ b/dl.c @@ -11,15 +11,17 @@ DeskLink+ 2005 John R. Hogerhuis Extensions and enhancements 2019 Brian K. White - repackaging, reorganizing, bootstrap function -2022 disk image files and sector-access 2020 Kurt McCullum - TS-DOS loaders 2022 Gabriele Gorla - TS-DOS subdirectories -DeskLink+ is free software; you can redistribute it and/or modify it +DeskLink2 +2023 Brian K. White - disk image files, pdd1 FDC mode, pdd2 cache & memory + +DeskLink2 is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or any -later as version as published by the Free Software Foundation. +later version as published by the Free Software Foundation. -DeskLink+ is distributed in the hope that it will be useful, but +DeskLink2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -62,6 +64,11 @@ MA 02111, USA. /*** config **************************************************/ + +#ifndef APP_NAME +#define APP_NAME "DeskLink" +#endif + #ifndef APP_LIB_DIR #define APP_LIB_DIR "." #endif @@ -82,7 +89,7 @@ MA 02111, USA. #define DEFAULT_TPDD_FILE_ATTR 0x46 // F -// To mimic the original DeskLink from Travelling Software: +// To mimic the original Desk-Link from Travelling Software: //#define DEFAULT_DME_ROOT_LABEL "ROOT " //#define DEFAULT_DME_PARENT_LABEL "PARENT" // environment variables: #define DEFAULT_DME_ROOT_LABEL "0: " // ROOT_LABEL='0:' '-root-' 'C:\' @@ -150,11 +157,10 @@ int opr_mode = 1; uint8_t dme = 0; bool dme_disabled = false; char ch[2] = {0xFF}; // 0x00 is a valid OPR command, so init to 0xFF -uint8_t mlen = PDD2_SECTOR_META_LEN; -const uint16_t dlen = SECTOR_DATA_LEN; +//uint8_t img_header_len = SECTOR_HEADER_LEN; const uint16_t fdc_logical_size_codes[] = FDC_LOGICAL_SIZE_CODES; const char fdc_cmds[] = FDC_CMDS; -uint8_t* rb = 0x00; +uint8_t rb[2048] = {0x00}; // disk image record buffer / virtual pdd2 ram FILE_ENTRY* cur_file; int dir_depth=0; @@ -290,6 +296,52 @@ void find_lib_file (char* f) { dbg(0,"Loading: \"%s\"\n",f); } +int check_disk_image () { + if (!disk_img_fname[0]) return 1; + find_lib_file(disk_img_fname); + if (disk_img_fname[0]) { + struct stat info; + stat(disk_img_fname, &info); + // allow missing or zero-byte file, + // we will create it if client issues format command + // but if file exists, sanity check based on size + if (info.st_size) { + if (model==1 && info.st_size != PDD1_IMG_LEN) { + dbg(0,"Expected TPDD1 disk image file size %u\n",PDD1_IMG_LEN); + dbg(0,"\"%s\" is %u\n",disk_img_fname,info.st_size); + return 1; + } + if (model==2 && info.st_size != PDD2_IMG_LEN) { + dbg(0,"Expected TPDD2 disk image file size %u\n",PDD2_IMG_LEN); + dbg(0,"\"%s\" is %u\n",disk_img_fname,info.st_size); + return 1; + } + //printf("%s: size=%ld\n", disk_img_fname, info.st_size); + //if (model==2 && info.st_size == PDD2_TRACKS*PDD2_SECTORS*(OLD_PDD2_HEADER_LEN+SECTOR_DATA_LEN)) { + // img_header_len = OLD_PDD2_HEADER_LEN; + // dbg(0,"Detected OLD TPDD2 disk image file format\n"); + //} + } + } + return 0; +} + +// TODO - search for likely TTY(s) automatically +/* +void guess_client_tty () { + struct dirent *files; + char path[] = "/dev/"; + DIR *dir = opendir(path); + if (dir == NULL){dbg(0,"Cannot open \"%s\"",path); return;} + int i; + while ((files = readdir(dir)) != NULL) { + for (i=strlen(files->d_name);files->d_name[i]!='/';i--); + if (!strcmp(files->d_name+i+1,match)) dbg(0," %s",files->d_name); + } + closedir(dir); +} +*/ + void resolve_client_tty_name () { dbg(3,"%s()\n",__func__); switch (client_tty_name[0]) { @@ -438,14 +490,14 @@ char* collapse_padded_fname(char* fname) { return fname; } -void lsx (char* path,char* match) { +void lsx (char* path,char* match,char* fmt) { struct dirent *files; DIR *dir = opendir(path); if (dir == NULL){dbg(0,"Cannot open \"%s\"",path); return;} int i; while ((files = readdir(dir)) != NULL) { for (i=strlen(files->d_name);files->d_name[i]!='.';i--); - if (!strcmp(files->d_name+i+1,match)) dbg(0," %s",files->d_name); + if (!strcmp(files->d_name+i+1,match)) dbg(0,fmt,files->d_name); } closedir(dir); } @@ -492,21 +544,13 @@ void ret_fdc_std(uint8_t e, uint8_t s, uint16_t l) { write_client_tty(b,8); } -/* -int seek_disk_image (int p, int l, int r) { - int s = (p*(mlen+dlen)); - if (l) s+=mlen+l*llen-l; - return lseek(disk_img_fd,s,SEEK_SET); -} -*/ - // p : physical sector to seek to // m : read-only / write-only / read-write // r : send or don't send error response to client from here int open_disk_image (int p, int m, int r) { dbg(2,"%s(%d,%d,%d)\n",__func__,p,m,r); - if (!strcmp(disk_img_fname,"")) return ERR_FDC_NO_DISK; + if (!*disk_img_fname) return ERR_FDC_NO_DISK; int of; int e=ERR_FDC_SUCCESS; switch (m) { @@ -528,7 +572,7 @@ int open_disk_image (int p, int m, int r) { } if (!e) { - int s = (p*(mlen+dlen)); // initial seek position to start of physical sector + int s = (p*SECTOR_LEN); // initial seek position to start of physical sector if (lseek(disk_img_fd,s,SEEK_SET)!=s) e=ERR_FDC_READ; } @@ -536,7 +580,7 @@ int open_disk_image (int p, int m, int r) { return e; } -void req_fdc_set_mode(int m) { +void req_fdc_set_mode(uint8_t m) { dbg(2,"%s(%d)\n",__func__,m); dbg(1,"FDC: Switching to \"%s\" mode\n",m==0?"FDC":m==1?"Operation":"-invalid-"); opr_mode=m; // no response, just switch modes @@ -562,21 +606,20 @@ void req_fdc_condition() { } // lc = logical sector size code -void req_fdc_format(int lc) { +void req_fdc_format(uint8_t lc) { dbg(2,"%s(%d)\n",__func__,lc); int ll = lsc_to_len(lc); int rn = 0; // physical sector number - int rl = mlen+dlen; // total length of one record int rc = (PDD1_TRACKS*PDD1_SECTORS); // total record count dbg(0,"Format: Logical sector size: %d = %d\n",lc,ll); if (open_disk_image(0,O_RDWR,ALLOW_RET)) return; - memset(rb,0x00,rl); + memset(rb,0x00,SECTOR_LEN); rb[0]=lc; // logical sector size code for (rn=0;rnSECTOR_DATA_LEN) { @@ -624,7 +667,7 @@ void req_fdc_read_sector(uint8_t tp,uint8_t tl) { } // seek to target_physical*(id_len+physical_len) + id_len + (target_logical-1)*logical_len - int s = (tp*(mlen+dlen))+mlen+((tl-1)*l); + int s = (tp*SECTOR_LEN)+SECTOR_HEADER_LEN+((tl-1)*l); if (lseek(disk_img_fd,s,SEEK_SET)!=s) { dbg(1,"failed seek %d : %s\n",s,strerror(errno)); (void)(close(disk_img_fd)+1); @@ -649,19 +692,18 @@ void req_fdc_read_sector(uint8_t tp,uint8_t tl) { void req_fdc_search_id() { dbg(2,"%s()\n",__func__); int rn = 0; // physical sector number - int rl = mlen+dlen; // total length of one record int rc = (PDD1_TRACKS*PDD1_SECTORS); // total record count - char sb[PDD1_SECTOR_ID_LEN] = {0x00}; // search data + char sb[SECTOR_ID_LEN] = {0x00}; // search data if (open_disk_image(0,O_RDONLY,ALLOW_RET)) return; // open disk image ret_fdc_std(ERR_FDC_SUCCESS,0,0); // tell client to send data - read_client_tty(sb,PDD1_SECTOR_ID_LEN); // read 12 bytes from client + read_client_tty(sb,SECTOR_ID_LEN); // read 12 bytes from client int l = 0; bool found = false; for (rn=0;rn=PDD2_TRACKS || s>=PDD2_SECTORS) { ret_cache(ERR_PARAM); return; } int rn = t*2 + s; // convert track#:sector# to linear record# - int rl = mlen+dlen; int e; switch (a) { @@ -1381,8 +1422,8 @@ void req_cache(unsigned char* b) { case ERR_FDC_SUCCESS: e=ERR_SUCCESS; } if (e) { ret_cache(e); return; } - memset(rb,0x00,rl); - if (read(disk_img_fd,rb,rl)!=rl) { + memset(rb,0x00,SECTOR_LEN); + if (read(disk_img_fd,rb,SECTOR_LEN)!=SECTOR_LEN) { dbg(2,"failed cache load\n"); (void)(close(disk_img_fd)+1); ret_cache(ERR_DEFECTIVE); @@ -1400,7 +1441,7 @@ void req_cache(unsigned char* b) { case ERR_FDC_SUCCESS: e=ERR_SUCCESS; } if (e) { ret_cache(e); return; } - if (write(disk_img_fd,rb,rl)!=rl) { + if (write(disk_img_fd,rb,SECTOR_LEN)!=SECTOR_LEN) { dbg(2,"failed cache commit\n"); (void)(close(disk_img_fd)+1); ret_cache(ERR_DEFECTIVE); @@ -1409,7 +1450,7 @@ void req_cache(unsigned char* b) { default: ret_cache(ERR_PARAM); return; } (void)(close(disk_img_fd)+1); - dbg_b(3,rb,rl); + dbg_b(3,rb,SECTOR_LEN); ret_cache(ERR_SUCCESS); } @@ -1469,6 +1510,10 @@ void req_cache(unsigned char* b) { * b[5+] data dlen bytes * b[#] chk */ +// TODO - construct a mockup of the 2k drive ram +// and allow reading from anywhere in it, +// rather than just the sector ID part. +// Client requested address minus 0x8000 = offset into 2k virtual drive ram. void req_mem_read(unsigned char* b) { dbg(3,"%s()\n",__func__); if (model==1) return; @@ -1478,13 +1523,16 @@ void req_mem_read(unsigned char* b) { int e = -1; dbg(2,"mem_read: area:%u offset:%u len:%u\n",a,o,l); switch (a) { + case MEM_CPU: + // read from the ID section - offset=0 len=SECTOR_HEADER_LEN + // cpu memory address 0x8004 is offset 0 in the disk image sector + if (o==PDD2_ID_ADDR) { o=0; if (l>SECTOR_HEADER_LEN) e=ERR_PARAM; } + else e=ERR_PARAM; // real drive allows reading from anywhere in ram but we don't support that yet + break; case MEM_CACHE: + // read from the DATA section if (o+l>SECTOR_DATA_LEN || l>PDD2_MEM_READ_MAX) e=ERR_PARAM; - o+=PDD2_SECTOR_META_LEN; // shift offset past metadata field - break; - case MEM_CPU: - if (o==PDD2_META_ADDR) { o=0; if (l>PDD2_SECTOR_META_LEN) e=ERR_PARAM; } // set offset to start of metadata field - else e=ERR_PARAM; // this is wrong, real drive returns all kinds of data + o+=SECTOR_HEADER_LEN; // shift offset past header break; default: e=ERR_PARAM; } @@ -1526,10 +1574,10 @@ void req_mem_write(unsigned char* b) { switch (a) { case MEM_CACHE: if (o+l>SECTOR_DATA_LEN || l>PDD2_MEM_WRITE_MAX) e=ERR_PARAM; - o+=PDD2_SECTOR_META_LEN; // shift offset past metadata field + o+=SECTOR_HEADER_LEN; // shift offset past header break; case MEM_CPU: - if (o==PDD2_META_ADDR) { o=0 ;if (l>PDD2_SECTOR_META_LEN) e=ERR_PARAM; } // set offset to start of metadata field + if (o==PDD2_ID_ADDR) { o=0 ;if (l>SECTOR_HEADER_LEN) e=ERR_PARAM; } // set offset to start of header else e=ERR_SUCCESS; // thumbs-up but don't actually do anything break; default: e=ERR_PARAM; @@ -1539,9 +1587,9 @@ void req_mem_write(unsigned char* b) { // copy data from client over part of rb[] dbg_b(3,b+s,l); - dbg_b(3,rb,mlen+dlen); + dbg_b(3,rb,SECTOR_LEN); memcpy(rb+o,b+s,l); - dbg_b(3,rb,mlen+dlen); + dbg_b(3,rb,SECTOR_LEN); ret_cache(ERR_SUCCESS); } @@ -1646,7 +1694,6 @@ void req_condition() { // then: write 0x80 at sector 0 byte 1240 (aka physical:0 logical:20 byte:25 counting from 1) void req_format() { dbg(2,"%s()\n",__func__); - const int rl = mlen+dlen; // img file record length const int rc = model==1?(PDD1_TRACKS*PDD1_SECTORS):(PDD2_TRACKS*PDD2_SECTORS); // records count int rn = 0; // record number @@ -1671,12 +1718,12 @@ void req_format() { // We exactly mimick that here "just because", even though the LSC 1s // don't seem to actually matter and we could just make all LSC 0. for (rn=0;rn2) model=2; - if (model==1) mlen = PDD1_SECTOR_META_LEN; resolve_client_tty_name(); - find_lib_file(disk_img_fname); - if (disk_img_fname[0]) rb = malloc(mlen+dlen); + check_disk_image(); find_lib_file(bootstrap_fname); (void)(getcwd(cwd,PATH_MAX-1)+1); diff --git a/ref/TANDY_Service_Manual_26-3808S_Software_Manual_for_Portable_Disk_Drive.pdf b/ref/TANDY_Service_Manual_26-3808S_Software_Manual_for_Portable_Disk_Drive.pdf deleted file mode 100644 index 0821816b506677413ac942688b65d0f9b0852426..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1556422 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

N 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 pAp30QR?Ao!eO5KV41 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î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

vZ!AKfX+X>Yo34!_O4d~006>C9N*#VBFR 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

V%-(0^+l%puAHWKXX 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∋}ACGhxdWgI-O`_Y4Br2 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%0D8RuxX?N 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

`ev(0tVP_&=Ms8S%-VO2w{%o|5V;URc; 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%0DFOYLQZ9 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%0ADNJ{B7E%(&Ew{g}JYW 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

dTRjUB^RYD^jN2fqdrgvyLVn| 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

|q-tqg(^j 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⩔ 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 G&Hoos4e6`^ diff --git a/ref/Tandy Portable Disk Drive Operation Manual 26-3808.pdf b/ref/Tandy Portable Disk Drive Operation Manual 26-3808.pdf deleted file mode 100644 index 0bcc7821813094448f1dde07df81710d9a071225..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 369787 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
=6%f4`7&7^G_hJ zeoPB_E49EcWol3i{-sF-Kh|RTBpgz-Xz+tRADeC zDVn1PT5t8jgb%KXh%=y9)m4^D{kexWC7q6{nZST)-*`OGyZWc z>qQo(?$6JBRucV=Q<=3o0@#|OTiPNy=WH&jJm->3^%|eiq$dj}OK26wB$=5ew}SJU zfKsL$B^e&QbTi_RihV{1_rdTk_x{j=bW3$OT4_4}MqaiLF`=%KEF}@Rcy^8qOV#dj zf5?_`Xu(h*)6UdXj&y66Sh&2RDPg3CRZ|2RUrL?-gLIShsE2Sx{%(7=u66#pA0Ds$ zOu~qozCfFeFoiD7ZrLvni;yD$%y|eK!34Yh@U9`aB3susD%S z@UHDz33Z#2M1M#UG`eNILG4F!R|Ck&r%1LxgSx_yX`T&kDWZ=b zCx~T0E44F^2aN+fO~+2e)4evEm8#w23iH2l5w$XB$L&);_?y^^dXg7DEx<3Vhni^o zIgExLn`ywt_!b6P>5wy#omuI{N_u`C&jj(mRVGa_tsubB0jozT;`S~1w%b^zHzQdH zt9&#af#c8#ajbc%G)ab;!k?;}jqJ|6p=CfEO-O515(Tv+%gVt(rHcZ5P`4~wntpOP z6@VbX0wl*Wb?XFirM}bv3)9QDvgjH197X-nd|YXfsC4~Zy{v45=oSZ&YO4b@El%C? z!N%(;yp|k}hpByuAy3)-WFZ+mj=XyfSsDtLB8Z30skM`VBIv}X%{9OgE}P4WlMS7jflIhC%pzF6Rup@49BrlV{i;wmijWq#G!!rin#0|6;;5Fcn>)O*sozQ+ z;Of&POZfIuN^@JMMM=lD8dhx-xfJ0o$h%*#R!nBVJcR-_`&7I-i21Oa4o@x-7;IKpOy|+!P=};awXlF3mJZzbWkvG4#o* zI~|O+$Bv=k#CP(XVsW=`feqlBh?+}zB$3je2$)2!0fXHd=Na5oSiYcX8Xp?zv5l@W`xmNn_vUEhrMc{TOclDOd=-X}|njQVaN{PL>(1 ztj_lP!9s#==}eK_c~!d)%)eDO6bUW)(~H+Ut@>mTz??`K5fBi`Q_;VWl`c-?S8( z`MJ5I7fxwleab%d@z;5la**P8yDaev7wO}6u z3i!CGxwk{tG(P14`I{I3I_4J7ulJjN7N$e?e*s zbV}8qmf2MewV>mf3@=jMo7>lyL~mUmMo}9aHGbOhtgWzAr9#75WA*a@I)Ke8EyOcdbE> zW1DO}yEy0)2Ieu^fKr3C({MSH2Af1X9!bk$R@2TKgvbM}vcJRlSX$B^XNaWC{(=aZ zg}Bmb(Ht(OL{cbgtuWJlJT4`3Sfj%y<}^nxErr>8wPj@WEi>5_fV#g8tC%_FRO2%B ziiOc}q{R~KBV*G6dgt>cJikl}=jn^e`#7m;Ikze1lHZVKru zJ$__ouy4}TW*JY-q@l@lx@cKRqAb_0r${kg^h?rSKKUGLyL$4c(rC<6apcFL=J8-r z4R*D2(?gOMM_W?$T=`N+A9BaY!lCwYcgxa~+*7Juzj(DX>>=qw{5gM5ogS!hoZN7< z6TAktUKqv?GWwKMFd`SN_u- z-@7I6*3elmJ;z12f0W#4sVQwmxgD1oMk0lS&E|?NK#U-pvBI{Xv|#8mz^@tJ!#87Z z4gJiq0X{D6dD=gh4DDQv=_aevHXGMmYta}W>KQr(i6eoi3E*~b9DY>aC})j^GZ&}l z^}%ee!;4J;7NS2>oSfy^A5<4__;xgpCez6SzbxTtN`DP6crnpGDL%EFbE;f%>=bG! zi?rNfC5lfhbw@0vXkdg)R2QCahSnZHJVUhIi=(K@FC~MGQ4D23Gv#OKWpnA1;YX`r zANx2QyiQFjBy_5MG@7>Q_$YL`03^shUVgR$^U?E{5bPIMOlWb|oVZnKY7&%}6X*1D zZ`#eBT;h^;0DbF^muXaP@%9|R8e+@De z#Vqi4Fy4Hm=oQJVNgsjq4*59SPRCfjsyy*jJ^og0Tv5W5c|mEgLVG?~PZ4<3W|`^5 z@ya*{J%`vx^q(B(zDQf6HBjj9MRqr0HIuacr>*heUzP1Mz1}{+9djRy*fNcr1F*Ff zm+hsJ?>_F}r}sD3R|t!?OgR|r-WH#KRGoB{QH+a(xIH@C4iZ-}yh6sNu!B3M(I$)o z)Q*tGBtBWff#$)`cnW#8v1 z2YcQ%#e60&Tfsjw#zUfL3w@IWB2E0(tm0N$)ZTa!Y0}%#7VjwcHw$i}p59R(!+?NN ztV*c4I}S|+=k)hpa(X~?%Ux{-k`e+k5fF-`Jx7~15VL^LB(OB9nC8T&;eK`eAv0Vc zc7%*^rOblVRfLlaTK08YmZY*Zl4Q@mP@AXf_!ocMHLLB4X%!rKjFr#GlZP|e%h7Vd zHRs=uJp{|n9bcwhL!WV`U0Y717KlyiMCNCrey6119~gf@80|bdTP$lwOwj^?#`dE4 z!Zp7VG}W<{xPzP|eMY#go3vCcmNlivp(h$+3X1AITN?`7uix`Z&0zN;`?Le^BUA95 zldALnkd+-EXU9ZH zQI|Hhc4A(YYb3oin@_((lLFPObM=?WP~i6)scrkczMQv0DEfJFw$619`7Ei;@V&n3V_isAIaxNmf|%~zoGY0zk*k*(F! zHE8Kr#FP?lbV?pdjE<+npCWs~G3DP~KR0elOlFpDTpQLVp7tX-MhZ$2ITMkvkg(xm z`;aB^k+8)%^vr_Xo?`0NHJ$MLd~Z<*_z}vBD;S8~@MrLsVM+!@=|U`)QIwX%PeN9i znPkSTFM(K9+KU-NHzMT9PvR@?^!)_x6-$HU#(|g|6b&FpFH^@w-v7{`K9Y@{lK-;! zd@wAvF>8h+xm4g(#NdD+TEGWMj6$z8%0g#1M}Xhl#Iv1U`$#z}q*li13qQ~J80JT= zWc=5wW;|OM%v&a8jw5AeWR9=Ymnf4&ZEIcE;_fwls``+mvFSxUMFvzc_MxfKM1wbV z>HAX`;S0zZmj_c9X;=IA;vp}qn+^uebM#Uia+JdN^iq4EoKLy;Kh1}sneh)4yeiFEE_hWC`p|4dAleR*AScCD+RlK58$iJDB@n8p!p`>%u3=p?;(EK z4C87|uan>RTY3`M6@5Nq(sWMu^_*tB2c^WH$%A|4W1!jwW4)HJ`p~Htds_JZ0LRl_ z$)7RbSInA<>BS7(FJg!|v^-`9H=oD)?VYT%An;ZqY?;Ar-z4%i7Dg!pk+Cn_lb8IX zOO`2>Pny3j@@9VagBiEINnJ5pV+mQ*2$2h8%%|}W%cTM!YPldr;jBaJ`F}2@g@9rK zIoP-1e);^IaVbOLPVG|xixF1~%skfOt!h%0bz!DiG;R=)Hijv`Nu8-Bkt|~1teY%S zYv+RLQ5)?=$%z{kJ5j-e;Yk)WB1uY-Us@fzJ6_7u4ueAfD8nd;V#LSYcDiHavj1(1sjy;DNF$kAWED!Wkz6uQO*!kj##hrUm3!vc2}B;Az8>U2A@&r$Z| z{YhoDk^tP{UNDD~tB{l|(yE`CMFdQfTiU6YLI-(6MN9<6#srO+NO# zqJV$+4F#dGEW8o3gmSvdgDGWmY?cT(3#jzLJ6t2NSOt|0hKCNvVc9143bC;VRAuC&SIxl&EH=lst zu$9STJFaue@2r8&oxydTWp>%E_`&SjrN+zJwyd`k%6~|q$4?2}_?sI!=P%DZ+KT8e z-Td$ZCs!BUd;xZs2?|17@M2khScZl+cl3vp5~xje^#5S*P2j2Qx`y$~iP9-Wp)@(D zoXqo(IiyLBDG5m&B2#8ErJ__MA(fnzOd)eJ6_p}17!r~Ul_`;Ai2vHxq3-VcexCPv zzW4pU-~avnp2IoUu=iej?KSPS*WUZOQtWU2sIp{E-O{E5N_<8?Zu!dYvulr2tD{UO zUrF582s!)4%dx4?@WWBrvv2IC2mJH)JKNsBWZG40C?+O(c1TRpNO|$lt`+l?7x$|T zUWPb*c(w^&Fi*%t#J8P%2NP0>p$x}}%rpj8{rj{72e4748bmXND<~o(*uZ-tZ0TX& z=odp7VE_CI>J?17^21MpJjJxQyoxoI-Evd#03iYP0Kx`VW-_w?90_C)ED?-v74N0+ zBAs>HtRF`hS2pXc7g5e!FV1Qc$M%TrDWhrp3O-h@KK@5f4sQsZXPte+c+Vbed3n?H zO}`7x$Cr-s^`EyUCu8uIG0S7Yi<3jG<l~2i%57~fn*Sk5L1Z=b#a6Ge<+jR)DM&aRKL9WO!?MVMGptQ!o>R9?|}DS=ONc`^6x^HN>{zUJG7ulA^cIUPkv!X zYnb44dWP3h(@=IfrSz~5{t_)2D$(Ym1xu5^6+Cs|M)9y16W2yThZvR@i;l0fdVY5! zmVDq6wsIwD(Xk-x?%ZL%1V#eR2*5ikY3fu?FY(%>sN3@g3~cqQ>~8G1wuiRb{YawD zrnGYc-unU_8XiX}-pY_l>9%7iFj}Qsb?=_rji}`LZDyNwtD;P9Z4`Jcclkaw6k8NB ze^Ve3W96m5+RMTn6;~!Lf<=@j^I9rp#4l`fl@y-AmgY=vzoK(oHloQsCZjEFRoT

mhuL|0~|_7StE% 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

J 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 diff --git a/ref/disk_image_files.txt b/ref/disk_image_files.txt index 17096d0..d398e54 100644 --- a/ref/disk_image_files.txt +++ b/ref/disk_image_files.txt @@ -18,13 +18,17 @@ Each record is composed of 3 fields: Logical Size Code, ID, DATA +--------+----------+---------------------------------------+ A *.pdd2 TPDD2 disk image file is composed of 160 records. -Each record is composed of 2 fields: METADATA, DATA +Each record is composed of 3 fields: ID, unknown, DATA +----------+------------------------------------------------+ - | META | DATA | - +----------+------------------------------------------------+ - | 4 bytes | 1280 bytes | - +----------+------------------------------------------------+ + | ID | ? | DATA | + +----------+--------+---------------------------------------+ + | 12 bytes | 1 byte | 1280 bytes | + +----------+--------+---------------------------------------+ + +The unknown byte on tpdd2 is an extra byte that isn't described in the +manual, but exists in ram after the ID section, and it can be written +and read back from disk, so it is part of the disk image format. There are no delimiters or other formatting bytes anywhere. diff --git a/ref/tsdos_mystery_1.txt b/ref/tsdos_mystery_1.txt deleted file mode 100644 index d5911e5..0000000 --- a/ref/tsdos_mystery_1.txt +++ /dev/null @@ -1,202 +0,0 @@ -TS-DOS "mystery command 1" - -Summary: 0x31 is a TPDD2 sector cache write command which TS-DOS uses to detect a TPDD2 drive. - -This code used to refer to something it called TS-DOS mystery command 1 -Most other tpdd emulators do as well. - -TS-DOS performs a few different tests at start-up to determine if the drive is a TPDD1, -TPDD2, or an emulator that supports TS-DOS directory extensions. - -The complete detection routine can be seen in the TS-DOS disassembly here: -http://bitchin100.com/wiki/index.php?title=M100_TS-DOS_ROM_TPDD_Protocol -See these sections: - ; Configure baud, test for NADSBox, get NADSBox dir - ; Send mystery opcodes - ; Send M1 and test for NADSBox / Desklink response - ; Strings and table data - -In total TS-DOS sends a few different odd commands: - * 0x23 - * 0x31 - * slightly malformed FDC/Operation mode switch commands that - TS-DOS and Desk-Link(1)(2) use to mutually recognize each other. - -This document only covers the 0x31 command. - -In TS-DOS, this command appears to be used only for detecting a TPDD2 drive. - -IE probably not also part of detecting Desk-Link, because that is handled by -the special TPDD1 FDC/Operation mode switch flip flop sequence, aka "DMEReq". -http://bitchin100.com/wiki/index.php?title=Desklink/TS-DOS_Directory_Access - -What 0x31 really is, to a TPDD2 drive: - -Request 0x31 is used to write data from the client to the sector cache in a -TPDD2 drive (1280 bytes of ram in the drive that holds one full disk sector). -The command has 2 "modes" (2 known so far). "mode 0" takes normal data that -eventually gets written to the data section of a disk sector. "mode 1" takes -sector metadata that gets written to the disk but outside of the data section -of a given sector, like in the ID section, and/or drive control instructions -that don't get written to disk anywhere. - -TS-DOS sends 3 different static/canned "mode 1" commands, and apparently -only looks at the length of the response to see if it is a single byte or not. - -The format of a cache write command is: -preamble | cmd | len | mode | o_msb | o_lsb | data... | checksum -0x5A 0x5A | 0x31 | ## | ## | ## | ## | ## ... | ## - -len is a single byte representing the length of the mode through data fields, -inclusive. data may range from 0x00 to 0x40 bytes long, so len is 0x03 to 0x43 - -mode is a single byte 0x00 or 0x01 - -o_msb is a single byte, MSB of the offset into the full sector - -o_lsb is a single byte, LSB of the offset into the full sector - -data is 0 to 64 bytes of payload data - -checksum is a single byte standard tpdd checksum of the mode through data fields inclusive - - -TS-DOS has the following canned 0x31 commands that it sends during start-up: -4AE9H DB "ZZ1",0x04,0x01,0x00,0x84,0xFF,"F" -4AF0H DB "ZZ1",0x04,0x01,0x00,0x96,0x0F,0x24 -4AF9H DB "ZZ1",0x04,0x01,0x00,0x94,0x0F,0x26 - -The "1" in "ZZ1" is really 0x31, but the disassembler just decided -"ZZ1" looked like a string and represented it that way. -The same goes for the "F". It's not a letter "F", it's a checksum -that works out to 0x46, which happens to also be ascii "F". - -The disassembly above could more properly be re-written as: - -4AE9H DB 0x5A,0x5A,0x31,0x04,0x01,0x00,0x84,0xFF,0x46 -4AF0H DB 0x5A,0x5A,0x31,0x04,0x01,0x00,0x96,0x0F,0x24 -4AF9H DB 0x5A,0x5A,0x31,0x04,0x01,0x00,0x94,0x0F,0x26 - -The command breaks down as: - -0x5A Z preamble 1/2 -0x5A Z preamble 2/2 -0x31 REQ_CACHE_WRITE -0x04 4 bytes packet length -0x01 1/4: mode 1 (metadata/control, not normal data) -0x00 2/4: offset msb -0x84 3/4: offset lsb -0xFF 4/4: data (single byte of actual payload data, unknown function) -0x46 checksum from 0x31 to 0xFF - -The following bash one-liner corroborates the checksum -$ printf '0x%x\n' $(( ( (0x31+0x04+0x01+0x00+0x84+0xff) & 0xff ) ^ 0xff )) -0x46 - -So now you could add comments to the disassembly: -4AE9H DB 0x5A,0x5A,0x31,0x04,0x01,0x00,0x84,0xFF,0x46 ; tpdd2_cache_write mode:1 offset:132 data:255 -4AF0H DB 0x5A,0x5A,0x31,0x04,0x01,0x00,0x96,0x0F,0x24 ; tpdd2_cache_write mode:1 offset:150 data:16 -4AF9H DB 0x5A,0x5A,0x31,0x04,0x01,0x00,0x94,0x0F,0x26 ; tpdd2_cache_write mode:1 offset:148 data:16 - -(assuming the "offset" bytes do mean "offset" in mode 1 the way - they do in mode 0, which is not a safe assumption) - -"mode 1" cache writes have unknown function, but appear to have both metadata -and drive control functions. - -Some mode 1 cache writes do not appear to end up written to disk, but some do. - -The TPDD2 disk backup utility sends 3 0x31 commands for every sector, after -filling the sector cache, to write the cache to disk. - -The first 2 of those are always the same and do not appear to be written to disk, -which suggests they are drive control commands. Since they come *after* -filling the cache from the client, they can't be for instance, to clear -the cache to all 00's, so it's unknown what they do. - -The 3rd contains data that is different if the normal data for the -assosciated sector is different, and this data may be read back from a disk -later by doing a cache read command with the same mode 1 flag at the same -"offset" (assuming again), after loading the same physical sector from disk -into cache with the 0x30 command. Which suggests that 3rd 0x31 is metadata, -stored somewhere on-disk but not in the data part of a sector. - -This much has been verified at least in so far as simply aping the actions -of the TPDD2 backup util is enough to produce functional copies of disks. -https://github.com/bkw777/pdd.sh implements this and can successfully copy -TPDD2 disks, including "special" ones like the TPDD2 utility disk which has -strange data that no normal tpdd client can copy. - -To show it in action, here is a log of traffic at the end of a sector-write -during a TPDD2 disk copy. Excerpted from the full session capture here: -https://trs80stuff.net/tpdd/tpdd2_boot_disk_backup_log_hex.txt - -There are 4 commands here, in order: 0x31, 0x31, 0x30, 0x31. -They are coming after one full sector cache has been filled, and now -needs to be written to disk. - -The first 2 0x31 comands and 0x38 responses are identical for every sector. -The data from those commands does not appear to be written to disk, so they -appear to be drive control commands. - -The 0x30 is telling the drive what physical track & sector on the disk to -work on, and in which direction, cache-to-disk or disk-to-cache. -5A 5A 30 05 02 00 04 00 01 C3 - -5A preamble 1/2 -5A preamble 2/2 -30 REQ_CACHE_LOAD -05 5 bytes packet length -02 1/5 mode 2 (00=disk-to-cache 02=cache-to-disk) -00 2/5 unknown (always 00) -04 3/5 track number 4 (00-4F) -00 4/5 unknown (always 00) -01 5/5 sector number 1 (00-01) -C3 checksum - -So this is committing the cache to the physical media at track 5 sector 1. - -The final 0x31 IS written to disk, and can be read back from the disk later, -but does not appear anywhere in the data block of any sector. There are other -parts of the physical disk that hold metadata and housekeeping data that the -drive itself uses internally as part of the filesystem. This must be stored -in one of those areas. - -The 0x38 responses from the drive are the standard/shared response block -for both REQ_CACHE_LOAD (0x30) and REQ_CACHE_WRITE (0x31), and in this case -all 4 of these responses just says -"cache action (0x38) mode 1 (0x01) success (0x00) checksum (0xC6)" - -[M100] - 5A 5A 31 04 01 00 83 00 46 -[TPDD] - 38 01 00 C6 -[M100] - 5A 5A 31 04 01 00 96 00 33 -[TPDD] - 38 01 00 C6 -[M100] - 5A 5A 30 05 02 00 04 00 01 C3 -[TPDD] - 38 01 00 C6 -[M100] - 5A 5A 31 07 01 80 04 96 FF 00 00 AD -[TPDD] - 38 01 00 C6 - -The upshot of all this is that TS-DOS is using this command to tickle TPDD2 -drives in a way that is only meaningful to TPDD2 drives, is harmlessly ignored -by TPDD1 drives and un-aware emulators, does not modify disk contents even on a -TPDD2, but lets TS-DOS detect that the drive is a TPDD2 from the responses. - -It doesn't *appear* to be doing anything else like configuring some aspect of -drive behavior, but since we don't know exactly what those commands do, it could be. - - ------------------------------------------------------------------------------------- - -(1) The original commercial MS-DOS Booster-Link / Desk-Link, - from the same Travelling Software as TS-DOS. - https://ftp.whtech.com/club100/com/dl-arc.exe.gz - $ strings DESKLINK.COM |less - DESK-LINK (version 1.05) - (c) 1987, Traveling Software, Inc. - - -(2) The NADSBox references in the TS-DOS disassembly are the disassembler's remarks, -not part of the original source code. Originally, Travelling Software made both -TS-DOS and Desk-Link, and gave them both this extra functionality when used -together, many years before NADSBox existed. The disassembly was made later by -Ken Petit, who also made the NADSBox. From 002dcf068b7d22a1651197c13962d0226f65bd06 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 30 Jan 2024 15:57:18 -0500 Subject: [PATCH 151/206] readme --- README.md | 43 ++++++++++++++++++++++++++----------------- ref/pdd2_ram.txt | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 17 deletions(-) create mode 100644 ref/pdd2_ram.txt diff --git a/README.md b/README.md index bc39942..6db4bb2 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,8 @@ $ sudo make uninstall ## Manual ``` $ dl -h -DeskLink+ v1.5.010-90-gf089dd1 -dl - DeskLink+ v1.5.010-90-gf089dd1 - main help +DeskLink2 v2.0.000-61-g25f82e2 +dl - DeskLink2 v2.0.000-61-g25f82e2 - main help usage: dl [options] [tty_device] [share_path] @@ -30,43 +30,52 @@ options: -i file Disk image file for raw sector access, TPDD1 only -l List loader files and show bootstrap help -m model Model: 1 for TPDD1, 2 for TPDD2 (2) - -p dir Share path - directory with files to be served (.) + -p dir Share path - directory with files to be served (./) -r RTS/CTS hardware flow control -s # Speed - serial port baud rate 9600 or 19200 (19200) -u Uppercase all filenames -v Verbose/debug mode - more v's = more verbose -w WP-2 mode - 8.2 filenames - -z # Milliseconds per byte for bootstrap (7) + -z # Milliseconds per byte for bootstrap (8) The 1st non-option argument is another way to specify the tty device. The 2nd non-option argument is another way to specify the share path. dl - dl -vvvu -p ~/Downloads/REX/ROMS - dl -vw ttyUSB1 ~/Documents/wp2files + dl -vvu -p ~/Downloads/REX/ROMS + dl -v -w ttyUSB1 ~/Documents/wp2files $ ``` ``` $ dl -l -dl - DeskLink+ v1.5.010-47-g93f3db4 - "bootstrap" help +DeskLink2 v2.0.000-61-g25f82e2 +Available support files in /usr/local/lib/dl -Available loader files (in /usr/local/lib/dl): +Loader files for use with -b: +----------------------------- +TRS-80 Model 100/102 : PAKDOS.100 TINY.100 D.100 TEENY.100 TS-DOS.100 DSKMGR.100 TSLOAD.100 +TANDY Model 200 : PAKDOS.200 TEENY.200 TSLOAD.200 TS-DOS.200 DSKMGR.200 +NEC PC-8201/PC-8300 : TS-DOS.NEC TEENY.NEC +Kyotronic KC-85 : Disk_Power.K85 DSKMGR.K85 +Olivetti M-10 : TEENY.M10 DSKMGR.M10 -TRS-80 Model 100 & 102 : TEENY.100 TINY.100 TS-DOS.100 DSKMGR.100 -TANDY Model 200 : TEENY.200 TS-DOS.200 DSKMGR.200 -NEC PC-8201(a)/PC-8300 : TEENY.NEC TS-DOS.NEC -Kyotronic KC-85 : DSKMGR.K85 Disk_Power.K85 -Olivetti M-10 : DSKMGR.M10 TEENY.M10 +Disk image files for use with -i: +--------------------------------- +Sardine_American_English.pdd1 +Disk_Power.K85.pdd1 -Filenames without any leading path are searched from above -if not found in the current directory. + +Filenames given without any path are searched from /usr/local/lib/dl +as well as the current dir. Examples: dl -b TS-DOS.100 - dl -vb ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 - dl -vb rxcini.DO + dl -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 + dl -vb rxcini.DO && dl -vu + dl -vue -m 1 -i Sardine_American_English.pdd1 +$ ``` Several of the above settings can alternatively be supplied via environment variables, as well as a few other [hacky extra options](ref/advanced_options.txt) diff --git a/ref/pdd2_ram.txt b/ref/pdd2_ram.txt new file mode 100644 index 0000000..2f760a7 --- /dev/null +++ b/ref/pdd2_ram.txt @@ -0,0 +1,36 @@ +TPDD2 2k ram map + +read sector 68 from disk into cache +sector 68 is track 34 sector 0 +PDD(pdd2[0]:6.2,F)> cache 34 0 0 + +read the entire 2k external ram +PDD(pdd2[0]:6.2,F)> mem_read 1 0x8000 0x800 + +2k ram includes both the 1280 byte DATA and the 19-byte ID section +ram starts at 0x8000 +ID starts at 0x8004 +DATA aka Sector Cache starts at 0x8013 + +8000: 05 length MSB always 0x0513 = 1299 +8001: 13 length LSB +8002: 44 sector number 0x44 = 68 = track 34 sector 0 +8003: 00 side# or logical size code? always 00 +8004: 96 start of ID +8005: FF +8006: 46 +8007: 75 end of 4-byte ID from BACKUP.BA +8008: 00 +8009: 00 +800A: 00 +800B: 00 +800C: 00 +800D: 00 +800E: 00 +800F: 00 end of full 12-byte ID +8010: 00 logical size code? always 00 but can be written and read back from disk. +8011: EC ??? maybe id-crc msb changes when id data changes & saved & reloaded from disk +8012: 8E ??? maybe id-crc lsb +8013: start of DATA +... + From 9a35c63828ab37722a09aae78c26e2e0baa2f3cc Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 30 Jan 2024 16:00:18 -0500 Subject: [PATCH 152/206] help --- dl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dl.c b/dl.c index 2ae9cb8..d9a5895 100644 --- a/dl.c +++ b/dl.c @@ -2021,7 +2021,7 @@ void show_config () { void show_main_help() { dbg(0, - "%1$s - " APP_NAME " " APP_VERSION " - main help\n\n" + //"%1$s - " APP_NAME " " APP_VERSION "\n\n" "usage: %1$s [options] [tty_device] [share_path]\n" "\n" "options:\n" From fe1a4ce164fc9fb473eacc5d503fd3fd858d182e Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 30 Jan 2024 16:02:18 -0500 Subject: [PATCH 153/206] help & readme --- README.md | 1 - dl.c | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 6db4bb2..68dc51d 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,6 @@ $ sudo make uninstall ``` $ dl -h DeskLink2 v2.0.000-61-g25f82e2 -dl - DeskLink2 v2.0.000-61-g25f82e2 - main help usage: dl [options] [tty_device] [share_path] diff --git a/dl.c b/dl.c index d9a5895..23eb6ca 100644 --- a/dl.c +++ b/dl.c @@ -2020,9 +2020,7 @@ void show_config () { } void show_main_help() { - dbg(0, - //"%1$s - " APP_NAME " " APP_VERSION "\n\n" - "usage: %1$s [options] [tty_device] [share_path]\n" + dbg(0,"\nusage: %1$s [options] [tty_device] [share_path]\n" "\n" "options:\n" " -0 Raw mode - no filename munging, attr = ' '\n" From bb78fa1834cc77b5c7c9ebff571f27d2a6a84a66 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 31 Jan 2024 17:36:32 -0500 Subject: [PATCH 154/206] docs & comments --- README.md | 26 +++++++++--------- constants.h | 6 ++--- dir_list.c | 6 ++--- dir_list.h | 6 ++--- ref/disk_image_files.txt | 58 +++++++++++++++++++--------------------- 5 files changed, 49 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index 68dc51d..0d982db 100644 --- a/README.md +++ b/README.md @@ -117,17 +117,17 @@ This allows you to keep the TS-DOS and/or Sardine executables on the disk instea Similarly, a stand-alone program called TSLOAD is available that does the same thing. TSLOAD allows you to install an executable in ram that is much smaller than TS-DOS, and leave the actual TS-DOS executable on the disk. Then when you want to use TS-DOS, to run TSLOAD, and it loads TS-DOS from the disk and runs it, but does not install it. On a real drive this requires keeping a copy of DOS100.CO (or DOS200.CO, or DOSNEC.CO, and/or SAR100.CO, SAR200.CO etc) on a disk, or on every disk if you want to avoid having to swap them all the time. -On an emulator like dlplus, the equivalent of that would mean keeping a copy of DOS100.CO in whatever directory you are sharing. -Additionally, since dlplus can CD into subdirectories, and since UR2 doesn't know about subdirectories, it means you would also have to keep a copy in every subdirectory. -(if you didn't , then what can happen is, you cd into some directory without a copy of DOS100.CO in it, exit TS-DOS, and then you can never get back in to TS-DOS because the UR2/TSLOAD don't know about cding up to the root directory, they just try to load DOS100.CO, which fails. The only fix is to restart dlplus so it's no longer cd'd in some subdirectory, or copying DOS100.CO to the subdirectory on the host side.) +On an emulator like dl2, the equivalent of that would mean keeping a copy of DOS100.CO in whatever directory you are sharing. +Additionally, since dl2 can CD into subdirectories, and since UR2 doesn't know about subdirectories, it means you would also have to keep a copy in every subdirectory. +(if you didn't , then what can happen is, you cd into some directory without a copy of DOS100.CO in it, exit TS-DOS, and then you can never get back in to TS-DOS because the UR2/TSLOAD don't know about cding up to the root directory, they just try to load DOS100.CO, which fails. The only fix is to restart dl2 so it's no longer cd'd in some subdirectory, or copying DOS100.CO to the subdirectory on the host side.) -But this version of dlplus has special support for this feature so that the TS-DOS and Sardine entries in UR-II always work "by magic" in any directory, even if the files don't exist in the current working directory, or the share root, or anywhere within the shared tree. +But dl2 has special support for this feature so that the TS-DOS and Sardine entries in UR-II always work "by magic" in any directory, even if the files don't exist in the current working directory, or the share root, or anywhere within the shared tree. -There are copies of [DOS100.CO](clients/ts-dos/DOS100.CO), [DOS200.CO](clients/ts-dos/DOS200.CO), [DOSNEC.CO](clients/ts-dos/DOSNEC.CO) ,[SAR100.CO](clients/ts-dos/SAR100.CO) and [SAR200.CO](clients/ts-dos/SAR200.CO) installed to ```/usr/local/lib/dl``` by ```sudo make install```. (Sadly, no SARNEC.CO . It is known to have existed, but is currently still lost to time. If you have a copy, please upload it! There may or may not have ever existed any versions of TS-DOS or Sardine for Olivetti M10 or Kyotronic KC-85, but the code in dlplus is ready to support them if they ever turn up, or any other files you may wish to work by magic like that.) +There are copies of [DOS100.CO](clients/ts-dos/DOS100.CO), [DOS200.CO](clients/ts-dos/DOS200.CO), [DOSNEC.CO](clients/ts-dos/DOSNEC.CO) ,[SAR100.CO](clients/ts-dos/SAR100.CO) and [SAR200.CO](clients/ts-dos/SAR200.CO) installed to ```/usr/local/lib/dl``` by ```sudo make install```. (Sadly, no SARNEC.CO . It is known to have existed, but is currently still lost to time. If you have a copy, please upload it! There may or may not have ever existed any versions of TS-DOS or Sardine for Olivetti M10 or Kyotronic KC-85, but the code in dl2 is ready to support them if they ever turn up, or any other files you may wish to work by magic like that.) -When the client machine requests any of these filenames, dlplus first looks in the current directory like normal. If a file matching the requested filename is there, that is what is used, just like for any other file. This can be used to override the files bundled with dlplus, just for the current working directory. -Failing that, then it looks in the root share dir. This is another way to override the files bundled with dlplus, for the entire shared directory tree. -Failing that, it gets the file from /usr/local/lib/dl. These files are bundled with dlplus, and means you never have to manually supply DOS100.CO or any of the others in any share paths. +When the client machine requests any of these filenames, dl2 first looks in the current directory like normal. If a file matching the requested filename is there, that is what is used, just like for any other file. This can be used to override the files bundled with dl2, just for the current working directory. +Failing that, then it looks in the root share dir. This is another way to override the files bundled with dl2, for the entire shared directory tree. +Failing that, it gets the file from /usr/local/lib/dl. These files are bundled with dl2, and means you never have to manually supply DOS100.CO or any of the others in any share paths. This way the TS-DOS and Sardine options in Ultimate ROM II always work "by magic" without you having to do anything to provide the files like with a real drive & disk, yet if you want to use some other version of the files, you can, by just placing them in the share path just like placing them on a disk. There are bootstrap installers for TSLOAD for Model 100 and 200 bundled with the other client installers. @@ -155,7 +155,7 @@ Those examples are both TPDD1 disks, but both TPDD1 and TPDD2 are supported. The Example, using Sardine with a Model 100 with [Ultimate ROM II](http://www.club100.org/library/librom.html): One way to use Sardine is to let UR-II load/unload the program from disk into ram on the fly instead of installing permanently in ram like normal. Sardine uses raw sector access commands to read a special dictionary data disk. For this to work, UR-II has to be able to load SAR100.CO from a normal filesystem disk using normal file/filesystem access, and then SAR100.CO needs to be able to read raw sectors from the special dictionary data disk. -This involves two features of dlplus. First, **magic files**. SAR100.CO is one of the "magic" files bundled with the app, which are always loadable from a client at any time from any directory even if there is no such file in the directory being served as the virtual "disk". When UR-II tries to load a file by that particular name, if there is a file by that name in the current working directory it is used, but if there is no such file, dlplus just serves up the one from /usr/local/lib/dl, and the client never knows the difference. +This involves two features of dl2. First, **magic files**. SAR100.CO is one of the "magic" files bundled with the app, which are always loadable from a client at any time from any directory even if there is no such file in the directory being served as the virtual "disk". When UR-II tries to load a file by that particular name, if there is a file by that name in the current working directory it is used, but if there is no such file, dl2 just serves up the one from /usr/local/lib/dl, and the client never knows the difference. Second, **disk image files and sector-access commands**. If a disk image file is loaded with the **-i** option, then when a client tries to use sector-access commands, they work, and the data reads from / writes to the image file. If the specified filename does not exist it will be created if/when the client issues a format command. If the specified filename does not exist and, is not given with any leading path, then it is searched for in /usr/local/lib/dl, as a few special disks are bundled with the app, and the Sardine dictionary disk is one such. To try it out, @@ -164,8 +164,8 @@ To try it out, ``` $ dl -vue -m 1 -i Sardine_American_English.pdd1 ``` -This set of flags tells dlplus to strictly emulate a TPDD1, disable some TPDD2 features and TS-DOS directory support which confuse SAR100.CO, and use the Sardine American English dictionary disk image file for any sector-access commands the client might issue. -SAR100.CO is always being provided by default regardless of any commandline options so you don't have to do anything extra for that, and assuming "Sardine_American_English.pdd1" doesn't exist in your current working directory, dlplus will use the copy in /usr/local/lib/dl. +This set of flags tells dl2 to strictly emulate a TPDD1, disable some TPDD2 features and TS-DOS directory support which confuse SAR100.CO, and use the Sardine American English dictionary disk image file for any sector-access commands the client might issue. +SAR100.CO is always being provided by default regardless of any commandline options so you don't have to do anything extra for that, and assuming "Sardine_American_English.pdd1" doesn't exist in your current working directory, dl2 will use the copy in /usr/local/lib/dl. The disk image file is marked read-only and behaves the same as a normal disk with the write-protect notch open (write-protected). 2: Enter the UR-2 menu. @@ -178,13 +178,13 @@ Notice the SARDIN entry now says "ON" under it. 3: Enter T-Word and start a new document and type some text. 4: Press GRPH+F to invoke Sardine to spell-check the document. -This will invoke the SAR100.CO previously loaded, which will try to use TPDD1 FDC-mode sector access commands, wich dlplus will respond to with data from the .pdd1 file. +This will invoke the SAR100.CO previously loaded, which will try to use TPDD1 FDC-mode sector access commands, wich dl2 will respond to with data from the .pdd1 file. Another example, [installing Disk Power for Kyotronic KC-85](clients/disk_power/Disk_Power.txt) Disk image files may be created 2 ways: * One method is you may use the **dd** command within [pdd.sh](https://github.com/bkw777/pdd.sh) to read a real TPDD1 or TPDD2 disk from a real TPDD1 or TPDD2 drive, and output a disk image file. -* Another method is you may run `dl -v -m 1 -i filename.pdd1` (for TPDD1) or `dl -v -m 2 -i filename.pdd2` (for TPDD2) where filename.pddN either doesn't exist or is zero bytes, and then use a client (like TS-DOS or pdd.sh) to format the "disk". The format command will cause dlplus to generate the empty disk image. +* Another method is you may run `dl -v -m 1 -i filename.pdd1` (for TPDD1) or `dl -v -m 2 -i filename.pdd2` (for TPDD2) where filename.pddN either doesn't exist or is zero bytes, and then use a client (like TS-DOS or pdd.sh) to format the "disk". The format command will cause dl2 to generate the empty disk image. In the case of TPDD1, there is more than one kind of format command. If the client uses the "Operation-mode" format command, the generated disk image will be a valid filesystem disk, which just means it will have a particular logical sector size (64 bytes) and valid Space Management Table and File Control Blocks. If the client uses the "FDC-mode" format command then the generated image will be a raw data format not a filesystem disk. This just means it will have whatever logical sector size was specified by the parameters to the format command, and no SMT or FCB data, and won't be usable for saving files. In both cases, this mimics what a real drive does. TPDD2 does not have an "FDC-mode" and there is only one kind of format command and only one kind of new empty disk format. diff --git a/constants.h b/constants.h index 1162a40..4a2797e 100644 --- a/constants.h +++ b/constants.h @@ -197,8 +197,8 @@ //#define MODEL 0xE1 // flags -#define FE_FLAGS_NONE 0x00 -#define FE_FLAGS_DIR 0x01 +#define FE_FLAGS_NONE 0 +#define FE_FLAGS_DIR 1 #define NO_RET 0 #define ALLOW_RET 1 #define CACHE_LOAD 0 @@ -213,6 +213,6 @@ #define LOCAL_EOL 0x0A #define OPR_CMD_SYNC 0x5A -#define FDC_CMD_EOL 0x0D +#define FDC_CMD_EOL 0x0D #endif // PDD_CONSTANTS_H diff --git a/dir_list.c b/dir_list.c index 08f4669..93df7b8 100644 --- a/dir_list.c +++ b/dir_list.c @@ -1,13 +1,13 @@ /* -DeskLink+ +DeskLink2 Extensions and enhancements Copyright (C) 2005 John R. Hogerhuis Copyright (c) 2022 Gabriele Gorla -DeskLink+ is free software; you can redistribute it and/or modify it +DeskLink2 is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or any later as version as published by the Free Software Foundation. -DeskLink+ is distributed in the hope that it will be useful, but +DeskLink2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. diff --git a/dir_list.h b/dir_list.h index 9635027..2e0706a 100644 --- a/dir_list.h +++ b/dir_list.h @@ -1,13 +1,13 @@ /* -DeskLink+ +DeskLink2 Extensions and enhancements Copyright (C) 2005 John R. Hogerhuis Copyright (c) 2022 Gabriele Gorla -DeskLink+ is free software; you can redistribute it and/or modify it +DeskLink2 is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or any later as version as published by the Free Software Foundation. -DeskLink+ is distributed in the hope that it will be useful, but +DeskLink2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. diff --git a/ref/disk_image_files.txt b/ref/disk_image_files.txt index d398e54..d4cc843 100644 --- a/ref/disk_image_files.txt +++ b/ref/disk_image_files.txt @@ -1,9 +1,6 @@ Disk Image Files -This feature is new and limited at present. - -The -i option takes a filename of a disk image file of a TPDD1/FB-100 or -TPDD2 disk image. +The -i option takes a filename of a disk image file. If the file does not already exist, and the client issues a format command, the file will be created and filled with nulls and sector headers. @@ -21,59 +18,58 @@ A *.pdd2 TPDD2 disk image file is composed of 160 records. Each record is composed of 3 fields: ID, unknown, DATA +----------+------------------------------------------------+ - | ID | ? | DATA | + | ID | ? | DATA | +----------+--------+---------------------------------------+ | 12 bytes | 1 byte | 1280 bytes | +----------+--------+---------------------------------------+ The unknown byte on tpdd2 is an extra byte that isn't described in the -manual, but exists in ram after the ID section, and it can be written -and read back from disk, so it is part of the disk image format. - -There are no delimiters or other formatting bytes anywhere. +manual, but exists in ram on a drive after the ID section, and it can be +written and read back from disk, so it is part of the disk image format. -See the software manual in the ref/ directory and github.com/bkw777/pdd.sh -for the info about the contents of the fields and how they are accessed. +There are no delimiters or other formatting or header. Currently, disk image files are only usable for sector access commands. -Meaning you can not use dlplus to access the files within a disk image, +Meaning you can not use dl2 to access the files within a disk image, only read and write the raw sectors. Two example uses so far are the dictionary disk for Sardine, and the install disk for Disk Power KC-85. -Sardine's dictionary disk is a pure data disk with no filesystem. +Sardine's dictionary disk is a pure data disk with no filesystem, +and so Sardine uses FDC-mode to access the sectors like a database. -Disk Power's install disk is a normal disk with a filesystem and files, -but the installer uses sector-access commands to read 4 64-byte chunks -of raw data from an unmarked sector. +The install disk for Disk Power is seemingly a normal disk with a filesystem +and files, but there is also non-file data in some sectors that the filesystem +doesn't know about, and the installer uses sector-access commands to read +4 64-byte chunks of raw data from an unmarked sector. Generally, you also need to use some extra commandline options to disable -TS-DOS DME support (-e), and to force TPDD1-only or TPDD2-only emulation -(-m 1) or (-m 2). Example: +TS-DOS directory extensions support (-e), and to force stricter TPDD1-only +or TPDD2-only emulation (-m 1) or (-m 2). Example: $ dl -vue -m 1 -i Sardine_American_English.pdd1 It's not a requirement to use disk images in general, it's just that in both -real examples known so far, the client software triggers unexpected responses +of these real examples above, the client software triggers unexpected responses from the server that a real drive wouldn't do, so the extra options make the server act more like a real drive, as the client software expects. Disk image files can be created with https://github.co/bkw777/pdd.sh -dlplus can also create new disk images from client-issued format and sector +dl2 can also create new disk images from client-issued format and sector access commands. Example: run "$ dl -vve -m 1 -i ./newdisk.pdd1" -and then use a client to "format" and write data with sector access commands. - -For TPDD1, both the fdc-mode the opr-mode format commands do what a real drive -does. The fdc-mode format just generates all nulls and the one logical size -code byte per record, which creates a raw data disk with no filesystem like the -Sardine dictionary disk. The opr-mode format command does the same as fdc-mode -format with logical size code 0 (64-byte logical sectors) and then writes the -single byte of non-null data at the right address to create a valid Space -Management Table, which makes the disk into a functioning filesystem disk. -(If you took the generated .pdd1 or .pdd2 file and used pdd.sh to "restore" it -to a real disk, that disk would be a functioning filesystem disk) +and then use a client to "format" the "disk". + +For TPDD1, both the FDC-mode the Operation-mode format commands do what a real +drive does. The FDC-mode format just generates all nulls and the one logical +size code byte per record, which creates a raw data disk with no filesystem, +like the Sardine dictionary disk. The Operation-mode format command does the +same as FDC-mode format with logical size code 0 (64-byte logical sectors) and +then writes the single byte of non-null data at the right address to create a +valid Space Management Table, which makes the disk into a functioning filesystem +disk. (If you took the generated .pdd1 or .pdd2 file and used pdd.sh to "restore" +it to a real disk, that disk would be a functioning filesystem disk) Real disks can only be dumped or restored using the matching type of drive. Although a real TPDD2 drive can at least read a TPDD1 disk, you must use a From 21d0ac78875b5287929875c9316c4db40acc0ae1 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 1 Feb 2024 16:57:37 -0500 Subject: [PATCH 155/206] automatic find ttys --- Makefile | 10 +++--- constants.h | 8 +++-- dir_list.c | 22 ++++++------- dl.c | 92 ++++++++++++++++++++++++++++++++++------------------- 4 files changed, 82 insertions(+), 50 deletions(-) diff --git a/Makefile b/Makefile index a9ef1e2..861ab1e 100644 --- a/Makefile +++ b/Makefile @@ -61,14 +61,14 @@ SOURCES := dl.c dir_list.c HEADERS := dir_list.h constants.h ifeq ($(OS),Darwin) - #DEFAULT_CLIENT_TTY := cu.* + TTY_PREFIX := cu. else ifneq (,$(findstring BSD,$(OS))) - DEFAULT_CLIENT_TTY := ttyU0 + TTY_PREFIX := ttyU else ifeq ($(OS),Linux) - DEFAULT_CLIENT_TTY := ttyUSB0 + TTY_PREFIX := ttyUSB else - DEFAULT_CLIENT_TTY := ttyS0 + TTY_PREFIX := ttyS endif LDLIBS += -lutil endif @@ -83,7 +83,7 @@ DEFINES := \ -DAPP_NAME=\"$(APP_NAME)\" \ -DAPP_VERSION=\"$(APP_VERSION)\" \ -DAPP_LIB_DIR=\"$(APP_LIB_DIR)\" \ - -DDEFAULT_CLIENT_TTY=\"$(DEFAULT_CLIENT_TTY)\" + -DTTY_PREFIX=\"$(TTY_PREFIX)\" ifdef DEBUG CFLAGS += -g diff --git a/constants.h b/constants.h index 4a2797e..27f551d 100644 --- a/constants.h +++ b/constants.h @@ -167,6 +167,8 @@ #define SMT_OFFSET 1240 #define PDD1_SMT 0x80 #define PDD2_SMT 0xC0 +#define RAM_ADDR 0x8000 +#define RAM_LEN 0x0800 #define PDD2_ID_ADDR 0x8004 #define PDD2_MEM_READ_MAX 252 // real drive absolute limit #define PDD2_MEM_WRITE_MAX 127 // real drive absolute limit @@ -191,11 +193,13 @@ // TPDD2 sysinfo data: 80 13 05 00 10 E1 #define SECTOR_CACHE_START_MSB 0x80 #define SECTOR_CACHE_START_LSB 0x13 -#define SECTOR_CACHE_LEN_MSB 0x05 -#define SECTOR_CACHE_LEN_LSB 0x00 +//#define SECTOR_CACHE_LEN_MSB 0x05 // SECTOR_SIZE_MSB +//#define SECTOR_CACHE_LEN_LSB 0x00 // SECTOR_SIZE_LSB #define SYSINFO_CPU 0x10 // 0x10 = HD6301 //#define MODEL 0xE1 +#define PDD2_CACHE_ADDR (SECTOR_CACHE_START_MSB*256+SECTOR_CACHE_START_LSB) + // flags #define FE_FLAGS_NONE 0 #define FE_FLAGS_DIR 1 diff --git a/dir_list.c b/dir_list.c index 93df7b8..69df0d5 100644 --- a/dir_list.c +++ b/dir_list.c @@ -30,10 +30,10 @@ static uint16_t ndx; static uint16_t cur; static FILE_ENTRY* tblp = 0; -static FILE_ENTRY* current_record (void); +static FILE_ENTRY* current_record(void); -int file_list_init () { - tblp = malloc(sizeof (FILE_ENTRY) * FEQ ); +int file_list_init() { + tblp = malloc(sizeof(FILE_ENTRY)*FEQ); if (!tblp) return -1; allocated = FEQ; ndx = 0; @@ -50,15 +50,15 @@ int file_list_cleanup() { return 0; } -void file_list_clear_all () { +void file_list_clear_all() { cur = ndx = 0; } -int add_file (FILE_ENTRY* fe) { +int add_file(FILE_ENTRY* fe) { /* allocate FEQ more records if out of space */ if (ndx >= allocated) { /* resize the array */ - tblp = realloc(tblp, (allocated + FEQ) * sizeof (FILE_ENTRY) ); + tblp = realloc(tblp, (allocated+FEQ)*sizeof(FILE_ENTRY)); if (!tblp) return -1; allocated += FEQ; } @@ -74,7 +74,7 @@ int add_file (FILE_ENTRY* fe) { return 0; } -FILE_ENTRY* find_file (char* client_fname) { +FILE_ENTRY* find_file(char* client_fname) { int i; for (i=0;i ndx) return NULL; cur++; return current_record(); } -FILE_ENTRY* get_prev_file (void) { +FILE_ENTRY* get_prev_file(void) { if (cur==0) return NULL; cur--; return current_record(); } -static FILE_ENTRY* current_record (void) { +static FILE_ENTRY* current_record(void) { FILE_ENTRY* ep; if (cur >= ndx) return NULL; if (!tblp) return NULL; diff --git a/dl.c b/dl.c index 23eb6ca..773743a 100644 --- a/dl.c +++ b/dl.c @@ -66,15 +66,15 @@ MA 02111, USA. #ifndef APP_NAME -#define APP_NAME "DeskLink" +#define APP_NAME "DeskLink2" #endif #ifndef APP_LIB_DIR #define APP_LIB_DIR "." #endif -#ifndef DEFAULT_CLIENT_TTY -#define DEFAULT_CLIENT_TTY "ttyS0" +#ifndef TTY_PREFIX +#define TTY_PREFIX "ttyS" #endif #ifndef DEFAULT_CLIENT_BAUD @@ -129,7 +129,7 @@ bool rtscts = false; unsigned dot_offset = 6; // 0 for raw, 6 for KC-85, 8 for WP-2 int client_baud = DEFAULT_CLIENT_BAUD; int BASIC_byte_us = DEFAULT_BASIC_BYTE_MS*1000; -char client_tty_name[PATH_MAX] = DEFAULT_CLIENT_TTY; +char client_tty_name[PATH_MAX] = {0x00}; char disk_img_fname[PATH_MAX] = {0x00}; char app_lib_dir[PATH_MAX] = APP_LIB_DIR; char dme_root_label[7] = DEFAULT_DME_ROOT_LABEL; @@ -160,7 +160,7 @@ char ch[2] = {0xFF}; // 0x00 is a valid OPR command, so init to 0xFF //uint8_t img_header_len = SECTOR_HEADER_LEN; const uint16_t fdc_logical_size_codes[] = FDC_LOGICAL_SIZE_CODES; const char fdc_cmds[] = FDC_CMDS; -uint8_t rb[2048] = {0x00}; // disk image record buffer / virtual pdd2 ram +uint8_t rb[RAM_LEN] = {0x00}; // disk image record buffer / virtual pdd2 ram FILE_ENTRY* cur_file; int dir_depth=0; @@ -302,9 +302,8 @@ int check_disk_image () { if (disk_img_fname[0]) { struct stat info; stat(disk_img_fname, &info); - // allow missing or zero-byte file, - // we will create it if client issues format command - // but if file exists, sanity check based on size + // If file exists and >0 bytes, then sanity check based on the size, + // otherwise the format command will create it on the spot if needed. if (info.st_size) { if (model==1 && info.st_size != PDD1_IMG_LEN) { dbg(0,"Expected TPDD1 disk image file size %u\n",PDD1_IMG_LEN); @@ -316,37 +315,64 @@ int check_disk_image () { dbg(0,"\"%s\" is %u\n",disk_img_fname,info.st_size); return 1; } - //printf("%s: size=%ld\n", disk_img_fname, info.st_size); - //if (model==2 && info.st_size == PDD2_TRACKS*PDD2_SECTORS*(OLD_PDD2_HEADER_LEN+SECTOR_DATA_LEN)) { - // img_header_len = OLD_PDD2_HEADER_LEN; - // dbg(0,"Detected OLD TPDD2 disk image file format\n"); - //} } } return 0; } -// TODO - search for likely TTY(s) automatically -/* -void guess_client_tty () { - struct dirent *files; +// search for TTY(s) matching prefix +void find_ttys (char* f) { + dbg(3,"%s(%s)\n",__func__,f); + + // open /dev char path[] = "/dev/"; - DIR *dir = opendir(path); - if (dir == NULL){dbg(0,"Cannot open \"%s\"",path); return;} - int i; - while ((files = readdir(dir)) != NULL) { - for (i=strlen(files->d_name);files->d_name[i]!='/';i--); - if (!strcmp(files->d_name+i+1,match)) dbg(0," %s",files->d_name); + DIR* dir = opendir(path); + if (!dir){dbg(0,"Cannot open \"%s\"\n",path); return;} + + // read /dev + char** ttys = calloc(0,sizeof(*ttys)); + struct dirent *files; + int i=0, l=strlen(f); + dbg(2,"Searching for \"%s%s*\"\n",path,f); + while ((files = readdir(dir))) { + if (files->d_type==DT_DIR) continue; // may do nothing on some systems but that's ok + if (strncmp(files->d_name,f,l)) continue; + ttys = realloc(ttys,++i*sizeof(*ttys)); + ttys[i] = malloc(strlen(files->d_name)+1); + strcpy(ttys[i],files->d_name); } + closedir(dir); + + int n=0; + if (i==1) n=1; + while (!n) { + dbg(0,"\n"); + for (n=1;n<=i;n++) dbg(0,"%d) %s\n",n,ttys[n]); + n=0; char a[6]={0}; + dbg(0,"Which serial port is the TPDD client on (1-%d) ? ",i); + if (fgets(a,sizeof(a),stdin)) n=atoi(a); + if (n<1 || n>i) n=0; + if (a[0]=='q'||a[0]=='Q') break; + } + + client_tty_name[0]=0x00; + if (n) { + strcpy(client_tty_name,path); + strcat(client_tty_name,ttys[n]); + } + + free(ttys); } -*/ void resolve_client_tty_name () { dbg(3,"%s()\n",__func__); switch (client_tty_name[0]) { - case 0x00: break; + case 0x00: + find_ttys(TTY_PREFIX); + break; case '-': + // stdin/stdout mode, silence all messages - untested debug = 0; strcpy (client_tty_name,"/dev/tty"); client_tty_fd=1; @@ -376,10 +402,10 @@ void client_tty_vmt(int m,int t) { int open_client_tty () { dbg(3,"%s()\n",__func__); - if (!strcmp(client_tty_name,"")) { show_main_help() ;dbg(0,"Error: No serial device specified\n"); return 1; } + if (!client_tty_name[0]) { show_main_help() ;dbg(0,"Error: No serial device specified\n"); return 1; } dbg(0,"Opening \"%s\" ... ",client_tty_name); - // open with O_NONBLOCK to avoid hang from client not ready, then unset later. + // open with O_NONBLOCK to avoid hang if client not ready, then unset later. if (client_tty_fd<0) client_tty_fd=open((char *)client_tty_name,O_RDWR|O_NOCTTY|O_NONBLOCK); if (client_tty_fd<0) { dbg(0,"%s\n",strerror(errno)); return 1; } dbg(0,"OK\n"); @@ -391,7 +417,7 @@ int open_client_tty () { #if !defined(_WIN) if (getty_mode) { debug = 0; - if (login_tty(client_tty_fd)==0) client_tty_fd = STDIN_FILENO; + if (!login_tty(client_tty_fd)) client_tty_fd = STDIN_FILENO; else (void)(daemon(1,1)+1); } #endif @@ -1644,8 +1670,8 @@ void ret_sysinfo() { gb[1]=0x06; gb[2]=SECTOR_CACHE_START_MSB; gb[3]=SECTOR_CACHE_START_LSB; - gb[4]=SECTOR_CACHE_LEN_MSB; - gb[5]=SECTOR_CACHE_LEN_LSB; + gb[4]=SECTOR_SIZE_MSB; + gb[5]=SECTOR_SIZE_LSB; gb[6]=SYSINFO_CPU; gb[7]=MODEL; gb[8]=checksum(gb); @@ -1709,7 +1735,7 @@ void req_format() { if (e) { ret_std(e); return; } // write the image - // Real drive TPDD1 fresh OPR-mode format is strange. + // Real drive TPDD1 fresh Operation-mode format is strange. // Any sector with any data gets LSC 0, and all others get LSC 1. // Later, any sector that gets used by a file gets changed from LSC 1 to // LSC 0, and never changed back even when files are deleted. @@ -2026,7 +2052,7 @@ void show_main_help() { " -0 Raw mode - no filename munging, attr = ' '\n" " -a c Attr - attribute used for all files (%2$c)\n" " -b file Bootstrap - send loader file to client\n" - " -d tty Serial device connected to client (" DEFAULT_CLIENT_TTY ")\n" + " -d tty Serial device connected to the client\n" " -e Disable TS-DOS directory extension (enabled)\n" #if !defined(_WIN) " -g Getty mode - run as daemon\n" @@ -2118,7 +2144,9 @@ int main(int argc, char** argv) { // auto-completes & fixups if (model<1||model>2) model=2; + resolve_client_tty_name(); + check_disk_image(); find_lib_file(bootstrap_fname); (void)(getcwd(cwd,PATH_MAX-1)+1); From 6ff3a8076d684e77233edcef987f766870bcb3c5 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 1 Feb 2024 18:10:42 -0500 Subject: [PATCH 156/206] docs, comments, macro constant names --- constants.h | 8 +++++--- dl.c | 37 +++++++------------------------------ junk.pdd2 | Bin 0 -> 206880 bytes 3 files changed, 12 insertions(+), 33 deletions(-) create mode 100644 junk.pdd2 diff --git a/constants.h b/constants.h index 4a2797e..317f2d1 100644 --- a/constants.h +++ b/constants.h @@ -167,7 +167,9 @@ #define SMT_OFFSET 1240 #define PDD1_SMT 0x80 #define PDD2_SMT 0xC0 -#define PDD2_ID_ADDR 0x8004 +#define RAM_ADDR 0x8000 +#define RAM_LEN 0x1000 +#define PDD2_ID_ADDR (RAM_ADDR+0x0004) #define PDD2_MEM_READ_MAX 252 // real drive absolute limit #define PDD2_MEM_WRITE_MAX 127 // real drive absolute limit @@ -191,8 +193,8 @@ // TPDD2 sysinfo data: 80 13 05 00 10 E1 #define SECTOR_CACHE_START_MSB 0x80 #define SECTOR_CACHE_START_LSB 0x13 -#define SECTOR_CACHE_LEN_MSB 0x05 -#define SECTOR_CACHE_LEN_LSB 0x00 +//#define SECTOR_CACHE_LEN_MSB 0x05 // SECTOR_SIZE_MSB +//#define SECTOR_CACHE_LEN_LSB 0x00 // SECTOR_SIZE_LSB #define SYSINFO_CPU 0x10 // 0x10 = HD6301 //#define MODEL 0xE1 diff --git a/dl.c b/dl.c index 23eb6ca..2bc93fa 100644 --- a/dl.c +++ b/dl.c @@ -156,11 +156,10 @@ char bootstrap_fname[PATH_MAX] = {0x00}; int opr_mode = 1; uint8_t dme = 0; bool dme_disabled = false; -char ch[2] = {0xFF}; // 0x00 is a valid OPR command, so init to 0xFF -//uint8_t img_header_len = SECTOR_HEADER_LEN; +char ch[2] = {0xFF}; // 0x00 is a valid Operation-mode command, so init to 0xFF const uint16_t fdc_logical_size_codes[] = FDC_LOGICAL_SIZE_CODES; const char fdc_cmds[] = FDC_CMDS; -uint8_t rb[2048] = {0x00}; // disk image record buffer / virtual pdd2 ram +uint8_t rb[RAM_LEN] = {0x00}; // disk image record buffer / virtual pdd2 ram FILE_ENTRY* cur_file; int dir_depth=0; @@ -302,9 +301,8 @@ int check_disk_image () { if (disk_img_fname[0]) { struct stat info; stat(disk_img_fname, &info); - // allow missing or zero-byte file, - // we will create it if client issues format command - // but if file exists, sanity check based on size + // If file exists >0 bytes, sanity check based on size, + // otherwise allow missing/empty, & format command will create as needed if (info.st_size) { if (model==1 && info.st_size != PDD1_IMG_LEN) { dbg(0,"Expected TPDD1 disk image file size %u\n",PDD1_IMG_LEN); @@ -316,32 +314,11 @@ int check_disk_image () { dbg(0,"\"%s\" is %u\n",disk_img_fname,info.st_size); return 1; } - //printf("%s: size=%ld\n", disk_img_fname, info.st_size); - //if (model==2 && info.st_size == PDD2_TRACKS*PDD2_SECTORS*(OLD_PDD2_HEADER_LEN+SECTOR_DATA_LEN)) { - // img_header_len = OLD_PDD2_HEADER_LEN; - // dbg(0,"Detected OLD TPDD2 disk image file format\n"); - //} } } return 0; } -// TODO - search for likely TTY(s) automatically -/* -void guess_client_tty () { - struct dirent *files; - char path[] = "/dev/"; - DIR *dir = opendir(path); - if (dir == NULL){dbg(0,"Cannot open \"%s\"",path); return;} - int i; - while ((files = readdir(dir)) != NULL) { - for (i=strlen(files->d_name);files->d_name[i]!='/';i--); - if (!strcmp(files->d_name+i+1,match)) dbg(0," %s",files->d_name); - } - closedir(dir); -} -*/ - void resolve_client_tty_name () { dbg(3,"%s()\n",__func__); switch (client_tty_name[0]) { @@ -685,7 +662,7 @@ void req_fdc_read_sector(uint8_t tp,uint8_t tl) { ret_fdc_std(ERR_FDC_SUCCESS,tp,l); // 1st stage response char t=0x00; read_client_tty(&t,1); // read 1 byte from client - if (t==0x0D) write_client_tty(rb,l); // if it's \r send data + if (t==0x0D) write_client_tty(rb,l); // if it's \r send data, else silently abort } // ref/search_id_section.txt @@ -1644,8 +1621,8 @@ void ret_sysinfo() { gb[1]=0x06; gb[2]=SECTOR_CACHE_START_MSB; gb[3]=SECTOR_CACHE_START_LSB; - gb[4]=SECTOR_CACHE_LEN_MSB; - gb[5]=SECTOR_CACHE_LEN_LSB; + gb[4]=SECTOR_SIZE_MSB; + gb[5]=SECTOR_SIZE_LSB; gb[6]=SYSINFO_CPU; gb[7]=MODEL; gb[8]=checksum(gb); diff --git a/junk.pdd2 b/junk.pdd2 new file mode 100644 index 0000000000000000000000000000000000000000..6a5a4a9a4c26b512bebf2a4b3bc1b22721b17189 GIT binary patch literal 206880 zcmeIyF%7^l6hpzH2!AMH)>3$Dt;_5ozAyQ_k4Jz2fn9+cs~uw)rNjsj_@%&&zdkW1 zMt}f;X#rz6eO~1V5U2viuu91hATTXp45!bl903AVz!+93IRXTx1&rbJd6gqTpb8kn zDkVpNz_frdoIbB|1PD|CV_2o+2oRVSFox6TRgM6GDqsw&lpFy9(*nkD`n<{!AW#L2 zVU?02Kww(H7*3y8IRXT#fHAC6as&uW3mC)c^D0MxKou~CRZ5NkfoTC_IDKB_2oR_O z#;{7s5g;%vU<{|vs~iCWRlpclDLDcJrUi`Q^m&ydK%fd3!zv|5fWWkXF`PcHas&ue z0b^LD=T(jXfhu4OtCSo80@DJ-9QgQ?cObZyp>GLW_fIt;6hE+o?Y

a{0>-dP$q^thEnp0%&#N2( z0#(2mRw+3G1f~Uy;q-ZxBS4@E7{e+hM}WYzfH9mtuW|$kQ~_gHrQ`?@m=-XG)8|!= z0D&rC46BqJ0Rqzk#&G()$`K$?1&m>pk|RK1TEG}ipI12o1gd~BtWt6W2uuqY!|C%X zM}R;TFoso1jsSsa0b@9QUgZc7r~<~YO34u*FfCvVr_ZY#0RmOP7*;7c0tBW7jN$Zo zl_Nl)3K+vGB}ah3w16?3KCf~F2vh-MSf%6$5SSJ)hSTR&jsSrwU<|92903B;0>*Iq zyvh+EPz8)(m69VsU|PT!PM=pf0tBjnF|1N@1PDwE7{lrFDo21o6)=WXN{#@5X#rz6 zeO~1V5U2viuu91hATTXp45!bl903AVz!+93IRXTx1&rbJd6gqTpb8knDkVpNz_frd zoIbB|1PD|CV_2o+2oRVSFox6TRgM6GDqsw&lpFy9(*nkD`n<{!AW#L2VU?02Kww(H z7*3y8IRXT#fHAC6as&uW3mC)c^D0MxKou~CRZ5NkfoTC_IDKB_2oR_O#;{7s5g;%v zU<{|vs~iCWRlpclDLDcJrUi`Q^m&ydK%fd3!zv|5fWWkXF`PcHas&ue0b^LD=T(jXfhu4OtCSo80@DJ-9QgQ?c zObZyp>GLW_fIt;6hE+o?Y

a{0>-dP$q^thEnp0%&#N2(0#(2mRw+3G z1f~Uy;q-ZxBS4@E7{e+hM}WYzfH9mtuW|$kQ~_gHrQ`?@m=-XG)8|!=0D&rC46BqJ z0Rqzk#&G()$`K$?1&m>pk|RK1TEG}ipI12o1gd~BtWt6W2uuqY!|C%XM}R;TFoso1 zjsSsa0b@9QUgZc7r~<~YO34u*FfCvVr_ZY#0RmOP7*;7c0tBW7jN$Zol_Nl)3K+vG zB}ah3w16?3KCf~F2vh-MSf%6$5SSJ)hSTR&jsSrwU<|92903B;0>*Iqyvh+EPz8)( zm69VsU|PT!PM=pf0tBjnF|1N@1PDwE7{lrFDo21o6)=WXN{#@5X#rz6eO~1V5U2vi zuu91hATTXp45!bl903AVz!+93IRXTx1&rbJd6gqTpb8knDkVpNz_frdoIbB|1PD|C zV_2o+2oRVSFox6TRgM6GDqsw&lpFy9(*nkD`n<{!AW#L2VU?02Kww(H7*3y8IRXT# zfHAC6as&uW3mC)c^D0MxKou~CRZ5NkfoTC_IDKB_2oR_O#;{7s5g;%vU<{|vs~iCW zRlpclDLDcJrUi`Q^m&ydK%fd3!zv|5fWWkXF`PcHas&ue0b^LD=T(jX qfhu4OtCSo80@DJ Date: Thu, 1 Feb 2024 18:12:05 -0500 Subject: [PATCH 157/206] rm junk file --- junk.pdd2 | Bin 206880 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 junk.pdd2 diff --git a/junk.pdd2 b/junk.pdd2 deleted file mode 100644 index 6a5a4a9a4c26b512bebf2a4b3bc1b22721b17189..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206880 zcmeIyF%7^l6hpzH2!AMH)>3$Dt;_5ozAyQ_k4Jz2fn9+cs~uw)rNjsj_@%&&zdkW1 zMt}f;X#rz6eO~1V5U2viuu91hATTXp45!bl903AVz!+93IRXTx1&rbJd6gqTpb8kn zDkVpNz_frdoIbB|1PD|CV_2o+2oRVSFox6TRgM6GDqsw&lpFy9(*nkD`n<{!AW#L2 zVU?02Kww(H7*3y8IRXT#fHAC6as&uW3mC)c^D0MxKou~CRZ5NkfoTC_IDKB_2oR_O z#;{7s5g;%vU<{|vs~iCWRlpclDLDcJrUi`Q^m&ydK%fd3!zv|5fWWkXF`PcHas&ue z0b^LD=T(jXfhu4OtCSo80@DJ-9QgQ?cObZyp>GLW_fIt;6hE+o?Y

a{0>-dP$q^thEnp0%&#N2( z0#(2mRw+3G1f~Uy;q-ZxBS4@E7{e+hM}WYzfH9mtuW|$kQ~_gHrQ`?@m=-XG)8|!= z0D&rC46BqJ0Rqzk#&G()$`K$?1&m>pk|RK1TEG}ipI12o1gd~BtWt6W2uuqY!|C%X zM}R;TFoso1jsSsa0b@9QUgZc7r~<~YO34u*FfCvVr_ZY#0RmOP7*;7c0tBW7jN$Zo zl_Nl)3K+vGB}ah3w16?3KCf~F2vh-MSf%6$5SSJ)hSTR&jsSrwU<|92903B;0>*Iq zyvh+EPz8)(m69VsU|PT!PM=pf0tBjnF|1N@1PDwE7{lrFDo21o6)=WXN{#@5X#rz6 zeO~1V5U2viuu91hATTXp45!bl903AVz!+93IRXTx1&rbJd6gqTpb8knDkVpNz_frd zoIbB|1PD|CV_2o+2oRVSFox6TRgM6GDqsw&lpFy9(*nkD`n<{!AW#L2VU?02Kww(H z7*3y8IRXT#fHAC6as&uW3mC)c^D0MxKou~CRZ5NkfoTC_IDKB_2oR_O#;{7s5g;%v zU<{|vs~iCWRlpclDLDcJrUi`Q^m&ydK%fd3!zv|5fWWkXF`PcHas&ue0b^LD=T(jXfhu4OtCSo80@DJ-9QgQ?c zObZyp>GLW_fIt;6hE+o?Y

a{0>-dP$q^thEnp0%&#N2(0#(2mRw+3G z1f~Uy;q-ZxBS4@E7{e+hM}WYzfH9mtuW|$kQ~_gHrQ`?@m=-XG)8|!=0D&rC46BqJ z0Rqzk#&G()$`K$?1&m>pk|RK1TEG}ipI12o1gd~BtWt6W2uuqY!|C%XM}R;TFoso1 zjsSsa0b@9QUgZc7r~<~YO34u*FfCvVr_ZY#0RmOP7*;7c0tBW7jN$Zol_Nl)3K+vG zB}ah3w16?3KCf~F2vh-MSf%6$5SSJ)hSTR&jsSrwU<|92903B;0>*Iqyvh+EPz8)( zm69VsU|PT!PM=pf0tBjnF|1N@1PDwE7{lrFDo21o6)=WXN{#@5X#rz6eO~1V5U2vi zuu91hATTXp45!bl903AVz!+93IRXTx1&rbJd6gqTpb8knDkVpNz_frdoIbB|1PD|C zV_2o+2oRVSFox6TRgM6GDqsw&lpFy9(*nkD`n<{!AW#L2VU?02Kww(H7*3y8IRXT# zfHAC6as&uW3mC)c^D0MxKou~CRZ5NkfoTC_IDKB_2oR_O#;{7s5g;%vU<{|vs~iCW zRlpclDLDcJrUi`Q^m&ydK%fd3!zv|5fWWkXF`PcHas&ue0b^LD=T(jX qfhu4OtCSo80@DJ Date: Thu, 1 Feb 2024 18:32:49 -0500 Subject: [PATCH 158/206] mac tty names --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 861ab1e..2b2d56a 100644 --- a/Makefile +++ b/Makefile @@ -61,7 +61,7 @@ SOURCES := dl.c dir_list.c HEADERS := dir_list.h constants.h ifeq ($(OS),Darwin) - TTY_PREFIX := cu. + TTY_PREFIX := cu.usbserial else ifneq (,$(findstring BSD,$(OS))) TTY_PREFIX := ttyU From 4e64d0a3df3dc2ccb24389361281f3e814cdc3f7 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 3 Feb 2024 11:50:48 -0500 Subject: [PATCH 159/206] comments and bootstrap progress display --- Makefile | 7 ++-- constants.h | 6 +++ dl.c | 103 +++++++++++++++++++++++++++------------------------- 3 files changed, 62 insertions(+), 54 deletions(-) diff --git a/Makefile b/Makefile index 2b2d56a..2c9c696 100644 --- a/Makefile +++ b/Makefile @@ -4,9 +4,6 @@ OS ?= $(shell uname) CC ?= gcc CFLAGS += -O2 -Wall #CFLAGS += -std=c99 -D_DEFAULT_SOURCE # prove the code is still plain c -#CFLAGS += SHOWBYTES_A # bootstrap() display non-printing bytes differently -#CFLAGS += SHOWBYTES_B # bootstrap() display non-printing bytes differently -#CFLAGS += NADSBOX_EXTENSIONS # placeholder but not implemented PREFIX ?= /usr/local NAME := dl APP_NAME := DeskLink2 @@ -83,7 +80,9 @@ DEFINES := \ -DAPP_NAME=\"$(APP_NAME)\" \ -DAPP_VERSION=\"$(APP_VERSION)\" \ -DAPP_LIB_DIR=\"$(APP_LIB_DIR)\" \ - -DTTY_PREFIX=\"$(TTY_PREFIX)\" + -DTTY_PREFIX=\"$(TTY_PREFIX)\" \ +# -DPRINT_8BIT \ +# -DNADSBOX_EXTENSIONS \ ifdef DEBUG CFLAGS += -g diff --git a/constants.h b/constants.h index 212dac7..31fc9ac 100644 --- a/constants.h +++ b/constants.h @@ -216,7 +216,13 @@ #define BASIC_EOF 0x1A #define LOCAL_EOL 0x0A +// drive command seperators #define OPR_CMD_SYNC 0x5A #define FDC_CMD_EOL 0x0D +// terminal emulation +#define SSO "\033[7m" // set standout +#define RSO "\033[m" // reset standout +#define D8C "\033 F" // disable 8-bit vtxx control bytes (0x80-0x9F) + #endif // PDD_CONSTANTS_H diff --git a/dl.c b/dl.c index 773743a..a2e00ce 100644 --- a/dl.c +++ b/dl.c @@ -87,13 +87,14 @@ MA 02111, USA. // TEENY.M10 requires 8-10 #define DEFAULT_BASIC_BYTE_MS 8 -#define DEFAULT_TPDD_FILE_ATTR 0x46 // F +#define DEFAULT_ATTR 0x46 // F +#define RAW_ATTR 0x20 // space // To mimic the original Desk-Link from Travelling Software: //#define DEFAULT_DME_ROOT_LABEL "ROOT " //#define DEFAULT_DME_PARENT_LABEL "PARENT" // environment variables: -#define DEFAULT_DME_ROOT_LABEL "0: " // ROOT_LABEL='0:' '-root-' 'C:\' -#define DEFAULT_DME_PARENT_LABEL "^ " // PARENT_LABEL='^:' '-back-' 'UP:' +#define DEFAULT_DME_ROOT_LABEL "0: " // ROOT_LABEL='0:' '-root-' 'C:\' +#define DEFAULT_DME_PARENT_LABEL "^ " // PARENT_LABEL='^' '-back-' 'UP:' // this you can't change unless you also hack ts-dos #define DEFAULT_DME_DIR_LABEL "<>" // DIR_LABEL='/' @@ -110,9 +111,9 @@ char * magic_files [] = { "DOSNEC.CO", "SAR100.CO", "SAR200.CO", - "SARNEC.CO", // This is known to have existed, but is currently lost. - "DOSM10.CO", // The rest may have never existed, - "DOSK85.CO", // and the filenames are just guesses. + "SARNEC.CO", // SARNEC.CO is known to have existed, but is currently lost. + "DOSM10.CO", // From here down probably never existed. + "DOSK85.CO", // "SARM10.CO", // "SARK85.CO" // }; @@ -121,6 +122,11 @@ char * magic_files [] = { #define C_CC_VMIN 1 #define C_CC_VTIME 5 +// terminal emulation +#define SSO "\033[7m" // set standout +#define RSO "\033[m" // reset standout +#define D8C "\033 F" // disable 8-bit vtxx control bytes (0x80-0x9F) + /*************************************************************/ int debug = 0; @@ -135,12 +141,11 @@ char app_lib_dir[PATH_MAX] = APP_LIB_DIR; char dme_root_label[7] = DEFAULT_DME_ROOT_LABEL; char dme_parent_label[7] = DEFAULT_DME_PARENT_LABEL; char dme_dir_label[3] = DEFAULT_DME_DIR_LABEL; -char default_attr = DEFAULT_TPDD_FILE_ATTR; +char default_attr = DEFAULT_ATTR; bool enable_magic_files = true; #if !defined(_WIN) bool getty_mode = false; #endif -bool bootstrap_mode = false; int model = 2; char** args; @@ -320,7 +325,7 @@ int check_disk_image () { return 0; } -// search for TTY(s) matching prefix +// search for TTY(s) matching TTY_PREFIX void find_ttys (char* f) { dbg(3,"%s(%s)\n",__func__,f); @@ -329,7 +334,8 @@ void find_ttys (char* f) { DIR* dir = opendir(path); if (!dir){dbg(0,"Cannot open \"%s\"\n",path); return;} - // read /dev + // read /dev, look for all files beginning with prefix + // add any matches to ttys[] char** ttys = calloc(0,sizeof(*ttys)); struct dirent *files; int i=0, l=strlen(f); @@ -345,8 +351,8 @@ void find_ttys (char* f) { closedir(dir); int n=0; - if (i==1) n=1; - while (!n) { + if (i==1) n=1; // if there is only one element in ttys[], use it + while (!n) { // otherwise dislplay a menu of ttys[] and ask user to pick one dbg(0,"\n"); for (n=1;n<=i;n++) dbg(0,"%d) %s\n",n,ttys[n]); n=0; char a[6]={0}; @@ -356,6 +362,7 @@ void find_ttys (char* f) { if (a[0]=='q'||a[0]=='Q') break; } + // set client_tty_name[] with the final result client_tty_name[0]=0x00; if (n) { strcpy(client_tty_name,path); @@ -365,10 +372,12 @@ void find_ttys (char* f) { free(ttys); } +// take the user-supplied tty arg and figure out the actual /dev/ttyfoo void resolve_client_tty_name () { dbg(3,"%s()\n",__func__); switch (client_tty_name[0]) { case 0x00: + // nothing supplied, scan for any ttys matching the default prefix find_ttys(TTY_PREFIX); break; case '-': @@ -378,6 +387,7 @@ void resolve_client_tty_name () { client_tty_fd=1; break; default: + // something given, try with and without prepending /dev/ if (!access(client_tty_name,F_OK)) break; char t[PATH_MAX]={0x00}; int i = 0; @@ -519,9 +529,9 @@ char* collapse_padded_fname(char* fname) { void lsx (char* path,char* match,char* fmt) { struct dirent *files; DIR *dir = opendir(path); - if (dir == NULL){dbg(0,"Cannot open \"%s\"",path); return;} + if (!dir){dbg(0,"Cannot open \"%s\"",path); return;} int i; - while ((files = readdir(dir)) != NULL) { + while ((files = readdir(dir))) { for (i=strlen(files->d_name);files->d_name[i]!='.';i--); if (!strcmp(files->d_name+i+1,match)) dbg(0,fmt,files->d_name); } @@ -531,7 +541,6 @@ void lsx (char* path,char* match,char* fmt) { int check_magic_file(char* b) { dbg(3,"%s(\"%s\")\n",__func__,b); if (!enable_magic_files) return 1; - if (dot_offset!=6) return 1; // UR2/TSLOAD only exists on a few KC-85 clones int l = sizeof(magic_files)/sizeof(magic_files[0]); for (int i=0;i126 as inverse hex pair - if (b<32) { dbg(0,"\033[7m^%c\033[m",b+64); return; } - if (b>126) { dbg(0,"\033[7m%02X\033[m",b); return; } -#elseif defined(SHOWBYTES_B) - // show <32 and 127 as inverse ctrl char without ^ - // show everything else as-is, requires disable 8bit vt ctrl codes - if (b<32) { dbg(0,"\033[7m%c\033[m",b+64); return; } - if (b==127) { dbg(0,"\033[7m?\033[m"); return; } + + // line-endings - convert CR, LF, CRLF to local eol + if (ch[0]==BASIC_EOL) { + ch[0]=0x00; + dbg(0,"%c",LOCAL_EOL); + if (b==LOCAL_EOL) return; + } + if (b==BASIC_EOL) { ch[0]=BASIC_EOL; return; } + +#if defined(PRINT_8BIT) + // display <32 and 127 as inverse ctrl char without ^ + // print everything else, requires disable 8-bit vt codes + if (b<32) { dbg(0,SSO"%c"RSO,b+64); return; } + if (b==127) { dbg(0,SSO"?"RSO); return; } #else - // show all non-ascii as inverse hex pair - if (b<32||b>126) { dbg(0,"\033[7m%02X\033[m",b); return; } + // display <32 >126 as inverse hex + if (b<32||b>126) { dbg(0,SSO"%02X"RSO,b); return; } #endif - dbg(0,"%c",b); - } + + dbg(0,"%c",b); } int send_BASIC(char* f) { @@ -1950,15 +1957,14 @@ int send_BASIC(char* f) { uint8_t b; if ((fd=open(f,O_RDONLY))<0) { - dbg(1,"Could not open \"%s\" : %s\n",f,errno); + dbg(0,"Could not open \"%s\" : %s\n",f,errno); return 9; } - dbg(0,"Sending \"%s\" ... ",f); -#if defined(SHOWBYTES_B) - dbg(1,"%c F",27); // disable 8-bit vtxx control codes (0x80-0x9F) so we can display them +#if defined(PRINT_8BIT) + dbg(1,D8C); // disable 8-bit vt codes (0x80-0x9F) so we can print them #endif - dbg(1,"\n"); + dbg(0,"-- start --\n"); ch[0]=0x00; while(read(fd,&b,1)==1) slowbyte(b); close(fd); @@ -1967,8 +1973,7 @@ int send_BASIC(char* f) { if (b!=BASIC_EOF) slowbyte(BASIC_EOF); } close(client_tty_fd); - dbg(1,"\n"); - dbg(0,"DONE\n\n"); + dbg(0,"\n-- end --\n\n"); return 0; } @@ -2029,7 +2034,6 @@ void show_config () { dbg(0,"model : %d\n",model); dbg(0,"dot_offset : %d\n",dot_offset); dbg(0,"BASIC_byte_ms : %d\n",BASIC_byte_us/1000); - dbg(0,"bootstrap_mode : %s\n",bootstrap_mode?"true":"false"); dbg(0,"bootstrap_fname : \"%s\"\n",bootstrap_fname); dbg(0,"app_lib_dir : \"%s\"\n",app_lib_dir); dbg(0,"client_tty_name : \"%s\"\n",client_tty_name); @@ -2075,7 +2079,7 @@ void show_main_help() { " %1$s\n" " %1$s -vvu -p ~/Downloads/REX/ROMS\n" " %1$s -v -w ttyUSB1 ~/Documents/wp2files\n\n" - ,args[0],DEFAULT_TPDD_FILE_ATTR,DEFAULT_BASIC_BYTE_MS); + ,args[0],DEFAULT_ATTR,DEFAULT_BASIC_BYTE_MS); } int main(int argc, char** argv) { @@ -2105,9 +2109,9 @@ int main(int argc, char** argv) { while ((i = getopt (argc, argv, ":0a:b:d:eghi:lm:p:rs:uvwz:^")) >=0) #endif switch (i) { - case '0': dot_offset=0; upcase=false; default_attr=0x20; break; + case '0': dot_offset=0; upcase=false; default_attr=RAW_ATTR; break; case 'a': default_attr=*strndup(optarg,1); break; - case 'b': bootstrap_mode=true; strcpy(bootstrap_fname,optarg);break; + case 'b': strcpy(bootstrap_fname,optarg); break; case 'd': strcpy(client_tty_name,optarg); break; case 'e': dme_disabled = true; break; #if !defined(_WIN) @@ -2131,8 +2135,8 @@ int main(int argc, char** argv) { else dbg(0,"Unknown option character \"0x%02X\"\n",optopt); default: show_main_help(); return 1; } - // commandline non-option arguments + // commandline non-option arguments for (i=0; optind < argc; optind++) { if (x) dbg(1,"non-option arg %u: \"%s\"\n",i,argv[optind]); switch (i++) { @@ -2144,9 +2148,8 @@ int main(int argc, char** argv) { // auto-completes & fixups if (model<1||model>2) model=2; - + if (dot_offset!=6) enable_magic_files=false; // only applies to UR2/TSLOAD resolve_client_tty_name(); - check_disk_image(); find_lib_file(bootstrap_fname); (void)(getcwd(cwd,PATH_MAX-1)+1); @@ -2159,7 +2162,7 @@ int main(int argc, char** argv) { if ((i=open_client_tty())) return i; // send loader and exit - if (bootstrap_mode) return (bootstrap(bootstrap_fname)); + if (bootstrap_fname[0]) return (bootstrap(bootstrap_fname)); // initialize the file list file_list_init(); From abcc4691b5f1f25851d83c8b9d6ad98065e9c572 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 3 Feb 2024 13:43:26 -0500 Subject: [PATCH 160/206] readme & help --- README.md | 97 +++++++++++++++++++++++++++---------------------------- dl.c | 30 ++++++++--------- 2 files changed, 63 insertions(+), 64 deletions(-) diff --git a/README.md b/README.md index 0d982db..5256400 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ $ sudo make uninstall ## Manual ``` $ dl -h -DeskLink2 v2.0.000-61-g25f82e2 +DeskLink2 v2.1.001-1-g4e64d0a usage: dl [options] [tty_device] [share_path] @@ -22,16 +22,16 @@ options: -0 Raw mode - no filename munging, attr = ' ' -a c Attr - attribute used for all files (F) -b file Bootstrap - send loader file to client - -d tty Serial device connected to client (ttyUSB0) + -d tty Serial device connected to the client (ttyUSB*) -e Disable TS-DOS directory extension (enabled) -g Getty mode - run as daemon -h Print this help -i file Disk image file for raw sector access, TPDD1 only -l List loader files and show bootstrap help - -m model Model: 1 for TPDD1, 2 for TPDD2 (2) + -m model Model: 1 for FB-100/TPDD1, 2 for TPDD2 (2) -p dir Share path - directory with files to be served (./) -r RTS/CTS hardware flow control - -s # Speed - serial port baud rate 9600 or 19200 (19200) + -s # Speed - serial port baud rate (19200) -u Uppercase all filenames -v Verbose/debug mode - more v's = more verbose -w WP-2 mode - 8.2 filenames @@ -48,15 +48,15 @@ $ ``` ``` $ dl -l -DeskLink2 v2.0.000-61-g25f82e2 +DeskLink2 v2.1.001-1-g4e64d0a Available support files in /usr/local/lib/dl Loader files for use with -b: ----------------------------- -TRS-80 Model 100/102 : PAKDOS.100 TINY.100 D.100 TEENY.100 TS-DOS.100 DSKMGR.100 TSLOAD.100 -TANDY Model 200 : PAKDOS.200 TEENY.200 TSLOAD.200 TS-DOS.200 DSKMGR.200 -NEC PC-8201/PC-8300 : TS-DOS.NEC TEENY.NEC -Kyotronic KC-85 : Disk_Power.K85 DSKMGR.K85 +TRS-80 Model 100/102 : D.100 TEENY.100 TSLOAD.100 TS-DOS.100 DSKMGR.100 TINY.100 PAKDOS.100 +TANDY Model 200 : TEENY.200 DSKMGR.200 TSLOAD.200 TS-DOS.200 PAKDOS.200 +NEC PC-8201/PC-8300 : TEENY.NEC TS-DOS.NEC +Kyotronic KC-85 : DSKMGR.K85 Disk_Power.K85 Olivetti M-10 : TEENY.M10 DSKMGR.M10 Disk image files for use with -i: @@ -66,7 +66,7 @@ Disk_Power.K85.pdd1 Filenames given without any path are searched from /usr/local/lib/dl -as well as the current dir. +as well as the current directory. Examples: dl -b TS-DOS.100 @@ -89,9 +89,7 @@ Docs from the past versions of this program. They don't exactly match this versi ## Examples: ### Run the TPDD server, verbose, upcase, serving files from the current directory -``` -$ dl -vu -``` +`$ dl -vu` ### List all available TPDD client installers, and then bootstrap one of them ``` @@ -100,15 +98,11 @@ $ dl -vb TS-DOS.100 ``` ### Bootstrap a [REXCPM](http://bitchin100.com/wiki/index.php?title=REXCPM) -``` -$ dl -vb rxcini.DO && dl -vu -``` +`$ dl -vb rxcini.DO && dl -vu` ([Full directions for REXCPM](ref/REXCPM.md)) ### Update a [REX#](http://bitchin100.com/wiki/index.php?title=REXsharp) -``` -dl -vb 'rx#u1.do' && dl -vu -``` +`dl -vb 'rx#u1.do' && dl -vu` ## "Magic Files" / Ultimate ROM II / TSLOAD Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS or Sardine from disk on-the-fly. @@ -136,36 +130,34 @@ There are bootstrap installers for TSLOAD for Model 100 and 200 bundled with the ## Sector Access / Disk Images For a TPDD1 disk image -``` -$ dl -v -m 1 -i disk_image.pdd1 -``` +`$ dl -v -m 1 -i disk_image.pdd1` For a TPDD2 disk image -``` -$ dl -v -m 2 -i disk_image.pdd2 -``` +`$ dl -v -m 2 -i disk_image.pdd2` Support for disk image files that allow use of raw sector access commands on a virtual disk image file. -Limitations: Only supports sector access to the disk image. You can't "mount" the disk image and access the files on a disk as files, just as raw sectors. +Limitations: Only supports using the disk image for sector access. It doesn't provide access to the files in a disk image as files, just as raw sectors. Useful working examples: Sardine_American_English.pdd1, Disk_Power_KC-85.pdd1 -Those examples are both TPDD1 disks, but both TPDD1 and TPDD2 are supported. There just are no known database application disks like the Sardine dictionary disk on TPDD2 media to make a good TPDD2 example. You could use the image of the TPDD2 Utility Disk included with [pdd.sh](https://github.com/bkw777/pdd.sh) just to see that it works, but that isn't useful for anything. +Those examples are both TPDD1 disks, but both TPDD1 and TPDD2 are supported. +There are just no known raw data applications like Sardine that use TPDD2 sector access to provide a TPDD2 example here. +You can still view or edit the raw sectors of any ordinary TPDD2 disk image such as the TPDD2 Utility Disk included with [pdd.sh](https://github.com/bkw777/pdd.sh) just to see that it works. Example, using Sardine with a Model 100 with [Ultimate ROM II](http://www.club100.org/library/librom.html): -One way to use Sardine is to let UR-II load/unload the program from disk into ram on the fly instead of installing permanently in ram like normal. Sardine uses raw sector access commands to read a special dictionary data disk. -For this to work, UR-II has to be able to load SAR100.CO from a normal filesystem disk using normal file/filesystem access, and then SAR100.CO needs to be able to read raw sectors from the special dictionary data disk. -This involves two features of dl2. First, **magic files**. SAR100.CO is one of the "magic" files bundled with the app, which are always loadable from a client at any time from any directory even if there is no such file in the directory being served as the virtual "disk". When UR-II tries to load a file by that particular name, if there is a file by that name in the current working directory it is used, but if there is no such file, dl2 just serves up the one from /usr/local/lib/dl, and the client never knows the difference. -Second, **disk image files and sector-access commands**. If a disk image file is loaded with the **-i** option, then when a client tries to use sector-access commands, they work, and the data reads from / writes to the image file. If the specified filename does not exist it will be created if/when the client issues a format command. If the specified filename does not exist and, is not given with any leading path, then it is searched for in /usr/local/lib/dl, as a few special disks are bundled with the app, and the Sardine dictionary disk is one such. +One way to use Sardine is to let Ultimate ROM II load & unload the program from disk into ram on the fly instead of installing permanently in ram like normal. Sardine uses raw sector access commands to read a special dictionary data disk. +For this to work, UR-II has to be able to load `SAR100.CO` from a normal filesystem disk using normal file/filesystem access, and then `SAR100.CO` needs to be able to use TPDD1 FDC-mode commands to read raw sectors from the special dictionary data disk. +This involves two features of dl2. +First, **magic files**. `SAR100.CO` is one of the "magic" files bundled with dl2, which are always loadable from a client at any time from any directory even if there is no such file in the directory being served as the virtual "disk". When UR-II tries to load a file by that particular name, if there is a file by that name in the current working directory it is used, but if there is no such file, dl2 just serves up the one from /usr/local/lib/dl, and the client never knows the difference. This emulates the normal case of a real TPDD1 drive which has no such thing as directories, and has a copy of `SAR100.CO` on it. +Second, **disk image files and sector-access commands**. If a disk image file is loaded with the **-i** option, then when a client tries to use sector-access commands, they work, and the data comes from (or goes to) the image file. If the specified filename does not exist it will be created if and when the client issues a format command. If the specified filename does not exist and is not given with any leading path, then it is searched for in /usr/local/lib/dl. If the disk image file is not writable by the user, then the virtual disk is also shown as write-protected. To try it out, 1: Run dl with the following commandline arguments, -``` -$ dl -vue -m 1 -i Sardine_American_English.pdd1 -``` -This set of flags tells dl2 to strictly emulate a TPDD1, disable some TPDD2 features and TS-DOS directory support which confuse SAR100.CO, and use the Sardine American English dictionary disk image file for any sector-access commands the client might issue. -SAR100.CO is always being provided by default regardless of any commandline options so you don't have to do anything extra for that, and assuming "Sardine_American_English.pdd1" doesn't exist in your current working directory, dl2 will use the copy in /usr/local/lib/dl. +`$ dl -vun -m 1 -i Sardine_American_English.pdd1` + +This set of flags tells dl2 to strictly emulate a TPDD1, disable some TPDD2 features and TS-DOS directory support which confuses `SAR100.CO`, and use the Sardine American English dictionary disk image file for any sector-access commands the client might issue. +`SAR100.CO` is a built-in "magic" file so you don't have to do anything extra to provide that, and assuming "Sardine_American_English.pdd1" doesn't exist in your current working directory, dl2 will use the copy in /usr/local/lib/dl. The disk image file is marked read-only and behaves the same as a normal disk with the write-protect notch open (write-protected). 2: Enter the UR-2 menu. @@ -173,7 +165,7 @@ Notice the "SARDIN" entry with the word "OFF" under it. Hit enter on SARDIN. If you get a prompt about HIMEM, answer Y. This loads SAR100.CO into ram. -Notice the SARDIN entry now says "ON" under it. +Now notice the SARDIN entry changed from "OFF" to "ON" under it. 3: Enter T-Word and start a new document and type some text. @@ -183,26 +175,33 @@ This will invoke the SAR100.CO previously loaded, which will try to use TPDD1 FD Another example, [installing Disk Power for Kyotronic KC-85](clients/disk_power/Disk_Power.txt) Disk image files may be created 2 ways: -* One method is you may use the **dd** command within [pdd.sh](https://github.com/bkw777/pdd.sh) to read a real TPDD1 or TPDD2 disk from a real TPDD1 or TPDD2 drive, and output a disk image file. -* Another method is you may run `dl -v -m 1 -i filename.pdd1` (for TPDD1) or `dl -v -m 2 -i filename.pdd2` (for TPDD2) where filename.pddN either doesn't exist or is zero bytes, and then use a client (like TS-DOS or pdd.sh) to format the "disk". The format command will cause dl2 to generate the empty disk image. -In the case of TPDD1, there is more than one kind of format command. If the client uses the "Operation-mode" format command, the generated disk image will be a valid filesystem disk, which just means it will have a particular logical sector size (64 bytes) and valid Space Management Table and File Control Blocks. If the client uses the "FDC-mode" format command then the generated image will be a raw data format not a filesystem disk. This just means it will have whatever logical sector size was specified by the parameters to the format command, and no SMT or FCB data, and won't be usable for saving files. In both cases, this mimics what a real drive does. -TPDD2 does not have an "FDC-mode" and there is only one kind of format command and only one kind of new empty disk format. +* One method is you may use the **dd** command in [pdd.sh](https://github.com/bkw777/pdd.sh) to read a real disk from a real drive, and output a disk image file. +* Another method is you may run `dl -v -m 1 -i filename.pdd1` or `dl -v -m 2 -i filename.pdd2`, where filename.pddN either doesn't exist or is zero bytes, and then use a client (like TS-DOS or pdd.sh) to format the "disk". The format command will cause dl2 to generate the empty disk image. More details about the disk image format [disk_image_files.txt](ref/disk_image_files.txt) ## ROOT & PARENT labels -The "ROOT " and "PARENT" labels are not hard coded in TS-DOS. You can set them to other things. Almost anything may be used for the ROOT label. The PARENT label is limited to things that TS-DOS thinks is a valid filename. Sadly ".." can't be used for PARENT, but here are a few examples that do work. -``` -$ ROOT_LABEL=/ PARENT_LABEL=^ dl -$ ROOT_LABEL='-root-' PARENT_LABEL='-back-' dl -$ ROOT_LABEL='0:' PARENT_LABEL='^:' dl +The `ROOT ` and `PARENT` labels are not hard coded in TS-DOS. You can set them to other things. +In both cases the length is limited to 6 characters. + +The ROOT label is `ROOT ` in the original Travelling Software Desk-Link. +This is what is shown for the current directory name in the top-right corner of TS-DOS when the current working directory is at the top level directory of the share path, like the root directory of a disk. +Almost anything may be used for the `ROOT ` label. + +The PARENT label is `PARENT` in the original Travelling Software Desk-Link. +This is shown as a virtual filename in the top-left filename slot when not in the root directory, and you press Enter on it in order to move up out of the current subdirectory to it's parent directory. +This is is limited to things that TS-DOS thinks is a valid filename. +Sadly, `..` can not be used, but here are a few examples that do work. + +`$ ROOT_LABEL=/ PARENT_LABEL=^ dl` +`$ ROOT_LABEL='-root-' PARENT_LABEL='-back-' dl` +`$ ROOT_LABEL='0:' PARENT_LABEL='^:' dl` or you can confuse someone... -$ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl -``` +`$ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl` ## co2ba.sh Also included is a bash script to read a binary .CO file and output an ascii BASIC loader .DO file, -which may then be used with the bootstrap function to re-create the original binary .CO file on the portable. +which may then be used with the **-b** bootstrap function to re-create the original binary .CO file on the portable. All KC-85 platform machines are supported including TRS-80 Model 100, TANDY 102 & 200, Kyotronic KC-85, Olivetti M10, NEC PC-8201 & PC-8300. It's simple and doesn't handle all situations or do anything fancy like relocating, but it handles the common case and serves as a reference and starting point for making a custom loader. See [co2ba](co2ba.md) diff --git a/dl.c b/dl.c index a2e00ce..82ea7c9 100644 --- a/dl.c +++ b/dl.c @@ -1917,12 +1917,12 @@ void show_bootstrap_help() { dbg(0, "\n" "Filenames given without any path are searched from %2$s\n" - "as well as the current dir.\n" + "as well as the current directory.\n" "Examples:\n\n" " %1$s -b TS-DOS.100\n" " %1$s -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100\n" " %1$s -vb rxcini.DO && %1$s -vu\n" - " %1$s -vue -m 1 -i Sardine_American_English.pdd1\n\n" + " %1$s -vun -m 1 -i Sardine_American_English.pdd1\n\n" ,args[0],app_lib_dir); } @@ -2054,22 +2054,22 @@ void show_main_help() { "\n" "options:\n" " -0 Raw mode - no filename munging, attr = ' '\n" - " -a c Attr - attribute used for all files (%2$c)\n" + " -a c Attribute - attribute byte used for all files (%2$c)\n" " -b file Bootstrap - send loader file to client\n" - " -d tty Serial device connected to the client\n" - " -e Disable TS-DOS directory extension (enabled)\n" + " -d tty Serial device connected to the client (%4$s*)\n" + " -n Disable support for TS-DOS directories (enabled)\n" #if !defined(_WIN) " -g Getty mode - run as daemon\n" #endif " -h Print this help\n" - " -i file Disk image file for raw sector access, TPDD1 only\n" + " -i file Disk image filename for raw sector access\n" " -l List loader files and show bootstrap help\n" - " -m model Model: 1 for TPDD1, 2 for TPDD2 (2)\n" - " -p dir Share path - directory with files to be served (./)\n" + " -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (2)\n" + " -p dir Path - /path/to/dir with files to be served (./)\n" " -r RTS/CTS hardware flow control\n" - " -s # Speed - serial port baud rate 9600 or 19200 (19200)\n" + " -s # Speed - serial port baud rate (19200)\n" " -u Uppercase all filenames\n" - " -v Verbose/debug mode - more v's = more verbose\n" + " -v Verbosity - more v's = more verbose\n" " -w WP-2 mode - 8.2 filenames\n" " -z # Milliseconds per byte for bootstrap (%3$d)\n" "\n" @@ -2077,9 +2077,9 @@ void show_main_help() { "The 2nd non-option argument is another way to specify the share path.\n" "\n" " %1$s\n" - " %1$s -vvu -p ~/Downloads/REX/ROMS\n" + " %1$s -vv -p ~/Downloads/REX/ROMS\n" " %1$s -v -w ttyUSB1 ~/Documents/wp2files\n\n" - ,args[0],DEFAULT_ATTR,DEFAULT_BASIC_BYTE_MS); + ,args[0],DEFAULT_ATTR,DEFAULT_BASIC_BYTE_MS,TTY_PREFIX); } int main(int argc, char** argv) { @@ -2104,16 +2104,16 @@ int main(int argc, char** argv) { // commandline #if defined(_WIN) - while ((i = getopt (argc, argv, ":0a:b:d:ehi:lm:p:rs:uvwz:^")) >=0) + while ((i = getopt (argc, argv, ":0a:b:d:nhi:lm:p:rs:uvwz:^")) >=0) #else - while ((i = getopt (argc, argv, ":0a:b:d:eghi:lm:p:rs:uvwz:^")) >=0) + while ((i = getopt (argc, argv, ":0a:b:d:nghi:lm:p:rs:uvwz:^")) >=0) #endif switch (i) { case '0': dot_offset=0; upcase=false; default_attr=RAW_ATTR; break; case 'a': default_attr=*strndup(optarg,1); break; case 'b': strcpy(bootstrap_fname,optarg); break; case 'd': strcpy(client_tty_name,optarg); break; - case 'e': dme_disabled = true; break; + case 'n': dme_disabled = true; break; #if !defined(_WIN) case 'g': getty_mode = true; debug = 0; break; #endif From dee020b1819839e8f0d92e08a92986f9d533d462 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 3 Feb 2024 13:46:45 -0500 Subject: [PATCH 161/206] readme --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 5256400..9ef4261 100644 --- a/README.md +++ b/README.md @@ -14,26 +14,26 @@ $ sudo make uninstall ## Manual ``` $ dl -h -DeskLink2 v2.1.001-1-g4e64d0a +DeskLink2 v2.1.001-2-gabcc469 usage: dl [options] [tty_device] [share_path] options: -0 Raw mode - no filename munging, attr = ' ' - -a c Attr - attribute used for all files (F) + -a c Attribute - attribute byte used for all files (F) -b file Bootstrap - send loader file to client -d tty Serial device connected to the client (ttyUSB*) - -e Disable TS-DOS directory extension (enabled) + -n Disable support for TS-DOS directories (enabled) -g Getty mode - run as daemon -h Print this help - -i file Disk image file for raw sector access, TPDD1 only + -i file Disk image filename for raw sector access -l List loader files and show bootstrap help - -m model Model: 1 for FB-100/TPDD1, 2 for TPDD2 (2) - -p dir Share path - directory with files to be served (./) + -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (2) + -p dir Path - /path/to/dir with files to be served (./) -r RTS/CTS hardware flow control -s # Speed - serial port baud rate (19200) -u Uppercase all filenames - -v Verbose/debug mode - more v's = more verbose + -v Verbosity - more v's = more verbose -w WP-2 mode - 8.2 filenames -z # Milliseconds per byte for bootstrap (8) @@ -41,22 +41,22 @@ The 1st non-option argument is another way to specify the tty device. The 2nd non-option argument is another way to specify the share path. dl - dl -vvu -p ~/Downloads/REX/ROMS + dl -vv -p ~/Downloads/REX/ROMS dl -v -w ttyUSB1 ~/Documents/wp2files $ ``` ``` $ dl -l -DeskLink2 v2.1.001-1-g4e64d0a +DeskLink2 v2.1.001-2-gabcc469 Available support files in /usr/local/lib/dl Loader files for use with -b: ----------------------------- -TRS-80 Model 100/102 : D.100 TEENY.100 TSLOAD.100 TS-DOS.100 DSKMGR.100 TINY.100 PAKDOS.100 -TANDY Model 200 : TEENY.200 DSKMGR.200 TSLOAD.200 TS-DOS.200 PAKDOS.200 -NEC PC-8201/PC-8300 : TEENY.NEC TS-DOS.NEC -Kyotronic KC-85 : DSKMGR.K85 Disk_Power.K85 +TRS-80 Model 100/102 : PAKDOS.100 TINY.100 D.100 TEENY.100 DSKMGR.100 TSLOAD.100 TS-DOS.100 +TANDY Model 200 : PAKDOS.200 TEENY.200 DSKMGR.200 TSLOAD.200 TS-DOS.200 +NEC PC-8201/PC-8300 : TS-DOS.NEC TEENY.NEC +Kyotronic KC-85 : Disk_Power.K85 DSKMGR.K85 Olivetti M-10 : TEENY.M10 DSKMGR.M10 Disk image files for use with -i: @@ -72,7 +72,7 @@ Examples: dl -b TS-DOS.100 dl -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 dl -vb rxcini.DO && dl -vu - dl -vue -m 1 -i Sardine_American_English.pdd1 + dl -vun -m 1 -i Sardine_American_English.pdd1 $ ``` From bbdcf088dda35f6f9168e87f821498ed798af62f Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 3 Feb 2024 13:50:18 -0500 Subject: [PATCH 162/206] readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9ef4261..7db7344 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ $ dl -vb TS-DOS.100 ([Full directions for REXCPM](ref/REXCPM.md)) ### Update a [REX#](http://bitchin100.com/wiki/index.php?title=REXsharp) -`dl -vb 'rx#u1.do' && dl -vu` +`$ dl -vb 'rx#u1.do' && dl -vu` ## "Magic Files" / Ultimate ROM II / TSLOAD Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS or Sardine from disk on-the-fly. From 05e43836c47b55aaa73cfe89c332baabe524e9f7 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 3 Feb 2024 15:35:14 -0500 Subject: [PATCH 163/206] readme --- README.md | 57 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 7db7344..0110b92 100644 --- a/README.md +++ b/README.md @@ -105,26 +105,37 @@ $ dl -vb TS-DOS.100 `$ dl -vb 'rx#u1.do' && dl -vu` ## "Magic Files" / Ultimate ROM II / TSLOAD -Ultimate ROM II ([docs](http://www.club100.org/library/libdoc.html)) ([roms](https://bitchin100.com/wiki/index.php?title=REXsharp#Option_ROM_Images_for_Download)) has a feature where it can load a RAM version of TS-DOS or Sardine from disk on-the-fly. -This allows you to keep the TS-DOS and/or Sardine executables on the disk instead of installed in ram, and it is loaded and then discarded on-demand by selecting the TS-DOS or Sardine entry from the UR-II menu. +There is a short list of filenames that are specially recognized: + DOS100.CO + DOS200.CO + DOSNEC.CO + DOSM10.CO + DOSK85.CO + SAR100.CO + SAR200.CO + SARNEC.CO + SARM10.CO + SARK85.CO -Similarly, a stand-alone program called TSLOAD is available that does the same thing. TSLOAD allows you to install an executable in ram that is much smaller than TS-DOS, and leave the actual TS-DOS executable on the disk. Then when you want to use TS-DOS, to run TSLOAD, and it loads TS-DOS from the disk and runs it, but does not install it. +When a client requests any of these filenames, dl2 first looks in the current directory (the current directory that the client is CD'd into within the share path). If a file matching the requested filename is there, it is used, the same as for any other file. -On a real drive this requires keeping a copy of DOS100.CO (or DOS200.CO, or DOSNEC.CO, and/or SAR100.CO, SAR200.CO etc) on a disk, or on every disk if you want to avoid having to swap them all the time. -On an emulator like dl2, the equivalent of that would mean keeping a copy of DOS100.CO in whatever directory you are sharing. -Additionally, since dl2 can CD into subdirectories, and since UR2 doesn't know about subdirectories, it means you would also have to keep a copy in every subdirectory. -(if you didn't , then what can happen is, you cd into some directory without a copy of DOS100.CO in it, exit TS-DOS, and then you can never get back in to TS-DOS because the UR2/TSLOAD don't know about cding up to the root directory, they just try to load DOS100.CO, which fails. The only fix is to restart dl2 so it's no longer cd'd in some subdirectory, or copying DOS100.CO to the subdirectory on the host side.) +Failing that, it looks in the root of the share path -But dl2 has special support for this feature so that the TS-DOS and Sardine entries in UR-II always work "by magic" in any directory, even if the files don't exist in the current working directory, or the share root, or anywhere within the shared tree. +Failing that, it looks in /usr/local/lib/dl -There are copies of [DOS100.CO](clients/ts-dos/DOS100.CO), [DOS200.CO](clients/ts-dos/DOS200.CO), [DOSNEC.CO](clients/ts-dos/DOSNEC.CO) ,[SAR100.CO](clients/ts-dos/SAR100.CO) and [SAR200.CO](clients/ts-dos/SAR200.CO) installed to ```/usr/local/lib/dl``` by ```sudo make install```. (Sadly, no SARNEC.CO . It is known to have existed, but is currently still lost to time. If you have a copy, please upload it! There may or may not have ever existed any versions of TS-DOS or Sardine for Olivetti M10 or Kyotronic KC-85, but the code in dl2 is ready to support them if they ever turn up, or any other files you may wish to work by magic like that.) +And some of those files are bundled with dl2 and installed in /usr/local/lib/dl: + DOS100.CO + DOS200.CO + DOSNEC.CO + SAR100.CO + SAR200.CO -When the client machine requests any of these filenames, dl2 first looks in the current directory like normal. If a file matching the requested filename is there, that is what is used, just like for any other file. This can be used to override the files bundled with dl2, just for the current working directory. -Failing that, then it looks in the root share dir. This is another way to override the files bundled with dl2, for the entire shared directory tree. -Failing that, it gets the file from /usr/local/lib/dl. These files are bundled with dl2, and means you never have to manually supply DOS100.CO or any of the others in any share paths. -This way the TS-DOS and Sardine options in Ultimate ROM II always work "by magic" without you having to do anything to provide the files like with a real drive & disk, yet if you want to use some other version of the files, you can, by just placing them in the share path just like placing them on a disk. +SARNEC.CO is known to have existed, but is currently lost. +The others probably never existed, but dl2 will recognize and serve them up if available just for completeness. -There are bootstrap installers for TSLOAD for Model 100 and 200 bundled with the other client installers. +This allows TSLOAD and the TS-DOS and SARDIN features in Ultimate ROM 2 to work "by magic" at all times without you having to actually place copies of these files in every directory and subdirectory in the share path. + +You can override the bundled versions of these files without touching the /usr/local/lib/dl files by placing say a different version of DOS100.CO in the root of a share path, and it will be in effect for all directories in that share path. [More details](ref/ur2.txt) @@ -135,7 +146,8 @@ For a TPDD1 disk image For a TPDD2 disk image `$ dl -v -m 2 -i disk_image.pdd2` -Support for disk image files that allow use of raw sector access commands on a virtual disk image file. +This is support for disk image files that allow use of raw sector access commands on a virtual disk image file. + Limitations: Only supports using the disk image for sector access. It doesn't provide access to the files in a disk image as files, just as raw sectors. Useful working examples: Sardine_American_English.pdd1, Disk_Power_KC-85.pdd1 @@ -147,18 +159,17 @@ You can still view or edit the raw sectors of any ordinary TPDD2 disk image such Example, using Sardine with a Model 100 with [Ultimate ROM II](http://www.club100.org/library/librom.html): One way to use Sardine is to let Ultimate ROM II load & unload the program from disk into ram on the fly instead of installing permanently in ram like normal. Sardine uses raw sector access commands to read a special dictionary data disk. For this to work, UR-II has to be able to load `SAR100.CO` from a normal filesystem disk using normal file/filesystem access, and then `SAR100.CO` needs to be able to use TPDD1 FDC-mode commands to read raw sectors from the special dictionary data disk. -This involves two features of dl2. -First, **magic files**. `SAR100.CO` is one of the "magic" files bundled with dl2, which are always loadable from a client at any time from any directory even if there is no such file in the directory being served as the virtual "disk". When UR-II tries to load a file by that particular name, if there is a file by that name in the current working directory it is used, but if there is no such file, dl2 just serves up the one from /usr/local/lib/dl, and the client never knows the difference. This emulates the normal case of a real TPDD1 drive which has no such thing as directories, and has a copy of `SAR100.CO` on it. -Second, **disk image files and sector-access commands**. If a disk image file is loaded with the **-i** option, then when a client tries to use sector-access commands, they work, and the data comes from (or goes to) the image file. If the specified filename does not exist it will be created if and when the client issues a format command. If the specified filename does not exist and is not given with any leading path, then it is searched for in /usr/local/lib/dl. If the disk image file is not writable by the user, then the virtual disk is also shown as write-protected. +This uses both the **magic files** and **disk image file** features. To try it out, 1: Run dl with the following commandline arguments, -`$ dl -vun -m 1 -i Sardine_American_English.pdd1` +``` +$ dl -vun -m 1 -i Sardine_American_English.pdd1 +``` -This set of flags tells dl2 to strictly emulate a TPDD1, disable some TPDD2 features and TS-DOS directory support which confuses `SAR100.CO`, and use the Sardine American English dictionary disk image file for any sector-access commands the client might issue. -`SAR100.CO` is a built-in "magic" file so you don't have to do anything extra to provide that, and assuming "Sardine_American_English.pdd1" doesn't exist in your current working directory, dl2 will use the copy in /usr/local/lib/dl. -The disk image file is marked read-only and behaves the same as a normal disk with the write-protect notch open (write-protected). +This set of flags tells dl2 to strictly emulate a TPDD1, disable some TPDD2 features and TS-DOS directory support which confuses `SAR100.CO`, and use the Sardine American English dictionary disk image file for any sector-access commands. +Both `SAR100.CO` and `Sardine_American_English.pdd1` are bundled with dl2, installed in /usr/local/lib/dl, so you don't have to do anything for SAR100.CO, and for the disk image you don't have to specify the full path. 2: Enter the UR-2 menu. Notice the "SARDIN" entry with the word "OFF" under it. @@ -176,7 +187,7 @@ Another example, [installing Disk Power for Kyotronic KC-85](clients/disk_power/ Disk image files may be created 2 ways: * One method is you may use the **dd** command in [pdd.sh](https://github.com/bkw777/pdd.sh) to read a real disk from a real drive, and output a disk image file. -* Another method is you may run `dl -v -m 1 -i filename.pdd1` or `dl -v -m 2 -i filename.pdd2`, where filename.pddN either doesn't exist or is zero bytes, and then use a client (like TS-DOS or pdd.sh) to format the "disk". The format command will cause dl2 to generate the empty disk image. +* Another method is you may run `dl -v -m 1 -i filename.pdd1` or `dl -v -m 2 -i filename.pdd2`, where filename.pddN either doesn't exist or is zero bytes, and then use a client (like TS-DOS or pdd.sh) to format the "disk". The format command will cause dl2 to generate the empty disk image. More details about the disk image format [disk_image_files.txt](ref/disk_image_files.txt) From 49ffe8798ca5dfbefb5b808534dca160641cde48 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sat, 3 Feb 2024 15:41:32 -0500 Subject: [PATCH 164/206] Update README.md --- README.md | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 0110b92..10d0478 100644 --- a/README.md +++ b/README.md @@ -106,16 +106,8 @@ $ dl -vb TS-DOS.100 ## "Magic Files" / Ultimate ROM II / TSLOAD There is a short list of filenames that are specially recognized: - DOS100.CO - DOS200.CO - DOSNEC.CO - DOSM10.CO - DOSK85.CO - SAR100.CO - SAR200.CO - SARNEC.CO - SARM10.CO - SARK85.CO +DOS100.CO, DOS200.CO, DOSNEC.CO, DOSM10.CO, DOSK85.CO +SAR100.CO, SAR200.CO, SARNEC.CO, SARM10.CO, SARK85.CO When a client requests any of these filenames, dl2 first looks in the current directory (the current directory that the client is CD'd into within the share path). If a file matching the requested filename is there, it is used, the same as for any other file. @@ -124,11 +116,8 @@ Failing that, it looks in the root of the share path Failing that, it looks in /usr/local/lib/dl And some of those files are bundled with dl2 and installed in /usr/local/lib/dl: - DOS100.CO - DOS200.CO - DOSNEC.CO - SAR100.CO - SAR200.CO +DOS100.CO, DOS200.CO, DOSNEC.CO +SAR100.CO, SAR200.CO SARNEC.CO is known to have existed, but is currently lost. The others probably never existed, but dl2 will recognize and serve them up if available just for completeness. From 6f869663e69d6a7b64354e7ffb1baca26e62f577 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 12 Feb 2024 20:40:15 -0500 Subject: [PATCH 165/206] unforgivable many changes at once * fix broken ttys[] & realloc() in find_ttys() * add support for tpdd2 banks * update several docs * add drive firmwares * little better directory display on debug console * refactor a bunch of the constants * tpdd2 mem read/write commands more closely emulate a real drive reading/writing cpu ram[], sector buffer within ram[], or rom[] * tpdd2 mem read from rom addresses acually return data from a copy of the actual tpdd2 rom * get rid of the seperate b[] in get_opr_cmd() and several others, just use gb[] for everything * store the initial working directory on startup to apply to disk image file if needed * more accurate error responses (matching a real drive) in several places * impliment the tpdd1 & tpdd2 condition bit fields more like the drive does * in update_cwd(), see if the new working directory is writable by the user, if not, set the wp bit in the condition variable --- Brother_FB-100.rom | Bin 0 -> 4096 bytes Makefile | 27 +- README.md | 64 +- TANDY_26-3814.rom | Bin 0 -> 4096 bytes clients/disk_power/Disk_Power.txt | 4 +- constants.h | 144 +-- dir_list.h | 2 +- dl.c | 1537 ++++++++++++++++------------- ref/Sardine.md | 31 + ref/baud_linux.c | 17 +- ref/disk_image_files.txt | 41 +- ref/pdd2_ram.txt | 8 +- ref/search_id_section.txt | 38 +- ref/ur2.txt | 4 +- 14 files changed, 1094 insertions(+), 823 deletions(-) create mode 100644 Brother_FB-100.rom create mode 100644 TANDY_26-3814.rom create mode 100644 ref/Sardine.md diff --git a/Brother_FB-100.rom b/Brother_FB-100.rom new file mode 100644 index 0000000000000000000000000000000000000000..366f8558c01efa81e93ed3e084167ba99912e380 GIT binary patch literal 4096 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 +#FB100_ROM := Brother_FB-100.rom # no use yet +TPDD2_ROM := TANDY_26-3814.rom + +DEFAULT_BASIC_BYTE_MS := 8 # ms-per-byte in -b file.100 +DEFAULT_MODEL := 1 # 1=tpdd1 2=tpdd2 (TS-DOS FOO.<> dirs requires tpdd1) +DEFAULT_BAUD := 19200 +DEFAULT_RTSCTS := false +DEFAULT_UPCASE := false +DEFAULT_DOTPOS := 6 # default 6.2 filenames compatible with Floppy/TS-DOS/etc. +DEFAULT_ATTR := 0x46 # default attribute 'F' compatible with Floppy/TS-DOS/etc. +RAW_ATTR := 0x20 # attr for "raw" mode, 0x00, 0x20, 0x46 are all plausible. +DEFAULT_DME_ROOT_LABEL := "0: " +DEFAULT_DME_PARENT_LABEL := "^ " CLIENT_LOADERS := \ clients/teeny/TINY.100 \ @@ -33,13 +46,14 @@ CLIENT_LOADERS := \ # clients/power-dos/POWR-D.100 LIB_OTHER := \ + $(TPDD2_ROM) \ clients/ts-dos/DOS100.CO \ clients/ts-dos/DOS200.CO \ clients/ts-dos/DOSNEC.CO \ clients/ts-dos/SAR100.CO \ clients/ts-dos/SAR200.CO \ clients/ts-dos/Sardine_American_English.pdd1 \ - clients/disk_power/Disk_Power.K85.pdd1 + clients/disk_power/Disk_Power.K85.pdd1 \ CLIENT_DOCS := \ clients/teeny/teenydoc.txt \ @@ -81,6 +95,17 @@ DEFINES := \ -DAPP_VERSION=\"$(APP_VERSION)\" \ -DAPP_LIB_DIR=\"$(APP_LIB_DIR)\" \ -DTTY_PREFIX=\"$(TTY_PREFIX)\" \ + -DDEFAULT_DME_ROOT_LABEL=\"$(DEFAULT_DME_ROOT_LABEL)\" \ + -DDEFAULT_DME_PARENT_LABEL=\"$(DEFAULT_DME_PARENT_LABEL)\" \ + -DTPDD2_ROM=\"$(TPDD2_ROM)\" \ + -DDEFAULT_BASIC_BYTE_MS=$(DEFAULT_BASIC_BYTE_MS) \ + -DDEFAULT_MODEL=$(DEFAULT_MODEL) \ + -DDEFAULT_BAUD=$(DEFAULT_BAUD) \ + -DDEFAULT_RTSCTS=$(DEFAULT_RTSCTS) \ + -DDEFAULT_UPCASE=$(DEFAULT_UPCASE) \ + -DDEFAULT_DOTPOS=$(DEFAULT_DOTPOS) \ + -DDEFAULT_ATTR=$(DEFAULT_ATTR) \ + -DRAW_ATTR=$(RAW_ATTR) \ # -DPRINT_8BIT \ # -DNADSBOX_EXTENSIONS \ diff --git a/README.md b/README.md index 10d0478..587657a 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ Examples: dl -b TS-DOS.100 dl -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 dl -vb rxcini.DO && dl -vu - dl -vun -m 1 -i Sardine_American_English.pdd1 + dl -vun -i Sardine_American_English.pdd1 $ ``` @@ -129,54 +129,23 @@ You can override the bundled versions of these files without touching the /usr/l [More details](ref/ur2.txt) ## Sector Access / Disk Images -For a TPDD1 disk image -`$ dl -v -m 1 -i disk_image.pdd1` - -For a TPDD2 disk image -`$ dl -v -m 2 -i disk_image.pdd2` +`$ dl -i disk_image.pdd1` +or +`$ dl -i disk_image.pdd2` This is support for disk image files that allow use of raw sector access commands on a virtual disk image file. Limitations: Only supports using the disk image for sector access. It doesn't provide access to the files in a disk image as files, just as raw sectors. -Useful working examples: Sardine_American_English.pdd1, Disk_Power_KC-85.pdd1 - -Those examples are both TPDD1 disks, but both TPDD1 and TPDD2 are supported. -There are just no known raw data applications like Sardine that use TPDD2 sector access to provide a TPDD2 example here. -You can still view or edit the raw sectors of any ordinary TPDD2 disk image such as the TPDD2 Utility Disk included with [pdd.sh](https://github.com/bkw777/pdd.sh) just to see that it works. - -Example, using Sardine with a Model 100 with [Ultimate ROM II](http://www.club100.org/library/librom.html): -One way to use Sardine is to let Ultimate ROM II load & unload the program from disk into ram on the fly instead of installing permanently in ram like normal. Sardine uses raw sector access commands to read a special dictionary data disk. -For this to work, UR-II has to be able to load `SAR100.CO` from a normal filesystem disk using normal file/filesystem access, and then `SAR100.CO` needs to be able to use TPDD1 FDC-mode commands to read raw sectors from the special dictionary data disk. -This uses both the **magic files** and **disk image file** features. - -To try it out, - -1: Run dl with the following commandline arguments, -``` -$ dl -vun -m 1 -i Sardine_American_English.pdd1 -``` - -This set of flags tells dl2 to strictly emulate a TPDD1, disable some TPDD2 features and TS-DOS directory support which confuses `SAR100.CO`, and use the Sardine American English dictionary disk image file for any sector-access commands. -Both `SAR100.CO` and `Sardine_American_English.pdd1` are bundled with dl2, installed in /usr/local/lib/dl, so you don't have to do anything for SAR100.CO, and for the disk image you don't have to specify the full path. - -2: Enter the UR-2 menu. -Notice the "SARDIN" entry with the word "OFF" under it. -Hit enter on SARDIN. -If you get a prompt about HIMEM, answer Y. -This loads SAR100.CO into ram. -Now notice the SARDIN entry changed from "OFF" to "ON" under it. - -3: Enter T-Word and start a new document and type some text. - -4: Press GRPH+F to invoke Sardine to spell-check the document. -This will invoke the SAR100.CO previously loaded, which will try to use TPDD1 FDC-mode sector access commands, wich dl2 will respond to with data from the .pdd1 file. +If the file exists, it's size is used to set the emulation mode to tpdd1 vs tpdd2. +If the file doesn't exist or is zero bytes, then the last 5 characters in the filename are used, ".pdd1" or ".pdd2", case insensitive. -Another example, [installing Disk Power for Kyotronic KC-85](clients/disk_power/Disk_Power.txt) +One example usage is the [Sardine](ref/Sardine.md) spell checker. +Another is [installing Disk Power for Kyotronic KC-85](clients/disk_power/Disk_Power.txt) -Disk image files may be created 2 ways: -* One method is you may use the **dd** command in [pdd.sh](https://github.com/bkw777/pdd.sh) to read a real disk from a real drive, and output a disk image file. -* Another method is you may run `dl -v -m 1 -i filename.pdd1` or `dl -v -m 2 -i filename.pdd2`, where filename.pddN either doesn't exist or is zero bytes, and then use a client (like TS-DOS or pdd.sh) to format the "disk". The format command will cause dl2 to generate the empty disk image. +There are 2 ways to create disk image files so far: +* One way is to use [pdd.sh](https://github.com/bkw777/pdd.sh) to read a real disk from a real drive, and output a disk image file. +* Another way is to run `dl -i filename`, where the file either doesn't exist or is zero bytes, and then use a client (like TS-DOS or pdd.sh) to format the "disk". When dl2 gets the format command, it will create the disk image. More details about the disk image format [disk_image_files.txt](ref/disk_image_files.txt) @@ -195,6 +164,7 @@ Sadly, `..` can not be used, but here are a few examples that do work. `$ ROOT_LABEL=/ PARENT_LABEL=^ dl` `$ ROOT_LABEL='-root-' PARENT_LABEL='-back-' dl` +`$ ROOT_LABEL='-top-' PARENT_LABEL='-up-' dl` `$ ROOT_LABEL='0:' PARENT_LABEL='^:' dl` or you can confuse someone... `$ ROOT_LABEL='C:\' PARENT_LABEL='UP:' dl` @@ -209,9 +179,13 @@ See [co2ba](co2ba.md) ## OS Compatibility Tested on Linux, [Mac](ref/mac.md), [FreeBSD](ref/freebsd.md), and [Windows](ref/windows.md). -## TODO -* support big-endian platforms -* file/filesystem access on disk images - currently can only use for sector access +## TODO - not all necessarily serious +* Store the actual attr byte given by clients when they save a file, rather than faking with hardwired DEFAULT_ATTR=0x46. Store in xattr so that it stays part of the file when it is copied/moved/renamed. +* File/filesystem access on disk images - Currently can only use disk images for sector access. +* Verify if the code works on a big-endian platform - There are a lot of 2-byte values and a lot of direct byte manipulations because the protocol & drive uses MSB-first everywhere while most platforms today do not. +* Figure out and emulate more of the special memory addresses accessible in tpdd2 mode. We already do some. +* Fake sector 0 based on the files in the current share path so that if a client tries to read the FCB table directly it works. +* Fake entire disk image in ram based on current share path files. Option to save the image as long as we're there. ## History / Credits [DeskLink for ms-dos](https://ftp.whtech.com/club100/com/dl-arc.exe.gz) 1987 Travelling Software diff --git a/TANDY_26-3814.rom b/TANDY_26-3814.rom new file mode 100644 index 0000000000000000000000000000000000000000..c2a891acddb6469f7aab9ab5c64ac575d4a94b10 GIT binary patch literal 4096 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 literal 0 HcmV?d00001 diff --git a/clients/disk_power/Disk_Power.txt b/clients/disk_power/Disk_Power.txt index 428005f..9a17e95 100644 --- a/clients/disk_power/Disk_Power.txt +++ b/clients/disk_power/Disk_Power.txt @@ -13,9 +13,9 @@ pdd.sh so that dl2 can act as a virtual drive for sector access to it. Installation: Just run the following command: - $ dl -vb Disk_Power.K85 && dl -vue -m 1 -i Disk_Power.K85.pdd1 + $ dl -vb Disk_Power.K85 && dl -vun -i Disk_Power.K85.pdd1 -(dl2 will get both files from /usr/local/lib/dl) +(both files are bundled with dl2 and will be loaded from /usr/local/lib/dl) When the installer on the KC-85 prompts to insert the disk, just hit [Enter]. diff --git a/constants.h b/constants.h index 31fc9ac..f9cf993 100644 --- a/constants.h +++ b/constants.h @@ -31,17 +31,16 @@ #define REQ_SYSINFO 0x33 // TPDD2 Get System Information #define REQ_EXEC 0x34 // TPDD2 Execute Program -// TPDD return block formats +// TPDD return block formats {fmt,len} #define RET_READ 0x10 -#define RET_DIRENT 0x11 -#define RET_STD 0x12 // shared return format for: error open close delete status write -#define RET_VERSION 0x14 // TPDD2 -#define RET_CONDITION 0x15 // TPDD2 -#define RET_CACHE 0x38 // TPDD2 shared return format for: cache mem_write cond_list +static const unsigned char RET_DIRENT[2] = {0x11,0x1C}; +static const unsigned char RET_STD[2] = {0x12,0x01}; // shared return format for: error open close delete status write +static const unsigned char RET_VERSION[2] = {0x14,0x0F}; // TPDD2 +static const unsigned char RET_CONDITION[2] = {0x15,0x01}; // TPDD2 +static const unsigned char RET_CACHE[2] = {0x38,0x01}; // TPDD2 shared return format for: cache mem_write cond_list #define RET_MEM_READ 0x39 // TPDD2 -#define RET_SYSINFO 0x3A // TPDD2 -#define RET_EXEC 0x3B // TPDD2 - +static const unsigned char RET_SYSINFO[2] = {0x3A,0x06}; // TPDD2 +static const unsigned char RET_EXEC[2] = {0x3B,0x03}; // TPDD2 // directory entry request types #define DIRENT_SET_NAME 0x00 @@ -57,15 +56,19 @@ #define F_OPEN_READ 0x03 // TPDD Operation-mode error codes +// Normal #define ERR_SUCCESS 0x00 // 'Operation Complete' +// File #define ERR_NO_FILE 0x10 // 'File Not Found' #define ERR_EXISTS 0x11 // 'File Exists' +// Sequence #define ERR_NO_FNAME 0x30 // 'Missing Filename' #define ERR_DIR_SEARCH 0x31 // 'Directory Search Error' #define ERR_BANK 0x35 // 'Bank Error' #define ERR_PARAM 0x36 // 'Parameter Error' #define ERR_FMT_MISMATCH 0x37 // 'Open Format Mismatch' #define ERR_EOF 0x3F // 'End of File' +// Disk I/O #define ERR_NO_START 0x40 // 'No Start Mark' #define ERR_ID_CRC 0x41 // 'ID CRC Check Error' #define ERR_SECTOR_LEN 0x42 // 'Sector Length Error' @@ -77,14 +80,22 @@ #define ERR_SECTOR_NUM 0x4A // 'Sector Number Error' #define ERR_READ_TIMEOUT 0x4B // 'Read Data Timeout' #define ERR_SECTOR_NUM2 0x4D // 'Sector Number Error' +// Protect #define ERR_WRITE_PROTECT 0x50 // 'Write-Protected Disk' #define ERR_DISK_NOINIT 0x5E // 'Disk Not Formatted' +#define ERR_WP_TPDD1_DISK 0x5F // TPDD2 'Write Protect to 26-3808 Diskette' +// File Territory #define ERR_DIR_FULL 0x60 // 'Disk Full or Max File Size Exceeded or Directory Full' / TPDD2 'Directory Full' #define ERR_DISK_FULL 0x61 // 'Disk Full' #define ERR_FILE_LEN 0x6E // 'File Too Long' (real drive limits to 65534, we exceed for REXCPM) -#define ERR_NO_DISK 0x70 // 'No Disk' -#define ERR_DISK_CHG 0x71 // 'Disk Not Inserted or Disk Change Error' / TPDD2 'Disk Change Error' -#define ERR_DEFECTIVE 0x83 // 'Defective Disk' (real drive needs a power-cycle to clear this error) +// Diskette Condition +#define ERR_NO_DISK 0x70 // 'Disk Not Inserted' +#define ERR_DISK_CHG 0x71 // 'Disk Change Error' +// Sensor +#define ERR_NO_INDEX_SIGNAL 0x80 +#define ERR_ABNORMAL_TRACK_ZERO 0x81 +#define ERR_ABNORMAL_INDEX_SIGNAL 0x82 +#define ERR_DEFECTIVE 0x83 // 'Defective Disk' - real drive needs a power-cycle to clear this error - not in the manual // TPDD1 FDC-mode commands #define FDC_SET_MODE 'M' // set Operation-mode or FDC-mode @@ -98,7 +109,7 @@ #define FDC_WRITE_ID_NV 'C' // write sector ID without verify #define FDC_WRITE_SECTOR 'W' // write sector data #define FDC_WRITE_SECTOR_NV 'X' // write sector data without verify -#define FDC_CMDS {FDC_SET_MODE,FDC_CONDITION,FDC_FORMAT,FDC_FORMAT_NV,FDC_READ_ID,FDC_READ_SECTOR,FDC_SEARCH_ID,FDC_WRITE_ID,FDC_WRITE_ID_NV,FDC_WRITE_SECTOR,FDC_WRITE_SECTOR_NV,0x00} +static const char FDC_CMDS[] = {FDC_SET_MODE,FDC_CONDITION,FDC_FORMAT,FDC_FORMAT_NV,FDC_READ_ID,FDC_READ_SECTOR,FDC_SEARCH_ID,FDC_WRITE_ID,FDC_WRITE_ID_NV,FDC_WRITE_SECTOR,FDC_WRITE_SECTOR_NV,0x00}; // TPDD1 FDC-mode error codes // There is no documentation for FDC error codes. @@ -120,41 +131,38 @@ #define ERR_FDC_NO_DISK 209 // 'Disk Not Inserted' #define ERR_FDC_INTERRUPTED 216 // 'Operation Interrupted' -// TPDD1 FDC Condition bits -#define FDC_COND_NOTINS 0x80 // bit 7 : disk not inserted -#define FDC_COND_CHANGED 0x40 // bit 6 : disk changed -#define FDC_COND_WPROT 0x20 // bit 5 : disk write-protected -#define FDC_COND_b4 0x10 -#define FDC_COND_b3 0x08 -#define FDC_COND_b2 0x04 -#define FDC_COND_b1 0x02 -#define FDC_COND_b0 0x01 -#define FDC_COND_NONE 0x00 // no conditions - // TPDD1 FDC Logical Sector Length Codes -#define FDC_LOGICAL_SIZE_CODES {64,80,128,256,512,1024,1280} +static const unsigned short FDC_LOGICAL_SECTOR_SIZE[7] = {64,80,128,256,512,1024,1280}; + +// TPDD1 Condition bits +#define PDD1_COND_BIT_NOTINS 7 // disk not inserted +#define PDD1_COND_BIT_CHANGED 6 // disk changed +#define PDD1_COND_BIT_WPROT 5 // disk write-protected +#define PDD1_COND_BIT_4 4 +#define PDD1_COND_BIT_3 3 +#define PDD1_COND_BIT_2 2 +#define PDD1_COND_BIT_1 1 +#define PDD1_COND_BIT_0 0 +#define PDD1_COND_NONE 0x00 // no conditions // TPDD2 Condition bits -#define PDD2_COND_b7 0x80 -#define PDD2_COND_b6 0x40 -#define PDD2_COND_b5 0x20 -#define PDD2_COND_b4 0x10 -#define PDD2_COND_CHANGED 0x08 // bit 3 : disk changed -#define PDD2_COND_NOTINS 0x04 // bit 2 : disk not inserted -#define PDD2_COND_WPROT 0x02 // bit 1 : write protected disk -#define PDD2_COND_POWER 0x01 // bit 0 : low power -#define PDD2_COND_NONE 0x00 // no conditions +#define PDD2_COND_BIT_7 7 +#define PDD2_COND_BIT_6 6 +#define PDD2_COND_BIT_5 5 +#define PDD2_COND_BIT_4 4 +#define PDD2_COND_BIT_CHANGED 3 // disk changed +#define PDD2_COND_BIT_NOTINS 2 // disk not inserted +#define PDD2_COND_BIT_WPROT 1 // disk write protected +#define PDD2_COND_BIT_POWER 0 // low power +#define PDD2_COND_NONE 0x00 // no conditions // lengths & addresses #define PDD1_TRACKS 40 #define PDD1_SECTORS 2 #define PDD2_TRACKS 80 #define PDD2_SECTORS 2 -#define TPDD_DATA_MAX 260 // largest theoretical packet is 256+3 +#define DIRENTS 40 #define REQ_RW_DATA_MAX 128 // largest chunk size in req_read() req_write() -#define LEN_RET_STD 0x01 -#define LEN_RET_DME 0x0B -#define LEN_RET_DIRENT 0x1C #define TPDD_FILENAME_LEN 24 #define LOCAL_FILENAME_MAX 256 #define SECTOR_ID_LEN 12 @@ -167,38 +175,55 @@ #define SMT_OFFSET 1240 #define PDD1_SMT 0x80 #define PDD2_SMT 0xC0 -#define RAM_ADDR 0x8000 -#define RAM_LEN 0x0800 -#define PDD2_ID_ADDR (RAM_ADDR+0x0004) #define PDD2_MEM_READ_MAX 252 // real drive absolute limit #define PDD2_MEM_WRITE_MAX 127 // real drive absolute limit +#define TPDD_MSG_MAX 256 // largest theoretical packet is 256+3, largest actual is 252+3 + +// cpu memory map +#define IOPORT_ADDR 0x00 +#define IOPORT_LEN 0x1F +#define CPURAM_ADDR 0x80 +#define CPURAM_LEN 0x7F +#define GA_ADDR 0x4000 +#define GA_LEN 0x03 +#define RAM_ADDR 0x8000 +#define RAM_LEN 0x0800 +#define ROM_ADDR 0xF000 +#define ROM_LEN 0x1000 + +// sector cache +#define PDD2_ID_REL 0x04 +#define PDD2_ID_ADDR (RAM_ADDR+PDD2_ID_REL) +#define PDD2_DATA_REL 0x13 +#define PDD2_DATA_ADDR (RAM_ADDR+PDD2_DATA_REL) +#define PDD2_CACHE_LEN (PDD2_DATA_REL+SECTOR_DATA_LEN) +#define PDD2_CACHE_LEN_MSB ((PDD2_CACHE_LEN>>0x08)&0xFF) // 0x05 +#define PDD2_CACHE_LEN_LSB (PDD2_CACHE_LEN&0xFF) // 0x13 // TPDD2 version data: 41 10 01 00 50 05 00 02 00 28 00 E1 00 00 00 #define VERSION_MSB 0x41 #define VERSION_LSB 0x10 #define SIDES 0x01 -#define TRACKS_MSB 0x00 -#define TRACKS_LSB 0x50 -#define SECTOR_SIZE_MSB 0x05 -#define SECTOR_SIZE_LSB 0x00 +#define TRACKS_MSB ((PDD2_TRACKS>>0x08)&0xFF) +#define TRACKS_LSB (PDD2_TRACKS&0xFF) +#define SECTOR_SIZE_MSB ((SECTOR_DATA_LEN>>0x08)&0xFF) +#define SECTOR_SIZE_LSB (SECTOR_DATA_LEN&0xFF) #define SECTORS_PER_TRACK 0x02 -#define DIRENTS_MSB 0x00 -#define DIRENTS_LSB 0x28 -#define MAX_FD 0x00 -#define MODEL 0xE1 // E1 = TPDD2 +#define DIRENTS_MSB ((DIRENTS>>0x08)&0xFF) +#define DIRENTS_LSB (DIRENTS&0xFF) +#define MAX_FD 0x00 // it's 0 but it means the highest fd# is 0, meaning max 1 open file +#define MODEL_CODE 0xE1 // E1 = TPDD2 #define VERSION_R0 0x00 #define VERSION_R1 0x00 #define VERSION_R2 0x00 // TPDD2 sysinfo data: 80 13 05 00 10 E1 -#define SECTOR_CACHE_START_MSB 0x80 -#define SECTOR_CACHE_START_LSB 0x13 -//#define SECTOR_CACHE_LEN_MSB 0x05 // SECTOR_SIZE_MSB -//#define SECTOR_CACHE_LEN_LSB 0x00 // SECTOR_SIZE_LSB -#define SYSINFO_CPU 0x10 // 0x10 = HD6301 -//#define MODEL 0xE1 - -#define PDD2_CACHE_ADDR (SECTOR_CACHE_START_MSB*256+SECTOR_CACHE_START_LSB) +#define SECTOR_CACHE_START_MSB ((PDD2_DATA_ADDR>>0x08)&0xFF) // 0x80 +#define SECTOR_CACHE_START_LSB (PDD2_DATA_ADDR&0xFF) // 0x13 +// sysinfo[2] = SECTOR_SIZE_MSB +// sysinfo[3] = SECTOR_SIZE_LSB +#define SYSINFO_CPU_CODE 0x10 // 0x10 = HD6301 +// sysinfo[5] = MODEL_CODE // flags #define FE_FLAGS_NONE 0 @@ -220,9 +245,4 @@ #define OPR_CMD_SYNC 0x5A #define FDC_CMD_EOL 0x0D -// terminal emulation -#define SSO "\033[7m" // set standout -#define RSO "\033[m" // reset standout -#define D8C "\033 F" // disable 8-bit vtxx control bytes (0x80-0x9F) - #endif // PDD_CONSTANTS_H diff --git a/dir_list.h b/dir_list.h index 2e0706a..785001b 100644 --- a/dir_list.h +++ b/dir_list.h @@ -29,7 +29,7 @@ MA 02111, USA. typedef struct { char client_fname[TPDD_FILENAME_LEN+1]; - char local_fname[LOCAL_FILENAME_MAX]; + char local_fname[LOCAL_FILENAME_MAX+1]; uint16_t len; uint8_t flags; } FILE_ENTRY; diff --git a/dl.c b/dl.c index 82ea7c9..dd4358a 100644 --- a/dl.c +++ b/dl.c @@ -77,76 +77,121 @@ MA 02111, USA. #define TTY_PREFIX "ttyS" #endif -#ifndef DEFAULT_CLIENT_BAUD -#define DEFAULT_CLIENT_BAUD B19200 +#ifndef DEFAULT_BAUD +#define DEFAULT_BAUD 19200 #endif -// Most things get away with 5ms. -// REXCPM rxcini.do requires 6ms. -// TS-DOS.200 requires 7ms. (a "?" on line 3 gets dropped) -// TEENY.M10 requires 8-10 +// default model emulation, 1=pdd1 2=pdd2 +// TS-DOS directories requires tpdd1 +#ifndef DEFAULT_MODEL +#define DEFAULT_MODEL 1 +#endif + +// if a loader fails in bootstrap(), try increasing this +#ifndef DEFAULT_BASIC_BYTE_MS #define DEFAULT_BASIC_BYTE_MS 8 +#endif +// TODO +// * What does Cambridge Z88 do? +// * What do CP/M clients do? +// * What do the original Brother knitting machines do? +#ifndef DEFAULT_ATTR #define DEFAULT_ATTR 0x46 // F +#endif +#ifndef RAW_ATTR #define RAW_ATTR 0x20 // space +#endif + +#define DEFAULT_TPDD1_IMG_SUFFIX ".pdd1" +#define DEFAULT_TPDD2_IMG_SUFFIX ".pdd2" + +#ifndef DEFAULT_UPCASE +#define DEFAULT_UPCASE false +#endif + +#ifndef DEFAULT_RTSCTS +#define DEFAULT_RTSCTS false +#endif + +#ifndef DEFAULT_DOTPOS +#define DEFAULT_DOTPOS 6 +#endif // To mimic the original Desk-Link from Travelling Software: //#define DEFAULT_DME_ROOT_LABEL "ROOT " -//#define DEFAULT_DME_PARENT_LABEL "PARENT" // environment variables: -#define DEFAULT_DME_ROOT_LABEL "0: " // ROOT_LABEL='0:' '-root-' 'C:\' -#define DEFAULT_DME_PARENT_LABEL "^ " // PARENT_LABEL='^' '-back-' 'UP:' -// this you can't change unless you also hack ts-dos -#define DEFAULT_DME_DIR_LABEL "<>" // DIR_LABEL='/' +//#define DEFAULT_DME_PARENT_LABEL "PARENT" +#ifndef TSDOS_ROOT_LABEL +#define TSDOS_ROOT_LABEL "0: " +#endif +#ifndef TSDOS_PARENT_LABEL +#define TSDOS_PARENT_LABEL "^ " +#endif +// you can't change this unless you also hack ts-dos +#define TSDOS_DIR_LABEL "<>" /* - * Support for Ultimate ROM II TS-DOS loader: see ref/ur2.txt - * These filenames will always be loadable by "magic" in any cd path, even + * Support for Ultimate ROM II TS-DOS & Sardine loader: see ref/ur2.txt + * These filenames will always be loadable "by magic" in any cd path, even * if no such filename exists anywhere in the share tree. For any of these * filenames, search the following paths: cwd, share root, app_lib_dir. * TODO add $XDG_DATA_HOME (~/.local/share/myapp mac: ~/Library/myapp/) */ -char * magic_files [] = { +const char * magic_files [] = { "DOS100.CO", "DOS200.CO", "DOSNEC.CO", "SAR100.CO", "SAR200.CO", "SARNEC.CO", // SARNEC.CO is known to have existed, but is currently lost. - "DOSM10.CO", // From here down probably never existed. + "DOSM10.CO", // The rest of these probably never existed. "DOSK85.CO", // "SARM10.CO", // "SARK85.CO" // }; -// termios VMIN & VTIME -#define C_CC_VMIN 1 -#define C_CC_VTIME 5 - // terminal emulation #define SSO "\033[7m" // set standout #define RSO "\033[m" // reset standout #define D8C "\033 F" // disable 8-bit vtxx control bytes (0x80-0x9F) +// The roms in Brother FB-100, knitking FDD19, Purple Computing D103, and +// TANDY 26-3808 have all been dumped and compared, and are all identical. +// So the rom is from Brother not TANDY. +//#ifndef FB100_ROM +//#define FB100_ROM "fb100.rom" +//#endif + +#ifndef TPDD2_ROM +#define TPDD2_ROM "tpdd2.rom" +#endif + +// termios VMIN & VTIME +#define C_CC_VMIN 1 +#define C_CC_VTIME 5 + /*************************************************************/ int debug = 0; -bool upcase = false; -bool rtscts = false; -unsigned dot_offset = 6; // 0 for raw, 6 for KC-85, 8 for WP-2 -int client_baud = DEFAULT_CLIENT_BAUD; +bool upcase = DEFAULT_UPCASE; +bool rtscts = DEFAULT_RTSCTS; +unsigned dot_offset = DEFAULT_DOTPOS; // 0 for raw, 6 for KC-85, 8 for WP-2 +uint8_t model = DEFAULT_MODEL; +int baud = DEFAULT_BAUD; int BASIC_byte_us = DEFAULT_BASIC_BYTE_MS*1000; -char client_tty_name[PATH_MAX] = {0x00}; -char disk_img_fname[PATH_MAX] = {0x00}; -char app_lib_dir[PATH_MAX] = APP_LIB_DIR; -char dme_root_label[7] = DEFAULT_DME_ROOT_LABEL; -char dme_parent_label[7] = DEFAULT_DME_PARENT_LABEL; -char dme_dir_label[3] = DEFAULT_DME_DIR_LABEL; + +char client_tty_name[PATH_MAX+1] = {0x00}; +char disk_img_fname[PATH_MAX+1] = {0x00}; +char app_lib_dir[PATH_MAX+1] = APP_LIB_DIR; +char share_path[2][PATH_MAX+1] = {{0},{0}}; +char dme_root_label[7] = TSDOS_ROOT_LABEL; +char dme_parent_label[7] = TSDOS_PARENT_LABEL; +char dme_dir_label[3] = TSDOS_DIR_LABEL; char default_attr = DEFAULT_ATTR; bool enable_magic_files = true; #if !defined(_WIN) bool getty_mode = false; #endif -int model = 2; char** args; int f_open_mode = F_OPEN_NONE; @@ -154,27 +199,34 @@ int client_tty_fd = -1; int disk_img_fd = -1; struct termios client_termios; int o_file_h = -1; -uint8_t gb[TPDD_DATA_MAX]; -char cwd[PATH_MAX] = {0x00}; +uint8_t gb[TPDD_MSG_MAX]; +char iwd[PATH_MAX+1] = {0x00}; +char cwd[PATH_MAX+1] = {0x00}; char dme_cwd[7] = DEFAULT_DME_ROOT_LABEL; -char bootstrap_fname[PATH_MAX] = {0x00}; +char bootstrap_fname[PATH_MAX+1] = {0x00}; int opr_mode = 1; uint8_t dme = 0; +uint8_t bank = 0; bool dme_disabled = false; -char ch[2] = {0xFF}; // 0x00 is a valid OPR command, so init to 0xFF -//uint8_t img_header_len = SECTOR_HEADER_LEN; -const uint16_t fdc_logical_size_codes[] = FDC_LOGICAL_SIZE_CODES; -const char fdc_cmds[] = FDC_CMDS; -uint8_t rb[RAM_LEN] = {0x00}; // disk image record buffer / virtual pdd2 ram - +uint8_t ch[2] = {0xFF}; // 0x00 is a valid Operation-mode command, so init to 0xFF +uint8_t rb[SECTOR_LEN] = {0x00}; // pdd1 disk image record buffer FILE_ENTRY* cur_file; int dir_depth=0; +uint8_t pdd1_condition = PDD1_COND_NONE; // pdd1 condition bit flags +uint8_t pdd2_condition = PDD2_COND_NONE; // pdd2 condition bit flags + +// drive cpu memory map +uint8_t ioport[IOPORT_LEN] = {0x00}; // i/o port +uint8_t cpuram[CPURAM_LEN] = {0x00}; // 128 bytes cpu internal ram +uint8_t ga[GA_LEN] = {0x00}; // gate array interface +uint8_t ram[RAM_LEN] = {0x00}; // 2k ram (pdd2 disk image record buffer) +uint8_t rom[ROM_LEN] = {0x00}; // 4k cpu internal mask rom void show_main_help(); /* primitives and utilities */ -// (verbosity_threshold, printf_format , args...) +// dbg(verbosity_threshold, printf_format, args...) // dbg(3,"err %02X",err); // means only show this message if debug>=3 void dbg( const int v, const char* format, ... ) { if (debug0 bytes, then sanity check based on the size, - // otherwise the format command will create it on the spot if needed. - if (info.st_size) { - if (model==1 && info.st_size != PDD1_IMG_LEN) { - dbg(0,"Expected TPDD1 disk image file size %u\n",PDD1_IMG_LEN); - dbg(0,"\"%s\" is %u\n",disk_img_fname,info.st_size); - return 1; - } - if (model==2 && info.st_size != PDD2_IMG_LEN) { - dbg(0,"Expected TPDD2 disk image file size %u\n",PDD2_IMG_LEN); - dbg(0,"\"%s\" is %u\n",disk_img_fname,info.st_size); - return 1; - } + + // disk_img_fname has now been re-written if and as necessary, + // and still may or may not exist + struct stat info; + if (!stat(disk_img_fname, &info) && info.st_size>0) { + // if file exists and >0 bytes + dbg(1,"Loading disk image file \"%s\"\n",disk_img_fname); + + // use file size to automatically set model 1 vs 2 or reject file + if (info.st_size==PDD1_IMG_LEN) model = 1; + if (info.st_size==PDD2_IMG_LEN) model = 2; + if (model==1 && info.st_size != PDD1_IMG_LEN) { + dbg(0,"%d bytes, expected %u bytes for TPDD1\n",info.st_size,PDD1_IMG_LEN); + return 1; + } + if (model==2 && info.st_size != PDD2_IMG_LEN) { + dbg(0,"%d bytes, expected %u bytes for TPDD2\n",info.st_size,PDD2_IMG_LEN); + return 1; } + } else { + // if file doesn't exist or is 0 bytes + dbg(1,"Disk image file \"%s\" is empty or does not exist.\nIt will be created if the client issues a format command.\n",disk_img_fname); + + // use file name to automatically set model 1 vs 2 + char ext[6] = {0}; + strncpy(ext,disk_img_fname+strlen(disk_img_fname)-5,5); + if (!strcasecmp(ext,DEFAULT_TPDD1_IMG_SUFFIX)) model = 1; + else if (!strcasecmp(ext,DEFAULT_TPDD2_IMG_SUFFIX)) model = 2; } + + // rewrite with leading path if not already + // because we we may cd all over the place + if (disk_img_fname[0]=='/') return 0; + char t[PATH_MAX+1] = {0}; + strcpy(t,iwd); + strcat(t,"/"); + strcat(t,disk_img_fname); + memcpy(disk_img_fname,t,PATH_MAX+1); + return 0; } @@ -336,37 +412,37 @@ void find_ttys (char* f) { // read /dev, look for all files beginning with prefix // add any matches to ttys[] - char** ttys = calloc(0,sizeof(*ttys)); + char** ttys = malloc(sizeof(char*)); struct dirent *files; - int i=0, l=strlen(f); + uint16_t nttys = 0, l=strlen(f); + dbg(2,"Searching for \"%s%s*\"\n",path,f); while ((files = readdir(dir))) { - if (files->d_type==DT_DIR) continue; // may do nothing on some systems but that's ok if (strncmp(files->d_name,f,l)) continue; - ttys = realloc(ttys,++i*sizeof(*ttys)); - ttys[i] = malloc(strlen(files->d_name)+1); - strcpy(ttys[i],files->d_name); + nttys++; + ttys = realloc(ttys, (nttys+1) * sizeof(char(*))); + ttys[nttys] = files->d_name; } closedir(dir); - int n=0; - if (i==1) n=1; // if there is only one element in ttys[], use it - while (!n) { // otherwise dislplay a menu of ttys[] and ask user to pick one + int i=0; + if (nttys==1) i=1; // if there is only one element in ttys[], use it + if (nttys>1) while (!i) { // if more than 1 then menu dbg(0,"\n"); - for (n=1;n<=i;n++) dbg(0,"%d) %s\n",n,ttys[n]); - n=0; char a[6]={0}; - dbg(0,"Which serial port is the TPDD client on (1-%d) ? ",i); - if (fgets(a,sizeof(a),stdin)) n=atoi(a); - if (n<1 || n>i) n=0; + for (i=1;i<=nttys;i++) dbg(0,"%d) %s\n",i,ttys[i]); + i=0; char a[6]={0}; + dbg(0,"Which serial port is the TPDD client on (1-%d) ? ",nttys); + if (fgets(a,sizeof(a),stdin)) i=atoi(a); + if (i<1 || i>nttys) i=0; if (a[0]=='q'||a[0]=='Q') break; } // set client_tty_name[] with the final result client_tty_name[0]=0x00; - if (n) { + if (i) { strcpy(client_tty_name,path); - strcat(client_tty_name,ttys[n]); + strcat(client_tty_name,ttys[i]); } free(ttys); @@ -382,14 +458,14 @@ void resolve_client_tty_name () { break; case '-': // stdin/stdout mode, silence all messages - untested - debug = 0; + debug = -1; strcpy (client_tty_name,"/dev/tty"); client_tty_fd=1; break; default: // something given, try with and without prepending /dev/ if (!access(client_tty_name,F_OK)) break; - char t[PATH_MAX]={0x00}; + char t[PATH_MAX+1]={0x00}; int i = 0; strcpy(t,client_tty_name); strcpy(client_tty_name,"/dev/"); @@ -412,7 +488,7 @@ void client_tty_vmt(int m,int t) { int open_client_tty () { dbg(3,"%s()\n",__func__); - if (!client_tty_name[0]) { show_main_help() ;dbg(0,"Error: No serial device specified\n"); return 1; } + if (!client_tty_name[0]) { show_main_help() ;dbg(0,"Error: No serial device specified\n(searched: /dev/%s*)\n",TTY_PREFIX); return 1; } dbg(0,"Opening \"%s\" ... ",client_tty_name); // open with O_NONBLOCK to avoid hang if client not ready, then unset later. @@ -426,7 +502,7 @@ int open_client_tty () { #if !defined(_WIN) if (getty_mode) { - debug = 0; + debug = -1; if (!login_tty(client_tty_fd)) client_tty_fd = STDIN_FILENO; else (void)(daemon(1,1)+1); } @@ -445,7 +521,7 @@ int open_client_tty () { if (rtscts) client_termios.c_cflag |= CRTSCTS; else client_termios.c_cflag &= ~CRTSCTS; - if (cfsetspeed(&client_termios,client_baud)==-1) return 22; + if (cfsetspeed(&client_termios,itor(baud))==-1) return 22; if (tcsetattr(client_tty_fd,TCSANOW,&client_termios)==-1) return 23; @@ -478,7 +554,8 @@ int read_client_tty(void* b, const unsigned int n) { // cat a file to terminal, for custom loader directions in bootstrap() void dcat(char* f) { - char b[4097]={0x00}; int h=open(f,O_RDONLY); + char b[4097]={0x00}; + int h=open(f,O_RDONLY); if (h<0) return; while (read(h,&b,4096)>0) dbg(0,"%s",b); close(h); @@ -502,8 +579,8 @@ void dcat(char* f) { * b[2] to b[1+len] = 0 to 128 bytes of payload (data block) * ignore everything after b[1+len] */ -unsigned char checksum(unsigned char* b) { - unsigned short s=0; unsigned char i; unsigned char l=2+b[1]; +uint8_t checksum(unsigned char* b) { + uint16_t s=0; uint8_t i, l=2+b[1]; for (i=0;i6) l=3; - return fdc_logical_size_codes[l]; -} - // standard fdc-mode 8-byte response // e = error code ERR_FDC_* -> ascii hex pair // s = status or data -> ascii hex pair @@ -580,15 +665,14 @@ void ret_fdc_std(uint8_t e, uint8_t s, uint16_t l) { } // p : physical sector to seek to -// m : read-only / write-only / read-write -// r : send or don't send error response to client from here -int open_disk_image (int p, int m, int r) { - dbg(2,"%s(%d,%d,%d)\n",__func__,p,m,r); - - if (!*disk_img_fname) return ERR_FDC_NO_DISK; +// m : mode read-only / write-only / read-write +int open_disk_image (int p, int m) { + dbg(2,"%s(%d,%d)\n",__func__,p,m); int of; int e=ERR_FDC_SUCCESS; - switch (m) { + if (!*disk_img_fname) e=ERR_FDC_NO_DISK; + + if (!e) switch (m) { case O_RDWR: of=O_RDWR; dbg(2,"edit rw\n"); if (access(disk_img_fname,W_OK)) e=ERR_FDC_WRITE_PROTECT; break; @@ -611,92 +695,106 @@ int open_disk_image (int p, int m, int r) { if (lseek(disk_img_fd,s,SEEK_SET)!=s) e=ERR_FDC_READ; } - if (r && e) ret_fdc_std(e,0,0); + if (opr_mode) switch (e) { + //case ERR_FDC_SUCCESS: e=ERR_SUCCESS; break; // same + case ERR_FDC_NO_DISK: e=ERR_NO_DISK; break; + case ERR_FDC_WRITE_PROTECT: e=ERR_WRITE_PROTECT; break; + case ERR_FDC_READ: e=ERR_READ_TIMEOUT; break; + } + return e; } void req_fdc_set_mode(uint8_t m) { dbg(2,"%s(%d)\n",__func__,m); - dbg(1,"FDC: Switching to \"%s\" mode\n",m==0?"FDC":m==1?"Operation":"-invalid-"); opr_mode=m; // no response, just switch modes + if (m==1) dbg(2,"Switched to \"Operation\" mode\n"); } -// disk not-ready conditions +// disk state // ret_fdc_std(e,s,l) // e = ERR_FDC_SUCCESS -// s = bit flags: -// 7: 1 = disk not inserted FDC_COND_NOTINS -// 6: 1 = disk changed FDC_COND_CHANGED -// 5: 1 = disk write-protected FDC_COND_WPROT +// s = +// bit 7 = disk not inserted +// bit 6 = disk changed +// bit 5 = disk write-protected +// 0-4 not used // l = 0 -// examples -// ret_fdc_std(ERR_FDC_SUCCESS,FDC_COND_WPROT,0) -// ret_fdc_std(ERR_FDC_SUCCESS,FDC_COND_NOTINS|FDC_COND_CHANGED,0) void req_fdc_condition() { dbg(2,"%s()\n",__func__); - int s=FDC_COND_NONE; - if (access(disk_img_fname,F_OK)) s=FDC_COND_NOTINS; - else if (access(disk_img_fname,W_OK)) s=FDC_COND_WPROT; - ret_fdc_std(ERR_FDC_SUCCESS,s,0); + ret_fdc_std(ERR_FDC_SUCCESS,pdd1_condition,0); } // lc = logical sector size code void req_fdc_format(uint8_t lc) { dbg(2,"%s(%d)\n",__func__,lc); - int ll = lsc_to_len(lc); - int rn = 0; // physical sector number - int rc = (PDD1_TRACKS*PDD1_SECTORS); // total record count + uint16_t ll = FDC_LOGICAL_SECTOR_SIZE[lc]; + uint8_t rn = 0; // physical sector number + uint8_t rc = (PDD1_TRACKS*PDD1_SECTORS); // total record count dbg(0,"Format: Logical sector size: %d = %d\n",lc,ll); - if (open_disk_image(0,O_RDWR,ALLOW_RET)) return; + uint8_t e = open_disk_image(0,O_RDWR); + if (e) { ret_fdc_std(e,0,0); return; } memset(rb,0x00,SECTOR_LEN); - rb[0]=lc; // logical sector size code + rb[0]=lc; // logical sector size code for (rn=0;rnSECTOR_DATA_LEN) { - (void)(close(disk_img_fd)+1); + close(disk_img_fd); ret_fdc_std(ERR_FDC_LSN_HI,tp,l); return; } @@ -705,22 +803,22 @@ void req_fdc_read_sector(uint8_t tp,uint8_t tl) { int s = (tp*SECTOR_LEN)+SECTOR_HEADER_LEN+((tl-1)*l); if (lseek(disk_img_fd,s,SEEK_SET)!=s) { dbg(1,"failed seek %d : %s\n",s,strerror(errno)); - (void)(close(disk_img_fd)+1); + close(disk_img_fd); ret_fdc_std(ERR_FDC_READ,tp,0); return; } memset(rb,0x00,l); if (read(disk_img_fd,rb,l)!=l) { // read one logical sector of DATA dbg(1,"failed logical sector read\n"); - (void)(close(disk_img_fd)+1); + close(disk_img_fd); ret_fdc_std(ERR_FDC_READ,tp,0); return; } - (void)(close(disk_img_fd)+1); + close(disk_img_fd); ret_fdc_std(ERR_FDC_SUCCESS,tp,l); // 1st stage response char t=0x00; - read_client_tty(&t,1); // read 1 byte from client - if (t==0x0D) write_client_tty(rb,l); // if it's \r send data + read_client_tty(&t,1); // read 1 byte from client + if (t==FDC_CMD_EOL) write_client_tty(rb,l); // if 0D send data else silently abort } // ref/search_id_section.txt @@ -730,17 +828,19 @@ void req_fdc_search_id() { int rc = (PDD1_TRACKS*PDD1_SECTORS); // total record count char sb[SECTOR_ID_LEN] = {0x00}; // search data - if (open_disk_image(0,O_RDONLY,ALLOW_RET)) return; // open disk image + uint8_t e = open_disk_image(0,O_RDONLY); + if (e) { ret_fdc_std(e,0,0); return; } + ret_fdc_std(ERR_FDC_SUCCESS,0,0); // tell client to send data read_client_tty(sb,SECTOR_ID_LEN); // read 12 bytes from client - int l = 0; + uint16_t l = 0; bool found = false; for (rn=0;rnd_name)>LOCAL_FILENAME_MAX) continue; // skip long filenames } - // If filesize is too large for the tpdd 16bit filesize field, still - // allow the file to be accessed, because REXCPM (cpmupd.CO) violates - // the protocol to load a CP/M disk image. But declare the size 0 - // rather than give a random value from taking only 16 of 32 bits. + // If filesize is too large for the tpdd 16 bit size field, then say + // size=0 but allow the file to be accessed, because cpmupd.CO for + // REXCPM violates the tpdd protocol to load a large CP/M disk image. if (st.st_size>UINT16_MAX) st.st_size=0; add_file(make_file_entry(dire->d_name, st.st_size, flags)); @@ -1039,8 +1142,14 @@ void update_file_list(int m) { dbg(3,"%s()\n",__func__); DIR* dir; - dir=opendir("."); + if (model==2) cd_share_path(); + dir = opendir("."); file_list_clear_all(); + + int w = dot_offset+3; + if (dot_offset<1||w>TPDD_FILENAME_LEN) w = TPDD_FILENAME_LEN; + dbg(1,"\nDirectory %s: %s\n",model==2?bank==1?"[Bank 1]":"[Bank 0]":"",cwd); + dbg(1," %-*s \tlocal filename\n",w,"tpdd view"); dbg(1,"-------------------------------------------------------------------------------\n"); if (dir_depth) add_file(make_file_entry("..", 0, FE_FLAGS_DIR)); while (read_next_dirent(dir,m)); @@ -1053,49 +1162,49 @@ int ret_dirent(FILE_ENTRY* ep) { dbg(2,"%s(\"%s\")\n",__func__,ep->client_fname); int i; - memset(gb,0x00,TPDD_DATA_MAX); - gb[0]=RET_DIRENT; - gb[1]=LEN_RET_DIRENT; + memset(gb,0x00,TPDD_MSG_MAX); + gb[0] = RET_DIRENT[0]; + gb[1] = RET_DIRENT[1]; if (ep) { // name memset (gb + 2, ' ', TPDD_FILENAME_LEN); if (dot_offset) for (i=0;iclient_fname[i])?ep->client_fname[i]:' '; + gb[i+2] = (ep->client_fname[i])?ep->client_fname[i]:' '; else memcpy (gb+2,ep->client_fname,TPDD_FILENAME_LEN); // attribute gb[26] = default_attr; // size - gb[27]=(uint8_t)(ep->len >> 0x08); // most significant byte - gb[28]=(uint8_t)(ep->len & 0xFF); // least significant byte + gb[27] = (uint8_t)(ep->len >> 0x08); // most significant byte + gb[28] = (uint8_t)(ep->len & 0xFF); // least significant byte } - dbg(3,"\"%24.24s\"\n",gb+2); + dbg(3,"\"%*.*s\"\n",TPDD_FILENAME_LEN,TPDD_FILENAME_LEN,gb+2); // free sectors - gb[29] = model==1?(PDD1_TRACKS*PDD1_SECTORS):(PDD2_TRACKS*PDD2_SECTORS); + gb[29] = model==2?(PDD2_TRACKS*PDD2_SECTORS):(PDD1_TRACKS*PDD1_SECTORS); gb[30] = checksum (gb); return (write_client_tty(gb,31) == 31); } -void dirent_set_name(unsigned char* b) { - dbg(2,"%s(%-24.24s)\n",__func__,b+2); +void dirent_set_name() { + dbg(2,"%s(%-*.*s)\n",__func__,TPDD_FILENAME_LEN,TPDD_FILENAME_LEN,gb+2); char* p; char filename[TPDD_FILENAME_LEN+1]={0x00}; int f = 0; - if (b[2]) { - dbg(3,"filename: \"%-24.24s\"\n",b+2); - dbg(3," attr: \"%c\" (%1$02X)\n",b[26]); + if (gb[2]) { + dbg(3,"filename: \"%-*.*s\"\n",TPDD_FILENAME_LEN,TPDD_FILENAME_LEN,gb+2); + dbg(3," attr: \"%c\" (%1$02X)\n",gb[26]); } // update before every set-name for at least 2 reasons // * clients may open files without ever listing (teeny, ur2, etc) // * local files may be changed at any time by other processes update_file_list(ALLOW_RET); - strncpy(filename,(char*)b+2,TPDD_FILENAME_LEN); + strncpy(filename,(char*)gb+2,TPDD_FILENAME_LEN); filename[TPDD_FILENAME_LEN]=0; // Remove trailing spaces for (p = strrchr(filename,' '); p >= filename && *p == ' '; p--) *p = 0x00; @@ -1103,21 +1212,23 @@ void dirent_set_name(unsigned char* b) { if (cur_file) { dbg(3,"Exists: \"%s\" %u\n", cur_file->local_fname, cur_file->len); ret_dirent(cur_file); - } else if (check_magic_file(filename)==0) { + } else if (!check_magic_file(filename)) { // let UR2/TSLOAD load DOSxxx.CO from anywhere cur_file=make_file_entry(filename,0,0); char t[LOCAL_FILENAME_MAX+1] = {0x00}; // try share root + // TODO - save initial path in share_path[0] and use that instead of "../"*depth for (int i=dir_depth;i>0;i--) strcat(t,"../"); strncat(t,cur_file->local_fname,LOCAL_FILENAME_MAX-dir_depth*3); struct stat st; int e=stat(t,&st); - if (e) { // try loaders dir + if (e) { // try app_lib_dir strcpy(t,app_lib_dir); strcat(t,"/"); strcat(t,cur_file->local_fname); e=stat(t,&st); } - if (e) ret_dirent(NULL); else { + if (e) ret_dirent(NULL); // not found + else { // found in share root or in app_lib_dir strcpy(cur_file->local_fname,t); cur_file->len=st.st_size; dbg(3,"Magic: \"%s\" <-- \"%s\"\n",cur_file->client_fname,cur_file->local_fname); @@ -1132,7 +1243,7 @@ void dirent_set_name(unsigned char* b) { } void dirent_get_first() { - if (debug==1) dbg(2,"Directory Listing\n"); + dbg(2,"Directory Listing\n"); // update every time before get-first, // because set-name is not required before get-first update_file_list(ALLOW_RET); @@ -1149,19 +1260,23 @@ void dirent_get_first() { // Ignore the name & attr until after determining the action. // TS-DOS submits get-first & get-next requests with junk data // in the filename & attribute fields left over from previous actions. -int req_dirent(unsigned char* b) { - dbg(2,"%s(%s)\n",__func__, - b[27]==DIRENT_SET_NAME?"set_name": - b[27]==DIRENT_GET_FIRST?"get_first": - b[27]==DIRENT_GET_NEXT?"get_next": - b[27]==DIRENT_GET_PREV?"get_prev": - b[27]==DIRENT_CLOSE?"close": - "UNKNOWN"); - dbg(5,"b[]\n"); dbg_b(5,b,-1); - dbg_p(4,b); - - switch (b[27]) { - case DIRENT_SET_NAME: dirent_set_name(b); break; +int req_dirent() { + if (debug>1) { + dbg(2,"%s(%s)\n",__func__, + gb[27]==DIRENT_SET_NAME?"set_name": + gb[27]==DIRENT_GET_FIRST?"get_first": + gb[27]==DIRENT_GET_NEXT?"get_next": + gb[27]==DIRENT_GET_PREV?"get_prev": + gb[27]==DIRENT_CLOSE?"close": + "UNKNOWN" + ); + dbg(5,"gb[]\n"); + dbg_b(5,gb,-1); + dbg_p(4,gb); + } + + switch (gb[27]) { + case DIRENT_SET_NAME: dirent_set_name(); break; case DIRENT_GET_FIRST: dirent_get_first(); break; case DIRENT_GET_NEXT: ret_dirent(get_next_file()); break; case DIRENT_GET_PREV: ret_dirent(get_prev_file()); break; @@ -1175,9 +1290,10 @@ int req_dirent(unsigned char* b) { // contents from the display void update_dme_cwd() { dbg(2,"%s()\n",__func__); + if (dme_disabled) return; + int i; - memset(cwd,0x00,PATH_MAX); - (void)(getcwd(cwd,PATH_MAX-1)+1); + update_cwd(); dbg(0,"Changed Dir: %s\n",cwd); if (dir_depth) { for (i=strlen(cwd); i>=0 ; i--) { @@ -1194,49 +1310,73 @@ void update_dme_cwd() { // Construct a DME packet around dme_cwd and send it to the client void ret_dme_cwd() { dbg(2,"%s(\"%s\")\n",__func__,dme_cwd); - gb[0]=RET_STD; - gb[1]=LEN_RET_DME; - gb[2]=0x00; - memcpy(gb+3,dme_cwd,6); - gb[9]=0x00; // gb[9]='.'; // contents don't matter but length does - gb[10]=0x00; // gb[10]=dme_dir_label[0]; - gb[11]=0x00; // gb[11]=dme_dir_label[1]; - gb[12]=0x00; // gb[12]=0x20; - gb[13]=checksum(gb); + if (dme_disabled) return; + gb[0] = RET_STD[0]; + gb[1] = 0x0B; // not RET_STD[1] because TS-DOS DME violates the spec + gb[2] = 0x00; // don't know why this byte is 0 + memcpy(gb+3,dme_cwd,6); // 6 bytes 3-8 display in top-right corner + gb[9] = 0x00; // gb[9]='.'; // remaining contents don't matter but length does + gb[10] = 0x00; // gb[10]=dme_dir_label[0]; + gb[11] = 0x00; // gb[11]=dme_dir_label[1]; + gb[12] = 0x00; // gb[12]=0x20; + gb[13] = checksum(gb); write_client_tty(gb,14); } +// The "switch to FDC-mode" command requires careful handling, because +// unlike the original Desk-Link, we actually support the FDC commands, +// and need the "switch-to-fdc-mode" command to work like a real drive. +// +// So here we always look for TS-DOS "DME" request and set a "we're doing dme" +// flag, but only for the duration of a single directory listing process. +// The first stage of a directory listing, dirent(get-first), clears the dme +// flag so that FDC commands immediatly go back to working like a real drive. +// // Any FDC request might actually be a DME request // See ref/dme.txt for the full explaination void req_fdc() { dbg(2,"%s()\n",__func__); - //dbg(3,"dme detection %s\n",dme_disabled?"disabled":"allowed"); - //if (!dme_disabled) dbg(3,"dme %spreviously detected\n",dme?"":"not "); - - // Some versions of TS-DOS send 2 FDC requests in a row, both with trailing \r. - // Some versions also send a 3rd one without the trailing \r. - // If we already have 2, then don't try to read a trailing \r any more, - // but do incriment the dme flag and do still treat the FDC request - // as really a DME request as long as the dme flag has not been reset. - // We don't really need to even track this once we have the 2 but whatever. - if (dme>1 && dme<0xFF) dme++; + // TPDD1 does not send back any response + // TPDD2 returns a standard 0x12 return packet with 0x36 payload + // + // You can't have both full TPDD2 emulation including banks, + // and TS-DOS directories support at the same time. + // + // If we recognize a DME request and respond with a DME return, then you get + // TS-DOS subdirecties, but then TS-DOS does not show a Bank button, + // even if we had otherwise responded as a TPDD2 ie with the tpdd2 version + // packet and working tpdd2-only features like dirent(get-prev). + // + // If we are in tpdd2 mode and reject the DME request like a real tpdd2, + // then TS-DOS does show the Bank button and you can switch banks 0 & 1. + if (model==2) { ret_std(ERR_PARAM); return; } + + // Some versions of TS-DOS send 2 FDC requests in a row, both with trailing + // 0x0D. Some versions also send a 3rd FDC request without the trailing 0x0D. + // Look for 2 consecutive FDC requests with trailing 0x0D. Once we see that, + // don't try to read a trailing 0x0D any more to avoid reading the command + // byte of a real FDC command, and respond to the 2nd and any other FDC + // requests with DME response instead of switching to FDC mode, as long as dme>1. + // dme is only set here, and only unset in dirent() if (dme<2 && !dme_disabled) { + // Try to read one more byte, and store it in ch[0] where get_fdc_req() + // can pick it up in case it was NOT the trailing 0x0D of a DME request + // but instead was the first byte of an actual FDC command. + // Timeout fast whether there is a byte or not. //dbg(3,"looking for dme req %d of 2\n",dme+1); ch[0] = 0x00; - client_tty_vmt(0,1); // allow this read to time out - (void)(read(client_tty_fd,ch,1)+1); + client_tty_vmt(0,1); // allow this read to time out, and fast + (void)!read(client_tty_fd,ch,1); client_tty_vmt(-1,-1); // restore normal VMIN/VTIME if (ch[0]==FDC_CMD_EOL) dbg(3,"Got dme req %d of 2\n",++dme); //if (ch[0]) dbg(3,"ate a byte: %02X\n",ch[0]); } if (dme>1) { - //dbg(3,"got dme req\n"); ret_dme_cwd(); } else { - //if (model==2) { ret_std(ERR_PARAM); return; } // real tpdd2 does this opr_mode = 0; - dbg(1,"Switching to \"FDC\" mode\n"); // no response to client, just switch modes + dbg(2,"Switched to \"FDC\" mode\n"); // no response to client, just switch modes } } @@ -1246,101 +1386,108 @@ void req_fdc() { // 0x02 write append // 0x03 read // b[3] = chk -int req_open(unsigned char* b) { - dbg(2,"%s(\"%s\")\n",__func__,cur_file->client_fname); - dbg(5,"b[]\n"); dbg_b(5,b,-1); - dbg_p(4,b); +int req_open() { + if (debug>1) { + dbg(2,"%s(\"%s\")\n",__func__,cur_file->client_fname); + dbg(5,"gb[]\n"); + dbg_b(5,gb,-1); + dbg_p(4,gb); + } - unsigned char omode = b[2]; + uint8_t omode = gb[2]; switch(omode) { - case F_OPEN_WRITE: - dbg(3,"mode: write\n"); - if (o_file_h >= 0) { - close(o_file_h); - o_file_h=-1; - } - if (cur_file->flags&FE_FLAGS_DIR) { - if (mkdir(cur_file->local_fname,0755)==0) { - ret_std(ERR_SUCCESS); + case F_OPEN_WRITE: + dbg(2,"mode: write\n"); + if (o_file_h >= 0) { + close(o_file_h); + o_file_h=-1; + } + if (cur_file->flags&FE_FLAGS_DIR) { + if (!mkdir(cur_file->local_fname,0755)) { + ret_std(ERR_SUCCESS); + } else { + ret_std(ERR_FMT_MISMATCH); + } } else { + o_file_h = open(cur_file->local_fname,O_CREAT|O_TRUNC|O_WRONLY|O_EXCL,0666); + if (o_file_h<0) + ret_std(ERR_FMT_MISMATCH); + else { + f_open_mode=omode; + dbg(1,"Open for write: \"%s\"\n",cur_file->local_fname); + ret_std(ERR_SUCCESS); + } + } + break; + case F_OPEN_APPEND: + dbg(2,"mode: append\n"); + if (o_file_h >= 0) { + close(o_file_h); + o_file_h=-1; + } + if (cur_file==0) { ret_std(ERR_FMT_MISMATCH); + return -1; } - } else { - o_file_h = open(cur_file->local_fname,O_CREAT|O_TRUNC|O_WRONLY|O_EXCL,0666); - if (o_file_h<0) + o_file_h = open(cur_file->local_fname, O_WRONLY | O_APPEND); + if (o_file_h < 0) ret_std(ERR_FMT_MISMATCH); else { f_open_mode=omode; - dbg(1,"Open for write: \"%s\"\n",cur_file->local_fname); + dbg(1,"Open for append: \"%s\"\n",cur_file->local_fname); ret_std(ERR_SUCCESS); } - } - break; - case F_OPEN_APPEND: - dbg(3,"mode: append\n"); - if (o_file_h >= 0) { - close(o_file_h); - o_file_h=-1; - } - if (cur_file==0) { - ret_std(ERR_FMT_MISMATCH); - return -1; - } - o_file_h = open(cur_file->local_fname, O_WRONLY | O_APPEND); - if (o_file_h < 0) - ret_std(ERR_FMT_MISMATCH); - else { - f_open_mode=omode; - dbg(1,"Open for append: \"%s\"\n",cur_file->local_fname); - ret_std(ERR_SUCCESS); - } - break; - case F_OPEN_READ: - dbg(3,"mode: read\n"); - if (o_file_h >= 0) { - close(o_file_h); - o_file_h=-1; - } - if (cur_file==0) { - ret_std(ERR_NO_FILE); - return -1; - } - - if (cur_file->flags&FE_FLAGS_DIR) { - int err=0; - // directory - if (cur_file->local_fname[0]=='.' && cur_file->local_fname[1]=='.') { - // parent dir - if (dir_depth>0) { + break; + case F_OPEN_READ: + dbg(2,"mode: read\n"); + if (o_file_h >= 0) { + close(o_file_h); + o_file_h=-1; + } + if (cur_file==0) { + ret_std(ERR_NO_FILE); + return -1; + } + + if (cur_file->flags&FE_FLAGS_DIR) { + int err=0; + // directory + if (cur_file->local_fname[0]=='.' && cur_file->local_fname[1]=='.') { + // parent dir + if (dir_depth>0) { + err=chdir(cur_file->local_fname); + if (!err) dir_depth--; + } + } else { + // enter dir err=chdir(cur_file->local_fname); - if (!err) dir_depth--; + if (!err) dir_depth++; } + update_dme_cwd(); + if (err) ret_std(ERR_FMT_MISMATCH); + else ret_std(ERR_SUCCESS); } else { - // enter dir - err=chdir(cur_file->local_fname); - if (!err) dir_depth++; - } - update_dme_cwd(); - if (err) ret_std(ERR_FMT_MISMATCH); - else ret_std(ERR_SUCCESS); - } else { - // regular file - o_file_h = open(cur_file->local_fname, O_RDONLY); - if (o_file_h<0) - ret_std(ERR_NO_FILE); - else { - f_open_mode = omode; - dbg(1,"Open for read: \"%s\"\n",cur_file->local_fname); - ret_std(ERR_SUCCESS); + // regular file + o_file_h = open(cur_file->local_fname, O_RDONLY); + if (o_file_h<0) + ret_std(ERR_NO_FILE); + else { + f_open_mode = omode; + dbg(1,"Open for read: \"%s\"\n",cur_file->local_fname); + ret_std(ERR_SUCCESS); + } } - } - break; + break; + default: + dbg(2,"Unrecognized mode: \"0x%02X\"\n",omode); + ret_std(ERR_PARAM); + break; } return o_file_h; } -void req_read(void) { +void req_read() { dbg(2,"%s()\n",__func__); int i; @@ -1355,19 +1502,22 @@ void req_read(void) { i = read(o_file_h, gb+2, REQ_RW_DATA_MAX); - gb[0]=RET_READ; - gb[1] = (unsigned char) i; + gb[0] = RET_READ; + gb[1] = (uint8_t)i; gb[2+i] = checksum(gb); - if (debug<4) { + if (debug<2) { dbg(1,"."); - if (i1) { + dbg(4,"...outgoing packet...\n"); + dbg(5,"gb[]\n"); + dbg_b(5,gb,-1); + dbg_p(4,gb); + dbg(4,".....................\n"); + } write_client_tty(gb, 3+i); } @@ -1376,12 +1526,15 @@ void req_read(void) { // b[1] = 0x01 - 0x80 // b[2] = b[1] bytes // b[2+len] = chk -void req_write(unsigned char* b) { - dbg(2,"%s()\n",__func__); - dbg(4,"...incoming packet...\n"); - dbg(5,"b[]\n"); dbg_b(5,b,-1); - dbg_p(4,b); - dbg(4,".....................\n"); +void req_write() { + if (debug>1) { + dbg(2,"%s()\n",__func__); + dbg(4,"...incoming packet...\n"); + dbg(5,"gb[]\n"); + dbg_b(5,gb,-1); + dbg_p(4,gb); + dbg(4,".....................\n"); + } if (o_file_h<0) {ret_std(ERR_NO_FNAME); return;} @@ -1390,16 +1543,16 @@ void req_write(unsigned char* b) { return; } - if (debug<4) { - dbg(1,".",b[1]); - if (b[1]flags&FE_FLAGS_DIR) rmdir(cur_file->local_fname); else unlink (cur_file->local_fname); @@ -1408,88 +1561,10 @@ void req_delete(void) { } -// also the return format for mem_write and undocumented 0x0F -void ret_cache(uint8_t e) { - dbg(3,"%s()\n",__func__); - gb[0]=RET_CACHE; - gb[1]=0x01; - gb[2]=e; - gb[3]=checksum(gb); - write_client_tty(gb,4); -} - /* - * Load a sector from disk into rb[], - * or commit rb[] to a sector on the disk. - * - * Committing the cache to disk does NOT clear the cache in ram. - * - * rb[] (record buffer) is the drive cache / sector buffer - * - * Load/Commit Cache - * b[0] fmt 0x30 - * b[1] len 0x05 - * b[2] action 0=load (cachedisk) 2=commit+verify - * b[3] track msb - (always 00) - * b[4] track lsb - 00-4F - * b[5] side (always 00) - * b[6] sector 0-1 - */ -void req_cache(unsigned char* b) { - dbg(3,"%s(action=%u track=%u sector=%u)\n",__func__,b[2],b[4],b[6]); - if (model==1) return; - int a=b[2]; - int t=b[4]; // t=b[3]*256+b[4]; - //int d=b[5]; - int s=b[6]; - if (t>=PDD2_TRACKS || s>=PDD2_SECTORS) { ret_cache(ERR_PARAM); return; } - int rn = t*2 + s; // convert track#:sector# to linear record# - int e; - - switch (a) { - case CACHE_LOAD: - dbg(2,"cache load: track:%u sector:%u\n",t,s); - e = open_disk_image (rn, O_RDONLY, NO_RET ); - switch (e) { // convert the FDC error codes to equivalent OPR error codes - case ERR_FDC_NO_DISK: e=ERR_NO_DISK; break; - case ERR_FDC_WRITE_PROTECT: e=ERR_WRITE_PROTECT; break; - case ERR_FDC_READ: e=ERR_FMT_INTERRUPT; break; - case ERR_FDC_SUCCESS: e=ERR_SUCCESS; - } - if (e) { ret_cache(e); return; } - memset(rb,0x00,SECTOR_LEN); - if (read(disk_img_fd,rb,SECTOR_LEN)!=SECTOR_LEN) { - dbg(2,"failed cache load\n"); - (void)(close(disk_img_fd)+1); - ret_cache(ERR_DEFECTIVE); - return; - } - break; - case CACHE_COMMIT: // write cache to disk - case CACHE_COMMIT_VERIFY: // write cache to disk and verify - dbg(2,"cache commit: track:%u sector:%u\n",t,s); - e = open_disk_image (rn, O_WRONLY, NO_RET ); - switch (e) { // convert the FDC error codes to equivalent OPR error codes - case ERR_FDC_NO_DISK: e=ERR_NO_DISK; break; - case ERR_FDC_WRITE_PROTECT: e=ERR_WRITE_PROTECT; break; - case ERR_FDC_READ: e=ERR_FMT_INTERRUPT; break; - case ERR_FDC_SUCCESS: e=ERR_SUCCESS; - } - if (e) { ret_cache(e); return; } - if (write(disk_img_fd,rb,SECTOR_LEN)!=SECTOR_LEN) { - dbg(2,"failed cache commit\n"); - (void)(close(disk_img_fd)+1); - ret_cache(ERR_DEFECTIVE); - return; - } - default: ret_cache(ERR_PARAM); return; - } - (void)(close(disk_img_fd)+1); - dbg_b(3,rb,SECTOR_LEN); - ret_cache(ERR_SUCCESS); -} - -/* Emulating access to the sector cache is straightforward. + * PDD2 cache load, cache commit, mem read, mem write + * + * Emulating access to the sector cache is straightforward. * Emulating access to the cpu memory is less so. * * The command allows to read from anywhere in the cpus address space, @@ -1526,12 +1601,88 @@ void req_cache(unsigned char* b) { * */ +// also the return format for mem_write and undocumented 0x0F +void ret_cache(uint8_t e) { + dbg(3,"%s()\n",__func__); + gb[0] = RET_CACHE[0]; + gb[1] = RET_CACHE[1]; + gb[2] = e; + gb[3] = checksum(gb); + write_client_tty(gb,4); +} + +/* + * Load a sector from disk into ram[], + * or commit ram[] to a sector on the disk. + * + * Committing the cache to disk does NOT clear the cache in ram. + * + * Load/Commit Cache + * b[0] fmt 0x30 + * b[1] len 0x05 + * b[2] action 0=load (cachedisk) 2=commit+verify + * b[3] track msb - (always 00) + * b[4] track lsb - 00-4F + * b[5] side (always 00) + * b[6] sector 0-1 + */ +void req_cache() { + dbg(3,"%s(action=%u track=%u sector=%u)\n",__func__,gb[2],gb[4],gb[6]); + if (model==1) return; + uint8_t a=gb[2]; + //uint_16_t t=b[3]*256+b[4]; // b[3] is always 0 + uint8_t t=gb[4]; + //int d=gb[5]; // side#? - always 0 + uint8_t s=gb[6]; // sector + if (t>=PDD2_TRACKS || s>=PDD2_SECTORS) { ret_cache(ERR_PARAM); return; } + uint8_t rn = t*2 + s; // convert track#:sector# to linear record# + uint8_t e = ERR_SUCCESS; + + switch (a) { + case CACHE_LOAD: + dbg(2,"cache load: track:%u sector:%u\n",t,s); + + // open disk image file and seek to record number + if ((e = open_disk_image(rn,O_RDONLY))) break; + + // virtual 2k drive ram + memset(ram,0x00,RAM_LEN); // 2k ram at 0x8000 - 0x87FF + ram[0]=PDD2_CACHE_LEN_MSB; // len MSB - always 0x05 + ram[1]=PDD2_CACHE_LEN_LSB; // len LSB - always 0x13 + ram[2]=rn; // linear sector number (0-159) + //ram[0x03]=0x00; // side number? - always 0 + if (read(disk_img_fd,ram+PDD2_ID_REL,SECTOR_HEADER_LEN)!=SECTOR_HEADER_LEN) { e = ERR_DEFECTIVE; break; } + //ram[0x11]= // unknown but changes when other data changes, crc msb? + //ram[0x12]= // unknown but changes when other data changes, crc lsb? + if (read(disk_img_fd,ram+PDD2_DATA_REL,SECTOR_DATA_LEN)!=SECTOR_DATA_LEN) { e = ERR_DEFECTIVE; break; } + //ram[0x0513]= // unknown + //... // + //ram[0x07FF]= // end of 2k ram + break; + + case CACHE_COMMIT: // write cache to disk + case CACHE_COMMIT_VERIFY: // write cache to disk and verify + + // open disk image file and seek to record number + dbg(2,"cache commit: track:%u sector:%u\n",t,s); + if ((e = open_disk_image(rn,O_WRONLY))) break; + if (write(disk_img_fd,ram+PDD2_ID_REL,SECTOR_HEADER_LEN)!=SECTOR_HEADER_LEN) { e = ERR_DEFECTIVE; break; } + if (write(disk_img_fd,ram+PDD2_DATA_REL,SECTOR_DATA_LEN)!=SECTOR_DATA_LEN) { e = ERR_DEFECTIVE; break; } + break; + default: e = ERR_PARAM; + } + close(disk_img_fd); + dbg_b(3,ram,RAM_LEN); + if (e) dbg(2,"FAILED\n"); + ret_cache(e); +} + /* * req: * b[0] fmt req_mem_read * b[1] len 4 * b[2] area 0=sector_cache 1=cpu_memory - * b[3] offset msb 0000-0500 + * b[3] offset msb 0000-0500 0000-8FFF * b[4] offset lsb * b[5] dlen 00-FC * b[6] chk @@ -1545,45 +1696,42 @@ void req_cache(unsigned char* b) { * b[5+] data dlen bytes * b[#] chk */ -// TODO - construct a mockup of the 2k drive ram -// and allow reading from anywhere in it, -// rather than just the sector ID part. -// Client requested address minus 0x8000 = offset into 2k virtual drive ram. -void req_mem_read(unsigned char* b) { +void req_mem_read() { dbg(3,"%s()\n",__func__); if (model==1) return; - uint8_t a = b[2]; - uint16_t o = b[3]*256+b[4]; - uint8_t l = b[5]; - int e = -1; - dbg(2,"mem_read: area:%u offset:%u len:%u\n",a,o,l); + uint8_t a = gb[2]; + uint16_t o = gb[3]*256+gb[4]; + uint8_t l = gb[5]; + uint8_t e = ERR_SUCCESS; + uint8_t* src = ram; // source of virtual ram data, ram[], rom[], etc switch (a) { - case MEM_CPU: - // read from the ID section - offset=0 len=SECTOR_HEADER_LEN - // cpu memory address 0x8004 is offset 0 in the disk image sector - if (o==PDD2_ID_ADDR) { o=0; if (l>SECTOR_HEADER_LEN) e=ERR_PARAM; } - else e=ERR_PARAM; // real drive allows reading from anywhere in ram but we don't support that yet - break; case MEM_CACHE: - // read from the DATA section + dbg(2,"mem_read: cache offset:0x%04X len:0x%02X\n",o,l); if (o+l>SECTOR_DATA_LEN || l>PDD2_MEM_READ_MAX) e=ERR_PARAM; - o+=SECTOR_HEADER_LEN; // shift offset past header + o+=PDD2_DATA_REL; + break; + case MEM_CPU: + dbg(2,"mem_read: cpu addr:0x%04X len:0x%02X\n",o,l); + if (o>=IOPORT_ADDR && o=CPURAM_ADDR && o=GA_ADDR && o=RAM_ADDR && o=ROM_ADDR && oSECTOR_DATA_LEN || l>PDD2_MEM_WRITE_MAX) e=ERR_PARAM; - o+=SECTOR_HEADER_LEN; // shift offset past header + o+=PDD2_DATA_REL; break; case MEM_CPU: - if (o==PDD2_ID_ADDR) { o=0 ;if (l>SECTOR_HEADER_LEN) e=ERR_PARAM; } // set offset to start of header - else e=ERR_SUCCESS; // thumbs-up but don't actually do anything + dbg(2,"mem_write: cpu addr:0x%04X len:0x%02X\n",o,l); + if (o>=IOPORT_ADDR && o=CPURAM_ADDR && o=GA_ADDR && o=RAM_ADDR && o=ROM_ADDR && olocal_fname,t)) ret_std(ERR_SECTOR_NUM); @@ -1701,25 +1852,41 @@ void req_rename(unsigned char* b) { } void req_close() { + dbg(2,"%s()\n",__func__); if (o_file_h>=0) close(o_file_h); o_file_h = -1; - dbg(2,"\nClosed: \"%s\"\n",cur_file->local_fname); + dbg(2,"Closed: \"%s\"\n",cur_file->local_fname); ret_std(ERR_SUCCESS); } -// undocumented but TPDD2 responds to both 0x07 and 0x47 -// TPDD1 ignores 0x47, no error response -// PakDOS uses 0x47, but also falls back to 0x07 if 0x47 didn't work -// possibly as way to detect TPDD2 -void req_status(uint8_t fmt) { - dbg(2,"%s(0x%02X)\n",__func__,fmt); - if (fmt>REQ_STATUS && model==1) return; +void req_status() { + dbg(2,"%s()\n",__func__); ret_std(ERR_SUCCESS); } +// TPDD2 only +// response is 8 bit flags +// 7 unused MSB +// 6 unused +// 5 unused +// 4 unused +// 3 disk changed +// 2 disk not inserted +// 1 write protected +// 0 low power +void ret_condition() { + dbg(3,"%s()\n",__func__); + gb[0] = RET_CONDITION[0]; + gb[1] = RET_CONDITION[1]; + gb[2] = pdd2_condition; + gb[3] = checksum(gb); + write_client_tty(gb,gb[1]+3); +} + void req_condition() { dbg(2,"%s()\n",__func__); - ret_std(ERR_SUCCESS); + if (model!=2) return; + ret_condition(); } // opr-format - this creates a disk that can load & save files @@ -1734,13 +1901,8 @@ void req_format() { dbg(0,"Operation-mode Format (make a filesystem)\n"); - int e = open_disk_image(0,O_WRONLY,NO_RET); - switch (e) { // convert the FDC error codes to equivalent OPR error codes - case ERR_FDC_NO_DISK: e=ERR_NO_DISK; break; - case ERR_FDC_WRITE_PROTECT: e=ERR_WRITE_PROTECT; break; - case ERR_FDC_READ: e=ERR_FMT_INTERRUPT; break; - case ERR_FDC_SUCCESS: e=0; - } + uint8_t e = open_disk_image(0,O_WRONLY); + if (e==ERR_READ_TIMEOUT) e=ERR_FMT_INTERRUPT; if (e) { ret_std(e); return; } // write the image @@ -1763,14 +1925,11 @@ void req_format() { if (rn> 0x08); // msb - gb[4]=(uint8_t)(reg_X & 0xFF); // lsb - gb[5]=checksum(gb); + gb[0] = RET_EXEC[0]; + gb[1] = RET_EXEC[1]; + gb[2] = reg_A; + gb[3] = (uint8_t)(reg_X >> 0x08); // msb + gb[4] = (uint8_t)(reg_X & 0xFF); // lsb + gb[5] = checksum(gb); write_client_tty(gb,6); } @@ -1820,12 +1979,12 @@ void ret_exec(uint8_t reg_A, uint16_t reg_X) { * b[6] reg X lsb * b[7] chk */ -void req_exec(unsigned char* b) { +void req_exec() { dbg(3,"%s() ***STUB***\n",__func__); if (model==1) return; - uint16_t addr = b[2]*256+b[3]; - uint8_t reg_A = b[4]; - uint16_t reg_X = b[5]*256+b[6]; + uint16_t addr = gb[2]*256+gb[3]; + uint8_t reg_A = gb[4]; + uint16_t reg_X = gb[5]*256+gb[6]; dbg(2,"exec: addr:%u A:%u X:%u\n",addr,reg_A,reg_X); /* * ...6301 emulator here... @@ -1835,59 +1994,61 @@ void req_exec(unsigned char* b) { ret_exec(reg_A,reg_X); } -void get_opr_cmd(void) { +void get_opr_cmd() { dbg(3,"%s()\n",__func__); - unsigned char b[TPDD_DATA_MAX] = {0x00}; uint16_t i = 0; - memset(gb,0x00,TPDD_DATA_MAX); + memset(gb,0x00,TPDD_MSG_MAX); - while (read_client_tty(&b,1) == 1) { - if (b[0]==OPR_CMD_SYNC) i++; else { i=0; b[0]=0x00; continue; } - if (i<2) { b[0]=0x00; continue; } - if (read_client_tty(&b,2) == 2) if (read_client_tty(&b[2],b[1]+1) == b[1]+1) break; - i=0; memset(b,0x00,TPDD_DATA_MAX); + while (read_client_tty(&gb,1) == 1) { + if (gb[0]==OPR_CMD_SYNC) i++; else { i=0; gb[0]=0x00; continue; } + if (i<2) { gb[0]=0x00; continue; } + if (read_client_tty(&gb,2) == 2) if (read_client_tty(&gb[2],gb[1]+1) == gb[1]+1) break; + i=0; memset(gb,0x00,TPDD_MSG_MAX); } - dbg_p(3,b); + dbg_p(3,gb); - if ((i=checksum(b))!=b[b[1]+2]) { - dbg(0,"Failed checksum: received: 0x%02X calculated: 0x%02X\n",b[b[1]+2],i); + if ((i=checksum(gb))!=gb[gb[1]+2]) { + dbg(0,"Failed checksum: received: 0x%02X calculated: 0x%02X\n",gb[gb[1]+2],i); return; // real drive does not return anything } + uint8_t c = gb[0]; + + // decode bit 6 in the FMT byte b[0] for bank0 vs bank1 + if (model==2) { + //bank = 0; if (c&0x40) { bank = 1; c-=0x40; } // alternative method + bank = (c >> 6) & 1; // read bit 6 + c &= ~(1 << 6); // clear bit 6 + } + + // TODO double-check this + // another note says sysinfo is 0x33 but the drive also responds to 0x11 + // so maybe this is backwards? maybe it's both? + // For FMT 0x30-0x34 pdd2 accepts FMT or FMT+0x22. Unknown function. + // For now just treat them as synonyms by subtracting 0x22 if present. + //if ( c>0x51 && c<0x57 ) c-=0x22; + // dispatch - switch(b[0]) { - case REQ_DIRENT+0x40: - case REQ_DIRENT: req_dirent(b); break; - case REQ_OPEN+0x40: - case REQ_OPEN: req_open(b); break; - case REQ_CLOSE+0x40: + switch(c) { + case REQ_DIRENT: req_dirent(); break; + case REQ_OPEN: req_open(); break; case REQ_CLOSE: req_close(); break; - case REQ_READ+0x40: case REQ_READ: req_read(); break; - case REQ_WRITE+0x40: - case REQ_WRITE: req_write(b); break; - case REQ_DELETE+0x40: + case REQ_WRITE: req_write(); break; case REQ_DELETE: req_delete(); break; case REQ_FORMAT: req_format(); break; - case REQ_STATUS+0x40: - case REQ_STATUS: req_status(b[0]); break; + case REQ_STATUS: req_status(); break; case REQ_FDC: req_fdc(); break; case REQ_CONDITION: req_condition(); break; - case REQ_RENAME+0x40: - case REQ_RENAME: req_rename(b); break; + case REQ_RENAME: req_rename(); break; case REQ_VERSION: ret_version(); break; - case REQ_CACHE-0x22: - case REQ_CACHE: req_cache(b); break; - case REQ_MEM_READ-0x22: - case REQ_MEM_READ: req_mem_read(b); break; - case REQ_MEM_WRITE-0x22: - case REQ_MEM_WRITE: req_mem_write(b); break; - case REQ_SYSINFO-0x22: + case REQ_CACHE: req_cache(); break; + case REQ_MEM_READ: req_mem_read(); break; + case REQ_MEM_WRITE: req_mem_write(); break; case REQ_SYSINFO: ret_sysinfo(); break; - case REQ_EXEC-0x22: - case REQ_EXEC: req_exec(b); break; - default: dbg(1,"OPR: unknown cmd \"0x%02X\"\n",b[0]); dbg_p(1,b); + case REQ_EXEC: req_exec(); break; + default: dbg(1,"OPR: unknown cmd \"0x%02X\"\n",gb[0]); dbg_p(1,gb); // local msg, nothing to client } } @@ -1922,7 +2083,7 @@ void show_bootstrap_help() { " %1$s -b TS-DOS.100\n" " %1$s -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100\n" " %1$s -vb rxcini.DO && %1$s -vu\n" - " %1$s -vun -m 1 -i Sardine_American_English.pdd1\n\n" + " %1$s -vun -i Sardine_American_English.pdd1\n\n" ,args[0],app_lib_dir); } @@ -1984,23 +2145,23 @@ int bootstrap(char* f) { return 1; } - char t[PATH_MAX]={0x00}; - int b = get_stat_baud(); - if (!b) { + char t[PATH_MAX+1]={0x00}; + int sc = baud_to_stat_code(baud); + if (!sc) { dbg(0,"Prepare the client to receive data." "\n" "Note: The current baud setting, %d, is not supported\n" "by the TRS-80 Model 100 or other KC-85-platform machines.\n" - "There is no way for BASIC or TELCOM to use this baud rate.\n",get_int_baud()); + "There is no way for BASIC or TELCOM to use this baud rate.\n",baud); } else { strcpy(t,f); strcat(t,".pre-install.txt"); - if (!access(t,F_OK) && b==9) dcat(t); + if (!access(t,F_OK) && sc==9) dcat(t); // the text files all assume 19200 else { dbg(0,"Prepare BASIC to receive:\n" "\n" " RUN \"COM:%1$d8N1ENN\" [Enter] <-- TANDY/Olivetti/Kyotronic\n" - " RUN \"COM:%1$dN81XN\" [Enter] <-- NEC\n",b); + " RUN \"COM:%1$dN81XN\" [Enter] <-- NEC\n",sc); } } @@ -2038,9 +2199,11 @@ void show_config () { dbg(0,"app_lib_dir : \"%s\"\n",app_lib_dir); dbg(0,"client_tty_name : \"%s\"\n",client_tty_name); dbg(0,"disk_img_fname : \"%s\"\n",disk_img_fname); - dbg(0,"share_path : \"%s\"\n",cwd); + dbg(0,"cwd : \"%s\"\n",cwd); + dbg(0,"share_path[0] : \"%s\"\n",share_path[0]); + dbg(0,"share_path[1] : \"%s\"\n",share_path[1]); dbg(2,"opr_mode : %d\n",opr_mode); - dbg(2,"baud : %d\n",get_int_baud()); + dbg(2,"baud : %d\n",baud); dbg(0,"dme_disabled : %s\n",dme_disabled?"true":"false"); dbg(2,"dme_root_label : \"%-6.6s\"\n",dme_root_label); dbg(2,"dme_parent_label: \"%-6.6s\"\n",dme_parent_label); @@ -2050,36 +2213,50 @@ void show_config () { } void show_main_help() { - dbg(0,"\nusage: %1$s [options] [tty_device] [share_path]\n" + dbg(0,"\nUsage: %1$s [options] [tty_device] [share_path]\n" "\n" - "options:\n" + "Options Description (default setting)\n" " -0 Raw mode - no filename munging, attr = ' '\n" " -a c Attribute - attribute byte used for all files (%2$c)\n" " -b file Bootstrap - send loader file to client\n" " -d tty Serial device connected to the client (%4$s*)\n" - " -n Disable support for TS-DOS directories (enabled)\n" + " -n Disable TS-DOS directories (enabled)\n" #if !defined(_WIN) " -g Getty mode - run as daemon\n" #endif " -h Print this help\n" " -i file Disk image filename for raw sector access\n" " -l List loader files and show bootstrap help\n" - " -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (2)\n" + " -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (%5$u)\n" " -p dir Path - /path/to/dir with files to be served (./)\n" - " -r RTS/CTS hardware flow control\n" - " -s # Speed - serial port baud rate (19200)\n" - " -u Uppercase all filenames\n" + " -r RTS/CTS hardware flow control (%7$s)\n" + " -s # Speed - serial port baud rate (%6$d)\n" + " -u Uppercase all filenames (%8$s)\n" " -v Verbosity - more v's = more verbose\n" - " -w WP-2 mode - 8.2 filenames\n" + " -w WP-2 mode - 8.2 filenames for TANDY WP-2\n" " -z # Milliseconds per byte for bootstrap (%3$d)\n" "\n" "The 1st non-option argument is another way to specify the tty device.\n" "The 2nd non-option argument is another way to specify the share path.\n" + "TPDD2 mode accepts a 2nd share path for bank 1.\n" + "TPDD2 mode does not support TS-DOS dfirectories.\n" + "\n" + "Examples:\n" + " $ %1$s\n" + " $ %1$s ttyUSB1\n" + " $ %1$s -vu -p ~/Downloads/REX\n" + " $ %1$s -w /dev/cu.usbserial-AB0MQNN1 ~/Documents/wp2\n" + " $ %1$s -m2 -p /tmp/bank0 -p /tmp/bank1\n" "\n" - " %1$s\n" - " %1$s -vv -p ~/Downloads/REX/ROMS\n" - " %1$s -v -w ttyUSB1 ~/Documents/wp2files\n\n" - ,args[0],DEFAULT_ATTR,DEFAULT_BASIC_BYTE_MS,TTY_PREFIX); + ,args[0] + ,DEFAULT_ATTR + ,DEFAULT_BASIC_BYTE_MS + ,TTY_PREFIX + ,DEFAULT_MODEL + ,DEFAULT_BAUD + ,DEFAULT_RTSCTS?"true":"false" + ,DEFAULT_UPCASE?"true":"false" + ); } int main(int argc, char** argv) { @@ -2088,6 +2265,7 @@ int main(int argc, char** argv) { int i; bool x = false; args = argv; + (void)!getcwd(iwd,PATH_MAX); // remember initial working directory // environment if (getenv("OPR_MODE")) opr_mode = atoi(getenv("OPR_MODE")); @@ -2095,9 +2273,8 @@ int main(int argc, char** argv) { if (getenv("DISABLE_MAGIC_FILES")) enable_magic_files = false; if (getenv("DOT_OFFSET")) dot_offset = atoi(getenv("DOT_OFFSET")); if (getenv("CLIENT_TTY")) strcpy(client_tty_name,getenv("CLIENT_TTY")); - if (getenv("BAUD")) set_client_baud(getenv("BAUD")); - if (getenv("ROOT_LABEL")) {snprintf(dme_root_label,7,"%-6.6s",getenv("ROOT_LABEL")); - memcpy(dme_cwd,dme_root_label,6);} + if (getenv("BAUD")) baud = atoi(getenv("BAUD")); + if (getenv("ROOT_LABEL")) snprintf(dme_root_label,7,"%-6.6s",getenv("ROOT_LABEL")); if (getenv("PARENT_LABEL")) snprintf(dme_parent_label,7,"%-6.6s",getenv("PARENT_LABEL")); if (getenv("DIR_LABEL")) snprintf(dme_dir_label,3,"%-2.2s",getenv("DIR_LABEL")); if (getenv("ATTR")) default_attr = *getenv("ATTR"); @@ -2120,15 +2297,16 @@ int main(int argc, char** argv) { case 'h': show_main_help(); exit(0); break; case 'i': strcpy(disk_img_fname,optarg); break; case 'l': show_bootstrap_help(); exit(0); break; - case 'm': model=atoi(optarg); break; - case 'p': (void)(chdir(optarg)+1); break; + case 'm': model = atoi(optarg); break; + //case 'p': (void)!chdir(optarg); break; + case 'p': add_share_path(optarg); break; case 'r': rtscts = true; break; - case 's': set_client_baud(optarg); break; + case 's': baud = atoi(optarg); break; case 'u': upcase = true; break; case 'v': debug++; break; case 'w': dot_offset = 8; break; case 'z': BASIC_byte_us=atoi(optarg)*1000; break; - case '^': x=true; break; + case '^': x = true; break; case ':': dbg(0,"\"-%c\" requires a value\n",optopt); break; case '?': if (isprint(optopt)) dbg(0,"Unknown option \"-%c\"\n",optopt); @@ -2141,29 +2319,46 @@ int main(int argc, char** argv) { if (x) dbg(1,"non-option arg %u: \"%s\"\n",i,argv[optind]); switch (i++) { case 0: strcpy (client_tty_name,argv[optind]); break; // tty device - case 1: (void)(chdir(argv[optind])+1); break; // share path + //case 1: (void)!chdir(argv[optind]); break; // share path + case 1: + case 2: add_share_path(argv[optind]); break; // share path(s) default: dbg(0,"Unknown argument: \"%s\"\n",argv[optind]); } } - // auto-completes & fixups - if (model<1||model>2) model=2; - if (dot_offset!=6) enable_magic_files=false; // only applies to UR2/TSLOAD + // base setup that's always needed, whether tpdd or bootstrap + if (model<1||model>2) {dbg(0,"Invalid model \"%u\"\n",model); return 1; } + if (share_path[0][0]) cd_share_path(); + if (!cwd[0]) update_cwd(); + if (!share_path[0][0]) strcpy(share_path[0],cwd); resolve_client_tty_name(); - check_disk_image(); find_lib_file(bootstrap_fname); - (void)(getcwd(cwd,PATH_MAX-1)+1); if (x) { show_config(); return 0; } - dbg(0,"Serial Device: %s\n" - "Working Dir : %s\n",client_tty_name,cwd); + dbg(0, "Serial Device: %s\n",client_tty_name); + if (model==2) { + dbg(0,"Bank 0 Dir : %s\n",share_path[0]); + dbg(0,"Bank 1 Dir : %s\n",share_path[1]); + } else { + dbg(0,"Working Dir : %s\n",cwd); + } if ((i=open_client_tty())) return i; // send loader and exit if (bootstrap_fname[0]) return (bootstrap(bootstrap_fname)); + // further setup that's only needed for tpdd + if (check_disk_image()) return 1; // may change model based on disk image size or name + dbg(2,"Emulating %s\n",(model==2)?"TANDY 26-3814 (TPDD2)":"Brother FB-100 (TPDD1)"); + if (model==2) {load_rom(TPDD2_ROM); dme_disabled=true; } + dbg(2,"TS-DOS directories %s\n",(dme_disabled)?"disabled":"enabled"); + dbg(2,"TPDD2 banks %s\n",(model==2)?"enabled":"disabled"); + if (!dme_disabled) memcpy(dme_cwd,dme_root_label,6); + if (dot_offset!=6) enable_magic_files=false; // only applies to UR2/TSLOAD + dbg(2,"Magic files for UR-II/TSLOAD %s\n",(enable_magic_files)?"enabled":"disabled"); + // initialize the file list file_list_init(); if (debug) update_file_list(NO_RET); diff --git a/ref/Sardine.md b/ref/Sardine.md new file mode 100644 index 0000000..1da991d --- /dev/null +++ b/ref/Sardine.md @@ -0,0 +1,31 @@ +#Using Sardine with dl2 and a disk image of the dictionary disk + +Reference: [Manual for Ultimate ROM II](http://www.club100.org/library/librom.html): + +One way to use Sardine is to let Ultimate ROM II load & unload the program from disk into ram on the fly instead of installing permanently in ram. Sardine uses raw sector access commands to read a special dictionary data disk. +For this to work, UR2 has to be able to load `SAR100.CO` from a normal filesystem disk using normal file/filesystem access, and then `SAR100.CO` needs to be able to use TPDD1 FDC-mode commands to read raw sectors from the special dictionary data disk. + +dl2 supports this by both the **magic files** and **disk image file** features. +`SAR100.CO` is one of the bundled "magic files", so when UR2 tries to load a file by that name, it always works even if there is no such file in the share path. +An image of the dictionary disk is also bundled with dl2, and the **-i file.pdd1** option allows SAR100.CO to use raw sector-access commands on the disk image. + + +1: Run dl with the following commandline arguments, +``` +$ dl -vun -i Sardine_American_English.pdd1 +``` + +This tells dl2 to emulate a TPDD1, disable some TPDD2 features and TS-DOS directory support which would confuse `SAR100.CO`, and use the Sardine American English dictionary disk image file for any sector-access commands. +Both `SAR100.CO` and `Sardine_American_English.pdd1` are bundled with dl2, installed in /usr/local/lib/dl, so you don't have to do anything for SAR100.CO, and for the disk image you don't have to specify the full path. + +2: Enter the UR-2 menu. +Notice the "SARDIN" entry with the word "OFF" under it. +Hit enter on SARDIN. +If you get a prompt about HIMEM, answer Y. +This loads SAR100.CO into ram. +Now notice the SARDIN entry changed from "OFF" to "ON" under it. + +3: Enter T-Word and start a new document and type some text. + +4: Press GRPH+F to invoke Sardine to spell-check the document. +This will invoke SAR100.CO, which will try to use TPDD1 FDC-mode sector access commands, wich dl2 will respond to with data from the .pdd1 file. diff --git a/ref/baud_linux.c b/ref/baud_linux.c index 809bbc2..ca8651a 100644 --- a/ref/baud_linux.c +++ b/ref/baud_linux.c @@ -1,4 +1,19 @@ -// the TPDD drive has a dip switch setting for 76800 baud +// The TPDD1 drive has a dip switch setting for 76800 baud. +// 76800 is a native rate on some odd or old platforms like sparc, +// but is weird and not directly/natively supported on others. +// On a typical linux on intel it requires termios2 and BOTHER +// It will probably need several #ifdefs to support different platforms. + +// https://stackoverflow.com/a/39924923/5754855 +/* + struct termios2 t; + ioctl(fd, TCGETS2, &t); // Read current settings + t.c_cflag &= ~CBAUD; // Remove current baud rate + t.c_cflag |= BOTHER; // Allow arbitrary int baud rate + t.c_ispeed = 76800; // Set the input baud rate (int) + t.c_ospeed = 76800; // Set the output baud rate (int) + ioctl(fd, TCSETS2, &t); // Apply new settings +*/ /* set weird baud rates on linux * diff --git a/ref/disk_image_files.txt b/ref/disk_image_files.txt index d4cc843..fc99c35 100644 --- a/ref/disk_image_files.txt +++ b/ref/disk_image_files.txt @@ -23,9 +23,15 @@ Each record is composed of 3 fields: ID, unknown, DATA | 12 bytes | 1 byte | 1280 bytes | +----------+--------+---------------------------------------+ -The unknown byte on tpdd2 is an extra byte that isn't described in the -manual, but exists in ram on a drive after the ID section, and it can be -written and read back from disk, so it is part of the disk image format. +for tpdd2 these correspond to these ram addresses: +ID 0x8004 to 0x800F +? 0x8010 +DATA 0x8013 to 0x8512 + +The "?" byte on tpdd2 is an extra byte that isn't described in the manual, +but exists in the drives ram after the ID section. It's normally just 0x00, +but you can write it in ram, commit to disk, and read it back from disk, +so it's included in the disk image format. There are no delimiters or other formatting or header. @@ -39,26 +45,27 @@ and the install disk for Disk Power KC-85. Sardine's dictionary disk is a pure data disk with no filesystem, and so Sardine uses FDC-mode to access the sectors like a database. -The install disk for Disk Power is seemingly a normal disk with a filesystem -and files, but there is also non-file data in some sectors that the filesystem -doesn't know about, and the installer uses sector-access commands to read -4 64-byte chunks of raw data from an unmarked sector. +The install disk for Disk Power is designed to look like a normal disk with a +filesystem, but the installer uses fdc-mode sector access to read sectret data +from some sectors that aren't marked as in-use in the FCB ot SMT tables. Generally, you also need to use some extra commandline options to disable -TS-DOS directory extensions support (-e), and to force stricter TPDD1-only +TS-DOS directory extensions support (-n), and to force stricter TPDD1-only or TPDD2-only emulation (-m 1) or (-m 2). Example: -$ dl -vue -m 1 -i Sardine_American_English.pdd1 +$ dl -vun -m 1 -i Sardine_American_English.pdd1 -It's not a requirement to use disk images in general, it's just that in both -of these real examples above, the client software triggers unexpected responses -from the server that a real drive wouldn't do, so the extra options make the -server act more like a real drive, as the client software expects. +That isn't required to use disk images in general, it's just that in both +of these real examples, the client software does things that trigger unexpected +responses from the server that a real drive wouldn't do, so the extra options +make the server act more like a real drive, as the client software expects. +Some other client software may or may not do wierd things and may or may not +need the stricter emulation. Disk image files can be created with https://github.co/bkw777/pdd.sh dl2 can also create new disk images from client-issued format and sector -access commands. Example: run "$ dl -vve -m 1 -i ./newdisk.pdd1" +access commands. Example: run "$ dl -vvn -m 1 -i ./newdisk.pdd1" and then use a client to "format" the "disk". For TPDD1, both the FDC-mode the Operation-mode format commands do what a real @@ -68,10 +75,10 @@ like the Sardine dictionary disk. The Operation-mode format command does the same as FDC-mode format with logical size code 0 (64-byte logical sectors) and then writes the single byte of non-null data at the right address to create a valid Space Management Table, which makes the disk into a functioning filesystem -disk. (If you took the generated .pdd1 or .pdd2 file and used pdd.sh to "restore" -it to a real disk, that disk would be a functioning filesystem disk) +disk. If you took the generated .pdd1 or .pdd2 file and used pdd.sh to "restore" +it to a real disk, that disk would be a functioning filesystem disk. -Real disks can only be dumped or restored using the matching type of drive. +Real disks can only be dumped or restored using the matching type of drive. Although a real TPDD2 drive can at least read a TPDD1 disk, you must use a TPDD1 drive to dump a TPDD1 disk to a .pdd1 image file, or to restore a .pdd1 image file to a real disk, and a TPDD2 drive for .pdd2 files. diff --git a/ref/pdd2_ram.txt b/ref/pdd2_ram.txt index 2f760a7..28cf90e 100644 --- a/ref/pdd2_ram.txt +++ b/ref/pdd2_ram.txt @@ -1,5 +1,7 @@ TPDD2 2k ram map +pick a random disk sctor, say 68 + read sector 68 from disk into cache sector 68 is track 34 sector 0 PDD(pdd2[0]:6.2,F)> cache 34 0 0 @@ -7,7 +9,7 @@ PDD(pdd2[0]:6.2,F)> cache 34 0 0 read the entire 2k external ram PDD(pdd2[0]:6.2,F)> mem_read 1 0x8000 0x800 -2k ram includes both the 1280 byte DATA and the 19-byte ID section +2k ram includes both the 1280 byte DATA and the 12-byte ID section ram starts at 0x8000 ID starts at 0x8004 DATA aka Sector Cache starts at 0x8013 @@ -33,4 +35,6 @@ DATA aka Sector Cache starts at 0x8013 8012: 8E ??? maybe id-crc lsb 8013: start of DATA ... - +8512: end of DATA +... +87FF: end of 2k ram diff --git a/ref/search_id_section.txt b/ref/search_id_section.txt index 15007ea..305762b 100644 --- a/ref/search_id_section.txt +++ b/ref/search_id_section.txt @@ -10,7 +10,7 @@ are Sardine and the installer for Disk-Power, and neither of those uses this com So there is no client software I know of to test if we are emulating this function well enough. What we do have is, pdd.sh was used to probe out what a real drive does, -and then both pdd.sh and dlplus do that. +and then both pdd.sh and dl2 do that. So *maybe* we are emulating the real drives "S" command more or less? The software manual explains almost nothing about this command. It only says: @@ -27,12 +27,12 @@ The process goes like this (as far as I can tell): 0 - client sends the Operation-mode command for "switch to FDC-mode" 0x5A 0x5A 0x08 0x00 0xDC (ZZ 0x08 NULL checksum) - + "Search ID Section" is an FDC-mode command, and a real drive always starts in Operation-mode at power-on by default. So if not done already, the drive must first be switched from Operation-mode to FDC-mode before you can issue any FDC-mode commands. - + https://archive.org/details/tandy-service-manual-26-3808-s-software-manual-for-portable-disk-drive/page/21/ The drive does not send back any response to this command. @@ -42,17 +42,17 @@ The process goes like this (as far as I can tell): (S carriage-return) This command takes no parameters after the S. - dlplus silently ignores any extra characters, - but a real drive gives error 61 if there are any extra bytes after the S. + dl2 silently ignores any extra characters, + but a real drive gives error 0x61 if there are any extra bytes after the S. 2 - drive sends a standard FDC-mode response block(a) (8 bytes, all ascii "0"s if there was no hardware fault or other error) If the command was valid and no hardware problem: err:0 dat:0 len:0 - (0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 = "00000000" = err:0 = success) + (0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 = "00000000" = err:0x00 = success) - If the command was malformed: err:61 dat:0 len:0 - (0x36 0x31 0x30 0x30 0x30 0x30 0x30 0x30 = "61000000" = err:61 = error) + If the command was malformed: err:0x61 dat:0 len:0 + (0x36 0x31 0x30 0x30 0x30 0x30 0x30 0x30 = "61000000" = err:0x61 = error) client parses the response block @@ -62,6 +62,7 @@ The process goes like this (as far as I can tell): otherwise, if err==0, proceed... 3 - client sends exactly 12 bytes of data + no less or more right-pad with 0x00 or truncate to 12 bytes as necessary to search for "abc" send 0x61 0x62 0x63 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 @@ -71,18 +72,17 @@ The process goes like this (as far as I can tell): wait at least 20 seconds and abort if no response by 30 seconds 4 - drive sends another FDC-mode response block - If a match was found: err:0 dat:sector-number len:logical-sector-size-bytes - If a match was not found: err:60 dat:255 len:logical-sector-size-bytes + If a match was found: err:0x00 dat:sector-number len:logical-sector-size-bytes + If a match was not found: err:0x60 dat:0xFF len:logical-sector-size-bytes -There seems to be no way to search for multiple matching records. -For instance, as far as I can tell you can't supply any sector-number parameter to start searching at the next sector after a previously found match to find the next match, -and repeating the same search just produces the same result which is the first match counting from physical sector 0. +There seems to be no way to search for multiple sectors with the same ID. +(other than using READ ID and reading them all yourself instead of using SEARCH ID) +The search always only returns the 1st match, and there is no way to tell it to start at some other sector than 0. github/bkw777/pdd.sh has an implementation of the client side of this and is working with real TPDD drives. +dl2 has an implementation of the server side of this and is working with pdd.sh at least. -dlplus has an implementation of the server side of this and is working with pdd.sh. - -(a) FDC-mode 8-byte response block common to all FDC-mode commands: - 2 bytes = ascii hex pair representing a uint_8 for error/status code (err:#) 0=success, >0 = various errors & conditions - 2 bytes = ascii hex pair representing a uint_8 for result data (dat:#), meaning depends on command - 4 bytes = 2 ascii hex pairs representing a uint_16 (msb-first) for length or offset (len:#), meaning depends on command +(a) all FDC-mode commands use this 8-byte response format: + 2 bytes = 1 ascii hex pair representing a uint8_t for error/status code (err:#) 0=success, >0 = various errors & conditions + 2 bytes = 1 ascii hex pair representing a uint8_t for result data (dat:#), meaning depends on command + 4 bytes = 2 ascii hex pairs representing a uint16_t (msb-first) for length or address or offset (len:#), meaning depends on command diff --git a/ref/ur2.txt b/ref/ur2.txt index b54002b..f94fd50 100644 --- a/ref/ur2.txt +++ b/ref/ur2.txt @@ -66,8 +66,8 @@ which is loaded by the SARDIN button in UR-II. exist. The rest of the recognized filenames are DOSM10.CO, DOSK85.CO, SARNEC.CO, SARM10.CO, and SARK85.CO. - \*M10.CO & \*K85.CO would be TS-DOS & Sardine for Olivetti and Kyotronic, - which may not have ever existed. If they did exist, these are just my + M10.CO & K85.CO would be TS-DOS & Sardine for Olivetti and Kyotronic, + which probably never existed. If they did exist, these are just my guesses what the filenames would be. Maybe they will turn up some day. (2) *Not quite possible* From 64b3b9e83b589f640264251d7ad4e45737e1b8c5 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Mon, 12 Feb 2024 21:31:50 -0500 Subject: [PATCH 166/206] use ! instead of +1 to ignore return val --- dl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dl.c b/dl.c index dd4358a..bd9d31c 100644 --- a/dl.c +++ b/dl.c @@ -504,11 +504,11 @@ int open_client_tty () { if (getty_mode) { debug = -1; if (!login_tty(client_tty_fd)) client_tty_fd = STDIN_FILENO; - else (void)(daemon(1,1)+1); + else (void)!daemon(1,1); } #endif - (void)(tcflush(client_tty_fd, TCIOFLUSH)+1); + (void)!tcflush(client_tty_fd, TCIOFLUSH); // unset O_NONBLOCK fcntl(client_tty_fd, F_SETFL, fcntl(client_tty_fd, F_GETFL, NULL) & ~O_NONBLOCK); From 4d813b4ada8610fc0d8f5c0e6a4c6b5e270f37f3 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 13 Feb 2024 12:46:18 -0500 Subject: [PATCH 167/206] fmt +- 0x22 --- dl.c | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/dl.c b/dl.c index bd9d31c..0370635 100644 --- a/dl.c +++ b/dl.c @@ -1200,9 +1200,18 @@ void dirent_set_name() { dbg(3,"filename: \"%-*.*s\"\n",TPDD_FILENAME_LEN,TPDD_FILENAME_LEN,gb+2); dbg(3," attr: \"%c\" (%1$02X)\n",gb[26]); } - // update before every set-name for at least 2 reasons - // * clients may open files without ever listing (teeny, ur2, etc) + // Update the local file list before every set-name. + // * clients may open files any time without ever listing first // * local files may be changed at any time by other processes + // and we need to have the tpdd version of all filenames ready to compare + // against, to respond correctly if it exists/doesn't/writable/not etc. + // TODO - Do we really need to do it that way? + // What about examining each local file on the spot instead of + // pre/re-generating a stored list of converted filenames? + // Maybe one thing a pre-generated list might be good for is the eventual + // filesystem access to disk images where we would model the FCB and SMT + // tables and disk sectors and update them the same way a real drive + // does when files are added/removed/read/written. update_file_list(ALLOW_RET); strncpy(filename,(char*)gb+2,TPDD_FILENAME_LEN); filename[TPDD_FILENAME_LEN]=0; @@ -2013,21 +2022,26 @@ void get_opr_cmd() { return; // real drive does not return anything } + // Preserve the original packet for reference "just because" even though + // we could actually get away with modifying gb[0] at this point. uint8_t c = gb[0]; // decode bit 6 in the FMT byte b[0] for bank0 vs bank1 if (model==2) { - //bank = 0; if (c&0x40) { bank = 1; c-=0x40; } // alternative method - bank = (c >> 6) & 1; // read bit 6 - c &= ~(1 << 6); // clear bit 6 + //bank = 0; if (c&0x40) { bank = 1; c-=0x40; } // alternative + bank = (c >> 6) & 1; // read bit 6 to set bank 0 or 1 + c &= ~(1 << 6); // clear bit 6 so incoming 0x4# matches 0x0# case } - // TODO double-check this - // another note says sysinfo is 0x33 but the drive also responds to 0x11 - // so maybe this is backwards? maybe it's both? - // For FMT 0x30-0x34 pdd2 accepts FMT or FMT+0x22. Unknown function. - // For now just treat them as synonyms by subtracting 0x22 if present. - //if ( c>0x51 && c<0x57 ) c-=0x22; + // translate the undocumented synonyms + // https://www.mail-archive.com/m100@lists.bitchin100.com/msg18555.html + if ( c>0x0D && c<0x13 ) c+=0x22; + + // TODO + // Test combinations of both of the above things on a real drive. + // Example, what does 0x51 do? Is it right that we test for 0x11 + // after subtracting 0x40, so that we end up doing 0x33? + // Does tpdd1 do the 0x22 thing? // dispatch switch(c) { From f38897c7e860d4b7b6c21c9ef679ba54b15aad83 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 13 Feb 2024 13:55:46 -0500 Subject: [PATCH 168/206] document Sardine usb-serial problem --- ref/Sardine.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ref/Sardine.md b/ref/Sardine.md index 1da991d..7019893 100644 --- a/ref/Sardine.md +++ b/ref/Sardine.md @@ -12,12 +12,17 @@ An image of the dictionary disk is also bundled with dl2, and the **-i file.pdd1 1: Run dl with the following commandline arguments, ``` -$ dl -vun -i Sardine_American_English.pdd1 +$ dl -i Sardine_American_English.pdd1 ``` -This tells dl2 to emulate a TPDD1, disable some TPDD2 features and TS-DOS directory support which would confuse `SAR100.CO`, and use the Sardine American English dictionary disk image file for any sector-access commands. +This tells dl2 to emulate a TPDD1 and use the Sardine American English dictionary disk image file for any sector-access commands. Both `SAR100.CO` and `Sardine_American_English.pdd1` are bundled with dl2, installed in /usr/local/lib/dl, so you don't have to do anything for SAR100.CO, and for the disk image you don't have to specify the full path. +At present, [Sardine is uniquely picky about the usb-serial adapter](https://github.com/bkw777/dl2/issues/9). Even ensuring you have a real FTDI chip isn't good enough, but certain adapters work and others don't. +Any adapter works for ordinary file transfers, even big random binary files that fill the entire disk copy without a hitch. It's only Sardine that has a problem. +Currently the safe bet is Startech ICUSB232C +The fault is probably really a timing issue in dl2, that may eventually be fixable to work with more hardware. But at present, it may or may not work depending on your serial port hardware. + 2: Enter the UR-2 menu. Notice the "SARDIN" entry with the word "OFF" under it. Hit enter on SARDIN. From 361baa420985a0cdbaf3be3018bc7c9e65cf7736 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 16 Feb 2024 02:05:06 -0500 Subject: [PATCH 169/206] attr in xattr, tildes, fix crash in -vv --- Makefile | 11 +- README.md | 32 ++++- constants.h | 48 +++---- dir_list.c | 8 +- dir_list.h | 5 +- dl.c | 230 +++++++++++++++++++++----------- ref/advanced_options.txt | 275 ++++++++++++++++++++++++++++++--------- 7 files changed, 446 insertions(+), 163 deletions(-) diff --git a/Makefile b/Makefile index 3d46e44..37459b6 100644 --- a/Makefile +++ b/Makefile @@ -13,14 +13,17 @@ APP_VERSION := $(shell git describe --long 2>&-) #FB100_ROM := Brother_FB-100.rom # no use yet TPDD2_ROM := TANDY_26-3814.rom -DEFAULT_BASIC_BYTE_MS := 8 # ms-per-byte in -b file.100 -DEFAULT_MODEL := 1 # 1=tpdd1 2=tpdd2 (TS-DOS FOO.<> dirs requires tpdd1) +DEFAULT_BASIC_BYTE_MS := 8 # ms per byte in bootstrap +DEFAULT_MODEL := 1 # 1=tpdd1 2=tpdd2 (TS-DOS directory support requires tpdd1) +DEFAULT_OPERATION_MODE := 1 # 0=FDC-mode 1=Operation-mode DEFAULT_BAUD := 19200 DEFAULT_RTSCTS := false DEFAULT_UPCASE := false DEFAULT_DOTPOS := 6 # default 6.2 filenames compatible with Floppy/TS-DOS/etc. +DEFAULT_TILDES := true DEFAULT_ATTR := 0x46 # default attribute 'F' compatible with Floppy/TS-DOS/etc. RAW_ATTR := 0x20 # attr for "raw" mode, 0x00, 0x20, 0x46 are all plausible. +XATTR_NAME := user.pdd.attr DEFAULT_DME_ROOT_LABEL := "0: " DEFAULT_DME_PARENT_LABEL := "^ " @@ -100,12 +103,16 @@ DEFINES := \ -DTPDD2_ROM=\"$(TPDD2_ROM)\" \ -DDEFAULT_BASIC_BYTE_MS=$(DEFAULT_BASIC_BYTE_MS) \ -DDEFAULT_MODEL=$(DEFAULT_MODEL) \ + -DDEFAULT_OPERATION_MODE=$(DEFAULT_OPERATION_MODE) \ -DDEFAULT_BAUD=$(DEFAULT_BAUD) \ -DDEFAULT_RTSCTS=$(DEFAULT_RTSCTS) \ -DDEFAULT_UPCASE=$(DEFAULT_UPCASE) \ -DDEFAULT_DOTPOS=$(DEFAULT_DOTPOS) \ + -DDEFAULT_TILDES=$(DEFAULT_TILDES) \ -DDEFAULT_ATTR=$(DEFAULT_ATTR) \ -DRAW_ATTR=$(RAW_ATTR) \ + -DXATTR_NAME=\"$(XATTR_NAME)\" \ +# -DUSE_XATTR \ # -DPRINT_8BIT \ # -DNADSBOX_EXTENSIONS \ diff --git a/README.md b/README.md index 587657a..21977b5 100644 --- a/README.md +++ b/README.md @@ -180,13 +180,43 @@ See [co2ba](co2ba.md) Tested on Linux, [Mac](ref/mac.md), [FreeBSD](ref/freebsd.md), and [Windows](ref/windows.md). ## TODO - not all necessarily serious -* Store the actual attr byte given by clients when they save a file, rather than faking with hardwired DEFAULT_ATTR=0x46. Store in xattr so that it stays part of the file when it is copied/moved/renamed. * File/filesystem access on disk images - Currently can only use disk images for sector access. * Verify if the code works on a big-endian platform - There are a lot of 2-byte values and a lot of direct byte manipulations because the protocol & drive uses MSB-first everywhere while most platforms today do not. * Figure out and emulate more of the special memory addresses accessible in tpdd2 mode. We already do some. * Fake sector 0 based on the files in the current share path so that if a client tries to read the FCB table directly it works. * Fake entire disk image in ram based on current share path files. Option to save the image as long as we're there. +### testing +* Real attribute byte handling. + Saves & retrieves the actual attr value submitted by the client in an + xattr instead of just hard-coding attr=F. + + Enable by building with `-DUSE_XATTR` + `$ make clean all CFLAGS+=" -DUSE_XATTR" && sudo make install` + + Test with [pdd.sh](https://github.com/bkw777/pdd.sh) + +``` +bkw@fw:~/tmp/pdd$ echo test >0.do +bkw@fw:~/tmp/pdd$ pdd "save 0.do 1.do;save 0.do 2.do A;save 0.do 3.do Q;ls" +1) /dev/ttyUSB0 +2) /dev/ttyUSB2 +Which serial port is the TPDD drive on (1-2) ? 2 +Saving TPDD:1.do (F) +[########################################] 100% (5/5 bytes) +Saving TPDD:2.do (A) +[########################################] 100% (5/5 bytes) +Saving TPDD:3.do (Q) +[########################################] 100% (5/5 bytes) +-------- Directory Listing -------- +1.do | F | 5 +2.do | A | 5 +3.do | Q | 5 +------------------------------------- +102400 bytes free +bkw@fw:~/tmp/pdd$ +``` + ## History / Credits [DeskLink for ms-dos](https://ftp.whtech.com/club100/com/dl-arc.exe.gz) 1987 Travelling Software 1.0-1.3 [DeskLink for *nix](http://m100.bbsdev.net/) 2004 Stephen Hurd diff --git a/constants.h b/constants.h index f9cf993..8aebf34 100644 --- a/constants.h +++ b/constants.h @@ -1,6 +1,8 @@ #ifndef PDD_CONSTANTS_H #define PDD_CONSTANTS_H +#include + // TPDD drive firmware/protocol constants // TPDD request block formats @@ -33,14 +35,14 @@ // TPDD return block formats {fmt,len} #define RET_READ 0x10 -static const unsigned char RET_DIRENT[2] = {0x11,0x1C}; -static const unsigned char RET_STD[2] = {0x12,0x01}; // shared return format for: error open close delete status write -static const unsigned char RET_VERSION[2] = {0x14,0x0F}; // TPDD2 -static const unsigned char RET_CONDITION[2] = {0x15,0x01}; // TPDD2 -static const unsigned char RET_CACHE[2] = {0x38,0x01}; // TPDD2 shared return format for: cache mem_write cond_list +static const uint8_t RET_DIRENT[2] = {0x11,0x1C}; +static const uint8_t RET_STD[2] = {0x12,0x01}; // shared return format for: error open close delete status write +static const uint8_t RET_VERSION[2] = {0x14,0x0F}; // TPDD2 +static const uint8_t RET_CONDITION[2] = {0x15,0x01}; // TPDD2 +static const uint8_t RET_CACHE[2] = {0x38,0x01}; // TPDD2 shared return format for: cache mem_write cond_list #define RET_MEM_READ 0x39 // TPDD2 -static const unsigned char RET_SYSINFO[2] = {0x3A,0x06}; // TPDD2 -static const unsigned char RET_EXEC[2] = {0x3B,0x03}; // TPDD2 +static const uint8_t RET_SYSINFO[2] = {0x3A,0x06}; // TPDD2 +static const uint8_t RET_EXEC[2] = {0x3B,0x03}; // TPDD2 // directory entry request types #define DIRENT_SET_NAME 0x00 @@ -115,24 +117,24 @@ static const char FDC_CMDS[] = {FDC_SET_MODE,FDC_CONDITION,FDC_FORMAT,FDC_FORMAT // There is no documentation for FDC error codes. // These are guesses from experimenting. // These appear in the first hex pair of an 8-byte FDC-mode response. -#define ERR_FDC_SUCCESS 0 // 'OK' -#define ERR_FDC_LSN_LO 17 // 'Logical Sector Number Below Range' -#define ERR_FDC_LSN_HI 18 // 'Logical Sector Number Above Range' -#define ERR_FDC_PSN_HI 19 // 'Physical Sector Number Above Range' -#define ERR_FDC_PARAM 33 // 'Parameter Invalid, Wrong Type' -#define ERR_FDC_LSSC_LO 50 // 'Invalid Logical Sector Size Code' -#define ERR_FDC_LSSC_HI 51 // 'Logical Sector Size Code Above Range' -#define ERR_FDC_ID_NOT_FOUND 60 // 'ID Not Found' -#define ERR_FDC_S_BAD_PARAM 61 // 'Search ID Unexpected Parameter' -#define ERR_FDC_NOT_FORMATTED 160 // 'Disk Not Formatted' -#define ERR_FDC_READ 161 // 'Read Error' -#define ERR_FDC_WRITE_PROTECT 176 // 'Write-Protected Disk' -#define ERR_FDC_COMMAND 193 // 'Invalid Command' -#define ERR_FDC_NO_DISK 209 // 'Disk Not Inserted' -#define ERR_FDC_INTERRUPTED 216 // 'Operation Interrupted' +#define ERR_FDC_SUCCESS 0x00 // 'OK' +#define ERR_FDC_LSN_LO 0x11 // 'Logical Sector Number Below Range' +#define ERR_FDC_LSN_HI 0x12 // 'Logical Sector Number Above Range' +#define ERR_FDC_PSN_HI 0x13 // 'Physical Sector Number Above Range' +#define ERR_FDC_PARAM 0x21 // 'Parameter Invalid, Wrong Type' +#define ERR_FDC_LSSC_LO 0x32 // 'Invalid Logical Sector Size Code' +#define ERR_FDC_LSSC_HI 0x33 // 'Logical Sector Size Code Above Range' +#define ERR_FDC_ID_NOT_FOUND 0x3C // 'ID Not Found' +#define ERR_FDC_S_BAD_PARAM 0x3D // 'Search ID Unexpected Parameter' +#define ERR_FDC_NOT_FORMATTED 0xA0 // 'Disk Not Formatted' +#define ERR_FDC_READ 0xA1 // 'Read Error' +#define ERR_FDC_WRITE_PROTECT 0xB0 // 'Write-Protected Disk' +#define ERR_FDC_COMMAND 0xC1 // 'Invalid Command' +#define ERR_FDC_NO_DISK 0xD1 // 'Disk Not Inserted' +#define ERR_FDC_INTERRUPTED 0xD8 // 'Operation Interrupted' // TPDD1 FDC Logical Sector Length Codes -static const unsigned short FDC_LOGICAL_SECTOR_SIZE[7] = {64,80,128,256,512,1024,1280}; +static const uint16_t FDC_LOGICAL_SECTOR_SIZE[7] = {64,80,128,256,512,1024,1280}; // TPDD1 Condition bits #define PDD1_COND_BIT_NOTINS 7 // disk not inserted diff --git a/dir_list.c b/dir_list.c index 69df0d5..1b75d13 100644 --- a/dir_list.c +++ b/dir_list.c @@ -74,10 +74,14 @@ int add_file(FILE_ENTRY* fe) { return 0; } -FILE_ENTRY* find_file(char* client_fname) { +FILE_ENTRY* find_file(char* client_fname, uint8_t attr) { int i; for (i=0;i #include "constants.h" -#define FEQ 10 // number of FILE_ENTRYs to malloc for at a time +#define FEQ DIRENTS // number of FILE_ENTRYs to malloc for at a time typedef struct { char client_fname[TPDD_FILENAME_LEN+1]; char local_fname[LOCAL_FILENAME_MAX+1]; + uint8_t attr; uint16_t len; uint8_t flags; } FILE_ENTRY; @@ -40,7 +41,7 @@ int file_list_cleanup (); void file_list_clear_all (); int add_file (FILE_ENTRY* fe); -FILE_ENTRY* find_file (char* client_fname); +FILE_ENTRY* find_file (char* client_fname, uint8_t attr); FILE_ENTRY* get_first_file (void); FILE_ENTRY* get_next_file (void); FILE_ENTRY* get_prev_file (void); diff --git a/dl.c b/dl.c index 0370635..268b762 100644 --- a/dl.c +++ b/dl.c @@ -47,20 +47,31 @@ MA 02111, USA. #include #include #include + #include "constants.h" #include "dir_list.h" #if defined(__APPLE__) || defined(__NetBSD__) || defined(OpenBSD) #include +//#if defined(USE_XATTR) +//#include +//#endif #endif #if defined(__FreeBSD__) #include +//#if defined(USE_XATTR) +//#include +//#endif #endif #if defined(__linux__) #include +#if defined(USE_XATTR) +#include #endif +#endif + /*** config **************************************************/ @@ -102,6 +113,11 @@ MA 02111, USA. #ifndef RAW_ATTR #define RAW_ATTR 0x20 // space #endif +#if defined(USE_XATTR) +#ifndef XATTR_NAME +#define XATTR_NAME "user.pdd.attr" +#endif +#endif #define DEFAULT_TPDD1_IMG_SUFFIX ".pdd1" #define DEFAULT_TPDD2_IMG_SUFFIX ".pdd2" @@ -118,6 +134,15 @@ MA 02111, USA. #define DEFAULT_DOTPOS 6 #endif +#ifndef DEFAULT_OPERATION_MODE +#define DEFAULT_OPERATION_MODE 1 +#endif + +#ifndef DEFAULT_TILDES +#define DEFAULT_TILDES true +#endif + + // To mimic the original Desk-Link from Travelling Software: //#define DEFAULT_DME_ROOT_LABEL "ROOT " //#define DEFAULT_DME_PARENT_LABEL "PARENT" @@ -173,8 +198,10 @@ const char * magic_files [] = { /*************************************************************/ int debug = 0; +int operation_mode = DEFAULT_OPERATION_MODE; bool upcase = DEFAULT_UPCASE; bool rtscts = DEFAULT_RTSCTS; +bool tildes = DEFAULT_TILDES; unsigned dot_offset = DEFAULT_DOTPOS; // 0 for raw, 6 for KC-85, 8 for WP-2 uint8_t model = DEFAULT_MODEL; int baud = DEFAULT_BAUD; @@ -188,6 +215,11 @@ char dme_root_label[7] = TSDOS_ROOT_LABEL; char dme_parent_label[7] = TSDOS_PARENT_LABEL; char dme_dir_label[3] = TSDOS_DIR_LABEL; char default_attr = DEFAULT_ATTR; + +#if defined(USE_XATTR) +char* xattr_name = XATTR_NAME; +#endif + bool enable_magic_files = true; #if !defined(_WIN) bool getty_mode = false; @@ -204,7 +236,6 @@ char iwd[PATH_MAX+1] = {0x00}; char cwd[PATH_MAX+1] = {0x00}; char dme_cwd[7] = DEFAULT_DME_ROOT_LABEL; char bootstrap_fname[PATH_MAX+1] = {0x00}; -int opr_mode = 1; uint8_t dme = 0; uint8_t bank = 0; bool dme_disabled = false; @@ -257,6 +288,17 @@ void dbg_p(const int v, unsigned char* b) { dbg_b(v,b+2,b[1]); } +// string-to-bool +bool stobool (const char* s) { + return ( + atoi(s)>0 + || !strcasecmp(s,"true") + || !strcasecmp(s,"on") + || !strcasecmp(s,"yes") + || !strcmp(s,":") + ) ? true : false; +} + // int-to-rate - given int 9600 return macro B9600 int itor (int i) { return @@ -290,7 +332,7 @@ int baud_to_stat_code (int r) { r==4800?7: r==9600?8: r==19200?9: -// b==76800?0: // drive supports, kc85 does not +// b==76800?0: // drive supports, kc85 does not 0; } @@ -695,7 +737,7 @@ int open_disk_image (int p, int m) { if (lseek(disk_img_fd,s,SEEK_SET)!=s) e=ERR_FDC_READ; } - if (opr_mode) switch (e) { + if (operation_mode) switch (e) { //case ERR_FDC_SUCCESS: e=ERR_SUCCESS; break; // same case ERR_FDC_NO_DISK: e=ERR_NO_DISK; break; case ERR_FDC_WRITE_PROTECT: e=ERR_WRITE_PROTECT; break; @@ -705,9 +747,9 @@ int open_disk_image (int p, int m) { return e; } -void req_fdc_set_mode(uint8_t m) { +void req_fdc_set_mode(int m) { dbg(2,"%s(%d)\n",__func__,m); - opr_mode=m; // no response, just switch modes + operation_mode = m; // no response, just switch modes if (m==1) dbg(2,"Switched to \"Operation\" mode\n"); } @@ -1022,61 +1064,64 @@ void get_fdc_cmd() { // OPERATION MODE // -FILE_ENTRY* make_file_entry(char* namep, uint16_t len, char flags) { +FILE_ENTRY* make_file_entry(char* namep, uint8_t attr, uint16_t len, char flags) { dbg(3,"%s(\"%s\")\n",__func__,namep); static FILE_ENTRY f; - int i; + int t=strlen(namep); - strncpy (f.local_fname, namep, sizeof (f.local_fname) - 1); - memset(f.client_fname,0x20,TPDD_FILENAME_LEN); + strncpy(f.local_fname, namep, sizeof(f.local_fname)-1); + memset(f.client_fname, 0x00, sizeof(f.client_fname)); + f.attr = attr; f.len = len; f.flags = flags; - if (dot_offset) { - // if not in raw mode, reformat the client filename - - // find the last dot in the local filename - for(i=strlen(namep);i>0;i--) if (namep[i]=='.') break; - - // write client extension - if (flags&FE_FLAGS_DIR) { - // directory - put TS-DOS DME ext on client fname - f.client_fname[dot_offset+1]=dme_dir_label[0]; - f.client_fname[dot_offset+2]=dme_dir_label[1]; - f.len=0; - } else if (i>0) { - // file - put first 2 bytes of ext on client fname - f.client_fname[dot_offset+1]=namep[i+1]; - f.client_fname[dot_offset+2]=namep[i+2]; - } + if (dot_offset && dot_offset2) f.client_fname[dot_offset+2]='~'; // if ext>2 + if (l-1>bl) f.client_fname[bl basename + } } else { - // raw mode - don't reformat or filter anything - snprintf(f.client_fname,25,"%-*.*s",TPDD_FILENAME_LEN,TPDD_FILENAME_LEN,namep); + // raw mode + snprintf(f.client_fname,TPDD_FILENAME_LEN+1,"%-*.*s",TPDD_FILENAME_LEN,TPDD_FILENAME_LEN,namep); + if (t>TPDD_FILENAME_LEN) f.client_fname[TPDD_FILENAME_LEN-1]='~'; } - dbg(1,"\"%s\"\t%s%s\n",f.client_fname,f.local_fname,f.flags&FE_FLAGS_DIR?"/":""); + /* match format with header in update_file_list() */ + dbg(1,"\"%s\" |%c| %s%s\n",f.client_fname,f.attr,f.local_fname,f.flags&FE_FLAGS_DIR?"/":""); return &f; } @@ -1097,6 +1142,7 @@ int read_next_dirent(DIR* dir,int m) { struct stat st; struct dirent* dire; int flags; + uint8_t atr; if (dir == NULL) { dire=NULL; @@ -1128,7 +1174,11 @@ int read_next_dirent(DIR* dir,int m) { // REXCPM violates the tpdd protocol to load a large CP/M disk image. if (st.st_size>UINT16_MAX) st.st_size=0; - add_file(make_file_entry(dire->d_name, st.st_size, flags)); + atr = default_attr; +#if defined(USE_XATTR) + getxattr(dire->d_name, xattr_name, &atr, 1); +#endif + add_file(make_file_entry(dire->d_name, atr, st.st_size, flags)); break; } @@ -1149,9 +1199,10 @@ void update_file_list(int m) { int w = dot_offset+3; if (dot_offset<1||w>TPDD_FILENAME_LEN) w = TPDD_FILENAME_LEN; dbg(1,"\nDirectory %s: %s\n",model==2?bank==1?"[Bank 1]":"[Bank 0]":"",cwd); - dbg(1," %-*s \tlocal filename\n",w,"tpdd view"); + /* match format with end of make_file_entry() */ + dbg(1,"\"%-*s\" |a| local filename\n",w,"tpdd view"); dbg(1,"-------------------------------------------------------------------------------\n"); - if (dir_depth) add_file(make_file_entry("..", 0, FE_FLAGS_DIR)); + if (dir_depth) add_file(make_file_entry("..", default_attr, 0, FE_FLAGS_DIR)); while (read_next_dirent(dir,m)); dbg(1,"-------------------------------------------------------------------------------\n"); closedir(dir); @@ -1159,7 +1210,8 @@ void update_file_list(int m) { // return for dirent int ret_dirent(FILE_ENTRY* ep) { - dbg(2,"%s(\"%s\")\n",__func__,ep->client_fname); + // ep may be null + dbg(2,"%s()\n",__func__); int i; memset(gb,0x00,TPDD_MSG_MAX); @@ -1174,14 +1226,14 @@ int ret_dirent(FILE_ENTRY* ep) { else memcpy (gb+2,ep->client_fname,TPDD_FILENAME_LEN); // attribute - gb[26] = default_attr; + gb[26] = ep->attr; // size gb[27] = (uint8_t)(ep->len >> 0x08); // most significant byte gb[28] = (uint8_t)(ep->len & 0xFF); // least significant byte } - dbg(3,"\"%*.*s\"\n",TPDD_FILENAME_LEN,TPDD_FILENAME_LEN,gb+2); + dbg(3,"\"%*.*s\" (%c) 0x%02X%02X\n",TPDD_FILENAME_LEN,TPDD_FILENAME_LEN,gb+2,gb[26],gb[27],gb[28]); // free sectors gb[29] = model==2?(PDD2_TRACKS*PDD2_SECTORS):(PDD1_TRACKS*PDD1_SECTORS); @@ -1192,14 +1244,16 @@ int ret_dirent(FILE_ENTRY* ep) { } void dirent_set_name() { - dbg(2,"%s(%-*.*s)\n",__func__,TPDD_FILENAME_LEN,TPDD_FILENAME_LEN,gb+2); - char* p; - char filename[TPDD_FILENAME_LEN+1]={0x00}; - int f = 0; + dbg(2,"%s()\n",__func__); if (gb[2]) { dbg(3,"filename: \"%-*.*s\"\n",TPDD_FILENAME_LEN,TPDD_FILENAME_LEN,gb+2); dbg(3," attr: \"%c\" (%1$02X)\n",gb[26]); } + char* p; + char filename[TPDD_FILENAME_LEN+1] = {0x00}; + uint8_t fileattr = 0x00; + int f = 0; + // Update the local file list before every set-name. // * clients may open files any time without ever listing first // * local files may be changed at any time by other processes @@ -1213,23 +1267,30 @@ void dirent_set_name() { // tables and disk sectors and update them the same way a real drive // does when files are added/removed/read/written. update_file_list(ALLOW_RET); + + // copy the filename from the buffer strncpy(filename,(char*)gb+2,TPDD_FILENAME_LEN); - filename[TPDD_FILENAME_LEN]=0; + filename[TPDD_FILENAME_LEN]=0x00; + fileattr = gb[26]; + // Remove trailing spaces - for (p = strrchr(filename,' '); p >= filename && *p == ' '; p--) *p = 0x00; - cur_file=find_file(filename); + for (p = strrchr(filename,' ');p >= filename && *p == ' ';p--) *p = 0x00; + + cur_file = find_file(filename, fileattr); + if (cur_file) { dbg(3,"Exists: \"%s\" %u\n", cur_file->local_fname, cur_file->len); ret_dirent(cur_file); } else if (!check_magic_file(filename)) { // let UR2/TSLOAD load DOSxxx.CO from anywhere - cur_file=make_file_entry(filename,0,0); + cur_file = make_file_entry(filename, fileattr, 0, 0); char t[LOCAL_FILENAME_MAX+1] = {0x00}; // try share root - // TODO - save initial path in share_path[0] and use that instead of "../"*depth + // TODO - save initial share_path[0] and use that instead of "../"*depth + // tpdd2 can't do dme, so share_path[1] is available for (int i=dir_depth;i>0;i--) strcat(t,"../"); strncat(t,cur_file->local_fname,LOCAL_FILENAME_MAX-dir_depth*3); - struct stat st; int e=stat(t,&st); + struct stat st; int e = stat(t, &st); if (e) { // try app_lib_dir strcpy(t,app_lib_dir); strcat(t,"/"); @@ -1245,7 +1306,7 @@ void dirent_set_name() { } } else { if (!strncmp(filename+dot_offset+1,dme_dir_label,2)) f = FE_FLAGS_DIR; - cur_file=make_file_entry(collapse_padded_fname(filename), 0, f); + cur_file = make_file_entry(collapse_padded_fname(filename), fileattr, 0, f); dbg(3,"New %s: \"%s\"\n",f==FE_FLAGS_DIR?"Directory":"File",cur_file->local_fname); ret_dirent(NULL); } @@ -1384,7 +1445,7 @@ void req_fdc() { if (dme>1) { ret_dme_cwd(); } else { - opr_mode = 0; + operation_mode = 0; dbg(2,"Switched to \"FDC\" mode\n"); // no response to client, just switch modes } } @@ -1397,7 +1458,7 @@ void req_fdc() { // b[3] = chk int req_open() { if (debug>1) { - dbg(2,"%s(\"%s\")\n",__func__,cur_file->client_fname); + dbg(2,"%s(\"%s\",\"%c\")\n",__func__,cur_file->client_fname,cur_file->attr); dbg(5,"gb[]\n"); dbg_b(5,gb,-1); dbg_p(4,gb); @@ -1424,7 +1485,10 @@ int req_open() { ret_std(ERR_FMT_MISMATCH); else { f_open_mode=omode; - dbg(1,"Open for write: \"%s\"\n",cur_file->local_fname); +#if defined(USE_XATTR) + fsetxattr(o_file_h, xattr_name, &cur_file->attr, 1, 0); +#endif + dbg(1,"Open for write: \"%s\" (%c)\n",cur_file->local_fname,cur_file->attr); ret_std(ERR_SUCCESS); } } @@ -1444,7 +1508,10 @@ int req_open() { ret_std(ERR_FMT_MISMATCH); else { f_open_mode=omode; - dbg(1,"Open for append: \"%s\"\n",cur_file->local_fname); +#if defined(USE_XATTR) + fsetxattr(o_file_h, xattr_name, &cur_file->attr, 1, 0); +#endif + dbg(1,"Open for append: \"%s\" (%c)\n",cur_file->local_fname,cur_file->attr); ret_std(ERR_SUCCESS); } break; @@ -1483,7 +1550,10 @@ int req_open() { ret_std(ERR_NO_FILE); else { f_open_mode = omode; - dbg(1,"Open for read: \"%s\"\n",cur_file->local_fname); +#if defined(USE_XATTR) + fgetxattr(o_file_h, xattr_name, &cur_file->attr, 1); +#endif + dbg(1,"Open for read: \"%s\" (%c)\n",cur_file->local_fname,cur_file->attr); ret_std(ERR_SUCCESS); } } @@ -2213,17 +2283,22 @@ void show_config () { dbg(0,"app_lib_dir : \"%s\"\n",app_lib_dir); dbg(0,"client_tty_name : \"%s\"\n",client_tty_name); dbg(0,"disk_img_fname : \"%s\"\n",disk_img_fname); + dbg(0,"iwd : \"%s\"\n",iwd); dbg(0,"cwd : \"%s\"\n",cwd); dbg(0,"share_path[0] : \"%s\"\n",share_path[0]); dbg(0,"share_path[1] : \"%s\"\n",share_path[1]); - dbg(2,"opr_mode : %d\n",opr_mode); + dbg(2,"operation_mode : %d\n",operation_mode); dbg(2,"baud : %d\n",baud); dbg(0,"dme_disabled : %s\n",dme_disabled?"true":"false"); dbg(2,"dme_root_label : \"%-6.6s\"\n",dme_root_label); dbg(2,"dme_parent_label: \"%-6.6s\"\n",dme_parent_label); dbg(2,"dme_dir_label : \"%-2.2s\"\n",dme_dir_label); dbg(0,"magic_files : %s\n",enable_magic_files?"enabled":"disabled"); - dbg(2,"default_attr : '%c'\n",default_attr); + dbg(2,"default_attr : '%c' (0x%1$02X)\n",default_attr); + dbg(0,"tildes : %s\n",tildes?"true":"false"); +#if defined(USE_XATTR) + dbg(0,"xattr_name : \"%s\"\n",xattr_name); +#endif } void show_main_help() { @@ -2282,9 +2357,10 @@ int main(int argc, char** argv) { (void)!getcwd(iwd,PATH_MAX); // remember initial working directory // environment - if (getenv("OPR_MODE")) opr_mode = atoi(getenv("OPR_MODE")); - if (getenv("DISABLE_DME")) dme_disabled = true; - if (getenv("DISABLE_MAGIC_FILES")) enable_magic_files = false; + if (getenv("OPERATION_MODE")) operation_mode = atoi(getenv("OPERATION_MODE")); + if (getenv("DISABLE_DME")) dme_disabled = stobool(getenv("DISABLE_DME")); + if (getenv("MAGIC_FILES")) enable_magic_files = stobool(getenv("MAGIC_FILES")); + if (getenv("TILDES")) tildes = stobool(getenv("TILDES")); if (getenv("DOT_OFFSET")) dot_offset = atoi(getenv("DOT_OFFSET")); if (getenv("CLIENT_TTY")) strcpy(client_tty_name,getenv("CLIENT_TTY")); if (getenv("BAUD")) baud = atoi(getenv("BAUD")); @@ -2292,6 +2368,9 @@ int main(int argc, char** argv) { if (getenv("PARENT_LABEL")) snprintf(dme_parent_label,7,"%-6.6s",getenv("PARENT_LABEL")); if (getenv("DIR_LABEL")) snprintf(dme_dir_label,3,"%-2.2s",getenv("DIR_LABEL")); if (getenv("ATTR")) default_attr = *getenv("ATTR"); +#if defined(USE_XATTR) + if (getenv("XATTR_NAME")) xattr_name = getenv("XATTR_NAME"); +#endif // commandline #if defined(_WIN) @@ -2375,10 +2454,15 @@ int main(int argc, char** argv) { // initialize the file list file_list_init(); + + // show the directory listing locally even before any directory list + // commands, so that a user with no client-side display like TEENY, REX + // rom image loading, REXCPM rxcini setup, etc can see what filenames are + // available to load and their exact spelling from the tpdd client side. if (debug) update_file_list(NO_RET); // process commands forever - while (1) if (opr_mode) get_opr_cmd(); else get_fdc_cmd(); + while (1) if (operation_mode) get_opr_cmd(); else get_fdc_cmd(); // file_list_cleanup() return 0; diff --git a/ref/advanced_options.txt b/ref/advanced_options.txt index 0e43ef1..af681a4 100644 --- a/ref/advanced_options.txt +++ b/ref/advanced_options.txt @@ -14,111 +14,266 @@ Commandline switches: Environment variables: -To use these, just put them in the environment. The simples is just type -them on the same command line , before the executable. +To use these, just put them in the environment. The simplest is just type +them on the same command line before the executable name. Example: $ ROOT_LABEL=/ PARENT_LABEL=^ dl - ROOT_LABEL '/' '0:' 'dlplus' ' <> ' 'C:\' '-root-' etc... + ROOT_LABEL="0:" + examples: + 'ROOT' + '/' + '0:' + '-root-' + ' ROOT ' + '_ROOT_' The original Desk-Link, and so, most other emulators also, puts the string "ROOT " in the top-right corner of the TS-DOS display when the user is in the top level share directory. - This variable lets you put whatever you want there. If you give - it a string shorter than 6 bytes, it will be left justified. - If you give a string longer than 6 bytes it will be truncated. - If you want a shorter string to be centered, just include all 6 bytes - in the value within quotes. You can even make it blank with ''. + This variable lets you put whatever you want there. - PARENT_LABEL '^' '^:' '______' '-back-' 'UP:' etc... + The field in TS-DOS is exactly 6 characters. + + Shorter than 6 bytes will be left-justified. + Longer than 6 bytes will be truncated. + + If you want a shorter string to be centered, + use quotes and include the spaces. + + PARENT_LABEL="^" + examples: + 'PARENT' + '^' + '^:' + ' up ' + '__up__' + '-back-' + 'UP:' Similar to ROOT_LABEL, Desk-Link used the word "PARENT" for the the "go back up one level" directory entry in the top-left file - slot in the directory listing screen. This is the Desk-Link - equivalent to ".." + slot in the directory listing screen. + This was Desk-Links equivalent to ".." This variable lets you put whatever you want there instead of "PARENT", with limitations. Unfortunately, since this appears - in the file list like any other file, TS-DOS is picky about + in the file list like any other file, and TS-DOS is picky about what it considers a "bad" filename, and you can't put just - anything here. Most notably, you can't use ".." :/ DAMMIT! + anything here. Most notably, you can't use "..", because normally + "." would be an illegal character in a Model 100 filename except + the one in the 7th byte. - This is a TS-DOS limitation. You CAN actually use "..", in that, - dlplus will send it to TS-DOS, and TS-DOS will even display it - properly in the file listing, but if you try to hit enter on - it to move back up a directory, TS-DOS just beeps and says bad - filename. TS-DOS never sends anything to the server, so the error - is coming from TS-DOS, not from the server. + This is a TS-DOS limitation. You CAN actually use "..", in that dl2 + will send it to TS-DOS, and TS-DOS will even display it properly in + the file listing, but if you try to select it to move back up a + directory, TS-DOS just beeps and says "bad filename". The error is not + dl2 rejectimng the command, TS-DOS rejects the filename and never tries + to send any command. However a lot of other things do work fine. Generally, for something to work, it has to be left-justified like a real filename would be. It takes some trial & error to figure out what works. - ATTR 'F' ' ' any single character + ATTR="F" + examples: 'F', ' ', any single byte - The TPDD drive has a single-character field along with every filename. - It's just a text field that the drive can use to return a a group of + A real TPDD drive has a one-byte field along with every filename. + + It's just a text field that the drive can use to return a group of matching files all together before the rest during file listings. It's not really used by any software I know of, but the field is - there, and Floppy always writes an 'F' there for every file. It doesn't - really matter or do anything. Everything still works if it's blank - for instance. But because Floppy always writes an F there, so does - every other client and emulator. + there, and when a client gives a dirent() command, it must include + the field with some value in it, and if trying to access an existing + file on disk, the value must match the value on disk. + + Floppy and TS-DOS and all other KC-85 platform tpdd client software + always writes an 'F' there, hard-coded for every file, reading or writing, + and does not display the field to the user or give any way to change it. + This essentially no-ops the field. When an emulator is serving files, usually there is no actual attribute byte stored with the file, so all emulators just fabricate an F there for every file when they give filenames to clients. - But a real drive doesn't care, and TS-DOS is not the only client - that uses TPDD drives or emulators, so here is a way to modify - that if you want. + But a real drive lets you put anything you want in that field, and actually + matches the value in a dirent() request from a client against the values + in the directory entries on the disk. All this setting does is, when the client requests a file or directory - listing, and we're sending a file name and size to the client, it uses - this instead of 'F' for the attribute byte. + listing, and we're sending a filename and filesize to the client, it uses + the specified value instead of the built-in default 'F' for the attribute byte. + + Who/what ever cares? Who knows. It's possible the Cambridge Z88 doesn't + write 'F' in the attr field the way Floppy does, and so for those machines + maybe you may need to specify ' ' or something else. + Possibly also the Brother knitting machines used the field for actual file + classification/grouping and wrote various values there. - Who/what ever cares? Who knows. + pdd.sh exposes the field and let's you see it and write whatever + you want in it and search whatever you want in it. - DOT_OFFSET 0 to 25, but really only 0, 6, or 8 are useful. + DOT_OFFSET=6 + valid values: 0 to 24, but really only 0, 6, or 8 are useful. - Just another way to do the same thing as the -w or -0 options. + Just another way to do the same thing as the -w or -0 options, except + you can specify any value from 0-24. - Default behavior is dot_offset=6 , which makes 6.2 space-padded filenames. - The -w option for WP-2 does the same thing but 8.2 - The -0 option does dot_offset=0 plus disables all other forms of name editing or filtering. + Default behavior is DOT_OFFSET=6, aka "Floppy/TS-DOS mode". + This makes 6.2 space-padded filenames. - This variable would let you set some arbitrary value anywhere in the 0-25 - size of the field (24 plus just beyond to make another version of 0 basically) - There is no reason to do that. + The -w option is DOT_OFFSET=8, aka "WP-2 mode". + This makes 8.2 space-padded filenames. - It's possibly useful as just as an alternative way to set 0, 6, or 8 though, - which would essentially change the default behavior instead of having to - specify all the special options you want every time. + The -0 option does DOT_OFFSET=0, aka "raw mode". + This makes filenames truncated to 24 bytes but otherwise not modified. + There is no special meaning or handling of dots or any other characters. - OPR_MODE 0 or 1, default is 1 + It's possibly useful as just as an alternative way to set 0 or 8 as + default instead of having to include the -0 or -w commandline options + every time. + + OPERATION_MODE=1 + valid values: 0 or 1 A TPDD1 / FB-100 drive has two main modes of operation called - Operation-mode and FDC-mode (actually the software manual calls - them Operation mode and FDC-Emulation mode) + Operation-mode and FDC-mode. These are basically two entire different sets of commands to use the drive. - The drive is usually in Operation mode, but a few things do use FDC mode. - You can switch the starting default state by setting this to 0. - - BAUD 9600 or 19200 19200 is default - - If for whatever reason you want to force the server to run at 9600 - instead of 19200, this how you can. Some drives like Purple Computing - are actually hard wired to run at 9600. This would let you emulate - one of those, perhaps for testing software against it. - -CLIENT_TTY - - The device name of the tty that the client is connected to. - Examples: ttyUSB0, ttyS6 + A real drive has dip switches that let you set either mode to be the + default mode at power-on. + + This setting lets you emulate the dip switch settings for starting up + in FDC-mode instead of Operation-mode. + + Default is OPERATION_MODE=1, meaning dl2 starts up in Operation-mode. + This matches the TPDD1 default dip switch settings, the TPDD2 (tpdd2 has + no other mode), and the hard-wired solder-blob settings on FB-100 and + Purple-Computing drives. + + Regardless which mode is the default at start-up, the drive (and dl2) still + responds to the commands to switch between modes, and clients like + TS-DOS always send a little set/reset sequence to ensure the drive gets + put into Operation-mode before it tries to use Operation-mode commands. + So mostly it almost doesn't matter which mode is the power-on default. + + BAUD=19200 + valid values: + 75 model-t supports, drive does not + 110 model-t supports, drive does not + 150 drive supports, model-t does not + 300 + 600 + 1200 + 2400 + 4800 + 9600 default Brother FB-100, KnitKing FDD19, Purple Computing D103 + 19200 default TANDY 26-3808, TANDY 26-3814 + 38400 + 76800 drive supports, host platform usually does not + + Set the baud rate. Same as the "-s" commandline flag. + Default is 19200. + + The TPDD1 has dip switches to support several different baud rates from + 75 to 76800. The default setting from the factory and in the user manual + is 19200. + + The Brother FB-100 and re-badges like Purple Computing D103 have a set of + solder-jumper pads instead of dip switches. They support all the same baud + rates as TPDD1 but require soldering the jumper pads or installing a dip + switch to change the baud rate. From the factory they are all hard-wired + to run at 9600 baud with a solder blob on one of the dip switch positions. + + The TPDD2 has no dip switches or other means to set a different baud rate, + and only runs at 19200 baud. + + Most tpdd client software just tries to run at 19200. + + Although the drive has a dip switch setting for 76800 baud, that is a weird + rate that a typical linux/bsd machine today does not natively support. + But some platforms like linux on Sparc do (apparently) support this baud + rate. So the option is there in dl2 but isn't available unless you compiled + on a system that supports it. + + CLIENT_TTY=ttyUSB0 + examples: ttyUSB0, ttyS2, cu.usbserial-AL03RAXP + + The device name of the tty that the client is connected to, + with or without the leading "/dev/". + Same as the "-d" commandline flag. + + For osx/macos always use the "/dev/cu.*" interface and not the + "/dev/tty.*" interface to the same device. The cu.* interface + provides exclusive access to the port and avoids data corruption. + + DISABLE_DME=false + valid values: 0, false, off, no, 1, true, on, yes + case-insensitive, 0 = all values <1 = false, 1 = all values >0 = true + + Enable/Disable TS-DOS directory support. + Default is enabled, use this to disable. + + TS-DOS/Desk-Link directory mode extensions technically violate the tpdd spec, + which could theoretically break some legitimate tpdd client software that + is playing by the rules, and just happens to do the same thing as what TS-DOS + does for a "DME request". + + The only things likely to break would be things that switch between + Operation-mode and FDC-mode on TPDD1, and the only things found so far that + use FDC-mode at all are Sardine and the installer for Disk-Power, and both + of those are working on dl2 without needing this option. + + MAGIC_FILES=true + valid values: 0, false, off, no, 1, true, on, yes + case-insensitive, 0 = all values <1 = false, 1 = all values >0 = true + + Enable/Disable the "magic files" feature. (default enabled) + In case you specifically do not want the special filenames like "DOS100.CO" + to be recognized and work by magic even if there is no file by that name. + + TILDES=true + valid values: 0, false, off, no, 1, true, on, yes + case-insensitive, 0 = all values <1 = false, 1 = all values >0 = true + + When long local filenames are truncated down to the tpdd limits, + distinguish truncated filenames from naturally short filenames + by ending the truncated names with '~'. + + The basename and extension parts of the filenames are evaluated + individually. + areallylongname.ba -> "areal~.ba" + a.bas -> "a .b~" + areallylongname.basic -> "areal~.b~" + + Basename and ext also end at the first and last dots if there are + multiple dots, and in that case, if the part before the first dot is + short enough to fit, but there was more filename removed after a dot, + then a tilde is added to indicate that even though the name looks short + the original name was actually longer. + a.ba -> "a .ba" + a.long.name.ba -> "a~ .ba" + + By default the basename.ext limits are 6.2, compatible with Floppy, + TS-DOS, and all other KC-85 platform tpdd client software. + + The "-w" option limits are 8.2, compatible with the TANDY WP-2 firmware. + + The "-0" option is "raw mode" and allows using the entire 24 bytes + in the filename field like a real drive, with no special meaning to dots + or any other character. There is no "extension". The local filename is + simply copied verbatim up to it's first 24 bytes (or 23 if a ~ is needed). + a.twenty-four.bytes.name -> "a.twenty-four.bytes.name" + this.name.is.over.24.bytes.long -> "this.name.is.over.24.by~" + +XATTR_NAME=user.pdd.attr + + If compiled with -DUSE_XATTR, then this environment variable can be used + to specify a different xattr name than the default "user.pdd.attr" for + storing and retrieving the ATTR byte for each file. From efdd60865e4df615679498853d939ef8ce713984 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 16 Feb 2024 18:27:38 -0500 Subject: [PATCH 170/206] more work on xattr --- Makefile | 4 +- README.md | 67 +++++++++++++-------------------- constants.h | 6 +++ dl.c | 104 +++++++++++++++++++++++++++++++-------------------- ref/xattr.md | 57 ++++++++++++++++++++++++++++ 5 files changed, 156 insertions(+), 82 deletions(-) create mode 100644 ref/xattr.md diff --git a/Makefile b/Makefile index 37459b6..7be9677 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ DEFAULT_DOTPOS := 6 # default 6.2 filenames compatible with Floppy/TS-DOS/etc DEFAULT_TILDES := true DEFAULT_ATTR := 0x46 # default attribute 'F' compatible with Floppy/TS-DOS/etc. RAW_ATTR := 0x20 # attr for "raw" mode, 0x00, 0x20, 0x46 are all plausible. -XATTR_NAME := user.pdd.attr +XATTR_NAME := pdd.attr DEFAULT_DME_ROOT_LABEL := "0: " DEFAULT_DME_PARENT_LABEL := "^ " @@ -124,7 +124,7 @@ endif all: $(NAME) $(NAME): $(SOURCES) $(HEADERS) - $(CC) $(CFLAGS) $(DEFINES) $(SOURCES) $(LDLIBS) -o $(@) + $(CC) $(CFLAGS) $(CXXFLAGS) $(DEFINES) $(SOURCES) $(LDLIBS) -o $(@) install: $(NAME) $(CLIENT_LOADERS) $(LIB_OTHER) $(DOCS) mkdir -p $(APP_LIB_DIR) diff --git a/README.md b/README.md index 21977b5..af816e1 100644 --- a/README.md +++ b/README.md @@ -14,38 +14,44 @@ $ sudo make uninstall ## Manual ``` $ dl -h -DeskLink2 v2.1.001-2-gabcc469 +DeskLink2 v2.1.001-11-g361baa4 -usage: dl [options] [tty_device] [share_path] +Usage: dl [options] [tty_device] [share_path] -options: +Options Description (default setting) -0 Raw mode - no filename munging, attr = ' ' - -a c Attribute - attribute byte used for all files (F) + -a c Attribute - default attr byte used when no xattr (F) -b file Bootstrap - send loader file to client -d tty Serial device connected to the client (ttyUSB*) - -n Disable support for TS-DOS directories (enabled) + -n Disable TS-DOS directories (enabled) -g Getty mode - run as daemon -h Print this help -i file Disk image filename for raw sector access -l List loader files and show bootstrap help - -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (2) + -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (1) -p dir Path - /path/to/dir with files to be served (./) - -r RTS/CTS hardware flow control + -r RTS/CTS hardware flow control (false) -s # Speed - serial port baud rate (19200) - -u Uppercase all filenames + -u Uppercase all filenames (false) -v Verbosity - more v's = more verbose - -w WP-2 mode - 8.2 filenames + -w WP-2 mode - 8.2 filenames for TANDY WP-2 -z # Milliseconds per byte for bootstrap (8) The 1st non-option argument is another way to specify the tty device. The 2nd non-option argument is another way to specify the share path. +TPDD2 mode accepts a 2nd share path for bank 1. +TPDD2 mode does not support TS-DOS dfirectories. - dl - dl -vv -p ~/Downloads/REX/ROMS - dl -v -w ttyUSB1 ~/Documents/wp2files +Examples: + $ dl + $ dl ttyUSB1 + $ dl -vu -p ~/Downloads/REX + $ dl -w /dev/cu.usbserial-AB0MQNN1 ~/Documents/wp2 + $ dl -m2 -p /tmp/bank0 -p /tmp/bank1 $ ``` + ``` $ dl -l DeskLink2 v2.1.001-2-gabcc469 @@ -186,36 +192,17 @@ Tested on Linux, [Mac](ref/mac.md), [FreeBSD](ref/freebsd.md), and [Windows](ref * Fake sector 0 based on the files in the current share path so that if a client tries to read the FCB table directly it works. * Fake entire disk image in ram based on current share path files. Option to save the image as long as we're there. -### testing -* Real attribute byte handling. - Saves & retrieves the actual attr value submitted by the client in an - xattr instead of just hard-coding attr=F. - - Enable by building with `-DUSE_XATTR` - `$ make clean all CFLAGS+=" -DUSE_XATTR" && sudo make install` +## New Feature Testing +Real attr byte handling. - Test with [pdd.sh](https://github.com/bkw777/pdd.sh) +Store & retrieve the actual attr value submitted by the client in an xattr instead of just hard-coding attr=F. -``` -bkw@fw:~/tmp/pdd$ echo test >0.do -bkw@fw:~/tmp/pdd$ pdd "save 0.do 1.do;save 0.do 2.do A;save 0.do 3.do Q;ls" -1) /dev/ttyUSB0 -2) /dev/ttyUSB2 -Which serial port is the TPDD drive on (1-2) ? 2 -Saving TPDD:1.do (F) -[########################################] 100% (5/5 bytes) -Saving TPDD:2.do (A) -[########################################] 100% (5/5 bytes) -Saving TPDD:3.do (Q) -[########################################] 100% (5/5 bytes) --------- Directory Listing -------- -1.do | F | 5 -2.do | A | 5 -3.do | Q | 5 -------------------------------------- -102400 bytes free -bkw@fw:~/tmp/pdd$ -``` +Enable by building with `-DUSE_XATTR` +`$ make clean all CXXFLAGS=-DUSE_XATTR && sudo make install` + +Test with [pdd.sh](https://github.com/bkw777/pdd.sh) + +[more info & example](ref/xattr.md) ## History / Credits [DeskLink for ms-dos](https://ftp.whtech.com/club100/com/dl-arc.exe.gz) 1987 Travelling Software diff --git a/constants.h b/constants.h index 8aebf34..62904ed 100644 --- a/constants.h +++ b/constants.h @@ -247,4 +247,10 @@ static const uint16_t FDC_LOGICAL_SECTOR_SIZE[7] = {64,80,128,256,512,1024,1280} #define OPR_CMD_SYNC 0x5A #define FDC_CMD_EOL 0x0D +// compatibility modes +#define DOT_FLOPPY 6 +#define DOT_WP2 8 +#define MODE_OPR 1 +#define MODE_FDC 0 + #endif // PDD_CONSTANTS_H diff --git a/dl.c b/dl.c index 268b762..92c0ac8 100644 --- a/dl.c +++ b/dl.c @@ -53,26 +53,27 @@ MA 02111, USA. #if defined(__APPLE__) || defined(__NetBSD__) || defined(OpenBSD) #include -//#if defined(USE_XATTR) -//#include -//#endif #endif #if defined(__FreeBSD__) #include -//#if defined(USE_XATTR) -//#include -//#endif #endif #if defined(__linux__) #include +#endif + #if defined(USE_XATTR) #include +#if defined(__APPLE__) +#define XATTR_PREFIX "" +#define XATTR_SUFFIX "#S" +#else +#define XATTR_PREFIX "user." +#define XATTR_SUFFIX "" #endif #endif - /*** config **************************************************/ @@ -113,10 +114,9 @@ MA 02111, USA. #ifndef RAW_ATTR #define RAW_ATTR 0x20 // space #endif -#if defined(USE_XATTR) -#ifndef XATTR_NAME -#define XATTR_NAME "user.pdd.attr" -#endif + +#if defined(USE_XATTR) && !defined(XATTR_NAME) +#define XATTR_NAME "pdd.attr" #endif #define DEFAULT_TPDD1_IMG_SUFFIX ".pdd1" @@ -131,11 +131,11 @@ MA 02111, USA. #endif #ifndef DEFAULT_DOTPOS -#define DEFAULT_DOTPOS 6 +#define DEFAULT_DOTPOS DOT_FLOPPY #endif #ifndef DEFAULT_OPERATION_MODE -#define DEFAULT_OPERATION_MODE 1 +#define DEFAULT_OPERATION_MODE MODE_OPR #endif #ifndef DEFAULT_TILDES @@ -217,7 +217,7 @@ char dme_dir_label[3] = TSDOS_DIR_LABEL; char default_attr = DEFAULT_ATTR; #if defined(USE_XATTR) -char* xattr_name = XATTR_NAME; +char* xattr_name = XATTR_PREFIX XATTR_NAME XATTR_SUFFIX; #endif bool enable_magic_files = true; @@ -474,9 +474,10 @@ void find_ttys (char* f) { dbg(0,"\n"); for (i=1;i<=nttys;i++) dbg(0,"%d) %s\n",i,ttys[i]); i=0; char a[6]={0}; - dbg(0,"Which serial port is the TPDD client on (1-%d) ? ",nttys); + dbg(0,"Which serial port is the TPDD client on (1-%d or q) ? ",nttys); if (fgets(a,sizeof(a),stdin)) i=atoi(a); if (i<1 || i>nttys) i=0; + dbg(0,"\n"); if (a[0]=='q'||a[0]=='Q') break; } @@ -530,7 +531,11 @@ void client_tty_vmt(int m,int t) { int open_client_tty () { dbg(3,"%s()\n",__func__); - if (!client_tty_name[0]) { show_main_help() ;dbg(0,"Error: No serial device specified\n(searched: /dev/%s*)\n",TTY_PREFIX); return 1; } + if (!client_tty_name[0]) { + show_main_help(); + dbg(0,"Error: No serial device specified\n(searched: /dev/%s*)\n",TTY_PREFIX); + return 1; + } dbg(0,"Opening \"%s\" ... ",client_tty_name); // open with O_NONBLOCK to avoid hang if client not ready, then unset later. @@ -750,7 +755,7 @@ int open_disk_image (int p, int m) { void req_fdc_set_mode(int m) { dbg(2,"%s(%d)\n",__func__,m); operation_mode = m; // no response, just switch modes - if (m==1) dbg(2,"Switched to \"Operation\" mode\n"); + if (m==MODE_OPR) dbg(2,"Switched to \"Operation\" mode\n"); } // disk state @@ -1095,9 +1100,9 @@ FILE_ENTRY* make_file_entry(char* namep, uint8_t attr, uint16_t len, char flags) char en[3] = {0}; f.client_fname[dot_offset]='.'; - if (dot_offset==6 && flags&FE_FLAGS_DIR) { + if (dot_offset==DOT_FLOPPY && flags&FE_FLAGS_DIR) { // TS-DOS directories - if (!strcmp(f.local_fname,"..")) memcpy (f.client_fname, dme_parent_label, 6); + if (!strcmp(f.local_fname,"..")) memcpy (f.client_fname, dme_parent_label, DOT_FLOPPY); en[0] = dme_dir_label[0]; en[1] = dme_dir_label[1]; f.len = 0; @@ -1370,9 +1375,9 @@ void update_dme_cwd() { if (cwd[i]=='/') break; if (upcase && cwd[i]>='a' && cwd[i]<='z') cwd[i]=cwd[i]-32; } - snprintf(dme_cwd,7,"%-6.6s",cwd+1+i); + snprintf(dme_cwd,DOT_FLOPPY+1,"%-*.*s",DOT_FLOPPY,DOT_FLOPPY,cwd+1+i); } else { - memcpy(dme_cwd,dme_root_label,6); + memcpy(dme_cwd,dme_root_label,DOT_FLOPPY); } } @@ -1384,7 +1389,7 @@ void ret_dme_cwd() { gb[0] = RET_STD[0]; gb[1] = 0x0B; // not RET_STD[1] because TS-DOS DME violates the spec gb[2] = 0x00; // don't know why this byte is 0 - memcpy(gb+3,dme_cwd,6); // 6 bytes 3-8 display in top-right corner + memcpy(gb+3,dme_cwd,DOT_FLOPPY); // 6 bytes 3-8 display in top-right corner gb[9] = 0x00; // gb[9]='.'; // remaining contents don't matter but length does gb[10] = 0x00; // gb[10]=dme_dir_label[0]; gb[11] = 0x00; // gb[11]=dme_dir_label[1]; @@ -1445,7 +1450,7 @@ void req_fdc() { if (dme>1) { ret_dme_cwd(); } else { - operation_mode = 0; + operation_mode = MODE_FDC; dbg(2,"Switched to \"FDC\" mode\n"); // no response to client, just switch modes } } @@ -2290,8 +2295,8 @@ void show_config () { dbg(2,"operation_mode : %d\n",operation_mode); dbg(2,"baud : %d\n",baud); dbg(0,"dme_disabled : %s\n",dme_disabled?"true":"false"); - dbg(2,"dme_root_label : \"%-6.6s\"\n",dme_root_label); - dbg(2,"dme_parent_label: \"%-6.6s\"\n",dme_parent_label); + dbg(2,"dme_root_label : \"%-*.*s\"\n",DOT_FLOPPY,DOT_FLOPPY,dme_root_label); + dbg(2,"dme_parent_label: \"%-*.*s\"\n",DOT_FLOPPY,DOT_FLOPPY,dme_parent_label); dbg(2,"dme_dir_label : \"%-2.2s\"\n",dme_dir_label); dbg(0,"magic_files : %s\n",enable_magic_files?"enabled":"disabled"); dbg(2,"default_attr : '%c' (0x%1$02X)\n",default_attr); @@ -2306,7 +2311,11 @@ void show_main_help() { "\n" "Options Description (default setting)\n" " -0 Raw mode - no filename munging, attr = ' '\n" +#if defined(USE_XATTR) + " -a c Attribute - default attr byte used when no xattr (%2$c)\n" +#else " -a c Attribute - attribute byte used for all files (%2$c)\n" +#endif " -b file Bootstrap - send loader file to client\n" " -d tty Serial device connected to the client (%4$s*)\n" " -n Disable TS-DOS directories (enabled)\n" @@ -2364,8 +2373,8 @@ int main(int argc, char** argv) { if (getenv("DOT_OFFSET")) dot_offset = atoi(getenv("DOT_OFFSET")); if (getenv("CLIENT_TTY")) strcpy(client_tty_name,getenv("CLIENT_TTY")); if (getenv("BAUD")) baud = atoi(getenv("BAUD")); - if (getenv("ROOT_LABEL")) snprintf(dme_root_label,7,"%-6.6s",getenv("ROOT_LABEL")); - if (getenv("PARENT_LABEL")) snprintf(dme_parent_label,7,"%-6.6s",getenv("PARENT_LABEL")); + if (getenv("ROOT_LABEL")) snprintf(dme_root_label,DOT_FLOPPY+1,"%-*.*s",DOT_FLOPPY,DOT_FLOPPY,getenv("ROOT_LABEL")); + if (getenv("PARENT_LABEL")) snprintf(dme_parent_label,DOT_FLOPPY+1,"%-*.*s",DOT_FLOPPY,DOT_FLOPPY,getenv("PARENT_LABEL")); if (getenv("DIR_LABEL")) snprintf(dme_dir_label,3,"%-2.2s",getenv("DIR_LABEL")); if (getenv("ATTR")) default_attr = *getenv("ATTR"); #if defined(USE_XATTR) @@ -2397,7 +2406,7 @@ int main(int argc, char** argv) { case 's': baud = atoi(optarg); break; case 'u': upcase = true; break; case 'v': debug++; break; - case 'w': dot_offset = 8; break; + case 'w': dot_offset = DOT_WP2; break; case 'z': BASIC_byte_us=atoi(optarg)*1000; break; case '^': x = true; break; case ':': dbg(0,"\"-%c\" requires a value\n",optopt); break; @@ -2430,12 +2439,6 @@ int main(int argc, char** argv) { if (x) { show_config(); return 0; } dbg(0, "Serial Device: %s\n",client_tty_name); - if (model==2) { - dbg(0,"Bank 0 Dir : %s\n",share_path[0]); - dbg(0,"Bank 1 Dir : %s\n",share_path[1]); - } else { - dbg(0,"Working Dir : %s\n",cwd); - } if ((i=open_client_tty())) return i; @@ -2443,14 +2446,32 @@ int main(int argc, char** argv) { if (bootstrap_fname[0]) return (bootstrap(bootstrap_fname)); // further setup that's only needed for tpdd - if (check_disk_image()) return 1; // may change model based on disk image size or name + if (check_disk_image()) return 1; // this may set model=1 or 2 based on disk image size or name + if (model==2) { load_rom(TPDD2_ROM); dme_disabled=true; } + if (dot_offset!=DOT_FLOPPY) { enable_magic_files=false; dme_disabled=true; } // only applies to UR2/TSLOAD + if (!dme_disabled) memcpy(dme_cwd,dme_root_label,DOT_FLOPPY); + + dbg(0,"\n"); + dbg(2,"Emulating %s\n",(model==2)?"TANDY 26-3814 (TPDD2)":"Brother FB-100 (TPDD1)"); - if (model==2) {load_rom(TPDD2_ROM); dme_disabled=true; } - dbg(2,"TS-DOS directories %s\n",(dme_disabled)?"disabled":"enabled"); dbg(2,"TPDD2 banks %s\n",(model==2)?"enabled":"disabled"); - if (!dme_disabled) memcpy(dme_cwd,dme_root_label,6); - if (dot_offset!=6) enable_magic_files=false; // only applies to UR2/TSLOAD + dbg(2,"TS-DOS directories %s\n",(dme_disabled)?"disabled":"enabled"); dbg(2,"Magic files for UR-II/TSLOAD %s\n",(enable_magic_files)?"enabled":"disabled"); + if (model==2) dbg(0,"Bank 0 Dir: %s\nBank 1 Dir: %s\n",share_path[0],share_path[1]); + dbg(2,"Filenames: "); + switch (dot_offset) { + case DOT_FLOPPY: dbg(2,"%d.2 space-padded \"Model T\" compatible\n",dot_offset); break; + case DOT_WP2: dbg(2,"%d.2 space-padded WP-2 compatible\n",dot_offset); break; + case 0: dbg(2,"%d byte unformatted\n",TPDD_FILENAME_LEN); break; + default: dbg(2,"%d.2 space-padded\n",dot_offset); break; + } + if (tildes) dbg(2,"Truncated filenames end in \"~\"\n"); +#if defined(USE_XATTR) + dbg(2,"Attribute: Stored in xattr \"%s\", default \"%c\" when absent",xattr_name,default_attr); +#else + dbg(2,"Attribute: \"%c\"",default_attr); +#endif + dbg(2,"\n"); // initialize the file list file_list_init(); @@ -2462,7 +2483,10 @@ int main(int argc, char** argv) { if (debug) update_file_list(NO_RET); // process commands forever - while (1) if (operation_mode) get_opr_cmd(); else get_fdc_cmd(); + while (1) switch (operation_mode) { + case MODE_FDC: get_fdc_cmd(); break; + default: get_opr_cmd(); break; + } // file_list_cleanup() return 0; diff --git a/ref/xattr.md b/ref/xattr.md new file mode 100644 index 0000000..9c1829e --- /dev/null +++ b/ref/xattr.md @@ -0,0 +1,57 @@ +## Storing the ATTR byte from the tpdd client in local xattr + +Example: + Create a small text file `T0.DO` + Save `T0.DO` as `T1.DO` without specifying any attr + Save `T0.DO` as `T2.DO` with attr `X` + Save `T0.DO` as `T3.DO` with attr `d` + Save `T0.DO` as `T4.DO` with attr `' '` + List the directory + +``` +$ printf 'test\r\n' >T0.DO +$ pdd ttyUSB1 "save T0.DO T1.DO;save T0.DO T2.DO X;save T0.DO T3.DO d;save T0.DO T4.DO ' ';ls" +Saving TPDD:T1.DO (F) +[########################################] 100% (6/6 bytes) +Saving TPDD:T2.DO (X) +[########################################] 100% (6/6 bytes) +Saving TPDD:T3.DO (d) +[########################################] 100% (6/6 bytes) +Saving TPDD:T4.DO ( ) +[########################################] 100% (6/6 bytes) +-------- Directory Listing -------- +T1.DO | F | 6 +T2.DO | X | 6 +T3.DO | d | 6 +T4.DO | | 6 +------------------------------------- +102400 bytes free +$ +``` + +The directory listing shows that the attr values were written to "disk" and then read back out. + +You can do the same process with a real drive. + +As with a real drive, both the filename and attr must match in order to access a file. +For instance to delete one of these files, you have to specify the attr the same way: +`$ pdd "rm T3.DO d"` + + +## misc references +Interesting but not used because it's c++ not plain c. +https://github.com/edenzik/pxattr + + +https://eclecticlight.co/2019/10/01/how-to-preserve-metadata-stored-in-a-custom-extended-attribute/ +on macos suffix xattr name with "#S" + +on linux prefix xattr name with "user." + +Base xattr name is "pdd.attr" + +On macos it becomes "pdd.attr#S" +On linux it becomes "user.pdd.attr" + +On macos might need to be changed to something like "org.dl2.attr#S" +Ideally would like to keep the name generic and not tied to dl2 by name, so that other tpdd server and client software could all use the same xattr name. From ce491cebd917ddbd06a4394c44a740452e115f5e Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 16 Feb 2024 18:31:42 -0500 Subject: [PATCH 171/206] readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index af816e1..0fe826f 100644 --- a/README.md +++ b/README.md @@ -202,6 +202,7 @@ Enable by building with `-DUSE_XATTR` Test with [pdd.sh](https://github.com/bkw777/pdd.sh) +Only tested on Linux. Probably doesn't work on mac or freebsd yet. [more info & example](ref/xattr.md) ## History / Credits From 749d5d70a842c656f978c9bf7c1bb95909657d0d Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 16 Feb 2024 19:32:47 -0500 Subject: [PATCH 172/206] xattr interface wrappers --- dl.c | 63 +++++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 48 insertions(+), 15 deletions(-) diff --git a/dl.c b/dl.c index 92c0ac8..cc3a928 100644 --- a/dl.c +++ b/dl.c @@ -288,6 +288,48 @@ void dbg_p(const int v, unsigned char* b) { dbg_b(v,b+2,b[1]); } +/** xattr **************************************************/ +// ugly but papers over the platform differences here +// and avoids a bunch of #ifdefs everywhere else + +ssize_t dl_getxattr(const char* path, uint8_t* value) { +#if defined(USE_XATTR) +#if defined(__APPLE__) +#else + return getxattr(path, xattr_name, value, 1); +#endif +#else + return 0; +#endif +} + +int dl_fgetxattr(int fd, uint8_t* value) { +#if defined(USE_XATTR) +#if defined(__APPLE__) +#else + return fgetxattr(fd, xattr_name, value, 1); +#endif +#else + return 0; +#endif +} + +int dl_fsetxattr(int fd, const uint8_t* value) { +#if defined(USE_XATTR) +#if defined(__APPLE__) +#else + return fsetxattr(fd, xattr_name, value, 1, 0); +#endif +#else + return 0; +#endif +} + +/***********************************************************/ + + + + // string-to-bool bool stobool (const char* s) { return ( @@ -1147,7 +1189,6 @@ int read_next_dirent(DIR* dir,int m) { struct stat st; struct dirent* dire; int flags; - uint8_t atr; if (dir == NULL) { dire=NULL; @@ -1179,11 +1220,9 @@ int read_next_dirent(DIR* dir,int m) { // REXCPM violates the tpdd protocol to load a large CP/M disk image. if (st.st_size>UINT16_MAX) st.st_size=0; - atr = default_attr; -#if defined(USE_XATTR) - getxattr(dire->d_name, xattr_name, &atr, 1); -#endif - add_file(make_file_entry(dire->d_name, atr, st.st_size, flags)); + uint8_t attr = default_attr; + dl_getxattr(dire->d_name, &attr); + add_file(make_file_entry(dire->d_name, attr, st.st_size, flags)); break; } @@ -1490,9 +1529,7 @@ int req_open() { ret_std(ERR_FMT_MISMATCH); else { f_open_mode=omode; -#if defined(USE_XATTR) - fsetxattr(o_file_h, xattr_name, &cur_file->attr, 1, 0); -#endif + dl_fsetxattr(o_file_h, &cur_file->attr); dbg(1,"Open for write: \"%s\" (%c)\n",cur_file->local_fname,cur_file->attr); ret_std(ERR_SUCCESS); } @@ -1513,9 +1550,7 @@ int req_open() { ret_std(ERR_FMT_MISMATCH); else { f_open_mode=omode; -#if defined(USE_XATTR) - fsetxattr(o_file_h, xattr_name, &cur_file->attr, 1, 0); -#endif + dl_fsetxattr(o_file_h, &cur_file->attr); dbg(1,"Open for append: \"%s\" (%c)\n",cur_file->local_fname,cur_file->attr); ret_std(ERR_SUCCESS); } @@ -1555,9 +1590,7 @@ int req_open() { ret_std(ERR_NO_FILE); else { f_open_mode = omode; -#if defined(USE_XATTR) - fgetxattr(o_file_h, xattr_name, &cur_file->attr, 1); -#endif + dl_fgetxattr(o_file_h, &cur_file->attr); dbg(1,"Open for read: \"%s\" (%c)\n",cur_file->local_fname,cur_file->attr); ret_std(ERR_SUCCESS); } From 41934abc885260fccb02ff0179dd9001ec2671db Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sat, 17 Feb 2024 09:33:45 -0500 Subject: [PATCH 173/206] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0fe826f..f22a70f 100644 --- a/README.md +++ b/README.md @@ -193,16 +193,16 @@ Tested on Linux, [Mac](ref/mac.md), [FreeBSD](ref/freebsd.md), and [Windows](ref * Fake entire disk image in ram based on current share path files. Option to save the image as long as we're there. ## New Feature Testing -Real attr byte handling. - -Store & retrieve the actual attr value submitted by the client in an xattr instead of just hard-coding attr=F. +Real attr handling. +Read/write/search/match the attr byte from the client in an xattr metadata field on each local file. Enable by building with `-DUSE_XATTR` `$ make clean all CXXFLAGS=-DUSE_XATTR && sudo make install` Test with [pdd.sh](https://github.com/bkw777/pdd.sh) -Only tested on Linux. Probably doesn't work on mac or freebsd yet. +Only enabled on Linux. Macos & Freebsd are coming. +For any platform that isn't supported, or on any filesystem that doesn't have extended attributes, or any new local files that weren't created by a tpdd client, it will just transparently work the old way. Attr will be 'F' or whatever the "-a" commandline flag or the ATTR environment variable says. [more info & example](ref/xattr.md) ## History / Credits From 81537cce4c146d32a89c291f114491b3eae2a220 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sat, 17 Feb 2024 09:35:00 -0500 Subject: [PATCH 174/206] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f22a70f..e6a41e2 100644 --- a/README.md +++ b/README.md @@ -199,11 +199,12 @@ Read/write/search/match the attr byte from the client in an xattr metadata field Enable by building with `-DUSE_XATTR` `$ make clean all CXXFLAGS=-DUSE_XATTR && sudo make install` -Test with [pdd.sh](https://github.com/bkw777/pdd.sh) +Test with [pdd.sh](https://github.com/bkw777/pdd.sh) + +[more info & example](ref/xattr.md) Only enabled on Linux. Macos & Freebsd are coming. For any platform that isn't supported, or on any filesystem that doesn't have extended attributes, or any new local files that weren't created by a tpdd client, it will just transparently work the old way. Attr will be 'F' or whatever the "-a" commandline flag or the ATTR environment variable says. -[more info & example](ref/xattr.md) ## History / Credits [DeskLink for ms-dos](https://ftp.whtech.com/club100/com/dl-arc.exe.gz) 1987 Travelling Software From c538bf3066f3d72fc5145a86071994d965573f94 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 17 Feb 2024 10:33:41 -0500 Subject: [PATCH 175/206] rearrange xattr for apple & freebsd --- dl.c | 70 +++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 39 insertions(+), 31 deletions(-) diff --git a/dl.c b/dl.c index cc3a928..3285ca4 100644 --- a/dl.c +++ b/dl.c @@ -64,14 +64,21 @@ MA 02111, USA. #endif #if defined(USE_XATTR) -#include -#if defined(__APPLE__) -#define XATTR_PREFIX "" -#define XATTR_SUFFIX "#S" -#else -#define XATTR_PREFIX "user." -#define XATTR_SUFFIX "" -#endif +# if defined(__FreeBSD__) +# include +# else +# include +# endif +# if defined(__linux__) +# define XATTR_PREFIX "user." +# define XATTR_SUFFIX "" +# elif defined(__APPLE__) +# define XATTR_PREFIX "" +# define XATTR_SUFFIX "#S" +# else +# define XATTR_PREFIX "" +# define XATTR_SUFFIX "" +# endif #endif /*** config **************************************************/ @@ -289,39 +296,40 @@ void dbg_p(const int v, unsigned char* b) { } /** xattr **************************************************/ -// ugly but papers over the platform differences here -// and avoids a bunch of #ifdefs everywhere else -ssize_t dl_getxattr(const char* path, uint8_t* value) { +void dl_getxattr(const char* path, uint8_t* value) { #if defined(USE_XATTR) -#if defined(__APPLE__) -#else - return getxattr(path, xattr_name, value, 1); -#endif -#else - return 0; +# if defined(__linux__) + getxattr(path, xattr_name, value, 1); +# elif defined(__APPLE__) + getxattr(path, xattr_name, value, 1, 0, NULL); +# elif defined(__FreeBSD__) + extattr_get_file(path, EXTATTR_NAMESPACE_USER, xattr_name, value, 1); +# endif #endif } -int dl_fgetxattr(int fd, uint8_t* value) { +void dl_fgetxattr(int fd, uint8_t* value) { #if defined(USE_XATTR) -#if defined(__APPLE__) -#else - return fgetxattr(fd, xattr_name, value, 1); -#endif -#else - return 0; +# if defined(__linux__) + fgetxattr(fd, xattr_name, value, 1); +# elif defined(__APPLE__) + fgetxattr(fd, xattr_name, value, 1, 0, NULL); +# elif defined(__FreeBSD__) + extattr_get_fd(fd, EXTATTR_NAMESPACE_USER, xattr_name, value, 1); +# endif #endif } -int dl_fsetxattr(int fd, const uint8_t* value) { +void dl_fsetxattr(int fd, const uint8_t* value) { #if defined(USE_XATTR) -#if defined(__APPLE__) -#else - return fsetxattr(fd, xattr_name, value, 1, 0); -#endif -#else - return 0; +# if defined(__linux__) + fsetxattr(fd, xattr_name, value, 1, 0); +# elif defined(__APPLE__) + fsetxattr(fd, xattr_name, value, 1, 0, NULL); +# elif defined(__FreeBSD__) + extattr_set_fd(fd, EXTATTR_NAMESPACE_USER, xattr_name, value, 1); +# endif #endif } From ba8cd1857e6bcfa84aa5f5b9588dc8d492e164da Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 17 Feb 2024 12:22:10 -0500 Subject: [PATCH 176/206] support xattr on apple --- README.md | 2 +- dl.c | 6 ++-- ref/xattr.md | 80 +++++++++++++++++++++++++++++++++++++++------------- 3 files changed, 65 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index e6a41e2..76de5a7 100644 --- a/README.md +++ b/README.md @@ -203,7 +203,7 @@ Test with [pdd.sh](https://github.com/bkw777/pdd.sh) [more info & example](ref/xattr.md) -Only enabled on Linux. Macos & Freebsd are coming. +Tested on Linux & Mac. FreeBSD written but not tested. For any platform that isn't supported, or on any filesystem that doesn't have extended attributes, or any new local files that weren't created by a tpdd client, it will just transparently work the old way. Attr will be 'F' or whatever the "-a" commandline flag or the ATTR environment variable says. ## History / Credits diff --git a/dl.c b/dl.c index 3285ca4..b176a4e 100644 --- a/dl.c +++ b/dl.c @@ -302,7 +302,7 @@ void dl_getxattr(const char* path, uint8_t* value) { # if defined(__linux__) getxattr(path, xattr_name, value, 1); # elif defined(__APPLE__) - getxattr(path, xattr_name, value, 1, 0, NULL); + getxattr(path, xattr_name, value, 1, 0, 0); # elif defined(__FreeBSD__) extattr_get_file(path, EXTATTR_NAMESPACE_USER, xattr_name, value, 1); # endif @@ -314,7 +314,7 @@ void dl_fgetxattr(int fd, uint8_t* value) { # if defined(__linux__) fgetxattr(fd, xattr_name, value, 1); # elif defined(__APPLE__) - fgetxattr(fd, xattr_name, value, 1, 0, NULL); + fgetxattr(fd, xattr_name, value, 1, 0, 0); # elif defined(__FreeBSD__) extattr_get_fd(fd, EXTATTR_NAMESPACE_USER, xattr_name, value, 1); # endif @@ -326,7 +326,7 @@ void dl_fsetxattr(int fd, const uint8_t* value) { # if defined(__linux__) fsetxattr(fd, xattr_name, value, 1, 0); # elif defined(__APPLE__) - fsetxattr(fd, xattr_name, value, 1, 0, NULL); + fsetxattr(fd, xattr_name, value, 1, 0, 0); # elif defined(__FreeBSD__) extattr_set_fd(fd, EXTATTR_NAMESPACE_USER, xattr_name, value, 1); # endif diff --git a/ref/xattr.md b/ref/xattr.md index 9c1829e..44a8e82 100644 --- a/ref/xattr.md +++ b/ref/xattr.md @@ -1,7 +1,55 @@ ## Storing the ATTR byte from the tpdd client in local xattr -Example: - Create a small text file `T0.DO` +If compiled with -DUSE_XATTR then the ATTR field of a TPDD directory entry is stored in and retrieved from an extended attribute named "pdd.attr", instead of just hard-coded with 'F' at all times. + +On Linux the xattr name is prefixed with "user." to become "user.pdd.attr" +On Mac the xattr name is suffixed with "#S" to become "pdd.attr#S" +On FreeBSD the name is unchanged and the namespace used is EXTATTR_NAMESPACE_USER +The xattr name is not something like "com.dl2.attr" because it is intended to be generic and not tied just to dl2, so other tpdd clients and servers might use the same name and the files would be compatible across different software. + +The attr field is a single byte, and may contain any value, 0x00 to 0xFF. +The field is normally never shown to users because TRS-80 Model 100 software doesn't use the field and just hard-codes 'F' in that field behind the scenes. +And because of that, most drive emulators also ignore the field except to just hard-code the same 'F' there at all times. +But a real drive is actually recording and checking that data with every file access, and other software could use it. + +So the idea is to more accurately emulate a real drive by actually recording the attr byte supplied by the client, and actually checking it later. +If the client is creating a new file, save the given attr value as part of the local file in the fom of an xattr field. +If looking for an existing file, read the attr for each local file from the xattr, and compare with the attr given by the client along with the filename. +Only use the default attr value when the xattr doesn't exist. + +Example using [pdd.sh](https://github.com/bkw777/pdd.sh) + +First the help reference for the load and save commands. +You don't normally use the attr argument but there is one. + +``` +PDD(opr:6.2,F)> help save + + save src_filename [dest_filename] [attr] + Copy a file from local to disk +PDD(opr:6.2,F)> help load + + load src_filename [dest_filename] [attr] + Copy a file from disk to local + +PDD(opr:6.2,F)> help delete + + rm | del | delete filename [attr] + Delete filename [attr] from disk + +PDD(opr:6.2,F)> + +``` + +The parameters are simple position dependant, so in order to use the 3rd argument you have to supply the 2nd. + +Normally to save a file you only need to say "save filename" + +But if you want to override the default attr and specify an arbitrary one like X, you need to say "save filename filename X" + +So to show the attr actually being stored and retrieved: + + Create a small text local file `T0.DO` Save `T0.DO` as `T1.DO` without specifying any attr Save `T0.DO` as `T2.DO` with attr `X` Save `T0.DO` as `T3.DO` with attr `d` @@ -31,27 +79,21 @@ $ The directory listing shows that the attr values were written to "disk" and then read back out. -You can do the same process with a real drive. - As with a real drive, both the filename and attr must match in order to access a file. -For instance to delete one of these files, you have to specify the attr the same way: -`$ pdd "rm T3.DO d"` +filename "foo" with attr "a" +and +filename "foo" with attr "b" +are two different files. +For instance to load or delete one of these files that has a non-default attr, you have to specify both the filename and the attr : +`PDD(opr:6.2,F)> rm T3.DO d` ## misc references -Interesting but not used because it's c++ not plain c. +Wrapper to provide a single interface to the different platforms xattr interfaces. +Interesting but not used because it's c++ not plain c. +Maybe it can be ported to plain c. https://github.com/edenzik/pxattr +Macos info +https://eclecticlight.co/2019/10/01/how-to-preserve-metadata-stored-in-a-custom-extended-attribute/ -https://eclecticlight.co/2019/10/01/how-to-preserve-metadata-stored-in-a-custom-extended-attribute/ -on macos suffix xattr name with "#S" - -on linux prefix xattr name with "user." - -Base xattr name is "pdd.attr" - -On macos it becomes "pdd.attr#S" -On linux it becomes "user.pdd.attr" - -On macos might need to be changed to something like "org.dl2.attr#S" -Ideally would like to keep the name generic and not tied to dl2 by name, so that other tpdd server and client software could all use the same xattr name. From 14a292592e0312d023f316dcc9da63c77cc5f5c7 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 17 Feb 2024 12:45:53 -0500 Subject: [PATCH 177/206] help --- dl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dl.c b/dl.c index b176a4e..54cacbd 100644 --- a/dl.c +++ b/dl.c @@ -2213,7 +2213,7 @@ void show_bootstrap_help() { " %1$s -b TS-DOS.100\n" " %1$s -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100\n" " %1$s -vb rxcini.DO && %1$s -vu\n" - " %1$s -vun -i Sardine_American_English.pdd1\n\n" + " %1$s -vu -i Sardine_American_English.pdd1\n\n" ,args[0],app_lib_dir); } From b745a58d909bf25b77d9023de67fb5180591cab5 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 17 Feb 2024 12:47:58 -0500 Subject: [PATCH 178/206] readme --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 76de5a7..89b7609 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ $ sudo make uninstall ## Manual ``` $ dl -h -DeskLink2 v2.1.001-11-g361baa4 +DeskLink2 v2.1.001-19-g14a2925 Usage: dl [options] [tty_device] [share_path] @@ -49,20 +49,20 @@ Examples: $ dl -w /dev/cu.usbserial-AB0MQNN1 ~/Documents/wp2 $ dl -m2 -p /tmp/bank0 -p /tmp/bank1 -$ +$ ``` ``` $ dl -l -DeskLink2 v2.1.001-2-gabcc469 +DeskLink2 v2.1.001-19-g14a2925 Available support files in /usr/local/lib/dl Loader files for use with -b: ----------------------------- -TRS-80 Model 100/102 : PAKDOS.100 TINY.100 D.100 TEENY.100 DSKMGR.100 TSLOAD.100 TS-DOS.100 -TANDY Model 200 : PAKDOS.200 TEENY.200 DSKMGR.200 TSLOAD.200 TS-DOS.200 -NEC PC-8201/PC-8300 : TS-DOS.NEC TEENY.NEC -Kyotronic KC-85 : Disk_Power.K85 DSKMGR.K85 +TRS-80 Model 100/102 : DSKMGR.100 TINY.100 D.100 TEENY.100 TSLOAD.100 TS-DOS.100 PAKDOS.100 +TANDY Model 200 : TEENY.200 DSKMGR.200 TSLOAD.200 TS-DOS.200 PAKDOS.200 +NEC PC-8201/PC-8300 : TEENY.NEC TS-DOS.NEC +Kyotronic KC-85 : DSKMGR.K85 Disk_Power.K85 Olivetti M-10 : TEENY.M10 DSKMGR.M10 Disk image files for use with -i: @@ -78,9 +78,9 @@ Examples: dl -b TS-DOS.100 dl -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 dl -vb rxcini.DO && dl -vu - dl -vun -i Sardine_American_English.pdd1 + dl -vu -i Sardine_American_English.pdd1 -$ +$ ``` Several of the above settings can alternatively be supplied via environment variables, as well as a few other [hacky extra options](ref/advanced_options.txt) From 761517b3edae987faeac7d41f493df18da1e2a26 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 17 Feb 2024 13:00:43 -0500 Subject: [PATCH 179/206] docs --- README.md | 10 +--------- ref/xattr.md | 10 +++++++++- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 89b7609..4d7e1e5 100644 --- a/README.md +++ b/README.md @@ -193,19 +193,11 @@ Tested on Linux, [Mac](ref/mac.md), [FreeBSD](ref/freebsd.md), and [Windows](ref * Fake entire disk image in ram based on current share path files. Option to save the image as long as we're there. ## New Feature Testing -Real attr handling. -Read/write/search/match the attr byte from the client in an xattr metadata field on each local file. +[real attr handling using xattr](ref/xattr.md) Enable by building with `-DUSE_XATTR` `$ make clean all CXXFLAGS=-DUSE_XATTR && sudo make install` -Test with [pdd.sh](https://github.com/bkw777/pdd.sh) - -[more info & example](ref/xattr.md) - -Tested on Linux & Mac. FreeBSD written but not tested. -For any platform that isn't supported, or on any filesystem that doesn't have extended attributes, or any new local files that weren't created by a tpdd client, it will just transparently work the old way. Attr will be 'F' or whatever the "-a" commandline flag or the ATTR environment variable says. - ## History / Credits [DeskLink for ms-dos](https://ftp.whtech.com/club100/com/dl-arc.exe.gz) 1987 Travelling Software 1.0-1.3 [DeskLink for *nix](http://m100.bbsdev.net/) 2004 Stephen Hurd diff --git a/ref/xattr.md b/ref/xattr.md index 44a8e82..c8f011c 100644 --- a/ref/xattr.md +++ b/ref/xattr.md @@ -1,6 +1,8 @@ ## Storing the ATTR byte from the tpdd client in local xattr -If compiled with -DUSE_XATTR then the ATTR field of a TPDD directory entry is stored in and retrieved from an extended attribute named "pdd.attr", instead of just hard-coded with 'F' at all times. +If compiled with -DUSE_XATTR +`$ make clean all CXXFLAGS=-DUSE_XATTR && sudo make install` +then the ATTR field of a TPDD directory entry is stored in and retrieved from an extended attribute named "pdd.attr", instead of just hard-coded with 'F' at all times. On Linux the xattr name is prefixed with "user." to become "user.pdd.attr" On Mac the xattr name is suffixed with "#S" to become "pdd.attr#S" @@ -88,6 +90,12 @@ are two different files. For instance to load or delete one of these files that has a non-default attr, you have to specify both the filename and the attr : `PDD(opr:6.2,F)> rm T3.DO d` + +Tested on Linux & Macos. +FreeBSD written but not tested. + +For any platform that isn't supported, or on any filesystem that doesn't have extended attributes, or any new local files that weren't created by a tpdd client, it will just transparently work the old way. Attr will be 'F' or whatever the "-a" commandline flag or the ATTR environment variable says. + ## misc references Wrapper to provide a single interface to the different platforms xattr interfaces. Interesting but not used because it's c++ not plain c. From be6ed01f93c51698e9562b2cc125be41962a23c8 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 17 Feb 2024 21:58:30 -0500 Subject: [PATCH 180/206] freebsd xattr & ttys --- dl.c | 7 +++++++ ref/xattr.md | 4 +--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/dl.c b/dl.c index 54cacbd..983b57f 100644 --- a/dl.c +++ b/dl.c @@ -507,10 +507,17 @@ void find_ttys (char* f) { char** ttys = malloc(sizeof(char*)); struct dirent *files; uint16_t nttys = 0, l=strlen(f); +#if defined(__FreeBSD__) + int p = 0; +#endif dbg(2,"Searching for \"%s%s*\"\n",path,f); while ((files = readdir(dir))) { if (strncmp(files->d_name,f,l)) continue; +#if defined(__FreeBSD__) + p = strrchr(files->d_name,'.'); + if (p!=NULL) if (!strcmp(p,".init") || !strcmp(p,".lock")) continue; +#endif nttys++; ttys = realloc(ttys, (nttys+1) * sizeof(char(*))); ttys[nttys] = files->d_name; diff --git a/ref/xattr.md b/ref/xattr.md index c8f011c..848ee71 100644 --- a/ref/xattr.md +++ b/ref/xattr.md @@ -90,9 +90,7 @@ are two different files. For instance to load or delete one of these files that has a non-default attr, you have to specify both the filename and the attr : `PDD(opr:6.2,F)> rm T3.DO d` - -Tested on Linux & Macos. -FreeBSD written but not tested. +Working on Linux, Macos, & FreeBSD. For any platform that isn't supported, or on any filesystem that doesn't have extended attributes, or any new local files that weren't created by a tpdd client, it will just transparently work the old way. Attr will be 'F' or whatever the "-a" commandline flag or the ATTR environment variable says. From 94d948f494c287e14bc918e7bfff5181c9174a56 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Sat, 17 Feb 2024 22:04:39 -0500 Subject: [PATCH 181/206] freebsd ttys --- dl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dl.c b/dl.c index 983b57f..1d46ea7 100644 --- a/dl.c +++ b/dl.c @@ -508,7 +508,7 @@ void find_ttys (char* f) { struct dirent *files; uint16_t nttys = 0, l=strlen(f); #if defined(__FreeBSD__) - int p = 0; + char* p; #endif dbg(2,"Searching for \"%s%s*\"\n",path,f); From 26e70e147bc3e04be74bceeb534adbd385ca2d0e Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sat, 16 Mar 2024 21:59:12 -0400 Subject: [PATCH 182/206] Update xattr.md --- ref/xattr.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ref/xattr.md b/ref/xattr.md index 848ee71..8e027de 100644 --- a/ref/xattr.md +++ b/ref/xattr.md @@ -45,9 +45,10 @@ PDD(opr:6.2,F)> The parameters are simple position dependant, so in order to use the 3rd argument you have to supply the 2nd. -Normally to save a file you only need to say "save filename" +Normally to save a file without also renaming it along the way, you only need to say "save filename" -But if you want to override the default attr and specify an arbitrary one like X, you need to say "save filename filename X" +But if you want to override the default attr and specify an arbitrary attr like X, you need to say "save filename filename X" +or you can give "" for the destination filename so: `save filename "" X` and in that case it will use the source filename without having to type it out twice. So to show the attr actually being stored and retrieved: @@ -90,7 +91,7 @@ are two different files. For instance to load or delete one of these files that has a non-default attr, you have to specify both the filename and the attr : `PDD(opr:6.2,F)> rm T3.DO d` -Working on Linux, Macos, & FreeBSD. +This is working on Linux, Macos, & FreeBSD. For any platform that isn't supported, or on any filesystem that doesn't have extended attributes, or any new local files that weren't created by a tpdd client, it will just transparently work the old way. Attr will be 'F' or whatever the "-a" commandline flag or the ATTR environment variable says. From 4d6aa3c038f65a5a49ecd4d869c7d53b5af75940 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sat, 16 Mar 2024 22:00:23 -0400 Subject: [PATCH 183/206] Update xattr.md --- ref/xattr.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ref/xattr.md b/ref/xattr.md index 8e027de..1971586 100644 --- a/ref/xattr.md +++ b/ref/xattr.md @@ -47,8 +47,10 @@ The parameters are simple position dependant, so in order to use the 3rd argumen Normally to save a file without also renaming it along the way, you only need to say "save filename" -But if you want to override the default attr and specify an arbitrary attr like X, you need to say "save filename filename X" -or you can give "" for the destination filename so: `save filename "" X` and in that case it will use the source filename without having to type it out twice. +But if you want to override the default attr and specify an arbitrary attr like X, +you need to say "save filename filename X". +Or you can give "" for the destination filename so: `save filename "" X` +and in that case it will use the source filename without having to type it out twice. So to show the attr actually being stored and retrieved: From 8948ab6393ad4973c2b6b1dfa59c1b5e5942f77d Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Sat, 16 Mar 2024 22:01:49 -0400 Subject: [PATCH 184/206] Update xattr.md --- ref/xattr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ref/xattr.md b/ref/xattr.md index 1971586..6f326fd 100644 --- a/ref/xattr.md +++ b/ref/xattr.md @@ -48,8 +48,8 @@ The parameters are simple position dependant, so in order to use the 3rd argumen Normally to save a file without also renaming it along the way, you only need to say "save filename" But if you want to override the default attr and specify an arbitrary attr like X, -you need to say "save filename filename X". -Or you can give "" for the destination filename so: `save filename "" X` +you need to say `save filename filename X`. +Or you can give "" or '' for the destination filename so: `save filename "" X` and in that case it will use the source filename without having to type it out twice. So to show the attr actually being stored and retrieved: From 3d79919148aae69dc9b2fb8ba53d555f762f14b8 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Thu, 21 Mar 2024 22:50:12 -0400 Subject: [PATCH 185/206] Update windows.md --- ref/windows.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/ref/windows.md b/ref/windows.md index 0f91949..a0b511b 100644 --- a/ref/windows.md +++ b/ref/windows.md @@ -1,8 +1,10 @@ # Notes for Windows -## Install either Cygwin or MSYS2 +## 1 - Install either Cygwin or MSYS2 +Cygwin and MSYS2 are pretty similar systems. Pick either one. +MSYS2 is more convenient. If you don't already have any opinion, use MSYS2. -### Cygwin +### for Cygwin * Install [Cygwin](https://www.cygwin.com/) When it gets to the **Select Packages** screen, select these additional packages to install: @@ -14,7 +16,7 @@ * Repeat for: **gcc-g++**, **make**, **git** * Launch a Cygwin terminal window -### MSYS2 +### for MSYS2 * Install [MSYS2](https://www.msys2.org/) * Close the URCT window that opens after install * Launch an MSYS window @@ -24,10 +26,10 @@ * Update again: ```$ pacman -Syu``` * Install git, gcc, & make: ```$ pacman -Sy git gcc make``` -## Download, build, & install +## 2 - Download, build, & install dl2 ``` -git clone https://github.com/bkw777/dlplus.git -cd dlplus +git clone https://github.com/bkw777/dl2.git +cd dl2 make clean all && make install ``` @@ -39,7 +41,7 @@ make clean all && make install Use ```ls /dev/tty*``` to find the serial tty device after plugging in a usb-serial adapter. Then use ```ttyS4``` (for example) as the last argument on the dl command line. -* The Windows user may need to be in the Administrator group, I haven't done much testing. +* The Windows user might need to be in the Administrator group, I haven't done much testing. ## Example usage session - initialize a REXCPM Initializing a REXCPM excersizes both the bootstrap and normal file access functions. From c066ffad3f9ce7067f980134272f455884f77390 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Fri, 22 Mar 2024 16:27:16 -0400 Subject: [PATCH 186/206] Update windows.md --- ref/windows.md | 87 +++++++++++++++++++++++++++++--------------------- 1 file changed, 51 insertions(+), 36 deletions(-) diff --git a/ref/windows.md b/ref/windows.md index a0b511b..4f77a6e 100644 --- a/ref/windows.md +++ b/ref/windows.md @@ -21,32 +21,38 @@ MSYS2 is more convenient. If you don't already have any opinion, use MSYS2. * Close the URCT window that opens after install * Launch an MSYS window Start -> MSYS2 -> MSYS2 MSYS -* Update the installed packages: ```$ pacman -Syu``` +* Update the installed packages: `$ pacman -Syu` * If the window closed, launch new MSYS window -* Update again: ```$ pacman -Syu``` -* Install git, gcc, & make: ```$ pacman -Sy git gcc make``` +* Update again: `$ pacman -Syu` +* Install git, gcc, & make: `$ pacman -Sy git gcc make` ## 2 - Download, build, & install dl2 ``` -git clone https://github.com/bkw777/dl2.git -cd dl2 -make clean all && make install +$ git clone https://github.com/bkw777/dl2.git +$ cd dl2 +$ make clean all && make install ``` ## Platform notes -* Getty/daemon mode is #ifdef'd out at compile-time on Windows. No getty option. +* Getty/daemon mode is #ifdef'd out at compile-time on Windows, so there is no -g getty option. * Serial tty devices are named like ttyS# -Use ```ls /dev/tty*``` to find the serial tty device after plugging in a usb-serial adapter. -Then use ```ttyS4``` (for example) as the last argument on the dl command line. +Use `ls /dev/tty*` to find the serial tty device after plugging in a usb-serial adapter. +Then use `ttyS4` (for example) as the last argument on the dl command line. +(current versions of dl2 should automatically find the tty device in most cases, so you should not need to put any ttyS# on the command line unless you have multiple serial devices and want to specify the right one instead of having to select it from a list interactively) -* The Windows user might need to be in the Administrator group, I haven't done much testing. +* The Windows user might need to be in the Administrator group, I haven't done much testing of dl2 on Windows. + +--- ## Example usage session - initialize a REXCPM -Initializing a REXCPM excersizes both the bootstrap and normal file access functions. -In addition to the packages above, install the "unzip" package, or download and unzip the the files from Windows and skip the download & unzip steps shown here. -You want to get the latest versions from the REXCPM documentation page anyway instead of the exact versions shown below. + +Consult the [REXCPM docs](http://bitchin100.com/wiki/index.php?title=REXCPM) to understand all the commands and actions below. +This is just an example to show using dl2 on Windows, not a full explaination of REXCPM installation or usage. + +In addition to the packages above where you installed git and gcc etc, also install the "unzip" package, or download and unzip the the files from Windows and skip the download & unzip steps shown here. +You want to get the latest versions of any files from the REXCPM docs anyway, not paste the exact versions shown below. Start with a cold-reset of the Model 100: SHIFT+CTRL+BREAK+RESET (this erases all RAM, including all files) @@ -107,32 +113,41 @@ bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX $ ``` +'''(Current versions of dl2 should automatically figure out the tty device as long as there is only one, and interactively ask you to select from a list if it detects more than one possible. You can probably skip the parts about the tty device here and just omit the ttyS# from the dl command lines.)''' * Identify the serial port tty device ``` bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX -$ ls /dev/tty* -/dev/tty /dev/ttyS6 +$ ls /dev/ttyS* +/dev/ttyS4 ``` +In my case, my usb-serial device is ttyS4 at the moment. You may get something else. +You may even see multiple matches, even if you only have one usb-serial device connected. +One of my laptops has some internal component that shows up as COM4 and ttyS4, and when I connect a usb-serial adapter or arduino programmer etc, it shows up as COM5 or higher -> ttyS5 or higher. + +* Run dl, specifying the tty device determined above + +Overview of the sequence of events about to follow: + +The initial command below, `dl -vb rxcini.DO ttyS4 && dl -vu ttyS4` is two consecutive commands. +First `dl -vb rxcini.DO ttyS4` uses the bootstrap function `-b` to send `rxcini.DO` to the 100 and start executing it, +As soon as rxcini is sent, the next command `dl -vu ttyS4` starts providing TPDD file access to the current directory, with uppercase filename conversion `-u`. -* Run dl, specifying ttyS6 for the tty device -The command line is two consecutive commands with different arguments. -First ```dl -vb rxcini.DO ttyS6``` uses the bootstrap function to send rxcini.DO to the 100 and run it, -As soon as the previous command is done sending rxcini.DO, the next command ```dl -vu ttyS6``` immediately starts providing normal TPDD file access, with uppercase filename conversion. +rxcini itself and all the later steps all use TPDD to load files from the pc. -rxcini.DO while it is running will use the TPDD to load the REXCPM firmware image, -and then RXCMGR uses TPDD to load the TS-DOS option rom image, -and then you use TS-DOS to copy CPMUPD.CO to the 100, -and then CPMUPD.CO uses TPDD to load the CP/M disk image. +While `rxcini.DO` is running it will use TPDD to load the REXCPM firmware image `RXC_12.BR`, +and then RXCMGR uses TPDD to load the TS-DOS option rom image `TSD100.BX`, +and then you manually use TS-DOS (which uses TPDD) to copy `CPMUPD.CO` to the 100, +and then `CPMUPD.CO` uses TPDD to load the CP/M disk image `Cpm210.bk` or `Cpm410.bk`. ``` bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX -$ dl -vb rxcini.DO ttyS6 && dl -vu ttyS6 +$ dl -vb rxcini.DO ttyS4 && dl -vu ttyS4 DeskLink+ v2.0.000-16-g9d2a488 Loading: "rxcini.DO" -Serial Device: /dev/ttyS6 +Serial Device: /dev/ttyS4 Working Dir : /cygdrive/c/Users/bkw/Documents/REX -Opening "/dev/ttyS6" ... OK +Opening "/dev/ttyS4" ... OK Bootstrap: Installing "rxcini.DO" Prepare BASIC to receive: @@ -245,9 +260,9 @@ DONE Re-run "dl" (without -b this time) to run the TPDD server. DeskLink+ v2.0.000-16-g9d2a488 -Serial Device: /dev/ttyS6 +Serial Device: /dev/ttyS4 Working Dir : /cygdrive/c/Users/bkw/Documents/REX -Opening "/dev/ttyS6" ... OK +Opening "/dev/ttyS4" ... OK ------------------------------------------------------------------------------- "ANLYST.BX" ANLYST.BX "CHECKS.TX" checksums.txt @@ -298,7 +313,7 @@ Opening "/dev/ttyS6" ... OK ------------------------------------------------------------------------------- ``` -Here I typed ```RXC_12``` at the filename prompt in rxcini +Here I typed `RXC_12` at the filename prompt in rxcini ``` Open for read: "RXC_12.BR" @@ -328,12 +343,12 @@ Open for read: "RXC_12.BR" ------------------------------------------------------------------------------- ``` -After rxcini completed: -- Typed ```CALL 63012``` in BASIC to install RXCMGR from the REXCPM +After rxcini completed, I: +- Typed `CALL 63012` in BASIC to install RXCMGR from the REXCPM - Exited BASIC and launched RXCMGR from the main menu - Pressed TAB to switch to the ROM screen in RXCMGR - Pressed F2 for Load -- Entered ```TSD100``` +- Typed `TSD100` - Pressed Enter on the new TS-DOS entry to install the TS-DOS option rom (which also launches it) ``` @@ -389,7 +404,7 @@ Open for read: "TSD100.BX" ``` Now TS-DOS option rom is installed. -Next, use TS-DOS to copy CPMUPD.CO from "disk" to the 100. +Next, use TS-DOS to copy `CPMUPD.CO` to the 100. ``` Open for read: "CPMUPD.CO" @@ -445,9 +460,9 @@ Open for read: "CPMUPD.CO" ``` - Exited TS-DOS -- Entered BASIC and did ```CLEAR0,60000``` to make room for CPMUPD to run +- Entered BASIC and typed `CLEAR0,60000` to make room for CPMUPD to run - Launched CPMUPD from the main menu -- Entered ```CPM410.BK``` at the filename prompt in CPMUPD because my REXCPM has a 4MB chip. +- Entered `CPM410.BK` at the filename prompt in CPMUPD because my REXCPM has a 4MB chip. ``` Open for read: "Cpm410.bk" @@ -458,6 +473,6 @@ bkw@win10pro_bkw /cygdrive/c/Users/bkw/Documents/REX $ ``` -Press Ctrl+C on the pc to quit dlplus. +Press Ctrl+C on the pc to quit dl2. REXCPM is now fully installed. From 5f49a074b56566d5ab2c03817ab1c99f45c8ffcf Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Fri, 22 Mar 2024 16:41:35 -0400 Subject: [PATCH 187/206] Update windows.md --- ref/windows.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ref/windows.md b/ref/windows.md index 4f77a6e..0c8bf09 100644 --- a/ref/windows.md +++ b/ref/windows.md @@ -49,7 +49,8 @@ Then use `ttyS4` (for example) as the last argument on the dl command line. ## Example usage session - initialize a REXCPM Consult the [REXCPM docs](http://bitchin100.com/wiki/index.php?title=REXCPM) to understand all the commands and actions below. -This is just an example to show using dl2 on Windows, not a full explaination of REXCPM installation or usage. +This is just an example to show using dl2 on Windows, not a full explaination of REXCPM installation or usage. +See also: https://github.com/bkw777/dl2/blob/master/ref/REXCPM.md In addition to the packages above where you installed git and gcc etc, also install the "unzip" package, or download and unzip the the files from Windows and skip the download & unzip steps shown here. You want to get the latest versions of any files from the REXCPM docs anyway, not paste the exact versions shown below. From e4936fd76364cbdb710d544ee053510eac3da105 Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Thu, 25 Jul 2024 18:42:35 -0400 Subject: [PATCH 188/206] Update README.md --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 4d7e1e5..80ac44d 100644 --- a/README.md +++ b/README.md @@ -182,6 +182,14 @@ All KC-85 platform machines are supported including TRS-80 Model 100, TANDY 102 It's simple and doesn't handle all situations or do anything fancy like relocating, but it handles the common case and serves as a reference and starting point for making a custom loader. See [co2ba](co2ba.md) +Example using co2ba as part of bootstrapping a REX Classic: +``` +$ wget https://www.bitchin100.com/wiki/images/3/38/R49_M100T102_260_rebuild.zip +$ unzip R49_M100T102_260_rebuild.zip +$ co2ba rf149.co call >rf149.do +$ dl -vb rf149.do && dl -vu +``` + ## OS Compatibility Tested on Linux, [Mac](ref/mac.md), [FreeBSD](ref/freebsd.md), and [Windows](ref/windows.md). From 81a9991570ed24167acb15d41f663314de6ec1c8 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 23 Jan 2025 10:58:32 -0500 Subject: [PATCH 189/206] reorg xattr, client compat profiles --- Makefile | 104 ++++++---- constants.h | 16 +- dir_list.c | 13 +- dir_list.h | 5 +- dl.c | 541 +++++++++++++++++++++++++++++----------------------- xattr.c | 64 +++++++ xattr.h | 22 +++ 7 files changed, 476 insertions(+), 289 deletions(-) create mode 100644 xattr.c create mode 100644 xattr.h diff --git a/Makefile b/Makefile index 7be9677..86fa573 100644 --- a/Makefile +++ b/Makefile @@ -10,22 +10,25 @@ APP_NAME := DeskLink2 APP_LIB_DIR := $(PREFIX)/lib/$(NAME) APP_DOC_DIR := $(PREFIX)/share/doc/$(NAME) APP_VERSION := $(shell git describe --long 2>&-) -#FB100_ROM := Brother_FB-100.rom # no use yet -TPDD2_ROM := TANDY_26-3814.rom -DEFAULT_BASIC_BYTE_MS := 8 # ms per byte in bootstrap -DEFAULT_MODEL := 1 # 1=tpdd1 2=tpdd2 (TS-DOS directory support requires tpdd1) -DEFAULT_OPERATION_MODE := 1 # 0=FDC-mode 1=Operation-mode -DEFAULT_BAUD := 19200 -DEFAULT_RTSCTS := false -DEFAULT_UPCASE := false -DEFAULT_DOTPOS := 6 # default 6.2 filenames compatible with Floppy/TS-DOS/etc. -DEFAULT_TILDES := true -DEFAULT_ATTR := 0x46 # default attribute 'F' compatible with Floppy/TS-DOS/etc. -RAW_ATTR := 0x20 # attr for "raw" mode, 0x00, 0x20, 0x46 are all plausible. -XATTR_NAME := pdd.attr -DEFAULT_DME_ROOT_LABEL := "0: " -DEFAULT_DME_PARENT_LABEL := "^ " +# optional configurables +#FB100_ROM := Brother_FB-100.rom # exists but not used +TPDD2_ROM := TANDY_26-3814.rom +#DEFAULT_BASIC_BYTE_MS := 8 # ms per byte in bootstrap +#DEFAULT_MODEL := 1 # 1=tpdd1 2=tpdd2 (TS-DOS directory support requires tpdd1) +#DEFAULT_OPERATION_MODE := 1 # 0=FDC-mode 1=Operation-mode +#DEFAULT_BAUD := 19200 +#DEFAULT_RTSCTS := false +#DEFAULT_UPCASE := false +#DEFAULT_PROFILE := "k85" # k85 = Floppy/TS-DOS/etc - 6.2, dme, magic files +#DEFAULT_BASELEN := 6 # default 6.2 filenames compatible with Floppy/TS-DOS/etc. +#DEFAULT_EXTLEN := 2 +#DEFAULT_ATTR := 0x46 # default attribute 'F' compatible with Floppy/TS-DOS/etc. +#RAW_ATTR := 0x20 # attr for "raw" mode, drive firmware fills unused fields with 0x20 +#DEFAULT_TILDES := true +#XATTR_NAME := pdd.attr +#TSDOS_ROOT_LABEL := "0: " +#TSDOS_PARENT_LABEL := "^ " CLIENT_LOADERS := \ clients/teeny/TINY.100 \ @@ -71,8 +74,8 @@ CLIENT_DOCS := \ # clients/power-dos/powr-d.txt DOCS := dl.do README.txt README.md LICENSE $(CLIENT_DOCS) -SOURCES := dl.c dir_list.c -HEADERS := dir_list.h constants.h +SOURCES := dl.c dir_list.c xattr.c +HEADERS := constants.h dir_list.h xattr.h ifeq ($(OS),Darwin) TTY_PREFIX := cu.usbserial @@ -93,29 +96,64 @@ ifeq ($(OS),Windows_NT) CFLAGS += -D_WIN endif -DEFINES := \ +DEFS = \ -DAPP_NAME=\"$(APP_NAME)\" \ -DAPP_VERSION=\"$(APP_VERSION)\" \ -DAPP_LIB_DIR=\"$(APP_LIB_DIR)\" \ -DTTY_PREFIX=\"$(TTY_PREFIX)\" \ - -DDEFAULT_DME_ROOT_LABEL=\"$(DEFAULT_DME_ROOT_LABEL)\" \ - -DDEFAULT_DME_PARENT_LABEL=\"$(DEFAULT_DME_PARENT_LABEL)\" \ -DTPDD2_ROM=\"$(TPDD2_ROM)\" \ - -DDEFAULT_BASIC_BYTE_MS=$(DEFAULT_BASIC_BYTE_MS) \ - -DDEFAULT_MODEL=$(DEFAULT_MODEL) \ - -DDEFAULT_OPERATION_MODE=$(DEFAULT_OPERATION_MODE) \ - -DDEFAULT_BAUD=$(DEFAULT_BAUD) \ - -DDEFAULT_RTSCTS=$(DEFAULT_RTSCTS) \ - -DDEFAULT_UPCASE=$(DEFAULT_UPCASE) \ - -DDEFAULT_DOTPOS=$(DEFAULT_DOTPOS) \ - -DDEFAULT_TILDES=$(DEFAULT_TILDES) \ - -DDEFAULT_ATTR=$(DEFAULT_ATTR) \ - -DRAW_ATTR=$(RAW_ATTR) \ - -DXATTR_NAME=\"$(XATTR_NAME)\" \ -# -DUSE_XATTR \ + -DUSE_XATTR \ # -DPRINT_8BIT \ # -DNADSBOX_EXTENSIONS \ +ifdef TSDOS_ROOT_LABEL + DEFS += -DTSDOS_ROOT_LABEL=\"$(TSDOS_ROOT_LABEL)\" +endif +ifdef TSDOS_PARENT_LABEL + DEFS += -DTSDOS_PARENT_LABEL=\"$(TSDOS_PARENT_LABEL)\" +endif +ifdef DEFAULT_BASIC_BYTE_MS + DEFS += -DDEFAULT_BASIC_BYTE_MS=$(DEFAULT_BASIC_BYTE_MS) +endif +ifdef DEFAULT_MODEL + DEFS += -DDEFAULT_MODEL=$(DEFAULT_MODEL) +endif +ifdef DEFAULT_OPERATION_MODE + DEFS += -DDEFAULT_OPERATION_MODE=$(DEFAULT_OPERATION_MODE) +endif +ifdef DEFAULT_BAUD + DEFS += -DDEFAULT_BAUD=$(DEFAULT_BAUD) +endif +ifdef DEFAULT_RTSCTS + DEFS += -DDEFAULT_RTSCTS=$(DEFAULT_RTSCTS) +endif +ifdef DEFAULT_UPCASE + DEFS += -DDEFAULT_UPCASE=$(DEFAULT_UPCASE) +endif +ifdef DEFAULT_PROFILE + DEFS += -DDEFAULT_PROFILE=$(DEFAULT_PROFILE) +endif +ifdef DEFAULT_BASELEN + DEFS += -DDEFAULT_BASELEN=$(DEFAULT_BASELEN) +endif +ifdef DEFAULT_EXTLEN + DEFS += -DDEFAULT_EXTLEN=$(DEFAULT_EXTLEN) +endif +ifdef DEFAULT_ATTR + DEFS += -DDEFAULT_ATTR=$(DEFAULT_ATTR) +endif +ifdef RAW_ATTR + DEFS += -DRAW_ATTR=$(RAW_ATTR) +endif +ifdef DEFAULT_TILDES + DEFS += -DDEFAULT_TILDES=$(DEFAULT_TILDES) +endif +ifdef XATTR_NAME + DEFS += -DXATTR_NAME=\"$(XATTR_NAME)\" +endif + +DEFINES := $(DEFS) + ifdef DEBUG CFLAGS += -g endif @@ -123,7 +161,7 @@ endif .PHONY: all all: $(NAME) -$(NAME): $(SOURCES) $(HEADERS) +$(NAME): Makefile $(SOURCES) $(HEADERS) $(CC) $(CFLAGS) $(CXXFLAGS) $(DEFINES) $(SOURCES) $(LDLIBS) -o $(@) install: $(NAME) $(CLIENT_LOADERS) $(LIB_OTHER) $(DOCS) diff --git a/constants.h b/constants.h index 62904ed..4e3d22f 100644 --- a/constants.h +++ b/constants.h @@ -247,10 +247,20 @@ static const uint16_t FDC_LOGICAL_SECTOR_SIZE[7] = {64,80,128,256,512,1024,1280} #define OPR_CMD_SYNC 0x5A #define FDC_CMD_EOL 0x0D -// compatibility modes -#define DOT_FLOPPY 6 -#define DOT_WP2 8 +// drive operating modes #define MODE_OPR 1 #define MODE_FDC 0 +#ifdef RAW_ATTR +#define ATTR_RAW RAW_ATTR +#else +#define ATTR_RAW 0x20 // space - drive firmware fills unused with 0x20 +#endif + +#ifdef DEFAULT_ATTR +#define ATTR_DEF DEFAULT_ATTR +#else +#define ATTR_DEF 0x46 // F - almost all clients on all platforms hardcode F +#endif + #endif // PDD_CONSTANTS_H diff --git a/dir_list.c b/dir_list.c index 1b75d13..a91d600 100644 --- a/dir_list.c +++ b/dir_list.c @@ -23,6 +23,7 @@ MA 02111, USA. #include #include #include + #include "dir_list.h" static uint16_t allocated; @@ -33,9 +34,9 @@ static FILE_ENTRY* tblp = 0; static FILE_ENTRY* current_record(void); int file_list_init() { - tblp = malloc(sizeof(FILE_ENTRY)*FEQ); + tblp = malloc(sizeof(FILE_ENTRY)*DIRENTS); if (!tblp) return -1; - allocated = FEQ; + allocated = DIRENTS; ndx = 0; cur = 0; return 0; @@ -53,14 +54,14 @@ int file_list_cleanup() { void file_list_clear_all() { cur = ndx = 0; } - + int add_file(FILE_ENTRY* fe) { - /* allocate FEQ more records if out of space */ + /* allocate DIRENTS more records if out of space */ if (ndx >= allocated) { /* resize the array */ - tblp = realloc(tblp, (allocated+FEQ)*sizeof(FILE_ENTRY)); + tblp = realloc(tblp, (allocated+DIRENTS)*sizeof(FILE_ENTRY)); if (!tblp) return -1; - allocated += FEQ; + allocated += DIRENTS; } /* reference the entry */ diff --git a/dir_list.h b/dir_list.h index 40e0a6e..99451ec 100644 --- a/dir_list.h +++ b/dir_list.h @@ -24,10 +24,7 @@ MA 02111, USA. #include #include "constants.h" -#define FEQ DIRENTS // number of FILE_ENTRYs to malloc for at a time - -typedef struct -{ +typedef struct { char client_fname[TPDD_FILENAME_LEN+1]; char local_fname[LOCAL_FILENAME_MAX+1]; uint8_t attr; diff --git a/dl.c b/dl.c index 1d46ea7..7d1f4a4 100644 --- a/dl.c +++ b/dl.c @@ -48,42 +48,20 @@ MA 02111, USA. #include #include -#include "constants.h" -#include "dir_list.h" - -#if defined(__APPLE__) || defined(__NetBSD__) || defined(OpenBSD) -#include -#endif - -#if defined(__FreeBSD__) -#include -#endif - #if defined(__linux__) #include +#elif defined(__APPLE__) || defined(__NetBSD__) || defined(OpenBSD) +#include +#elif defined(__FreeBSD__) +#include #endif -#if defined(USE_XATTR) -# if defined(__FreeBSD__) -# include -# else -# include -# endif -# if defined(__linux__) -# define XATTR_PREFIX "user." -# define XATTR_SUFFIX "" -# elif defined(__APPLE__) -# define XATTR_PREFIX "" -# define XATTR_SUFFIX "#S" -# else -# define XATTR_PREFIX "" -# define XATTR_SUFFIX "" -# endif -#endif +#include "constants.h" +#include "dir_list.h" +#include "xattr.h" /*** config **************************************************/ - #ifndef APP_NAME #define APP_NAME "DeskLink2" #endif @@ -101,7 +79,7 @@ MA 02111, USA. #endif // default model emulation, 1=pdd1 2=pdd2 -// TS-DOS directories requires tpdd1 +// TS-DOS sub-directories requires tpdd1 #ifndef DEFAULT_MODEL #define DEFAULT_MODEL 1 #endif @@ -111,21 +89,6 @@ MA 02111, USA. #define DEFAULT_BASIC_BYTE_MS 8 #endif -// TODO -// * What does Cambridge Z88 do? -// * What do CP/M clients do? -// * What do the original Brother knitting machines do? -#ifndef DEFAULT_ATTR -#define DEFAULT_ATTR 0x46 // F -#endif -#ifndef RAW_ATTR -#define RAW_ATTR 0x20 // space -#endif - -#if defined(USE_XATTR) && !defined(XATTR_NAME) -#define XATTR_NAME "pdd.attr" -#endif - #define DEFAULT_TPDD1_IMG_SUFFIX ".pdd1" #define DEFAULT_TPDD2_IMG_SUFFIX ".pdd2" @@ -137,8 +100,16 @@ MA 02111, USA. #define DEFAULT_RTSCTS false #endif -#ifndef DEFAULT_DOTPOS -#define DEFAULT_DOTPOS DOT_FLOPPY +#ifndef DEFAULT_COMPAT +#define DEFAULT_COMPAT "k85" +#endif + +#ifndef DEFAULT_BASELEN +#define DEFAULT_BASELEN 6 +#endif + +#ifndef DEFAULT_EXTLEN +#define DEFAULT_EXTLEN 2 #endif #ifndef DEFAULT_OPERATION_MODE @@ -151,8 +122,6 @@ MA 02111, USA. // To mimic the original Desk-Link from Travelling Software: -//#define DEFAULT_DME_ROOT_LABEL "ROOT " -//#define DEFAULT_DME_PARENT_LABEL "PARENT" #ifndef TSDOS_ROOT_LABEL #define TSDOS_ROOT_LABEL "0: " #endif @@ -163,39 +132,73 @@ MA 02111, USA. #define TSDOS_DIR_LABEL "<>" /* - * Support for Ultimate ROM II TS-DOS & Sardine loader: see ref/ur2.txt + * "magic" files - See ref/ur2.txt + * + * Support for Ultimate ROM II, TSLOAD, & any other on-the-fly loaders. * These filenames will always be loadable "by magic" in any cd path, even - * if no such filename exists anywhere in the share tree. For any of these - * filenames, search the following paths: cwd, share root, app_lib_dir. + * if no such filename exists anywhere in the share tree. + * + * Whenever a client tries to request any of these filenames, + * after searching cwd-within-share-path as normal, then search share root, finally app_lib_dir. + * They will always be found in app_lib_dir if nowhere else. * TODO add $XDG_DATA_HOME (~/.local/share/myapp mac: ~/Library/myapp/) + * + * You may add any other files you want here if you find any other software + * that tries to load-use-discard a file from disk like UR2 uses DOS100.CO. + * + * Files must also be added to install target in Makefile. + * + * This list is checked for a match every time a requested filename is not found, + * so keep it short. + * + * TODO add run-time config list of filenames and search paths */ -const char * magic_files [] = { +const char * magic_files[] = { "DOS100.CO", "DOS200.CO", "DOSNEC.CO", "SAR100.CO", "SAR200.CO", - "SARNEC.CO", // SARNEC.CO is known to have existed, but is currently lost. - "DOSM10.CO", // The rest of these probably never existed. - "DOSK85.CO", // - "SARM10.CO", // - "SARK85.CO" // + // The rest of these files don't exist, but we are ready to serve them up if they did exist. + // Some are known to have existed, but no known copies available currently. + // Some may not have ever existed. Most filenames are guesses. + "SARNEC.CO", // Sardine for NEC is known to have existed, with this filename. + "DOSM10.CO", // or DOSOLV.CO ? Jeff Birt found TS-DOS for Olivetti M-10 listed in a catalog. + "DOSK85.CO", // or DOSKYO.CO ? may have never existed + "SARM10.CO", // or SAROLV.CO ? Since TS-DOS for M-10 existed, probably Sardine existed too. + "SARK85.CO" // or SRAKYO.CO ? may have never existed }; +// client compatibility profiles +// id, base, ext, pad, attr, dme, magic, upcase +#define CLIENT_PROFILES { \ + { "raw", 0, 0, false, ATTR_RAW, false, false, false }, \ + { "k85", 6, 2, true, ATTR_DEF, true, true, -1 }, \ + { "wp2", 8, 2, true, ATTR_DEF, false, false, -1 }, \ + { "cpm", 8, 3, false, ATTR_DEF, false, false, -1 }, \ + { "rexcpm", 6, 2, true, ATTR_DEF, false, false, true }, \ + { "z88", 12, 3, false, ATTR_DEF, false, false, -1 }, \ + { "st", 6, 2, true, ATTR_DEF, false, false, -1 } \ +} + // terminal emulation #define SSO "\033[7m" // set standout #define RSO "\033[m" // reset standout -#define D8C "\033 F" // disable 8-bit vtxx control bytes (0x80-0x9F) +#define D8C "\033 F" // disable 8-bit vt control bytes (0x80-0x9F) +// The TPDD1 rom is actually the FB-100 rom. // The roms in Brother FB-100, knitking FDD19, Purple Computing D103, and -// TANDY 26-3808 have all been dumped and compared, and are all identical. -// So the rom is from Brother not TANDY. +// TANDY 26-3808 (TPDD1) have all been dumped and compared, and are all identical. +// That means the rom came from Brother and is the FB-100 rom in all cases. +// We have this file but it's not used currently. //#ifndef FB100_ROM -//#define FB100_ROM "fb100.rom" +//#define FB100_ROM "Brother_FB-100.rom" //#endif +// The TPDD2 rom is used because the normal TPDD2 memory access functions +// can read the rom contents the same as any other memory address. #ifndef TPDD2_ROM -#define TPDD2_ROM "tpdd2.rom" +#define TPDD2_ROM "TANDY_26-3814.rom" #endif // termios VMIN & VTIME @@ -209,7 +212,6 @@ int operation_mode = DEFAULT_OPERATION_MODE; bool upcase = DEFAULT_UPCASE; bool rtscts = DEFAULT_RTSCTS; bool tildes = DEFAULT_TILDES; -unsigned dot_offset = DEFAULT_DOTPOS; // 0 for raw, 6 for KC-85, 8 for WP-2 uint8_t model = DEFAULT_MODEL; int baud = DEFAULT_BAUD; int BASIC_byte_us = DEFAULT_BASIC_BYTE_MS*1000; @@ -221,18 +223,14 @@ char share_path[2][PATH_MAX+1] = {{0},{0}}; char dme_root_label[7] = TSDOS_ROOT_LABEL; char dme_parent_label[7] = TSDOS_PARENT_LABEL; char dme_dir_label[3] = TSDOS_DIR_LABEL; -char default_attr = DEFAULT_ATTR; - -#if defined(USE_XATTR) -char* xattr_name = XATTR_PREFIX XATTR_NAME XATTR_SUFFIX; -#endif +uint8_t cfnl = TPDD_FILENAME_LEN; -bool enable_magic_files = true; #if !defined(_WIN) bool getty_mode = false; #endif char** args; + int f_open_mode = F_OPEN_NONE; int client_tty_fd = -1; int disk_img_fd = -1; @@ -241,11 +239,10 @@ int o_file_h = -1; uint8_t gb[TPDD_MSG_MAX]; char iwd[PATH_MAX+1] = {0x00}; char cwd[PATH_MAX+1] = {0x00}; -char dme_cwd[7] = DEFAULT_DME_ROOT_LABEL; +char dme_cwd[7] = TSDOS_ROOT_LABEL; char bootstrap_fname[PATH_MAX+1] = {0x00}; -uint8_t dme = 0; +uint8_t in_dme = 0; uint8_t bank = 0; -bool dme_disabled = false; uint8_t ch[2] = {0xFF}; // 0x00 is a valid Operation-mode command, so init to 0xFF uint8_t rb[SECTOR_LEN] = {0x00}; // pdd1 disk image record buffer FILE_ENTRY* cur_file; @@ -260,6 +257,30 @@ uint8_t ga[GA_LEN] = {0x00}; // gate array interface uint8_t ram[RAM_LEN] = {0x00}; // 2k ram (pdd2 disk image record buffer) uint8_t rom[ROM_LEN] = {0x00}; // 4k cpu internal mask rom +// client compatibility settings +typedef struct { + char id[33]; + uint8_t base; + uint8_t ext; + bool pad; + uint8_t attr; + bool dme; + bool magic; + int8_t upcase; +} CLIENT_PROFILE; +const CLIENT_PROFILE profiles [] = CLIENT_PROFILES ; +const CLIENT_PROFILE * cdefs = &profiles[0]; +const char* compat = profiles[0].id; +uint8_t base_len = DEFAULT_BASELEN; +uint8_t ext_len = DEFAULT_EXTLEN; +char default_attr = ATTR_DEF; +bool enable_magic_files = true; +bool pad_fn = false; +bool enable_dme = false; +bool raw = false; + +/////////////////////////////////////////////////////////////////////////////// + void show_main_help(); /* primitives and utilities */ @@ -295,49 +316,6 @@ void dbg_p(const int v, unsigned char* b) { dbg_b(v,b+2,b[1]); } -/** xattr **************************************************/ - -void dl_getxattr(const char* path, uint8_t* value) { -#if defined(USE_XATTR) -# if defined(__linux__) - getxattr(path, xattr_name, value, 1); -# elif defined(__APPLE__) - getxattr(path, xattr_name, value, 1, 0, 0); -# elif defined(__FreeBSD__) - extattr_get_file(path, EXTATTR_NAMESPACE_USER, xattr_name, value, 1); -# endif -#endif -} - -void dl_fgetxattr(int fd, uint8_t* value) { -#if defined(USE_XATTR) -# if defined(__linux__) - fgetxattr(fd, xattr_name, value, 1); -# elif defined(__APPLE__) - fgetxattr(fd, xattr_name, value, 1, 0, 0); -# elif defined(__FreeBSD__) - extattr_get_fd(fd, EXTATTR_NAMESPACE_USER, xattr_name, value, 1); -# endif -#endif -} - -void dl_fsetxattr(int fd, const uint8_t* value) { -#if defined(USE_XATTR) -# if defined(__linux__) - fsetxattr(fd, xattr_name, value, 1, 0); -# elif defined(__APPLE__) - fsetxattr(fd, xattr_name, value, 1, 0, 0); -# elif defined(__FreeBSD__) - extattr_set_fd(fd, EXTATTR_NAMESPACE_USER, xattr_name, value, 1); -# endif -#endif -} - -/***********************************************************/ - - - - // string-to-bool bool stobool (const char* s) { return ( @@ -386,6 +364,64 @@ int baud_to_stat_code (int r) { 0; } +void list_profiles () { + const int n = sizeof(profiles)/sizeof(profiles[0]); + + dbg(0,"\n"); + dbg(0,"Client Compatibility Profiles\n"); + dbg(0,"\n"); + dbg(0,"PROFILE\tBASE\tEXT\tPAD\tATTR\tTS-DOS\tMAGIC\tUP\n"); + dbg(0,"NAME\tLEN\tLEN\tFNAMES\tBYTE\tDIRS\tFILES\tCASE\n"); + dbg(0,"-------------------------------------------------------------\n"); + + for (int i=0; iid; + base_len = cdefs->base; + ext_len = cdefs->ext; + pad_fn = cdefs->pad; + default_attr = cdefs->attr; + enable_dme = cdefs->dme; + enable_magic_files = cdefs->magic; + + switch (cdefs->upcase) { + case true: upcase=true; break; + case false: upcase=false; break; + } + + raw = !strncmp(compat,"raw",3); + +} + void update_cwd () { memset(cwd,0x00,PATH_MAX); (void)!getcwd(cwd,PATH_MAX); @@ -691,17 +727,18 @@ uint8_t checksum(unsigned char* b) { char* collapse_padded_fname(char* fname) { dbg(3,"%s(\"%s\")\n",__func__,fname); - if (!dot_offset) return fname; + if (!pad_fn) return fname; + if (!base_len) return fname; int i; - for (i=dot_offset;i>1;i--) if (fname[i-1]!=' ') break; + for (i=base_len;i>1;i--) if (fname[i-1]!=' ') break; - if (fname[dot_offset+1]==dme_dir_label[0] && fname[dot_offset+2]==dme_dir_label[1]) { + if (fname[base_len+1]==dme_dir_label[0] && fname[base_len+2]==dme_dir_label[1]) { fname[i]=0x00; } else { - fname[i]=fname[dot_offset]; - fname[i+1]=fname[dot_offset+1]; - fname[i+2]=fname[dot_offset+2]; + fname[i]=fname[base_len]; + fname[i+1]=fname[base_len+1]; + fname[i+2]=fname[base_len+2]; fname[i+3]=0x00; } return fname; @@ -1137,53 +1174,61 @@ FILE_ENTRY* make_file_entry(char* namep, uint8_t attr, uint16_t len, char flags) f.len = len; f.flags = flags; - if (dot_offset && dot_offsetTPDD_FILENAME_LEN) f.client_fname[TPDD_FILENAME_LEN-1]='~'; + + } else { + + // Floppy/TS-DOS or WP-2 or other non-raw compat mode + char bn[TPDD_FILENAME_LEN] = {0}; + char en[TPDD_FILENAME_LEN] = {0}; + int ies=t, ibl=t, iel=0, bl=0; // find the positions of the first and last dots in the full local filename - int n=t, l=t; if (strchr(namep,'.')) { - n = strchr(namep,'.')-namep; // first dot - l = strrchr(namep,'.')-namep; // last dot + ibl = strchr(namep,'.')-namep; // first dot -> initial base len + ies = strrchr(namep,'.')-namep; // last dot -> initial ext start + iel = strlen(namep+ies+1); // initial ext len } - // basename - char bn[TPDD_FILENAME_LEN] = {0}; - strncpy(bn,namep,(nbase_len) f.client_fname[base_len-1]='~'; // overwrite last byte of basename with ~ // ext - char en[3] = {0}; - f.client_fname[dot_offset]='.'; - - if (dot_offset==DOT_FLOPPY && flags&FE_FLAGS_DIR) { + if (enable_dme && flags&FE_FLAGS_DIR) { // TS-DOS directories - if (!strcmp(f.local_fname,"..")) memcpy (f.client_fname, dme_parent_label, DOT_FLOPPY); - en[0] = dme_dir_label[0]; - en[1] = dme_dir_label[1]; - f.len = 0; + if (!strcmp(f.local_fname,"..")) memcpy (f.client_fname, dme_parent_label, base_len); // special case for DME + en[0] = dme_dir_label[0]; // + en[1] = dme_dir_label[1]; // + f.len = 0; // } else { // normal files - snprintf(en,3,"%2.2s",namep+l+1); + if (pad_fn) snprintf(en,ext_len+1,"%-*.*s",ext_len,ext_len,namep+ies+1); // padded ext name + else snprintf(en,ext_len+1,"%s",namep+ies+1); // unpadded ext name + if (tildes && ext_len && iel>ext_len) en[ext_len-1]='~'; // overwrite last byte of ext name with ~ } - f.client_fname[dot_offset+1]=en[0]; - if (TPDD_FILENAME_LEN-dot_offset-1) f.client_fname[dot_offset+2]=en[1]; - if (upcase) for(int i=0;i2) f.client_fname[dot_offset+2]='~'; // if ext>2 - if (l-1>bl) f.client_fname[bl basename - } + if ( pad_fn || strlen(en) ) strcat(f.client_fname,"."); // append "." to client_fname + + strcat(f.client_fname,en); // append ext name to client_fname + // Remove trailing spaces, blah... + // goofed up something since this wasn't needed before + char* p; + for (p = strrchr(f.client_fname,' ');p >= f.client_fname && *p == ' ';p--) *p = 0x00; + + if (upcase) for(int i=0;iTPDD_FILENAME_LEN) f.client_fname[TPDD_FILENAME_LEN-1]='~'; } /* match format with header in update_file_list() */ - dbg(1,"\"%s\" |%c| %s%s\n",f.client_fname,f.attr,f.local_fname,f.flags&FE_FLAGS_DIR?"/":""); + dbg(1,"\"%-*s\" |%c| %s%s\n",cfnl,f.client_fname,f.attr,f.local_fname,f.flags&FE_FLAGS_DIR?"/":""); return &f; } @@ -1223,9 +1268,9 @@ int read_next_dirent(DIR* dir,int m) { if (S_ISDIR(st.st_mode)) flags=FE_FLAGS_DIR; else if (!S_ISREG (st.st_mode)) continue; - if (flags==FE_FLAGS_DIR && dme<2) continue; + if (flags==FE_FLAGS_DIR && in_dme<2) continue; - if (dot_offset) { + if (base_len) { if (dire->d_name[0]=='.') continue; // skip "." ".." and hidden files if (strlen(dire->d_name)>LOCAL_FILENAME_MAX) continue; // skip long filenames } @@ -1255,11 +1300,11 @@ void update_file_list(int m) { dir = opendir("."); file_list_clear_all(); - int w = dot_offset+3; - if (dot_offset<1||w>TPDD_FILENAME_LEN) w = TPDD_FILENAME_LEN; + //int w = base_len+1+ext_len; + //if (base_len<1||w>TPDD_FILENAME_LEN) w = TPDD_FILENAME_LEN; dbg(1,"\nDirectory %s: %s\n",model==2?bank==1?"[Bank 1]":"[Bank 0]":"",cwd); /* match format with end of make_file_entry() */ - dbg(1,"\"%-*s\" |a| local filename\n",w,"tpdd view"); + dbg(1,"\"%-*s\" |a| local filename\n",cfnl,"tpdd view"); dbg(1,"-------------------------------------------------------------------------------\n"); if (dir_depth) add_file(make_file_entry("..", default_attr, 0, FE_FLAGS_DIR)); while (read_next_dirent(dir,m)); @@ -1280,7 +1325,7 @@ int ret_dirent(FILE_ENTRY* ep) { if (ep) { // name memset (gb + 2, ' ', TPDD_FILENAME_LEN); - if (dot_offset) for (i=0;iclient_fname[i])?ep->client_fname[i]:' '; else memcpy (gb+2,ep->client_fname,TPDD_FILENAME_LEN); @@ -1364,7 +1409,7 @@ void dirent_set_name() { ret_dirent(cur_file); } } else { - if (!strncmp(filename+dot_offset+1,dme_dir_label,2)) f = FE_FLAGS_DIR; + if (!strncmp(filename+base_len+1,dme_dir_label,2)) f = FE_FLAGS_DIR; cur_file = make_file_entry(collapse_padded_fname(filename), fileattr, 0, f); dbg(3,"New %s: \"%s\"\n",f==FE_FLAGS_DIR?"Directory":"File",cur_file->local_fname); ret_dirent(NULL); @@ -1377,7 +1422,7 @@ void dirent_get_first() { // because set-name is not required before get-first update_file_list(ALLOW_RET); ret_dirent(get_first_file()); - dme = 0; + in_dme = 0; // exit dme - see req_fdc() } // b[0] = cmd @@ -1419,7 +1464,7 @@ int req_dirent() { // contents from the display void update_dme_cwd() { dbg(2,"%s()\n",__func__); - if (dme_disabled) return; + if (!enable_dme) return; int i; update_cwd(); @@ -1429,9 +1474,9 @@ void update_dme_cwd() { if (cwd[i]=='/') break; if (upcase && cwd[i]>='a' && cwd[i]<='z') cwd[i]=cwd[i]-32; } - snprintf(dme_cwd,DOT_FLOPPY+1,"%-*.*s",DOT_FLOPPY,DOT_FLOPPY,cwd+1+i); + snprintf(dme_cwd,base_len+1,"%-*.*s",6,6,cwd+1+i); } else { - memcpy(dme_cwd,dme_root_label,DOT_FLOPPY); + memcpy(dme_cwd,dme_root_label,6); } } @@ -1439,11 +1484,11 @@ void update_dme_cwd() { // Construct a DME packet around dme_cwd and send it to the client void ret_dme_cwd() { dbg(2,"%s(\"%s\")\n",__func__,dme_cwd); - if (dme_disabled) return; + if (!enable_dme) return; gb[0] = RET_STD[0]; gb[1] = 0x0B; // not RET_STD[1] because TS-DOS DME violates the spec gb[2] = 0x00; // don't know why this byte is 0 - memcpy(gb+3,dme_cwd,DOT_FLOPPY); // 6 bytes 3-8 display in top-right corner + memcpy(gb+3,dme_cwd,6); // 6 bytes 3-8 display in top-right corner gb[9] = 0x00; // gb[9]='.'; // remaining contents don't matter but length does gb[10] = 0x00; // gb[10]=dme_dir_label[0]; gb[11] = 0x00; // gb[11]=dme_dir_label[1]; @@ -1486,22 +1531,22 @@ void req_fdc() { // Look for 2 consecutive FDC requests with trailing 0x0D. Once we see that, // don't try to read a trailing 0x0D any more to avoid reading the command // byte of a real FDC command, and respond to the 2nd and any other FDC - // requests with DME response instead of switching to FDC mode, as long as dme>1. - // dme is only set here, and only unset in dirent() - if (dme<2 && !dme_disabled) { + // requests with DME response instead of switching to FDC mode, as long as in_dme>1. + // in_dme is only set here, and only unset in dirent_get_first() + if (in_dme<2 && enable_dme) { // Try to read one more byte, and store it in ch[0] where get_fdc_req() // can pick it up in case it was NOT the trailing 0x0D of a DME request // but instead was the first byte of an actual FDC command. // Timeout fast whether there is a byte or not. - //dbg(3,"looking for dme req %d of 2\n",dme+1); + //dbg(3,"looking for dme req %d of 2\n",in_dme+1); ch[0] = 0x00; client_tty_vmt(0,1); // allow this read to time out, and fast (void)!read(client_tty_fd,ch,1); client_tty_vmt(-1,-1); // restore normal VMIN/VTIME - if (ch[0]==FDC_CMD_EOL) dbg(3,"Got dme req %d of 2\n",++dme); + if (ch[0]==FDC_CMD_EOL) dbg(3,"Got dme req %d of 2\n",++in_dme); //if (ch[0]) dbg(3,"ate a byte: %02X\n",ch[0]); } - if (dme>1) { + if (in_dme>1) { ret_dme_cwd(); } else { operation_mode = MODE_FDC; @@ -1533,7 +1578,7 @@ int req_open() { o_file_h=-1; } if (cur_file->flags&FE_FLAGS_DIR) { - if (!mkdir(cur_file->local_fname,0755)) { + if (!mkdir(cur_file->local_fname,0777)) { ret_std(ERR_SUCCESS); } else { ret_std(ERR_FMT_MISMATCH); @@ -2266,7 +2311,7 @@ int send_BASIC(char* f) { ch[0]=0x00; while(read(fd,&b,1)==1) slowbyte(b); close(fd); - if (dot_offset) { // if not in raw mode supply missing trailing EOF & EOL + if (base_len) { // if not in raw mode supply missing trailing EOF & EOL if (b!=LOCAL_EOL && b!=BASIC_EOL && b!=BASIC_EOF) slowbyte(BASIC_EOL); if (b!=BASIC_EOF) slowbyte(BASIC_EOF); } @@ -2330,7 +2375,12 @@ void show_config () { dbg(0,"rtscts : %s\n",rtscts?"true":"false"); dbg(0,"verbosity : %d\n",debug); dbg(0,"model : %d\n",model); - dbg(0,"dot_offset : %d\n",dot_offset); + dbg(0,"compat : %s\n",compat); + dbg(0,"base_len : %d\n",base_len); + dbg(0,"ext_len : %d\n",ext_len); + dbg(2,"attr : '%c' (0x%1$02X)\n",default_attr); + dbg(0,"enable_dme : %s\n",enable_dme?"true":"false"); + dbg(0,"magic_files : %s\n",enable_magic_files?"true":"false"); dbg(0,"BASIC_byte_ms : %d\n",BASIC_byte_us/1000); dbg(0,"bootstrap_fname : \"%s\"\n",bootstrap_fname); dbg(0,"app_lib_dir : \"%s\"\n",app_lib_dir); @@ -2342,12 +2392,9 @@ void show_config () { dbg(0,"share_path[1] : \"%s\"\n",share_path[1]); dbg(2,"operation_mode : %d\n",operation_mode); dbg(2,"baud : %d\n",baud); - dbg(0,"dme_disabled : %s\n",dme_disabled?"true":"false"); - dbg(2,"dme_root_label : \"%-*.*s\"\n",DOT_FLOPPY,DOT_FLOPPY,dme_root_label); - dbg(2,"dme_parent_label: \"%-*.*s\"\n",DOT_FLOPPY,DOT_FLOPPY,dme_parent_label); + dbg(2,"dme_root_label : \"%-*.*s\"\n",6,6,dme_root_label); + dbg(2,"dme_parent_label: \"%-*.*s\"\n",6,6,dme_parent_label); dbg(2,"dme_dir_label : \"%-2.2s\"\n",dme_dir_label); - dbg(0,"magic_files : %s\n",enable_magic_files?"enabled":"disabled"); - dbg(2,"default_attr : '%c' (0x%1$02X)\n",default_attr); dbg(0,"tildes : %s\n",tildes?"true":"false"); #if defined(USE_XATTR) dbg(0,"xattr_name : \"%s\"\n",xattr_name); @@ -2355,32 +2402,35 @@ void show_config () { } void show_main_help() { + set_compat(DEFAULT_COMPAT); dbg(0,"\nUsage: %1$s [options] [tty_device] [share_path]\n" "\n" "Options Description (default setting)\n" - " -0 Raw mode - no filename munging, attr = ' '\n" +// " -0 Raw mode - no filename munging, attr = ' '\n" #if defined(USE_XATTR) - " -a c Attribute - default attr byte used when no xattr (%2$c)\n" + " -a attr Attribute - default attr byte used when no xattr (%2$c)\n" #else - " -a c Attribute - attribute byte used for all files (%2$c)\n" + " -a attr Attribute - attribute byte used for all files (%2$c)\n" #endif - " -b file Bootstrap - send loader file to client\n" - " -d tty Serial device connected to the client (%4$s*)\n" - " -n Disable TS-DOS directories (enabled)\n" + " -b file Bootstrap - send loader file to client - empty for help\n" + " -c compat Client compat profile - empty for help (%9$s)\n" + " -d tty Serial device connected to the client (%4$s*)\n" + " -e bool TS-DOS Subdirectories (%10$s)\n" +// " -n Disable TS-DOS directories\n" #if !defined(_WIN) - " -g Getty mode - run as daemon\n" + " -g Getty mode - run as daemon\n" #endif - " -h Print this help\n" - " -i file Disk image filename for raw sector access\n" - " -l List loader files and show bootstrap help\n" - " -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (%5$u)\n" - " -p dir Path - /path/to/dir with files to be served (./)\n" - " -r RTS/CTS hardware flow control (%7$s)\n" - " -s # Speed - serial port baud rate (%6$d)\n" - " -u Uppercase all filenames (%8$s)\n" - " -v Verbosity - more v's = more verbose\n" - " -w WP-2 mode - 8.2 filenames for TANDY WP-2\n" - " -z # Milliseconds per byte for bootstrap (%3$d)\n" + " -h Print this help\n" + " -i file Disk image filename for raw sector access - empty for help\n" +// " -l List loader files and show bootstrap help\n" + " -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (%5$u)\n" + " -p dir Path - /path/to/dir with files to be served (./)\n" + " -r RTS/CTS hardware flow control (%7$s)\n" + " -s # Speed - serial port baud rate (%6$d)\n" + " -u Uppercase all filenames (%8$s)\n" + " -v Verbosity - more v's = more verbose\n" +// " -w WP-2 mode - 8.2 filenames for TANDY WP-2\n" + " -z # Milliseconds per byte for bootstrap (%3$d)\n" "\n" "The 1st non-option argument is another way to specify the tty device.\n" "The 2nd non-option argument is another way to specify the share path.\n" @@ -2391,18 +2441,21 @@ void show_main_help() { " $ %1$s\n" " $ %1$s ttyUSB1\n" " $ %1$s -vu -p ~/Downloads/REX\n" - " $ %1$s -w /dev/cu.usbserial-AB0MQNN1 ~/Documents/wp2\n" + " $ %1$s -c wp2 /dev/cu.usbserial-AB0MQNN1 \"~/Documents/WP-2 Files\"\n" " $ %1$s -m2 -p /tmp/bank0 -p /tmp/bank1\n" "\n" ,args[0] - ,DEFAULT_ATTR + ,ATTR_DEF ,DEFAULT_BASIC_BYTE_MS ,TTY_PREFIX ,DEFAULT_MODEL ,DEFAULT_BAUD ,DEFAULT_RTSCTS?"true":"false" ,DEFAULT_UPCASE?"true":"false" + ,DEFAULT_COMPAT + ,enable_dme?"true":"false" ); + } int main(int argc, char** argv) { @@ -2412,56 +2465,64 @@ int main(int argc, char** argv) { bool x = false; args = argv; (void)!getcwd(iwd,PATH_MAX); // remember initial working directory + set_compat(DEFAULT_COMPAT); // environment if (getenv("OPERATION_MODE")) operation_mode = atoi(getenv("OPERATION_MODE")); - if (getenv("DISABLE_DME")) dme_disabled = stobool(getenv("DISABLE_DME")); - if (getenv("MAGIC_FILES")) enable_magic_files = stobool(getenv("MAGIC_FILES")); + if (getenv("COMPAT")) set_compat(getenv("COMPAT")); + if (getenv("BASE_LEN")) base_len = atoi(getenv("BASE_LEN")); + if (getenv("EXT_LEN")) ext_len = atoi(getenv("EXT_LEN")); + if (getenv("ATTR")) default_attr = *getenv("ATTR"); + if (getenv("ENABLE_DME")) enable_dme = stobool(getenv("ENABLE_DME")); + if (getenv("ENABLE_MAGIC_FILES")) enable_magic_files = stobool(getenv("ENABLE_MAGIC_FILES")); if (getenv("TILDES")) tildes = stobool(getenv("TILDES")); - if (getenv("DOT_OFFSET")) dot_offset = atoi(getenv("DOT_OFFSET")); if (getenv("CLIENT_TTY")) strcpy(client_tty_name,getenv("CLIENT_TTY")); if (getenv("BAUD")) baud = atoi(getenv("BAUD")); - if (getenv("ROOT_LABEL")) snprintf(dme_root_label,DOT_FLOPPY+1,"%-*.*s",DOT_FLOPPY,DOT_FLOPPY,getenv("ROOT_LABEL")); - if (getenv("PARENT_LABEL")) snprintf(dme_parent_label,DOT_FLOPPY+1,"%-*.*s",DOT_FLOPPY,DOT_FLOPPY,getenv("PARENT_LABEL")); + if (getenv("ROOT_LABEL")) snprintf(dme_root_label,6+1,"%-*.*s",6,6,getenv("ROOT_LABEL")); + if (getenv("PARENT_LABEL")) snprintf(dme_parent_label,6+1,"%-*.*s",6,6,getenv("PARENT_LABEL")); if (getenv("DIR_LABEL")) snprintf(dme_dir_label,3,"%-2.2s",getenv("DIR_LABEL")); - if (getenv("ATTR")) default_attr = *getenv("ATTR"); -#if defined(USE_XATTR) +#ifdef USE_XATTR if (getenv("XATTR_NAME")) xattr_name = getenv("XATTR_NAME"); #endif // commandline #if defined(_WIN) - while ((i = getopt (argc, argv, ":0a:b:d:nhi:lm:p:rs:uvwz:^")) >=0) + while ((i = getopt (argc, argv, ":0a:b:c:d:e:hi:lm:p:rs:uvwz:~:^")) >=0) #else - while ((i = getopt (argc, argv, ":0a:b:d:nghi:lm:p:rs:uvwz:^")) >=0) + while ((i = getopt (argc, argv, ":0a:b:c:d:e:ghi:lm:p:rs:uvwz:~:^")) >=0) #endif switch (i) { - case '0': dot_offset=0; upcase=false; default_attr=RAW_ATTR; break; - case 'a': default_attr=*strndup(optarg,1); break; - case 'b': strcpy(bootstrap_fname,optarg); break; - case 'd': strcpy(client_tty_name,optarg); break; - case 'n': dme_disabled = true; break; + case '0': set_compat("raw"); break; // back compat = -c raw + case 'a': default_attr=*strndup(optarg,1); break; + case 'b': strcpy(bootstrap_fname,optarg); break; + case 'c': set_compat(optarg); break; + case 'd': strcpy(client_tty_name,optarg); break; + case 'e': enable_dme = stobool(optarg); break; + case 'n': enable_dme = false; break; // back compat = -e false #if !defined(_WIN) - case 'g': getty_mode = true; debug = 0; break; + case 'g': getty_mode = true; debug = 0; break; #endif - case 'h': show_main_help(); exit(0); break; - case 'i': strcpy(disk_img_fname,optarg); break; - case 'l': show_bootstrap_help(); exit(0); break; - case 'm': model = atoi(optarg); break; - //case 'p': (void)!chdir(optarg); break; - case 'p': add_share_path(optarg); break; - case 'r': rtscts = true; break; - case 's': baud = atoi(optarg); break; - case 'u': upcase = true; break; - case 'v': debug++; break; - case 'w': dot_offset = DOT_WP2; break; - case 'z': BASIC_byte_us=atoi(optarg)*1000; break; - case '^': x = true; break; - case ':': dbg(0,"\"-%c\" requires a value\n",optopt); break; + case 'h': show_main_help(); exit(0); break; + case 'i': strcpy(disk_img_fname,optarg); break; + case 'l': show_bootstrap_help(); exit(0); break; + case 'm': model = atoi(optarg); break; + case 'p': add_share_path(optarg); break; + case 'r': rtscts = true; break; + case 's': baud = atoi(optarg); break; + case 'u': upcase = true; break; + case '~': tildes = stobool(optarg); break; + case 'v': debug++; break; + case 'w': set_compat("wp2"); upcase=false; break; // back compat = -c wp2 + case 'z': BASIC_byte_us=atoi(optarg)*1000; break; + case '^': x = true; break; + case ':': dbg(0,"\"-%c\" requires a value\n",optopt); + if (optopt=='b'||optopt=='i') { show_bootstrap_help(); exit(0); } + if (optopt=='c') { list_profiles(); exit(0); } + break; case '?': if (isprint(optopt)) dbg(0,"Unknown option \"-%c\"\n",optopt); else dbg(0,"Unknown option character \"0x%02X\"\n",optopt); - default: show_main_help(); return 1; + default: show_main_help(); return 1; } // commandline non-option arguments @@ -2469,7 +2530,6 @@ int main(int argc, char** argv) { if (x) dbg(1,"non-option arg %u: \"%s\"\n",i,argv[optind]); switch (i++) { case 0: strcpy (client_tty_name,argv[optind]); break; // tty device - //case 1: (void)!chdir(argv[optind]); break; // share path case 1: case 2: add_share_path(argv[optind]); break; // share path(s) default: dbg(0,"Unknown argument: \"%s\"\n",argv[optind]); @@ -2495,26 +2555,21 @@ int main(int argc, char** argv) { // further setup that's only needed for tpdd if (check_disk_image()) return 1; // this may set model=1 or 2 based on disk image size or name - if (model==2) { load_rom(TPDD2_ROM); dme_disabled=true; } - if (dot_offset!=DOT_FLOPPY) { enable_magic_files=false; dme_disabled=true; } // only applies to UR2/TSLOAD - if (!dme_disabled) memcpy(dme_cwd,dme_root_label,DOT_FLOPPY); + if (model==2) { load_rom(TPDD2_ROM); enable_dme=false; } + if (enable_dme) memcpy(dme_cwd,dme_root_label,base_len); + cfnl = base_len + 1 + ext_len; // client filename length + if (base_len<1||cfnl>TPDD_FILENAME_LEN) cfnl = TPDD_FILENAME_LEN; dbg(0,"\n"); dbg(2,"Emulating %s\n",(model==2)?"TANDY 26-3814 (TPDD2)":"Brother FB-100 (TPDD1)"); dbg(2,"TPDD2 banks %s\n",(model==2)?"enabled":"disabled"); - dbg(2,"TS-DOS directories %s\n",(dme_disabled)?"disabled":"enabled"); + if (strcmp(compat,DEFAULT_COMPAT)) dbg(2,"Client Compatibility Profile: \"%s\"\n",compat); + dbg(2,"TS-DOS directories %s\n",(enable_dme)?"enabled":"disabled"); dbg(2,"Magic files for UR-II/TSLOAD %s\n",(enable_magic_files)?"enabled":"disabled"); if (model==2) dbg(0,"Bank 0 Dir: %s\nBank 1 Dir: %s\n",share_path[0],share_path[1]); - dbg(2,"Filenames: "); - switch (dot_offset) { - case DOT_FLOPPY: dbg(2,"%d.2 space-padded \"Model T\" compatible\n",dot_offset); break; - case DOT_WP2: dbg(2,"%d.2 space-padded WP-2 compatible\n",dot_offset); break; - case 0: dbg(2,"%d byte unformatted\n",TPDD_FILENAME_LEN); break; - default: dbg(2,"%d.2 space-padded\n",dot_offset); break; - } if (tildes) dbg(2,"Truncated filenames end in \"~\"\n"); -#if defined(USE_XATTR) +#ifdef USE_XATTR dbg(2,"Attribute: Stored in xattr \"%s\", default \"%c\" when absent",xattr_name,default_attr); #else dbg(2,"Attribute: \"%c\"",default_attr); diff --git a/xattr.c b/xattr.c new file mode 100644 index 0000000..6bb417e --- /dev/null +++ b/xattr.c @@ -0,0 +1,64 @@ +// Instead of hard-coding 'F' for the ATTR field at all times, +// store the actual attr byte from the client in xattr. + +// dl.c always sets attr first (default or from client) then calls one of these. +// If !USE_XATTR, then these are all no-op and attr simply left unchanged. +// If USE_XATTR, then these may or may not copy xattr to attr, or attr to xattr, +// depending on get vs set and depending on if the xattr exists. + +#ifdef USE_XATTR + +#if defined(__FreeBSD__) +#include +#else +#include +#endif + +#include "xattr.h" + +#ifndef XATTR_NAME +#define XATTR_NAME "pdd.attr" +#endif + +const char* xattr_name = +#if defined(__linux__) + "user." XATTR_NAME +#elif defined(__APPLE__) + XATTR_NAME "#S" +#else + XATTR_NAME +#endif +; + +void dl_getxattr(const char* path, uint8_t* value) { +#if defined(__linux__) + getxattr(path, xattr_name, value, 1); +#elif defined(__APPLE__) + getxattr(path, xattr_name, value, 1, 0, 0); +#elif defined(__FreeBSD__) + extattr_get_file(path, EXTATTR_NAMESPACE_USER, xattr_name, value, 1); +#endif +} + +void dl_fgetxattr(int fd, uint8_t* value) { +#if defined(__linux__) + fgetxattr(fd, xattr_name, value, 1); +#elif defined(__APPLE__) + fgetxattr(fd, xattr_name, value, 1, 0, 0); +#elif defined(__FreeBSD__) + extattr_get_fd(fd, EXTATTR_NAMESPACE_USER, xattr_name, value, 1); +#endif +} + +void dl_fsetxattr(int fd, const uint8_t* value) { +#if defined(__linux__) + fsetxattr(fd, xattr_name, value, 1, 0); +#elif defined(__APPLE__) + fsetxattr(fd, xattr_name, value, 1, 0, 0); +#elif defined(__FreeBSD__) + extattr_set_fd(fd, EXTATTR_NAMESPACE_USER, xattr_name, value, 1); +#endif +} + +#endif // USE_XATTR + diff --git a/xattr.h b/xattr.h new file mode 100644 index 0000000..015c0fd --- /dev/null +++ b/xattr.h @@ -0,0 +1,22 @@ +#ifndef PDD_XATTR_H +#define PDD_XATTR_H + +#include + +#ifdef USE_XATTR + +extern const char* xattr_name; + +void dl_getxattr (const char* path, uint8_t* value); +void dl_fgetxattr (int fd, uint8_t* value); +void dl_fsetxattr (int fd, const uint8_t* value); + +#else // USE_XATTR + +#define dl_getxattr(x,y) +#define dl_fgetxattr(x,y) +#define dl_fsetxattr(x,y) + +#endif // USE_XATTR + +#endif // PDD_XATTR_H From 7ddbf2d0f94987b1b52db7c8492bad9b14df58f7 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 23 Jan 2025 11:04:20 -0500 Subject: [PATCH 190/206] readme --- README.md | 87 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 54 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 80ac44d..a4404dc 100644 --- a/README.md +++ b/README.md @@ -14,28 +14,26 @@ $ sudo make uninstall ## Manual ``` $ dl -h -DeskLink2 v2.1.001-19-g14a2925 +DeskLink2 v2.1.001-30-ge4936fd -Usage: dl [options] [tty_device] [share_path] +Usage: ./dl [options] [tty_device] [share_path] Options Description (default setting) - -0 Raw mode - no filename munging, attr = ' ' - -a c Attribute - default attr byte used when no xattr (F) - -b file Bootstrap - send loader file to client - -d tty Serial device connected to the client (ttyUSB*) - -n Disable TS-DOS directories (enabled) - -g Getty mode - run as daemon - -h Print this help - -i file Disk image filename for raw sector access - -l List loader files and show bootstrap help - -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (1) - -p dir Path - /path/to/dir with files to be served (./) - -r RTS/CTS hardware flow control (false) - -s # Speed - serial port baud rate (19200) - -u Uppercase all filenames (false) - -v Verbosity - more v's = more verbose - -w WP-2 mode - 8.2 filenames for TANDY WP-2 - -z # Milliseconds per byte for bootstrap (8) + -a attr Attribute - default attr byte used when no xattr (F) + -b file Bootstrap - send loader file to client - empty for help + -c compat Client compat profile - empty for help (k85) + -d tty Serial device connected to the client (ttyUSB*) + -e bool TS-DOS Subdirectories (true) + -g Getty mode - run as daemon + -h Print this help + -i file Disk image filename for raw sector access - empty for help + -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (1) + -p dir Path - /path/to/dir with files to be served (./) + -r RTS/CTS hardware flow control (false) + -s # Speed - serial port baud rate (19200) + -u Uppercase all filenames (false) + -v Verbosity - more v's = more verbose + -z # Milliseconds per byte for bootstrap (8) The 1st non-option argument is another way to specify the tty device. The 2nd non-option argument is another way to specify the share path. @@ -43,26 +41,27 @@ TPDD2 mode accepts a 2nd share path for bank 1. TPDD2 mode does not support TS-DOS dfirectories. Examples: - $ dl - $ dl ttyUSB1 - $ dl -vu -p ~/Downloads/REX - $ dl -w /dev/cu.usbserial-AB0MQNN1 ~/Documents/wp2 - $ dl -m2 -p /tmp/bank0 -p /tmp/bank1 + $ ./dl + $ ./dl ttyUSB1 + $ ./dl -vu -p ~/Downloads/REX + $ ./dl -c wp2 /dev/cu.usbserial-AB0MQNN1 "~/Documents/WP-2 Files" + $ ./dl -m2 -p /tmp/bank0 -p /tmp/bank1 $ ``` ``` -$ dl -l -DeskLink2 v2.1.001-19-g14a2925 +$ ./dl -b +DeskLink2 v2.1.001-30-ge4936fd +"-b" requires a value Available support files in /usr/local/lib/dl Loader files for use with -b: ----------------------------- -TRS-80 Model 100/102 : DSKMGR.100 TINY.100 D.100 TEENY.100 TSLOAD.100 TS-DOS.100 PAKDOS.100 +TRS-80 Model 100/102 : PAKDOS.100 TINY.100 D.100 TEENY.100 DSKMGR.100 TSLOAD.100 TS-DOS.100 TANDY Model 200 : TEENY.200 DSKMGR.200 TSLOAD.200 TS-DOS.200 PAKDOS.200 -NEC PC-8201/PC-8300 : TEENY.NEC TS-DOS.NEC -Kyotronic KC-85 : DSKMGR.K85 Disk_Power.K85 +NEC PC-8201/PC-8300 : TS-DOS.NEC TEENY.NEC +Kyotronic KC-85 : Disk_Power.K85 DSKMGR.K85 Olivetti M-10 : TEENY.M10 DSKMGR.M10 Disk image files for use with -i: @@ -75,14 +74,36 @@ Filenames given without any path are searched from /usr/local/lib/dl as well as the current directory. Examples: - dl -b TS-DOS.100 - dl -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 - dl -vb rxcini.DO && dl -vu - dl -vu -i Sardine_American_English.pdd1 + ./dl -b TS-DOS.100 + ./dl -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 + ./dl -vb rxcini.DO && ./dl -vu + ./dl -vu -i Sardine_American_English.pdd1 $ ``` +``` +$ ./dl -c +DeskLink2 v2.1.001-30-ge4936fd +"-c" requires a value + +Client Compatibility Profiles + +PROFILE BASE EXT PAD ATTR TS-DOS MAGIC UP +NAME LEN LEN FNAMES BYTE DIRS FILES CASE +------------------------------------------------------------- +raw 0 0 false ' ' false false false +k85 6 2 true 'F' true true +wp2 8 2 true 'F' false false +cpm 8 3 false 'F' false false +rexcpm 6 2 true 'F' false false true +z88 12 3 false 'F' false false +st 6 2 true 'F' false false + +$ +``` + + Several of the above settings can alternatively be supplied via environment variables, as well as a few other [hacky extra options](ref/advanced_options.txt) Docs from the past versions of this program. They don't exactly match this version any more. From 1f5ccb2c46602d6e15188ef7a1b896872d2d3253 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 23 Jan 2025 11:12:23 -0500 Subject: [PATCH 191/206] readme --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a4404dc..65115cd 100644 --- a/README.md +++ b/README.md @@ -120,7 +120,7 @@ Docs from the past versions of this program. They don't exactly match this versi ### List all available TPDD client installers, and then bootstrap one of them ``` -$ dl -l +$ dl -b $ dl -vb TS-DOS.100 ``` @@ -221,11 +221,10 @@ Tested on Linux, [Mac](ref/mac.md), [FreeBSD](ref/freebsd.md), and [Windows](ref * Fake sector 0 based on the files in the current share path so that if a client tries to read the FCB table directly it works. * Fake entire disk image in ram based on current share path files. Option to save the image as long as we're there. -## New Feature Testing -[real attr handling using xattr](ref/xattr.md) +## Latest Changes +* [real attr handling using xattr](ref/xattr.md) - enabled by default now -Enable by building with `-DUSE_XATTR` -`$ make clean all CXXFLAGS=-DUSE_XATTR && sudo make install` +* client compatibility profiles ## History / Credits [DeskLink for ms-dos](https://ftp.whtech.com/club100/com/dl-arc.exe.gz) 1987 Travelling Software From 7a8ac8cce54e16fd14c6a598e16b83264e31faba Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 24 Jan 2025 19:09:39 -0500 Subject: [PATCH 192/206] '-c #.#' to set raw + arbitrary filename pattern --- Makefile | 24 +++---- README.md | 2 +- dl.c | 210 ++++++++++++++++++++++++++++++++---------------------- 3 files changed, 134 insertions(+), 102 deletions(-) diff --git a/Makefile b/Makefile index 86fa573..366cdb5 100644 --- a/Makefile +++ b/Makefile @@ -13,17 +13,14 @@ APP_VERSION := $(shell git describe --long 2>&-) # optional configurables #FB100_ROM := Brother_FB-100.rom # exists but not used -TPDD2_ROM := TANDY_26-3814.rom +#TPDD2_ROM := TANDY_26-3814.rom # exists and is used #DEFAULT_BASIC_BYTE_MS := 8 # ms per byte in bootstrap #DEFAULT_MODEL := 1 # 1=tpdd1 2=tpdd2 (TS-DOS directory support requires tpdd1) #DEFAULT_OPERATION_MODE := 1 # 0=FDC-mode 1=Operation-mode #DEFAULT_BAUD := 19200 #DEFAULT_RTSCTS := false #DEFAULT_UPCASE := false -#DEFAULT_PROFILE := "k85" # k85 = Floppy/TS-DOS/etc - 6.2, dme, magic files -#DEFAULT_BASELEN := 6 # default 6.2 filenames compatible with Floppy/TS-DOS/etc. -#DEFAULT_EXTLEN := 2 -#DEFAULT_ATTR := 0x46 # default attribute 'F' compatible with Floppy/TS-DOS/etc. +#DEFAULT_PROFILE := "k85" # k85 = Floppy/TS-DOS/etc - 6.2, padded, F, dme, magic files #RAW_ATTR := 0x20 # attr for "raw" mode, drive firmware fills unused fields with 0x20 #DEFAULT_TILDES := true #XATTR_NAME := pdd.attr @@ -101,11 +98,16 @@ DEFS = \ -DAPP_VERSION=\"$(APP_VERSION)\" \ -DAPP_LIB_DIR=\"$(APP_LIB_DIR)\" \ -DTTY_PREFIX=\"$(TTY_PREFIX)\" \ - -DTPDD2_ROM=\"$(TPDD2_ROM)\" \ -DUSE_XATTR \ # -DPRINT_8BIT \ # -DNADSBOX_EXTENSIONS \ +#ifdef TPDD1_ROM +# DEFS += -DTPDD1_ROM=\"$(TPDD1_ROM)\" +#endif +ifdef TPDD2_ROM + DEFS += -DTPDD2_ROM=\"$(TPDD2_ROM)\" +endif ifdef TSDOS_ROOT_LABEL DEFS += -DTSDOS_ROOT_LABEL=\"$(TSDOS_ROOT_LABEL)\" endif @@ -127,17 +129,11 @@ endif ifdef DEFAULT_RTSCTS DEFS += -DDEFAULT_RTSCTS=$(DEFAULT_RTSCTS) endif -ifdef DEFAULT_UPCASE - DEFS += -DDEFAULT_UPCASE=$(DEFAULT_UPCASE) -endif ifdef DEFAULT_PROFILE DEFS += -DDEFAULT_PROFILE=$(DEFAULT_PROFILE) endif -ifdef DEFAULT_BASELEN - DEFS += -DDEFAULT_BASELEN=$(DEFAULT_BASELEN) -endif -ifdef DEFAULT_EXTLEN - DEFS += -DDEFAULT_EXTLEN=$(DEFAULT_EXTLEN) +ifdef DEFAULT_UPCASE + DEFS += -DDEFAULT_UPCASE=$(DEFAULT_UPCASE) endif ifdef DEFAULT_ATTR DEFS += -DDEFAULT_ATTR=$(DEFAULT_ATTR) diff --git a/README.md b/README.md index 65115cd..776efa9 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Usage: ./dl [options] [tty_device] [share_path] Options Description (default setting) -a attr Attribute - default attr byte used when no xattr (F) -b file Bootstrap - send loader file to client - empty for help - -c compat Client compat profile - empty for help (k85) + -c profile Client compatibility profile - empty for help (k85) -d tty Serial device connected to the client (ttyUSB*) -e bool TS-DOS Subdirectories (true) -g Getty mode - run as daemon diff --git a/dl.c b/dl.c index 7d1f4a4..7de595b 100644 --- a/dl.c +++ b/dl.c @@ -100,16 +100,8 @@ MA 02111, USA. #define DEFAULT_RTSCTS false #endif -#ifndef DEFAULT_COMPAT -#define DEFAULT_COMPAT "k85" -#endif - -#ifndef DEFAULT_BASELEN -#define DEFAULT_BASELEN 6 -#endif - -#ifndef DEFAULT_EXTLEN -#define DEFAULT_EXTLEN 2 +#ifndef DEFAULT_PROFILE +#define DEFAULT_PROFILE "k85" #endif #ifndef DEFAULT_OPERATION_MODE @@ -170,15 +162,15 @@ const char * magic_files[] = { }; // client compatibility profiles -// id, base, ext, pad, attr, dme, magic, upcase +// id, base, ext, pad, attr, dme, magic, upcase #define CLIENT_PROFILES { \ - { "raw", 0, 0, false, ATTR_RAW, false, false, false }, \ - { "k85", 6, 2, true, ATTR_DEF, true, true, -1 }, \ - { "wp2", 8, 2, true, ATTR_DEF, false, false, -1 }, \ - { "cpm", 8, 3, false, ATTR_DEF, false, false, -1 }, \ - { "rexcpm", 6, 2, true, ATTR_DEF, false, false, true }, \ - { "z88", 12, 3, false, ATTR_DEF, false, false, -1 }, \ - { "st", 6, 2, true, ATTR_DEF, false, false, -1 } \ + { "raw", 0, 0, false, ATTR_RAW, false, false, false }, \ + { "k85", 6, 2, true, ATTR_DEF, true, true, -1 }, \ + { "wp2", 8, 2, true, ATTR_DEF, false, false, false }, \ + { "cpm", 8, 3, false, ATTR_DEF, false, false, false }, \ + { "rexcpm", 6, 2, true, ATTR_DEF, false, false, true }, \ + { "z88", 12, 3, false, ATTR_DEF, false, false, false }, \ + { "st", 6, 2, true, ATTR_DEF, false, false, -1 } \ } // terminal emulation @@ -269,15 +261,14 @@ typedef struct { int8_t upcase; } CLIENT_PROFILE; const CLIENT_PROFILE profiles [] = CLIENT_PROFILES ; -const CLIENT_PROFILE * cdefs = &profiles[0]; -const char* compat = profiles[0].id; -uint8_t base_len = DEFAULT_BASELEN; -uint8_t ext_len = DEFAULT_EXTLEN; -char default_attr = ATTR_DEF; -bool enable_magic_files = true; +const char* profile = profiles[0].id; +uint8_t base_len = 0; +uint8_t ext_len = 0; +char default_attr = ATTR_RAW; +bool enable_magic_files = false; bool pad_fn = false; bool enable_dme = false; -bool raw = false; +bool raw = true; /////////////////////////////////////////////////////////////////////////////// @@ -364,7 +355,7 @@ int baud_to_stat_code (int r) { 0; } -void list_profiles () { +void show_profiles_help () { const int n = sizeof(profiles)/sizeof(profiles[0]); dbg(0,"\n"); @@ -388,37 +379,76 @@ void list_profiles () { ); } dbg(0,"\n"); + dbg(0,"Example: \"-c cpm\" sets filenames to 8.3 without padding or upcase.\n"); + dbg(0,"\n"); + dbg(0,"May also use \"-c ##.##\" to set an arbitrary filename pattern\n"); + dbg(0,"with other parameters set same as \"raw\". Example: -c 16.0 \n"); + dbg(0,"\n"); + dbg(0,"Filenames are limited to 24 bytes total, the hardware limit in a real drive.\n"); + dbg(0,"\n"); } // client compatibility profile -void set_compat (const char* s) { +void load_profile (const char* s) { const int n = sizeof(profiles)/sizeof(profiles[0]); const int l = sizeof(profiles[0].id); + int i, p; + char t[4]={0}; - if (!strncasecmp(s,"list",l) + // display help + if (!s[0] + || !strncasecmp(s,"list",l) || !strncasecmp(s,"help",l) || !strncasecmp(s,"?",l) - ) { list_profiles(); return; } + ) { show_profiles_help(); return; } - for (int i=0; i0 && p<3) { + load_profile("raw"); + + memcpy(t,s,p); + i = atoi(t); + if (i>0 && i4) i = 4; + memcpy(t,s+p+1,i); + i = atoi(t); + if (i>-1 && iid; - base_len = cdefs->base; - ext_len = cdefs->ext; - pad_fn = cdefs->pad; - default_attr = cdefs->attr; - enable_dme = cdefs->dme; - enable_magic_files = cdefs->magic; + profile = profiles[i].id; + base_len = profiles[i].base; + ext_len = profiles[i].ext; + pad_fn = profiles[i].pad; + default_attr = profiles[i].attr; + enable_dme = profiles[i].dme; + enable_magic_files = profiles[i].magic; - switch (cdefs->upcase) { + // upcase has a 3rd state -1 which means no-op / don't-change + switch (profiles[i].upcase) { case true: upcase=true; break; case false: upcase=false; break; } - raw = !strncmp(compat,"raw",3); + // a couple places we want a quicker way to check for raw + raw = !strncmp(profile,"raw",3); } @@ -1191,6 +1221,8 @@ FILE_ENTRY* make_file_entry(char* namep, uint8_t attr, uint16_t len, char flags) if (strchr(namep,'.')) { ibl = strchr(namep,'.')-namep; // first dot -> initial base len ies = strrchr(namep,'.')-namep; // last dot -> initial ext start + printf("%s: last dot: %d\n",namep,ies); + printf(":: \"%s\"\n",namep+ies+1); iel = strlen(namep+ies+1); // initial ext len } @@ -2368,17 +2400,18 @@ int bootstrap(char* f) { // void show_config () { -#if !defined(_WIN) - dbg(0,"getty_mode : %s\n",getty_mode?"true":"false"); + dbg(0,"model : %d\n",model); + dbg(0,"operation_mode : %d\n",operation_mode); + dbg(0,"profile : %s\n",profile); + dbg(0,"base_len : %d\n",base_len); + dbg(0,"ext_len : %d\n",ext_len); + dbg(0,"attr : '%c' (0x%1$02X)\n",default_attr); +#if defined(USE_XATTR) + dbg(0,"xattr_name : \"%s\"\n",xattr_name); #endif dbg(0,"upcase : %s\n",upcase?"true":"false"); dbg(0,"rtscts : %s\n",rtscts?"true":"false"); dbg(0,"verbosity : %d\n",debug); - dbg(0,"model : %d\n",model); - dbg(0,"compat : %s\n",compat); - dbg(0,"base_len : %d\n",base_len); - dbg(0,"ext_len : %d\n",ext_len); - dbg(2,"attr : '%c' (0x%1$02X)\n",default_attr); dbg(0,"enable_dme : %s\n",enable_dme?"true":"false"); dbg(0,"magic_files : %s\n",enable_magic_files?"true":"false"); dbg(0,"BASIC_byte_ms : %d\n",BASIC_byte_us/1000); @@ -2386,51 +2419,52 @@ void show_config () { dbg(0,"app_lib_dir : \"%s\"\n",app_lib_dir); dbg(0,"client_tty_name : \"%s\"\n",client_tty_name); dbg(0,"disk_img_fname : \"%s\"\n",disk_img_fname); - dbg(0,"iwd : \"%s\"\n",iwd); - dbg(0,"cwd : \"%s\"\n",cwd); + dbg(2,"iwd : \"%s\"\n",iwd); + dbg(2,"cwd : \"%s\"\n",cwd); dbg(0,"share_path[0] : \"%s\"\n",share_path[0]); dbg(0,"share_path[1] : \"%s\"\n",share_path[1]); - dbg(2,"operation_mode : %d\n",operation_mode); - dbg(2,"baud : %d\n",baud); - dbg(2,"dme_root_label : \"%-*.*s\"\n",6,6,dme_root_label); - dbg(2,"dme_parent_label: \"%-*.*s\"\n",6,6,dme_parent_label); - dbg(2,"dme_dir_label : \"%-2.2s\"\n",dme_dir_label); + dbg(0,"baud : %d\n",baud); + dbg(0,"dme_root_label : \"%-*.*s\"\n",6,6,dme_root_label); + dbg(0,"dme_parent_label: \"%-*.*s\"\n",6,6,dme_parent_label); + dbg(0,"dme_dir_label : \"%-2.2s\"\n",dme_dir_label); dbg(0,"tildes : %s\n",tildes?"true":"false"); -#if defined(USE_XATTR) - dbg(0,"xattr_name : \"%s\"\n",xattr_name); +#if !defined(_WIN) + dbg(0,"getty_mode : %s\n",getty_mode?"true":"false"); #endif } void show_main_help() { - set_compat(DEFAULT_COMPAT); + load_profile(DEFAULT_PROFILE); dbg(0,"\nUsage: %1$s [options] [tty_device] [share_path]\n" "\n" - "Options Description (default setting)\n" -// " -0 Raw mode - no filename munging, attr = ' '\n" + "Options Description... (default setting)\n" +// " -0 Raw mode - no filename munging, attr = ' '\n" #if defined(USE_XATTR) - " -a attr Attribute - default attr byte used when no xattr (%2$c)\n" + " -a attr Attribute - default attr byte used when no xattr (%2$c)\n" #else - " -a attr Attribute - attribute byte used for all files (%2$c)\n" + " -a attr Attribute - attribute byte used for all files (%2$c)\n" #endif - " -b file Bootstrap - send loader file to client - empty for help\n" - " -c compat Client compat profile - empty for help (%9$s)\n" - " -d tty Serial device connected to the client (%4$s*)\n" - " -e bool TS-DOS Subdirectories (%10$s)\n" + " -b file Bootstrap - send loader file to client - empty for help\n" + " -c profile Client compatibility profile - empty for help (%9$s)\n" + " -d tty Serial device connected to the client (%4$s*)\n" + " -e bool TS-DOS Subdirectories (%10$s)\n" // " -n Disable TS-DOS directories\n" #if !defined(_WIN) - " -g Getty mode - run as daemon\n" + " -g Getty mode - run as daemon\n" #endif - " -h Print this help\n" - " -i file Disk image filename for raw sector access - empty for help\n" -// " -l List loader files and show bootstrap help\n" - " -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (%5$u)\n" - " -p dir Path - /path/to/dir with files to be served (./)\n" - " -r RTS/CTS hardware flow control (%7$s)\n" - " -s # Speed - serial port baud rate (%6$d)\n" - " -u Uppercase all filenames (%8$s)\n" - " -v Verbosity - more v's = more verbose\n" -// " -w WP-2 mode - 8.2 filenames for TANDY WP-2\n" - " -z # Milliseconds per byte for bootstrap (%3$d)\n" + " -h Print this help\n" + " -i file Disk image filename for raw sector access - empty for help\n" +// " -l List loader files and show bootstrap help\n" + " -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (%5$u)\n" + " -p dir Path - /path/to/dir with files to be served (./)\n" + " -r RTS/CTS hardware flow control (%7$s)\n" + " -s # Speed - serial port baud rate (%6$d)\n" + " -u Uppercase all filenames (%8$s)\n" + " -~ bool Truncated filenames end in '~' (%11$s)\n" + " -v Verbosity - more v's = more verbose\n" +// " -w WP-2 mode - 8.2 filenames for TANDY WP-2\n" + " -z # Milliseconds per byte for bootstrap (%3$d)\n" + " -^ # Dump config and exit\n" "\n" "The 1st non-option argument is another way to specify the tty device.\n" "The 2nd non-option argument is another way to specify the share path.\n" @@ -2452,8 +2486,9 @@ void show_main_help() { ,DEFAULT_BAUD ,DEFAULT_RTSCTS?"true":"false" ,DEFAULT_UPCASE?"true":"false" - ,DEFAULT_COMPAT + ,DEFAULT_PROFILE ,enable_dme?"true":"false" + ,tildes?"true":"false" ); } @@ -2465,13 +2500,12 @@ int main(int argc, char** argv) { bool x = false; args = argv; (void)!getcwd(iwd,PATH_MAX); // remember initial working directory - set_compat(DEFAULT_COMPAT); + load_profile(DEFAULT_PROFILE); // environment if (getenv("OPERATION_MODE")) operation_mode = atoi(getenv("OPERATION_MODE")); - if (getenv("COMPAT")) set_compat(getenv("COMPAT")); - if (getenv("BASE_LEN")) base_len = atoi(getenv("BASE_LEN")); - if (getenv("EXT_LEN")) ext_len = atoi(getenv("EXT_LEN")); + if (getenv("PROFILE")) load_profile(getenv("PROFILE")); + if (getenv("FNAMES")) load_profile(getenv("FNAMES")); if (getenv("ATTR")) default_attr = *getenv("ATTR"); if (getenv("ENABLE_DME")) enable_dme = stobool(getenv("ENABLE_DME")); if (getenv("ENABLE_MAGIC_FILES")) enable_magic_files = stobool(getenv("ENABLE_MAGIC_FILES")); @@ -2492,10 +2526,10 @@ int main(int argc, char** argv) { while ((i = getopt (argc, argv, ":0a:b:c:d:e:ghi:lm:p:rs:uvwz:~:^")) >=0) #endif switch (i) { - case '0': set_compat("raw"); break; // back compat = -c raw + case '0': load_profile("raw"); break; // back compat = -c raw case 'a': default_attr=*strndup(optarg,1); break; case 'b': strcpy(bootstrap_fname,optarg); break; - case 'c': set_compat(optarg); break; + case 'c': load_profile(optarg); break; case 'd': strcpy(client_tty_name,optarg); break; case 'e': enable_dme = stobool(optarg); break; case 'n': enable_dme = false; break; // back compat = -e false @@ -2512,12 +2546,12 @@ int main(int argc, char** argv) { case 'u': upcase = true; break; case '~': tildes = stobool(optarg); break; case 'v': debug++; break; - case 'w': set_compat("wp2"); upcase=false; break; // back compat = -c wp2 + case 'w': load_profile("wp2"); break; // back compat = -c wp2 case 'z': BASIC_byte_us=atoi(optarg)*1000; break; case '^': x = true; break; case ':': dbg(0,"\"-%c\" requires a value\n",optopt); if (optopt=='b'||optopt=='i') { show_bootstrap_help(); exit(0); } - if (optopt=='c') { list_profiles(); exit(0); } + if (optopt=='c') { show_profiles_help(); exit(0); } break; case '?': if (isprint(optopt)) dbg(0,"Unknown option \"-%c\"\n",optopt); @@ -2544,6 +2578,8 @@ int main(int argc, char** argv) { resolve_client_tty_name(); find_lib_file(bootstrap_fname); + // delay loading the default profile until after options are parsed + //if (!profile) load_profile(DEFAULT_PROFILE); if (x) { show_config(); return 0; } dbg(0, "Serial Device: %s\n",client_tty_name); @@ -2564,7 +2600,7 @@ int main(int argc, char** argv) { dbg(2,"Emulating %s\n",(model==2)?"TANDY 26-3814 (TPDD2)":"Brother FB-100 (TPDD1)"); dbg(2,"TPDD2 banks %s\n",(model==2)?"enabled":"disabled"); - if (strcmp(compat,DEFAULT_COMPAT)) dbg(2,"Client Compatibility Profile: \"%s\"\n",compat); + if (strcmp(profile,DEFAULT_PROFILE)) dbg(2,"Client Compatibility Profile: \"%s\"\n",profile); dbg(2,"TS-DOS directories %s\n",(enable_dme)?"enabled":"disabled"); dbg(2,"Magic files for UR-II/TSLOAD %s\n",(enable_magic_files)?"enabled":"disabled"); if (model==2) dbg(0,"Bank 0 Dir: %s\nBank 1 Dir: %s\n",share_path[0],share_path[1]); From 7b928ffe20e7eb46762d1329b37d0ce511cd366a Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 24 Jan 2025 19:11:54 -0500 Subject: [PATCH 193/206] readme --- README.md | 51 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 776efa9..9057a14 100644 --- a/README.md +++ b/README.md @@ -14,26 +14,28 @@ $ sudo make uninstall ## Manual ``` $ dl -h -DeskLink2 v2.1.001-30-ge4936fd +DeskLink2 v2.1.001-33-g1f5ccb2 Usage: ./dl [options] [tty_device] [share_path] -Options Description (default setting) - -a attr Attribute - default attr byte used when no xattr (F) - -b file Bootstrap - send loader file to client - empty for help - -c profile Client compatibility profile - empty for help (k85) - -d tty Serial device connected to the client (ttyUSB*) - -e bool TS-DOS Subdirectories (true) - -g Getty mode - run as daemon - -h Print this help - -i file Disk image filename for raw sector access - empty for help - -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (1) - -p dir Path - /path/to/dir with files to be served (./) - -r RTS/CTS hardware flow control (false) - -s # Speed - serial port baud rate (19200) - -u Uppercase all filenames (false) - -v Verbosity - more v's = more verbose - -z # Milliseconds per byte for bootstrap (8) +Options Description... (default setting) + -a attr Attribute - default attr byte used when no xattr (F) + -b file Bootstrap - send loader file to client - empty for help + -c profile Client compatibility profile - empty for help (k85) + -d tty Serial device connected to the client (ttyUSB*) + -e bool TS-DOS Subdirectories (true) + -g Getty mode - run as daemon + -h Print this help + -i file Disk image filename for raw sector access - empty for help + -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (1) + -p dir Path - /path/to/dir with files to be served (./) + -r RTS/CTS hardware flow control (false) + -s # Speed - serial port baud rate (19200) + -u Uppercase all filenames (false) + -~ bool Truncated filenames end in '~' (true) + -v Verbosity - more v's = more verbose + -z # Milliseconds per byte for bootstrap (8) + -^ # Dump config and exit The 1st non-option argument is another way to specify the tty device. The 2nd non-option argument is another way to specify the share path. @@ -84,7 +86,7 @@ $ ``` $ ./dl -c -DeskLink2 v2.1.001-30-ge4936fd +DeskLink2 v2.1.001-33-g1f5ccb2 "-c" requires a value Client Compatibility Profiles @@ -94,12 +96,19 @@ NAME LEN LEN FNAMES BYTE DIRS FILES CASE ------------------------------------------------------------- raw 0 0 false ' ' false false false k85 6 2 true 'F' true true -wp2 8 2 true 'F' false false -cpm 8 3 false 'F' false false +wp2 8 2 true 'F' false false false +cpm 8 3 false 'F' false false false rexcpm 6 2 true 'F' false false true -z88 12 3 false 'F' false false +z88 12 3 false 'F' false false false st 6 2 true 'F' false false +Example: "-c cpm" sets filenames to 8.3 without padding or upcase. + +May also use "-c ##.##" to set an arbitrary filename pattern +with other parameters set same as "raw". Example: -c 16.0 + +Filenames are limited to 24 bytes total, the hardware limit in a real drive. + $ ``` From ce946d55dd7f861d1b6bbacb39995cdda430831e Mon Sep 17 00:00:00 2001 From: bkw777 Date: Fri, 24 Jan 2025 19:26:13 -0500 Subject: [PATCH 194/206] readme --- README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 9057a14..2db5f88 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ $ sudo make uninstall ## Manual ``` $ dl -h -DeskLink2 v2.1.001-33-g1f5ccb2 +DeskLink2 v2.2.001-0-g7b928ff Usage: ./dl [options] [tty_device] [share_path] @@ -49,21 +49,22 @@ Examples: $ ./dl -c wp2 /dev/cu.usbserial-AB0MQNN1 "~/Documents/WP-2 Files" $ ./dl -m2 -p /tmp/bank0 -p /tmp/bank1 + $ ``` ``` $ ./dl -b -DeskLink2 v2.1.001-30-ge4936fd +DeskLink2 v2.2.001-0-g7b928ff "-b" requires a value Available support files in /usr/local/lib/dl Loader files for use with -b: ----------------------------- -TRS-80 Model 100/102 : PAKDOS.100 TINY.100 D.100 TEENY.100 DSKMGR.100 TSLOAD.100 TS-DOS.100 -TANDY Model 200 : TEENY.200 DSKMGR.200 TSLOAD.200 TS-DOS.200 PAKDOS.200 -NEC PC-8201/PC-8300 : TS-DOS.NEC TEENY.NEC -Kyotronic KC-85 : Disk_Power.K85 DSKMGR.K85 +TRS-80 Model 100/102 : DSKMGR.100 TSLOAD.100 TS-DOS.100 TINY.100 D.100 TEENY.100 PAKDOS.100 +TANDY Model 200 : DSKMGR.200 TSLOAD.200 TS-DOS.200 PAKDOS.200 TEENY.200 +NEC PC-8201/PC-8300 : TEENY.NEC TS-DOS.NEC +Kyotronic KC-85 : DSKMGR.K85 Disk_Power.K85 Olivetti M-10 : TEENY.M10 DSKMGR.M10 Disk image files for use with -i: @@ -86,7 +87,7 @@ $ ``` $ ./dl -c -DeskLink2 v2.1.001-33-g1f5ccb2 +DeskLink2 v2.2.001-0-g7b928ff "-c" requires a value Client Compatibility Profiles From 40f3bddaf3da0a4212833bda7a849cb23835cabe Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 29 Jan 2025 13:36:55 -0500 Subject: [PATCH 195/206] rewrite make_file_entry() to fix client_fname --- .gitignore | 1 + README.md | 71 +++---- dl.c | 544 +++++++++++++++++++++++++++++++++++------------------ 3 files changed, 397 insertions(+), 219 deletions(-) diff --git a/.gitignore b/.gitignore index d51c5a8..2fc03c3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.o dl *.exe +tmp/ diff --git a/README.md b/README.md index 2db5f88..79289b1 100644 --- a/README.md +++ b/README.md @@ -14,33 +14,34 @@ $ sudo make uninstall ## Manual ``` $ dl -h -DeskLink2 v2.2.001-0-g7b928ff +DeskLink2 v2.2.001-1-gce946d5 Usage: ./dl [options] [tty_device] [share_path] Options Description... (default setting) -a attr Attribute - default attr byte used when no xattr (F) -b file Bootstrap - send loader file to client - empty for help - -c profile Client compatibility profile - empty for help (k85) + -c profile Client compatibility profile (k85) - empty for help -d tty Serial device connected to the client (ttyUSB*) - -e bool TS-DOS Subdirectories (true) + -e bool TS-DOS Subdirectories (on) - TPDD1-only + -f Start in FDC mode - TPDD1-only -g Getty mode - run as daemon -h Print this help -i file Disk image filename for raw sector access - empty for help - -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (1) + -m 1|2 Model - 1 = FB-100/TPDD1, 2 = TPDD2 (1) -p dir Path - /path/to/dir with files to be served (./) - -r RTS/CTS hardware flow control (false) + -r bool RTS/CTS hardware flow control (off) -s # Speed - serial port baud rate (19200) - -u Uppercase all filenames (false) - -~ bool Truncated filenames end in '~' (true) - -v Verbosity - more v's = more verbose - -z # Milliseconds per byte for bootstrap (8) - -^ # Dump config and exit + -u Uppercase all filenames (off) + -~ bool Truncated filenames end in '~' (on) + -v Verbosity - more v's = more verbose, both activity & help + -z # Sleep # ms per byte in bootstrap (8) + -^ Dump config and exit The 1st non-option argument is another way to specify the tty device. The 2nd non-option argument is another way to specify the share path. TPDD2 mode accepts a 2nd share path for bank 1. -TPDD2 mode does not support TS-DOS dfirectories. +"bool" accepts case-insensitive: on off 0 1 y n t f yes no true false Examples: $ ./dl @@ -49,17 +50,17 @@ Examples: $ ./dl -c wp2 /dev/cu.usbserial-AB0MQNN1 "~/Documents/WP-2 Files" $ ./dl -m2 -p /tmp/bank0 -p /tmp/bank1 - $ ``` ``` $ ./dl -b -DeskLink2 v2.2.001-0-g7b928ff +DeskLink2 v2.2.001-1-gce946d5 "-b" requires a value + Available support files in /usr/local/lib/dl -Loader files for use with -b: +Bootstrap/Loader files for use with -b : ----------------------------- TRS-80 Model 100/102 : DSKMGR.100 TSLOAD.100 TS-DOS.100 TINY.100 D.100 TEENY.100 PAKDOS.100 TANDY Model 200 : DSKMGR.200 TSLOAD.200 TS-DOS.200 PAKDOS.200 TEENY.200 @@ -67,14 +68,15 @@ NEC PC-8201/PC-8300 : TEENY.NEC TS-DOS.NEC Kyotronic KC-85 : DSKMGR.K85 Disk_Power.K85 Olivetti M-10 : TEENY.M10 DSKMGR.M10 -Disk image files for use with -i: +Disk image files for use with -i : --------------------------------- Sardine_American_English.pdd1 Disk_Power.K85.pdd1 -Filenames given without any path are searched from /usr/local/lib/dl -as well as the current directory. +Filenames are searched in the current directory first, +and then in /usr/local/lib/dl + Examples: ./dl -b TS-DOS.100 @@ -87,28 +89,26 @@ $ ``` $ ./dl -c -DeskLink2 v2.2.001-0-g7b928ff +DeskLink2 v2.2.001-1-gce946d5 "-c" requires a value -Client Compatibility Profiles +help for Client Compatibility Profiles -PROFILE BASE EXT PAD ATTR TS-DOS MAGIC UP -NAME LEN LEN FNAMES BYTE DIRS FILES CASE -------------------------------------------------------------- -raw 0 0 false ' ' false false false -k85 6 2 true 'F' true true -wp2 8 2 true 'F' false false false -cpm 8 3 false 'F' false false false -rexcpm 6 2 true 'F' false false true -z88 12 3 false 'F' false false false -st 6 2 true 'F' false false +usage: + -c name use profile - (default: "k85") + -c #.# "raw" with filenames truncated to #.# & attr='F' + -c #.#p "#.#" fixed-length space-padded + -v -c more help -Example: "-c cpm" sets filenames to 8.3 without padding or upcase. - -May also use "-c ##.##" to set an arbitrary filename pattern -with other parameters set same as "raw". Example: -c 16.0 - -Filenames are limited to 24 bytes total, the hardware limit in a real drive. +NAME BASE EXT PAD ATTR DME TSLOAD UPCASE +------------------------------------------------------------- +raw 0 0 off ' ' off off off +k85 6 2 on 'F' on on off +wp2 8 2 on 'F' off off off +cpm 8 3 off 'F' off off off +rexcpm 6 2 on 'F' off off on +z88 12 3 off 'F' off off off +st 6 2 on 'F' off off off $ ``` @@ -230,6 +230,7 @@ Tested on Linux, [Mac](ref/mac.md), [FreeBSD](ref/freebsd.md), and [Windows](ref * Figure out and emulate more of the special memory addresses accessible in tpdd2 mode. We already do some. * Fake sector 0 based on the files in the current share path so that if a client tries to read the FCB table directly it works. * Fake entire disk image in ram based on current share path files. Option to save the image as long as we're there. +* -j 1111 to emulate the jumper settings ## Latest Changes * [real attr handling using xattr](ref/xattr.md) - enabled by default now diff --git a/dl.c b/dl.c index 7de595b..17dbee6 100644 --- a/dl.c +++ b/dl.c @@ -162,15 +162,20 @@ const char * magic_files[] = { }; // client compatibility profiles +// REXCPM native is cpm, but import & export forces 6.2 upcase +// Cambridge Z88 native is 12.3, not sure what DISCMNGR or DISC_RBL actually does +// Atari ST native is cpm, but PDDOS limits to 6.2 +// No xenix client exists probably, but it would be 14.0 +// { "xenix", 14, 0, false, ATTR_RAW, false, false, false } // id, base, ext, pad, attr, dme, magic, upcase #define CLIENT_PROFILES { \ { "raw", 0, 0, false, ATTR_RAW, false, false, false }, \ - { "k85", 6, 2, true, ATTR_DEF, true, true, -1 }, \ + { "k85", 6, 2, true, ATTR_DEF, true, true, false }, \ { "wp2", 8, 2, true, ATTR_DEF, false, false, false }, \ { "cpm", 8, 3, false, ATTR_DEF, false, false, false }, \ { "rexcpm", 6, 2, true, ATTR_DEF, false, false, true }, \ { "z88", 12, 3, false, ATTR_DEF, false, false, false }, \ - { "st", 6, 2, true, ATTR_DEF, false, false, -1 } \ + { "st", 6, 2, true, ATTR_DEF, false, false, false } \ } // terminal emulation @@ -205,7 +210,7 @@ bool upcase = DEFAULT_UPCASE; bool rtscts = DEFAULT_RTSCTS; bool tildes = DEFAULT_TILDES; uint8_t model = DEFAULT_MODEL; -int baud = DEFAULT_BAUD; +uint16_t baud = DEFAULT_BAUD; int BASIC_byte_us = DEFAULT_BASIC_BYTE_MS*1000; char client_tty_name[PATH_MAX+1] = {0x00}; @@ -250,25 +255,26 @@ uint8_t ram[RAM_LEN] = {0x00}; // 2k ram (pdd2 disk image record buffer) uint8_t rom[ROM_LEN] = {0x00}; // 4k cpu internal mask rom // client compatibility settings +#define PROFILE_ID_LEN 8 typedef struct { - char id[33]; + char id[PROFILE_ID_LEN+1]; uint8_t base; uint8_t ext; bool pad; uint8_t attr; bool dme; bool magic; - int8_t upcase; + bool upcase; } CLIENT_PROFILE; const CLIENT_PROFILE profiles [] = CLIENT_PROFILES ; -const char* profile = profiles[0].id; +//const char* profile = profiles[0].id; +char profile[PROFILE_ID_LEN+1] = {0}; uint8_t base_len = 0; uint8_t ext_len = 0; char default_attr = ATTR_RAW; bool enable_magic_files = false; bool pad_fn = false; -bool enable_dme = false; -bool raw = true; +bool dme_en = false; /////////////////////////////////////////////////////////////////////////////// @@ -307,43 +313,102 @@ void dbg_p(const int v, unsigned char* b) { dbg_b(v,b+2,b[1]); } -// string-to-bool -bool stobool (const char* s) { - return ( - atoi(s)>0 - || !strcasecmp(s,"true") - || !strcasecmp(s,"on") - || !strcasecmp(s,"yes") - || !strcmp(s,":") - ) ? true : false; +// ascii-to-bool +// true = case-insensitive: 1 y yes t true on enable +bool atobool (const char* s) { + // min 2 chars to tell "on" from "off" + char t[5] = {0}; + t[0]=','; + t[1]=s[0]?tolower(s[0]):' '; // replace the nuls to avoid + t[2]=s[1]?tolower(s[1]):' '; // s="o" -> t=",o" -> matches ",on," + t[3]=','; + return strstr(",on,1 ,t ,y ,tr,ye,en,",t); } // int-to-rate - given int 9600 return macro B9600 -int itor (int i) { +speed_t itobaud (uint32_t i) { return - i==75?B75: // kc85 supports, drive does not - i==110?B110: // kc85 supports, drive does not - i==150?B150: // drive supports, kc85 does not + i==0?B0: + i==50?B50: + i==75?B75: + i==110?B110: + i==134?B134: + i==150?B150: + i==200?B200: i==300?B300: i==600?B600: i==1200?B1200: + i==1800?B1800: i==2400?B2400: i==4800?B4800: - i==9600?B9600: // default Brother FB-100, KnitKing FDD19, Purple Computing D103 - i==19200?B19200: // default TANDY 26-3808, TANDY 26-3814 + i==9600?B9600: + i==19200?B19200: i==38400?B38400: -#if defined(B76800) //#if defined(__sparc__) // ref/baud_linux.c - i==76800?B76800: // drive supports, local platform may +#ifdef B57600 + i==57600?B57600: +#endif +#ifdef B76800 + i==76800?B76800: +#endif +#ifdef B115200 + i==115200?B115200: +#endif +#ifdef B153600 + i==153600?B153600: +#endif +#ifdef B230400 + i==230400?B230400: +#endif +#ifdef B307200 + i==307200?B307200: +#endif +#ifdef B460800 + i==460800?B460800: +#endif +#ifdef B500000 + i==500000?B500000: +#endif +#ifdef B576000 + i==576000?B576000: +#endif +#ifdef B614400 + i==614400?B614400: +#endif +#ifdef B921600 + i==921600?B921600: +#endif +#ifdef B1000000 + i==1000000?B1000000: +#endif +#ifdef B1152000 + i==1152000?B1152000: +#endif +#ifdef B1500000 + i==1500000?B1500000: +#endif +#ifdef B2000000 + i==2000000?B2000000: +#endif +#ifdef B2500000 + i==2500000?B2500000: +#endif +#ifdef B3000000 + i==3000000?B3000000: +#endif +#ifdef B3500000 + i==3500000?B3500000: +#endif +#ifdef B4000000 + i==4000000?B4000000: #endif 0; } -// given 19200 return 9 (the # in "COM:#8N1ENN") -int baud_to_stat_code (int r) { +// given int 19200 return 9 (the # in "COM:#8N1ENN") +uint8_t baud_to_stat_code (uint16_t r) { return - r==75?1: // kc85 supports, drive does not - r==110?2: // kc85 supports, drive does not -// r==150?0: // drive supports, kc85 does not + r==75?1: + r==110?2: r==300?3: r==600?4: r==1200?5: @@ -351,19 +416,78 @@ int baud_to_stat_code (int r) { r==4800?7: r==9600?8: r==19200?9: -// b==76800?0: // drive supports, kc85 does not 0; } -void show_profiles_help () { +void show_profiles_help (int e) { const int n = sizeof(profiles)/sizeof(profiles[0]); - dbg(0,"\n"); - dbg(0,"Client Compatibility Profiles\n"); - dbg(0,"\n"); - dbg(0,"PROFILE\tBASE\tEXT\tPAD\tATTR\tTS-DOS\tMAGIC\tUP\n"); - dbg(0,"NAME\tLEN\tLEN\tFNAMES\tBYTE\tDIRS\tFILES\tCASE\n"); - dbg(0,"-------------------------------------------------------------\n"); + dbg(0, + "\n" + "help for Client Compatibility Profiles\n" + "\n" + "usage:\n" + " -c name use profile - (default: \"%s\")\n" + " -c #.# \"raw\" with filenames truncated to #.# & attr='%c'\n" + " -c #.#p \"#.#\" fixed-length space-padded\n" + " -v -c more help\n" + ,DEFAULT_PROFILE,ATTR_DEF + ); + + dbg(1, + "\n" + "Profiles taylor the translation between local filenames and TPDD filenames.\n" + "\n" + "A real TPDD doesn't care what's in the filename, and emulating a TPDD\n" + "doesn't require any translation other than truncating to 24 bytes.\n" + "\n" + "But most TPDD clients write filenames to TPDD drives in specific formats,\n" + "and we need to translate filenames between the local and client formats.\n" + "\n" + "Strictly speaking, \"raw\" always works for any and all clients,\n" + "from the clients point of view. It still emulates a real drive exactly.\n" + "\n" + "The only reason for any compatibility profile is for more convenient\n" + "local filenames. When TS-DOS saves a file like \"A.BA\", it actually\n" + "writes \"A .BA\" to a real drive. In \"raw\" mode this would create a\n" + "local file named verbatim: \"A .BA\", which is legal but inconvenient.\n" + "And TS-DOS does not recognize any disk files that don't conform\n" + "to the \"k85\" profile below. (fixed-length, space-padded, 6.2)\n" + "\n" + "\"raw\" still \"works\" because TS-DOS can both create any files it\n" + "wants, and access any files it created, identical to a real drive.\n" + "\n" + "Profiles just make it so that a local file named \"my_long_file_name.text\"\n" + "appears to TS-DOS as \"my_lo~.t~\", which may be ugly but TS-DOS can use it.\n" + "And when TS-DOS tries to read or write a file named \"FOO .CO\",\n" + "we use \"FOO.CO\" for the local filename.\n" + "\n" + "Most of the parameters in a profile also have individual commandline flags.\n" + "Example: \"-c k85\" is short for \"-c 6.2p -a F -e on\"\n" + "(except k85 is the default so you don't need to use any of those)\n" + "\n" + "The default \"k85\" matches all KC-85-clone platform clients. Examples:\n" + "Floppy, TS-DOS, DSKMGR, TEENY, etc, on TRS-80 Model 100, NEC PC-8201a, etc.\n" + "\n" + "NAME profile name\n" + "BASE basename length\n" + "EXT extension length\n" + "PAD fixed-length space-padded\n" + "ATTR default attribute byte if no xattr\n" + "DME enable TS-DOS directory mode extension\n" + "TSLOAD enable \"magic files\" (ex: DOS100.CO) for TSLOAD / Ultimate ROM II\n" + "UPCASE translate filenames to all uppercase\n" + "\n" + "Available profiles:\n" + ); + + dbg(0, + "\n" +// "PROFILE\tBASE\tEXT\tPAD\tATTR\tTS-DOS\tMAGIC\tUP\n" +// "NAME\tLEN\tLEN\tFNAMES\tBYTE\tDIRS\tFILES\tCASE\n" + "NAME\tBASE\tEXT\tPAD\tATTR\tDME\tTSLOAD\tUPCASE\n" + "-------------------------------------------------------------\n" + ); for (int i=0; i0 && p<3) { - load_profile("raw"); + if (p<1 || p>2) show_profiles_help(1); - memcpy(t,s,p); - i = atoi(t); - if (i>0 && ip;i--) { + if (s[i]=='p'||s[i]=='P') pad_fn = true; + if (s[i]>='0' && s[i]<='9') break; + } - memset(t,0,4); - i = sizeof(s)-p-1; - if (i>4) i = 4; - memcpy(t,s+p+1,i); - i = atoi(t); - if (i>-1 && i0 && i4) i = 4; + memcpy(t,s+p+1,i); + i = atoi(t); + if (i>-1 && i(b))?(a):(b)) +#define MAX3(a,b,c) (((a)>(b))?(((a)>(c))?(a):(c)):(((b)>(c))?(b):(c))) +#define MIN3(a,b,c) (((a)<(b))?(((a)<(c))?(a):(c)):(((b)<(c))?(b):(c))) + +static inline int min(const int a, const int b) { + return a < b ? a : b; +} +static inline int max(const int a, const int b) { + return a > b ? a : b; +} +static inline long minl(const long a, const long b) { + return a < b ? a : b; +} +static inline long maxl(const long a, const long b) { + return a > b ? a : b; +} +static inline long long minll(const long long a, const long long b) { + return a < b ? a : b; +} +static inline long long maxll(const long long a, const long long b) { + return a > b ? a : b; +} +*/ + FILE_ENTRY* make_file_entry(char* namep, uint8_t attr, uint16_t len, char flags) { dbg(3,"%s(\"%s\")\n",__func__,namep); static FILE_ENTRY f; - int t=strlen(namep); - - strncpy(f.local_fname, namep, sizeof(f.local_fname)-1); - memset(f.client_fname, 0x00, sizeof(f.client_fname)); + strncpy(f.local_fname, namep, LOCAL_FILENAME_MAX); + memset(f.client_fname, 0x00, TPDD_FILENAME_LEN+1); f.attr = attr; f.len = len; f.flags = flags; - if (raw) { + // input length + uint8_t il = strlen(namep); - // raw mode - snprintf(f.client_fname,TPDD_FILENAME_LEN+1,"%-*.*s",TPDD_FILENAME_LEN,TPDD_FILENAME_LEN,namep); - if (tildes && t>TPDD_FILENAME_LEN) f.client_fname[TPDD_FILENAME_LEN-1]='~'; + // find the last dot but not if it's a directory + uint8_t dp = 0; + if (!f.flags&FE_FLAGS_DIR && strrchr(namep,'.')) dp = strrchr(namep,'.')-namep; - } else { + // output length + uint8_t ol = base_len?(base_len+(ext_len?(1+ext_len):0)):TPDD_FILENAME_LEN; - // Floppy/TS-DOS or WP-2 or other non-raw compat mode - char bn[TPDD_FILENAME_LEN] = {0}; - char en[TPDD_FILENAME_LEN] = {0}; - int ies=t, ibl=t, iel=0, bl=0; - - // find the positions of the first and last dots in the full local filename - if (strchr(namep,'.')) { - ibl = strchr(namep,'.')-namep; // first dot -> initial base len - ies = strrchr(namep,'.')-namep; // last dot -> initial ext start - printf("%s: last dot: %d\n",namep,ies); - printf(":: \"%s\"\n",namep+ies+1); - iel = strlen(namep+ies+1); // initial ext len - } + if (!ext_len) { + // ignore dots + + snprintf(f.client_fname,TPDD_FILENAME_LEN+1,"%-*.*s",ol,ol,namep); + if (tildes && il>ol) f.client_fname[ol-1]='~'; + + } else { + // handle dots // base - bl = (iblbase_len) f.client_fname[base_len-1]='~'; // overwrite last byte of basename with ~ + char bn[TPDD_FILENAME_LEN+1] = {0}; + // might be shorter than base_len + uint8_t bl = (dp&&dpbl:il>ol || + (f.flags&FE_FLAGS_DIR && il > ol-ext_len-1) + ) bn[bl-1]='~'; // ext - if (enable_dme && flags&FE_FLAGS_DIR) { - // TS-DOS directories - if (!strcmp(f.local_fname,"..")) memcpy (f.client_fname, dme_parent_label, base_len); // special case for DME - en[0] = dme_dir_label[0]; // - en[1] = dme_dir_label[1]; // - f.len = 0; // - } else { - // normal files - if (pad_fn) snprintf(en,ext_len+1,"%-*.*s",ext_len,ext_len,namep+ies+1); // padded ext name - else snprintf(en,ext_len+1,"%s",namep+ies+1); // unpadded ext name - if (tildes && ext_len && iel>ext_len) en[ext_len-1]='~'; // overwrite last byte of ext name with ~ + char en[TPDD_FILENAME_LEN+1] = {0}; + uint8_t x = il-dp-1; + uint8_t el = dp? xel) en[el-1]='~'; + + // TS-DOS directories + if (dme_en && flags&FE_FLAGS_DIR) { + if (!strcmp(f.local_fname,"..")) memcpy(bn,dme_parent_label,base_len); + memcpy(en,dme_dir_label,ext_len+1); + el = ext_len; + f.len = 0; } - if ( pad_fn || strlen(en) ) strcat(f.client_fname,"."); // append "." to client_fname - - strcat(f.client_fname,en); // append ext name to client_fname - // Remove trailing spaces, blah... - // goofed up something since this wasn't needed before - char* p; - for (p = strrchr(f.client_fname,' ');p >= f.client_fname && *p == ' ';p--) *p = 0x00; - - if (upcase) for(int i=0;i1. // in_dme is only set here, and only unset in dirent_get_first() - if (in_dme<2 && enable_dme) { + if (in_dme<2 && dme_en) { // Try to read one more byte, and store it in ch[0] where get_fdc_req() // can pick it up in case it was NOT the trailing 0x0D of a DME request // but instead was the first byte of an actual FDC command. @@ -2273,9 +2440,9 @@ void get_opr_cmd() { // void show_bootstrap_help() { - dbg(0,"Available support files in %s\n\n",app_lib_dir); + dbg(0,"\nAvailable support files in %s\n\n",app_lib_dir); - dbg(0,"Loader files for use with -b:\n" + dbg(0,"Bootstrap/Loader files for use with -b :\n" "-----------------------------\n"); dbg(0, "TRS-80 Model 100/102 :"); lsx(app_lib_dir,"100"," %s"); dbg(0,"\nTANDY Model 200 :"); lsx(app_lib_dir,"200"," %s"); @@ -2283,7 +2450,7 @@ void show_bootstrap_help() { dbg(0,"\nKyotronic KC-85 :"); lsx(app_lib_dir,"K85"," %s"); dbg(0,"\nOlivetti M-10 :"); lsx(app_lib_dir,"M10"," %s"); - dbg(0,"\n\nDisk image files for use with -i:\n" + dbg(0,"\n\nDisk image files for use with -i :\n" "---------------------------------\n"); lsx(app_lib_dir,"pdd1","%s\n"); dbg(0,"\n"); @@ -2291,8 +2458,9 @@ void show_bootstrap_help() { dbg(0, "\n" - "Filenames given without any path are searched from %2$s\n" - "as well as the current directory.\n" + "Filenames are searched in the current directory first,\n" + "and then in %2$s\n" + "\n" "Examples:\n\n" " %1$s -b TS-DOS.100\n" " %1$s -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100\n" @@ -2360,7 +2528,7 @@ int bootstrap(char* f) { } char t[PATH_MAX+1]={0x00}; - int sc = baud_to_stat_code(baud); + uint8_t sc = baud_to_stat_code(baud); if (!sc) { dbg(0,"Prepare the client to receive data." "\n" @@ -2405,6 +2573,7 @@ void show_config () { dbg(0,"profile : %s\n",profile); dbg(0,"base_len : %d\n",base_len); dbg(0,"ext_len : %d\n",ext_len); + dbg(0,"pad_fn : %s\n",pad_fn?"true":"false"); dbg(0,"attr : '%c' (0x%1$02X)\n",default_attr); #if defined(USE_XATTR) dbg(0,"xattr_name : \"%s\"\n",xattr_name); @@ -2412,7 +2581,7 @@ void show_config () { dbg(0,"upcase : %s\n",upcase?"true":"false"); dbg(0,"rtscts : %s\n",rtscts?"true":"false"); dbg(0,"verbosity : %d\n",debug); - dbg(0,"enable_dme : %s\n",enable_dme?"true":"false"); + dbg(0,"dme_en : %s\n",dme_en?"true":"false"); dbg(0,"magic_files : %s\n",enable_magic_files?"true":"false"); dbg(0,"BASIC_byte_ms : %d\n",BASIC_byte_us/1000); dbg(0,"bootstrap_fname : \"%s\"\n",bootstrap_fname); @@ -2445,31 +2614,34 @@ void show_main_help() { " -a attr Attribute - attribute byte used for all files (%2$c)\n" #endif " -b file Bootstrap - send loader file to client - empty for help\n" - " -c profile Client compatibility profile - empty for help (%9$s)\n" + " -c profile Client compatibility profile (%9$s) - empty for help\n" " -d tty Serial device connected to the client (%4$s*)\n" - " -e bool TS-DOS Subdirectories (%10$s)\n" -// " -n Disable TS-DOS directories\n" + " -e bool TS-DOS Subdirectories (%10$s) - TPDD1-only\n" + " -f Start in FDC mode - TPDD1-only\n" #if !defined(_WIN) " -g Getty mode - run as daemon\n" #endif " -h Print this help\n" " -i file Disk image filename for raw sector access - empty for help\n" // " -l List loader files and show bootstrap help\n" - " -m # Model - 1 = FB-100/TPDD1, 2 = TPDD2 (%5$u)\n" + " -m 1|2 Model - 1 = FB-100/TPDD1, 2 = TPDD2 (%5$u)\n" +// " -n Disable TS-DOS directories\n" +// " -n #.#[p] Names - Translate filenames to #.# format, optionally [p]added\n" " -p dir Path - /path/to/dir with files to be served (./)\n" - " -r RTS/CTS hardware flow control (%7$s)\n" + " -r bool RTS/CTS hardware flow control (%7$s)\n" " -s # Speed - serial port baud rate (%6$d)\n" " -u Uppercase all filenames (%8$s)\n" " -~ bool Truncated filenames end in '~' (%11$s)\n" - " -v Verbosity - more v's = more verbose\n" + " -v Verbosity - more v's = more verbose, both activity & help\n" // " -w WP-2 mode - 8.2 filenames for TANDY WP-2\n" - " -z # Milliseconds per byte for bootstrap (%3$d)\n" - " -^ # Dump config and exit\n" + " -z # Sleep # ms per byte in bootstrap (%3$d)\n" + " -^ Dump config and exit\n" "\n" "The 1st non-option argument is another way to specify the tty device.\n" "The 2nd non-option argument is another way to specify the share path.\n" "TPDD2 mode accepts a 2nd share path for bank 1.\n" - "TPDD2 mode does not support TS-DOS dfirectories.\n" + //"TS-DOS directory support is only possible in TPDD1 mode.\n" + "\"bool\" accepts case-insensitive: on off 0 1 y n t f yes no true false\n" "\n" "Examples:\n" " $ %1$s\n" @@ -2484,11 +2656,11 @@ void show_main_help() { ,TTY_PREFIX ,DEFAULT_MODEL ,DEFAULT_BAUD - ,DEFAULT_RTSCTS?"true":"false" - ,DEFAULT_UPCASE?"true":"false" + ,DEFAULT_RTSCTS?"on":"off" + ,DEFAULT_UPCASE?"on":"off" ,DEFAULT_PROFILE - ,enable_dme?"true":"false" - ,tildes?"true":"false" + ,dme_en?"on":"off" + ,tildes?"on":"off" ); } @@ -2503,15 +2675,15 @@ int main(int argc, char** argv) { load_profile(DEFAULT_PROFILE); // environment - if (getenv("OPERATION_MODE")) operation_mode = atoi(getenv("OPERATION_MODE")); + if (getenv("FDC_MODE")) operation_mode = !atobool(getenv("FDC_MODE")); if (getenv("PROFILE")) load_profile(getenv("PROFILE")); - if (getenv("FNAMES")) load_profile(getenv("FNAMES")); if (getenv("ATTR")) default_attr = *getenv("ATTR"); - if (getenv("ENABLE_DME")) enable_dme = stobool(getenv("ENABLE_DME")); - if (getenv("ENABLE_MAGIC_FILES")) enable_magic_files = stobool(getenv("ENABLE_MAGIC_FILES")); - if (getenv("TILDES")) tildes = stobool(getenv("TILDES")); + if (getenv("DME")) dme_en = atobool(getenv("DME")); + if (getenv("TSLOAD")) enable_magic_files = atobool(getenv("TSLOAD")); + if (getenv("TILDES")) tildes = atobool(getenv("TILDES")); if (getenv("CLIENT_TTY")) strcpy(client_tty_name,getenv("CLIENT_TTY")); if (getenv("BAUD")) baud = atoi(getenv("BAUD")); + if (getenv("RTSCTS")) baud = atoi(getenv("BAUD")); if (getenv("ROOT_LABEL")) snprintf(dme_root_label,6+1,"%-*.*s",6,6,getenv("ROOT_LABEL")); if (getenv("PARENT_LABEL")) snprintf(dme_parent_label,6+1,"%-*.*s",6,6,getenv("PARENT_LABEL")); if (getenv("DIR_LABEL")) snprintf(dme_dir_label,3,"%-2.2s",getenv("DIR_LABEL")); @@ -2520,42 +2692,46 @@ int main(int argc, char** argv) { #endif // commandline -#if defined(_WIN) - while ((i = getopt (argc, argv, ":0a:b:c:d:e:hi:lm:p:rs:uvwz:~:^")) >=0) -#else - while ((i = getopt (argc, argv, ":0a:b:c:d:e:ghi:lm:p:rs:uvwz:~:^")) >=0) + while ((i = getopt (argc, argv, ":0a:b:c:d:e:fhi:lm:np:r:s:uvwz:~:^" +#if !defined(_WIN) + "g" #endif + )) >=0) switch (i) { - case '0': load_profile("raw"); break; // back compat = -c raw + case '0': load_profile("raw"); break; // back compat, short for -c raw case 'a': default_attr=*strndup(optarg,1); break; case 'b': strcpy(bootstrap_fname,optarg); break; case 'c': load_profile(optarg); break; case 'd': strcpy(client_tty_name,optarg); break; - case 'e': enable_dme = stobool(optarg); break; - case 'n': enable_dme = false; break; // back compat = -e false + case 'e': dme_en = atobool(optarg); break; + //case 'f': set_fnames(optarg); break; + case 'f': operation_mode = MODE_FDC; break; #if !defined(_WIN) case 'g': getty_mode = true; debug = 0; break; #endif case 'h': show_main_help(); exit(0); break; case 'i': strcpy(disk_img_fname,optarg); break; - case 'l': show_bootstrap_help(); exit(0); break; + case 'l': show_bootstrap_help(); exit(0); break; // back compat, short for -b "" / -b help case 'm': model = atoi(optarg); break; + case 'n': dme_en = false; break; // back compat, short for -e false + //case 'n': set_fnames(optarg); break; + //case 'o': operation_mode = atobool(optarg); break; case 'p': add_share_path(optarg); break; - case 'r': rtscts = true; break; + case 'r': rtscts = atobool(optarg); break; case 's': baud = atoi(optarg); break; case 'u': upcase = true; break; - case '~': tildes = stobool(optarg); break; case 'v': debug++; break; - case 'w': load_profile("wp2"); break; // back compat = -c wp2 + case 'w': load_profile("wp2"); break; // back compat, short for -c wp2 case 'z': BASIC_byte_us=atoi(optarg)*1000; break; + case '~': tildes = atobool(optarg); break; case '^': x = true; break; case ':': dbg(0,"\"-%c\" requires a value\n",optopt); if (optopt=='b'||optopt=='i') { show_bootstrap_help(); exit(0); } - if (optopt=='c') { show_profiles_help(); exit(0); } - break; + if (optopt=='c') show_profiles_help(0); + show_main_help(); return 1; case '?': if (isprint(optopt)) dbg(0,"Unknown option \"-%c\"\n",optopt); - else dbg(0,"Unknown option character \"0x%02X\"\n",optopt); + else dbg(0,"Unknown option \"0x%02X\"\n",optopt); default: show_main_help(); return 1; } @@ -2591,8 +2767,8 @@ int main(int argc, char** argv) { // further setup that's only needed for tpdd if (check_disk_image()) return 1; // this may set model=1 or 2 based on disk image size or name - if (model==2) { load_rom(TPDD2_ROM); enable_dme=false; } - if (enable_dme) memcpy(dme_cwd,dme_root_label,base_len); + if (model==2) { load_rom(TPDD2_ROM); dme_en=false; } + if (dme_en && base_len && base_len<=6) memcpy(dme_cwd,dme_root_label,base_len); cfnl = base_len + 1 + ext_len; // client filename length if (base_len<1||cfnl>TPDD_FILENAME_LEN) cfnl = TPDD_FILENAME_LEN; @@ -2601,7 +2777,7 @@ int main(int argc, char** argv) { dbg(2,"Emulating %s\n",(model==2)?"TANDY 26-3814 (TPDD2)":"Brother FB-100 (TPDD1)"); dbg(2,"TPDD2 banks %s\n",(model==2)?"enabled":"disabled"); if (strcmp(profile,DEFAULT_PROFILE)) dbg(2,"Client Compatibility Profile: \"%s\"\n",profile); - dbg(2,"TS-DOS directories %s\n",(enable_dme)?"enabled":"disabled"); + dbg(2,"TS-DOS directories %s\n",(dme_en)?"enabled":"disabled"); dbg(2,"Magic files for UR-II/TSLOAD %s\n",(enable_magic_files)?"enabled":"disabled"); if (model==2) dbg(0,"Bank 0 Dir: %s\nBank 1 Dir: %s\n",share_path[0],share_path[1]); if (tildes) dbg(2,"Truncated filenames end in \"~\"\n"); From fa4f5a6530cbe9c75efc5bdd3a96f55d7c5f0112 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 29 Jan 2025 18:28:17 -0500 Subject: [PATCH 196/206] make upcase default for k85 because both TS-DOS & TEENY force it in places --- README.md | 14 +++++++------- dl.c | 18 ++++++++++-------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 79289b1..b3095c4 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ TPDD2 mode accepts a 2nd share path for bank 1. Examples: $ ./dl $ ./dl ttyUSB1 - $ ./dl -vu -p ~/Downloads/REX + $ ./dl -v -p ~/Downloads/REX $ ./dl -c wp2 /dev/cu.usbserial-AB0MQNN1 "~/Documents/WP-2 Files" $ ./dl -m2 -p /tmp/bank0 -p /tmp/bank1 @@ -81,8 +81,8 @@ Examples: ./dl -b TS-DOS.100 ./dl -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 - ./dl -vb rxcini.DO && ./dl -vu - ./dl -vu -i Sardine_American_English.pdd1 + ./dl -vb rxcini.DO && ./dl -v + ./dl -v -i Sardine_American_English.pdd1 $ ``` @@ -125,8 +125,8 @@ Docs from the past versions of this program. They don't exactly match this versi ## Examples: -### Run the TPDD server, verbose, upcase, serving files from the current directory -`$ dl -vu` +### Run the TPDD server, verbose, serving files from the current directory +`$ dl -v` ### List all available TPDD client installers, and then bootstrap one of them ``` @@ -139,7 +139,7 @@ $ dl -vb TS-DOS.100 ([Full directions for REXCPM](ref/REXCPM.md)) ### Update a [REX#](http://bitchin100.com/wiki/index.php?title=REXsharp) -`$ dl -vb 'rx#u1.do' && dl -vu` +`$ dl -vb 'rx#u1.do' && dl -v` ## "Magic Files" / Ultimate ROM II / TSLOAD There is a short list of filenames that are specially recognized: @@ -218,7 +218,7 @@ Example using co2ba as part of bootstrapping a REX Classic: $ wget https://www.bitchin100.com/wiki/images/3/38/R49_M100T102_260_rebuild.zip $ unzip R49_M100T102_260_rebuild.zip $ co2ba rf149.co call >rf149.do -$ dl -vb rf149.do && dl -vu +$ dl -vb rf149.do && dl -v ``` ## OS Compatibility diff --git a/dl.c b/dl.c index 17dbee6..c7999a9 100644 --- a/dl.c +++ b/dl.c @@ -162,15 +162,17 @@ const char * magic_files[] = { }; // client compatibility profiles -// REXCPM native is cpm, but import & export forces 6.2 upcase -// Cambridge Z88 native is 12.3, not sure what DISCMNGR or DISC_RBL actually does -// Atari ST native is cpm, but PDDOS limits to 6.2 -// No xenix client exists probably, but it would be 14.0 +// kc-85 platform can use lowercase filenames just fine, but at least both both +// TS-DOS and TEENY convert to uppercase in places, so upcase to avoid the battle. +// REXCPM native is cpm, but import & export forces 6.2 upcase. +// Cambridge Z88 native is 12.3, not sure what DISCMNGR or DISC_RBL actually does. +// Atari ST native is cpm, but PDDOS limits to 6.2 . +// No xenix client exists probably, but it would be 14.0 . // { "xenix", 14, 0, false, ATTR_RAW, false, false, false } // id, base, ext, pad, attr, dme, magic, upcase #define CLIENT_PROFILES { \ { "raw", 0, 0, false, ATTR_RAW, false, false, false }, \ - { "k85", 6, 2, true, ATTR_DEF, true, true, false }, \ + { "k85", 6, 2, true, ATTR_DEF, true, true, true }, \ { "wp2", 8, 2, true, ATTR_DEF, false, false, false }, \ { "cpm", 8, 3, false, ATTR_DEF, false, false, false }, \ { "rexcpm", 6, 2, true, ATTR_DEF, false, false, true }, \ @@ -2464,8 +2466,8 @@ void show_bootstrap_help() { "Examples:\n\n" " %1$s -b TS-DOS.100\n" " %1$s -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100\n" - " %1$s -vb rxcini.DO && %1$s -vu\n" - " %1$s -vu -i Sardine_American_English.pdd1\n\n" + " %1$s -vb rxcini.DO && %1$s -v\n" + " %1$s -v -i Sardine_American_English.pdd1\n\n" ,args[0],app_lib_dir); } @@ -2646,7 +2648,7 @@ void show_main_help() { "Examples:\n" " $ %1$s\n" " $ %1$s ttyUSB1\n" - " $ %1$s -vu -p ~/Downloads/REX\n" + " $ %1$s -v -p ~/Downloads/REX\n" " $ %1$s -c wp2 /dev/cu.usbserial-AB0MQNN1 \"~/Documents/WP-2 Files\"\n" " $ %1$s -m2 -p /tmp/bank0 -p /tmp/bank1\n" "\n" From 5af3ceeefde5b0049f19f9fccb70fc334db9102c Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 29 Jan 2025 18:53:31 -0500 Subject: [PATCH 197/206] readme --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index b3095c4..3ad0fbf 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ $ sudo make uninstall $ dl -h DeskLink2 v2.2.001-1-gce946d5 -Usage: ./dl [options] [tty_device] [share_path] +Usage: dl [options] [tty_device] [share_path] Options Description... (default setting) -a attr Attribute - default attr byte used when no xattr (F) @@ -44,17 +44,17 @@ TPDD2 mode accepts a 2nd share path for bank 1. "bool" accepts case-insensitive: on off 0 1 y n t f yes no true false Examples: - $ ./dl - $ ./dl ttyUSB1 - $ ./dl -v -p ~/Downloads/REX - $ ./dl -c wp2 /dev/cu.usbserial-AB0MQNN1 "~/Documents/WP-2 Files" - $ ./dl -m2 -p /tmp/bank0 -p /tmp/bank1 + $ dl + $ dl ttyUSB1 + $ dl -v -p ~/Downloads/REX + $ dl -c wp2 /dev/cu.usbserial-AB0MQNN1 "~/Documents/WP-2 Files" + $ dl -m2 -p /tmp/bank0 -p /tmp/bank1 $ ``` ``` -$ ./dl -b +$ dl -b DeskLink2 v2.2.001-1-gce946d5 "-b" requires a value @@ -79,16 +79,16 @@ and then in /usr/local/lib/dl Examples: - ./dl -b TS-DOS.100 - ./dl -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 - ./dl -vb rxcini.DO && ./dl -v - ./dl -v -i Sardine_American_English.pdd1 + dl -b TS-DOS.100 + dl -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 + dl -vb rxcini.DO && ./dl -v + dl -v -i Sardine_American_English.pdd1 $ ``` ``` -$ ./dl -c +$ dl -c DeskLink2 v2.2.001-1-gce946d5 "-c" requires a value From 1dff78eaedcd336512f69c1d652a16336f7864a2 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 29 Jan 2025 20:09:54 -0500 Subject: [PATCH 198/206] remove unused min() & max() --- dl.c | 34 +++++----------------------------- 1 file changed, 5 insertions(+), 29 deletions(-) diff --git a/dl.c b/dl.c index c7999a9..3b15e13 100644 --- a/dl.c +++ b/dl.c @@ -1332,32 +1332,6 @@ void get_fdc_cmd() { // OPERATION MODE // -/* -#define MIN(a,b) (((a)<(b))?(a):(b)) -#define MAX(a,b) (((a)>(b))?(a):(b)) -#define MAX3(a,b,c) (((a)>(b))?(((a)>(c))?(a):(c)):(((b)>(c))?(b):(c))) -#define MIN3(a,b,c) (((a)<(b))?(((a)<(c))?(a):(c)):(((b)<(c))?(b):(c))) - -static inline int min(const int a, const int b) { - return a < b ? a : b; -} -static inline int max(const int a, const int b) { - return a > b ? a : b; -} -static inline long minl(const long a, const long b) { - return a < b ? a : b; -} -static inline long maxl(const long a, const long b) { - return a > b ? a : b; -} -static inline long long minll(const long long a, const long long b) { - return a < b ? a : b; -} -static inline long long maxll(const long long a, const long long b) { - return a > b ? a : b; -} -*/ - FILE_ENTRY* make_file_entry(char* namep, uint8_t attr, uint16_t len, char flags) { dbg(3,"%s(\"%s\")\n",__func__,namep); static FILE_ENTRY f; @@ -1476,9 +1450,11 @@ int read_next_dirent(DIR* dir,int m) { if (strlen(dire->d_name)>LOCAL_FILENAME_MAX) continue; // skip long filenames } + // TODO - make this configurable // If filesize is too large for the tpdd 16 bit size field, then say - // size=0 but allow the file to be accessed, because cpmupd.CO for - // REXCPM violates the tpdd protocol to load a large CP/M disk image. + // size=0 but allow the file to be accessed. + // A real drive does NOT do this, but REXCPM cpmupd.CO + // violates the tpdd protocol to load a large CP/M disk image. if (st.st_size>UINT16_MAX) st.st_size=0; uint8_t attr = default_attr; @@ -2796,7 +2772,7 @@ int main(int argc, char** argv) { // show the directory listing locally even before any directory list // commands, so that a user with no client-side display like TEENY, REX // rom image loading, REXCPM rxcini setup, etc can see what filenames are - // available to load and their exact spelling from the tpdd client side. + // available to load, and their exact spelling from the tpdd client side. if (debug) update_file_list(NO_RET); // process commands forever From 1cd1b38da8d8458f7e67684f7246ece02f9e8f4d Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 30 Jan 2025 06:04:09 -0500 Subject: [PATCH 199/206] fix env var RTSCTS, dl.c -> main.c, docs --- Makefile | 2 +- dl.c => main.c | 2 +- ref/advanced_options.txt | 254 ++++++++++++++++++++++++++------------- xattr.h | 2 + 4 files changed, 175 insertions(+), 85 deletions(-) rename dl.c => main.c (99%) diff --git a/Makefile b/Makefile index 366cdb5..6ad3456 100644 --- a/Makefile +++ b/Makefile @@ -71,7 +71,7 @@ CLIENT_DOCS := \ # clients/power-dos/powr-d.txt DOCS := dl.do README.txt README.md LICENSE $(CLIENT_DOCS) -SOURCES := dl.c dir_list.c xattr.c +SOURCES := main.c dir_list.c xattr.c HEADERS := constants.h dir_list.h xattr.h ifeq ($(OS),Darwin) diff --git a/dl.c b/main.c similarity index 99% rename from dl.c rename to main.c index 3b15e13..059c2ac 100644 --- a/dl.c +++ b/main.c @@ -2661,7 +2661,7 @@ int main(int argc, char** argv) { if (getenv("TILDES")) tildes = atobool(getenv("TILDES")); if (getenv("CLIENT_TTY")) strcpy(client_tty_name,getenv("CLIENT_TTY")); if (getenv("BAUD")) baud = atoi(getenv("BAUD")); - if (getenv("RTSCTS")) baud = atoi(getenv("BAUD")); + if (getenv("RTSCTS")) rtscts = atobool(getenv("RTSCTS")); if (getenv("ROOT_LABEL")) snprintf(dme_root_label,6+1,"%-*.*s",6,6,getenv("ROOT_LABEL")); if (getenv("PARENT_LABEL")) snprintf(dme_parent_label,6+1,"%-*.*s",6,6,getenv("PARENT_LABEL")); if (getenv("DIR_LABEL")) snprintf(dme_dir_label,3,"%-2.2s",getenv("DIR_LABEL")); diff --git a/ref/advanced_options.txt b/ref/advanced_options.txt index af681a4..69db393 100644 --- a/ref/advanced_options.txt +++ b/ref/advanced_options.txt @@ -1,28 +1,63 @@ Some special features & controls, and experiments. -Aside from the options displayed by the help options -h and -l, +Aside from the options displayed by the help options -h, -c, -b, & -i, there are also some debugging and special options and some environment variables. +Command-line stwitches override env variables, +and later switches override earlier switches. + +PROFILE is processed before other variables, so that the other +variables can override individual settings within a profile. + Commandline switches: -^ Config dump. This just displays several config options and exits. - If used in cencert with -vv or more, then it shows even more - info, including the results of all environment variables. + If used with -vv, then it shows even more info, + including the internal results of all environment variables. + + This is a way to verify what config options are actually in effect. - This is a way to verify that config options are actually in effect. + Build a command line with both variables and switches, and put -^ + as the very last argument, and the dump will show the final result + of all the combined settings which may override each other, etc. Environment variables: +variable data equivalent (default description if no +name type cli switch value) equivalent in -h help + +FDC_MODE bool true = -f (false) +PROFILE str -c str (k85) +ATTR chr -a chr (F) +DME bool -e bool (true for k85) +TSLOAD bool (true for k85) enable magic files +TILDES bool -~ bool (true) +CLIENT_TTY str -d str (/dev/ttyUSB* for linux) +BAUD # -s # (19200) +RTSCTS bool -r bool (false) +ROOT_LABEL str ("0: ") +PARENT_LABEL str ("^ ") +DIR_LABEL str ("<>") +XATTR_NAME str ("pdd.attr" w/ platform-specific prefix/suffix) + +str = a string +chr = a single character +# = an integer +bool = case-insensitive on/off true/false yes/no 0/1 t/f y/n + To use these, just put them in the environment. The simplest is just type them on the same command line before the executable name. +ROOT & PARENT are padded or truncated as needed to exactly 6 bytes, +so you can give a short value without quotes + Example: $ ROOT_LABEL=/ PARENT_LABEL=^ dl - ROOT_LABEL="0:" +ROOT_LABEL="0:" examples: 'ROOT' '/' @@ -45,7 +80,7 @@ Example: If you want a shorter string to be centered, use quotes and include the spaces. - PARENT_LABEL="^" +PARENT_LABEL="^" examples: 'PARENT' '^' @@ -79,7 +114,7 @@ Example: to work, it has to be left-justified like a real filename would be. It takes some trial & error to figure out what works. - ATTR="F" +ATTR="F" examples: 'F', ' ', any single byte A real TPDD drive has a one-byte field along with every filename. @@ -117,28 +152,106 @@ Example: pdd.sh exposes the field and let's you see it and write whatever you want in it and search whatever you want in it. - DOT_OFFSET=6 - valid values: 0 to 24, but really only 0, 6, or 8 are useful. - - Just another way to do the same thing as the -w or -0 options, except - you can specify any value from 0-24. - - Default behavior is DOT_OFFSET=6, aka "Floppy/TS-DOS mode". - This makes 6.2 space-padded filenames. - - The -w option is DOT_OFFSET=8, aka "WP-2 mode". - This makes 8.2 space-padded filenames. - - The -0 option does DOT_OFFSET=0, aka "raw mode". - This makes filenames truncated to 24 bytes but otherwise not modified. - There is no special meaning or handling of dots or any other characters. - - It's possibly useful as just as an alternative way to set 0 or 8 as - default instead of having to include the -0 or -w commandline options - every time. - - OPERATION_MODE=1 - valid values: 0 or 1 + PROFILE=k85 + PROFILE=8.3 + PROFILE=8.2p + Same as command line switch "-c" + + PROFILE=name + -c name use profile - (default: "k85") + + PROFILE=#.# + -c #.# "raw", truncated but not padded to #.#, attr=F + + profile=#.#p + -c #.#p "raw", truncated and padded to #.#, attr=F + + Profiles taylor the translation between local filenames and TPDD filenames. + + A real TPDD doesn't care what's in the filename, and emulating a TPDD + doesn't require any translation other than truncating to 24 bytes. + + But most TPDD clients write filenames to TPDD drives in specific formats, + and we need to translate filenames between the local and client formats. + + Strictly speaking, "raw" always works for any and all clients, + from the clients point of view. It still emulates a real drive exactly. + + The only reason for any compatibility profile is for more convenient + local filenames. When TS-DOS saves a file like "A.BA", it actually + writes "A .BA" to a real drive. In "raw" mode this would create a + local file named verbatim: "A .BA", which is legal but inconvenient. + And TS-DOS does not recognize any disk files that don't conform + to the "k85" profile below. (fixed-length, space-padded, 6.2) + + "raw" still "works" because TS-DOS can both create any files it + wants, and access any files it created, identical to a real drive. + + Profiles just make it so that a local file named "my_long_file_name.text" + appears to TS-DOS as "my_lo~.t~", which may be ugly but TS-DOS can use it. + And when TS-DOS tries to read or write a file named "FOO .CO", + we use "FOO.CO" for the local filename. + + Most of the parameters in a profile also have individual commandline flags. + Example: "-c k85" is short for "-c 6.2p -a F -e on" + (except k85 is the default so you don't need to use any of those) + + The #.# syntax is a way to specify any other filename pattern you might need + that isn't covered by one of the built-in profiles below. + + If the number after the dot is >0 then the translated filename will have only + one dot. The last dot in the original name will be taken as "the" dot. + Everything before the last dot will be truncated down to the basename length, + and any dots substituted with "_". Everything after the last dot will be + truncated down to the ext length. + + To specify a simple max length without limiting or modifying dots, use #.0 + + Examples: + -c cpm "abc.txt" -> "abc.txt" + -c 8.3 "my.long.file.name.shtml" -> "my_long~.sh~" + -c 8.2p "abc.txt" -> "abc .t~" + -c 14.0 "my.long.file.name.shtml" -> "my.long.file.~" + -c 6.2p -u "abc.co" -> "ABC .CO" + + or equivalent: + PROFILE=cpm "abc.txt" -> "abc.txt" + PROFILE=8.3 "my.long.file.name.shtml" -> "my_long~.sh~" + PROFILE=8.2p "abc.txt" -> "abc .t~" + PROFILE=14.0 "my.long.file.name.shtml" -> "my.long.file.~" + PROFILE=6.2p UPCASE=on "abc.co" -> "ABC .CO" + PROFILE=k85 "abc.co" -> "ABC .CO" + + The default is the same as: PROFILE=k85 + which is also the same as: PROFILE=6.2p UPCASE=on ATTR=F DME=on TSLOAD=on TILDES=on + + The default "k85" matches all KC-85-clone platform clients. Examples: + Floppy, TS-DOS, DSKMGR, TEENY, etc, on TRS-80 Model 100, NEC PC-8201a, etc. + + NAME profile name + BASE basename length + EXT extension length + PAD fixed-length space-padded + ATTR default attribute byte if no xattr + DME enable TS-DOS directory mode extension + TSLOAD enable "magic files" (ex: DOS100.CO) for TSLOAD / Ultimate ROM II + UPCASE translate filenames to all uppercase + + Available profiles: + + NAME BASE EXT PAD ATTR DME TSLOAD UPCASE + ------------------------------------------------------------- + raw 0 0 off ' ' off off off + k85 6 2 on 'F' on on on + wp2 8 2 on 'F' off off off + cpm 8 3 off 'F' off off off + rexcpm 6 2 on 'F' off off on + z88 12 3 off 'F' off off off + st 6 2 on 'F' off off off + +FDC_MODE=false + default false + commandline switch -f (takes no argument) is the same as FDC_MODE=true A TPDD1 / FB-100 drive has two main modes of operation called Operation-mode and FDC-mode. @@ -152,18 +265,17 @@ Example: This setting lets you emulate the dip switch settings for starting up in FDC-mode instead of Operation-mode. - Default is OPERATION_MODE=1, meaning dl2 starts up in Operation-mode. - This matches the TPDD1 default dip switch settings, the TPDD2 (tpdd2 has - no other mode), and the hard-wired solder-blob settings on FB-100 and - Purple-Computing drives. + Default is FDC_MODE=false, meaning dl2 starts up in Operation-mode. + This matches the TPDD1 default dip switch settings, and the hard-wired + solder-blob settings on Brother FB-100, KnitKing FDD19, Purple Computing D103, + and matches the TPDD2's only mode (tpdd2 has no FDC mode). Regardless which mode is the default at start-up, the drive (and dl2) still - responds to the commands to switch between modes, and clients like - TS-DOS always send a little set/reset sequence to ensure the drive gets - put into Operation-mode before it tries to use Operation-mode commands. - So mostly it almost doesn't matter which mode is the power-on default. + responds to the commands to switch between modes, and at least some clients + like TS-DOS always send a little set/reset sequence to ensure the drive gets put + into Operation-mode before it tries to use any other Operation-mode commands. - BAUD=19200 +BAUD=19200 valid values: 75 model-t supports, drive does not 110 model-t supports, drive does not @@ -202,7 +314,7 @@ Example: rate. So the option is there in dl2 but isn't available unless you compiled on a system that supports it. - CLIENT_TTY=ttyUSB0 +CLIENT_TTY=ttyUSB0 examples: ttyUSB0, ttyS2, cu.usbserial-AL03RAXP The device name of the tty that the client is connected to, @@ -213,12 +325,11 @@ Example: "/dev/tty.*" interface to the same device. The cu.* interface provides exclusive access to the port and avoids data corruption. - DISABLE_DME=false - valid values: 0, false, off, no, 1, true, on, yes - case-insensitive, 0 = all values <1 = false, 1 = all values >0 = true - +DME=true Enable/Disable TS-DOS directory support. - Default is enabled, use this to disable. + Default depends on the PROFILE. + Default profile is k85 which has DME enabled. + Use this to override whatever the profile has set. TS-DOS/Desk-Link directory mode extensions technically violate the tpdd spec, which could theoretically break some legitimate tpdd client software that @@ -230,50 +341,27 @@ Example: use FDC-mode at all are Sardine and the installer for Disk-Power, and both of those are working on dl2 without needing this option. - MAGIC_FILES=true - valid values: 0, false, off, no, 1, true, on, yes - case-insensitive, 0 = all values <1 = false, 1 = all values >0 = true +TSLOAD=true + Enable/Disable the "magic files" feature. + Default depends on PROFILE + Default profile is k85, which has TSLOAD enabled + Use this to override whatever the profile has set. - Enable/Disable the "magic files" feature. (default enabled) In case you specifically do not want the special filenames like "DOS100.CO" to be recognized and work by magic even if there is no file by that name. - TILDES=true - valid values: 0, false, off, no, 1, true, on, yes - case-insensitive, 0 = all values <1 = false, 1 = all values >0 = true - - When long local filenames are truncated down to the tpdd limits, - distinguish truncated filenames from naturally short filenames - by ending the truncated names with '~'. - - The basename and extension parts of the filenames are evaluated - individually. - areallylongname.ba -> "areal~.ba" - a.bas -> "a .b~" - areallylongname.basic -> "areal~.b~" - - Basename and ext also end at the first and last dots if there are - multiple dots, and in that case, if the part before the first dot is - short enough to fit, but there was more filename removed after a dot, - then a tilde is added to indicate that even though the name looks short - the original name was actually longer. - a.ba -> "a .ba" - a.long.name.ba -> "a~ .ba" +TILDES=true + Enable/Disable indicating truncated filenames with a trailing "~" + Default is true - By default the basename.ext limits are 6.2, compatible with Floppy, - TS-DOS, and all other KC-85 platform tpdd client software. - - The "-w" option limits are 8.2, compatible with the TANDY WP-2 firmware. - - The "-0" option is "raw mode" and allows using the entire 24 bytes - in the filename field like a real drive, with no special meaning to dots - or any other character. There is no "extension". The local filename is - simply copied verbatim up to it's first 24 bytes (or 23 if a ~ is needed). - a.twenty-four.bytes.name -> "a.twenty-four.bytes.name" - this.name.is.over.24.bytes.long -> "this.name.is.over.24.by~" - -XATTR_NAME=user.pdd.attr +XATTR_NAME=pdd.attr If compiled with -DUSE_XATTR, then this environment variable can be used - to specify a different xattr name than the default "user.pdd.attr" for + to specify a different xattr name than the default "pdd.attr" for storing and retrieving the ATTR byte for each file. + + Default depends on the platform. + Default is "pdd.attr", with platform-specific prefixes or suffixes added. + linux: "user.pdd.attr" + mac: "pdd.attr#S" + freebsd: "pdd.attr" in EXTATTR_NAMESPACE_USER diff --git a/xattr.h b/xattr.h index 015c0fd..b313955 100644 --- a/xattr.h +++ b/xattr.h @@ -5,6 +5,8 @@ #ifdef USE_XATTR +// default xattr_name is #defined in xattr.c +// and overridable at run-time from main.c extern const char* xattr_name; void dl_getxattr (const char* path, uint8_t* value); From 5afe8ce9d7c07995958513285c7c27fe2f27dd03 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 30 Jan 2025 11:50:33 -0500 Subject: [PATCH 200/206] expand built-in help, add tpdd1 & tpdd2 util disk images --- Makefile | 2 + README.md | 16 ++- TPDD1_26-3808_Utility_Disk.pdd1 | Bin 0 -> 103440 bytes TPDD2_26-3814_Utility_Disk.pdd2 | Bin 0 -> 206880 bytes main.c | 227 ++++++++++++++++++++++++-------- ref/disk_image_files.txt | 18 ++- 6 files changed, 189 insertions(+), 74 deletions(-) create mode 100644 TPDD1_26-3808_Utility_Disk.pdd1 create mode 100644 TPDD2_26-3814_Utility_Disk.pdd2 diff --git a/Makefile b/Makefile index 6ad3456..435b7d8 100644 --- a/Makefile +++ b/Makefile @@ -57,6 +57,8 @@ LIB_OTHER := \ clients/ts-dos/SAR200.CO \ clients/ts-dos/Sardine_American_English.pdd1 \ clients/disk_power/Disk_Power.K85.pdd1 \ + TPDD1_26-3808_Utility_Disk.pdd1 \ + TPDD2_26-3814_Utility_Disk.pdd2 CLIENT_DOCS := \ clients/teeny/teenydoc.txt \ diff --git a/README.md b/README.md index 3ad0fbf..df0aaeb 100644 --- a/README.md +++ b/README.md @@ -89,21 +89,23 @@ $ ``` $ dl -c -DeskLink2 v2.2.001-1-gce946d5 +DeskLink2 v2.2.001-7-g1cd1b38 "-c" requires a value -help for Client Compatibility Profiles +Help for Client Compatibility Profiles -usage: +Usage: -c name use profile - (default: "k85") - -c #.# "raw" with filenames truncated to #.# & attr='F' - -c #.#p "#.#" fixed-length space-padded - -v -c more help + -c #.# "raw", truncated but not padded to #.#, attr='F' + -c #.#p "raw", truncated and padded to #.#, attr='F' + -v -c more help about profiles + +Available profiles: NAME BASE EXT PAD ATTR DME TSLOAD UPCASE ------------------------------------------------------------- raw 0 0 off ' ' off off off -k85 6 2 on 'F' on on off +k85 6 2 on 'F' on on on wp2 8 2 on 'F' off off off cpm 8 3 off 'F' off off off rexcpm 6 2 on 'F' off off on diff --git a/TPDD1_26-3808_Utility_Disk.pdd1 b/TPDD1_26-3808_Utility_Disk.pdd1 new file mode 100644 index 0000000000000000000000000000000000000000..a4b5257b8fe9eda279e0ba6af986a16a1abe6f37 GIT binary patch literal 103440 zcmeI24OkS{xyNUf4?#gTBuybVab`Cqx*+bZe8>hif`C$ir9fh0nkK7mk&1vT8fgr* zsj+F2rce51(zI#Pq@hV0F==C-G#{1S=ykU_HrU#vq*hmU*=1*$M}FuJ#*%q-+ShN&R;fein;Wsys4$Nwf*k8JL=e3f6A9a9aTbIS$%DB zRdz}7tRTylGw(A@V&bKC@C*qc0VME$g}_TM{o;zQ{3E%FyIc(4o`@XZcf+^a-rko0 zr*99Jb+65sh#p4hL3LBYzL=wPjwh$H@%!SB&OM%7zJL7mxes1`dwhL{_4uCDZx_I= z#~(~RJpuRsaQxdXyP5I7p8G~DbL!mR&OI8-+{iokq@J39$gM{=y*=^Pw#hxOuT;h|3~|Ns0)w8dsjaB4*DPJSw4%DAzM{Ai3M{K(Enq7x#ieDn5YQwg z8fWT7mxp!574>W}TUAkgYke7~F|De!)RiSAF4waaVS8LdEOD$`;wZ7(7Xt|En8j=!o_3SNL zLzZUkT21DvHMKV`t}-sUIVmwuFV(GpM(ZuCL2s%qyS;v<3;BAf-UX z(l7nFV#Z(r5>OC6=>)BP6WyQ6uF*h$Ow_v%kz*JjT6g{b_ELxstfS1+)QbAwQ ziXy%A+CiPN;!<|a?WP*b+A_8xv$ie^F6g@ml|e7o++I{$mzif;ZK=Dpgw4s-M=L^^ zAvdeia_K5BYfS~*0^$L;)KvbX8!oSJj8+E`i7Hof%e`zo@pU9z9_0!2AFuXzzL3FbWIZT9?Bh!dT`+CkMs_z^(&m$Ywb5m2A zua0XAH0wpe26gMj32y&7P3?FedANl8AV7Ym=H`8t>@Fd{>L9;wp6t>aUz##*61m4k zA6b~zWqeZP=CBa=K+PiKZR6ylRCiUN3(h#>#39FPspOUGNQwQ#TY*Ttd;dB(io{St z@`D@~fX57Tj)0G2m;%ig#ZGs9sL0KRi`=P$Med%_A~z9=+<_tIlR>hi#9170a{*!w zLO03wkn_es0kx&fg3`wATi9~gRkBslT_wxjX0vDO4cU4<{7Xtqg#RKnn4~J(6UvPy zwi33YNwjpiiLJBlv?Y}1nAnmnJ6ff}Tob#tv8gGcJkP{dTesSz!hE>D#lF?rmQcRJ z#8%mwcR;&!wkF%gHfWq(%9gKSZ(%H3m{NP=P8-|Y(#F=>tee`IRV`b$?r3h@Xl-k3 zX=cmp_7*!+yrIS3#zlU-^5r zNsgUC(?eq9s$-E=jxk{k5bNNp?A^KHfkEOv$GlU z^%0L|gUF2r`^(@h{yJKQJ9q=%1tm8lVuX5%jVr-`PkD2Fk<~f{M#hGI`b1Y|$*J+Nx@cCDL#BttP8Yc~XjU1UL<Aob7CDELi7#2E5xZO z?=DK=_gA^wLy@_Mojx9JN@lFt<(j=B$E4FqQxURAbEExm|B(AEA4zcs_{d84IX+V3 z9_AzWxCK7a>b}4`$9VEssLS|6k$YG?OBnkTs~AW>;2plUxPk6j|I5j43eqA-qb;mAN7Od<^=M~ z_0SK^JtBEX*!7B=2_4~1N>%a(b@zx+#Zfg_e^+X1sw#m=AoT+IR;bgxWsul-DpaEa zc{J4N;CZu(yeq&Bq;Gw9m+?!Yx=HM~N}D?0^d+$nE=6d1|KML~1zxP_ zsR{EEGRox$KJLNs4ol~;$ju){ti4(xa^DH9(0}?~Z3mQ@9N9v?E5d&0{EV<5$pwSn zutmkhbu5TvyT2gpdgDW?3AYG^t~^Fttt~&oHHoBE$jjDtZ_~DFlNaW(Foib@F4bn? zNOD{{w3vM?!X8VN1VQL_`G87KIta+CLVEv7#|wgwjK+4~|F~uM6RYRD%;~DBsduz< z9lsP@>HR5=0I#J_nJfKq!Mx*CD(5+YQ-x{fhyV))$rqrSl!^e)EecD@GAdApu^Ey= zRfLW?e;$%pmD#P^LEjUlV^kz1rY43XVc^95QOY+PhE-{H!-u87Enzwfz7U3#a^L$H z2CmyKR+illStT#B?rmYv0UO`rIYv^4qO+1trmCSH^@rh;AZ3~lFZj%JVRmqHrJl_X z!Hd}eLnP0JJfx&H&yF{*^>#k?tabVJ{nGPycqVut**Pq#o-5HByLAWMcx4chhr@#|UH8iAq zbyD-2NzI{2u4_UypGoK_gx9v{!Um}~(DI?7LihfmLdQiuc@8-~q&s{;OEQMY2SesP zyyxU~q(I|wS!m$kBw0?&eOm2&=?_dL^D`djV?)U*8b2@zouKiA%)E5-VdtwuaSV(y zp|r|%#MgDNmP+wohBU`7c)DHO9V2RZX(tD{dq#TsAvZq+%gA&pV_*xDHVVYdiy>nk zAJ9%tNKbu7>$rI&$&ohPa}str=0&hc@=&1bREuCxo$lh{YaBVl8lTt$IDlvbtn zoOZ7t?wF&U>$D7KFY1~zcd6s9VXk5N(Y+go-5ZC^r6Am}+<&vJfuSmPIg_JDZ$#GBGNoJM%4`N1%+^NE>0m1ioUyJOC2 zD9D`ed~cQ*4y$K+&#fJyQwY)=x!RF4!s`Y^70V<*V>)QxN6zQ*+)BnrI`Z!?H1>%- zpp89gKDs(SHR>S;M}4p&a(!Y>58TL~?!9IN-li^c_b41Zw4*-mOJc6$s$nOnc8tRj zAci393!G<$Yi-RSQ6N{ArcEqUZM&CcPWqA)licki>F>CAk9c}q+Ei!j2&@R)Jo*Y` zWM}Sv&GG1nO9hv(l`w^9GM^mLyWq;S3ATt&jsUnDRz@Rk=g9SrUynEsK!vXCb*k*z zxMhD%j5$F@j+!j@1Mgk%X?Ftm6FjV1KJvX0Pe(-Wh#xgQCMI7U$#KVw!sQsBtkQ0C zMT+T)Q$kmq(&%E-u5)l=VxY03+S5B zEMSHyfV?f$0zr0hI>tYVs;k!y|hnR$wYFF zshC)ov<0AG4vxB@W1YvuXpP~!Kf?f>G#B^q7^oMC5qUK;*_BqfntNA`}HRiH7j zedm5P7TuxIMbZ$2Nx546m9dl1Bj*ic(%!WMw!S-B6JhPDXx?tKx3MKn*5)lNjY<2$ znc}*Z9d_6oOMxu5ZL_VJ?iy#^!*DNC65Kn|&(xrEXXuD8gV}7p3HAeY{b&8=d44|# zg_?=g9h&rUho=gC3wJ;3Fskn>tr{d`mK6BwG{Y$Uo;SO4sJhc%1 z!ZrL{BqX1DC1s*!V&z221am%R7>+=rW`enx0%K1ZP8nj}U?x&tVTMyg_zW>aHSaTH zaD5)mhf@v$vx_O`;R8qMJbFA&&*3vc2||n>hv6r*NY7N~;hv$CG3HFlFuTy398Uh2 z_KW_Fq5XxPLK*EXlrOv}^*6FG0;Q1!v`na;C5Fyxgul1RKRh#Ilk;;{thmx9U*F7e zg1Rtljwf-=Tvd(cfI!W%EevM)8iD-otnM0Nf_uI}lN0VEFIu>r9`c@KmY=eai$5Z- zeUqBy8!j4IfwRE2rX#(}xK5yE`6&ynS!B!)6V25m=4!Y9Ocz{mnvp|}zonA>8D#Dw zC+_foUw*y;j<92}kUyX0-aG?O8s_fyM5oZTLZ^GFugE>&FLHaIWqn zWftd0XWVa|A*aqlPf4ZE`OX>1FIQKiWB&I!=EVZc5$c$)Pt!WDPlKexhL3CZAnDFB%SV6c-{by{w~MUWmyweB8#sj$m0Q(E4Rp1aJo6n=+@~k= z9)yU6D;G%GgN{eNbiaIKpQ&7k8tCV})IfLfb}9$4Q;uJs-x&3(@AdjExiz7y2! zdVzbkj~ZxJAYqVr{G z0}ao9ohLt{KdFIE@PdKf>!k)d!8=Oc`_(2d?3~{N2mPKJ z-XJnw4-UFDJma9#z5m2PLpBx*mmGAXH|n4_cxN1R7aw)dd%fUpcY41%N-gxNeKaM9 z|C<*2T4ADd(nX&`d|voxfe&@hf1(#j4&t4p_L;ipzj(ntKk9YCCSs95z6oh=>7V0B z^pVC#dVk>U;uZ;q+(B=SBk1+yyFNPJaDV>_$7g-JJ@;x|rpU+RDS!Nf^HDFI0B?Cs zYXtDxV`pJ2q7y9Sh%fFxj*y@FB(Ht5kG|b`KJMUIz|}>0ox93i>!V)#2VS^I^4hb+ zP*WmM;|-HdZsRt`(T=b*NzXn;Ka01nD*N3rBH=>?dl)HjZT|~`*uJ1u)jCt z1L;z?hQVuFn&Hu!>jYx;gCRcXJ;EK3sx0i+T_->lM@Ii8uf5byHuyT-rTye;FBQ4> z{KV$#bUft+ul*B0+&~^}2CtnasC7crYo`f?a7n#(Yd`hc>-s_ z5P0q5e#uh(8@zUO62lCJlygabAJ-bbH^vTj!tl z+Mo4b^4dCqRQUhSYZv=ns$%~YUfbfQUi;Bz$!kC2r(XMOejm9Z?n-E#jz2Jw%hNSo%Pk5zNJmKZe`y~;2&rcaruPx25W6lnroY#IK0JDPo zm6Y!ZKdfl88-7v>d^SL5fi3_k<;u^&z;yJBP#`)h>14_n z=uy8CI0>q!i502W{)wM@ZRpt>UU-Kkul-e@$FxMSK)X?|eVvdAw^FbD(?F8rfq)Ng zbv6VFjp>5(OyF{_oi1?w0iP*N0Iz)}(AyJ$nFn4wRwTU-Kvj@H01RGxa_scGHCbds z7ECY`w6ehi_kbgQO;_kX4xa^?&X>L9KL&W6bv!|19j9J<<2ZP2DDr4F!ZrED1Mkz> z`LvgKz6cHJY~z}SaZTem_tMC;*M8btbm8U!+8b#3I|GI8)`3FD%UodY^yOiQK$ za`)Tahxm|fbzfh+6@EXwIOaDhfdJ=wAX%Q0KE2f!Yr@->VRf)jC$?m zyc%BGKlO7azW3b$_qzk+PJTL-y@NhjZU7;8?KAX*C|L|yHn6Xlc3e5QLlZX6ukDcLJw&#rCu8r z(rqCR*%tz{{U*;nD}dSV6u@i?L3o|I$np>zrp{Wcf%lFB$Dqys1)a@Qba%V^d&>hKV)1~(M&?Im&troy$Pw>=c zU)ID^vv`8fh9)+JI_MTSzJC^Gt>lt#N;J8gt z|M-mLrtiGWO@HPaAe&CR5Ovc#q?&d?eg7G7({arZi#j~#^9_(c=n8mhSY;scUglv~ zMxvgYnrdo`|KHl=<1Z&NrpKn}FBIT+R93bQegOu*e`AJTzM45`dd~EmCR)zcEwQz+ zEq1niiQQ&nZ(*6Z12-^hZ#?BPJz32XozgcOUxz1~e#_J!D3oG<`>Upo2468fL|fZ)pd5+?_~P;@`o-m$ zn{w$FU0BoO({1Dyz}EnoeFtio-+t;Z1yq&KzNLP1<94>y-qK*VZe`(gW6LJnCU!$R zTg7IxK z-e%h>eHYSZhhM#JVjFDDHoLVAP+H-af?KVdY_$2cjV;-1{bu-YukGxYAx68g+1AvW zJ-d5MNv#FGz75~_tS-H^uD-UStS*bKtS`+@Vsn=ove-3NXwbTJ% zmK|B}d!vSyb}M|}Ge3*{ytUQZoHWzyikxNooMna__{KJTsmiFIDaRucPy&HCB@7bB zhy;)T5|AT+Vkk!l<46DrD1rcrp(4_ZgG2&IK#l;4p&TKMBLO6!2m&aEibyjK5(yvy zIRYq#a)dCB1dxCt2%s1$BF#8RB!C3u2%s3s5yChUKmv*&fMTeKG~*zV01}WRfMO^| z2;)cq2`GX9ilHLXjDti1NI;GNilH1Kj3WUgpa=pehKfit4iX6<0XYIFhH`{3js%c^ zA_$-uDk9A|NF;y+7%C#oI7lRb z1mp;y7|IdCI1)etiXebusE9P z7%C#oI7lRb1mp;y7|IdCI1)etiXebusE9PJg$NAG;I(a%Q748dgGH#)rqr0m zq$XtlrmZ$MUQscoD@hu2G5<6=Q?t&juM4&ss{%8?a8hx&jx=h7ecm$zVm!P5{6C-F z{d}_LAu^ovyqEJn-{*aQ=RBO3Y#+(3W=6jhxdr;-WqgcbnSmYul{*(|_yuKVWG!4& z9Fv(bz6_3YC;pCMfpukO8A$h{_J`*<;w zC`S_#KmthMTTS4bi{UsofAn|1JyED~N4D;MuJ(oR z{M65HcI??rU)HUuGd`C)`)1wu;Zs?+Xvghz#q1epH%+fA*`nBSYj{&&+wl9F0v>y1 z`|Sd;%m`&&OiFs#>?NNm(x)a}8GfEo%n524p7hEK(;soMpZ|opH7Bqxqpp~>Z2xM< z)+f@ZCa2%G^pVKfH2IvacA?5z1I z;uR*(al>fm42&~ep~D|Y)@s~&cw0IG8YhYE{(4cs@ zno6ry=H@CN&B`kYk0^|MG&CqdBUa5%g|79iR--G*Sz0=J`9uv{vgl67IYmXGK{Lk1 z6AzI95@47S$GsFL-)myF2L$zvnY9{maTjJR1!YJ{OW>1XEyAkJ%ZL1T^juu-=}JS* z`YKa7YuZ@0zG}S^*65PZAgw4gIT0jAS2a#P+XA8CuuZL3q+>GkeU#e zsEN}R6{Z$s=n5C7CeT7%VL_@^!_Nh6(1OrV#mG<9h%%6@E6K^oX7iTniuDU~po8dq zHJngwfXW~^c}r7^3v>(ghDDidT)bwinpRz)A3NdIdHGNsglAmeg#~x_ogZDecwFDW z0QxQ}{CeMjN23|*oStdDy@N)jE6o)f*tHeLRb}SY>{DfHO>@hQX5(s8C0sqptB&lw z@|a&VrjEL-jDiAiQw^8M7*#)QGAKE2UQ|<1^U#yrE~N0qu>nuEnQRs(ismC&(0{#V6};AEwtq|@#C zt<@yMd9pe-Ud=-#9!e9Fp(VuH+cG&$txbmd@w6mf9Y>o&03qt$3USHmBZ`zz%Ws_DMT~+T)PY0MYi~8Tgt&M*vfI%&~DbMdvAGh-&O; zaDdZjaJ=zL@D0Hmv2XKj_8W`gr2j+=LEPfTi=lY_jm0oNAt8~cV(2}%M+{@*G)Z^F zFg`gBYKvl+^z9JC_~iJ+q%kq1XUYF7#88`{QETZ^rLq8v%cn_nt^J2$m_*eAO2>&I z+}pe>(IEc&E- zh0uGI(FGps)ppP*P(ZO05Hwiiv7kFiV^Ww1iUc)9sQ^*aQngDORWxm~kBAzy5f1Oj zq$nZKZcHZO4#LMJ(6*yW2`UM<7?>@hN+yjd+SgQ)3iMqnsRhaVnoK6ee@!M6U_heI z#!?ca@+V5455gUh1agTWsY!6VzFQ=HL7@YHFvf|u94dld%-SSxxhRrJa4#1dd&|EK zBKeKQaAfSckYTvjJfvnhx7QQ){UNg98aFbc{K=3iS^1hLO~b$8;rDpR)=Xj;44Ju1 z8J=CXehr%o&pd3Q_nC)f7n>?$G<=Lk1OH|&o8v7lfX5@&VEnO(%`}?VunWu9u4Rji z%gkKHX3#c!Yx!LsA?h{H4Q|I0 zWyw$n`B(F;Mh$;tgnVZ?=Qoo)o2lF5nZ@nuzLGPTHo`9+BA2Jz!@3*ch~sa(Z#g!d zyfc$zR-UWr9-e65v4sAdV0T@;PPCcinQPqUtI%t|i~D)Ei({DVWaY0t{BF;SdhVCq zlOINEr7?tOk-7* zsj_Bf|0aF6h{s$}#pYI2n>({B%YXtsEioBa-6*PHR~XIRBFFrBdN!xBvSMIKWm%Pp zEv~GnGOesKbru*`u3;;lVh!tzD_vqueYGdgSh%H=wtfe zBJ)!fmF094ommy-<<;i0mBy;F3bXeD`Q{%R*OsmF#-_ApowtXa@^w`=GFDVndVnoS z8RT|!Cz7rQ!uEQ&?+>K~SXV6Pj&|#7RSg51u7z4QT_eg&k~3(H%xr{7arxse*77fI zE`%Zfn>?Oat)>yHc z#PnE3t`VJwJL0MBN}n=a^?sGPmnI489w_8|fU% z&TV$;UKr|X8!kFMyv&m4Zm?xkn%J6(YIc2fcgT|) zt=r}4Qp}n)>-`P>{*6V?T_+#9`&9v!Bkp;_HDPJX32&yHPN#)%X%pxqPn*i6`EhAM zT-rn~Z4#Fj%B4+-`nBgqMWg1Jjf1WMWLOXUOIe_Y&rr(^x4uym?H|1*z!K0iZ=2;$ zZX5a3O=`<8u|06IL1iO*D&aV7Ci%Z^D{=D;o<%W?^04QJ-O3{#P7?sp;jA9wcI!@g z8f><6w6Hb7)P-_ZfjLB7g>fx9fB)vypJ3OuC z#BiAX&+aL~!;jmGdb|3bXw-*%3`d{cH;~<1V|BWTt2b>jd26}7$*ugYXZv_DBtv~0 z-?6v3PjP?kC5!tmmGzP`Ptc#af!IO1AQ*;g(0Z0ptkgf`i9fPnoC>zhWT?_`xdBbhjo_v zK9%*EzG3#_rQt^}4jV7+>>K{+xt)DoZ5vdzP+Mo&(wDd~B-FNIje-fR4H=HHf7-Y4 zql=&+mVfR`u_Z97B314wuE9fE`x0VQCx4_`r*8X}wNQpP{e1Ef(#0*&9=qG%?cUi!UBIbeS zu)+TG%AFpU^5RWy0z=|FwW?fI5t-N9?eq_@zuiA$!*rDkrb;x_fA*Nua;iUt-{G+; z2fTL=daEomvv7kv4rVT5z@^*n8P2jR2QEz?fM(f+Q5SELJ!_yr)J_l3P<2P0z1jAs zIF96UFr#$P*QRc0b0ORQ>8up{U*Y=!mQJ-RZekqhjyig4vhwJyZd-TM+qYcZ)Z|pY z4dcmYI$sQoX18JMOo#$tgWTn%lrv-1{BL7J3E|n@+{DSDG?R8ok2SAOW z{OBzh2Q8l*oiHQqg!Rt@-eCkX;PK?_Lfa`<;|5hQtQuxedG@9g1Onov8Km)=HV9MM zK4*|S>Vfsig+2%?43<^a(?;`Z6I)dQ%W8H^^s~n-X@j=fhJk{?3!8-ZRRcMLwhoy6 z9X1!-@>N9(U}dhlcCxtE&_3MbZ1y$#+aUKmL$-Lh?ez0xpkGawqM~Nj>Wy$e zrIUDy*5BVBCOv30+y|a4gFArrsypz0?xKIAej|UxQ={Pht&yH?=LQul$n~m9E8PBp zoBM6gLXT;R1+y7zxW^T>^9Eg;&C$d= z6K{Ex#;e=|>GTncqD;%;qM5L1*GZGda@Nz$2_8i>LoTm@Y38)S`hwK}w?$ZUE0&W+ z_5`e?Mw{F72;=sUTb}MHJFr?A*V{pky-1Vghi{YJ zvXbXHkt79xy`MRFCSP< ze@?J>w_GQMdQ#oSz0?97L%#e{t1n;PBk*qukT1X1>dTjN^wz(%oF*@}k-&EAOD#s{ zGo3$d-`u)Nn9*fx^SvwnUz0H(dyy>Y;`X*Cl7}7)drRO_debIa1I^q=tzyRfa$Bh7 zG5aaT8dH`0kTR0M1r7Ru?wf1WY#5qudlbPXWC=Y)SWWB#5q)Z*_P%b4$TLdN`W4jZvM$b&Cjigv;Y z&6vwxhGWQ>|HWaw=-}TIXvTa@fQQnp89-QLKz3S!25CQLW6_j**fKr`mx1>TJL z541HTCKG!hV?OE(oOz18?DS^LpEzxFy}hK@y(x@l%5@9m;xvC^{j#z3Mo{b+!{@$EB)vQYA#y3znDL?_|uRgUo4f zu)o<(3LW;BTF4WfB&xl^(&~UG=JZaeOs4M#KP;*JnqgYco9@7PEs{;*)xbiks31##)3gKO+?aqD`a!kvuyHyw~M z|E9y6F(2(vS*ttlWXuOUAY(q*aVKNm*73EB+1}yHm_O{elQF+1kiT_&En{|e*c8r= zdot$U4w^B)Viq&z=uVn3&+2rMhXe1;n8Q28jQO(TYZ>!<0?n9Lb`tQkN+5seuv~VC z5xnde%a|W?p0=j7le|vO-AMyq-f4NZ6GF)4{vC!I^|3%R=6wSBEZTmc6Qsl&`P5Fx zn3G-BhE9^&>0K6d64khx!-hN0D-Q}TWx#csF{caOj9J$%X3QUVdNbyFAsXt_jJc^Z zh2Jk&=X!saX&#?3?-#gOmrJ)#fQ)&r>(aw6m|>7H2V5tYHbaA`g96ZijQN(Q?N7yO zvO*0rN(X)YvK87uMtdwO#eNpPL!#+a6C7l%3v!R4$x7o8&6rmXLBv zU{%qYP6u)R0J@7Z4JlU-Da(eqBLlvS`KBxN=BwhEp#OGPirwl;vE;iTV`jRddORwk zcah0mzKr?zb7{s51uKWh52*d?8S`-$s1cMKhhQAE+?O%8y1c`HjJaO8D`O7sQr_~= zj2YtfXcvvwLtQYH?R*#au|P-%&6roxWp!`HoZm$=<|SR;jJdcAGUnp0@fmYP8_k#- z1a65SX3Tqp0Q+yd0_-{Pb1(e7+y#81jtG!3x3~E+W>ydrUReJN1!vd?0wlqK=DRXx zpM5^Hk7mrDbV0`Kt2~-9&lAQnW+ZNm7BIa!><-i-M@ zs?l&CfQ)&k!+PB@mN9=Ih#7O7FqSdjC5Dw&coqPxAGM12?I$QjKnof3?lzh+)9X&9 zpO7(c6U2-e1}bLE^8{DaZwBbvgpAoc69d0c8e2HNz?(7e5xg1mLtl`~g5|G5H#Z>A zjQP9I!!(18d7l8Q0WxM-bAe`ZCi(=dq(11dbG(1pt6+4m zj(GpASS0Jwg-N9H&jtd97!fmom%u-p}lFuo=yZ zbT6=m2yJqtI#2v8hV97A>w6z&3_KPKQOx(T{vDWg))+=CPFF=dsOX5U8U zwTM{QxDweM!E0f=0_+Rasxz7A_HAbBb@j}yeMgvjWxjd6sj`aAEXXKYsC-oS3Jbd^ zHOz^9?=iV8T6)UEhRm%jXeD9a@j6dke4Dwn?~lwYER@pXVu;Zdih;6m>^lvk4Bmgv zJ4#-yTxc?_W0i(*CA*653fMqjV$WUYdx^b@QSHA1Lxuftbfk1+if^R){asA`d>DaR znN?j`X);%_8!9T-(098Ac!yO{$re?_u&Jy{rDB%v?_;tIE!y~G=E?nPg^sD&pPxmPsj(M~`&_7?(l4ZD@1V{}L`I<;^AmCQM=3G*< z7VyKqSPhe3f1iK87Amrr*d%6s{S1F!b@n{V|0N=^IbRzI4&+4?86u&U4lY(?Xwou2 zuMhW!&aw>6T4rZ`477rh)U-O=KfSm+E&wX`#zDG5waSIYz+s1mEe_+Y4D zg~nPY>_Dx59iu$(w)e6o*wX-4X67C^?hg|X_9HWo9{7_#1%E37mJ74;z**=en@&kF z8h18Mi2EGqYJokg8s--VE<(M+{IPm;^69Iq#ww5l?NDJ!aqE>rsI!&Lg|&BAWw`&- z{TM4NVD_!7Qc{=1D|)wK+?l~$2d??&l(fK*F3{^;U?ap%BbjRlhQPJ24%{CAMCrB; zc71sj6LIk2fa1IU9FKy7-O5x?G~$GnURv1)BLZ?;c$l!`79Nb4F1x1=@&V7W5E1qy zJmlzL{zSI)K*Y3>P5Djnk-E*y+Jh+pb<9r>Zlr^uGjffohI!-Q=74(d!c@aEi^E>H;0<|1$ng~~b&EYGJ zYu7Tp2QN*e6DW6V0!=&AIng&YM5UukN_?w7y3eJONjTIqS|wpLBwwd)IP~Rc9Xi9j zbHNv5rs|O2B;PfXM+?QBF;(Ku7!&itp%7mMG3f6wFCY5uq&jBXp$~&~%qhT(Br3-`8!kr)w!mVVL z%-V)YA>uNGE%J0WQ9DeixaLCNq+$L~!?X}D7}4({m~bzF*m;Auv}I|Np@7-m@V$`D z%o`1}L+TiqP$-5dhHGdt^gknpzi$YlPln$A;{x+u!~OI@f@y1b7@k+e{ed7;>>TeK z+&Qr0XBGQYr3qf$gLOS@gflU>8zPurD97*8^6u{fIm-xVLJ!ktw+wg$P{PdqC8Ii= z!ob$5=^p9=mc67D)AgTj^r7!|! z`kQJ6)Qc1UassyL(!YBU|E32%;USgQE2Otr{6Ydq;J=l?$d~taAAGNg`L2WwO-KL< zAOYDCKrxhE$kAaWfCQunpcqO~K^qc40_UzXBLO5JMF7Q6iVE7001}WL0Te^og&ZA5 z0!ToL0E(d$6|^A%Bp^EiD2B2NIXa94kbo2c6hkR0XhQ->Kz0OB3}qK`bQlRB0Vx6~ zhEi0}h6Ip+>KrLkN^^p9RU=r9sM0#XD} z45g@`4GACt*%3f7lwHWtVI+VAqzIrGN>M=@5PekR1UO zL)nEK9Yz93K#Bm0p%fLgAps;HI|3+%vI{vnj0BK?6af@NDJp0~0!To11W*iR7jkqM z2_OL}0w{)3RM3V5kbvw6pcu+73fhnW5|AAM6hqmC934giNI;4JilG!0v>^c`AUgsm zhO!GeI*bI6fD{1~Ln$g~Ljp)Zb_7riWfyXE7zrQ&DFP^lQdH1}1dxF22%s3sF68Ji z5_UzXBLO5JMF7Q6iVE70 z01}WL0Te^og&ZA50!ToL0E(d$6|^A%Bp^EiD2B2NIXa94kbo2c6hkR0XhQ->Kz0OB z3}qK`bQlRB0Vx6~hEi0}h6Ip+>KrLkN^^p9RU=r9sM0#XD}45g@`4GACt*%3f7lwHWtVI+VAqzIrGN>M=@5PekR1UOL)nEK9Yz93K#Bm0p%fLgAps;HI|3+%vI{vnj0BK?6af@NDJp0~ z0!To11W*iR7jkqM2_OL}0w{)3RM3V5kbvw6pcu+73fhnW5|AAM6hqmC934giNI;4J zilG!0v>^c`AUgsmhO!GeI*bI6fD{1~Ln$g~Ljp)Zb_7riWfyXE7zrQ&DFP^lQdH1} z1dxF22%s3sF68Ji5_UzX zBLO5JMF7Q6iVE7001}WL0Te^og&ZA50!ToL0E(d$6|^A%Bp^EiD2B2NIXa94kbo2c z6hkR0XhQ->Kz0OB3}qK`bQlRB0Vx6~hEi0}h6Ip+>d(fV&nY) literal 0 HcmV?d00001 diff --git a/main.c b/main.c index 059c2ac..adc4570 100644 --- a/main.c +++ b/main.c @@ -421,18 +421,30 @@ uint8_t baud_to_stat_code (uint16_t r) { 0; } +void lsx (char* path,char* match,char* fmt) { + struct dirent *files; + DIR *dir = opendir(path); + if (!dir){dbg(0,"Cannot open \"%s\"",path); return;} + int i; + while ((files = readdir(dir))) { + for (i=strlen(files->d_name);files->d_name[i]!='.';i--); + if (!strcmp(files->d_name+i+1,match)) dbg(0,fmt,files->d_name); + } + closedir(dir); +} + void show_profiles_help (int e) { const int n = sizeof(profiles)/sizeof(profiles[0]); dbg(0, "\n" - "help for Client Compatibility Profiles\n" + "Help for Client Compatibility Profiles\n" "\n" - "usage:\n" - " -c name use profile - (default: \"%s\")\n" - " -c #.# \"raw\" with filenames truncated to #.# & attr='%c'\n" - " -c #.#p \"#.#\" fixed-length space-padded\n" - " -v -c more help\n" + "Usage:\n" + " -c name use profile - (default: \"%1$s\")\n" + " -c #.# \"raw\", truncated but not padded to #.#, attr='%2$c'\n" + " -c #.#p \"raw\", truncated and padded to #.#, attr='%2$c'\n" + " -v -c more help about profiles\n" ,DEFAULT_PROFILE,ATTR_DEF ); @@ -464,8 +476,10 @@ void show_profiles_help (int e) { "And when TS-DOS tries to read or write a file named \"FOO .CO\",\n" "we use \"FOO.CO\" for the local filename.\n" "\n" - "Most of the parameters in a profile also have individual commandline flags.\n" - "Example: \"-c k85\" is short for \"-c 6.2p -a F -e on\"\n" + "Most of the parameters in a profile also have individual commandline flags,\n" + "and all parameters have individual environment variables.\n" + "Example: \"dl -c k85\" is short for \"dl -c 6.2p -a F -e on\"\n" + "or: \"PROFILE=6.2p ATTR=F DME=on TSLOAD=on UPCASE=on dl\"\n" "(except k85 is the default so you don't need to use any of those)\n" "\n" "The default \"k85\" matches all KC-85-clone platform clients. Examples:\n" @@ -479,12 +493,12 @@ void show_profiles_help (int e) { "DME enable TS-DOS directory mode extension\n" "TSLOAD enable \"magic files\" (ex: DOS100.CO) for TSLOAD / Ultimate ROM II\n" "UPCASE translate filenames to all uppercase\n" - "\n" - "Available profiles:\n" ); dbg(0, "\n" + "Available profiles:\n" + "\n" // "PROFILE\tBASE\tEXT\tPAD\tATTR\tTS-DOS\tMAGIC\tUP\n" // "NAME\tLEN\tLEN\tFNAMES\tBYTE\tDIRS\tFILES\tCASE\n" "NAME\tBASE\tEXT\tPAD\tATTR\tDME\tTSLOAD\tUPCASE\n" @@ -510,6 +524,59 @@ void show_profiles_help (int e) { exit(e); } +void show_diskimage_help(int e) { + + dbg(0, + "\n" + "Help for Disk Images\n" + "\n" + "Usage:\n" + " -i filename use disk image file \n" + " -v -i more help about disk images\n" + "\n" + ); + dbg(1, + "If filename is not found, then %1$s is searched.\n" + "\n" + "If the filename ends in \".pdd1\", or the file is the correct exact\n" + "size of a TPDD1 disk image, then dl2 will automatically operate in\n" + "TPDD1 emulation mode, and the same for \".pdd2\" and TPDD2.\n" + "\n" + "If the drive model cannot be determined by either name or size\n" + "(such as a new empty file with an arbitrary name that you want created),\n" + "then use \"-m 1\" or \"-m 2\" to specify tpdd1 or tpdd2.\n" + "\n" + "If filename does not exist, or exists but is zero bytes, then the file\n" + "will be created and filled with a new blank formatted disk image,\n" + "if and when the client issues a format command.\n" + "\n" + "Disk images may be dumped from / restored to physical disks using\n" + "the appropriate model real drive and https://github.com/bkw777/pdd.sh\n" + "\n" + ,app_lib_dir + ); + dbg(0, + "Available built-in (bundled) disk image files (in %1$s):\n" + "\n" + ,app_lib_dir + ); + + dbg(0,"TPDD1:\n"); + lsx(app_lib_dir,"pdd1"," %s\n"); + dbg(0,"TPDD2:\n"); + lsx(app_lib_dir,"pdd2"," %s\n"); + + dbg(0, + "\n" + "Examples:\n" + " %1$s -v -i Sardine_American_English.pdd1\n" + " %1$s -v -i ./my_new_disk.pdd2\n" + "\n" + ,args[0]); + + exit(e); +} + bool ckhelp (const char* s) { return ( !s[0] || @@ -649,8 +716,9 @@ void find_lib_file (char* f) { } int check_disk_image () { - // if they didn't ask for any disk image, then bail without error - if (!disk_img_fname[0]) return 0; + +// if (!disk_img_fname[0]) return 0; + if (ckhelp(disk_img_fname)) show_diskimage_help(0); dbg(3,"looking for disk image \"%s\"\n",disk_img_fname); @@ -912,18 +980,6 @@ char* collapse_padded_fname(char* fname) { return fname; } -void lsx (char* path,char* match,char* fmt) { - struct dirent *files; - DIR *dir = opendir(path); - if (!dir){dbg(0,"Cannot open \"%s\"",path); return;} - int i; - while ((files = readdir(dir))) { - for (i=strlen(files->d_name);files->d_name[i]!='.';i--); - if (!strcmp(files->d_name+i+1,match)) dbg(0,fmt,files->d_name); - } - closedir(dir); -} - int check_magic_file(char* b) { dbg(3,"%s(\"%s\")\n",__func__,b); if (!enable_magic_files) return 1; @@ -932,7 +988,6 @@ int check_magic_file(char* b) { return 1; } - // This is kind of silly but why not? Load a rom image file into rom[], // then tpdd2 mem_read() in the ROM address range returns data from rom[], void load_rom(char* f) { @@ -2417,36 +2472,6 @@ void get_opr_cmd() { // BOOTSTRAP // -void show_bootstrap_help() { - dbg(0,"\nAvailable support files in %s\n\n",app_lib_dir); - - dbg(0,"Bootstrap/Loader files for use with -b :\n" - "-----------------------------\n"); - dbg(0, "TRS-80 Model 100/102 :"); lsx(app_lib_dir,"100"," %s"); - dbg(0,"\nTANDY Model 200 :"); lsx(app_lib_dir,"200"," %s"); - dbg(0,"\nNEC PC-8201/PC-8300 :"); lsx(app_lib_dir,"NEC"," %s"); - dbg(0,"\nKyotronic KC-85 :"); lsx(app_lib_dir,"K85"," %s"); - dbg(0,"\nOlivetti M-10 :"); lsx(app_lib_dir,"M10"," %s"); - - dbg(0,"\n\nDisk image files for use with -i :\n" - "---------------------------------\n"); - lsx(app_lib_dir,"pdd1","%s\n"); - dbg(0,"\n"); - lsx(app_lib_dir,"pdd2","%s\n"); - - dbg(0, - "\n" - "Filenames are searched in the current directory first,\n" - "and then in %2$s\n" - "\n" - "Examples:\n\n" - " %1$s -b TS-DOS.100\n" - " %1$s -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100\n" - " %1$s -vb rxcini.DO && %1$s -v\n" - " %1$s -v -i Sardine_American_English.pdd1\n\n" - ,args[0],app_lib_dir); -} - void slowbyte(uint8_t b) { write_client_tty(&b,1); tcdrain(client_tty_fd); @@ -2643,6 +2668,93 @@ void show_main_help() { } +void show_bootstrap_help(int e) { + + dbg(0, + "\n" + "Help for Bootstrap\n" + "\n" + "Usage:\n" + " -b filename send file out over the serial port, slowly\n" + " -v -b more help about bootstrap\n" + "\n" + "If filename is not found, then %1$s is searched.\n" + "\n" + ,app_lib_dir + ); + dbg(1, + "The bootstrap function is a convenient way to load software onto\n" + "KC-85 clone machines like TRS-80 Model 100 via the serial port,\n" + "when there is no proper file-transfer software installed yet.\n" + "\n" + "It just does the same thing you could do manually with TELCOM and any\n" + "kind of serial terminal program on the pc, but automates the process\n" + "to the fewest possible manual steps, and the few necessary manual steps\n" + "have on-screen prompts so you never have to remember the key details.\n" + "\n" + " should be a valid BASIC program file in ascii format,\n" + "meaning a plain text *.DO file not a tokenized *.BA file.\n" + "\n" + "Line-endings may be either CRLF or CR-only, but not LF-only.\n" + "Lines may be up to 255 bytes long, although the interactive editor\n" + "in the BASIC interpreter can not handle lines longer than 127 bytes.\n" + "\n" + "The file should have a CR or CRLF at the end of the last line,\n" + "and a ^Z (0x1A) after that as the last byte in the file.\n" + "If the final ^Z is missing then one will be sent after the data.\n" + "\n" + "Follow the on-screen prompts. First, dl2 will display a prompt showing\n" + "the RUN \"COM:...\" command to run on the receiving machine, and waits\n" + "for you to press Enter before proceeding.\n" + "\n" + "Open BASIC on the portable and type-in the displayed RUN command\n" + "and hit Enter there. BASIC will now look hung because there will be no\n" + "cursor or propmt or any other visible activity on the portable.\n" + "\n" + "Then press Enter here on the pc. The file will then start streaming\n" + "over to the portable, and will immediately start executing as soon as\n" + "the BASIC reads the ending ^Z." + "\n" + "Some installers have further instructions for that particular installer,\n" + "displayed either here on the pc or on the portable.\n" + "\n" + "If you want to keep the transferred BASIC instead of immediately\n" + "execute-and-discard, then where the prompt says RUN \"COM:98N1ENN\",\n" + "you can just type LOAD \"COM:98N1ENN\" instead, then SAVE \"NAME\" .\n" + "\n" + "This process is also handy for random ad-hoc transfers of any text or\n" + "basic files, not just program installers, simply because it removes all\n" + "of the variables of getting two comm programs configured correctly on\n" + "both ends of the serial link.\n" + "\n" + ); + dbg(0, + "Available built-in bootstrap/loader files (in %s):\n" + "\n" + ,app_lib_dir + ); + + dbg(0, "TRS-80 Model 100/102 :"); lsx(app_lib_dir,"100"," %s"); + dbg(0,"\nTANDY Model 200 :"); lsx(app_lib_dir,"200"," %s"); + dbg(0,"\nNEC PC-8201/PC-8300 :"); lsx(app_lib_dir,"NEC"," %s"); + dbg(0,"\nKyotronic KC-85 :"); lsx(app_lib_dir,"K85"," %s"); + dbg(0,"\nOlivetti M-10 :"); lsx(app_lib_dir,"M10"," %s"); + + dbg(0, + "\n" + "\n" + "Examples:\n" + "\n" + " %1$s -b TS-DOS.100\n" + " %1$s -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100\n" + " %1$s -vb rxcini.DO && %1$s -v\n" + "\n" + ,args[0] + ); + + exit(e); +} + int main(int argc, char** argv) { dbg(0,APP_NAME " " APP_VERSION "\n"); @@ -2689,7 +2801,7 @@ int main(int argc, char** argv) { #endif case 'h': show_main_help(); exit(0); break; case 'i': strcpy(disk_img_fname,optarg); break; - case 'l': show_bootstrap_help(); exit(0); break; // back compat, short for -b "" / -b help + case 'l': show_bootstrap_help(0); break; // back compat, short for -b help / -i help case 'm': model = atoi(optarg); break; case 'n': dme_en = false; break; // back compat, short for -e false //case 'n': set_fnames(optarg); break; @@ -2704,7 +2816,8 @@ int main(int argc, char** argv) { case '~': tildes = atobool(optarg); break; case '^': x = true; break; case ':': dbg(0,"\"-%c\" requires a value\n",optopt); - if (optopt=='b'||optopt=='i') { show_bootstrap_help(); exit(0); } + if (optopt=='b') show_bootstrap_help(0); + if (optopt=='i') show_diskimage_help(0); if (optopt=='c') show_profiles_help(0); show_main_help(); return 1; case '?': diff --git a/ref/disk_image_files.txt b/ref/disk_image_files.txt index fc99c35..e238c7f 100644 --- a/ref/disk_image_files.txt +++ b/ref/disk_image_files.txt @@ -50,23 +50,21 @@ filesystem, but the installer uses fdc-mode sector access to read sectret data from some sectors that aren't marked as in-use in the FCB ot SMT tables. Generally, you also need to use some extra commandline options to disable -TS-DOS directory extensions support (-n), and to force stricter TPDD1-only +TS-DOS directory extensions support (-e off), and to force stricter TPDD1-only or TPDD2-only emulation (-m 1) or (-m 2). Example: -$ dl -vun -m 1 -i Sardine_American_English.pdd1 +$ dl -v -e off -m 1 -i Sardine_American_English.pdd1 -That isn't required to use disk images in general, it's just that in both -of these real examples, the client software does things that trigger unexpected -responses from the server that a real drive wouldn't do, so the extra options -make the server act more like a real drive, as the client software expects. -Some other client software may or may not do wierd things and may or may not -need the stricter emulation. +That isn't required to use disk images in general, it's just that in both of +these real examples, the software involved happens to do things that trigger +responses from an emulator that a real drive wouldn't do, so the extra options +just turn off features and make the server act more strictly like a real drive. Disk image files can be created with https://github.co/bkw777/pdd.sh dl2 can also create new disk images from client-issued format and sector -access commands. Example: run "$ dl -vvn -m 1 -i ./newdisk.pdd1" -and then use a client to "format" the "disk". +access commands. Example: run "$ dl -vv -e off -m 1 -i ./newdisk.pdd1" +and then use a client (like TS-DOS) to "format" the "disk". For TPDD1, both the FDC-mode the Operation-mode format commands do what a real drive does. The FDC-mode format just generates all nulls and the one logical From 8b17554f507d348a323740879d8d4aef271658e8 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 30 Jan 2025 11:57:29 -0500 Subject: [PATCH 201/206] readme --- README.md | 61 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index df0aaeb..e12d77c 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ $ sudo make uninstall ## Manual ``` $ dl -h -DeskLink2 v2.2.001-1-gce946d5 +DeskLink2 v2.2.001-7-g1cd1b38 Usage: dl [options] [tty_device] [share_path] @@ -48,41 +48,36 @@ Examples: $ dl ttyUSB1 $ dl -v -p ~/Downloads/REX $ dl -c wp2 /dev/cu.usbserial-AB0MQNN1 "~/Documents/WP-2 Files" - $ dl -m2 -p /tmp/bank0 -p /tmp/bank1 $ ``` ``` $ dl -b -DeskLink2 v2.2.001-1-gce946d5 +DeskLink2 v2.2.001-7-g1cd1b38 "-b" requires a value -Available support files in /usr/local/lib/dl +Help for Bootstrap -Bootstrap/Loader files for use with -b : ------------------------------ -TRS-80 Model 100/102 : DSKMGR.100 TSLOAD.100 TS-DOS.100 TINY.100 D.100 TEENY.100 PAKDOS.100 -TANDY Model 200 : DSKMGR.200 TSLOAD.200 TS-DOS.200 PAKDOS.200 TEENY.200 -NEC PC-8201/PC-8300 : TEENY.NEC TS-DOS.NEC -Kyotronic KC-85 : DSKMGR.K85 Disk_Power.K85 -Olivetti M-10 : TEENY.M10 DSKMGR.M10 +Usage: + -b filename send file out over the serial port, slowly + -v -b more help about bootstrap -Disk image files for use with -i : ---------------------------------- -Sardine_American_English.pdd1 -Disk_Power.K85.pdd1 +If filename is not found, then /usr/local/lib/dl is searched. +Available built-in bootstrap/loader files (in /usr/local/lib/dl): -Filenames are searched in the current directory first, -and then in /usr/local/lib/dl +TRS-80 Model 100/102 : DSKMGR.100 D.100 TSLOAD.100 TS-DOS.100 PAKDOS.100 TEENY.100 TINY.100 +TANDY Model 200 : DSKMGR.200 TSLOAD.200 TS-DOS.200 PAKDOS.200 TEENY.200 +NEC PC-8201/PC-8300 : TEENY.NEC TS-DOS.NEC +Kyotronic KC-85 : Disk_Power.K85 DSKMGR.K85 +Olivetti M-10 : TEENY.M10 DSKMGR.M10 Examples: dl -b TS-DOS.100 dl -b ~/Documents/LivingM100SIG/Lib-03-TELCOM/XMDPW5.100 - dl -vb rxcini.DO && ./dl -v - dl -v -i Sardine_American_English.pdd1 + dl -vb rxcini.DO && dl -v $ ``` @@ -115,8 +110,34 @@ st 6 2 on 'F' off off off $ ``` +``` +$ dl -i +DeskLink2 v2.2.001-7-g1cd1b38 +"-i" requires a value + +Help for Disk Images + +Usage: + -i filename use disk image file + -v -i more help about disk images + +Available built-in (bundled) disk image files (in /usr/local/lib/dl): + +TPDD1: + TPDD1_26-3808_Utility_Disk.pdd1 + Sardine_American_English.pdd1 + Disk_Power.K85.pdd1 +TPDD2: + TPDD2_26-3814_Utility_Disk.pdd2 + +Examples: + dl -v -i Sardine_American_English.pdd1 + dl -v -i ./my_new_disk.pdd2 + +$ +``` -Several of the above settings can alternatively be supplied via environment variables, as well as a few other [hacky extra options](ref/advanced_options.txt) +There are also several [environment variables](ref/advanced_options.txt) Docs from the past versions of this program. They don't exactly match this version any more. [README.txt](README.txt) from [dlplus](http://bitchin100.com/files/linux/dlplus.zip) by John R. Hogerhuis From 33b34c14842f9e8953d32dab54d3a5573f4b3de6 Mon Sep 17 00:00:00 2001 From: bkw777 Date: Thu, 30 Jan 2025 14:11:15 -0500 Subject: [PATCH 202/206] upcase cpm by default --- README.md | 6 +++--- main.c | 35 +++++++++++++++++++++++++++++------ 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index e12d77c..4bca671 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ $ ``` $ dl -c -DeskLink2 v2.2.001-7-g1cd1b38 +DeskLink2 v2.2.001-9-g8b17554 "-c" requires a value Help for Client Compatibility Profiles @@ -102,10 +102,10 @@ NAME BASE EXT PAD ATTR DME TSLOAD UPCASE raw 0 0 off ' ' off off off k85 6 2 on 'F' on on on wp2 8 2 on 'F' off off off -cpm 8 3 off 'F' off off off +cpm 8 3 off 'F' off off on rexcpm 6 2 on 'F' off off on z88 12 3 off 'F' off off off -st 6 2 on 'F' off off off +st 6 2 on 'F' off off on $ ``` diff --git a/main.c b/main.c index adc4570..02251b0 100644 --- a/main.c +++ b/main.c @@ -162,22 +162,45 @@ const char * magic_files[] = { }; // client compatibility profiles -// kc-85 platform can use lowercase filenames just fine, but at least both both +// +// KC-85 +// The platform can use lowercase filenames just fine, but at least both // TS-DOS and TEENY convert to uppercase in places, so upcase to avoid the battle. -// REXCPM native is cpm, but import & export forces 6.2 upcase. +// +// CP/M +// https://www.shaels.net/index.php/cpm80-22-documents/using-cpm/3-file-names +// "The CPM CPP module converts commands into upper case before they are executed +// which leads many to believe that the CPM file system is not case sensitive, +// when in fact the CPM file system is case sensitive. If you use a CPM program +// such as Microsoft Basic you can create file names which contain lower case +// characters. The problem is files which contain lower case characters can not +// be specified as parameters at the CPP command prompt, as the characters will +// be converted to upper case by the CPP before the command is executed." +// So upcase to avoid the battle... +// +// REXCPM native is CP/M, but import & export are limited further to 6.2 upcase. +// // Cambridge Z88 native is 12.3, not sure what DISCMNGR or DISC_RBL actually does. -// Atari ST native is cpm, but PDDOS limits to 6.2 . -// No xenix client exists probably, but it would be 14.0 . +// +// Atari ST native is CP/M, later MS-DOS, but PDDOS limits to 6.2 +// +// MS-DOS (Atari Portfolio) by rights would be this: +// { "msdos", 8, 3, false, ATTR_RAW, false, false, false }, +// except most of the pdd software was only made to work with Floppy/TS-DOS, +// disks so even with an ms-dos client you usually want to use k85 or cpm +// +// Probably no xenix client exists until I port one, but it would be this: // { "xenix", 14, 0, false, ATTR_RAW, false, false, false } +// // id, base, ext, pad, attr, dme, magic, upcase #define CLIENT_PROFILES { \ { "raw", 0, 0, false, ATTR_RAW, false, false, false }, \ { "k85", 6, 2, true, ATTR_DEF, true, true, true }, \ { "wp2", 8, 2, true, ATTR_DEF, false, false, false }, \ - { "cpm", 8, 3, false, ATTR_DEF, false, false, false }, \ + { "cpm", 8, 3, false, ATTR_DEF, false, false, true }, \ { "rexcpm", 6, 2, true, ATTR_DEF, false, false, true }, \ { "z88", 12, 3, false, ATTR_DEF, false, false, false }, \ - { "st", 6, 2, true, ATTR_DEF, false, false, false } \ + { "st", 6, 2, true, ATTR_DEF, false, false, true } \ } // terminal emulation From 2654a7fad6f434d2ca7cf656b13555af35de538b Mon Sep 17 00:00:00 2001 From: "Brian K. White" <54458165+bkw777@users.noreply.github.com> Date: Fri, 31 Jan 2025 13:35:53 -0500 Subject: [PATCH 203/206] Update xattr.md --- ref/xattr.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ref/xattr.md b/ref/xattr.md index 6f326fd..ee1d8b6 100644 --- a/ref/xattr.md +++ b/ref/xattr.md @@ -88,7 +88,7 @@ As with a real drive, both the filename and attr must match in order to access a filename "foo" with attr "a" and filename "foo" with attr "b" -are two different files. +are two different files, basically the same as if one were named "fooa" and one were named "foob" For instance to load or delete one of these files that has a non-default attr, you have to specify both the filename and the attr : `PDD(opr:6.2,F)> rm T3.DO d` @@ -97,6 +97,21 @@ This is working on Linux, Macos, & FreeBSD. For any platform that isn't supported, or on any filesystem that doesn't have extended attributes, or any new local files that weren't created by a tpdd client, it will just transparently work the old way. Attr will be 'F' or whatever the "-a" commandline flag or the ATTR environment variable says. +## notes + +To see xattrs on files: +`getfattr -d -- NAME.BA` +`getfattr -d -- *` + +cp, tar, rsync, etc don't preserve xattrs with files by default. + +They all have options for it, so you can preserve the xattrs in copies, it's just not the default behavior. + +Even text editors may need extra config so they don't unlink & create a new file on each save. + +In reality, you will never notice or care because everything that you ever want to use with a TPDD emulator, they all happen to always hard-code attr=F at all times, and that is the same thing dl2 will do any time a file has no xattr. +This is the same as all tpdd emulators which have all been hard-coding 'F' all along anyway since the beginning in 1984. + ## misc references Wrapper to provide a single interface to the different platforms xattr interfaces. Interesting but not used because it's c++ not plain c. From 7babf82c2c7e17971f2bf73556151a55d4a389ba Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 4 Feb 2025 15:17:49 -0500 Subject: [PATCH 204/206] fix -i broken in last update --- main.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/main.c b/main.c index 02251b0..5d58453 100644 --- a/main.c +++ b/main.c @@ -738,21 +738,23 @@ void find_lib_file (char* f) { } -int check_disk_image () { +int set_disk_image (char* f) { -// if (!disk_img_fname[0]) return 0; - if (ckhelp(disk_img_fname)) show_diskimage_help(0); + if (ckhelp(f)) show_diskimage_help(0); - dbg(3,"looking for disk image \"%s\"\n",disk_img_fname); + dbg(3,"looking for disk image \"%s\"\n",f); - find_lib_file(disk_img_fname); + char t[PATH_MAX+1]={0x00}; + strcpy(t,f); + + find_lib_file(t); - // disk_img_fname has now been re-written if and as necessary, - // and still may or may not exist + // f has now possibly been re-written with the path to a bundled file, + // or not, and still may or may not exist struct stat info; - if (!stat(disk_img_fname, &info) && info.st_size>0) { + if (!stat(t, &info) && info.st_size>0) { // if file exists and >0 bytes - dbg(1,"Loading disk image file \"%s\"\n",disk_img_fname); + dbg(1,"Loading disk image file \"%s\"\n",t); // use file size to automatically set model 1 vs 2 or reject file if (info.st_size==PDD1_IMG_LEN) model = 1; @@ -767,23 +769,24 @@ int check_disk_image () { } } else { // if file doesn't exist or is 0 bytes - dbg(1,"Disk image file \"%s\" is empty or does not exist.\nIt will be created if the client issues a format command.\n",disk_img_fname); + dbg(1,"Disk image file \"%s\" is empty or does not exist.\nIt will be created if the client issues a format command.\n",t); // use file name to automatically set model 1 vs 2 char ext[6] = {0}; - strncpy(ext,disk_img_fname+strlen(disk_img_fname)-5,5); + strncpy(ext,t+strlen(f)-5,5); if (!strcasecmp(ext,DEFAULT_TPDD1_IMG_SUFFIX)) model = 1; else if (!strcasecmp(ext,DEFAULT_TPDD2_IMG_SUFFIX)) model = 2; } + memset(disk_img_fname,0,PATH_MAX+1); + // rewrite with leading path if not already // because we we may cd all over the place - if (disk_img_fname[0]=='/') return 0; - char t[PATH_MAX+1] = {0}; - strcpy(t,iwd); - strcat(t,"/"); - strcat(t,disk_img_fname); - memcpy(disk_img_fname,t,PATH_MAX+1); + if (t[0]!='/') { + strcpy(disk_img_fname,iwd); + strcat(disk_img_fname,"/"); + } + strcat(disk_img_fname,t); return 0; } @@ -2823,7 +2826,7 @@ int main(int argc, char** argv) { case 'g': getty_mode = true; debug = 0; break; #endif case 'h': show_main_help(); exit(0); break; - case 'i': strcpy(disk_img_fname,optarg); break; + case 'i': set_disk_image(optarg); break; case 'l': show_bootstrap_help(0); break; // back compat, short for -b help / -i help case 'm': model = atoi(optarg); break; case 'n': dme_en = false; break; // back compat, short for -e false @@ -2868,8 +2871,6 @@ int main(int argc, char** argv) { resolve_client_tty_name(); find_lib_file(bootstrap_fname); - // delay loading the default profile until after options are parsed - //if (!profile) load_profile(DEFAULT_PROFILE); if (x) { show_config(); return 0; } dbg(0, "Serial Device: %s\n",client_tty_name); @@ -2880,7 +2881,6 @@ int main(int argc, char** argv) { if (bootstrap_fname[0]) return (bootstrap(bootstrap_fname)); // further setup that's only needed for tpdd - if (check_disk_image()) return 1; // this may set model=1 or 2 based on disk image size or name if (model==2) { load_rom(TPDD2_ROM); dme_en=false; } if (dme_en && base_len && base_len<=6) memcpy(dme_cwd,dme_root_label,base_len); cfnl = base_len + 1 + ext_len; // client filename length From 487a86ad8d9f8e49bf56942895be60fd680c055f Mon Sep 17 00:00:00 2001 From: bkw777 Date: Tue, 4 Feb 2025 19:47:20 -0500 Subject: [PATCH 205/206] function name --- main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index 5d58453..0171f0f 100644 --- a/main.c +++ b/main.c @@ -738,7 +738,7 @@ void find_lib_file (char* f) { } -int set_disk_image (char* f) { +int set_disk_img_fname (char* f) { if (ckhelp(f)) show_diskimage_help(0); @@ -2826,7 +2826,7 @@ int main(int argc, char** argv) { case 'g': getty_mode = true; debug = 0; break; #endif case 'h': show_main_help(); exit(0); break; - case 'i': set_disk_image(optarg); break; + case 'i': set_disk_img_fname(optarg); break; case 'l': show_bootstrap_help(0); break; // back compat, short for -b help / -i help case 'm': model = atoi(optarg); break; case 'n': dme_en = false; break; // back compat, short for -e false From 0aed893cf86f90600ebe5b7b12686961ce70e9da Mon Sep 17 00:00:00 2001 From: bkw777 Date: Wed, 5 Feb 2025 05:11:17 -0500 Subject: [PATCH 206/206] comments --- main.c | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/main.c b/main.c index 0171f0f..e0df0e4 100644 --- a/main.c +++ b/main.c @@ -705,16 +705,17 @@ void cd_share_path () { update_cwd(); } -// maybe rewrite f[] with /path/to/f +// find file f either directly or in app_lib_dir +// maybe rewrite f with /path/to/f void find_lib_file (char* f) { - if (f[0]==0x00) return; + if (f[0]==0) return; - char t[PATH_MAX+1]={0x00}; + char t[PATH_MAX+1]={0}; // rewrite ~/foo to $HOME/foo if (f[0]=='~' && f[1]=='/') { strcpy(t,f); - memset(f,0x00,PATH_MAX); + memset(f,0,PATH_MAX); strcpy(f,getenv("HOME")); strcat(f,t+1); } @@ -725,31 +726,36 @@ void find_lib_file (char* f) { if (!access(f,F_OK)) return; // if pathless filename exists & accessible, use it as-is // none of above matched, look in app_lib_dir - memset(t,0x00,PATH_MAX); + memset(t,0,PATH_MAX); strcpy(t,app_lib_dir); strcat(t,"/"); strcat(t,f); // if found in app_lib_dir then rewrite with that path if (!access(t,F_OK)) { - memset(f,0x00,PATH_MAX); + memset(f,0,PATH_MAX); strcpy(f,t); } - // else leave f[] as it was, some consumers create the file if not exist + + // else leave f[] as it was + //no error as some consumers create the file if not exist } +// find file f either directly or in app_lib_dir +// examine for tpdd1 vs tpdd2 +// set disk_img_fname int set_disk_img_fname (char* f) { if (ckhelp(f)) show_diskimage_help(0); dbg(3,"looking for disk image \"%s\"\n",f); - char t[PATH_MAX+1]={0x00}; - strcpy(t,f); + char t[PATH_MAX+1]={0}; + strncpy(t,f,PATH_MAX); find_lib_file(t); - // f has now possibly been re-written with the path to a bundled file, + // t has now possibly been re-written with the path to a bundled file, // or not, and still may or may not exist struct stat info; if (!stat(t, &info) && info.st_size>0) { @@ -759,6 +765,8 @@ int set_disk_img_fname (char* f) { // use file size to automatically set model 1 vs 2 or reject file if (info.st_size==PDD1_IMG_LEN) model = 1; if (info.st_size==PDD2_IMG_LEN) model = 2; + + // user may have explicitly used -m 1 or -m 2 if (model==1 && info.st_size != PDD1_IMG_LEN) { dbg(0,"%d bytes, expected %u bytes for TPDD1\n",info.st_size,PDD1_IMG_LEN); return 1; @@ -767,13 +775,17 @@ int set_disk_img_fname (char* f) { dbg(0,"%d bytes, expected %u bytes for TPDD2\n",info.st_size,PDD2_IMG_LEN); return 1; } + } else { - // if file doesn't exist or is 0 bytes + // if file doesn't exist or is 0 bytes, create it + dbg(1,"Disk image file \"%s\" is empty or does not exist.\nIt will be created if the client issues a format command.\n",t); // use file name to automatically set model 1 vs 2 + // overrides -m if -i came after -m + // ext = dot pddN null char ext[6] = {0}; - strncpy(ext,t+strlen(f)-5,5); + strcpy(ext,t+strlen(t)-5); if (!strcasecmp(ext,DEFAULT_TPDD1_IMG_SUFFIX)) model = 1; else if (!strcasecmp(ext,DEFAULT_TPDD2_IMG_SUFFIX)) model = 2; }