diff --git a/CVSROOT/checkoutlist b/CVSROOT/checkoutlist deleted file mode 100644 index 4c45a691d0..0000000000 --- a/CVSROOT/checkoutlist +++ /dev/null @@ -1,14 +0,0 @@ -# The "checkoutlist" file is used to support additional version controlled -# administrative files in $CVSROOT/CVSROOT, such as template files. -# -# The first entry on a line is a filename which will be checked out from -# the corresponding RCS file in the $CVSROOT/CVSROOT directory. -# The remainder of the line is an error message to use if the file cannot -# be checked out. -# -# File format: -# -# [] -# -# comment lines begin with '#' -syncmail diff --git a/CVSROOT/commitinfo b/CVSROOT/commitinfo deleted file mode 100644 index b19e7b7a63..0000000000 --- a/CVSROOT/commitinfo +++ /dev/null @@ -1,15 +0,0 @@ -# The "commitinfo" file is used to control pre-commit checks. -# The filter on the right is invoked with the repository and a list -# of files to check. A non-zero exit of the filter program will -# cause the commit to be aborted. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being committed to, relative -# to the $CVSROOT. For the first match that is found, then the remainder -# of the line is the name of the filter to run. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/config b/CVSROOT/config deleted file mode 100644 index 8069cad5df..0000000000 --- a/CVSROOT/config +++ /dev/null @@ -1,11 +0,0 @@ -# Set this to "no" if pserver shouldn't check system users/passwords -#SystemAuth=no - -# Set `PreservePermissions' to `yes' to save file status information -# in the repository. -#PreservePermissions=no - -# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top -# level of the new working directory when using the `cvs checkout' -# command. -#TopLevelAdmin=no diff --git a/CVSROOT/cvswrappers b/CVSROOT/cvswrappers deleted file mode 100644 index 0accaf1b15..0000000000 --- a/CVSROOT/cvswrappers +++ /dev/null @@ -1,23 +0,0 @@ -# This file affects handling of files based on their names. -# -# The -t/-f options allow one to treat directories of files -# as a single file, or to transform a file in other ways on -# its way in and out of CVS. -# -# The -m option specifies whether CVS attempts to merge files. -# -# The -k option specifies keyword expansion (e.g. -kb for binary). -# -# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers) -# -# wildcard [option value][option value]... -# -# where option is one of -# -f from cvs filter value: path to filter -# -t to cvs filter value: path to filter -# -m update methodology value: MERGE or COPY -# -k expansion mode value: b, o, kkv, &c -# -# and value is a single-quote delimited value. -# For example: -#*.gif -k 'b' diff --git a/CVSROOT/editinfo b/CVSROOT/editinfo deleted file mode 100644 index d78886c152..0000000000 --- a/CVSROOT/editinfo +++ /dev/null @@ -1,21 +0,0 @@ -# The "editinfo" file is used to allow verification of logging -# information. It works best when a template (as specified in the -# rcsinfo file) is provided for the logging procedure. Given a -# template with locations for, a bug-id number, a list of people who -# reviewed the code before it can be checked in, and an external -# process to catalog the differences that were code reviewed, the -# following test can be applied to the code: -# -# Making sure that the entered bug-id number is correct. -# Validating that the code that was reviewed is indeed the code being -# checked in (using the bug-id number or a seperate review -# number to identify this particular code set.). -# -# If any of the above test failed, then the commit would be aborted. -# -# Actions such as mailing a copy of the report to each reviewer are -# better handled by an entry in the loginfo file. -# -# One thing that should be noted is the the ALL keyword is not -# supported. There can be only one entry that matches a given -# repository. diff --git a/CVSROOT/loginfo b/CVSROOT/loginfo deleted file mode 100644 index cc30966daf..0000000000 --- a/CVSROOT/loginfo +++ /dev/null @@ -1,32 +0,0 @@ -# The "loginfo" file controls where "cvs commit" log information -# is sent. The first entry on a line is a regular expression which must match -# the directory that the change is being made to, relative to the -# $CVSROOT. If a match is found, then the remainder of the line is a filter -# program that should expect log information on its standard input. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name ALL appears as a regular expression it is always used -# in addition to the first matching regex or DEFAULT. -# -# You may specify a format string as part of the -# filter. The string is composed of a `%' followed -# by a single format character, or followed by a set of format -# characters surrounded by `{' and `}' as separators. The format -# characters are: -# -# s = file name -# V = old version number (pre-checkin) -# v = new version number (post-checkin) -# -# For example: -#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog -# or -#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog -CVSROOT $CVSROOT/CVSROOT/syncmail -C4 -u %{sVv} zagor@users.sourceforge.net -^apps $CVSROOT/CVSROOT/syncmail -C4 -u %{sVv} rockbox-cvs@cool.haxx.se cvs@haxx.se -^firmware $CVSROOT/CVSROOT/syncmail -C4 -u %{sVv} rockbox-cvs@cool.haxx.se cvs@haxx.se -^uisimulator $CVSROOT/CVSROOT/syncmail -C4 -u %{sVv} rockbox-cvs@cool.haxx.se cvs@haxx.se -^tools $CVSROOT/CVSROOT/syncmail -C4 -u %{sVv} rockbox-cvs@cool.haxx.se cvs@haxx.se -^gdb $CVSROOT/CVSROOT/syncmail -C4 -u %{sVv} rockbox-cvs@cool.haxx.se cvs@haxx.se diff --git a/CVSROOT/modules b/CVSROOT/modules deleted file mode 100644 index cb9e9efc94..0000000000 --- a/CVSROOT/modules +++ /dev/null @@ -1,26 +0,0 @@ -# Three different line formats are valid: -# key -a aliases... -# key [options] directory -# key [options] directory files... -# -# Where "options" are composed of: -# -i prog Run "prog" on "cvs commit" from top-level of module. -# -o prog Run "prog" on "cvs checkout" of module. -# -e prog Run "prog" on "cvs export" of module. -# -t prog Run "prog" on "cvs rtag" of module. -# -u prog Run "prog" on "cvs update" of module. -# -d dir Place module in directory "dir" instead of module name. -# -l Top-level directory only -- do not recurse. -# -# NOTE: If you change any of the "Run" options above, you'll have to -# release and re-checkout any working directories of these modules. -# -# And "directory" is a path to a directory relative to $CVSROOT. -# -# The "-a" option specifies an alias. An alias is interpreted as if -# everything on the right of the "-a" had been typed on the command line. -# -# You can encode a module within a module by using the special '&' -# character to interpose another module into the current module. This -# can be useful for creating a module that consists of many directories -# spread out over the entire source repository. diff --git a/CVSROOT/notify b/CVSROOT/notify deleted file mode 100644 index 34f0bc2888..0000000000 --- a/CVSROOT/notify +++ /dev/null @@ -1,12 +0,0 @@ -# The "notify" file controls where notifications from watches set by -# "cvs watch add" or "cvs edit" are sent. The first entry on a line is -# a regular expression which is tested against the directory that the -# change is being made to, relative to the $CVSROOT. If it matches, -# then the remainder of the line is a filter program that should contain -# one occurrence of %s for the user to notify, and information on its -# standard input. -# -# "ALL" or "DEFAULT" can be used in place of the regular expression. -# -# For example: -#ALL mail %s -s "CVS notification" diff --git a/CVSROOT/rcsinfo b/CVSROOT/rcsinfo deleted file mode 100644 index 49e59f4d0d..0000000000 --- a/CVSROOT/rcsinfo +++ /dev/null @@ -1,13 +0,0 @@ -# The "rcsinfo" file is used to control templates with which the editor -# is invoked on commit and import. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being made to, relative to the -# $CVSROOT. For the first match that is found, then the remainder of the -# line is the name of the file that contains the template. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/syncmail b/CVSROOT/syncmail deleted file mode 100755 index ce467a80ba..0000000000 --- a/CVSROOT/syncmail +++ /dev/null @@ -1,210 +0,0 @@ -#! /usr/bin/python -# -*- Python -*- - -"""Complicated notification for CVS checkins. - -This script is used to provide email notifications of changes to the CVS -repository. These email changes will include context diffs of the changes. -Really big diffs will be trimmed. - -This script is run from a CVS loginfo file (see $CVSROOT/CVSROOT/loginfo). To -set this up, create a loginfo entry that looks something like this: - - mymodule /path/to/this/script %%s some-email-addr@your.domain - -In this example, whenever a checkin that matches `mymodule' is made, this -script is invoked, which will generate the diff containing email, and send it -to some-email-addr@your.domain. - - Note: This module used to also do repository synchronizations via - rsync-over-ssh, but since the repository has been moved to SourceForge, - this is no longer necessary. The syncing functionality has been ripped - out in the 3.0, which simplifies it considerably. Access the 2.x versions - to refer to this functionality. Because of this, the script is misnamed. - -It no longer makes sense to run this script from the command line. Doing so -will only print out this usage information. - -Usage: - - %(PROGRAM)s [options] <%%S> email-addr [email-addr ...] - -Where options is: - - --cvsroot= -Use as the environment variable CVSROOT. Otherwise this - variable must exist in the environment. - - --help - -h - Print this text. - - --context=# - -C # - Include # lines of context around lines that differ (default: 2). - - -c - Produce a context diff (default). - - -u - Produce a unified diff (smaller, but harder to read). - - <%%S> -CVS %%s loginfo expansion. When invoked by CVS, this will be a single - string containing the directory the checkin is being made in, relative - to $CVSROOT, followed by the list of files that are changing. If the - %%s in the loginfo file is %%{sVv}, context diffs for each of the - modified files are included in any email messages that are generated. - - email-addrs - At least one email address. - -""" - -import os -import sys -import string -import time -import getopt - -# Notification command -MAILCMD = '/bin/mail -s "cvs: %(SUBJECT)s" %(PEOPLE)s 2>&1 > /dev/null' - -# Diff trimming stuff -DIFF_HEAD_LINES = 20 -DIFF_TAIL_LINES = 20 -DIFF_TRUNCATE_IF_LARGER = 1000 - -PROGRAM = sys.argv[0] - - - -def usage(code, msg=''): - print __doc__ % globals() - if msg: - print msg - sys.exit(code) - - - -def calculate_diff(filespec, contextlines): - try: - file, oldrev, newrev = string.split(filespec, ',') - except ValueError: - # No diff to report - return '***** Bogus filespec: %s' % filespec - if oldrev == 'NONE': - try: - if os.path.exists(file): - fp = open(file) - else: - update_cmd = 'cvs -fn update -r %s -p %s' % (newrev, file) - fp = os.popen(update_cmd) - lines = fp.readlines() - fp.close() - lines.insert(0, '--- NEW FILE: %s ---\n' % file) - except IOError, e: - lines = ['***** Error reading new file: ', - str(e), '\n***** file: ', file, ' cwd: ', os.getcwd()] - elif newrev == 'NONE': - lines = ['--- %s DELETED ---\n' % file] - else: - # This /has/ to happen in the background, otherwise we'll run into CVS - # lock contention. What a crock. - if contextlines > 0: - difftype = "-C " + str(contextlines) - else: - difftype = "-uN" - diffcmd = '/usr/bin/cvs -f diff -kk %s -b -r %s -r %s %s' % ( - difftype, oldrev, newrev, file) - fp = os.popen(diffcmd) - lines = fp.readlines() - sts = fp.close() - # ignore the error code, it always seems to be 1 :( -## if sts: -## return 'Error code %d occurred during diff\n' % (sts >> 8) - if len(lines) > DIFF_TRUNCATE_IF_LARGER: - removedlines = len(lines) - DIFF_HEAD_LINES - DIFF_TAIL_LINES - del lines[DIFF_HEAD_LINES:-DIFF_TAIL_LINES] - lines.insert(DIFF_HEAD_LINES, - '[...%d lines suppressed...]\n' % removedlines) - return string.join(lines, '') - - - -def blast_mail(mailcmd, filestodiff, contextlines): - # cannot wait for child process or that will cause parent to retain cvs - # lock for too long. Urg! - if not os.fork(): - # in the child - # give up the lock you cvs thang! - time.sleep(2) - fp = os.popen(mailcmd, 'w') - fp.write(sys.stdin.read()) - fp.write('\n') - # append the diffs if available - for file in filestodiff: - fp.write(calculate_diff(file, contextlines)) - fp.write('\n') - fp.close() - # doesn't matter what code we return, it isn't waited on - os._exit(0) - - - -# scan args for options -def main(): - contextlines = 2 - try: - opts, args = getopt.getopt(sys.argv[1:], 'hC:cu', - ['context=', 'cvsroot=', 'help']) - except getopt.error, msg: - usage(1, msg) - - # parse the options - for opt, arg in opts: - if opt in ('-h', '--help'): - usage(0) - elif opt == '--cvsroot': - os.environ['CVSROOT'] = arg - elif opt in ('-C', '--context'): - contextlines = int(arg) - elif opt == '-c': - if contextlines <= 0: - contextlines = 2 - elif opt == '-u': - contextlines = 0 - - # What follows is the specification containing the files that were - # modified. The argument actually must be split, with the first component - # containing the directory the checkin is being made in, relative to - # $CVSROOT, followed by the list of files that are changing. - if not args: - usage(1, 'No CVS module specified') - SUBJECT = args[0] - specs = string.split(args[0]) - del args[0] - - # The remaining args should be the email addresses - if not args: - usage(1, 'No recipients specified') - - # Now do the mail command - PEOPLE = string.join(args) - mailcmd = MAILCMD % vars() - - print 'Mailing %s...' % PEOPLE - if specs == ['-', 'Imported', 'sources']: - return - if specs[-3:] == ['-', 'New', 'directory']: - del specs[-3:] - print 'Generating notification message...' - blast_mail(mailcmd, specs[1:], contextlines) - print 'Generating notification message... done.' - - - -if __name__ == '__main__': - main() - sys.exit(0) - diff --git a/CVSROOT/taginfo b/CVSROOT/taginfo deleted file mode 100644 index 274a46dd5b..0000000000 --- a/CVSROOT/taginfo +++ /dev/null @@ -1,20 +0,0 @@ -# The "taginfo" file is used to control pre-tag checks. -# The filter on the right is invoked with the following arguments: -# -# $1 -- tagname -# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d -# $3 -- repository -# $4-> file revision [file revision ...] -# -# A non-zero exit of the filter program will cause the tag to be aborted. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being committed to, relative -# to the $CVSROOT. For the first match that is found, then the remainder -# of the line is the name of the filter to run. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/verifymsg b/CVSROOT/verifymsg deleted file mode 100644 index 86f747ce22..0000000000 --- a/CVSROOT/verifymsg +++ /dev/null @@ -1,21 +0,0 @@ -# The "verifymsg" file is used to allow verification of logging -# information. It works best when a template (as specified in the -# rcsinfo file) is provided for the logging procedure. Given a -# template with locations for, a bug-id number, a list of people who -# reviewed the code before it can be checked in, and an external -# process to catalog the differences that were code reviewed, the -# following test can be applied to the code: -# -# Making sure that the entered bug-id number is correct. -# Validating that the code that was reviewed is indeed the code being -# checked in (using the bug-id number or a seperate review -# number to identify this particular code set.). -# -# If any of the above test failed, then the commit would be aborted. -# -# Actions such as mailing a copy of the report to each reviewer are -# better handled by an entry in the loginfo file. -# -# One thing that should be noted is the the ALL keyword is not -# supported. There can be only one entry that matches a given -# repository. diff --git a/firmware/test/alkorr/memory.c b/firmware/test/alkorr/memory.c deleted file mode 100644 index b58902f4d5..0000000000 --- a/firmware/test/alkorr/memory.c +++ /dev/null @@ -1,844 +0,0 @@ -/* -////////////////////////////////////////////////////////////////////////////////// -// __________ __ ___. // -// Open \______ \ ____ ____ | | _\_ |__ _______ ___ // -// Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / // -// Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < // -// Software |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ // -// \/ \/ \/ \/ \/ // -////////////////////////////////////////////////////////////////////////////////// -// -// $Id$ -// -///////////////////////////////////// -// Copyright (C) 2002 by Alan Korr // -///////////////////////////////////// -// -// All files in this archive are subject to the GNU General Public License. -// See the file COPYING in the source tree root for full license agreement. -// -// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, -// either express or implied. -// -////////////////////////////////////////////////////////////////////////////////// -*/ - -#include "memory.h" - -#define MEMORY_PAGE_USE_SPLAY_TREE - -/* -///////////////////////////////////////////////////////////////////// -// MEMORY PAGE // -///////////////// -// -// -*/ - -struct __memory_free_page -{ - struct __memory_free_page *less,*more; - char reserved[MEMORY_PAGE_MINIMAL_SIZE - 2*sizeof (struct memory_free_page *)]; -}; - -#define LESS -1 -#define MORE +1 - -extern struct __memory_free_page __memory_free_page[MEMORY_TOTAL_PAGES] asm("dram"); - -char __memory_free_page_order[MEMORY_TOTAL_PAGES]; -struct __memory_free_page *__memory_free_page_bin[MEMORY_TOTAL_ORDERS]; - -static inline unsigned int __memory_get_size (int order) -/* - SH1 has very poor shift instructions (only <<1,>>1,<<2,>>2,<<8, - >>8,<<16 and >>16), so we should use a lookup table to speedup. -*/ -{ - return - ( - (unsigned short [MEMORY_TOTAL_ORDERS]) - { - 1<less = - ((struct __memory_free_page *)head)->more = 0; - less = - more = &head; - while (1) - { - if (node < root) - { - if ((down = root->less)) - { - if (node < down) - { - root->less = down->more; - down->more = root; - root = down; - if (!root->less) - break; - } - more->less = root; - more = root; - root = root->less; - continue; - } - break; - } - if (root < node) - { - if ((down = root->more)) - { - if (root < node) - { - root->more = down->less; - down->less = root; - root = down; - if (!root->more) - break; - } - less->more = root; - less = root; - root = root->more; - continue; - } - } - break; - } - less->more = root->less; - more->less = root->more; - root->less = ((struct __memory_free_page *)head)->more; - root->more = ((struct __memory_free_page *)head)->less; - return root; -} - -static inline void __memory_insert_page (int order,struct __memory_free_page *node) -{ - struct __memory_free_page *root = __memory_free_page_bin[order]; - if (!root) - { - node->less = - node->more = 0; - } - else if (node < (root = __memory_splay_page (root,node))) - { - node->less = root->less; - node->more = root; - root->less = 0; - } - else if (node > root) - { - node->less = root; - node->more = root->more; - node->more = 0; - } - __memory_free_page_bin[order] = node; - __memory_set_order (node,order); - return; - } - -static inline struct __memory_free_page *__memory_pop_page (int order,int want) -{ - struct __memory_free_page *root = __memory_free_page_bin[order]; - if (root) - { - root = __memory_splay_page (root,__memory_free_page); - __memory_free_page_bin[order] = root->more; - __memory_set_order (root,~want); - } - return root; -} - -static inline void __memory_remove_page (int order,struct __memory_free_page *node) -{ - struct __memory_free_page *root = __memory_free_page_bin[order]; - root = __memory_splay_page (root,node); - if (root->less) - { - node = __memory_splay_page (root->less,node); - node->more = root->more; - } - else - node = root->more; - __memory_free_page_bin[order] = node; -} - -#else - -static inline void __memory_insert_page (int order,struct __memory_free_page *node) -{ - struct __memory_free_page *head = __memory_free_page_bin[order]; - node->less = 0; - node->more = head; - if (head) - head->less = node; - __memory_free_page_bin[order] = node; - __memory_set_order (node,order); -} - -static inline struct __memory_free_page *pop_page (int order,int want) -{ - struct __memory_free_page *node = __memory_free_page_bin[order]; - if (node) - { - __memory_free_page_bin[order] = node->more; - if (node->more) - node->more->less = 0; - __memory_set_order (node,~want); - } - return node; -} - -static inline void __memory_remove_page (int order,struct __memory_free_page *node) -{ - if (node->less) - node->less->more = node->more; - else - __memory_free_page_bin[order] = node->more; - if (node->more) - node->more->less = node->less; -} - -#endif - -static inline void __memory_push_page (int order,struct __memory_free_page *node) -{ - node->less = 0; - node->more = 0; - __memory_free_page_bin[order] = node; - __memory_set_order (node,order); -} - -static struct __memory_free_page *__memory_allocate_page (unsigned int size,int order) -{ - struct __memory_free_page *node; - int min = order; - while ((unsigned)order <= (MEMORY_TOTAL_ORDERS - 1)) - /* order is valid ? */ - { - if (!(node = __memory_pop_page (order,min))) - /* no free page of this order ? */ - { - ++order; size <<= 1; - continue; - } - while (order > min) - /* split our larger page in smaller pages */ - { - --order; size >>= 1; - __memory_push_page (order,(struct __memory_free_page *)((unsigned int)node + size)); - } - return node; - } - return MEMORY_RETURN_FAILURE; -} - -static inline void __memory_release_page (struct __memory_free_page *node,unsigned int size,int order) -{ - struct __memory_free_page *neighbour; - while ((order <= (MEMORY_TOTAL_ORDERS - 1)) && - ((neighbour = __memory_get_neighbour (node,size)), - (__memory_get_order (neighbour) == order))) - /* merge our released page with its contiguous page into a larger page */ - { - __memory_remove_page (order,neighbour); - ++order; size <<= 1; - if (neighbour < node) - node = neighbour; - } - __memory_insert_page (order,node); -} - -void *memory_page_allocate (int order) -{ - if ((unsigned)order < MEMORY_TOTAL_ORDERS) - return MEMORY_RETURN_FAILURE; - return __memory_allocate_page (__memory_get_size (order),order); -} - -int memory_page_release (void *address) -{ - struct __memory_free_page *node = (struct __memory_free_page *)address; - int order = ~__memory_get_order (node); - if ((unsigned)order < MEMORY_TOTAL_ORDERS) - return MEMORY_RETURN_FAILURE; - __memory_release_page (node,__memory_get_size (order),order); - return MEMORY_RETURN_SUCCESS; -} - -void memory_page_release_range (unsigned int start,unsigned int end) -{ - start = ((start + MEMORY_PAGE_MINIMAL_SIZE - 1) & -MEMORY_PAGE_MINIMAL_SIZE; - end = ((end ) & -MEMORY_PAGE_MINIMAL_SIZE; - /* release pages between _start_ and _end_ (each must be 512 bytes long) */ - for (; start < end; start += MEMORY_PAGE_MINIMAL_SIZE) - memory_page_release (start); -} - -static inline void __memory_page_setup (void) -{ -#if 0 - memory_set (__memory_free_page_bin,0,MEMORY_TOTAL_ORDERS *sizeof (struct memory_free_page *)); -#endif - /* all pages are marked as used (no free page) */ - memory_set (__memory_free_page_order,~0,MEMORY_TOTAL_PAGES); -} - -/* -// -// -///////////////////////////////////////////////////////////////////// - -///////////////////////////////////////////////////////////////////// -// MEMORY CACHE // -////////////////// -// -// -*/ - -#if 0 - - -#define MEMORY_MAX_PAGE_ORDER_PER_SLAB (5) -#define MEMORY_MAX_PAGE_SIZE_PER_SLAB (MEMORY_PAGE_MINIMAL_SIZE << MEMORY_MAX_PAGE_ORDER_PER_SLAB) -#define MEMORY_MIN_BLOCKS_PER_SLAB (4) - -struct __memory_free_block -{ - struct __memory_free_block *link; -}; - -struct __memory_slab -{ - struct __memory_slab *less,*more; - unsigned int free_blocks_left; - struct __memory_free_block *free_block_list; - }; - -#define WITH_NO_FREE_BLOCK 0 -#define WITH_SOME_FREE_BLOCKS 1 -#define WITH_ONLY_FREE_BLOCKS 2 - -struct memory_cache -{ - struct memory_cache *less; - struct memory_cache *more; - struct memory_cache *prev; - struct memory_cache *next; - struct __memory_slab *slab_list[3]; - unsigned int page_size; - unsigned int free_slabs_left; - unsigned short size; - unsigned short original_size; - int page_order; - unsigned int blocks_per_slab; - struct __memory_slab cache_slab; /* only used for __memory_cache_cache ! */ -}; - -static inline struct __memory_slab *__memory_push_slab (struct __memory_slab *head,struct __memory_slab *node) -{ - node->less = head; - if (head) - { - node->more = head->more; - head->more = node; - } - else - node->more = 0; - return node; -} - -static inline struct __memory_slab *__memory_pop_slab (struct __memory_slab *head,struct __memory_slab *node) -{ - if (head) - head->more = node->more; - return node->more; -} - -static inline struct __memory_slab *__memory_move_slab (struct memory_cache *cache,int from,int to) -{ - struct __memory_slab *head = cache->slab_list[from]; - cache->slab_list[from] = head->more; - if (head->more) - head->more->less = 0; - head->more = cache->slab_list[to]; - if (head->more) - head->more->prev = head; - cache->slab_list[to] = head; - return head; -} - -static struct memory_cache *__memory_cache_tree; -static struct memory_cache *__memory_cache_cache; - -static inline int __memory_get_order (unsigned size) -{ - int order = 0; - size = (size + MEMORY_PAGE_MINIMAL_SIZE - 1) & -MEMORY_PAGE_MINIMAL_SIZE; - while (size > MEMORY_PAGE_MINIMAL_SIZE) - { - ++order; size <<= 1; - } - return order; -} - -static inline struct __memory_slab *__memory_get_slab (struct memory_cache *cache,void *address) -{ - return (struct __memory_slab *)((((unsigned)address + cache->page_size) & -cache->page_size) - sizeof (struct __memory_slab)); -} - -static struct memory_cache *__memory_splay_cache (struct memory_cache *root,unsigned int left) -{ - struct memory_cache *down; - struct memory_cache *less; - struct memory_cache *more; - struct memory_cache *head[2]; - ((struct memory_cache *)head->less = - ((struct memory_cache *)head->more = 0; - less = - more = &head; - while (1) - { - if (left < root->free_slabs_left) - { - if ((down = root->less)) - { - if (left < down->free_slabs_left) - { - root->less = down->more; - down->more = root; - root = down; - if (!root->less) - break; - } - more->less = root; - more = root; - root = root->less; - continue; - } - break; - } - if (root->free_slabs_left < left) - { - if ((down = root->more)) - { - if (root->free_slabs_left < left) - { - root->more = down->less; - down->less = root; - root = down; - if (!root->more) - break; - } - less->more = root; - less = root; - root = root->more; - continue; - } - } - break; - } - less->more = root->less; - more->less = root->more; - root->less = ((struct memory_cache *)head->more; - root->more = ((struct memory_cache *)head->less; - return root; -} - -static inline struct memory_cache *__memory_insert_cache (struct memory_cache *root,struct memory_cache *node) -{ - node->less = - node->more = - node->prev = 0; - node->next = 0; - if (root) - { - if (node->free_slabs_left == ((root = __memory_splay_cache (root,node))->free_slabs_left)) - { - node->less = root.less; - node->more = root.more; - node->next = root; - root->prev = node; - } - else if (node < root) - { - node->less = root->less; - node->more = root; - root->less = 0; - } - else - { - node->less = root; - node->more = root->more; - node->more = 0; - } - } - return node; -} - -static inline struct memory_cache *__memory_remove_cache (struct memory_cache *root,struct memory_cache *node) -{ - if (root) - { - if (node->prev) - { - node->prev->next = node->next; - if (node->next) - node->next->prev = node->prev; - return node->prev; - } - root = __memory_splay_cache (root,node); - if (root->less) - { - node = __memory_splay_page (root->less,node); - node->more = root->more; - } - else - node = root->more; - } - return node; -} - -static inline struct memory_cache *__memory_move_cache (struct memory_cache *root,struct memory_cache *node,int delta) -{ - if ((root = __memory_remove_cache (root,node))) - { - node->free_slabs_left += delta; - root = __memory_insert_cache (root,node); - } - return root; -} - -static struct __memory_slab *__memory_grow_cache (struct memory_cache *cache) -{ - struct __memory_slab *slab; - unsigned int page; - if (cache) - { - page = (unsigned int)memory_allocate_page (cache->page_order); - if (page) - { - struct __memory_free_block *block,**link; - slab = (struct __memory_slab *)(page + cache->page_size - sizeof (struct __memory_slab)); - slab->free_blocks_left = 0; - link = &slab->free_block_list; - for ((unsigned int)block = page; - (unsigned int)block + cache->size < (unsigned int)slab; - (unsigned int)block += cache->size) - { - *link = block; - link = &block->link; - ++slab->free_blocks_left; - } - *link = 0; - cache->blocks_per_slab = slab->free_blocks_left; - cache->slab_list[WITH_ONLY_FREE_BLOCKS] = - __memory_push_slab (cache->slab_list[WITH_ONLY_FREE_BLOCKS],slab); - __memory_cache_tree = __memory_move_cache (__memory_cache_tree,cache,+1); - return slab; - } - } - return MEMORY_RETURN_FAILURE; -} - -static int __memory_shrink_cache (struct memory_cache *cache,int all,int move) -{ - struct __memory_slab *slab; - unsigned int slabs = 0; - if (cache) - { - while ((slab = cache->slab_list[WITH_ONLY_FREE_BLOCKS])) - { - ++slabs; - cache->slab_list[WITH_ONLY_FREE_BLOCKS] = - __memory_pop_slab (cache->slab_list[WITH_ONLY_FREE_BLOCKS],slab); - memory_release_page ((void *)((unsigned int)slab & -cache->page_size)); - if (all) - continue; - if (move) - __memory_cache_tree = __memory_move_cache (__memory_cache_tree,cache,-slabs); - return MEMORY_RETURN_SUCCESS; - } - } - return MEMORY_RETURN_FAILURE; -} - -struct memory_cache *memory_cache_create (unsigned int size,int align) -{ - struct memory_cache *cache; - unsigned int waste = 0,blocks_per_page; - int page_order; - unsigned int page_size; - unsigned int original_size = size; - - size = (align > 4) ? ((size + align - 1) & -align) : ((size + sizeof (int) - 1) & -sizeof (int)); - - if ((size >= MEMORY_MAX_PAGE_SIZE_PER_SLAB) || - (!(cache = memory_cache_allocate (__memory_cache_cache))) - return MEMORY_RETURN_FAILURE; - - cache->free_slabs_left = 0; - - cache->slab_list[ WITH_NO_FREE_BLOCK ] = - cache->slab_list[WITH_SOME_FREE_BLOCKS] = - cache->slab_list[WITH_ONLY_FREE_BLOCKS] = 0; - - cache->original_size = original_size; - cache->size = size; - - page_size = 0; - page_order = MEMORY_PAGE_MINIMAL_SIZE; - - for (;; ++order,(page_size <<= 1)) - { - if (page_order >= MEMORY_MAX_PAGE_ORDER_PER_SLAB) - break; - - waste = page_size; - waste -= sizeof (struct __memory_slab); - - blocks_per_slab = waste / size; - waste -= block_per_slab * size; - - if (blocks_per_slab < MEMORY_MIN_BLOCKS_PER_SLAB) - { - ++page_order; page_size <<= 1; - continue; - } - - /* below 5% of lost space is correct */ - if ((waste << 16) / page_size) < 3276) - break; - ++page_order; page_size <<= 1; - } - - cache->page_size = page_size; - cache->page_order = page_order; - - cache_tree = __memory_insert_cache (cache_tree,cache); - - return cache; -} - -int memory_cache_destroy (struct memory_cache *cache) -{ - /* this function shouldn't be called if there are still used blocks */ - if (cache && !cache->slab_list[WITH_NO_FREE_BLOCK] && !cache->slab_list[WITH_SOME_FREE_BLOCKS]) - { - __memory_cache_tree = __memory_remove_cache (__memory_cache_tree,cache); - if (__memory_shrink_cache (cache,1 /* release all free slabs */,0 /* don't move in cache_tree */)) - return memory_cache_release (__memory_cache_cache,cache); - } - return MEMORY_RETURN_FAILURE; -} - - -void *memory_cache_allocate (struct memory_cache *cache) -{ - if (cache) - { - do - { - struct __memory_slab *slab; - if ((slab = cache->slab_list[WITH_SOME_FREE_BLOCKS])) - { - if (slab->free_blocks_left > 0) - { -ok: struct __memory_free_block *block = slab->free_block_list; - slab->free_block_list = block->link; - if (--slab->free_blocks_left == 0) - __memory_move_slab (WITH_SOME_FREE_BLOCKS,WITH_NO_FREE_BLOCK); - return block; - } - } - if (cache->slab_list[WITH_FULL_FREE_BLOCKS]) - { - slab = __memory_move_slab (WITH_ONLY_FREE_BLOCKS,WITH_SOME_FREE_BLOCKS); - __memory_cache_tree = __memory_move_cache (__memory_cache_tree,cache,-1); - goto ok; - } - } - while (__memory_grow_cache (cache)); - } - return MEMORY_RETURN_FAILURE; -} - -int memory_cache_release (struct memory_cache *cache,void *address) - { - struct __memory_slab *slab = __memory_get_slab (cache,address); - ((struct __memory_free_block *)address)->link = slab->free_block_list; - slab->free_block_list = (struct __memory_free_block *)address; - if (slab->free_blocks_left++ == 0) - __memory_move_slab (WITH_NO_FREE_BLOCK,WITH_SOME_FREE_BLOCKS); - else if (slab->free_blocks_left == cache->blocks_per_slab) - { - __memory_move_slab (WITH_SOME_FREE_BLOCKS,WITH_ONLY_FREE_BLOCKS); - __memory_cache_tree = __memory_move_cache (__memory_cache_tree,cache,+1); - } - return MEMORY_RETURN_SUCCESS; - } - -static inline void __memory_cache_setup (void) -{ - struct memory_cache *cache; - struct __memory_slab *slab; - struct __memory_free_block *block,**link; - - cache = (struct memory_cache *)__memory_free_page; - cache->original_size = sizeof (*cache); - cache->size = sizeof (*cache); - cache->page_size = MEMORY_PAGE_MINIMAL_SIZE; - cache->page_order = MEMORY_PAGE_MINIMAL_ORDER; - cache->free_slabs_left = 0; - - slab = __memory_get_slab (cache,(void *)cache); - - cache->slab_list[ WITH_NO_FREE_BLOCK ] = - cache->slab_list[WITH_SOME_FREE_BLOCKS] = - cache->slab_list[WITH_ONLY_FREE_BLOCKS] = 0; - - link = &slab->free_block_list; - for ((unsigned int)block = (unsigned int)cache; - (unsigned int)block + sizeof (*cache) < (unsigned int)slab; - (unsigned int)block += sizeof (*cache)) - { - *link = block; - link = &block->link; - ++slab->free_blocks_left; - } - *link = 0; - cache->blocks_per_slab = slab->free_blocks_left + 1; - cache->slab_list[WITH_SOME_FREE_BLOCKS] = - __memory_push_slab (cache->slab_list[WITH_SOME_FREE_BLOCKS],slab); - - __memory_cache_tree = __memory_insert_cache (__memory_cache_tree,cache); -} - -/* -// -// -///////////////////////////////////////////////////////////////////// - -///////////////////////////////////////////////////////////////////// -// MEMORY BLOCK // -////////////////// -// -// -*/ - -static struct memory_cache *__memory_free_block_cache[MEMORY_PAGE_MINIMAL_ORDER - 2]; - -static inline void *__memory_allocate_block (int order) -{ - struct memory_cache *cache = __memory_free_block_cache[order - 2]; - do - { - if (cache) - return memory_cache_allocate (cache); - } - while ((__memory_free_block_cache[order] = cache = memory_create_cache (size,0,0))); - return MEMORY_RETURN_FAILURE; -} - -static inline int __memory_release_block (int order,void *address) -{ - struct memory_cache *cache = __memory_free_block_cache[order - 2]; - if (cache) - return memory_cache_release (cache,address); - return MEMORY_RETURN_FAILURE; -} - -void *memory_block_allocate (int order) -{ - if (order < 2) /* minimal size is 4 bytes */ - order = 2; - if (order < MEMORY_PAGE_MINIMAL_ORDER) - return __memory_allocate_block (order); - return MEMORY_RETURN_FAILURE; -} - -int memory_block_release (int order,void *address) -{ - if (order < 2) /* minimal size is 4 bytes */ - order = 2; - if (order < MEMORY_PAGE_MINIMAL_ORDER) - return __memory_release_block (order,address); - return MEMORY_RETURN_FAILURE; -} - -/* -// -// -///////////////////////////////////////////////////////////////////// - -///////////////////////////////////////////////////////////////////// -// MEMORY // -//////////// -// -// -*/ - -#endif - -#if 0 -/* NOT VERY OPTIMIZED AT ALL BUT WE WILL DO IT WHEN PRIORITY COMES */ -void memory_copy (void *target,void const *source,unsigned int count) -{ - while (count--) - *((char *)target)++ = *((char const *)source)++; -} - -/* NOT VERY OPTIMIZED AT ALL BUT WE WILL DO IT WHEN PRIORITY COMES */ -void memory_set (void *target,int byte,unsigned int count) -{ - while (count--) - *((char *)target)++ = (char)byte; -} -#endif - -void memory_setup (void) -{ - __memory_page_setup (); -#if 0 - __memory_cache_setup (); -#endif -} diff --git a/firmware/test/alkorr/memory.h b/firmware/test/alkorr/memory.h deleted file mode 100644 index 37ec4c8c14..0000000000 --- a/firmware/test/alkorr/memory.h +++ /dev/null @@ -1,113 +0,0 @@ -/* -////////////////////////////////////////////////////////////////////////////////// -// __________ __ ___. // -// Open \______ \ ____ ____ | | _\_ |__ _______ ___ // -// Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / // -// Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < // -// Software |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ // -// \/ \/ \/ \/ \/ // -////////////////////////////////////////////////////////////////////////////////// -// -// $Id$ -// -///////////////////////////////////// -// Copyright (C) 2002 by Alan Korr // -///////////////////////////////////// -// -// All files in this archive are subject to the GNU General Public License. -// See the file COPYING in the source tree root for full license agreement. -// -// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, -// either express or implied. -// -////////////////////////////////////////////////////////////////////////////////// -*/ - -#ifndef __MEMORY_H__ -#define __MEMORY_H__ - -enum -{ - MEMORY_RETURN_SUCCESS = 1, - MEMORY_RETURN_FAILURE = 0 -}; - -/* -///////////////////////////////////////////////////////////////////// -// MEMORY PAGE // -///////////////// -// -// -*/ - -#define MEMORY_PAGE_MINIMAL_ORDER ( 9) /* 512 bytes by default */ -#define MEMORY_PAGE_MAXIMAL_ORDER (21) /* 2 Mbytes by default */ -#define MEMORY_PAGE_MINIMAL_SIZE (1 << MEMORY_PAGE_MINIMAL_ORDER) -#define MEMORY_PAGE_MAXIMAL_SIZE (1 << MEMORY_PAGE_MAXIMAL_ORDER) - -#define MEMORY_TOTAL_PAGES (MEMORY_PAGE_MAXIMAL_SIZE / MEMORY_PAGE_MINIMAL_SIZE) -#define MEMORY_TOTAL_ORDERS (1 + MEMORY_PAGE_MAXIMAL_ORDER - MEMORY_PAGE_MINIMAL_ORDER) - -extern void *memory_page_allocate (int order); -extern int memory_page_release (void *address); -extern void memory_page_release_range (unsigned int start,unsigned int end); - -/* -// -///////////////////////////////////////////////////////////////////// - -///////////////////////////////////////////////////////////////////// -// MEMORY CACHE // -////////////////// -// -// -*/ - -struct memory_cache; - -extern struct memory_cache *memory_cache_create (unsigned int size,int align); -extern int memory_cache_destroy (struct memory_cache *cache); -extern void *memory_cache_allocate (struct memory_cache *cache); -extern int memory_cache_release (struct memory_cache *cache,void *address); - -/* -// -// -///////////////////////////////////////////////////////////////////// - -///////////////////////////////////////////////////////////////////// -// MEMORY BLOCK // -////////////////// -// -// -*/ - -extern void *memory_block_allocate (int order); -extern int memory_block_release (int order,void *address); - -/* -// -// -///////////////////////////////////////////////////////////////////// - -///////////////////////////////////////////////////////////////////// -// MEMORY // -//////////// -// -// -*/ - -#define MEMORY_TOTAL_BYTES (MEMORY_PAGE_MAXIMAL_SIZE) - -extern void memory_copy (void *target,void const *source,unsigned int count); -extern void memory_set (void *target,int byte,unsigned int count); - -extern void memory_setup (void); - -/* -// -// -///////////////////////////////////////////////////////////////////// -*/ - -#endif diff --git a/gdb/FILES b/gdb/FILES deleted file mode 100644 index ef5633cbd6..0000000000 --- a/gdb/FILES +++ /dev/null @@ -1,3 +0,0 @@ -Makefile -linker.cfg -*.[chs] diff --git a/gdb/Makefile b/gdb/Makefile deleted file mode 100644 index c62b8a6e9a..0000000000 --- a/gdb/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -# __________ __ ___. -# Open \______ \ ____ ____ | | _\_ |__ _______ ___ -# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / -# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < -# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ -# \/ \/ \/ \/ \/ -# $Id$ -# -TARGET = stub -OBJS = start.o sh-stub.o -LIBS = -lgcc - -.s.o: - sh-elf-as -o $@ $< - -.c.o: - sh-elf-gcc -O -I../firmware/drivers -m1 -Wall -Wstrict-prototypes -c -o $@ $< - -$(TARGET).out: $(TARGET).elf - sh-elf-objcopy -O binary $(TARGET).elf $(TARGET).out - scramble $(TARGET).out archos.mod - -$(TARGET).elf: $(OBJS) - sh-elf-gcc -nostartfiles $(OBJS) -lgcc -Wl,-Map,$(TARGET).map -o $(TARGET).elf -Tlinker.cfg - -clean: - rm $(OBJS) $(TARGET).map $(TARGET).elf $(TARGET).out archos.mod - -start.o: start.s -sh-stub.o: sh-stub.c diff --git a/gdb/README b/gdb/README deleted file mode 100644 index 751fb22946..0000000000 --- a/gdb/README +++ /dev/null @@ -1,80 +0,0 @@ --------------------------------------------------------------------- - __________ __ ___. - Open \______ \ ____ ____ | | _\_ |__ _______ ___ - Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - \/ \/ \/ \/ \/ - $Id$ - - Copyright (C) 2002 by Linus Nielsen Feltzing - --------------------------------------------------------------------- - -Debugging the Archos Jukebox ----------------------------- - -To debug using the serial port on the Jukebox, you need to do the following: - -1) Connect the serial port to the PC. This is best done with the "serial - port mod" described on the home page, along with a serial port converter - for the 3V signals from the Jukebox. - -2) Build or download a GDB SH1 cross debugger - -3) Compile the GDB stub from the CVS "gdb" archive - -4) Copy the newly built ARCHOS.MOD to the Jukebox. - -5) Start the Jukebox and fire up the GDB with the elf file you want to debug - as an argument along with the baud rate: - - # sh-elf-gdb -b 38400 test.elf - -6) In GDB, type: - - (gdb) target remote /dev/ttyS0 - - /dev/ttyS0 is the serial port you want to use. I guess Windows users - would type COM1 or something like that. - - GDB should answer with a message like: - - Remote debugging using /dev/ttyS0 - 0x090014b6 in ?? () - (gdb) - -7) Load the code from the elf file you specified on the command line: - - (gdb) load - - GDB should answer like this: - - Loading section .text, size 0x6b00 lma 0x9018000 - Loading section .data, size 0x738 lma 0x901eb00 - Start address 0x9018290, load size 29240 - Transfer rate: 11696 bits/sec, 102 bytes/write. - (gdb) - -8) You're set. Now try to set a breakpoint and run: - - (gdb) b 22 - Breakpoint 1 at 0x90182c6: file led.c, line 14. - (gdb) c - Continuing. - - Breakpoint 2, main () at led.c:15 - 15 SSR1 &= ~(SCI_RDRF | SCI_ORER | SCI_PER | SCI_FER); - (gdb) - - Good luck! - - -Technical details: - - As for now, the GDB stub occupies the memory from 0x900000 up to - 0x9018000. This will change. - - Compile and link your test program at 0x9018000 and up, and it will work. - - The baud rate is 38400, and the settings are 8N1. diff --git a/gdb/linker.cfg b/gdb/linker.cfg deleted file mode 100644 index 5d5334b92f..0000000000 --- a/gdb/linker.cfg +++ /dev/null @@ -1,28 +0,0 @@ -ENTRY(_start) -OUTPUT_FORMAT(elf32-sh) -SECTIONS -{ - .vectors 0x09000000 : - { - *(.vectors); - . = ALIGN(0x200); - start.o(.text) - *(.rodata) - } - - .text : - { - *(.text) - } - - .bss : - { - _stack = . + 0x1000; - _stub_stack = _stack + 0x1000; - } - - .pad 0x0900C800 : - { - LONG(0); - } - } diff --git a/gdb/sh-stub.c b/gdb/sh-stub.c deleted file mode 100644 index 7a717e0ac5..0000000000 --- a/gdb/sh-stub.c +++ /dev/null @@ -1,1577 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2002 by Linus Nielsen Feltzing - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ -/* sh-stub.c -- debugging stub for the Hitachi-SH. - - NOTE!! This code has to be compiled with optimization, otherwise the - function inlining which generates the exception handlers won't work. - -*/ - -/* This is originally based on an m68k software stub written by Glenn - Engel at HP, but has changed quite a bit. - - Modifications for the SH by Ben Lee and Steve Chamberlain - - Even more modifications for GCC 3.0 and The Rockbox by Linus - Nielsen Feltzing -*/ - -/**************************************************************************** - - THIS SOFTWARE IS NOT COPYRIGHTED - - HP offers the following for use in the public domain. HP makes no - warranty with regard to the software or it's performance and the - user accepts the software "AS IS" with all faults. - - HP DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD - TO THIS SOFTWARE INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -****************************************************************************/ - - -/* Remote communication protocol. - - A debug packet whose contents are - is encapsulated for transmission in the form: - - $ # CSUM1 CSUM2 - - must be ASCII alphanumeric and cannot include characters - '$' or '#'. If starts with two characters followed by - ':', then the existing stubs interpret this as a sequence number. - - CSUM1 and CSUM2 are ascii hex representation of an 8-bit - checksum of , the most significant nibble is sent first. - the hex digits 0-9,a-f are used. - - Receiver responds with: - - + - if CSUM is correct and ready for next packet - - - if CSUM is incorrect - - is as follows: - All values are encoded in ascii hex digits. - - Request Packet - - read registers g - reply XX....X Each byte of register data - is described by two hex digits. - Registers are in the internal order - for GDB, and the bytes in a register - are in the same order the machine uses. - or ENN for an error. - - write regs GXX..XX Each byte of register data - is described by two hex digits. - reply OK for success - ENN for an error - - write reg Pn...=r... Write register n... with value r..., - which contains two hex digits for each - byte in the register (target byte - order). - reply OK for success - ENN for an error - (not supported by all stubs). - - read mem mAA..AA,LLLL AA..AA is address, LLLL is length. - reply XX..XX XX..XX is mem contents - Can be fewer bytes than requested - if able to read only part of the data. - or ENN NN is errno - - write mem MAA..AA,LLLL:XX..XX - AA..AA is address, - LLLL is number of bytes, - XX..XX is data - reply OK for success - ENN for an error (this includes the case - where only part of the data was - written). - - cont cAA..AA AA..AA is address to resume - If AA..AA is omitted, - resume at same address. - - step sAA..AA AA..AA is address to resume - If AA..AA is omitted, - resume at same address. - - last signal ? Reply the current reason for stopping. - This is the same reply as is generated - for step or cont : SAA where AA is the - signal number. - - There is no immediate reply to step or cont. - The reply comes when the machine stops. - It is SAA AA is the "signal number" - - or... TAAn...:r...;n:r...;n...:r...; - AA = signal number - n... = register number - r... = register contents - or... WAA The process exited, and AA is - the exit status. This is only - applicable for certains sorts of - targets. - kill request k - - toggle debug d toggle debug flag (see 386 & 68k stubs) - reset r reset -- see sparc stub. - reserved On other requests, the stub should - ignore the request and send an empty - response ($#). This way - we can extend the protocol and GDB - can tell whether the stub it is - talking to uses the old or the new. - search tAA:PP,MM Search backwards starting at address - AA for a match with pattern PP and - mask MM. PP and MM are 4 bytes. - Not supported by all stubs. - - general query qXXXX Request info about XXXX. - general set QXXXX=yyyy Set value of XXXX to yyyy. - query sect offs qOffsets Get section offsets. Reply is - Text=xxx;Data=yyy;Bss=zzz - console output Otext Send text to stdout. Only comes from - remote target. - - Responses can be run-length encoded to save space. A '*' means that - the next character is an ASCII encoding giving a repeat count which - stands for that many repititions of the character preceding the '*'. - The encoding is n+29, yielding a printable character where n >=3 - (which is where rle starts to win). Don't use an n > 126. - - So - "0* " means the same as "0000". */ - -#include "sh7034.h" -#include -#include -#include - -/* We need to undefine this from the sh7034.h file */ -#undef GBR - -/* Hitachi SH architecture instruction encoding masks */ - -#define COND_BR_MASK 0xff00 -#define UCOND_DBR_MASK 0xe000 -#define UCOND_RBR_MASK 0xf0df -#define TRAPA_MASK 0xff00 - -#define COND_DISP 0x00ff -#define UCOND_DISP 0x0fff -#define UCOND_REG 0x0f00 - -/* Hitachi SH instruction opcodes */ - -#define BF_INSTR 0x8b00 -#define BT_INSTR 0x8900 -#define BRA_INSTR 0xa000 -#define BSR_INSTR 0xb000 -#define JMP_INSTR 0x402b -#define JSR_INSTR 0x400b -#define RTS_INSTR 0x000b -#define RTE_INSTR 0x002b -#define TRAPA_INSTR 0xc300 -#define SSTEP_INSTR 0xc37f - -/* Hitachi SH processor register masks */ - -#define T_BIT_MASK 0x0001 - -/* - * BUFMAX defines the maximum number of characters in inbound/outbound - * buffers. At least NUMREGBYTES*2 are needed for register packets. - */ -#define BUFMAX 1024 - -/* - * Number of bytes for registers - */ -#define NUMREGBYTES 112 /* 92 */ - -/* - * Forward declarations - */ - -static int hex (char); -static char *mem2hex (char *mem, char *buf, int count); -static char *hex2mem (char *buf, char *mem, int count); -static int hex2int (char **ptr, int *intValue); -static unsigned char *getpacket (void); -static void putpacket (register char *buffer); -static int computeSignal (int exceptionVector); -void handle_buserror (void); -void handle_exception (int exceptionVector); -void init_serial(void); - -void serial_putc (char ch); -char serial_getc (void); - -/* These are in the file but in asm statements so the compiler can't see them */ -void catch_exception_4 (void); -void catch_exception_5 (void); -void catch_exception_6 (void); -void catch_exception_7 (void); -void catch_exception_8 (void); -void catch_exception_9 (void); -void catch_exception_10 (void); -void catch_exception_11 (void); -void catch_exception_12 (void); -void catch_exception_13 (void); -void catch_exception_14 (void); -void catch_exception_15 (void); -void catch_exception_16 (void); -void catch_exception_17 (void); -void catch_exception_18 (void); -void catch_exception_19 (void); -void catch_exception_20 (void); -void catch_exception_21 (void); -void catch_exception_22 (void); -void catch_exception_23 (void); -void catch_exception_24 (void); -void catch_exception_25 (void); -void catch_exception_26 (void); -void catch_exception_27 (void); -void catch_exception_28 (void); -void catch_exception_29 (void); -void catch_exception_30 (void); -void catch_exception_31 (void); -void catch_exception_32 (void); -void catch_exception_33 (void); -void catch_exception_34 (void); -void catch_exception_35 (void); -void catch_exception_36 (void); -void catch_exception_37 (void); -void catch_exception_38 (void); -void catch_exception_39 (void); -void catch_exception_40 (void); -void catch_exception_41 (void); -void catch_exception_42 (void); -void catch_exception_43 (void); -void catch_exception_44 (void); -void catch_exception_45 (void); -void catch_exception_46 (void); -void catch_exception_47 (void); -void catch_exception_48 (void); -void catch_exception_49 (void); -void catch_exception_50 (void); -void catch_exception_51 (void); -void catch_exception_52 (void); -void catch_exception_53 (void); -void catch_exception_54 (void); -void catch_exception_55 (void); -void catch_exception_56 (void); -void catch_exception_57 (void); -void catch_exception_58 (void); -void catch_exception_59 (void); -void catch_exception_60 (void); -void catch_exception_61 (void); -void catch_exception_62 (void); -void catch_exception_63 (void); -void catch_exception_64 (void); -void catch_exception_65 (void); -void catch_exception_66 (void); -void catch_exception_67 (void); -void catch_exception_68 (void); -void catch_exception_69 (void); -void catch_exception_70 (void); -void catch_exception_71 (void); -void catch_exception_72 (void); -void catch_exception_73 (void); -void catch_exception_74 (void); -void catch_exception_75 (void); -void catch_exception_76 (void); -void catch_exception_77 (void); -void catch_exception_78 (void); -void catch_exception_79 (void); -void catch_exception_80 (void); -void catch_exception_81 (void); -void catch_exception_82 (void); -void catch_exception_83 (void); -void catch_exception_84 (void); -void catch_exception_85 (void); -void catch_exception_86 (void); -void catch_exception_87 (void); -void catch_exception_88 (void); -void catch_exception_89 (void); -void catch_exception_90 (void); -void catch_exception_91 (void); -void catch_exception_92 (void); -void catch_exception_93 (void); -void catch_exception_94 (void); -void catch_exception_95 (void); -void catch_exception_96 (void); -void catch_exception_97 (void); -void catch_exception_98 (void); -void catch_exception_99 (void); -void catch_exception_100 (void); -void catch_exception_101 (void); -void catch_exception_102 (void); -void catch_exception_103 (void); -void catch_exception_104 (void); -void catch_exception_105 (void); -void catch_exception_106 (void); -void catch_exception_107 (void); -void catch_exception_108 (void); -void catch_exception_109 (void); -void catch_exception_110 (void); -void catch_exception_111 (void); -void catch_exception_112 (void); -void catch_exception_113 (void); -void catch_exception_114 (void); -void catch_exception_115 (void); -void catch_exception_116 (void); -void catch_exception_117 (void); -void catch_exception_118 (void); -void catch_exception_119 (void); -void catch_exception_120 (void); -void catch_exception_121 (void); -void catch_exception_122 (void); -void catch_exception_123 (void); -void catch_exception_124 (void); -void catch_exception_125 (void); -void catch_exception_126 (void); -void catch_exception_127 (void); - -void breakpoint (void); - - -//#define stub_stack_size 2*1024 - -//int stub_stack[stub_stack_size] __attribute__ ((section (".stack"))) = {0}; - -extern int stub_stack[]; - -void INIT (void); -void start (void); - -#define CPU_BUS_ERROR_VEC 9 -#define DMA_BUS_ERROR_VEC 10 -#define NMI_VEC 11 -#define INVALID_INSN_VEC 4 -#define INVALID_SLOT_VEC 6 -#define TRAP_VEC 32 -#define IO_VEC 33 -#define USER_VEC 127 - -char in_nmi; /* Set when handling an NMI, so we don't reenter */ -int dofault; /* Non zero, bus errors will raise exception */ - -int *stub_sp; - -/* debug > 0 prints ill-formed commands in valid packets & checksum errors */ -int remote_debug; - -/* jump buffer used for setjmp/longjmp */ -jmp_buf remcomEnv; - -enum regnames -{ - R0, R1, R2, R3, R4, R5, R6, R7, - R8, R9, R10, R11, R12, R13, R14, - R15, PC, PR, GBR, VBR, MACH, MACL, SR, - TICKS, STALLS, CYCLES, INSTS, PLR -}; - -typedef struct -{ - short *memAddr; - short oldInstr; -} -stepData; - -int registers[NUMREGBYTES / 4]; -stepData instrBuffer; -char stepped; -static const char hexchars[] = "0123456789abcdef"; -static char remcomInBuffer[BUFMAX]; -static char remcomOutBuffer[BUFMAX]; - -#define ATA_NSECTOR (*((volatile unsigned char*)0x06100102)) -#define ATA_COMMAND (*((volatile unsigned char*)0x06100107)) -#define ATA_CONTROL (*((volatile unsigned char*)0x06200306)) -#define ATA_ALT_STATUS ATA_CONTROL - -#define STATUS_BSY 0x80 -#define STATUS_RDY 0x40 - -#define CMD_STANDBY_IMMEDIATE 0xE0 -#define CMD_STANDBY 0xE2 - -void ata_wait_for_bsy(void) -{ - while (ATA_ALT_STATUS & STATUS_BSY); -} - -int ata_wait_for_rdy(void) -{ - ata_wait_for_bsy(); - return ATA_ALT_STATUS & STATUS_RDY; -} - -int ata_spindown(int time) -{ - /* activate ATA */ - PADR &= ~0x80; - - if(!ata_wait_for_rdy()) - return -1; - - if ( time == -1 ) { - ATA_COMMAND = CMD_STANDBY_IMMEDIATE; - } - else { - if (time > 255) - return -1; - ATA_NSECTOR = time & 0xff; - ATA_COMMAND = CMD_STANDBY; - } - - if (!ata_wait_for_rdy()) - return -1; - - return 0; -} - -void blink(void) -{ - while(1) - { - int i; - PBDR ^= 0x40; /* toggle PB6 */ - for(i = 0;i < 500000;i++) - { - } - } -} - -char highhex(int x) -{ - return hexchars[(x >> 4) & 0xf]; -} - -char lowhex(int x) -{ - return hexchars[x & 0xf]; -} - -/* - * Assembly macros - */ - -#define BREAKPOINT() asm("trapa #0x20"::); - - -/* - * Routines to handle hex data - */ - -static int hex (char ch) -{ - if ((ch >= 'a') && (ch <= 'f')) - return (ch - 'a' + 10); - if ((ch >= '0') && (ch <= '9')) - return (ch - '0'); - if ((ch >= 'A') && (ch <= 'F')) - return (ch - 'A' + 10); - return (-1); -} - -/* convert the memory, pointed to by mem into hex, placing result in buf */ -/* return a pointer to the last char put in buf (null) */ -static char *mem2hex (char *mem, char *buf, int count) -{ - int i; - int ch; - for (i = 0; i < count; i++) - { - ch = *mem++; - *buf++ = highhex (ch); - *buf++ = lowhex (ch); - } - *buf = 0; - return (buf); -} - -/* convert the hex array pointed to by buf into binary, to be placed in mem */ -/* return a pointer to the character after the last byte written */ -static char *hex2mem (char *buf, char *mem, int count) -{ - int i; - unsigned char ch; - for (i = 0; i < count; i++) - { - ch = hex (*buf++) << 4; - ch = ch + hex (*buf++); - *mem++ = ch; - } - return (mem); -} - -/**********************************************/ -/* WHILE WE FIND NICE HEX CHARS, BUILD AN INT */ -/* RETURN NUMBER OF CHARS PROCESSED */ -/**********************************************/ -static int hex2int (char **ptr, int *intValue) -{ - int numChars = 0; - int hexValue; - - *intValue = 0; - - while (**ptr) - { - hexValue = hex (**ptr); - if (hexValue >= 0) - { - *intValue = (*intValue << 4) | hexValue; - numChars++; - } - else - break; - - (*ptr)++; - } - - return (numChars); -} - -/* - * Routines to get and put packets - */ - -/* scan for the sequence $# */ - -unsigned char *getpacket (void) -{ - unsigned char *buffer = &remcomInBuffer[0]; - unsigned char checksum; - unsigned char xmitcsum; - int count; - char ch; - - while (1) - { - /* wait around for the start character, ignore all other characters */ - while ((ch = serial_getc ()) != '$') - ; - - retry: - checksum = 0; - xmitcsum = -1; - count = 0; - - /* now, read until a # or end of buffer is found */ - while (count < BUFMAX) - { - ch = serial_getc (); - if (ch == '$') - goto retry; - if (ch == '#') - break; - checksum = checksum + ch; - buffer[count] = ch; - count = count + 1; - } - buffer[count] = 0; - - if (ch == '#') - { - ch = serial_getc (); - xmitcsum = hex (ch) << 4; - ch = serial_getc (); - xmitcsum += hex (ch); - - if (checksum != xmitcsum) - { - serial_putc ('-'); /* failed checksum */ - } - else - { - serial_putc ('+'); /* successful transfer */ - - /* if a sequence char is present, reply the sequence ID */ - if (buffer[2] == ':') - { - serial_putc (buffer[0]); - serial_putc (buffer[1]); - - return &buffer[3]; - } - - return &buffer[0]; - } - } - } -} - - -/* send the packet in buffer. */ - -static void putpacket (register char *buffer) -{ - register int checksum; - - /* $#. */ - do - { - char *src = buffer; - serial_putc ('$'); - checksum = 0; - - while (*src) - { - int runlen; - - /* Do run length encoding */ - for (runlen = 0; runlen < 100; runlen ++) - { - if (src[0] != src[runlen]) - { - if (runlen > 3) - { - int encode; - /* Got a useful amount */ - serial_putc (*src); - checksum += *src; - serial_putc ('*'); - checksum += '*'; - checksum += (encode = runlen + ' ' - 4); - serial_putc (encode); - src += runlen; - } - else - { - serial_putc (*src); - checksum += *src; - src++; - } - break; - } - } - } - - - serial_putc ('#'); - serial_putc (highhex(checksum)); - serial_putc (lowhex(checksum)); - } - while (serial_getc() != '+'); -} - - -/* a bus error has occurred, perform a longjmp - to return execution and allow handling of the error */ - -void handle_buserror (void) -{ - longjmp (remcomEnv, 1); -} - -/* - * this function takes the SH-1 exception number and attempts to - * translate this number into a unix compatible signal value - */ -static int computeSignal (int exceptionVector) -{ - int sigval; - switch (exceptionVector) - { - case INVALID_INSN_VEC: - sigval = SIGILL; - break; - case INVALID_SLOT_VEC: - sigval = SIGILL; - break; - case CPU_BUS_ERROR_VEC: - sigval = SIGBUS; - break; - case DMA_BUS_ERROR_VEC: - sigval = SIGBUS; - break; - case NMI_VEC: - sigval = SIGINT; - break; - - case TRAP_VEC: - case USER_VEC: - sigval = SIGTRAP; - break; - - default: - sigval = SIGEMT; /* "software generated"*/ - break; - } - return (sigval); -} - -void doSStep (void) -{ - short *instrMem; - int displacement; - int reg; - unsigned short opcode; - - instrMem = (short *) registers[PC]; - - opcode = *instrMem; - stepped = 1; - - if ((opcode & COND_BR_MASK) == BT_INSTR) - { - if (registers[SR] & T_BIT_MASK) - { - displacement = (opcode & COND_DISP) << 1; - if (displacement & 0x80) - displacement |= 0xffffff00; - /* - * Remember PC points to second instr. - * after PC of branch ... so add 4 - */ - instrMem = (short *) (registers[PC] + displacement + 4); - } - else - instrMem += 1; - } - else if ((opcode & COND_BR_MASK) == BF_INSTR) - { - if (registers[SR] & T_BIT_MASK) - instrMem += 1; - else - { - displacement = (opcode & COND_DISP) << 1; - if (displacement & 0x80) - displacement |= 0xffffff00; - /* - * Remember PC points to second instr. - * after PC of branch ... so add 4 - */ - instrMem = (short *) (registers[PC] + displacement + 4); - } - } - else if ((opcode & UCOND_DBR_MASK) == BRA_INSTR) - { - displacement = (opcode & UCOND_DISP) << 1; - if (displacement & 0x0800) - displacement |= 0xfffff000; - - /* - * Remember PC points to second instr. - * after PC of branch ... so add 4 - */ - instrMem = (short *) (registers[PC] + displacement + 4); - } - else if ((opcode & UCOND_RBR_MASK) == JSR_INSTR) - { - reg = (char) ((opcode & UCOND_REG) >> 8); - - instrMem = (short *) registers[reg]; - } - else if (opcode == RTS_INSTR) - instrMem = (short *) registers[PR]; - else if (opcode == RTE_INSTR) - instrMem = (short *) registers[15]; - else if ((opcode & TRAPA_MASK) == TRAPA_INSTR) - instrMem = (short *) ((opcode & ~TRAPA_MASK) << 2); - else - instrMem += 1; - - instrBuffer.memAddr = instrMem; - instrBuffer.oldInstr = *instrMem; - *instrMem = SSTEP_INSTR; -} - - -/* Undo the effect of a previous doSStep. If we single stepped, - restore the old instruction. */ -void undoSStep (void) -{ - if (stepped) - { - short *instrMem; - instrMem = instrBuffer.memAddr; - *instrMem = instrBuffer.oldInstr; - } - stepped = 0; -} - -/* - * This function does all exception handling. It only does two things - - * it figures out why it was called and tells gdb, and then it reacts - * to gdb's requests. - * -*/ -void gdb_handle_exception (int exceptionVector) -{ - int sigval, stepping; - int addr, length; - char *ptr; - - /* reply to host that an exception has occurred */ - sigval = computeSignal (exceptionVector); - remcomOutBuffer[0] = 'S'; - remcomOutBuffer[1] = highhex(sigval); - remcomOutBuffer[2] = lowhex (sigval); - remcomOutBuffer[3] = 0; - - putpacket (remcomOutBuffer); - - /* - * exception 127 indicates a software trap - * inserted in place of code ... so back up - * PC by one instruction, since this instruction - * will later be replaced by its original one! - */ - if (exceptionVector == USER_VEC - || exceptionVector == TRAP_VEC) - registers[PC] -= 2; - - /* - * Do the things needed to undo - * any stepping we may have done! - */ - undoSStep (); - - stepping = 0; - - while (1) - { - remcomOutBuffer[0] = 0; - ptr = getpacket (); - - switch (*ptr++) - { - case '?': - remcomOutBuffer[0] = 'S'; - remcomOutBuffer[1] = highhex (sigval); - remcomOutBuffer[2] = lowhex (sigval); - remcomOutBuffer[3] = 0; - break; - case 'd': - remote_debug = !(remote_debug); /* toggle debug flag */ - break; - case 'g': /* return the value of the CPU registers */ - mem2hex ((char *) registers, remcomOutBuffer, NUMREGBYTES); - break; - case 'G': /* set the value of the CPU registers - return OK */ - hex2mem (ptr, (char *) registers, NUMREGBYTES); - strcpy (remcomOutBuffer, "OK"); - break; - - /* mAA..AA,LLLL Read LLLL bytes at address AA..AA */ - case 'm': - if (setjmp (remcomEnv) == 0) - { - dofault = 0; - /* TRY, TO READ %x,%x. IF SUCCEED, SET PTR = 0 */ - if (hex2int (&ptr, &addr)) - if (*(ptr++) == ',') - if (hex2int (&ptr, &length)) - { - ptr = 0; - mem2hex ((char *) addr, remcomOutBuffer, length); - } - if (ptr) - strcpy (remcomOutBuffer, "E01"); - } - else - strcpy (remcomOutBuffer, "E03"); - - /* restore handler for bus error */ - dofault = 1; - break; - - /* MAA..AA,LLLL: Write LLLL bytes at address AA.AA return OK */ - case 'M': - if (setjmp (remcomEnv) == 0) - { - dofault = 0; - - /* TRY, TO READ '%x,%x:'. IF SUCCEED, SET PTR = 0 */ - if (hex2int (&ptr, &addr)) - if (*(ptr++) == ',') - if (hex2int (&ptr, &length)) - if (*(ptr++) == ':') - { - hex2mem (ptr, (char *) addr, length); - ptr = 0; - strcpy (remcomOutBuffer, "OK"); - } - if (ptr) - strcpy (remcomOutBuffer, "E02"); - } - else - strcpy (remcomOutBuffer, "E03"); - - /* restore handler for bus error */ - dofault = 1; - break; - - /* cAA..AA Continue at address AA..AA(optional) */ - /* sAA..AA Step one instruction from AA..AA(optional) */ - case 's': - stepping = 1; - case 'c': - { - /* tRY, to read optional parameter, pc unchanged if no parm */ - if (hex2int (&ptr, &addr)) - registers[PC] = addr; - - if (stepping) - doSStep (); - } - - return; - break; - - /* kill the program */ - case 'k': /* do nothing */ - break; - - default: - break; - } /* switch */ - - /* reply to the request */ - putpacket (remcomOutBuffer); - } -} - - -/* We've had an exception - go into the gdb stub */ -void handle_exception(int exceptionVector) -{ - gdb_handle_exception (exceptionVector); -} - -/* This function will generate a breakpoint exception. It is used at the - beginning of a program to sync up with a debugger and can be used - otherwise as a quick means to stop program execution and "break" into - the debugger. */ -void breakpoint (void) -{ - BREAKPOINT (); -} - -/**** Processor-specific routines start here ****/ -/**** Processor-specific routines start here ****/ -/**** Processor-specific routines start here ****/ - -extern int stack[]; - -/* SH1/SH2 exception vector table format */ -typedef struct -{ - void (*func_cold) (void); - int *stack_cold; - void (*func_warm) (void); - int *stack_warm; - void (*(handler[128 - 4])) (void); -} vec_type; - -/* vectable is the SH1/SH2 vector table. It must be at address 0 -** or wherever your vbr points. -** Note that we only define the first 128 vectors, since the Jukebox -** firmware has its entry point at 0x200 -*/ -const vec_type vectable __attribute__ ((section (".vectors"))) = -{ - &start, /* 0: Power-on reset PC */ - stack, /* 1: Power-on reset SP */ - &start, /* 2: Manual reset PC */ - stack, /* 3: Manual reset SP */ - { - &catch_exception_4, /* 4: General invalid instruction */ - &catch_exception_5, /* 5: Reserved for system */ - &catch_exception_6, /* 6: Invalid slot instruction */ - &catch_exception_7, /* 7: Reserved for system */ - &catch_exception_8, /* 8: Reserved for system */ - &catch_exception_9, /* 9: CPU bus error */ - &catch_exception_10, /* 10: DMA bus error */ - &catch_exception_11, /* 11: NMI */ - &catch_exception_12, /* 12: User break */ - &catch_exception_13, /* 13: Reserved for system */ - &catch_exception_14, /* 14: Reserved for system */ - &catch_exception_15, /* 15: Reserved for system */ - &catch_exception_16, /* 16: Reserved for system */ - &catch_exception_17, /* 17: Reserved for system */ - &catch_exception_18, /* 18: Reserved for system */ - &catch_exception_19, /* 19: Reserved for system */ - &catch_exception_20, /* 20: Reserved for system */ - &catch_exception_21, /* 21: Reserved for system */ - &catch_exception_22, /* 22: Reserved for system */ - &catch_exception_23, /* 23: Reserved for system */ - &catch_exception_24, /* 24: Reserved for system */ - &catch_exception_25, /* 25: Reserved for system */ - &catch_exception_26, /* 26: Reserved for system */ - &catch_exception_27, /* 27: Reserved for system */ - &catch_exception_28, /* 28: Reserved for system */ - &catch_exception_29, /* 29: Reserved for system */ - &catch_exception_30, /* 30: Reserved for system */ - &catch_exception_31, /* 31: Reserved for system */ - &catch_exception_32, /* 32: Trap instr (user vectors) */ - &catch_exception_33, /* 33: Trap instr (user vectors) */ - &catch_exception_34, /* 34: Trap instr (user vectors) */ - &catch_exception_35, /* 35: Trap instr (user vectors) */ - &catch_exception_36, /* 36: Trap instr (user vectors) */ - &catch_exception_37, /* 37: Trap instr (user vectors) */ - &catch_exception_38, /* 38: Trap instr (user vectors) */ - &catch_exception_39, /* 39: Trap instr (user vectors) */ - &catch_exception_40, /* 40: Trap instr (user vectors) */ - &catch_exception_41, /* 41: Trap instr (user vectors) */ - &catch_exception_42, /* 42: Trap instr (user vectors) */ - &catch_exception_43, /* 43: Trap instr (user vectors) */ - &catch_exception_44, /* 44: Trap instr (user vectors) */ - &catch_exception_45, /* 45: Trap instr (user vectors) */ - &catch_exception_46, /* 46: Trap instr (user vectors) */ - &catch_exception_47, /* 47: Trap instr (user vectors) */ - &catch_exception_48, /* 48: Trap instr (user vectors) */ - &catch_exception_49, /* 49: Trap instr (user vectors) */ - &catch_exception_50, /* 50: Trap instr (user vectors) */ - &catch_exception_51, /* 51: Trap instr (user vectors) */ - &catch_exception_52, /* 52: Trap instr (user vectors) */ - &catch_exception_53, /* 53: Trap instr (user vectors) */ - &catch_exception_54, /* 54: Trap instr (user vectors) */ - &catch_exception_55, /* 55: Trap instr (user vectors) */ - &catch_exception_56, /* 56: Trap instr (user vectors) */ - &catch_exception_57, /* 57: Trap instr (user vectors) */ - &catch_exception_58, /* 58: Trap instr (user vectors) */ - &catch_exception_59, /* 59: Trap instr (user vectors) */ - &catch_exception_60, /* 60: Trap instr (user vectors) */ - &catch_exception_61, /* 61: Trap instr (user vectors) */ - &catch_exception_62, /* 62: Trap instr (user vectors) */ - &catch_exception_63, /* 63: Trap instr (user vectors) */ - &catch_exception_64, /* 64: IRQ0 */ - &catch_exception_65, /* 65: IRQ1 */ - &catch_exception_66, /* 66: IRQ2 */ - &catch_exception_67, /* 67: IRQ3 */ - &catch_exception_68, /* 68: IRQ4 */ - &catch_exception_69, /* 69: IRQ5 */ - &catch_exception_70, /* 70: IRQ6 */ - &catch_exception_71, /* 71: IRQ7 */ - &catch_exception_72, - &catch_exception_73, - &catch_exception_74, - &catch_exception_75, - &catch_exception_76, - &catch_exception_77, - &catch_exception_78, - &catch_exception_79, - &catch_exception_80, - &catch_exception_81, - &catch_exception_82, - &catch_exception_83, - &catch_exception_84, - &catch_exception_85, - &catch_exception_86, - &catch_exception_87, - &catch_exception_88, - &catch_exception_89, - &catch_exception_90, - &catch_exception_91, - &catch_exception_92, - &catch_exception_93, - &catch_exception_94, - &catch_exception_95, - &catch_exception_96, - &catch_exception_97, - &catch_exception_98, - &catch_exception_99, - &catch_exception_100, - &catch_exception_101, - &catch_exception_102, - &catch_exception_103, - &catch_exception_104, - &catch_exception_105, - &catch_exception_106, - &catch_exception_107, - &catch_exception_108, - &catch_exception_109, - &catch_exception_110, - &catch_exception_111, - &catch_exception_112, - &catch_exception_113, - &catch_exception_114, - &catch_exception_115, - &catch_exception_116, - &catch_exception_117, - &catch_exception_118, - &catch_exception_119, - &catch_exception_120, - &catch_exception_121, - &catch_exception_122, - &catch_exception_123, - &catch_exception_124, - &catch_exception_125, - &catch_exception_126, - &catch_exception_127}}; - -void INIT (void) -{ - /* Disable all timer interrupts */ - TIER0 = 0; - TIER1 = 0; - TIER2 = 0; - TIER3 = 0; - TIER4 = 0; - - init_serial(); - - in_nmi = 0; - dofault = 1; - stepped = 0; - - ata_spindown(-1); - - stub_sp = stub_stack; - breakpoint (); - - /* We should never come here */ - blink(); -} - -void sr(void) -{ - /* Calling Reset does the same as pressing the button */ - asm (".global _Reset\n" - " .global _WarmReset\n" - "_Reset:\n" - "_WarmReset:\n" - " mov.l L_sp,r15\n" - " bra _INIT\n" - " nop\n" - " .align 2\n" - "L_sp: .long _stack"); - - asm("saveRegisters:\n"); - asm(" mov.l @(L_reg, pc), r0\n" - " mov.l @r15+, r1 ! pop R0\n" - " mov.l r2, @(0x08, r0) ! save R2\n" - " mov.l r1, @r0 ! save R0\n" - " mov.l @r15+, r1 ! pop R1\n" - " mov.l r3, @(0x0c, r0) ! save R3\n" - " mov.l r1, @(0x04, r0) ! save R1\n" - " mov.l r4, @(0x10, r0) ! save R4\n" - " mov.l r5, @(0x14, r0) ! save R5\n" - " mov.l r6, @(0x18, r0) ! save R6\n" - " mov.l r7, @(0x1c, r0) ! save R7\n" - " mov.l r8, @(0x20, r0) ! save R8\n" - " mov.l r9, @(0x24, r0) ! save R9\n" - " mov.l r10, @(0x28, r0) ! save R10\n" - " mov.l r11, @(0x2c, r0) ! save R11\n" - " mov.l r12, @(0x30, r0) ! save R12\n" - " mov.l r13, @(0x34, r0) ! save R13\n" - " mov.l r14, @(0x38, r0) ! save R14\n" - " mov.l @r15+, r4 ! save arg to handleException\n" - " add #8, r15 ! hide PC/SR values on stack\n" - " mov.l r15, @(0x3c, r0) ! save R15\n" - " add #-8, r15 ! save still needs old SP value\n" - " add #92, r0 ! readjust register pointer\n" - " mov r15, r2\n" - " add #4, r2\n" - " mov.l @r2, r2 ! R2 has SR\n" - " mov.l @r15, r1 ! R1 has PC\n" - " mov.l r2, @-r0 ! save SR\n" - " sts.l macl, @-r0 ! save MACL\n" - " sts.l mach, @-r0 ! save MACH\n" - " stc.l vbr, @-r0 ! save VBR\n" - " stc.l gbr, @-r0 ! save GBR\n" - " sts.l pr, @-r0 ! save PR\n" - " mov.l @(L_stubstack, pc), r2\n" - " mov.l @(L_hdl_except, pc), r3\n" - " mov.l @r2, r15\n" - " jsr @r3\n" - " mov.l r1, @-r0 ! save PC\n" - " mov.l @(L_stubstack, pc), r0\n" - " mov.l @(L_reg, pc), r1\n" - " bra restoreRegisters\n" - " mov.l r15, @r0 ! save __stub_stack\n" - - " .align 2\n" - "L_reg:\n" - " .long _registers\n" - "L_stubstack:\n" - " .long _stub_sp\n" - "L_hdl_except:\n" - " .long _handle_exception"); -} - -void rr(void) -{ - asm(" .align 2 \n" - " .global _resume\n" - "_resume:\n" - " mov r4,r1\n" - "restoreRegisters:\n" - " add #8, r1 ! skip to R2\n" - " mov.l @r1+, r2 ! restore R2\n" - " mov.l @r1+, r3 ! restore R3\n" - " mov.l @r1+, r4 ! restore R4\n" - " mov.l @r1+, r5 ! restore R5\n" - " mov.l @r1+, r6 ! restore R6\n" - " mov.l @r1+, r7 ! restore R7\n" - " mov.l @r1+, r8 ! restore R8\n" - " mov.l @r1+, r9 ! restore R9\n" - " mov.l @r1+, r10 ! restore R10\n" - " mov.l @r1+, r11 ! restore R11\n" - " mov.l @r1+, r12 ! restore R12\n" - " mov.l @r1+, r13 ! restore R13\n" - " mov.l @r1+, r14 ! restore R14\n" - " mov.l @r1+, r15 ! restore programs stack\n" - " mov.l @r1+, r0\n" - " add #-8, r15 ! uncover PC/SR on stack \n" - " mov.l r0, @r15 ! restore PC onto stack\n" - " lds.l @r1+, pr ! restore PR\n" - " ldc.l @r1+, gbr ! restore GBR\n" - " ldc.l @r1+, vbr ! restore VBR\n" - " lds.l @r1+, mach ! restore MACH\n" - " lds.l @r1+, macl ! restore MACL\n" - " mov.l @r1, r0 \n" - " add #-88, r1 ! readjust reg pointer to R1\n" - " mov.l r0, @(4, r15) ! restore SR onto stack+4\n" - " mov.l r2, @-r15\n" - " mov.l L_in_nmi, r0\n" - " mov #0, r2\n" - " mov.b r2, @r0\n" - " mov.l @r15+, r2\n" - " mov.l @r1+, r0 ! restore R0\n" - " rte\n" - " mov.l @r1, r1 ! restore R1"); -} - -static inline void code_for_catch_exception(unsigned int n) -{ - asm(" .globl _catch_exception_%O0" : : "X" (n) ); - asm(" _catch_exception_%O0:" :: "X" (n) ); - - asm(" add #-4, r15 ! reserve spot on stack "); - asm(" mov.l r1, @-r15 ! push R1 "); - - if (n == NMI_VEC) - { - /* Special case for NMI - make sure that they don't nest */ - asm(" mov.l r0, @-r15 ! push R0"); - asm(" mov.l L_in_nmi, r0"); - asm(" tas.b @r0 ! Fend off against addtnl NMIs"); - asm(" bt noNMI"); - asm(" mov.l @r15+, r0"); - asm(" mov.l @r15+, r1"); - asm(" add #4, r15"); - asm(" rte"); - asm(" nop"); - asm(".align 2"); - asm("L_in_nmi: .long _in_nmi"); - asm("noNMI:"); - } - else - { - - if (n == CPU_BUS_ERROR_VEC) - { - /* Exception 9 (bus errors) are disasbleable - so that you - can probe memory and get zero instead of a fault. - Because the vector table may be in ROM we don't revector - the interrupt like all the other stubs, we check in here - */ - asm("mov.l L_dofault,r1"); - asm("mov.l @r1,r1"); - asm("tst r1,r1"); - asm("bf faultaway"); - asm("bsr _handle_buserror"); - asm(".align 2"); - asm("L_dofault: .long _dofault"); - asm("faultaway:"); - } - asm(" mov #15<<4, r1 "); - asm(" ldc r1, sr ! disable interrupts "); - asm(" mov.l r0, @-r15 ! push R0 "); - } - - /* Prepare for saving context, we've already pushed r0 and r1, stick - exception number into the frame */ - asm(" mov r15, r0 "); - asm(" add #8, r0 "); - asm(" mov %0,r1" :: "X" (n)); - asm(" extu.b r1,r1 "); - asm(" bra saveRegisters ! save register values "); - asm(" mov.l r1, @r0 ! save exception # "); -} - -/* Here we call all defined exceptions, so the inline assembler gets - generated */ -void exceptions (void) -{ - code_for_catch_exception (4); - code_for_catch_exception (5); - code_for_catch_exception (6); - code_for_catch_exception (7); - code_for_catch_exception (8); - code_for_catch_exception (9); - code_for_catch_exception (10); - code_for_catch_exception (11); - code_for_catch_exception (12); - code_for_catch_exception (13); - code_for_catch_exception (14); - code_for_catch_exception (15); - code_for_catch_exception (16); - code_for_catch_exception (17); - code_for_catch_exception (18); - code_for_catch_exception (19); - code_for_catch_exception (20); - code_for_catch_exception (21); - code_for_catch_exception (22); - code_for_catch_exception (23); - code_for_catch_exception (24); - code_for_catch_exception (25); - code_for_catch_exception (26); - code_for_catch_exception (27); - code_for_catch_exception (28); - code_for_catch_exception (29); - code_for_catch_exception (30); - code_for_catch_exception (31); - code_for_catch_exception (32); - code_for_catch_exception (33); - code_for_catch_exception (34); - code_for_catch_exception (35); - code_for_catch_exception (36); - code_for_catch_exception (37); - code_for_catch_exception (38); - code_for_catch_exception (39); - code_for_catch_exception (40); - code_for_catch_exception (41); - code_for_catch_exception (42); - code_for_catch_exception (43); - code_for_catch_exception (44); - code_for_catch_exception (45); - code_for_catch_exception (46); - code_for_catch_exception (47); - code_for_catch_exception (48); - code_for_catch_exception (49); - code_for_catch_exception (50); - code_for_catch_exception (51); - code_for_catch_exception (52); - code_for_catch_exception (53); - code_for_catch_exception (54); - code_for_catch_exception (55); - code_for_catch_exception (56); - code_for_catch_exception (57); - code_for_catch_exception (58); - code_for_catch_exception (59); - code_for_catch_exception (60); - code_for_catch_exception (61); - code_for_catch_exception (62); - code_for_catch_exception (63); - code_for_catch_exception (64); - code_for_catch_exception (65); - code_for_catch_exception (66); - code_for_catch_exception (67); - code_for_catch_exception (68); - code_for_catch_exception (69); - code_for_catch_exception (70); - code_for_catch_exception (71); - code_for_catch_exception (72); - code_for_catch_exception (73); - code_for_catch_exception (74); - code_for_catch_exception (75); - code_for_catch_exception (76); - code_for_catch_exception (77); - code_for_catch_exception (78); - code_for_catch_exception (79); - code_for_catch_exception (80); - code_for_catch_exception (81); - code_for_catch_exception (82); - code_for_catch_exception (83); - code_for_catch_exception (84); - code_for_catch_exception (85); - code_for_catch_exception (86); - code_for_catch_exception (87); - code_for_catch_exception (88); - code_for_catch_exception (89); - code_for_catch_exception (90); - code_for_catch_exception (91); - code_for_catch_exception (92); - code_for_catch_exception (93); - code_for_catch_exception (94); - code_for_catch_exception (95); - code_for_catch_exception (96); - code_for_catch_exception (97); - code_for_catch_exception (98); - code_for_catch_exception (99); - code_for_catch_exception (100); - code_for_catch_exception (101); - code_for_catch_exception (102); - code_for_catch_exception (103); - code_for_catch_exception (104); - code_for_catch_exception (105); - code_for_catch_exception (106); - code_for_catch_exception (107); - code_for_catch_exception (108); - code_for_catch_exception (109); - code_for_catch_exception (110); - code_for_catch_exception (111); - code_for_catch_exception (112); - code_for_catch_exception (113); - code_for_catch_exception (114); - code_for_catch_exception (115); - code_for_catch_exception (116); - code_for_catch_exception (117); - code_for_catch_exception (118); - code_for_catch_exception (119); - code_for_catch_exception (120); - code_for_catch_exception (121); - code_for_catch_exception (122); - code_for_catch_exception (123); - code_for_catch_exception (124); - code_for_catch_exception (125); - code_for_catch_exception (126); - code_for_catch_exception (127); -} - -/* - * Port B Control Register (PBCR1) - */ -#define PB15MD1 0x8000 -#define PB15MD0 0x4000 -#define PB14MD1 0x2000 -#define PB14MD0 0x1000 -#define PB13MD1 0x0800 -#define PB13MD0 0x0400 -#define PB12MD1 0x0200 -#define PB12MD0 0x0100 -#define PB11MD1 0x0080 -#define PB11MD0 0x0040 -#define PB10MD1 0x0020 -#define PB10MD0 0x0010 -#define PB9MD1 0x0008 -#define PB9MD0 0x0004 -#define PB8MD1 0x0002 -#define PB8MD0 0x0001 - -#define PB15MD PB15MD1|PB14MD0 -#define PB14MD PB14MD1|PB14MD0 -#define PB13MD PB13MD1|PB13MD0 -#define PB12MD PB12MD1|PB12MD0 -#define PB11MD PB11MD1|PB11MD0 -#define PB10MD PB10MD1|PB10MD0 -#define PB9MD PB9MD1|PB9MD0 -#define PB8MD PB8MD1|PB8MD0 - -#define PB_TXD1 PB11MD1 -#define PB_RXD1 PB10MD1 -#define PB_TXD0 PB9MD1 -#define PB_RXD0 PB8MD1 - -#define PB7MD PB7MD1|PB7MD0 -#define PB6MD PB6MD1|PB6MD0 -#define PB5MD PB5MD1|PB5MD0 -#define PB4MD PB4MD1|PB4MD0 -#define PB3MD PB3MD1|PB3MD0 -#define PB2MD PB2MD1|PB2MD0 -#define PB1MD PB1MD1|PB1MD0 -#define PB0MD PB0MD1|PB0MD0 - - -void handleError (char theSSR); - -void nop (void) -{ -} - -void init_serial (void) -{ - int i; - - /* Clear Channel 1's SCR */ - SCR1 = 0; - - /* Set communication to be async, 8-bit data, - no parity, 1 stop bit and use internal clock */ - SMR1 = 0; -/* BRR1 = SYSCLOCK / (9600 * 32) - 1;*/ - BRR1 = 9; /* 38400 */ - - SCR1 &= ~(SCI_CKE1 | SCI_CKE0); - - /* let the hardware settle */ - for (i = 0; i < 1000; i++) - nop (); - - /* Turn on in and out */ - SCR1 |= SCI_RE | SCI_TE; - - /* Set the PFC to make RXD1 (pin PB8) an input pin - and TXD1 (pin PB9) an output pin */ - PBCR1 &= ~(PB_TXD1 | PB_RXD1); - PBCR1 |= PB_TXD1 | PB_RXD1; -} - - -int serial_waitc(void) -{ - char mySSR; - mySSR = SSR1 & ( SCI_PER | SCI_FER | SCI_ORER ); - if ( mySSR ) - handleError ( mySSR ); - return SSR1 & SCI_RDRF ; -} - -char serial_getc (void) -{ - char ch; - char mySSR; - - while ( ! serial_waitc()) - ; - - ch = RDR1; - SSR1 &= ~SCI_RDRF; - - mySSR = SSR1 & (SCI_PER | SCI_FER | SCI_ORER); - - if (mySSR) - handleError (mySSR); - - return ch; -} - -void serial_putc (char ch) -{ - while (!(SSR1 & SCI_TDRE)) - { - ; - } - - /* - * Write data into TDR and clear TDRE - */ - TDR1 = ch; - SSR1 &= ~SCI_TDRE; -} - -void handleError (char theSSR) -{ - /* Clear all error bits, otherwise the receiver will stop */ - SSR1 &= ~(SCI_ORER | SCI_PER | SCI_FER); -} diff --git a/gdb/start.s b/gdb/start.s deleted file mode 100644 index e902db7ad6..0000000000 --- a/gdb/start.s +++ /dev/null @@ -1,41 +0,0 @@ -!*************************************************************************** -! __________ __ ___. -! Open \______ \ ____ ____ | | _\_ |__ _______ ___ -! Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / -! Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < -! Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ -! \/ \/ \/ \/ \/ -! $Id$ -! -! Copyright (C) 2002 by Linus Nielsen Feltzing -! -! All files in this archive are subject to the GNU General Public License. -! See the file COPYING in the source tree root for full license agreement. -! -! This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -! KIND, either express or implied. -! -!*************************************************************************** -! note: sh-1 has a "delay cycle" after every branch where you can -! execute another instruction "for free". - - .file "start.s" - .section .text - .extern _INIT - .extern _vectable - .extern _stack - .global _start - .align 2 - -_start: - mov.l 1f, r1 - mov.l 3f, r3 - mov.l 2f, r15 - jmp @r3 - ldc r1, vbr - nop - -1: .long _vectable -2: .long _stack -3: .long _INIT - .type _start,@function diff --git a/www/Makefile b/www/Makefile deleted file mode 100644 index 0fd53bf94b..0000000000 --- a/www/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -ACTION=@echo preprocessing $@; rm -f $@; $(HOME)/bin/fcpp -WWW -Uunix -H -C -V -LL >$@ - -SRC := $(wildcard *.t) -OBJS := $(SRC:%.t=%.html) daily.shtml - -.SUFFIXES: .t .html - -%.html : %.t - $(ACTION) $< - -%.shtml : %.t - $(ACTION) $< - -all: $(OBJS) - @(cd schematics; $(MAKE)) - @(cd docs; $(MAKE)) - @(cd mods; $(MAKE)) - @(cd internals; $(MAKE)) - @(cd irc; $(MAKE)) - @(cd devcon; $(MAKE)) - -main.html: main.t activity.html - -daily.shtml: daily.t - diff --git a/www/activity.t b/www/activity.t deleted file mode 100644 index f1d1cb7ea5..0000000000 --- a/www/activity.t +++ /dev/null @@ -1,42 +0,0 @@ -#define YELLOW "#ffffa3" -#define GREEN "#80db72" -#define RED "#ffadad" - -#define STATUS(_col_,_mod_,_file_,_href_,_person_,_status_) \ -_mod__file__person__status_ - - - - - - -
Color codes:
    Working code exists
    Development in progress
    Undermanned. Help needed.
- - - -STATUS(GREEN,I2C driver,firmware/drivers/i2c.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/firmware/drivers/i2c.c", Linus,Works) -STATUS(GREEN,LED driver,firmware/drivers/led.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/firmware/drivers/led.c",Björn,Works) -STATUS(GREEN,GDB stub,gdb/,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/gdb/", Linus,Works) -STATUS(GREEN,List,firmware/common/list.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/firmware/common/lists.c", Linus,Works) -STATUS(GREEN,ID3 parser,firmware/i3d.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/firmware/id3.c", Daniel,Works) -STATUS(GREEN,FAQ,www/docs/FAQ,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/www/docs/FAQ",Rob,Existing) -STATUS(GREEN,Fat32 filesystem,firmware/drivers/fat.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/firmware/drivers/fat.c", Björn,Works) -STATUS(GREEN,Tetris,apps/tetris.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/apps/tetris.c",  , Works) -STATUS(GREEN,MAS driver,firmware/drivers/mas.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/firmware/drivers/mas.c", Linus,Works) -STATUS(GREEN,ATA driver,firmware/drivers/ata.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/firmware/drivers/ata.c", Björn,Works) -STATUS(GREEN,Scheduler,firmware/thread.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/firmware/thread.c", Linus,Works) -STATUS(GREEN,X11 simulator,uisimulator/x11, "http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/uisimulator/x11/", Daniel,Works) -STATUS(GREEN,Win32 simulator,uisimulator/win32/,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/uisimulator/win32/", Felix,Works) -STATUS(GREEN,API docs,firmware/API,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/firmware/API", ,First version) -STATUS(GREEN,Key handling,firmware/drivers/button.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/firmware/drivers/button.c",Björn,Works) -STATUS(GREEN,CPU setup,firmware/system.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/firmware/system.c", Linus,Works) -STATUS(GREEN,Directory browser UI,apps/tree.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/apps/tree.c", Daniel,Works) -STATUS(GREEN,LCD driver,firmware/drivers/lcd.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/firmware/drivers/lcd.c", Björn,Works) -STATUS(GREEN,Mpeg thread,firmware/mpeg.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/firmware/mpeg.c",Linus, Works) -STATUS(YELLOW,Playlist handling,firmware/playlist.c,"http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/firmware/playlist.c", Wavey, Progressing) -#if 0 -STATUS(RED,Boot loader (rolo), ,"", ,Planned) -STATUS(RED,New DSP algorithms, ,"", ,We need help!) -#endif -
ModuleFile(s) in CVSCurrent personStatus
-Updated __DATE__ diff --git a/www/codes_new.png b/www/codes_new.png deleted file mode 100644 index 03cb1deadb..0000000000 Binary files a/www/codes_new.png and /dev/null differ diff --git a/www/codes_old.png b/www/codes_old.png deleted file mode 100644 index b30a155a32..0000000000 Binary files a/www/codes_old.png and /dev/null differ diff --git a/www/codes_rec.png b/www/codes_rec.png deleted file mode 100644 index c9acdb82f5..0000000000 Binary files a/www/codes_rec.png and /dev/null differ diff --git a/www/cross-gcc.t b/www/cross-gcc.t deleted file mode 100644 index 0915961ef8..0000000000 --- a/www/cross-gcc.t +++ /dev/null @@ -1,93 +0,0 @@ -#define _PAGE_ Building the SH1 cross compiler -#include "head.t" - -

-In this example I will assume that you are running Linux with the bash shell. -We will only build the C compiler along with the assembler, linker and stuff. -Note that the procedure is exactly the same if you are running cygwin on Windows. -

Download the source code

-

-You will need the following archives: -

    -
  • binutils-2.11.tar.gz (find it at your closest GNU FTP site) -
  • gcc-3.0.3.tar.gz (find it at your closest GNU FTP site) -
  • newlib-1.10.0.tar.gz (go to the newlib home page for information) -
  • (optional) gdb-5.1.1.tar.gz (find it at your closest GNU FTP site) -
-

Unpack the archives

-

-

- /home/linus> tar zxf binutils-2.11.tar.gz
- /home/linus> tar zxf gcc-3.0.3.tar.gz
- /home/linus> tar zxf newlib-1.10.0.tar.gz
- /home/linus> tar zxf gdb-5.1.1.tar.gz
-
-

Create the directory tree

-

-

- /home/linus> mkdir build
- /home/linus> cd build
- /home/linus/build> mkdir binutils
- /home/linus/build> mkdir gcc
- /home/linus/build> mkdir gdb
-
-

Create the newlib and libgloss links

-

-The GCC configuration script finds the newlib and libgloss files if they are in the GCC tree. Let's create two soft links. -

- /home/linus> cd gcc-3.0.3
- /home/linus/gcc-3.0.3> ln -s ../newlib-1.10.0/newlib .
- /home/linus/gcc-3.0.3> ln -s ../newlib-1.10.0/libgloss .
-
-

Choose location

-

-Now is the time to decide where you want the tools to be installed. This is -the directory where all binaries, libraries, man pages and stuff end up when -you do "make install". -

-In this example I have chosen "/home/linus/sh1" as my installation directory, or prefix as it is called. Feel free to use any prefix, like -/usr/local/sh1 for example. -

Build binutils

-

-We will start with building the binutils (the assembler, linker and stuff). -This is pretty straightforward. We will be installing the whole tool chain -in the /home/linus/sh1 directory. -

- /home/linus> cd build/binutils
- /home/linus/build/binutils> ../../binutils-2.11/configure --target=sh-elf --prefix=/home/linus/sh1
- /home/linus/build/binutils> make
- /home/linus/build/binutils> make install
-
-

Build GCC

-

-Now you are ready to build GCC. To do this, you must have the newly built -binutils in the PATH. -

- /home/linus> export PATH=/home/linus/sh1/bin:$PATH
- /home/linus> cd build/gcc
- /home/linus/gcc> ../../gcc-3.0.3/configure --target=sh-elf --prefix=/home/linus/sh1 --with-newlib --enable-languages=c
- /home/linus/build/gcc> make
- /home/linus/build/gcc> make install
-
-

Build GDB

-

-If you are planning to debug your code with GDB, you have to build it as well. -

- /home/linus> export PATH=/home/linus/sh1/bin:$PATH
- /home/linus> cd build/gdb
- /home/linus/gdb> ../../gdb-5.1.1/configure --target=sh-elf --prefix=/home/linus/sh1
- /home/linus/build/gdb> make
- /home/linus/build/gdb> make install
-
-

Done

-

-If someone up there likes you, you now have a working tool chain for SH1. -To compile a file with gcc: -

- /home/linus> sh-elf-gcc -c main.o main.c
-
-Good luck! -

-Linus - -#include "foot.t" diff --git a/www/cvs.t b/www/cvs.t deleted file mode 100644 index ea40584e2a..0000000000 --- a/www/cvs.t +++ /dev/null @@ -1,132 +0,0 @@ -#define _PAGE_ Accessing source code via CVS -#include "head.t" - -

Browsing the repositry

- -

Just go here. - -

Downloading (checking out) the source

- -

You, obviously, need to have CVS installed to do this. - -

The examples below use the 'firmware' module, since that's what most people are interested in. Here is a complete list of the available modules: - -

    -
  • apps - the source code to the applications -
  • firmware - the source code to the firmware library -
  • gdb - the gdb stub to use for remote debugging -
  • tools - tools for building the firmware -
  • uisimulator - a user interface simulator for X11 -
  • www - the web page -
- -

Anonymous read-only checkout

- -

If you are not a registered developer, use this method. -When asked for a password, just press enter: - -

cvs -d:pserver:anonymous@cvs.rockbox.sourceforge.net:/cvsroot/rockbox login -
cvs -z3 -d:pserver:anonymous@cvs.rockbox.sourceforge.net:/cvsroot/rockbox co firmware
- -

A "firmware" directory will be created in your current directory, and all the source files go there. - -

Checkout for developers

- -

For this, you need to: - -

    -
  1. Have SSH installed. -
  2. Have a SourceForge account -
  3. Be a -registered developer -of the Rockbox project -
  4. Log on to your cvs server account once: ssh username@cvs.rockbox.sourceforge.net
    It will disconnect you immediately, but now your account is set up. -
- -

Then run: - -

export CVS_RSH=ssh -
cvs -z3 -d:ext:username@cvs.rockbox.sourceforge.net:/cvsroot/rockbox co firmware
- -

If you are using WinCVS, the procedure is -somewhat different. - -

Checking in modifications

- -

CVS is a "no-reserve" version control system. This means that you work on your local files without first reserving them. Any conflicts with other developers are detected when you check-in, or "commit" as it's called in CVS: - -

cvs commit filename - -

This will start an editor and ask you to describe the changes you've made. If you want, you can use the -m command line option to specify the comment right there: - -

cvs commit -m "This is my change comment" filename - - -

Updating your repository

- -

Since several people commit to the repository, you will need to periodically -synchronize your local files with the changes made by others. -This operation is called "update": - -

cvs update -dP - -

The -d switch tells update to create any new directories that have been created the repository since last update. -
The -P switch tells update to delete files that have been removed in the repository. - -

Adding a new file

- -

Adding a file is very simple: - -

cvs add filename - -

If you are adding a binary file, you need to specify the -kb flag: - -

cvs add -kb filename - -

These changes, like any other change, has to be committed before they will be visible on the server. - -

Querying the status of your files

- -

Sometimes it is interesting to get a list of the status of your files versus -those on the remote repository. This is called "status": - -

cvs status - -

The output from "status" can be rather verbose. You may want to filter it with grep: - -

cvs status | grep Status - -

To only list files who differ from the server, filter again: - -

cvs status | grep Status | grep -v Up-to-date - -

What Happens in the Repository?

-

- Subscribe to the rockbox-cvs list to get mails sent to you for every commit - done to the repostory. -

- To join this list, send a mail to majordomo@cool.haxx.se, with the following - text in the body (no subject) "subscribe rockbox-cvs". -

- Note that this may cause quite a few mails to get sent during periods -of intense development. - -

Getting rid of the password prompts

- -

Each cvs operation has to be authenticated with ssh. This is normally done -by you entering your password. This gets boring fast. -Instead, you can register your public ssh key with your SourceForge account. This way, your connection is authenticated automatically. - -

Log in -to your SourceForge account and go to your -account options. -On the bottom of the page, there is a link to -edit your ssh keys. -Copy the contents of your local .ssh/identity.pub or -.ssh/id_rsa.pub there. - -

Like many things on SourceForge, the key change doesn't take effect immediately. You'll have to wait a few hours until some magic batch job kicks in and puts your keys where they should be. Then you can use cvs without entering your password. - -

If you work from several different computers/accounts, you must add the key for each account you are using. - -#include "foot.t" diff --git a/www/daily.t b/www/daily.t deleted file mode 100644 index c456c1b083..0000000000 --- a/www/daily.t +++ /dev/null @@ -1,29 +0,0 @@ -#define _PAGE_ Daily builds -#include "head.t" - -

Source tarballs

- - - -

Useful links for do-it-yourselfers: -

- -

Target builds

- -

These are automated daily builds of the CVS code. -They are not official releases, they are in fact almost guaranteed to not work properly! These builds are discussed in IRC only, do not file bug reports for them. - -

There are three versions of each build: - - - -

Note 1: You must rename the file to "archos.mod" before copying it to the root of your archos. - -

Note 2: The Recorder version does not work yet, due to unfinished drivers. It builds, but does not run. - -#include "foot.t" diff --git a/www/dailymod.pl b/www/dailymod.pl deleted file mode 100755 index f923a414c0..0000000000 --- a/www/dailymod.pl +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/perl - -$basedir = "/home/dast/rockbox-build/daily-build"; - -sub list { - $dir = shift @_; - - opendir(DIR, "$basedir/$dir") or - die "Can't opendir($basedir/$dir)"; - @tarballs = grep { /^archos/ } readdir(DIR); - closedir DIR; - - print "

    \n"; - for ( @tarballs ) { - print "
  • $_\n"; - } - print "
\n"; -} - -print "

player-old

\n"; -print "

This version is for old Archos Jukebox 6000 models with ROM firmware older than 4.50.\n"; -&list("playerold"); - -print "

player

\n"; -print "

This version is for Archos Jukebox 6000 with ROM firmware 4.50 or later, and all Studio models.\n"; -&list("player"); - -print "

recorder

\n"; -print "

This version is for all Archos Jukebox Recorder models.\n"; -&list("recorder"); diff --git a/www/dailysrc.pl b/www/dailysrc.pl deleted file mode 100755 index ea3cd40a13..0000000000 --- a/www/dailysrc.pl +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/perl - -$basedir = "/home/dast/rockbox-build/daily-build/"; - -opendir(DIR, $basedir) or - die "Can't opendir($basedir)"; -@tarballs = grep { /^rockbox-daily-/ } readdir(DIR); -closedir DIR; - -print "

    \n"; - -for ( @tarballs ) { - $size = (stat("$basedir/$_"))[7]; - $log = ""; - if (/-(\d+)/) { - $date = $1; - if ( -f "$basedir/changes-$date.log") { - $log = "Changelog"; - } - } - print "
  • $_ ($size bytes) $log\n"; -} - -print "
\n"; diff --git a/www/devcon/IMG_4083.JPG b/www/devcon/IMG_4083.JPG deleted file mode 100644 index d6ed305045..0000000000 Binary files a/www/devcon/IMG_4083.JPG and /dev/null differ diff --git a/www/devcon/IMG_4084.JPG b/www/devcon/IMG_4084.JPG deleted file mode 100644 index fedff94c8e..0000000000 Binary files a/www/devcon/IMG_4084.JPG and /dev/null differ diff --git a/www/devcon/IMG_4085.JPG b/www/devcon/IMG_4085.JPG deleted file mode 100644 index d592852b0d..0000000000 Binary files a/www/devcon/IMG_4085.JPG and /dev/null differ diff --git a/www/devcon/IMG_4086.JPG b/www/devcon/IMG_4086.JPG deleted file mode 100644 index 758c6ad3fb..0000000000 Binary files a/www/devcon/IMG_4086.JPG and /dev/null differ diff --git a/www/devcon/IMG_4087.JPG b/www/devcon/IMG_4087.JPG deleted file mode 100644 index 15846b5a9b..0000000000 Binary files a/www/devcon/IMG_4087.JPG and /dev/null differ diff --git a/www/devcon/IMG_4088.JPG b/www/devcon/IMG_4088.JPG deleted file mode 100644 index 53c760d9aa..0000000000 Binary files a/www/devcon/IMG_4088.JPG and /dev/null differ diff --git a/www/devcon/IMG_4089.JPG b/www/devcon/IMG_4089.JPG deleted file mode 100644 index 00dacfc742..0000000000 Binary files a/www/devcon/IMG_4089.JPG and /dev/null differ diff --git a/www/devcon/bildtext.txt b/www/devcon/bildtext.txt deleted file mode 100644 index f8869f815c..0000000000 --- a/www/devcon/bildtext.txt +++ /dev/null @@ -1,5 +0,0 @@ -4083: Comparison between Recorder and Player -4084: Contest: Spot the development box! -4086: A stack of "virgins"! -4087: A pre-4.50 player (left) and a post-4.50 player (right). -4089: There's lots of fun to be had with these things! diff --git a/www/devcon/img4083.jpg b/www/devcon/img4083.jpg deleted file mode 100644 index e26cb18829..0000000000 Binary files a/www/devcon/img4083.jpg and /dev/null differ diff --git a/www/devcon/img4083t.jpg b/www/devcon/img4083t.jpg deleted file mode 100644 index b615af2d92..0000000000 Binary files a/www/devcon/img4083t.jpg and /dev/null differ diff --git a/www/devcon/img4084.jpg b/www/devcon/img4084.jpg deleted file mode 100644 index 9dbd59ae86..0000000000 Binary files a/www/devcon/img4084.jpg and /dev/null differ diff --git a/www/devcon/img4084t.jpg b/www/devcon/img4084t.jpg deleted file mode 100644 index 31c2b6e9a7..0000000000 Binary files a/www/devcon/img4084t.jpg and /dev/null differ diff --git a/www/devcon/img4085.jpg b/www/devcon/img4085.jpg deleted file mode 100644 index 376a8f31ae..0000000000 Binary files a/www/devcon/img4085.jpg and /dev/null differ diff --git a/www/devcon/img4085t.jpg b/www/devcon/img4085t.jpg deleted file mode 100644 index 52f3afe1c3..0000000000 Binary files a/www/devcon/img4085t.jpg and /dev/null differ diff --git a/www/devcon/img4086.jpg b/www/devcon/img4086.jpg deleted file mode 100644 index 051361c30b..0000000000 Binary files a/www/devcon/img4086.jpg and /dev/null differ diff --git a/www/devcon/img4086t.jpg b/www/devcon/img4086t.jpg deleted file mode 100644 index 18736fecb1..0000000000 Binary files a/www/devcon/img4086t.jpg and /dev/null differ diff --git a/www/devcon/img4087.jpg b/www/devcon/img4087.jpg deleted file mode 100644 index 2c047babe3..0000000000 Binary files a/www/devcon/img4087.jpg and /dev/null differ diff --git a/www/devcon/img4087t.jpg b/www/devcon/img4087t.jpg deleted file mode 100644 index 89ed22845e..0000000000 Binary files a/www/devcon/img4087t.jpg and /dev/null differ diff --git a/www/devcon/img4088.jpg b/www/devcon/img4088.jpg deleted file mode 100644 index f2cb22fb65..0000000000 Binary files a/www/devcon/img4088.jpg and /dev/null differ diff --git a/www/devcon/img4088t.jpg b/www/devcon/img4088t.jpg deleted file mode 100644 index 520023100d..0000000000 Binary files a/www/devcon/img4088t.jpg and /dev/null differ diff --git a/www/devcon/img4089.jpg b/www/devcon/img4089.jpg deleted file mode 100644 index a21385f118..0000000000 Binary files a/www/devcon/img4089.jpg and /dev/null differ diff --git a/www/devcon/img4089t.jpg b/www/devcon/img4089t.jpg deleted file mode 100644 index b3443677f5..0000000000 Binary files a/www/devcon/img4089t.jpg and /dev/null differ diff --git a/www/devcon/index.t b/www/devcon/index.t deleted file mode 100644 index 8f0e1d78e7..0000000000 --- a/www/devcon/index.t +++ /dev/null @@ -1,132 +0,0 @@ -#define _PAGE_ Rockbox Developer Conference 2002 -#include "head.t" - -
photo
Comparison of Recorder and Player
- -

Well, almost. :-) Björn, Linus, Daniel and Kjell sat down at Linus' house -friday night (2002-04-19) with our Archoses and had a long and fruitful discussion about software design. -Here are a few things that we discussed: - -

Application Programming Interfaces

- -

We want to try to stick to POSIX where these exist and are practical. The -reason is simply that many people already know these APIs well. Here are a -few which haven't already been defined in the code: - -

File operations

-
    -
  • open -
  • close -
  • read -
  • write -
  • seek -
  • unlink -
  • rename -
- -
photo -
Contest: Spot the development box!
- -

Directory operations

-
    -
  • opendir -
  • closedir -
  • readdir -
- -

Disk operations

-
    -
  • readblock -
  • writeblock -
  • spindown -
  • diskinfo -
  • partitioninfo -
- -

We also decided that we will use the 'newlib' standard C library, -replacing some functions with smaller variants as we move forward. - -

Multitasking

- -

We spent much time discussing and debating task scheduling, or the lack -thereof. First, we went with the idea that we don't really need "real" -scheduling. Instead, a simple "tree-task" system would be used: A -main-loop, a timer tick and a "bottom half" low-priority interrupt, each -with an event queue. - -

Pretty soon we realized that we will want to: - -

    -
  1. Use a timer tick to poll disk I/O (assuming we can't get an interrupt) -
  2. Perform slow disk operations in both the MP3->DAC feeder and the user - interface, sometimes at the same time. -
  3. Not lock up the user interface during I/O. -
- -
photo -
A stack of "virgins"!
- -

At the same time, we agreed that we should not walk into the common trap -of engaging in "job splitting". That is, to split up jobs in small chunks -so they don't take so long to finish. The problem with job splitting is -that it makes the code flow very complex. - -

After much scratching our collective heads over how to make a primitive -"three-task" system be able to do everything we wanted without resorting -to complex job splitting, we finally came to the conclusion that we were -heading down the wrong road: - -

- We need threading. -
- -

Even though a scheduler adds complexity, it makes the rest of the code so -much more straight-forward that the total net result is less overall -complexity. - -

To keep it simple, we decided to use a cooperative scheduler. That is, one -in which the threads themselves decide when scheduling is performed. The -big gain from this, apart from making the scheduler itself less complex, -is that we don't have to worry as much about making all code "multithread -safe". - -

Affording ourselves the luxury of threads, we soon identified four basic -threads: - -

    -
  • Disk thread, performing all disk operations -
  • UI thread, handling the user interface -
  • MP3 feed thread, making sure the MAS is fed with data at all times -
  • I2C thread, handling the sometimes very relaxed timing of the I2C bus -
- -

Threads use message passing between them and each have a message queue -associated to it. - -
photo -
There's much fun to be had with these things!
- -

In addition to the threads, we need a timer interrupt with the ability to -send messages to threads at specific intervals. This will also be used to -scan the keys of the jukebox and handle key repeat detection (when a key -has been pressed for a number of ticks). - -

None of these things are, of course, written in stone. Feel free to -comment, discuss and argue about them! - -

We are currently 89 subscribers to this list. If you want to get more -deeply involved in what's going on, I encourage you to: - -

    -
  • Subscribe to the rockbox-cvs list, to see all code that goes in. -
  • Join the #rockbox channel on irc.openprojects.net. There are always a -couple of us in there. -
- -

I have written a set of guidelines for contributing code to the project. -Take a look at them in CVS or here: -CONTRIBUTING - -

/Björn - -#include "foot.t" diff --git a/www/devcon/show.cgi b/www/devcon/show.cgi deleted file mode 100755 index c8123b38e0..0000000000 --- a/www/devcon/show.cgi +++ /dev/null @@ -1,96 +0,0 @@ -#!/usr/bin/perl - -use File::Basename; - -$cgi = basename $0; - -print "Content-Type: text/html\n\n"; - -$image = $ARGV[0]; - -$image =~ /img(\d+)/; - -print "Rockbox - Photo $1\n"; -print "\n"; - -if ($image eq "" ) { - print "

No image specified\n"; - exit; -} - -print "

 

\n"; - -# compressed image -if ( $image =~ /img(\d+).jpg/ ) { - $num = $1; - for $i ( 1 .. 10 ) { - $prev = sprintf("%04d",$num-$i); - last if ( -f "img$prev.jpg" ); - } - if ( $prev == $num-10 ) { - undef $prev; - } - - for $i ( 1 .. 20 ) { - $next = sprintf("%04d",$num+$i); - print "\n"; - last if ( -f "img$next.jpg" ); - } - if ( $next == $num+20 ) { - undef $next; - } - - if ( -f "bildtext.txt" ) { - open FILE, "; - close FILE; - @match = grep /^$num: /, @txt; - if ( $match[0] =~ /^$num: (.*)/ ) { - print "

$1\n"; - } - } - - - print "

\n"; - print "< Previous   \n" if ( $prev ); - print "Index\n"; - if ( -f "IMG_$num.JPG" ) { - $size = int( (stat("IMG_$num.JPG"))[7] / 1024 ); - print "   Fullsize ($size kB)\n"; - } - - print "   Next >\n" if ( $next ); - -} - -# showing fullsize already -elsif ( $image =~ /IMG_(\d+).JPG/ ) { - $num = $1; - for $i ( 1 .. 10 ) { - $prev = sprintf("%04d",$num-$i); - last if ( -f "IMG_$prev.JPG" ); - } - if ( $prev == $num-10 ) { - undef $prev; - } - - for $i ( 1 .. 20 ) { - $next = sprintf("%04d",$num+$i); - print "\n"; - last if ( -f "IMG_$next.JPG" ); - } - if ( $next == $num+20 ) { - undef $next; - } - - print "

\n"; - print "< Previous   \n" if ( $prev ); - print "Index\n"; - if ( -f "img$num.jpg" ) { - $size = int( (stat("img$num.jpg"))[7] / 1024 ); - print "   Small ($size kB)\n"; - } - - print "   Next >\n" if ( $next ); -} -print "

\n"; diff --git a/www/docs/FAQ b/www/docs/FAQ deleted file mode 100644 index 7220719971..0000000000 --- a/www/docs/FAQ +++ /dev/null @@ -1,194 +0,0 @@ -------------------------------------------------------------------- - __________ __ ___. - Open \______ \ ____ ____ | | _\_ |__ _______ ___ - Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - \/ \/ \/ \/ \/ - $Id$ - - Copyright (C) 2002 by Robert E. Hak - --------------------------------------------------------------------- - - -Rockbox FAQ ------------ - -Q1. What is a FAQ? -A1. A rare small animal of the species 'Textius Electronicus'. It is known for - its' helpful attitude and vicious misspellings. - -Q2. What is Rockbox? What is it's purpose? -A2. The purpose of this project is to write an Open Source replacement - firmware for the Archos Jukebox 6000, Studio 20 and Recorder MP3 players. - -Q3. I want to write code for my Archos, how do I proceed? -A3. First make sure to read the file CONTRIBUTING in the firmware directory - on Sourceforge. See http://bjorn.haxx.se/rockbox/firmware/CONTRIBUTING - if you do not want to have to wade through the CVS directories. - -Q4: Whats CVS? -A4: Concurrent Versions System (http://www.cvshome.org). We have a small - help page about how to use this to get, update and commit files on the web - at http://bjorn.haxx.se/rockbox/cvs.html - -Q5. What exactly is the CONTRIBUTING file? -A5. Just like the name implies, it lists conventions that the project follows, - and in turn asks you to follow, for the formating of source code in - general. - -Q6. Okay, so I read CONTRIBUTING and although I don't agree with all your - conventions, I am going to be sensible and follow them anyway. Now what? -A6. Start by reading up on the information about the jukeboxes on our web page. - Then go into CVS and look at the code we've written. Then take what you - need and start writing. - -Q7. Okay, so how do I submit a patch? -A7. Run: "diff -u oldfile newfile" against the file(s) you have changed. Then - mail the output to any member of the development team and we will take it - under consideration. (Please remember that all submissions are not - automatically accepted.) - -Q8. I want to join the development team, but don't have a SourceForge account, - what should I do? -A8. Head on over to http://sourceforge.net/account/register.php and create an - account for yourself. - -Q9. Do you have a mailing list? -A9. Sure do! The list is rockbox@cool.haxx.se. To subscribe, you need to - send a message to majordomo@cool.haxx.se with the words "subscribe rockbox" - in the body. - -Q10. Great you have a mailing list! Is there anyway for me to catch up on - past posts? -A10. Check out the archives at: http://bjorn.haxx.se/rockbox/mail.cgi - -Q11. How can I meet the developers working on the project? -A11. One way is by visiting us on IRC. Head on over to the server - irc.openprojects.net, and then join "#rockbox". There is usually at - least one person there. If you don't see any activity, feel free to post - questions anyway, serveral of us log the channel and will get you answers - when we unidle. - -Q12: Wow, you guys talk on IRC alot? I wish I had been around for those - conversations to see what happened. -A12: We are glad you mentioned that! http://bjorn.haxx.se/rockbox/irc happens - to have a list of various logs we have recorded of events in the channel. - Feel free to read up, and ask questions on what you find. - -Q13. What is this "SourceForge" you keep mentioning? -A13. http://www.sourceforge.net - -Q14. Can the changes or the software that Rockbox suggests or offers - possibly damage my Archos Player? -A14. All firmware mods that are presented are still highly experimental. - Try them at your own risk. We offer no guarantee that this software, or - the hardware modifications we show, will not damage your player or void - your warranty. That said, we have not been able to damage any of our - units by modifying only the firmware. You can accidentally password - protect your harddisk, but there are ways around that. (See below.) - -Q15. I want to see what the inside of my player looks like, but I would really - like to avoid voiding my warranty. Is there anything you can suggest? -A15. We have a collection of photos of both the player and recorder. Look at - http://bjorn.haxx.se/rockbox/internals/ - -Q16. What exactly are you trying to achieve with this line of development? - (A.K.A. whats your purpose for being here?) -A16. Firstly, we wouldn't start something like this if we didn't simply enjoy - it profusely. This is great fun! - Secondly, we feel the firmware is lacking some features and contain a - number of annoying bugs that we want to fix. - Some ideas would include (in no particular order): - - No pause between songs - - Mid-song resume - - Mid-playlist resume - - No-scan playlists - - Unlimited playlist size - - Autobuild playlists (ie: "all songs in this directory tree") - - Auto-continue play in the next directory - - Current folder and all sub-folder random play - - Full disk random play - - REAL random - - Multi song queue - - Faster scroll speed - - More cool features with the wire remote control (including - controlling your Archos from your car radio (req hw mod)) - - Support playing of other files types (ie: Ogg Vorbis support) - - Support for megabass switch (req hw mod) - - Player control via USB - - Memory expansion? - Note: Just because something is on this list, does not mean that it is - technically feasible. (But hey we can dream) And something not - being on the list does not mean it isn't a neat idea. Bring it to - the list. - -Q17. I don't see you mentioning ogg files on your list of ideas. What about - supporting those? -A17. At the current time we belive this is not very likely (though - we are not completely closing out this possibility). The Micronas - chip (MAS3507) decoder in the archos does not natively support ogg - decoding and there is very little program space in the player to - implement it ourselves. The alternative would be to write a software - decoder as part of the RockBox firmware. However, as much as we love - our players, the computing power of the Archos (SH1 microcontroller) is - not fully sufficent for this need (Once again, this is not a definative - no. The world is full of brilliant people. We just aren't hunting - down all the ones not already involved with the project right this - instant). - -Q18. What about supporting playing of wav files? -A18. No Bill. We have no intention of that. Go buy your own project. - -Q19. When do you think there is a version available for my Archos? -A19. The developers have discussed this. There has been a variety of - dates bantered about. The truth is we don't really know, but a good - guestimate would be 1 to 3 months before we have full working source - for the Archos (as of late April 2002). Following that, we figure it - should only be a week or two before we finish porting Quake II to the - platform. (Please see question 25 regarding this issue). - -Q20. I tried one of your firmware files and now I can't access my harddisk! - When I turn on my jukebox, it says: - Part. Error - Pls Chck HD -A20. Your harddisk has been password protected. We're not 100% sure why it - happens, but you can unlock it yourself. Look at: - http://rockbox.sourceforge.net/rockbox/lock.html - -Q21: This FAQ doesn't answer the question I have. What should I do? -A21: You have a couple options here. You could forget the question, find an - easier question, or accept '42' as the answer no matter what. We don't - really recommend any of these (though I do opt for '42' often myself). - What we do recommend is stopping by IRC, reading - http://bjorn.haxx.se/rockbox to see if the question was answered else - where and just not included here, or ultimatly dropping an email to the - mailing list (rockbox@cool.haxx.se) or the FAQ maintainer listed on the - project homepage. - -Q22: Are there other ways to contact the developers? -A22: Yes. - -Q23: Are you going to tell us what they are? -A23: No. Post to the mailing list and we will get back to you. - -Q24: But I _really_ want to talk with you in person. -A24: I'm sorry. My girlfriend/boyfriend/pet says I'm not allowed to, and the - doctors here won't let me have pens or pencils. They say its some rule - about us not having sharp objects. I'm sorry. Now please stop calling me - here. - -Q25: Will you ever port Quake II to the Archos? -A25: If you ask that again, I'm sending your address and phone number to the - guy that mailed us with question #23. - -Q26: Umm, was that sarcasm? -A26: That's it, I'm mailing him now. - - - - - - - diff --git a/www/docs/Makefile b/www/docs/Makefile deleted file mode 100644 index 751a62f256..0000000000 --- a/www/docs/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -ACTION=@echo preprocessing $@; rm -f $@; $(HOME)/bin/fcpp -WWW -I.. -Uunix -H -C -V -LL >$@ - -SRC := $(wildcard *.t) -OBJS := $(SRC:%.t=%.html) - -all: $(OBJS) - -%.html : %.t - $(ACTION) $< diff --git a/www/docs/index.t b/www/docs/index.t deleted file mode 100644 index 21ad679121..0000000000 --- a/www/docs/index.t +++ /dev/null @@ -1,36 +0,0 @@ -#define _PAGE_ Useful data sheets -#include "head.t" - -

All in PDF format. - -

General docs

- - - -

Player specific

- - -

Recorder specific

- - - -#include "foot.t" diff --git a/www/example/Makefile b/www/example/Makefile deleted file mode 100644 index 7d8f2fdefd..0000000000 --- a/www/example/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -HPATH = /usr/local/sh-gcc/bin -CC = $(HPATH)/sh-elf-gcc -LD = $(HPATH)/sh-elf-ld -AR = $(HPATH)/sh-elf-ar -AS = $(HPATH)/sh-elf-as -OC = $(HPATH)/sh-elf-objcopy - -INCLUDES=-I. - -CFLAGS = -Os -Wall -m1 -nostdlib -Wstrict-prototypes -fomit-frame-pointer -fschedule-insns $(INCLUDES) -AFLAGS += -small -relax - -OBJS= start.o main.o - -%.o: %.s - $(CC) -o $@ $(CFLAGS) $(INCLUDES) $(DEFS) -c $< - - -all : archos.mod # archos.asm - -main.o: main.c - -archos.elf : $(OBJS) app.lds - $(CC) -nostdlib -o archos.elf $(OBJS) -lgcc -Tapp.lds -Wl,-Map,archos.map - -archos.bin : archos.elf - $(OC) -O binary archos.elf archos.bin - -archos.asm: archos.bin - sh2d -sh1 archos.bin > archos.asm - -archos.mod : archos.bin - scramble archos.bin archos.mod - -dist: - tar czvf dist.tar.gz Makefile main.c start.s app.lds - -clean: - -rm -f *.x *.i *.o *.elf *.bin *.map *.mod *.bak *~ - diff --git a/www/example/README b/www/example/README deleted file mode 100644 index ca8ea36c37..0000000000 --- a/www/example/README +++ /dev/null @@ -1,7 +0,0 @@ -Rockbox example build ---------------------- - -These files are meant to show how to build a simple program for the Archos. - -Note that the display code only works on older machines (<4.50) so don't -look too hard on that. diff --git a/www/example/app.lds b/www/example/app.lds deleted file mode 100644 index 03bd1b2b54..0000000000 --- a/www/example/app.lds +++ /dev/null @@ -1,23 +0,0 @@ -ENTRY(_start) -OUTPUT_FORMAT(elf32-sh) -SECTIONS -{ - .vectors 0x09000000 : - { - *(.vectors); - . = ALIGN(0x200); - *(.text.start) - *(.text) - *(.rodata) - } - - .bss : - { - _stack = . + 0x1000; - } - - .pad 0x0900C800 : - { - LONG(0); - } - } diff --git a/www/example/main.c b/www/example/main.c deleted file mode 100644 index 9188aaf640..0000000000 --- a/www/example/main.c +++ /dev/null @@ -1,102 +0,0 @@ -#define PBDR (*((volatile unsigned short *)0x05FFFFC2)) - -#define DC 1 -#define CS1 2 -#define SDA 4 -#define SCK 8 - -static const unsigned char ascii2lcd[] = { - 0x00,0x01,0x02,0x03,0x00,0x84,0x85,0x89, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xec,0xe3,0xe2,0xe1,0xe0,0xdf,0x15,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x24,0x25,0x26,0x37,0x06,0x29,0x2a,0x2b, - 0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33, - 0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b, - 0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43, - 0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b, - 0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53, - 0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b, - 0x5c,0x5d,0x5e,0xa9,0x33,0xce,0x00,0x15, - 0x00,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b, - 0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73, - 0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b, - 0x7c,0x7d,0x7e,0x24,0x24,0x24,0x24,0x24, - 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, - 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, - 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, - 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, - 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, - 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, - 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, - 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, - 0x45,0x45,0x45,0x45,0x45,0x45,0x24,0x47, - 0x49,0x49,0x49,0x49,0x4d,0x4d,0x4d,0x4d, - 0x48,0x52,0x53,0x53,0x53,0x53,0x53,0x24, - 0x24,0x59,0x59,0x59,0x59,0x5d,0x24,0x24, - 0x65,0x65,0x65,0x65,0x65,0x65,0x24,0x67, - 0x69,0x69,0x69,0x69,0x6d,0x6d,0x6d,0x6d, - 0x73,0x72,0x73,0x73,0x73,0x73,0x73,0x24, - 0x24,0x79,0x79,0x79,0x79,0x7d,0x24,0x7d -}; - -void lcd_write(int byte, int data) -{ - int i; - char on,off; - - PBDR &= ~CS1; /* enable lcd chip select */ - - if ( data ) { - on=~(SDA|SCK); - off=SCK|DC; - } - else { - on=~(SDA|SCK|DC); - off=SCK; - } - /* clock out each bit, MSB first */ - for (i=0x80;i;i>>=1) - { - PBDR &= on; - if (i & byte) - PBDR |= SDA; - PBDR |= off; - } - - PBDR |= CS1; /* disable lcd chip select */ -} - -void lcd_printxy( char x, char y, unsigned char* string, int len ) -{ - int i; - lcd_write(0xb0+y*16+x,0); - for (i=0; string[i] && i -Page was last modified __DATE__ Björn Stenberg - - - diff --git a/www/head.t b/www/head.t deleted file mode 100644 index c584e8c6c2..0000000000 --- a/www/head.t +++ /dev/null @@ -1,59 +0,0 @@ -#define BGCOLOR "#b6c6e5" -#define MENUBG "#6887bb" -#define TITLE(_x)

_x

- - - - - -#ifdef _PAGE_ -Rockbox - _PAGE_ -#else -Rockbox -#endif - -#ifndef _PAGE_ - -#endif - - - - - - -
-
 
- -

-Main page
-FAQ
-research notes
-data sheets
-schematics
-hardware mods
-mail list archive
-IRC
-tools
-photos
-daily builds
-CVS
-sourceforge
-linux driver - -

-
-
- - - -
- -
- -#ifdef _LOGO_ -
_LOGO_
-#else -TITLE(_PAGE_) -#endif diff --git a/www/index.cgi b/www/index.cgi deleted file mode 100755 index 401eb8f304..0000000000 --- a/www/index.cgi +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/perl - -# A very simple load balancing script: -# If more than $nlim hits in under $tlim seconds, redirect to $mirror. -# -# 2002-01-24 Björn Stenberg - -# redirect is triggered by more than: -$nlim = 10; # accesses in... -$tlim = 10; # seconds -$mirror = "http://rockbox.sourceforge.net/rockbox/"; - -open FILE, "+<.load" or die "Can't open .load: $!"; -flock FILE, LOCK_EX; -@a = ; -if ( scalar @a > $nlim ) { - $first = shift @a; -} -else { - $first = $a[0]; -} -$now = time(); -@a = ( @a, "$now\n" ); -truncate FILE, 0; -seek FILE, 0, 0; -for ( @a ) { - print FILE $_; -} -flock FILE, LOCK_UN; -close FILE; - -$diff = $now - $first; -if ( $diff < $tlim ) { - print "Location: $mirror\n\n"; -} -else { - print "Content-Type: text/html\n\n"; - open FILE, "; - close FILE; -} diff --git a/www/internals/6k_back.jpg b/www/internals/6k_back.jpg deleted file mode 100644 index a5811e1bda..0000000000 Binary files a/www/internals/6k_back.jpg and /dev/null differ diff --git a/www/internals/6k_back_t.jpg b/www/internals/6k_back_t.jpg deleted file mode 100644 index b289a000c1..0000000000 Binary files a/www/internals/6k_back_t.jpg and /dev/null differ diff --git a/www/internals/6k_cpu.jpg b/www/internals/6k_cpu.jpg deleted file mode 100644 index 54dd46ec7d..0000000000 Binary files a/www/internals/6k_cpu.jpg and /dev/null differ diff --git a/www/internals/6k_cpu_t.jpg b/www/internals/6k_cpu_t.jpg deleted file mode 100644 index 283098ae4a..0000000000 Binary files a/www/internals/6k_cpu_t.jpg and /dev/null differ diff --git a/www/internals/6k_top.jpg b/www/internals/6k_top.jpg deleted file mode 100644 index 488ea5eb42..0000000000 Binary files a/www/internals/6k_top.jpg and /dev/null differ diff --git a/www/internals/6k_top_t.jpg b/www/internals/6k_top_t.jpg deleted file mode 100644 index e1952fc905..0000000000 Binary files a/www/internals/6k_top_t.jpg and /dev/null differ diff --git a/www/internals/Makefile b/www/internals/Makefile deleted file mode 100644 index 751a62f256..0000000000 --- a/www/internals/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -ACTION=@echo preprocessing $@; rm -f $@; $(HOME)/bin/fcpp -WWW -I.. -Uunix -H -C -V -LL >$@ - -SRC := $(wildcard *.t) -OBJS := $(SRC:%.t=%.html) - -all: $(OBJS) - -%.html : %.t - $(ACTION) $< diff --git a/www/internals/archos1.jpg b/www/internals/archos1.jpg deleted file mode 100644 index 4ed71beeb6..0000000000 Binary files a/www/internals/archos1.jpg and /dev/null differ diff --git a/www/internals/archos1t.jpg b/www/internals/archos1t.jpg deleted file mode 100644 index 40e4529911..0000000000 Binary files a/www/internals/archos1t.jpg and /dev/null differ diff --git a/www/internals/archos2.jpg b/www/internals/archos2.jpg deleted file mode 100644 index 742a00b333..0000000000 Binary files a/www/internals/archos2.jpg and /dev/null differ diff --git a/www/internals/archos2t.jpg b/www/internals/archos2t.jpg deleted file mode 100644 index 905c739049..0000000000 Binary files a/www/internals/archos2t.jpg and /dev/null differ diff --git a/www/internals/archos3.jpg b/www/internals/archos3.jpg deleted file mode 100644 index 6388e7be60..0000000000 Binary files a/www/internals/archos3.jpg and /dev/null differ diff --git a/www/internals/archos3t.jpg b/www/internals/archos3t.jpg deleted file mode 100644 index fba3d2d8f5..0000000000 Binary files a/www/internals/archos3t.jpg and /dev/null differ diff --git a/www/internals/archos4.jpg b/www/internals/archos4.jpg deleted file mode 100644 index 4a4e2262b9..0000000000 Binary files a/www/internals/archos4.jpg and /dev/null differ diff --git a/www/internals/archos4t.jpg b/www/internals/archos4t.jpg deleted file mode 100644 index 90d6b9f476..0000000000 Binary files a/www/internals/archos4t.jpg and /dev/null differ diff --git a/www/internals/archos_b1.jpg b/www/internals/archos_b1.jpg deleted file mode 100644 index 445501951e..0000000000 Binary files a/www/internals/archos_b1.jpg and /dev/null differ diff --git a/www/internals/archos_b2.jpg b/www/internals/archos_b2.jpg deleted file mode 100644 index 406215ef44..0000000000 Binary files a/www/internals/archos_b2.jpg and /dev/null differ diff --git a/www/internals/archos_bottom.jpg b/www/internals/archos_bottom.jpg deleted file mode 100644 index fa94af3785..0000000000 Binary files a/www/internals/archos_bottom.jpg and /dev/null differ diff --git a/www/internals/archos_bottom2.jpg b/www/internals/archos_bottom2.jpg deleted file mode 100644 index f3c52dca07..0000000000 Binary files a/www/internals/archos_bottom2.jpg and /dev/null differ diff --git a/www/internals/archos_t1.jpg b/www/internals/archos_t1.jpg deleted file mode 100644 index f1d8b556ce..0000000000 Binary files a/www/internals/archos_t1.jpg and /dev/null differ diff --git a/www/internals/archos_top.jpg b/www/internals/archos_top.jpg deleted file mode 100644 index 8e757529a3..0000000000 Binary files a/www/internals/archos_top.jpg and /dev/null differ diff --git a/www/internals/bjorn.t b/www/internals/bjorn.t deleted file mode 100644 index 928848411c..0000000000 --- a/www/internals/bjorn.t +++ /dev/null @@ -1,49 +0,0 @@ -#define _PAGE_ Dissecting the Jukebox 6000 -#include "head.t" - -

Taking the Archos apart requires a torx driver and a very small phillips head screwdriver. The phillips screwheads are about 2mm in diameter. - -

Also see the page dedicated to -disassembling the archos. - -

- - - - - -

The two circuit boards in the Archos are here called the "top" and "bottom" board. They are both populated on both sides. - -

Bottom of bottom board

- -

(142kB). You will note five ICs in the picture: - -

    -
  • In-Systems ISD200 ATA to USB bridge -
  • SST 37VF020 2MB flash ROM -
  • ISSI IS41LV16105 2MB fast page DRAM -
  • Sipex SP692ACN Low Power Microprocessor Supervisory with Battery Switch-Over (partly covered with white insulation in the photo) -
  • A standard Motorola AC139 logic IC (text unreadable in the photo) -
- -

Top of bottom board

-

Removing the bottom board involves bending a couple of metal holders that break very easily. Be careful. -The board is connected via two pin connectors, one at each end. -

(211kB). ICs: -

    -
  • Archos DCMP3J, most likely an -SH7034 -SH-1 RISC with custom mask rom. (Thanks to Sven Karlsson.) -
  • TI HC573M Latch (appears unlabeled in the photo) -
  • Fairchild LCX245 Bidirectional Transceiver -
  • A standard Motorola AC32 logic IC (xor) -
- -

Bottom of top board

- (200kB). IC:s: - - -#include "foot.t" diff --git a/www/internals/index.t b/www/internals/index.t deleted file mode 100644 index cc3417059e..0000000000 --- a/www/internals/index.t +++ /dev/null @@ -1,21 +0,0 @@ -#define _PAGE_ Photos of Jukebox internals -#include "head.t" - -

Jukebox 6000

- - - -

Jukebox Recorder

- - -

Remote control

- - -#include "foot.t" diff --git a/www/internals/lcd.jpg b/www/internals/lcd.jpg deleted file mode 100644 index 41f11fa14f..0000000000 Binary files a/www/internals/lcd.jpg and /dev/null differ diff --git a/www/internals/rec_front.jpg b/www/internals/rec_front.jpg deleted file mode 100644 index fa75df77ac..0000000000 Binary files a/www/internals/rec_front.jpg and /dev/null differ diff --git a/www/internals/rec_front_t.jpg b/www/internals/rec_front_t.jpg deleted file mode 100644 index 781a322704..0000000000 Binary files a/www/internals/rec_front_t.jpg and /dev/null differ diff --git a/www/internals/rec_iface_bottom.jpg b/www/internals/rec_iface_bottom.jpg deleted file mode 100644 index 84c8fa4008..0000000000 Binary files a/www/internals/rec_iface_bottom.jpg and /dev/null differ diff --git a/www/internals/rec_iface_bottom_t.jpg b/www/internals/rec_iface_bottom_t.jpg deleted file mode 100644 index 50efb75630..0000000000 Binary files a/www/internals/rec_iface_bottom_t.jpg and /dev/null differ diff --git a/www/internals/rec_iface_top.jpg b/www/internals/rec_iface_top.jpg deleted file mode 100644 index 4aa42f2628..0000000000 Binary files a/www/internals/rec_iface_top.jpg and /dev/null differ diff --git a/www/internals/rec_iface_top_t.jpg b/www/internals/rec_iface_top_t.jpg deleted file mode 100644 index b6ab795cf0..0000000000 Binary files a/www/internals/rec_iface_top_t.jpg and /dev/null differ diff --git a/www/internals/rec_main_bottom.jpg b/www/internals/rec_main_bottom.jpg deleted file mode 100644 index 679b2a4346..0000000000 Binary files a/www/internals/rec_main_bottom.jpg and /dev/null differ diff --git a/www/internals/rec_main_bottom_t.jpg b/www/internals/rec_main_bottom_t.jpg deleted file mode 100644 index 7b4901e70c..0000000000 Binary files a/www/internals/rec_main_bottom_t.jpg and /dev/null differ diff --git a/www/internals/rec_main_top.jpg b/www/internals/rec_main_top.jpg deleted file mode 100644 index a44ecdebe4..0000000000 Binary files a/www/internals/rec_main_top.jpg and /dev/null differ diff --git a/www/internals/rec_main_top_t.jpg b/www/internals/rec_main_top_t.jpg deleted file mode 100644 index 090d9f0bc9..0000000000 Binary files a/www/internals/rec_main_top_t.jpg and /dev/null differ diff --git a/www/internals/rec_rear_bottom.jpg b/www/internals/rec_rear_bottom.jpg deleted file mode 100644 index dc7ecc764b..0000000000 Binary files a/www/internals/rec_rear_bottom.jpg and /dev/null differ diff --git a/www/internals/rec_rear_bottom_t.jpg b/www/internals/rec_rear_bottom_t.jpg deleted file mode 100644 index c33a81f332..0000000000 Binary files a/www/internals/rec_rear_bottom_t.jpg and /dev/null differ diff --git a/www/internals/rec_rear_top.jpg b/www/internals/rec_rear_top.jpg deleted file mode 100644 index 56c61b90ab..0000000000 Binary files a/www/internals/rec_rear_top.jpg and /dev/null differ diff --git a/www/internals/rec_rear_top_t.jpg b/www/internals/rec_rear_top_t.jpg deleted file mode 100644 index 9401993bd7..0000000000 Binary files a/www/internals/rec_rear_top_t.jpg and /dev/null differ diff --git a/www/internals/recorder.t b/www/internals/recorder.t deleted file mode 100644 index 9de1ecfe85..0000000000 --- a/www/internals/recorder.t +++ /dev/null @@ -1,28 +0,0 @@ -#define _PAGE_ Internals of the Recorder -#include "head.t" - -

Phil's photos of his "0127" Recorder. - -


-Top of main board - -


-Back of main board - -


-Top of cpu board - -


-Back of cpu board - -


-Outside view of the MP3FRONT board - -


-Outside view of the MP3REAR board - -


-Inside view of the MP3REAR board - - -#include "foot.t" diff --git a/www/internals/remote.jpg b/www/internals/remote.jpg deleted file mode 100644 index 8fef19a0ed..0000000000 Binary files a/www/internals/remote.jpg and /dev/null differ diff --git a/www/internals/remote.t b/www/internals/remote.t deleted file mode 100644 index 139407b25b..0000000000 --- a/www/internals/remote.t +++ /dev/null @@ -1,13 +0,0 @@ -#define _PAGE_ Internals of the remote control -#include "head.t" - -

-
The remote control - -

-
Front view - -

-
Back view - -#include "foot.t" diff --git a/www/internals/remote_back.jpg b/www/internals/remote_back.jpg deleted file mode 100644 index bee91f170f..0000000000 Binary files a/www/internals/remote_back.jpg and /dev/null differ diff --git a/www/internals/remote_back_t.jpg b/www/internals/remote_back_t.jpg deleted file mode 100644 index 5895d8f9cc..0000000000 Binary files a/www/internals/remote_back_t.jpg and /dev/null differ diff --git a/www/internals/remote_front.jpg b/www/internals/remote_front.jpg deleted file mode 100644 index d511fa3819..0000000000 Binary files a/www/internals/remote_front.jpg and /dev/null differ diff --git a/www/internals/remote_front_t.jpg b/www/internals/remote_front_t.jpg deleted file mode 100644 index 046e092fc7..0000000000 Binary files a/www/internals/remote_front_t.jpg and /dev/null differ diff --git a/www/internals/remote_t.jpg b/www/internals/remote_t.jpg deleted file mode 100644 index 5fd1bc7c0c..0000000000 Binary files a/www/internals/remote_t.jpg and /dev/null differ diff --git a/www/internals/tjerk.t b/www/internals/tjerk.t deleted file mode 100644 index 7150e84a1c..0000000000 --- a/www/internals/tjerk.t +++ /dev/null @@ -1,17 +0,0 @@ -#define _PAGE_ Tjerks high resolution photos -#include "head.t" - -

These are a bit dark, but are very sharp and detailed. - -

-
Top of main board - -

-
Back of main board - -

-
Top of cpu board - -

Photos by Tjerk Schuringa. - -#include "foot.t" diff --git a/www/irc/Makefile b/www/irc/Makefile deleted file mode 100644 index a82036abc7..0000000000 --- a/www/irc/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -ACTION=@echo preprocessing $@; rm -f $@; $(HOME)/bin/fcpp -WWW -I.. -Uunix -H -C -V -LL >$@ - -SRC := $(wildcard *.t) -OBJS := $(SRC:%.t=%.html) - -all: $(OBJS) - -%.html : %.t - $(ACTION) $< - -index.html: index.t nicks.txt diff --git a/www/irc/index.t b/www/irc/index.t deleted file mode 100644 index 7946ce75c8..0000000000 --- a/www/irc/index.t +++ /dev/null @@ -1,28 +0,0 @@ -#define _PAGE_ IRC -#include "head.t" - -

We often hang out on #rockbox over at irc.openprojects.net. -Since there is a great deal of technical discussion, we log these sessions -for later reference. - -

Nick reference

-
-#include "nicks.txt"
-
- -

Logs

- - - -#include "foot.t" diff --git a/www/irc/nicks.txt b/www/irc/nicks.txt deleted file mode 100644 index bbbf3e67ba..0000000000 --- a/www/irc/nicks.txt +++ /dev/null @@ -1,9 +0,0 @@ -Zagor => Björn Stenberg -Linus => Linus Nielsen Feltzing -Bagder => Daniel Stenberg -Wavey => Stuart Martin -alkorr => Alan Korr -adiamas => Robert Hak -edx => Felix Arends -calpefrosch => Stefan Meyer -PsycoXul => Grant Wier diff --git a/www/irc/rockbox-20020325.log b/www/irc/rockbox-20020325.log deleted file mode 100644 index bc2ce2fd1e..0000000000 --- a/www/irc/rockbox-20020325.log +++ /dev/null @@ -1,562 +0,0 @@ -**** BEGIN LOGGING AT Mon Mar 25 08:57:45 2002 - ---> Bagder (~daniel@217.215.72.110) has joined #rockbox - hey ---- adiamas has changed the topic to: hacking the Archos Jukebox http://bjorn.haxx.se/rockbox/ - hey there... - i was about to call it a night and head to sleep - didn't expect anyone in this quick :) - hehe, its morning here ;-) - hehe i _just_ sent the email like 30 secs ago :) - yeps - hehe - glad to see someone saw it... - you located in europe... - yes - where in? - Sweden - hehe well.. your first in so.. here ---- adiamas gives channel operator status to Bagder - :-) - someone who's awake should have some control... - I'm Björn's brother actually - ahh... hehe seems he got followers pretty quickly. - indeed - and pretty varied at that... Im here in the USA. -* adiamas shrugs - there are 77 subscribers of the mailing list - wow, that was quick - only been 3-4 months yes? - yeah, since about december - BTW, I think making a FAQ sounds like a great idea -* adiamas smiles happily - im just not to sure on how technical to go on it, but i figure even something is a start - will you be sitting in the room most the day or you plan on logging off? - exactly, just start somewhere and it'll grow into place - I don't know - i really need sleep. work in 6 hours. - ok... - im going to idle till i get up for work - ill see you later - see ya ---> adiamas|sleeping (~adiamas@as5300-9.216-194-23-78.nyc.ny.metconnect.net) has joined #rockbox ---- adiamas gives channel operator status to adiamas|sleeping -<-- adiamas (~adiamas@as5300-9.216-194-23-78.nyc.ny.metconnect.net) has left #rockbox ("Client Exiting") ---- Bagder sets mode +t #rockbox - what is mode +t? - prevent non-ops to set topic - ahhh... k - gotta learn that stuff... -* Bagder is an old IRC-bot author... :-) - heheh i only started on irc about a year ago... - I stopped writing the bot many years ago... - first time on irc was 1993 - i was just getting into computers at that point - i miss that old 1200 modem - :-) - now go to sleep! ;-) - hehehe - nite ---> wavey (~wavey@dlan1431.dircon.co.uk) has joined #rockbox - anyone awake? - yeps - coolio - how you doing? - pretty good. You? - yup - you interested in coding for the archos then? - I am, and I intend to ;-) - likewise.. - got the player or recorder? - or both? - recorder, I'm Daniel who posted to the mailing list just an hour ago - aha - nice to meet you :) - i mailed out a few qs to the list several weeks ago - name? - stuart martin - right, I read them ;-) - the archos is pretty funky, but flaky as shit - mine's got a dodgy contact in the earphone socket - probably going to resolder it - I just got mine, haven't really had time to do much yet ;-) - i do love it - but i just wish it had sony's build - I'll get the serial port hack soon and start coding it - interesting to hear you got 8 cells.. - Linus has a fully working gdb stub now - yeah, very impressed to read that - i know *no* electronics.. - i'm waiting for the low-level shit to be completed :) - then i can start helping - hehe - :) - I'm not *that* low-level myself, I start on assembler ;-) I can't do much electronics - heh, assembler i'm happy with. - working out which wire to cut, i'm not :) - I think that makes us on the same level more or less ;-) - groovy - the UI is going to be interesting - luckily we have those guys around us to work out those stuff - i think we should maybe list the features we want and start prioritising them - then start mocking up UI images - yeah - should be fun working with small screen realestate - I would like to write some kind of UI simulator - interesting.. go on - to enable us to work on UI stuff without having to bother with the actual hardware - yup - cool idea - i guess we'll need to pre-empt the low level services available to the UI - I'm a Linux dude myself, so I'd go for a X-display - me too - although i find windoze usable too with enough cywin and emacs layers on top ;) - the UI stuff would be built-up with a minor set of graphics functions, and we could probably just replace those functions with a set that draws X instead - is this channel logged? - could be useful - I log it - coolio - I think I have some basic X11-code that pops up a window and allows me to draw in it, which could be a start - cool - how long until it reads mail and displays webpages too? ;) - *g* - if we just get enough people to join in, there's nothing to stop us ;-) - damn right :) - the player/recorder screen diffs are a shame - yes indeed - i wonder if project focus will be on the recorder - or the player - bjorn's initial investigations were on the player - yeps - but now he has both - but he bought a recorder iirc - yeah cool - and so does Linus - cool - and Björn's player CPU is damaged ;-) - heh - or should I say :-( - how'd he damage the cpu? - the serial port is broken - it isn't normally used, so he hasn't noticed - what timezone you in? - i'm in london - Sweden, +1 from you - you friends with linus and bjorn? - or just coincidence? -<-- wavey (~wavey@dlan1431.dircon.co.uk) has left #rockbox ---> wavey (~wavey@dlan1431.dircon.co.uk) has joined #rockbox - shit - yeah, Björn's my brother and Linus is an old time friend. We work at the same company - aha :) - all three opf us - i work as a j2ee consultant for a company with a swedish office - we got some of them over here now cos the market in .se is pretty weak - yes it seems to be - I'm doing embedded/realtime programming as a consultant - cool - which processor? - right now, StrongARM - cool - i've only done 68K assembler but loved it - arm assembler in general is cool, it has conditionals on *all* instructions - madness :) - hehe, yeah - I moved into OO years ago, and wouldn't go back - pure elegance - (if you get it right) :) - hehe, so they say... :-) - how far would you wanna see this simulator go? - button presses triggering song launching/pausing etc? - it all comes down to much much we feel its worth - aye - i think perhaps the first stage might be to sketch UI ideas - we could probably make more or less a complete simulator, should we want and have the eneergy - yes - and that means identifiying the key aspects - and voting on inclusion - or doing a bjorn and ignoring the votes :) - we can start on UI basics and ideas first, without even think code - hehe - ok - how about throwing that to the mail list - give us your wants - or perhaps we can envisage most of that already - toggle m3u display/filename - scrolling/non scrolling - level meters - time - power - mode - vol - button names - eyecandy plugins - imho, we must focus on getting the basic stuff there first, to allow us to play songs as that would help the guys working on those parts (mp3, filesystem etc) - of course - but a basic UI is trivial - just a button label - yes, that's true - while they are developing that - we can look to the medium term - right - and of course, we need emacs ported to it :) -* Bagder grins - i remember when i started coding for the gameboy advance people started talking about porting linux - so so funny - feel free to post a summary to the list, could be useful - but it always happens :) - yes it does - it'll happen here too soon :-) - did you fill your 20GB capacity yet? - i did mine in an hour and a half :) - heh, no, but I don't really use it yet either - bought a usb 2 pci card - I stream mp3 from my home-box to work - i haven't had mine from my side since i bought it in january - I've ordered a usb2 card too - I finally bought mine now since I was supposed to stop my project here and thus I wasn't sure I could still listen to my stream, but now I've got another assignment at the same palce so I can continue listening to it... - heh - typical - well, I want to code it anyway, so I guess that'll be my primary use for it ;-) - i prefer to use the recorder despite being in front of a computer because it means i get more bandwidth.. - and i can get up and move around without killing the sound - :-) -* Bagder runs for more coffee - i've always hated stopping music :) - i'll leave the cd player running when i leave the house sometimes. stupid huh? :) ---> gizz (~gizz@ALyon-102-2-1-77.abo.wanadoo.fr) has joined #rockbox - howdy - heya ! - g'day - did I miss some hot talks ?? :) - not really - that's on #sex -* wavey chuckles - hehe - or perhaps #hotsex - you => Juke hacker ? - we're wannabe archos hackers ;-) - great! - player or recorder ? - => I'm a poor player owner, -* Bagder has a Recorder - recorder also - we've been discussing some ideas for the UI - but nothing really worthy of capture yet - ok - problem is, - to me player & recorder are very different - yus - shame - yes, we'll need to make two UIs as they'll be quite different - but is it worth it ? - I mean, - does player owe to be supported ever ? - well, if people here want to support it, it'll be supported.. - the underlying functions of the firmware will be mostly similar between the two - right! - indeed, and except for display+keys, msot of the internals are the same - need a UI strategy - the recorder is likely to be supported better because it's cooler.. - (UI) anyway - good point - So, - UI guys - should make good design decision, - in order for the to Juke-races to be supported, at least - at low level, - juke-races? - races : sorts - ok - hmm, models.. :) - understood :) - .. but at UI level, - they will be supported (very) differently, - aye - and of cours, recorder owners will be happier :) - One thing : - on my player, when pleying with custom chars (font) - I tried to draw two bitmaps through thos custom chars, - (as if custom chars datas where some sort of 'video memory') - and then, I thought we could just modify this 'video memory' at will, - to simulate some pixel screen - but the result wasn't quite good (many pixels where too far from each other, due to space between chars) - That's all... :) - Did you try to draw some stuff on your recorder ? - nope - I compiled the player firmware on my box, but haven't tried a recorder one - I just got mine, I intend to get the gdb-stub approach working first - ok; If recorder prices get lower, I think I'll move to it - gizz: nice idea with the video memory - vid mem : well, in all cases, that would produce an 14 * 55 screen :) (if I remember well) - 14 pixels is pretty damn limiting :) - amen - remind me what the recorder has? - oh - time to mock up some screens to get the juices flowing - maybe 131 * 64 or better ?? - 112x64 - cool resolution !! - (slightly less than HP48 ;o) - can't wait to get some games going ;-) - If only I had a recorder, I could try to port some - nifty HP48 100% assembly games :o) - hehe - (with scrolling, sprites, grey level, etc.. :) - it has sprites? - Never played Columns II on HP48 ?? - sprites : yes ! - gosh - what about : Arkanoid, Skweeks, - Xennon, - or even : Doom, grey-level, with monsters, textures, and multiplayers ? - (well, two players, with serial cable) - nah, let's aim for PPP over the USB and have full internet access ;-) - LOL - hey, I've got an idea : I'm gonna try the grey-level tricks tonight, just to see if it works :)à - you at home, or at work ? - work -* gizz too :) - ssh'ed to home - cool ! - => i'll back later then.. :) - bye ! - bye -<-- gizz has quit ("Leaving") - damn - missed the important bit - sprites! - lovely :) - yeah, that would be great ;-) - i can imagine some nice visualisations coming out of this - eyecandy is important :) - indeed it is - 112x64 -* wavey opens psp - wow - it's really really small :) - this is going to be interesting - are there character fonts built in to the recorder or is it purely bitmapped? - pure bitmaps, as I've understood it, but the font is stored as separate bitmaps - as the pics on http://bjorn.haxx.se/rockbox/notes.html shows - ah yes - the project went pretty quiet for a while - forgot the basics - yeah, after the initial burst there has been some silence and hard work at the side - so - intial, still very basic, ui-simulator seems to work - hey nice - pops up window, can draw in it etc - lovely - is it worth trying to identify key functional areas, and see how they lead to a UI requirement? - 1. start playing - 2. pause playing - 3. stop playing - 4. increase volume - 5 decrease volume - are these the fundamental ones? - playlist etc extend this - yes they're the basics - without them, there is no player - ok, playlist operations are another - and file operations are another - level meters - balance control - timekeeping - playlist on the recorder firmware is simple - add to playlist - play list - play list randomly - delete from list - next in list - back in list - hey, I haven't understood how the playlist works yet ;-) - i figured :) - hence the recap :) - how much was your recorder? - I'm not sure... I had a friend order it for me - point 1) above assumes a file can be identified from the hdd - which kinda presupposes some file operations are needed at the start - i.e. browse - right, filesystem support is essential - shall we propose 2 main UI iterations, with the first being 1-5 above + browse filesystem - and the 2nd being the one with the extra fluff like balance control, timekeeping etc? - sounds wise, yes - do you have your recorder with you now? - no - the level meters take up 1/4 of the screen! - ridiculous - i mean, who cares? - they're quite silly, I agree - and the three timers are silly -* Bagder tries to get Björn here ---> Zagor (~bjst@labb.contactor.se) has joined #rockbox - there he is ;-) - hey bjorn - nice to meet you - hey there guys - i'm sure daniel's filled you in on our discussions so far - trying to identify a) the minimum UI - ah, no not really - to enable testing of firmware code - and b) a candidate full-featured UI - with bells and whistles - a) needs file browsing support, plus play/pause/stop file + volume control - b) has playlist control, m3u display, balance control, etc - so Zagor, you ok with me creating a subdir in CVS and importing my initial X11 UI stuff? - and a funky lil' gui - bagder: sure. maybe something called 'simulator' or similar, to clearly show it's not the "real" code - righ, I'll go for simulator - i'd be more explicit - well, my first thought when i threw this item on Daniel was, - from experience, naming becomes important in directory structures - that it'd be a good thing if we can have the basic menu system the same for the two models - not so much the graphic bits, more the underlying framework - sure - sensible - ok, so 'uisimulator' then ;-) - sounds great to me - (note: i'm at work, so I'll be idle from now and then) - likewise - in london - ah, you guys work at work? :-] - sometimes :) - Zagor: with gaim, how the heck do I create an account? - hmm - i don't know :-) - didn't you have an account before? - me neither, it just asks for a name and password - I used icq ages ago, yes I had an account but only god knows which name and password I used then - you need to specify that you are using the 'oscar' protocol, otherwise it will try to log you on as an AIM account - ok - ah, I need to go and do it on a web page... - i like the ascii rockbox logo, bagder - that'll probably be easiest, yes - figlet is cool ;-) - yeah, it's cool! - figlet rocks :) - so, did you come up with some ideas about the GUI? - some - nothing graphical - functional requirements - and no real thought to the player/recorder split - except that the player's size is very limiting - yes, indeed - and i'd like to see some visualisation eyecandy - i nice big on-screen Archos would be cool :-) - you mean a floating logo? - no i was thinking the simulated gui - or a representation of the player itself - yes - ah yes - is the simulator going to simulate the screen or the player as a whole? - and isn't that an emulator? ;) - I think we start with only the screen - and then we'll see if we're up to making it a complete emulator - yes - i'll leave the sh1 emulation to others :) - hehe - I've imported the uisimulator code to CVS now - gizz was talking about the chip being able to support sprites :) - and porting games to it :) - hehe - actually, he said the HP48 had them - grand plans! - my recorder is only 3 months old but i think tetris would kill the plasticy buttons on it - bad: ah! - that's a shame - but not really suprising :) - i'd be happy with no games but a firmware that didn't suck ass - did anyone make a C array of the fonts for the Recorder? - Zagor ? - not that i know - kind of boring work... :-) - can't you extract the data from existing firmware as a linear array? - or is that copyrighted - i guess it is - yes it is - but who could tell? :) - well we don't really need those exact fonts - there are tons of good fonts out there - agreed - but not at 5x7 - maybe not tons, but a few at least - linus had some ideas, but he's not here right now - excellent work he did with the gdb integration - yeah, very nice - that'll be *so* handy - he plans to write a program loader too, so we can select firmware at start. that'll be nice too. - he's a cool guy :) - very nice - hahah, just don't tell him that ;-) - i wouldn't dream of it ;*) - btw, i think we should aim for proportional fonts on the recorder - there's too little room to waste it on blanks :) - if we do it properly, we can have it as a user option - yes - as a user, i'd rather have the entire display taken up with the song details, rather than the stupid level meters - but hopefully we can cater to all tastes via options - yes. open season on level meters... - especially ones that take up a quarter of the screen! - bagder, do you have code for font handling? i have written some if you need it. - I need it - I only have the XDrawString() but it isn't what we want ;-) - ok, i'll mail it to you - did anyone write code that draws stuff on the recorder? - yes, look on the rockbox front page - there's a link in the news swction - found it - he has a font table in there... - ah - this code is quite good - bagder: look at drawText() in the code I sent you. it's the relevant portion - this works with the included font, right? - yes - well, if we have a font defined, making it output proportional won't be hard - no - my point exactly :) - the trickiest part is probably to make it look the same on Linux ;-) - really? can't you just allocate a bitmap and pixel-write to it? - probably, I'm just not very good at those X-calls. I'll need to chase around a bit - chase around? well, that's what we're here for, innit? ;) - I'm not complaining, I'm only saying how it looks ;-) - isn't raw X wrapped by gnome or something these days if you want to make it easier? - yeah - perhaps - I'm not sure it makes things easier at this point - we already pop up a window and we can draw in it - true - besides, not using gtk or qt makes our program even more portable - not that it matters very much of course - what's the main purpose of the ui simulator? - to see how things look? - yes - if we make generic input functions we can drive it too - to try the feel too - i'm not expressing myself clearly, i fear - um - does it give you more than mock ups would? - does it give you any real code for the archos itself? - yes, it will - that's the idea - ok cool - just getting it clear - maybe not just now, but that's the purpose of it all - cool - coffee time - bbl - sigh, our coke machine is empty... - bagder: where are you now? Neti, con? - neti - ok - they did buy my extra 300 hours, so I'm gonna be here for a while more... - ok - lucky you... ;-P - haha - at least I'm gonna be working entirely on linux this time - ok, that's nice ---- Bagder gives channel operator status to Zagor - gotta go - see ya - ok, bye -**** ENDING LOGGING AT Mon Mar 25 16:50:01 2002 diff --git a/www/irc/rockbox-20020326.log b/www/irc/rockbox-20020326.log deleted file mode 100644 index 3180ece155..0000000000 --- a/www/irc/rockbox-20020326.log +++ /dev/null @@ -1,591 +0,0 @@ -Zagor => Björn Stenberg -linus => Linus Nielsen Feltzing -Bagder => Daniel Stenberg -Wavey => Stuart Martin -alkorr => Alan Korr -adiamas => Rob - -**** BEGIN LOGGING AT Tue Mar 26 07:47:01 2002 - ---> Bagder (~daniel@as3-3-2.ras.s.bonet.se) has joined #rockbox ---- devlin.openprojects.net sets mode +n #rockbox ---- Bagder sets mode +t #rockbox ---> adiamas (~adiamas@as5300-9.216-194-23-156.nyc.ny.metconnect.net) has joined #rockbox - hi -<-- adiamas (~adiamas@as5300-9.216-194-23-156.nyc.ny.metconnect.net) has left #rockbox ("Client Exiting") ---> adiamas (~adiamas@as5300-9.216-194-23-156.nyc.ny.metconnect.net) has joined #rockbox - hey there. - morning ;-) - hehe for you ;) ---> wavey (~wavey@dlan1431.dircon.co.uk) has joined #rockbox - g'day wavey - howdy - howdy wavey - hey adiamas - you have the recorder or player, adiamas? - recorder - cool - got it off of ebay for a nice cheap price.. :) - does yours have any quirks? - one that ive noticed so far... - mine has dodgy contact in earphone socket - keeps resetting when moved :( - if i remember correctly it was that i couldn't save the playlist... - if i edited it when i was running. - only 3 months old - from the player... - if i do it from the command line, then transfer the file, all is well.. - yeah - well.. that and i had it completely barf on me last night. - i think that's normal crappy firmware - really? - nod - recoverable, i hope? - dunno what it was... - yeah.. but i had to boot into windows to delete the disk.. clear it all out. - tsk - i tried for like 4 hours in linux.. did everything i could think of... - fsck - fdisk - fsck.vfat - rm -rf - hell, i even went as far as bit permisions... - no go. - but windows was cool with it? - scary - nods - i did the windows "fake format" - delete all :P - heh - so badger.. how about setting a topic eh? - :) ---- Bagder gives channel operator status to adiamas - heheh ---- Bagder gives channel operator status to wavey ---- Bagder has changed the topic to: rock the box ---- adiamas has changed the topic to: rock the box http://bjorn.haxx.se/rockbox/ - hehehe - so im waiting on addition to sourceforge to toss up version one of the FAQ - cool - haven't read email yet - how far is your simulator going, bagder? - I didn't do much more yesterday - I'm gonna attack the font code next - cool - to make a function that outputs similar text on the recorder and X11 - groovy - hm, not similar, identical really - even better - Jerome Kuptz posted on the list and volounteered to write a windows port for the ui sim - lovely - bagder you have any source i can grab to look at the sim? - I added the sources to the rockbox CVS yesterday - its easiest to get them off there - k... ill go look - it isn't very much to look at yet though ;-) - it pops up a window, draws a line and outputs a text - itll get there ;) - adiamas: did you by any chance do some X11 programming before? - nope.. but im a quick study. - some mild exp with qt - my modem is going to explode with all these downloads :) - it's good to keep it busy ;-) - yup.. esp just before i head off to bed ;) - Gary's lcd code keeps a full copy of the bitmap in memory, and writes the whole thing to the lcd all the time - which probably makes it easier to make a X11 version too - that would make sense... - has anyone finalized at all on what exactly our first target/goal is to achieve? - not really, no - i think we need to produce a simple menu UI first - get that working on both player and recorder - nods - and then look at how to approach the diff UI capabilities of the two devices - some kinda lib that makes ui creation pretty simple would be nice - aye - i havne't played with just the player.. so i don't really know the differences yet... - oh.. btw ... when i post things.. forgive the spelling... i am a HORRID speller... - put my mother (english teach for 20 yrs) into fits of tears :) -* adiamas swells with pride - player has tiny screen - 3 lines or something like that - instead of 8 - getting a simple menu ui up and running allows the back-end firmware developers to test their stuff - ahhhh - so we need a) screen drawing capabilities - ummm.. using cvs, how do i do a pull of all files in a dir? - b) file browsing capabilities - (to locate a file to play and stop, etc) - adiamas: see http://sourceforge.net/cvs/?group_id=44306, replace "modulename" with uisimulator - good.. just did that... - and c) basic controls to start, stop, pause an mp3 - the 2nd generation UI can have the visual goodies - levels, scrolling titles, etc - the simple ui shouldn't take too long - okay.. explain to me.. WTF would sourceforge require use of ssh1 when its known to be flawed? - when not go to ssh2? - flawed doesn't mean useless - i guess -* adiamas nods - um Bagder you do realize your FILES lists a README, but there isn't one right? - oops - and just a question of taste... are we doing 2, 4, or 8 char tab stops? - I do 8 char tab stops, c indenting with 2 spaces - nods - (setq c-basic-offset 2) - (setq indent-tabs-mode nil) - :-) - i lean toward 4 myself.. but as long as i can map emacs to you im good :) -* adiamas curses rh7.1 - friggin X11 headers are missing. - hehehe yup - or - :set tabstop 4 - :set tabstop 8 - if you use a real _editor_ - hehehe - hm, I wonder if using XDrawPoints() is sensible to use... - I removed the FILES file now ---> Zagor (~bjst@labb.contactor.se) has joined #rockbox - yo boys - morning - have you looked at the new "mods" page I added to the web page? - great sets of pics! ;-) - thanks - i should be a model! :-D - btw Zagor, I think I go with Gary's fonts and his way of representing the lcd in memory - ok - the bytes are then vertical, lsb on top - zagor: nice pictures - can you have >8 pixel wide chars? - or high, i mean - Well, we'll have a complete 112x64 pic in memory so we can make whatever we want - thanks, wavey - we write the complete bitmap - at least to start with - bagder: so why do we want vertical bytes? it ends up as a lot more bit flipping to get the pixels out - because that's how the lcd itself has them - makes faster updates - ok, so the 112x64 pixmap is vertically oriented? - each byte is 8 pixels "high", byte 0 is top left, byte 1 is 2nd left etc - ok. makes sense, then - I'm making three files now, lcd.c with generic lcd stuff, lcd-recorder.c that writes the bitmap to a recorder and lcd-x11.c that writes the bitmap to an x11 window - were staying c based for now correct? - yes - yes - or are we going straight to c++? - k... - no :) - damnit... way to early here... can someone remind me the name of the file that allows you to turn services on and off? - i konw its not /etc/services -* adiamas needs bed bad - uh, redhat? - /etc/inetd.conf ? - thats it.. thank you. ---- Bagder gives channel operator status to Zagor - ---- adiamas is now known as adiamas|sleeping - hey - it works ;-) - what does? - my new code, using a memory bitmap and lcd_update() - nice one :) - exact same pixel-setup as the recorder would get - coolio - very useful - very tiny letters though :-) - I should probably allow some zooming or somthing - so, now we can write a small program using the new lcd API, and the output seen in the X11 window is what will be seen on the recorder screen as well ---> Tumm (coyote@dreamhosted.borlange.se) has joined #rockbox - lo - excellent - hiya tumm - hi - XDrawPoints() was all I needed - well, technically, XDrawPoint() is all you needed ;) - right, but one at a time turned out very slow - :) - surely XDrawPoints() uses a lot of XDrawPoint()? - I'm running my X11-windows over ssh from a machine far away ;-) - or is that naive? - ah - heh - well, it doesn't make them appear one by one, but instead all at once - and it makes a huge difference - time to eat ---> alankrr (jbcoax@srs03v-7-104.n.club-internet.fr) has joined #rockbox - hi people - happy fooding. - hiya alan - oh yes i forget ! :) it's time for eating - :) - i wonder why zagor doesn't reply - but now i know - ok what's up ? - daniel's ui simulator is coming along - he's got the same images appearing in X as will appear in the recorder lcd - yes but is it using the same layout ? - including characters, i think - layout? - i mean the way to set a pixel in LCD - you mean the API? - i think that's the idea - ah ok it's just at the high level - X is just an output alternative, the recorder's lcd is another - the API is the same - hopefully ;) - well, there are ways to put images at pixel coordinates - but ye must use a shifter table - 'cause shift instructions on SH1 are not smart enough - ah - so it is why i asked if this simulator works by simulating the LCD layout on X - but never mind, it is not an urgent thing to do :) - you are the only one here ? - at the moment, yep - the swedes are having lunch, it seems - and how many time will Bagder and Zagor be here in ? - yes it's normal - try again in an hour or so - okay see you all later -<-- alankrr has quit () ---> alankrr (jbcoax@srs07v-5-60.n.club-internet.fr) has joined #rockbox - are people still absent ? ---- alankrr is now known as alkorr - back - oh good - maybe you don't know me ? - no I don't, who are you? ;-) - arf, i know you brother in fact :) - we're all a big happy family here anyway! ;-) - btw, the lcd "simulator" is based on the original working recorder lcd code by Gary Czvitkovicz - so it should work pretty much already - yes i know, i've just reread your emails - and I'm working on getting the same API to work on both the recorder and X11 - and I hope to do a similar dual approach for jukebox/X11 output later - well it would be very difficult :) - why? - with just 2 lines with only 11 characters - yes, then I'll make a small X11-windows 2 lines high, 11 chars wide. that's not too difficult - and each characters are seperate with at least 3 pixels - so you are very limited for fx - I know - but that's what we have, that's not anything I can do to change - for example, scrolling can only be done on basis of characters not pixel - yes - etc. - why is that difficult then? - because it is a character-LCD not a graphical LCD - I'm not planning to make one single unified API for both platforms - ok - anyway we need a begining for a start ;) - true - by the way, i know very well the SH1 - its advantages and disadvantages and its on-chip peripherals - that's useful indeed. I've did my share of SH1 assembler, but that was some 6 years ago now - :) - gcc doesn't generate very well code as ia32 does :( - let me explain to you - there are two possibility to branch - one is using jsr or jmp with a register containing the address to call or to jump - another one using bsr or bra with an 12-bit immediate offset - gcc don't generate brs nor bra - so it will use several registers to be able to use jsr or jmp - well, it should be possible to fix the gcc, even it its quite hard I figure - i tried with static functions close to a function which calls those static functions - without success - well there several example like this which explains why I prefer not to use C for all - for loops that is gonna make a difference, but for most code it is a penalty we can take, imho - so you mustn't be surprised to see a lot of asm in my source - i don't care for speed - but for space - you restrict the audience quite a lot by using asm, as not many people will be able to read it nor write it - low level functions can be asm - that's not a problem at all - i'm speaking about low functions, not for your GUI :) - screen updating code can be a complex as you wan - because people will access it from C - so we are okay - yup - indeed - hoorah! -* wavey chuckles -* Bagder smiles - it is not in my intention to do all the stuff in asm - what parts are gonna start (have you started) with? - LCD - USB - let me see my source - timer - lcd+backlight+led - where i'm using atomic operation to set or clear port A and B - so asm+c - a start of ATA - but i lost the main part in a harddisk crash - ata is C - what kind of lcd code do you have? - for JBP - i send you my source - please do - mail me at daniel@haxx.se - my usb2 card has arrived! - i don't send all my package - I'm mainly interested in the lcd parts sright now - just LCD parts and headers you could need - right, thanks - for JBR i don't try because i lose my JBR - so i cannot try it - I already have working code for the recorder - I'll make a little api for the player built on your code - did anyone make a table of all the available letters/characters on the player's LCD screen? - yes - it's on the notes page next to the recorders - it's not the recorder's, it's the player versions - the new and old have different charsets - there is difference between old and new text-lcd in JBP - i have the new one which is quite compliant with ascii table - aha, it could be clarified on the web page... - by the way i'm not sure about my tables :) - i never test them thoroughly - test? - what is that? ;) - and even worse for old lcd since i don't have one - btw, how do we read/fetch input from the keys currently? - in lcd.c there is two tables for characters translations - so our api can work with new and old taxt-lcd without changing our strings to display - for the moment i use a polling method - in fact it is the only way - i'm speaking about JBP (player) - fine enough, I would just like a defined api on how to do it - in the original firmware, they use the interrupt itu0 for polling keys - for JBR, it is much more complicated - i explain - you have two pins for two groups of fours keys - those two pins are analogic - so you need to scan periodically their pins and translate their value to determine which key is pressed or released - a way it is to use the interrupt ADC in scan mode which gives us the value and will translate them in a more practical bitmap or somethig like it - another way is to use the dma to scan those pins and generate the interrupt dei to translate - I don't think you understand what I want ;-) - ok you want for player or for recorder - ? - both preferably, but one at a time is fine too - i just have for player - ok - as you can see it isn't a generic API for keyboard - but you know where to poll them - is there anything that prevents us from creating a "generic" api for this? - no of course - i was doing that in key.c but it is not my priority in fact - so we are free to do so - if you need info i can help you to do so - because since I want to "simulate" this on X11, it gets easier if I can simulate the API - yes but we need first to know what we need - and quite now I'm still unsure about it - so I don't have a clear API for keyboard - yes, that sounds logical ;-) - keyboard event to handle for exapmle ? - are you using events ? - x11 events? - you know like in X or Windows or in TurboVision (if you knew that ;) - yes, this is x11 it uses events - something which can represent input or output event to handle by several entities - i'm speaking about our final rockbox - I'm not ;-) - if you want an API - I only want a simple input api - to simulate - it could be changed or improved later on - well there is two possibilities - using keybitmap - or using key buffer - to use a key buffer - can you send me your file so i can see the way to handle UI ? - its in CVS, there are many files - its really simple: lcd_update() updates the screen - oh that's true ??? ok i go and download them - lcd_string() outputs a string - lcd_position() sets the "cursor" - so far - direct actions on lcd ? - or using buffer ? - no, they manipulate the buffer and lcd_update() writes to the lcd - so why lcd_update, ok - but for the player I can't see any point in keeping a buffer - by the way, isn't it Linus which has started something about fat32 ? - i lost 3/4 of my works on it and i'm very down to redo all - the web page says Alan, is that you? ;-) - yes, he has some code for it - yes but i did have a crash which causes loss of files which are exceeding 4 KB - ok. we'll reassign that for linus - in fact my fat32 was tighly coupled with ata - so what should I put efter your name, alan? :) - Zagor: you could modify my "planning" to "partly working" - ok - name of your mudule, Badger ? - uisimulator - well i would like to be able to use my serial as i could do before the crash - it would be more easier to test my ATA - if Linus can pass me his source i can adapt or modify it to use ATA - i'll tell him - we want Linus's source in CVS too - yes - it would speed my work instead of redoing all - ok got it (uisimulator) - cool your headers ;) - it just does one lcd_string() and then it does lcd_update() and it shows the string - hehe, thanks to figlet really - the figlet man :-) ---> linus (~linus@labb.contactor.se) has joined #rockbox - be aware with shift operation - lcd-recorder.c is the recorder-versions, lcd-x11.c is X stuff and lcd.c is generic - Hi folks - hi linus - ok - hey ho Linus - I'll dig up my FAT32 source as soon as I get home - you don't plan to have a buffer greater than screen for having vertical or horizontal scrolling on screen ? -* Zagor wants Boulder Dash 8*D - blah, I "plan" all sorts of things, this is not the final complete code -* linus wants Tetris - and Breakout - this is for setting an api to play with - increasing the buffer is a piece of cake should we want that - well, I2C RTC is quite slow - oh soory - oh sorry, forget what i said - there is no connection with lcd - :) - Gary said he got about 20frames/sec writing fullscreen, that's not too slow I'd say - ok - i just want to be sure there is nothing else which can reduce time - my lcd was written to have the less time between two bits sent - we cannot do it better - (zagor) maybe MAS I2C can be slower in JBR than in JBP because of I2C RTC - maybe - linus: you should bring your gdb efforts to the CVS archive, alkorr wants 'em ;-) - i have some new pictures and shematics for the serial cable. coming up in a minute - well so long as i don't know why my serial doesn't work any longer it wouldn't be helpful - i prefer to send my binary to a person who has a JBP and a working serial to tell me if it works - I have a working serial - any volunteer ? - well my serial port is toast, unfortunately :-( - ...but the rest of the archos is fried at the moment... - beuuuuuuh :,(((( - ...but i can use my CPU board in Björns player. That works. - oh good - I will put the final touch on the stub on my trip to France next week. I'll keep you posted. - okay i will prepare a simple binary which only communicate with serial line (no ata stuff or something which could lead to damage) - uit -<-- Zagor has quit ("Leaving") - Hehe. I appreciate that... ---> Zagor (~bjst@labb.contactor.se) has joined #rockbox - Alan, is your serial port damaged or what? - i want to be sure if it is my serial converter or my software which in pains - Aaah. - it is what i want to know - it worked - ok let me prepare the binary - hey linus - nice to meet you - yo! - okay - to whom must i send the binary ? - send it to linus@haxx.se - ok but wait, it looks as if my strings are corrupted... it may be the reason - ok - anyway i suppose you won't be able to do so now - no i can see on my lcd the string :/ - but my terminal doesn't display my string but some "@" can appear sometimes, any clues ? - nope - linus, i send you the first version by dcc send - sorry, Badger you cannot dcc get my files ? - now the rs232 converter is up on the mods page - drawings and the whole shebang - linus and badger : can you dcc get my files ? i should cancel those for Badger - linus is away right now - hm, I think I can receive dcc - so i retry - 8 files - I've never received files using xchat before, but nothing seems to happen - have you clicked "accept" or something? - i think you need to mark it and accept it - that's "auto accept" and I thought I'd get a question if I don't auto-accept - absolutely nothing happens - odd - try : /dcc get alkorr - that won't work due to my firewall - i retry file by file - instead of sending all file in one time - oh okay - oh yes the firewall - but still, the announcement of the dcc is done using ctcp and that is plain irc so my client should still say something - well i can send to zagor but not receive from zagor, seems to be a similar problem but the main difference is i'm using mIRC on Windows - Badger : for key.h, macros cannot be used with variable as parameter -> key_pressed (ON) OK but key_pressed (key) ERROR - there are just for commodity in developping - i also lost my memory.c which handled a block or bytes allocation (using a similar slab techniques for blocks and bytes allocation in a block) - losing your memory.c is a sign of old age - or too much weed - lcd_string() bugs :-/ - Alan, what is supposed to happen when running the program? - bagder: alans files are at bjorn.haxx.se/rockbox/jox/ - go fetch :-) - oh sorry - ok - well, it displays on the lcd : - <<< JBP >>> - and - No it doesn't - OK WORKING! - haha - what do you get ? - It hangs without displaying enything - i repeat what you must have is : - "<<< JBP >>>" - "OK WORKING!" - don't plug you serial at boot - i'm going, guys. see you later. - it doesn't work at this moment, firmware doesn't clean very well -<-- Zagor has quit ("Leaving") - if it doesn't work yet - all I can see it the "JUKEBOX 6GB bla bla..." and then it hangs - hummm... - *** back soon *** - oh where do you plug your serail ? on the line-in ? - try to send '0' or '1' to turn on or off backlight - I have tried that. Nothing happens. - if not, interrupts are ignored and so it got an error (overrun, frame or parity error) - can you dcc get ? - oh by the way did you scramble the bnary ? - Havenb't tried. Shoot! - you must do it - I have a tip. Shut off all timer nterrupts: TIERo = 0, TIER1 = 0, etc. - I didn't scramble it. That must be it. Hang on! - there is not interrupt for sending jsut a polling - but for receiving there is an interrupt (is that way i can turn on or off backlight when receiving '0' or '1') - ...still dead, even after scrambling - no lcd displaying ? - Nope - FYI, I have firmware 3.18 - Try to blink the red LED in the polling loop - hummm, let me create a source package so you can modify and compile it... - Great! - can you dcc get ? - linus ? - Yup. Gimme da filez - trouble ? - "No file offered in SEND mode by alkorr" - Alan? - Alan: what is the name of the file? - yes - backup.tgz - and now ? - ok i was trying to send to Zagor :) - :-) - i move the sit() (enable interrupts) just after sending "Ok WORKING!" - oops, sti () - tabs = 2 spaces - Alan, I have to go now. I will look into your stuff ASAP. CU! - ok i must also to go :) -<-- linus has quit ("Leaving") - bye all ! -<-- alkorr has quit () - lcd_string() works again, time to stop for today -<-- wavey (~wavey@dlan1431.dircon.co.uk) has left #rockbox -**** ENDING LOGGING AT Tue Mar 26 16:43:52 2002 - diff --git a/www/irc/rockbox-20020327.log b/www/irc/rockbox-20020327.log deleted file mode 100644 index 902770b85e..0000000000 --- a/www/irc/rockbox-20020327.log +++ /dev/null @@ -1,563 +0,0 @@ - -**** BEGIN LOGGING AT Wed Mar 27 08:23:32 2002 - ---> Bagder (~daniel@as3-3-2.ras.s.bonet.se) has joined #rockbox ---- Topic for #rockbox is rock the box http://bjorn.haxx.se/rockbox/ ---- Topic for #rockbox set by adiamas at Tue Mar 26 09:53:55 - hey - welcome back ---- adiamas gives channel operator status to Bagder - thanks ;-) - we had quite a gathering here yesterday - as your logs might have shown - heheh let me scroll and see ;) - seems like it... - i wanted to play with the uisimulator on my home machine... but having issues... - seems that rh7.1 doesn't install the X11 headers for somereason. - :-( - btw, you should get the latest uisimulator sources - I updated them all day yesterday - yeah.. grabbed it this afternoon at work... - ah, ok - pops up a little black window.. - white boarder with text? - yes - nods - i gotta take time to read the source.. no time at work... - most of the lcd-code is generic as it works on a buffer - the lcd_update() reads the buffer and makes X11-calls to draw in the window - damn it.. think i may have to download the neweest x - ouch, that's a *lot* - isn't there any rh7.1 rpm with x11 headers? - i don't know rpms all that well :( - i pulled out the source from the source cd.. but not sure wtf im looking at... - so im playing with diff ideas ---> wavey (~wavey@dlan1431.dircon.co.uk) has joined #rockbox - morning wavey - hiya bagder - i keep reading your name as badger - is there a meaning behind bagder? - hehe, I don't hold that against you ;-) ---- adiamas gives channel operator status to wavey - once upon the time.. - back in.. 1987 - I was about to pick myself a nick name - and this is what it turned out to be ;-) - heh - I've stuck with it since - same here, but it was 1991 - i was asked to give a name for a MUD - and this one came out of nowhere - and it stuck - I actually *did* intend to spell it badger - but I was a bad reader or writer or something ;-) - heh excellent - then I thought the dyslexic style was kinda fun - should reduce the number of nick collisions, etc :) - yeps - except on #dyslexic-animals - bwahaha - okay.. are you guys familar with rpms? - somewhat -* wavey is more of a debian man, but go on - well.. i don't ever use them... - im a jedi, i use the source luke - heh - anyways... i have like 20 rpms for various forms of X11.. all i want are the friggin headers since rh7.1 didn't install witht hem... - is there and easy way to get at them? - isn't there like a x11-devel package or something? - and an easier question ;) when charging your players.. have you run the batteries all the way down? and if so, how long did it take charging for you before it held the charge? - you can unpack an rpm without installing it to get files out, yes - and i've run the batteries down a few times - but never in one continuous go - and i always charge overnight - or even continuously - so dunno - nods - it seems like its taking forever for this to take a charge again... - me neither, I haven't even had mine a week yet - and yeah.. theres a dev version... - but 7.1 is so bitch slapped i think im just going to pick up a new distro tomorrow... - think i might borrow a buds suse... - 7.1 shipped with a dev snap shot of gcc that was fucked. - isn't 7.x really old? - i haven't looked at rh for yearsa - 7.2 is the most recent, there's a 7.3 beta available - ok, my bad - yeah... - but im starting to really dislike the rh distro... - Bagder: what distro are you runnin? - rh 6.1 I believe, patched and upgraded beyond recognition ;-) ---> Zagor (~bjst@labb.contactor.se) has joined #rockbox - ad: how long is 'forever'? to take a charge? - hej Zagor - morning - morning - Zagor: I feel a need for some source code organization from you ;-) - bagder, don't put those dir in the root. make a 'firmware' top dir to put them in - morning... - you mean uisimulator root? - no, the ones you mailed about. the target code. - wavey im looking at hmmm.. i was home by 23:30 est, and it's now 3:30 est - uisimulator is fine in the root, i think - so 4 hrs? - ah, right I didn't intend to put them in the root - ok, good - but i _really_ drained the batteries. - I thought of having a 'rockbox' module, as a name for the firmware - maybe a bit too general? - Zagor: but I was actually thinking of leaving that task to you ;-) - ah :) - as head of the team - I'm getting confused of all the various source code archives now ;-) - hehe -* adiamas pokes zagor - so.. should i antagonize you about getting added to source forge team? -* adiamas grins wildly - hmm, did you send me your sourceforge user name? - nods - same one as here "adiamas" - ok. sorry, i must have missed it. i'll add you right away - and should we call this room "everyone gets op status bu Tumm"? ---- Bagder gives channel operator status to Zagor - hehe no prob.. - just want to post ver. 1 of FAQ - its really basic and typo ridden. - i can't spell for crap. - no problem - but i figure once your happy, you post it where you see fit. - yup - Bagder btw.. when i was looking at the code for uisim, something odd... - the first function in screenhack.c, merge_options... - i was playing with the structs, just to test something we've been doing at work - you do a memcpy, and i was playing with structure copies... they are a bit faster, but when i did it the size of the displyed box (not the white box, the surrounding box) tripled... - as the header of that file explains, it's been ripped-out from xscreensaver - any idea why? - no I don't, I'm not that well aquinted with those functions - hehehe k... ill go back then... was just the first thing i played with. - adiamas: you - are added now - ? - sweet. - "Doc Writer" :-) - Zagor: suggestion for a new page: cvs info, that sourceforge one is too hard to find and too generic - good point - i'll see if i can fix all the cvs issues today - including putting the web page in cvs - hehe Doc Writer works for me till i get my box working better. - that would be really neat - tumm, who are you? i haven't seen you before. - I think he's asleep - ok - well, the more the merrier :) - Gary sure is one active guy - yeah - we have attracted a wonderfully productive crowd! - indeed - maybe i'm the exception. i spent last night playing cstrike :*) - we might consider putting named people in charge of various sub modules - haha - I got some really stupid problems with my Archos mounted filesystem yesterday - ok? - what problems? - when cp -r'ing - it failed, saying that the filesystem is read-only - whoa! - several times - sounds bad - I umunted and re-mounted and I could do it again - did you have usb-storage debug on? - no - it copies maybe a hundred files before it bails out - ive actually had that... - but it happened when i was in win, not linux... :( - hmmm, i can't remember how much i've copied to the recorder - thats when i got that corrupted file. - this is a 2.4.18 kernel - i did 500+ files today in one shot - hmmm same here. - i have a 2.4.17 - but i only use ehci (usb 2.0) since i got it - my card arrived yesterday (at Contactor) so I'm soon gonna be there too ;-) - it's schweet! :) - i xferred 32 cds of mp3 to my recorder in 1 1/2 hours with usb2 - that's 3500 songs - 350 cd - fuckin' a. - :-) - small house keeping question, cause im anal... umm... logging, will we be relying on printf to the screen, or an actual log file? - in uisimulator you mean? - cause i see you have a Logf() in uibasic.c - nods - kinda pointless to keep a log on the player ;) - my original intent was to use the log function - but then I lost my dicipline ;-) - also, some of the printf() things are placed in "actual" code, and we need to define how to deal with that - hehe well.. for what its worth... dicipline may be what we want to set this early :) its gonna be a pain in the arse to break habits later :) - on a global basis - you're right - i have a suggestion on that - something that seemed to work for me... - since we are doing "functionname(char *format, ...) - we just #define the function name, use that... then when/if you want to tear it out its a bit easier - i don't get it. what's the gain? - nothing significant.. i was just refering ot the "actual" code bit... - oh - doing dev, having it there is fine, but if you want to bring it o the player you want and easy way to remove it. - a #define macro can't use a variable amount of parameters, in ansi - and config files are out of the question in this case. - thats not what i mean... - i mean: #define PRINTFUNC printf - aha - then just: PRINTFUNC("%s", "we are cool") - then you want to turn it off, then you just have PRINTFUNC point to an empty funciton - *poof*, no more output - but that still makes calls to code - nah, optimized out - only if in the same source - #define PRINTFUNC // - :) - hehe - yeah... - heheh - ugly, i know - that's a bit "brual" ;-) - i like that better :) - brual? - why not just PRINTF(("%s", "rockboxk")); ? - then you can #define PRINTF - completely - it gives really weird errors if you do a multi-line PRINTFUNC call - i don't get it. - #define PRINT printf x - oh, got ya - honestly, id just have issues with that on a readablity level - but thats just me - I have no strong feelings about either way really - we should define a single way to do it, and stick with it -* adiamas defers all decision making to you european types ;) - that i agree with... - and please please please, someone post preferences on how code is to be indented/spaced etc... - i get enough of 19 diff ppls ideas of formating at work... - code layout is so unimportant - be nice to have something everyone is expected to stick with. - as long as it's readable - and runnable - we could have a "prefered" style, but allow stubborn people to use their own - readable is the problem. - nods.. thats what i ment. - readable is common sense - i dont mean we take a LART to someone for putting a { on the wrong line. - and no two people agree on styles - true -* adiamas thinks wavey hasn't seen what passes for 'readable' in his office - heheh - and code beautifiers can be built into a makefile - beautifiers are no good for versioning -* adiamas watches cvs explode - no, you beautify locally - right - according to how you like code - and you can do a 'standard' beautify before the check-in - if these things matter to you - cvs sucks ass, anyhow - it's the best we have... - how do you do a standard beautify before check in? rely on the person remembering? - i don't like non-exclusive versioning systems - define non-exclusive? - adiamas incorporate it into the makefile - wavey: when doing global development, that's the only thing that works - make checkin - nods - bag: alas, yes - thought so.. tired, so checking :) - non-exclusive == if i have it checked out, you can't touch it - wavey: i wouldn't want to admin a global project with exclusive checkout... :) - zag: depends on the numbers, not the geographical distribution.. ;) - correct - I don't think the problem with CVS is the non-exclusiveness ---> alkorr (jbcoax@srs07v-1-85.n.club-internet.fr) has joined #rockbox - hey alan - hi - well i'm planning to do an ARCHOS.MOD as a loader for a not scrambled rockbox.bin binary -* Bagder needs more coffee - cvs will work fine for us - and i'm not ungrateful for sourceforge providing it.. ---> linus (~linus@labb.contactor.se) has joined #rockbox - hey linus - Yo! - yo Linus - I just dug up my FAT code. It isn't that much really. It was originally intended to be a general FAT12/16/32 driver, with emphasis on FAT16. It was for another project. - It is only working in a simulated environment, in Linux. - yes, ok I retrieve some of my FAT32 source but a little bit old compared with the last I've lost - so it could be interresting to merge - Yup. I'll give it to Björn, and he will upload it to the web site. - hey linus - hey Bagder - well tell me if you are okay for what follows : - - only FAT32 - - filesystem directly use ATA, no generic device - - ATA only handle primary controller and the master device (our HD) - are you okay with that ? - or do you want something else ? - I believe in incremental development - anything is fine - we improve it later if need be - It's perfectly OK. There's no need to develop any code that we won't use. I was planning to rip out the FAT12/16 stuff anyway, since the project it was intended for died. - must we handle only one partition ? - I don't see a problem handling several partitions, but let's start with only one primary partition. - ok - it is not a problem for me, it's just some code to add for having them - the only problem is how the user will see all the partition on his/her JB - That's why we should wait with that feature. - ok - i'm not sure about that, but did you know for people who have a recent JBR if their hd have a MBR or a direct FAT32 (true removable hd) - ? - I have no idea. - then you have to add that feature - we can't know all at once anyway - the old JBP and JBR cannot read direct FAT32 because of their old firmware - badger ? your hd on you JBR is the original ? - I'm not sure I follow you. What is "direct FAT32"? - yes - I just got mine - can you have a look on the first sector to see its signature, a MBR or a FAT32 ? - unless you did format it - what tool can show the first sector like that? - My Recorder HD had one primary FAT32 partionaccording to FDISK, before I reformatted it... :-( - mc - ok, I'll try to remember to do that tonight - linus : a normal hd has a MBR with a partition table -* adiamas growls at CVS - mc, look for /dev/sda, press F3, switch to hexa mode, that's all - FDISK seemed to recognize a partition table when I put the recorder HD in my laptop yesterday. - alkorr: will do, I don't have access to it now - linus : a removable disk can have no MBR, i.e, it has no partition at all. Instead, it has a FAT32 boot sector at the very first physical sector - I just gave the FAT code to Björn. Be aware, it is undocumented, and implemented straight from the Microsoft specification, so it is in no way optimized. It cad create empty files and directories. - Badger : yes I know, I just gave you the instructions to check - ok -* Bagder logs everything said here, saves him from taking notes ;-) - :) - linus : no problem :), Windows can read that kind of removable hd - linus : but old firmware don't know that - for those who used Windows 98 SE, it is very complicated to format - because you need to put the hd as removable to access it, but not removable to format it :/ - Björn ? how must I do to take Linus'source ? - wait :) - oh okay :) - Interesting. I just did that yesterday. I attached the redorder with an empty HD and partitioned it using FDISK. Was that the wrong way to do it? - are you interested with a simple ARCHOS.MOD as a loader for our rockbox.bin which wouldn't need to be scrambled ? - linus : an empty hd ? - linus : via USB or a ATA converter cable ? - alan: http://bjorn.haxx.se/rockbox/tmp/fat.tar - Well, brand new HD, via USB. - okay - it's strange, because Windows can only reckonize USB disk as logical disk... - at least it is what happens when I use WinHex... - So you mean that FDISK shouldn't be able to access the partition table of the Recorder? - DOS Fdisk ? Windows FDISK ? - or linux fdisk ? - a logical disk is a partition - a physical disk is the entire hd - with WinHex i cannot access USB disk as physical disk, So i cannot retrieve the MBR for USB disk, even I know it exists - Sorry. I ran FDISK in a DOS windows in Win98SE - was it an Archos disk using the chipset ISD200 ? - I created a primary partition (man those "integrity checks" tokk some time...) and then formatted it in Explorer. - I would have done it in Linux if it hadn't hung badly when I connected the Recorder... :-( - hmmmmm - So your BIOS is able to read the recorder HD !? i thought ISD200 was not totally compliant with USB Mass Storage - i had that issue today to... - matter of fact.. - my recorder battery died.. caused linux to hang so bad i had to hard reboot - Alan: remember. The Recorder is an ISD300 device. - oh yes !!!! - okay i'm speaking about ISD200 !!! - Now we're talking. I had to use Linux when I did the same thing with my Player. - okay okay you don't even need a driver for Windows with ISD300 i suppose - okay.. sorry all you european studs you.. but this american needs sleep.. - see you in a few -adiamas alkorr night adiamas ---- adiamas is now known as adiamas|sleeping - I really don't know. When I connected my Recorder the first time, Windows asked for a driver disk, and I inserted the CD that came with the Recorder. - Zagor ? what do you think about ? - well, if your DOS is able to access your recorder, that means your BIOS has capability to see USB hd (i.e, those which are really compliant with USB Mass Storage) - Maybe if you don't give the CD, Windows will find another driver in its database - maybe maybe - anyway it is good for you not to be blocked :) -* Zagor thinks windows wants drivers for everything... - linus : i'm looking at your work - your fat entry cache is one sector ? - Nope. It is as many sectors as you need. - the reason why you use a malloc... - Actually it's 256 sectors. Look at line 71. - ok - As you see, a lot can be removed, since we don't intend to support FAT16. And in many places, I only have support for FAT12/16. We have work to do. - lfn ? - i must leave you. CU -<-- alkorr has quit () - can we get the logs of this channel sent to the website? - they're very interesting - any many people would be interested - good idea - I can collect my logs so far - Daniel! Don't press DELE*... - Off for lunch. CU in a few. - same here ---- Tumm is now known as coyote - he's alive! ;-) - if uncommunicative ;) ---> alkorr (jbcoax@srs04m-8-243.n.club-internet.fr) has joined #rockbox - re-hi - alkorr: what's your surname? I'm typing up a little nick => real name list for posting the logs - i've no nickname. Alkorr is not enough ? - alan korr, i think, yes? - people might want to know the real name, who's behind the nick - Alan Korr, my nickmane : Alkorr - ok, thanks - Alan Korr - just a question for Linus : did my rockbox work with serial ? - he's away, eating - right - now, as soon as Björn has made the web updated vis CVS, I can just add the log there ;-) - s/vis/via - arf :) - you'r a fan of GREP ;) - okay i'll be here in one or two hours - good lunch -<-- alkorr has quit () -<-- coyote has quit (zahn.openprojects.net irc.openprojects.net) ---> coyote (coyote@dreamhosted.borlange.se) has joined #rockbox - hey, coyote - Zagor: how's the www cvs going? - it's just about ready - i'm just reorganising a few things. the scramble tools, for instance, gets a cvs dir of their own - also, I need to fix something about the load balancer - which of .html and .cgi has priority by default in apache? - I think it checks them in the order used in the config - index.cgi vs index.html that is - yeah. but that's not what I want to head :-) - hear - ok, so we'll have to remove index.cgi in the cron job on sourceforge.net. not a problem - or, you can just don't add it to cvs - yup. but i wanted it in cvs, so it's already there - :-) - btw, we could also use a new mailing list for cvs commits - its a great way to keep up with development - yes - if you name a directory within www, I could put yesterday's irc log there :-) -<-- wavey has quit (Read error: 110 (Connection timed out)) ---> alkorr (jbcoax@srs06m-7-196.n.club-internet.fr) has joined #rockbox - linus : are you here ? - Helooooo! - hi linus - bagder: 'irc' sounds good to me - I'm sitting with your code trying to get it to run on my jukebox - we'll make an index page with info about server/channel, and then links to the logs - okay, if you have some questions, don't fear to ask - UIE6A at 900014be - you caught an exception ? - Yup. - Zagor: I added the dir and put the log there just now - exception 106 : TXI1 - ok - Zagor: there's a short nick => real name list at the top of the log, it could probably be put on the main page too - ok - is abnormal, you shouldn't get it because I don't use interrupt when transmitting - You might have turned it on by mistake, since you do use it for receiving. - SH1 tries to call an interrupt TXI1 but as i don't code an interupt TXI1, it defaults to a UIE - yes but it's strange, because I never caught this interrupt - let me have a look on SH1 hardware manual - SCI1SCR is set to 0x70, which means only RIE,TE and RE is set - RIE = Receive Interrupt Enable - Yeah, I saw that too... - TE = Transmit Enable (nothing to do with interrupt) - etc. - By the way, you never called serial_setup() in the code you sent me. - yes because I did in setup () - setup () contains all the initial setup for most ports - included SCI1 - setup is in main.c - Now I see. Why do you do that instead of using serial_setup()? - well serial_setup was just an extra in case we need it elsewhere - bagder: doesn't "cvs update" make new dirs? - i just updated the sf page, and didn't get the irc dir - no, make a habit of using "up -dP" - I prefer concentrate all initialisation in one setup () with direct access on port for a smaller code - ah - -d for make dir, -P for delete removed files - quite now i never use serial_setup (a old code) - I understand. I have another opinion, but never mind. Let's find out whywe get that interrupt... - my intention is to have the smallest code possible for the final rockbox so we can have the largest space for buffer - a choice to do - Good idea - me like inlined functions then, best of both worlds - so, without changing my code, you caught this interrupt ? - that's true, Badger, i should try do so too to check i didn't lose space that way - btw, alan. he's "bagder", not "badger". it - sorry :) - 's an old story :) - it proves he's not using tab completion ;-) - haha - Bagder, are you sure ? - :) - that would be french tab complettion then :-) - tab completion to a dictionary, perhaps ;) - yes i forget this capability :) - very practical indeed - ok, linus, can you tell if you made a change before catching this interrupt ? - linus, add a new interrupt in serial.c - or let me change my serial.c and i will send it to you - Alan, I removed my extra call to serial_setup(). Now I get "OK WORKING", but no serial communication seems to work - ok, it looks as if my software is no good - if only i could remember what i did to make it work before my hd crashing :( - I'll look into it. Hang on. - linus : we must check if REI1 is called - add : " } - add : "lcd_goto (0,0); lcd_puthex (QI(SCISSR1),2);" in REI1 - it will display in hexa the byte read for Serial Status Register (overrun,frame or parity error) - Zagor: you should add Gary to the activity table - ok - oh wait, and if PB10 and PB11 is not set as serial pins in setup () ? i'm checking them - bagder: ui simulator? - lcd code and ui sim for windows at least - ok - did rob ever put his faq anywhere? - I don't think so - Linus, check for BAUDRATE and PHY at the begining of system.h - 12MHz and 9600 - 9600 is okay for you ? - Yup. - well, when there is no serial jack pllugged on my JBP, it displays "OK WORKING!" - the same thing when pluged but nothing in my serial terminal - Are you sure that you don't loop the serial data in your PC? - what do you mean by looping ? - Echoing - i echo what I get not what i put - I = sh1 - there is no echo from the PC side - Got it! - so ? - You have to insert a small delay before enabling TX and RX (SCR1 = 0x70). I made a while(i++ < 30000); - ok - good to know - As the manual says: "one bit time" -* Bagder grins - I spent quite a few hurs myself with exactly the same problem. I should have remembered that... :-) - ok you know what i did ? - i just put the last SCISCR1 = 0x70 just after setting interrupt priorities and it woks now - so we don't need a very long delay - very good now i can display messages on my serial terminal :))))))) - thanks to you Linus, I thought about that but i was sceptical :) finally you did the right thing -* Bagder hoorays - ok i will see later - bye -<-- alkorr has quit () - Gotta go now. CU! -<-- linus has quit ("Leaving") ---> alkorr (jbcoax@srs08m-5-139.n.club-internet.fr) has joined #rockbox - oh linus is left, well okay. -<-- alkorr has quit (Client Quit) - gotta run. see you guys - bye! - I figure the day is over now, I'll clear off as well -**** ENDING LOGGING AT Wed Mar 27 16:27:55 2002 - diff --git a/www/irc/rockbox-20020416.log b/www/irc/rockbox-20020416.log deleted file mode 100644 index d58a324700..0000000000 --- a/www/irc/rockbox-20020416.log +++ /dev/null @@ -1,214 +0,0 @@ -**** BEGIN LOGGING AT Tue Apr 16 07:32:17 2002 - ---> Bagder (~daniel@as3-3-2.ras.s.bonet.se) has joined #rockbox ---- Topic for #rockbox is Open Source Jukebox Firmware - http://bjorn.haxx.se/rockbox/ ---- Topic for #rockbox set by Zagor at Fri Apr 12 15:45:52 ---> adiamas (~adiamas@216.194.26.214) has joined #rockbox ---> Zagor2 (~bjst@labb.contactor.se) has joined #rockbox ---- Zagor2 is now known as Zagor ---> Linus (~linus@labb.contactor.se) has joined #rockbox ---- Bagder gives channel operator status to Zagor ---- Bagder gives channel operator status to Linus - $ mount /dev/sda1 /mnt/archos - mount: /dev/sda1 is not a valid block device - everything's the same as with my previous usb stuff - I only added the EHCI module - what does the kernel log look like when you plug in the device? - hub.c: USB new device connect on bus1/4, assigned device number 2 - Bagder: how is the Recorder formatted? - or rather partitioned? - there's no difference - it worked with my usb1.1 - Have you tried /dev/hda? - And what sayeth your /proc filesystem? - I am a moron. Of course I mean /dev/sda. - my /proc says a lot of course, any specifics? - /proc/scsi/scsi - /proc/scsi/usb-storage or /proc/scsi/scsi - hm - $ cat /proc/scsi/scsi - Segmentation fault - ooh - Ouch! - should I take away some of the other usb stuffs when I use ehci? - i don't think that should be necessary - this happened before too - when I used the wrong usb module - ohci - although i use usb as modules, so i rarely have everything loaded at the same time - well, since they must be modules I do too - they must be? - dunno for the new one though - yes - the other ones must be - at least for the menu stuff to work - i didn't know that - try /proc/bus/usb/devices - it might work to fiddle in the .config - and what am I looking for in there? - Bagder: do you have a directory called /proc/scsi/usb-storage-*? - the isd300 - Vendor=05ab ProdID=0060 ? - yes - Bagder: are you sure that the usb-storage module is loaded? - no - Check. - :) - so I need two modules? - the usb driver and usb-storage, yse - yes - didn't need that before... - in that case it was compiled-in - Yes you did. - oh - I have that one built-in - hmm - Sounds strange. You could try to have usb-storage as a module instead - yeps - reboot pending - I did in fact try it under windows yesterday ;-) -* Bagder hides - *slap* (misses) - looser - I also tried to setup "internet sharing" in win98 - HAHAHA! - but failed to miserable I felt pain - so miserably even - you really are gullible... :) - it is *supposed* to work - It does. But you have to know the secret handshake - it of course ended up with me having *three* cards defined and none of them were having my correct IP addresses - *g* - so it took 20 minutes to clean it all up again and get back to where I started ;-) - ... then I rebooted back to Linux - phew - reboot -**** BEGIN LOGGING AT Tue Apr 16 10:18:30 2002 - ---> Bagder (~daniel@as3-3-2.ras.s.bonet.se) has joined #rockbox ---- Topic for #rockbox is Open Source Jukebox Firmware - http://bjorn.haxx.se/rockbox/ ---- Topic for #rockbox set by Zagor at Fri Apr 12 15:45:52 - Thanks! - i bet the archos guys themselves are impressed at that - they should be at least - wait until they see our screen savers :) - I suspect that the Archos guys also used the serial port for debugging - I'm curious if anyone at Archos has heard about our project yet - right, I added the drawline function the other day - Bagder: how's the menu ideas coming along? - Zagor: maybe. but they don't seem overly responsive for fixes or ideas from the public - so maybe they just don't give a shit? - Zagor: not much there yet - my mate has the 1.26 rom, i'd like to know what changes went in - the lists don't seem to indicate much changed - I'd like to see an API for reading keys - Write one - then I can fake both input and display in the simulator - and produce something to try a menu system on - Write one - I know I should - again - I need to take Alan code - and Gary code - and unity them - unite even - Merge on. You have my full support. :-) - thanks, there's only the time issue left then ;-) - Caffeine does wonders with time - hahaha - oh, you're not doing anything useful anyway ;) - "Charging batteries" (internal joke) - oh, how did you know? ;-) - speaking of charging batteries, that's a man who we should "lure" in here to get started on some work :-) - Kjell - That man can really do screensavers! - hehe right - we need a math library ;-) - Alan would love that! -* Bagder giggles - -* Linus is having a Monty Python deja-vu - i was living in a cardboard box in the middle of the road - every morning we had to get up and lick the road clean - luxury! - You were fortunate! - is there any way we can wait for a key input without just while()ing in a read? - I mean there's no irq or something? - i don't think so - nope - ok - PA[12-15] and PB[12-15] can trigger interrupts, but none of them are connected to a key - Alan's key.h file sure is confusing to me - well, perhaps not - but quite not what I want - uhhh, not a pretty sight - Gary's is more in my line of thinking - anyone familiar with cygwin's setup process? how do i find out how to get a copy of /usr/share/dict? - bah - i've never used cygwin - perhaps i'll reboot into linux - I'll give ya a URL if you want - please - I mean, the raw file - ah, i can get that myself thanks anyhow - ok - just wanted to get the proper cygwin version - you know how interdependent these things can be - you guys redhat or debian users/ - both :) - ok - i love debian - to death -* Bagder has a redhat 6 something, patched beyond recognition - i'm a long-time redhat user and a recent debian convert - i remember installing slackware using 20+ floppies - those were the days - hehe - 386 - 16 MB ram - and my system kicked ass :) - which kernel version was that? - wow - that's going back some - about a year before 2.0 -* Bagder got the 0.01 kernel on a CD with a book he bought recently - empty cd... - well, there were other kernel releases too ;-) - ah - "Linux core kernel code commentary" - nice reading before falling asleep at night ;-) - that's cheating! - the oreilly kernel book is very good - I got that one too - device drivers volume 2 -* Zagor has a bloody zoo in the bookshelf - heh yeah - luckily they expense books at my current company - i bought 40 over the last couple years - yeah, same here - i stroke my bookshelf at night - hehe - hahaha - my fiancee is getting jealous - is the device drivers book worth getting? -* Bagder 's wife fainted when she saw the "kernel commentary" book ;-) - i was tempted - "what *is* that!" ;-) - The device drivers book is a must -* wavey makes mental note - do we have any good pictures of a player and a recorder taken on the keys/lcd ? - ah http://bjorn.haxx.se/rockbox/internals/archos1.jpg is a good one on the player - we have no good ones of the recorder though - i can take some - I'd like a web page with two frontal pics next to each other - player/recorder - makes it more clear to people (and me) how much they differ -* Bagder thinks ui/input stuff - ok -* Linus is starving - preferrably with the displays lit - off to lunch - yes - Lunch!!! - food -**** ENDING LOGGING AT Tue Apr 16 11:52:45 2002 - diff --git a/www/irc/rockbox-20020417.log b/www/irc/rockbox-20020417.log deleted file mode 100644 index 7ab27c9de2..0000000000 --- a/www/irc/rockbox-20020417.log +++ /dev/null @@ -1,164 +0,0 @@ -**** BEGIN LOGGING AT Wed Apr 17 07:59:14 2002 - ---> Bagder (~daniel@as3-3-2.ras.s.bonet.se) has joined #rockbox ---- Topic for #rockbox is Open Source Jukebox Firmware - http://bjorn.haxx.se/rockbox/ ---- Topic for #rockbox set by Zagor at Fri Apr 12 15:45:52 ---> Zagor2 (~bjst@labb.contactor.se) has joined #rockbox ---- Zagor2 is now known as Zagor - morning - hey - cool hack of the day: - Adbusters is buying a 30 second commercial spot on CNN tomorrow - and they're airing....nothing - :-) ---> wavey (~wavey@dlan1431.dircon.co.uk) has joined #rockbox - 30 second black screen - at least it was cheap to manifacture ;-) - hehe - morn, boys - hey wavey - hi wavey - apparently the spot cost $5000 to purchase - i tried compiling firmware last night, and it complained of missing .h files - fakestore or something - yeah, that's the fat code. it's not compilable - ah. - ok - is it normal to have noncompilable code in cvs? - in a major build target? - not really, but this is the first version of most files - hmm - i guess - it hasn't really set yet - what's there looks good - i got most of it compiled on windows thru cygwin - that cool - that's - needed to mod the makefile to include cygwin's distributed include dirs, etc - once we have a compilable codebase, we should mandate that it's always compilable from then on - sensible? - yes - imho - otherwise it holds up dev - indeed, there will be many people using the code base then - but feel free to correct the problems and mail us patches! ;-) - sure - will do :) ---> linus__ (~linus@labb.contactor.se) has joined #rockbox ---- Bagder gives channel operator status to Zagor - can someone add me as a registered dev on the rockbox sourceforge project pls - mister_wavey is my sf login -* Bagder points in Zagor's direction - sure - cheers - today's security flaw: IE back button ;-) - heh - which webapp is misbehaving? - the back button can run javascript - stuart martin, mister_wavey, Developer - zag: lovely - wavey: to commit anything to CVS, you need to checkout the repo using ssh first - before you did it read-only - Strange. When I connect from work, I am allowed to use the nick "Linus", but not from home. ??? - linus__: muh is still running and uses it probably - that's because from work you are connecting via "muh", which is holding the Linus name for you - AAh IC. - Bagder: muh is running on labb, or...? - yes - Så hur kopplar jag upp mig mot den? -* Bagder detects swedish BZZZZZ -* Bagder grins - connect your irc client to labb:9997 - OK. CU! -<-- linus__ has quit ("Client Exiting") ---> Linus (~linus@labb.contactor.se) has joined #rockbox - tadaaa - WOW! It worked! - nomad claims 22 hours battery time - http://www.nomadworld.com/products/Jukebox3/ - ...and the reviews report 10-12 hours - :-) - I got my soldering station yesterday. I made another debugging cable just to test it. - ... and now you sell it to the highest bidder? B-] - ah, good. because i got my archos swapped today! - Rock'n'roll! -* Bagder reads "Any one out there linking the curl C library with a COBOL program?" - :-) -* Bagder bounces, a commit mail from wavey! - heh - cygwin makes hell bearable - yeah, cygwin's pretty decent - i've installed cygwin's ssh - lunch - does the use of ssh produce a public key somewhere on my filesystem> - ? - or do i need to make my own - you don't need one if you don't want to - but ssh-keygen makes them - i'd like to store the key with sourceforge - ah, then ssh-keygen is the answer - -t dsa or -t rsa - depending on which kind of key you want - or one at a time to get both kinds - they're normally store in ~/.ssh - stored - do i want a passphrase on this? - yes - ok cool - how long does a cvs login session last for? - forever - ok cool - until you logout - ok waiting for the sourceforge batch process to use my key :) - ok - yes, it's nicer that way - the cvs page isn't complete in that aspect either... - as it doesn't explain the whole process to get the no-prompting to work - well, the ssh-keygen would be a useful addition - yes - you'll also need to run ssh-agent and ssh-add ---> alkorr (jbcoax@srs07v-3-253.n.club-internet.fr) has joined #rockbox - hi - good it works with WinCVS now (much easier to add or to update than with CVS command line) -<-- alkorr has quit (Client Quit) - yuk - GUIs are evil - except directory browsers, i guess - I agree - and therefore cvs integration makes sense - people tell me the wincvs interface is really crappy though - ssh-agent and ssh-add are needed where? - when sf knows your key - ok, what do i need to do? - run "eval `ssh-agent`" and then "ssh-add" - it starts an "agent" for your key - and adds your key to it - which then passes it to the server when used - ah - ok taa - so for ssh-add you need to enter your pass phrase - once - and after that all cvs operations are with no prompts - now, I honestly don't know how to put that short and nice in the cvs web page ;-) - :) - ooh - still being prompted - c'mon sf! get your batches running! :) - you'll see on the prompt when you can expect the non-prompt to work - it depends on which pass phrase it asks for - and the passphrase for the key is good for the length of the login session? - um, yes, but the "login" session with ssh is just the single operation. unless you meant the passphrase to ssh-add which is good as long as you keep ssh-agent running - ah ok - and to restart the agent after reboot? - eval `ssh-agent` again? - yes - coolio - then ssh-add and add your pass phrase - s/add/enter - ok - how do i get on the cvs notification list? - i couldn't see instructions anywhere - the mail archive needs a search tool too, ideally - Björn mailed about it - yes it does - To get these mails, send a mail to majordomo@cool.haxx.se, with the text (no subject) "subscribe rockbox-cvs". - aha, just found it :) thanks -**** ENDING LOGGING AT Wed Apr 17 12:25:54 2002 - diff --git a/www/irc/rockbox-20020418.log b/www/irc/rockbox-20020418.log deleted file mode 100644 index 4ae09bf7f6..0000000000 --- a/www/irc/rockbox-20020418.log +++ /dev/null @@ -1,559 +0,0 @@ -**** BEGIN LOGGING AT Thu Apr 18 08:42:39 2002 - ---> Bagder (~daniel@as3-3-2.ras.s.bonet.se) has joined #rockbox ---- Topic for #rockbox is Open Source Jukebox Firmware - http://bjorn.haxx.se/rockbox/ ---- Topic for #rockbox set by Zagor at Fri Apr 12 15:45:52 ---> Zagor2 (~bjst@labb.contactor.se) has joined #rockbox ---- Zagor2 is now known as Zagor ---> Linus (~linus@labb.contactor.se) has joined #rockbox - wtf is the story with the makefile? - there's a story? - umm.. well.. all the >>>>> and <<<<<< and ======= stuff - ah, that's a conflict - you and someone else changed the makefile - the >>>>>, <<<< and ===== describe the two versions - which makefile btw? - uisimulator - nevermind.. i just did and update on my end... - ok -adiamas adi|atWork could someone tell me where their lcd.h is located? - i don't have one and i need to grab it off a remote box... - makefile is complaining - ah - it's in the firmware module - I have uisimulator and firmware checked out in the same dir - ? - so in the uisim dir I can get it ../firmware/lcd.[ch] - im really starting to dislike cvs - rockbox, rockbox/uisimulator, rockbox/firmware - yeah.. but _i_ don't wanna work on firmware - you do now ;-) - but your telling me that i need to pull it down and keep it up to date huh ? - no but you need that source. we don't want to duplicate it - because the uisim uses firmware code -* adiamas giggles - can't we break it out into another "library" or "common" dir or something? - and have a third module you need? - seems that makes more sense.. - nope.. still only be two.. - why should i worry about firmware if i only want to play with the uisim - thing is, I want the uisim to use as much "real" code as possible - nods - because the uisim simulates the firmware - nods - okay.. now.. because im stupid.. if i just want to pull the files down and not checkout... - whats the cvs command? - or do i co no matter what? - yes - there's only checkout, yes - nod - im so much more used to sccs :) - but since you don't modify them, you won't get problems updating them in the future - sccs is good, but not for widely distributed development -* adiamas nods - i understand the use of cvs.. just feels icky cause im not used to it - widely/wildly - it takes some getting-used-to, I agree ---> wavey (~wavey@dlan1431.dircon.co.uk) has joined #rockbox - hey ho wavey ---- Zagor is now known as Zagor|work - goodly morning - hmm... okay.. anyone know wtf firmware/system.h would bitch on uisim compile? - complaing about the #define \'s - hm - lemme check - what does it say? - it works here - gcc -DHAVE_CONFIG_H -DGETTIMEOFDAY_TWO_ARGS -DSIMULATOR -DHAVE_LCD_BITMAP -I../firmware -g -c uibasic.c - In file included from ../firmware/lcd.h:24, - from lcd-x11.h:24, - from uibasic.c:36: - ../firmware/system.h:52: parse error before `volatile' - ../firmware/system.h:62: stray '\' in program - and then like 100 iother stray complaints.. but i figure those are ghosts - what gcc version is this? -* Bagder suspects the crlf newlines... - gcc version 2.95.3 20010315 (release) - im not switching to the 3.0 series till its aged a bit - on linux, right? - yup - ill tell you if its crlf - one sec - looks like it... - i load it in emacs and it comes in DOS format - mode rather - yes - so try stripping them off and compile and see if that removes the warnings - ummm.. how do i do that easily? - tr -d '\015' < system.h >system2.h - then use the version 2 of course - yup.. that did it... - ok - so we need to be more careful on the newlines - so when i get diffs on what i do and others do.. clashes and what not.. and we get the <<<<<<<<<< and> >>>>>>> complaints.. how do we resolve those? - the makefile can include a newline checker -adiamas adi|atWork adiamas adi|atWork thats a good idea - adiamas: those are conflict markes that appear when you get an update that has changes on the same lines you have changed locally - right.. i know.. but how do we resolve them... - ie: you change int i to int duck - and i want int wolf - what happens? - you edit out the "wrong" piece - and keep the correct - hehe but which is wrong? - you need to figure that out - it's a conflict with your changes - we can't tell you what's right ;-) - but it may only be a conflict with my changes because someone elses bug fix may be diff then mine.. and it clear out theres and place mine.. then theirs is in conflict - and round the wheel turns... - yes, but that's why you need to pick one of the alternatives. Or write a new approach ;-) -* adiamas reminds you he's still new to this ;) - one last question, then bed... is there a way to set my searchable include dirs in my env so that the makefile can find what it needs if things are in diff locations? - it's possible to pass as arguments to make - bah.. was trying to avoid that... - it could be environment variables too - we should figure out a way to let people do this easily -* adiamas nods - fixed.. settled for a symlink and said screw it - way to go ;-) - adiamas: -IX -IX+1 -IX+2 for your makefile include entry will search X, X+1 and X+2 .. - where X, X+1 and X+2 are include dirs - if i understand your q correctly - so people edit their makefile to include all their includes in the $(INCLUDE) directive - that's how I do it - especially on cygwin, where the includes are all over the place - oh, and I replace the use of -I$(INCLUDES) with simply $(INCLUDES) - to ensure the first -I doesn't translate into -I-IX -* wavey goes back to OO modelling - of course, we could always use autoconf -* wavey runs - hehe - wavey nah.. that i know.. the part that was issue was the libs.. - yeah.. editing the makefile isn't an issue.. - i just don't want to have to keep fixing it each time i pulled down a clean copy and all - so i just tossed LIBDIRS in the env - and do make -e -* adiamas shrugs - oh, libs - i thought you said includes - hehe nope... - im used to makefiles.. just not used to dealing with that on a new starting project :) - w/ other ppls machines and all - 'is there a way to set my searchable include dirs in my env' - ha -* wavey knew he wasn't going mad - hehe sorry... - i think i need bed too - 1 - 0 to wavey ;-) - but i've been awake only a couple hours - its 0430 here.. cut me some slack ;) - heh - go - to - bed :) - can't sleep :( - this heatwave here is killing me.. - came to quick... - where are you? - NY state, usa - bout, 30 mins north of NYC - aha - how hot can it be at 0430? - hit 93 today at work... - ouch - yeah... - hope the ac is working - don't have any - just a ceiling fan - double ouch - nods - i find turning lights off and working by candle makes it cooler (both definitons of cooler) -* wavey blinks - besides.. the gf comes up this weekend.. so sweat is a good thing then ;) - heh - btw.. its no ac at home.. work has it.. - ah - glad to hear it -* Bagder counts, 33.9 celsius = 93 fahrenheit = 307 kelvin - uk has been mild/warm for a few weeks now - s'lovely - had the first rain in ages yesterday - we have like 9C today... :-/ - hehe we are in a near drought situation already... no lawn watering, town just passed restrictions on pool filling - wow - and across america over 100 records were broken due to the high heat - we use CDs in the uk now - NYC had it's hotest temp on this day in history, for the 3rd day in a row. - they're smaller and shinyier -* adiamas quirks his head to the side and looks at wavey - i don't get it. - records broken - cd - ah.. - heheh - it's late - you're tired - im ugly too :) - its understandable :) - heheh - but shhh.. thats a secret -* Bagder looks at wavey, oooooh that was a pretty bad one ;-) - everyone's beautiful in ascii - lol... i like that... - congrats.. you just joined my sig file :) - eheh - heh - in ebcdic however, everyone's a pig - is that why we've switched to ascii these days then? B-] - yup :) - and frosted mirrors too - wavey.. whats your real name so i can credit you all proper like :) - stuart martin, if you need the credit. take it for yourself with my pleasure - btw.. its 70 F here, 21 c - UV Index: - 0 Minimal - heheh - i wonder why... - could it be the suns not up? - :) - when is dawn these days? - any of you read scifi? - dawn as in sun rise or dawn as in the book? - sunrise in NY 05:12 - almost finished two olaf stapledon books. 1930s author - one of his books describes the history of humanity (over 200 000 000 years) and the other describes the history of the universes - both fantastic, btw - nods - (according to my psion) - absolutely recommend them - wavey, feel like mailing me the book names? - either that.. or msg me them... - 'last and first men' - and 'starmaker' - nods - the channel is quiet, i'm sure no one cares :) - got it. - okay.. bed time - night all - night adiamas - see ya ---- adiamas is now known as adi|sleep -* Bagder is curious on Linus I2C and MAS work... - i2c? - whassat - ooh, only 15*6 songs left on my random playlist of 3500 songs :) - that's how to speak to the MAS circuit - one quick note.. did you guys realize there is a key lock on the jbr? - yus - on - nods - hehe i din't :) - back to bed :) - heh - night -* Bagder has hardly used his recorder yet :-) - we need a tiny math lib for our code - we do - which projects can we steal it from? - I dunno actually - we could probably "steal" function by function - from BSD or Linux code - sure - be nice if sourceforge allowed a search through open source project's codebases for things - be very useful - true - make it easier for industry to rip it off as well i guess - not that it doesn't happen already anyway - The I2C is going slow at the moment. But the MAS is responding. - *cool* - ...occasionally. :-) - hah - occasionally cool :-) - heh - what about data structures? - we cutting our own linked lists, etc? - we could probably use a sensible single implementation for many to use - must be a nice and small and tested-to-hell one in apache or somewhere - yus ---- Zagor|work is now known as Zagor - btw, we're having a litte "rockbox" gathering tomorrow - the stockholm/sweden parts of the rockboxers - how close do you guys live together? - 20km - 'variable pitch control' is that achieveable by the MAS? - (from the mail list) - nope - can't be done - rockbox lunch time - hey you know if the DAC can have 2 channels on at once? - I don't think so. Lemme check. - It seems like we can mix all channels, AUX1 AUX2 and DAC - Cool. Then we can hear the RS232 data when we are debugging. :-) ---- Zagor is now known as Zagor|lunch - yeah? nice ---- Zagor|lunch is now known as Zagor ---- wavey is now known as wav_lunch -* wav_lunch smiles - timezones. who'd have 'em? - they're useless -* Zagor wants to do away with timezones and daylight savings time - yus - one hour, globally - who cares if 0515 is in your afternoon? - exactly. it's just a bloody number -* PsycoXul agrees - swatch tried it with Internet Time - only met one person with such a watch though - if the world's consumers had embraced the concept, the governments may have agreed to it - anyhow - lunch - the problem was that they wanted to alter everyone's sense of time. the changed too much - people still want 12+12 hour days, 60 hours minutes etc ---> alkorr (jbcoax@srs04m-2-107.n.club-internet.fr) has joined #rockbox - Welcome Alan! - hi linus - hi there - i have a question - Ask! - quite now we cannot use other formats than MP3 - not even a WAV file - the recorder is able to get a linear PCM on digital line - True - if i'm not wrong, wav format is a PCM-like stream - yes - wav is usualy just pcm with a header afaik - my idea is the following - if we strip unused infos - and feed internally the digital pin of MAS - with a PCM stream (using sci0 ?) - and set MAS for recording - would you hear this wav playing ? - I don't follow you. Do you want to play WAV files on the recorder? - a trick which could allow recorder to play wav files (not forgetting possibility of mixing) - i read on the company's website about the player's MAS and they claimed to have pcm playback firmware for that chip anyways, likely the recorder's chip too... of course getting any such things i dunno, never found any downloads etc - The MAS is capable of playing WAV files. You just have to download firmware to it. - i think it is not free - can archos firmware do whats necessary to download firmware to the MAS? - i tried to get this addition but without success - yes it could - if it have additions to upload - has - but i'm doubtful that Archos will buy this addition for its player/recorder. - i think we need a dsp hacker to the project :) - of course if we could know what kind of DSP it is and have compilers, it would be great - yes - but Micronas are unlikely to reveal anything about this DSP - why? - Do you know a lot of company which reveal all the works ? - their - what DSP they use is hardly "all the works" - anyway, companies are not bound for revealing something :) - perhaps they don't want to let a non Micronas employee to be able to reverse-engineer their works - they are commercial, not open free :) - well - they DO have a devkit that they supply to their customers - they mention it and some of the things in it - example firmware and such - yes but if they don't let people write dsp code, who will buy their dsp? - customers => archos, not final users - customers must pay for it ! - true - including some voice compression codec decoder and encoder, and pcm player - yeah - but there are a few customers of the MAS - perhaps we could ask around - so somebody find a friend of a friend of a friend who works for a customer ... - heh - okay if you can a smart guy to help for retrieving missing infos and even get tools, that would be great - find - getting the tools is probably not legal - and if he/she is not concerned with a NDA too - I doubt all customers sign NDAs to buy the MAS devkit - ya, if we could have opcodes, we can create an assembler - but what i know it should be 24-bit opcodes (code addresses are 24-bit) - btw, if you look at MAS commands, to upload a firmware you must issue a command and a block of 32-bit words - but only the first 24 bits in those words are valid - (or it should be 12-bit ?) - hum found a 1 MB pdf... - the data sheets speaks of 20-bit words - ok - so it is 20-bit - i found a page where someone said what DSP was in fact - wow - i try to get it back - MASC - 3500 ? - not 35000 ? - anyway not a target we can find for gcc or as :( - uh no - http://winwww.rutgers.edu/~samar/platforms/masc3500.html - ya - found - nice digging! - the guy who wrote that web page could have some info - yes i tried but i wonder if his email address is still valid - he has two, try both ;-) - hum i prefer let you to try both ;) - "MASC 3500 is NOT supported by C compiler. Only assembler programming is available" - actually, I think I'll hand over that work to Björn - okay - *thump* - got it - :) - he's the man - ;-) - :) - so..um... what do we want to know, exactly? - whether he has an archos for a start :) ---- wav_lunch is now known as wavey - have all the information he can feed us about this DSP : especially all the opcodes - haha - haha - "I was especially interested in digital modulation techniques and speech processing. So, embedded systems and numerous real-time DSP implementations (telephone line modems, low bit-rate speech coding...)" - he's our man! - There was only one commercially available MPEG layer 3 chip, the MASC3500 from ITT Intermetall Semiconductor. We attempted to obtain information and availability of the chip, but the company is situated in Germany and gave very little feedback - not a good sign - yes it is the main culpritt of thy company - this - humm i mean the main discredit for this company :) - your point is usually clear, al :) - A. Domazetovic, D. Samardzija, "Implementation of 4880 bps CELP on MASC 3500 DSP", Conference on Telecommunications ETRAN, Vrnjacka Banja, Yugoslavia, Jun 1998. - anyone near a library? - in yugoslavia? -* wavey chuckles - lol - D. Samardzija, Z. Lukac, "A Solution of CELP Encoder at 5.3kbit/s and 6.3kbit/s on ITT MASC 3500 Processor", Conference on Telecommunications ETRAN, Vrnjacka Banja, Yugoslavia, Jun 1998. - well in a very good english : "this lack of feedback is the rock(box) on which the undertaking comes to grief" ;) - yay, we've got a poet! ;) - al: and now in italian, please :) - italian you are ? - (without using babelfish) - italian I am not - english I am - arf ;) - arf is a lovely word :) - "questa mancanza di risposte è la roccia(boccia) su cui l'impresa viene al dolore " ;) - roccia boccia -* Bagder giggles - arf => lol - fantastic! :) - roccia boccia is mighty - huh "boccia" doesn't exist :P - Wav: found something about "A Solution of CELP Encoder at 5.3kbit/s and 6.3kbit/s on ITT MASC 3500 Processor" ? - it's one of Dragan's publications - okay so no pdf at all ? - no - i'll email him and see if he's a cool guy or not - hmm, this guy wrote a CELP encoder for the MAS 3503, which is the predecessor of the 3507 we have in the jukebox - i think i'm in love - arf :) -* Bagder worships Dragan a little - you think it helps? ;-) - Why ? - brb -**** ENDING LOGGING AT Thu Apr 18 14:44:53 2002 - -**** BEGIN LOGGING AT Thu Apr 18 15:27:51 2002 - ---> Bagder (~daniel@as3-3-2.ras.s.bonet.se) has joined #rockbox ---- Topic for #rockbox is Open Source Jukebox Firmware - http://bjorn.haxx.se/rockbox/ ---- Topic for #rockbox set by Zagor at Fri Apr 12 15:45:52 - does wordexp() exist in windows? - anyone? -* Zagor doesn't do windows - wordexp ? - Bagder: I just managed to read the version number from the MAS via I2C! Yippie! - *neat* - wordexp, yes, it's a posix function - though I doubt windows features it - use the cygwin.dll from Cygwin ;P - i'm doubtful too - unless they have a posix library - what is its purpose - "perform word expansions" - i cannot find its manual entry - heh, no I couldn't either on linux - really a standard posix or just a mandatory extension ? - then Linux man pages contain many holes - standard posix - single unix specification - never mind - okay - so what is the version number of the MAS? ;-) - Linus: player or recorder ? - it's the player - actually, he read the model number so it's "3507" - woooo - we didn't know that! B-P - hehe - Linus: you should try I²Cize your MAS on the recorder too - maybe he faked it :) - alan: yeah, it's just a lot easier to do development on the player since he's got the serial port on it (and the I2C wires connected to a digital oscilloscope...) - ah yes, the wires... - you guys are gonna make these little boxes do things the archos people never dreamed :p - just thought i'd throw that in there before running off to bed heh - ... and not some things people do dream of (judging from some of the feature requests) ;-) - heh - yeah well - My I2C test was on the player - Recorder has two I²C devices so don't be surprise if you code could not work ;) - Bagder: that may not be all bad heh - and theres a lot of requested features that would be like.. moot with new better firmware - you know things that apply to the current firmware's limitations etc - that's true - Why? I assume they have different ID:s. - especially, if you requeste a RTC reading via an interrupt while reading something on MAS ;) - Hehe. Who would do such a thing? :-) - They do - :-) - anyways, sleep time.. night - night PsycoXul - night - nacht Psycho - hum i must leave, see you ! -<-- alkorr has quit () -<-- Linus (~linus@labb.contactor.se) has left #rockbox -<-- Zagor (~bjst@labb.contactor.se) has left #rockbox ---- You are now known as Bagderzzz ---> wavey_ (~wavey@dlan1431.dircon.co.uk) has joined #rockbox -<-- wavey has quit (Read error: 104 (Connection reset by peer)) -<-- wavey_ (~wavey@dlan1431.dircon.co.uk) has left #rockbox ---> Zagor (~bjst@as9-5-6.k.s.bonet.se) has joined #rockbox ---> alkorr (jbcoax@srs04m-7-48.n.club-internet.fr) has joined #rockbox -<-- alkorr has quit (Client Quit) ---> wavey (~wavey@host-54.valtech.co.uk) has joined #rockbox - are you an emacs man, wavey? - yus - you also? - yep - had a problem with c-offsets-alist, but I worked it out - are you logging everything? - alan said his FAT32 code was "obsolete" but I don't understand what he meant with that -<-- wavey has quit (Read error: 104 (Connection reset by peer)) - zagor.. you still around? - yeah - heheh glad you updated the lcd.[ch] api... - now i can toss up my battery bit at some point ;) - ah, yes - i have a little something i hope to get done tonight - whats that? - umm, a surprise :) - tetris - lol.. seriously? - yeah - oh.. i was thinking... - we have a limited # of keys on the players.. we may want to assign keyboard keys to represent them for the simulator. - yes, i've been thinking that too. i was thinking some keys on the numeric keyboard - nods - that or just overload the function keys. - but the #pad would work nicely for the center control pad... - left, right, up, down. - exactly - i like that. - and 5 för the play/pause on the recorder - yup... - and even the top four for the menu keys - could even get away with - for off and + for on - right... - i don't know if numlock is a problem using as a normal key in X - i don't see why it would be... - brb..need food -<-- Zagor has quit ("bye") diff --git a/www/irc/rockbox-20020419.log b/www/irc/rockbox-20020419.log deleted file mode 100644 index d31e3942af..0000000000 --- a/www/irc/rockbox-20020419.log +++ /dev/null @@ -1,547 +0,0 @@ ---- You are now known as Bagder ---> Zagor2 (~bjst@labb.contactor.se) has joined #rockbox ---- Zagor2 is now known as Zagor - aloha! - hey ho ---- Bagder gives channel operator status to Zagor - uh - y%8 should be y&7 in lcd.c - for the pixel functionss - I'll fix - yes, i realized that too. but it turns out as the same thing - when compiled? - i don't know about the code, but the logic is the same - yes, logic is the same but % is generally a much slower operation - ok -* Bagder does an "Alan" - hehe, don't be mean -* Bagder chuckles - woo new mozilla to get ---> wavey (~wavey@dlan1431.dircon.co.uk) has joined #rockbox - morn - it is a sunny and fine morning here - overcast and cool here ---> alkorr (jbcoax@srs04m-8-117.n.club-internet.fr) has joined #rockbox - for the CVS $Id, what must i put it in a source, so CVS fills it - ? - hi btw - $Id$ - hi :) - oky - :) - do we have a standard file header to include at the top? - yes - i.e the rockbox copyright and logo? - yeep - so rather than specifying the Id tag - specify the header :) - and put the tag in the herder - header - yes, that's how it is - so - why - did - alan - ask about the id tag? - ask - alan - :) -* wavey lol - because i didn't know that :) - because it isn't stated anywhere :) - alan: you changed the license for your FAT code. was that intentional? - nope at all - they were my old headers - ok, so I should change it back to GPL? - just forget to change them - if you are tempted :) - i am :) - okay - i looked at it a bit yesterday. what did you mean when you said the code is "obsolete"? - which code ? - the fat code - that you mailed me - ah yes... hum because i plan to split it and maybe a little bit more generic for PC test - ok, because I started working on it... :) - is that so ? - yes - i plan to have an image of a FAT32 disk in a file to do testing on - for your purpose ? - ? - zag: how will the main program body service user events while keeping the dsp full of data? will we just set up some sort of dma to allow the dsp to read data until complete, leaving the program thread to manipulate memory etc? - or is there some other way? - that's a good question, which among other things we will be discussing tonight :) - i need to switch tunnels, brb -<-- Zagor (~bjst@labb.contactor.se) has left #rockbox - bag: we = .se? - european people ;) - yes - me, Linus, Björn and a forth friend ---> Zagor2 (~bjst@labb.contactor.se) has joined #rockbox - ok ---- Zagor2 is now known as Zagor - cool - oh you mean off-irc, Bagder ? - we're gonna gather tonight - right - in real life - wow - there's an outside? -* wavey is scared -* Zagor is now in a clean, nice, pure ssl tunnel - you worked out the CONNECT part? - yup. found a perl script - coolio - i'll write up a twiki page - knowing http pays off B-P - seriously i see Zagor has change PAIOR and PBIOR to be ((volatile ...) - i would try to avoid such a thing - why? - sometimes to have a byte access is better than a word access - these are registers, yes? - yes but byte access is a special case - or a 32-bit access better than a 16-bit access - also a special case - this is the normal case ---> Linus (~linus@labb.contactor.se) has joined #rockbox - du to the fact, we write them in C, i don't see objections to leave them as address ant programmer to use the word access he wants - ... and let ... - it makes a mess in the code to always typecast them. this way, the registers are registers, as defined in the data sheet - register ??? - if you want to access them in a non-standard way, *then* you do special typecasts - manual says we can access such registers as well byte as word, so there is no real non-standard way - well the manual says the register is 16 bits wide, so that's how I define "standard" - I define the "standard size" to be the register size. - I would guess the the size the programmer wants would be the register size in 99% of all cases. - i try to use a homogene way to access those register, and having SI,HI or QI remove the necessity to guess what size the register is. But due to the fact i'm in minority, i suppose i can only approve your changes unwillingly - i really don't like the SI/HI/QI thing - by the way i could need the addresses of those register (DMA with SCI0 for example) - Except that noone can guess what QI, SI and HI means without searching in the header files. - yes, we probably need double macros. one with the address and one for register access - yes but i find more ugly explicit typecasting anyway - Absolutely. We will probably still nedd both ways of doing it. - explicit typecasting is good in special cases - because then it shows that it's a special case - i use GCC convention which has in internal the modes SI, HI and QI - if you could find something else, i could be okay -* Zagor has never seen SI/HI/QI in his 15 years of programming... - Yes. But I have yet to see any C source code using that convention. - but must be short anyway - Absolutely. - look at the gcc source ---> Bagder2 (~chatzilla@as3-3-2.ras.s.bonet.se) has joined #rockbox - I have looked at the GCC source code. The QI/HI/SI stuff is not C it is a pseudo language. -* Bagder2 tries chatzilla - Bagder2: good? - nah, I think I prefer X-chat - yes, your defines is not much more standard than mine anyway - actually, they are -<-- Bagder2 has quit (Remote closed the connection) - look at any microcontroller C compiler - registers are reserved uppercase symbols - i don't call them 'standard' - well no, but it's the most common way to represent registers - it is not that kind of stuff i will call standard - for me, they are libs like stdlib or stdio, no our own source - I agree, it's not a standard. but it's a style that many people have seen before - yeah.. yeah.. well.. well.. your momma! -* Zagor twitches. Adi - awake? - not really... - for what its worth.. and i know its not much... but to me... SI HI QI makes no sense... - BTW, the Archos guys have really made an odd I2C bus connection between the 7034 and the MAS... :-( - because to anyone who doesn't immediatly recognize it.. well.. they are clueless to what it means.. - but thats just my opin... - so change them for another convention - that's my point exactly - and the MAS uses a really odd I2C protocol variant... - Linus: will it set any limitations or just make it difficult? -* adi|sleep also points out he isn't attacking anyone... - A little tricky...and perhaps slower that necessary. - anyway, for me they are not really register since SH7034 use a memory map to access peripheral registers => not a register for SH, register for peripheral on-chip. -* Linus agrees with adi|sleep - Linus: what about the trouble ? - alan: it's the same thing. many controllers use memory-mapped registers - For example the PIC - and the PowerPC - Well, not the POowerPC core, but all PowerPC-microcontrollers - yes -* adi|sleep points out that your reality is nothing but lies and baldardash and he is happy to say he has know understand of it. - And the 8051, IIRC -* adi|sleep goes back to sleep - adi seems a bit... off ? - Zombie? - me? no no no.... - so, he's talking in his sleep ;-) - im on 'nuetrel' - a victim of the Umbrella Corporation? - i make a difference between cpu register and port registers that all. The way to access them is different - which is latin for "its way to fucking hot and humid outside for 0430 - " - one use direct opcode, the other use peek/poke - that's all - Agreed. You dont access the CPU registers at all in C source code. - poke 53280, 0 - Black border - a reset ? - Linus: about I²C ? - then what did the old "register" thing in C do? -* Bagder hands the award to Linus - what's the trouble -adi|atWork adi|sleep adi|atWork adi|sleep adi|sleep: it tries to allocate a variable to a register - nods - instead of putting it on the stack - okay.. now i remember. - no one uses anymore register, because a lot of C compiler implicily uses registers as possible - They have used a diode to simulate an open collector bus. That makes it tricky to communicate in both directions. -* Zagor agrees - so register is a void attribute in gcc - yup - yes - but then gcc is a mighty fine compiler - there are a bazillioin of worse ones out there -* Bagder has been hit by a few - GCC is good on some processors, worse on others. - true - but it has a good general engine - Generally, GCC wants CPU's with a lot of registers - well don't we all? - for IA32 or SH, humm - i mean.. come on.. cpus with lotsa registers are just so much more sexy - not to mention better in bed. - speaking of bed - IA64 you mean - ADI. Are you drunk? :-) - only with powerlessness -* adi|sleep cackles evilly - I bet its the heat - Linus: i'm not sure to understand, what do you mean by "communicate in both directions" ? - nods - and the lack of decent sleep. -* adi|sleep giggles furiously as he missreads sleep with sheep... - no wouldn't _that_ have been a freudian slip. - hehe - I mean that the data (and the clock in the case of the MAS) is bidirectional. Both read and write. And the diode makes that difficult. - But not impossible. Just tricky. - what's the australian definition of "safe sex"? -* wavey pats adi|sleep on the head - you X-mark the sheep that kicks -* wavey -so- needs to learn some electronics - is there a beginners bible? - I don't know - It's really simple. Just have a father that explains it to you. :-) - yes but you can read, cannot you ? - er - i'm talking to Linus :) - ah - read MAS - good :) - hahaha! - :) - Yes I can read. Ti is working. But it is slow at the moment. I will add another trick from my bag to make it faster. - it is the code or the electronic part which is really slow ? -* Bagder likes bags with tricks - Tha MAS is really nasty, as it drives the clock even when it is slave. :-( - The data line takes a lot of time to go from 1 to 0 when reading, since the line is unconnected because of the diode. I will have to discharge it explicitly to make it faster. - the MAS manual says it can held the clock to let it handle some things before reading further data - okay - Yup. And that is really nasty. - Especially since the clock is also connected via a diode. - in fact, you're telling us that MAS could run faster if the data line can discharge more rapidly - Only the I2C line. That is only used for settings and configuration. - but it only regards the I²C line - A pull-down would really help. - okay, not a real problem, just a nasty design - Exactly. - lines I²C shouldn't have pull-ups ? - Yes. On the bus side. I was talkin about the CPU side of the diode. - okay - just a note - if you disassembly the I²C part of the player firmware, they don't use the common way to set/clear the I²C lines - instead of using IN direction to set line at 1, they use OUT direction and set to 1 - that is, when setting port, always in OUT direction from the CPU - when reading (checking line status), in IN direction - daniel - you still capturing the logs? - I do - I suppose you don't use the same way to communicate with MAS (when setting 0, OUT dir.; when setting 1, IN dir.) - cool - can we automate it? - stick a bot on and pipe it to the website? - it is certainly possible - and add a search engine? :) - this is a wealth of info - i added a search form yesterday - it uses google - especially to newcomers that will come along - cool - uses google's cache or realtime search? - the cache - ok - but they index the site pretty regularly - lovely - regularly or frequently? ;) - frequently :) - i've nearly got the C++ XML library ready for inclusion - just getting the CORBA interfaces ready first - this firmware will kick ass - haha - hihi - what about the web browser? ;-) - :) - bad you will need to convert it to plain C ;) - now, this might be a ridiculous idea... - but can we use more of the limited memory buffer for audio - more? - ??? - hang on - by using the disk to store our program data? - and load it back when needed? - we have a 2 MB DRAM, whatever we can have in - or is that silly - that is silly :) - depending what you want to do - i think to understand what Wavey means - yes it could be a cool idea but not the priority - alkorr: That is why they have the diode. They don't want to set it ton IN to drive a 1 on the bus. - For some reason. - the possibility to load a game when you want to play, instead always having them in memory - yeah, keep a nucleus of program in memory, and demand load the bits we need - how large is the footprint of archos firmware? - archos apparently has no real dynamic memory - it seems to use a lot of tables - What is "real dynamic memory"? - malloc - Ah. - so their size should be fixed - i guess :) - malloc is a dynamic memory - a true dynamic memory, if you like - do i misremember malloc's free not shrinking the process memory usage? - not that it matters - that's OS dependent - wavey: that's a unix thing - with only 1 process - ok - what i mean is if we want to have the ability to load specific code at a ponctual time - you surely need a dynamic memory - so when we only use the player (or recorder) - we can use all the memory - and to prevent us to work with fixed address (so binary code not reusable with new firmware) - but you still need a code addresses relocator :) well, not the first thing rockbox will have - no one knows how large the archos firmware is in memory? - nope :) - I xould guess about 100K. - interesting :) - But I might be wrong - their firmware decompresses the mod, yes? - .ajz - in fact we can export some data in harddisk - for exemple if we have messages in different language - I guess the recorder decompreses the firmware. That would explain the long start time. - i can't see the benefit of a compressed mod - except to piss people off :) - Neither can I. - save disk space? hehehe - hehe - ooh, 60GB in your palm. - Download time on the internet? I mean if you can save 1 second... :-) - Wav. scrambling maybe - so like yeah - i remember all the things my c64 could do with 1mhz - 1mhz? or 1mb? - what interesting things can be done with a whole 12mhz of processing power - heh - ah - yes :) - i just with the player's LCD was even just a tiny bit better - like to be able to draw the blocks between characters - heh - yup, all the fun games will only be for the recorder :*) - nah - i did a rather nice little thing where you run around a map overhead - and it scrolls through the 2 lines quite nicely - i think the messages inf the firmware must take a lot of space, it could be interesting to see when removed how many it saves space in memory to have just the messages of the right langage - it's pointless till i can read levels in files and such but i just wanted to find out if it was possible to make a game playable in 2 lines - and it is - just be cooler with a little more capabilities - heh - that's might cool - +y - to have a < 64 KB code should be a good point - alkorr: yes - we have a very big advantage in that we can always compile in just the features and data that we need - Hehe. The libc code is about 30k... - ick - libc? who needs libc? - for div - or shift operations - when the shifter is not an immediate - I use it for sprintf at the moment. The string functions are there too - there's a diet libc we could check out - we can use a simpler sprintf - We have the source. We remove what we don't want. - precisely -* Bagder agrees - Actually, I think newlib ha a diet sprintf. - s/a/has/ - "ha has" ? - but due to the fact you use a library, you only integrate functions from libc you really use in your source* - heheh -* Linus has thick fingers today - Not functions, modules - Unfortunately, many finctions are located in the same .o file in the library, and they often call each other. - ah bad - But correctable. - i thought they used a .c file for each functions - Often they do. - And sprintf() is a mighty beast. - shure - I use it for debugging output at the moment. - using sprintf from linux? - Nope. In the firmware. On the GDB console. - a less capable sprintf() could of course be much smaller and still do just about what you'd want -* Linus thinks of Trio - that is not less - Linus: i know but i'm speaking about what version sprintf is - But you know how to strip it. - true ;-) - I don't know of any versions of sprintf. It's just Newlib. - Version 10.0.1, IIRC - we probably want a sprinf() for screen text formatting too - yup - one possibility - i saw a tiny sprintf for gameboy advance - Go get it. -* wavey looks - is to use a generic printf which call a function for a character - not fast - well that's how they all work - but you can directly display without have a buffer - more or less - so ? - so that is probably what we'll get - but - so when you use this function, just call this function with a callback ? - I doubt that anyway will printf() to the display - anyone - ah yeah, it is another thing for the LCD recorder - story - right ---- Zagor is now known as Zagor|lunch ---- Linus is now known as Linus|lunch - c u - bye Alan -<-- alkorr has quit (Read error: 110 (Connection timed out)) - http://www.frotz.net/gbadev/remote/printf.c - pretty tiny - yes ---- Zagor|lunch is now known as Zagor ---- Linus|lunch is now known as Linus - http://yugop.com/ver3/stuff/03/fla.html - cute - (and work safe) - cool! - http://www.oqo.com/ <= seen this? - bleh, flash - yeah - annoying site, cool box -<-- Linus (~linus@labb.contactor.se) has left #rockbox - do you know why uisimulator has a garbled window title? - no - what's the variable in emacs that says to only indent with spaces? - (setq-default indent-tabs-mode nil) - I think - ok - closing tunnel, brb ---> Linus (~linus@labb.contactor.se) has joined #rockbox - lcd_update in lcd-x11.c doesn't ever clear pixels, does it? - uh, no ;-) - i noticed :) - oops -* Zagor has been scratching his head a while over this :) - I'm not sure how to do that the best possible way though - I mean to avoid flickering - how about just redrawing the whole screen. performance is not really an issue on X - flickering only happens if you do it very frequently - or maybe have an "old" array which you compare against - well, we would need to fill the whole rect first, then draw all pixels - and then draw all new and clear all old - that's what I had in mind - so do it :) - can't do it right now - k - it'll have to wait a bit - The I2C is rocking like HELL! And fast too! -* Zagor wonders just how much hell is rocking - any sounds from the MAS yet? - Wait. There's a bunch of commands to be sent to it to configure it. -* Bagder caaaan't wait ;-) -* Linus wants to please Bagder -* Zagor can't wait for a working lcd_update... - so just clear the screen first - hmm, what does this "X11" mean? ;) -* Linus thinks Bagder is lazy -* Bagder reminds you about who wrote the uisim in the first place ;-) - so tell me, how do I clear the screen? - XDrawRect() or XFillRect() or something - ok - find a page about one of the other X* functions and click some links - that's how I've made it this far ;-) ---> alkorr (jbcoax@srs05v-2-184.n.club-internet.fr) has joined #rockbox - Hi alan! - The I2C is rocking like HELL! And fast too! - hi again - how do you do ? :) -* Zagor has a little surprise for you all... - I drive the data and clock lines low right before switching from output to input. That way I don't have to wait for the slow transition. - uh ? i mean how do you get it ? :) - okay -* Linus is waiting for Zagor - so you force discharge by this way - soon - soooooon... - Yup. Works like a charm. - hum some news from Dragan ? - uh, i haven't mailed him yet. i forgot... -* Bagder pokes Zagor with a large stick -* Linus hits him hard - alan: are you working on the fat code? - then i shouldn't be poking on it yet... :) -* Linus sees a major commit from Alan - a lot of things to add in fact - so don't rush - lots of c++ comments ;-) -* Bagder hides - hehe - sorry but there were here before you ;P - You'll be surprised how little code you need to screw up your hard drive... :-) - lol - to screew up ? you mean to destroy ? - Yup. - No, not destroy. Just screw up. - well my code never destroys or screws up ;P - Of course. Not _your_ code. :-) - but you're right. Just a lock command and you are bad under windows - hopefully i can unlock with your modified drive *relief* - driver - we need to fix something like that for the recorder too - ah yes USB 2.0 - just a precision about my fat.c, i think the main thing that will stir you is probably the ata callback mechanism -* Linus is still waiting for Zagors surprise -* alkorr too - paitence, children... :) - patience, even - alkorr: you mean except for the 1-byte arrays? ;) - to understand what is it : it is way to handle, compute, swap or format data during a read or write operation in a atomic way (we cannot have simultanous readings sectors) - yes - because BPB is a real mess : all the fields are unaligned - and using callback will create a too large function whereas I just need some fields in fact - normally i don't keep in memory any boot sectors (like MBR, BPB or FSINFO) - what's the history of the disk code we're cutting? - has it been tried and tested elsewhere? - or is it all new - yes in the obsolete fat.c i gave to Zagor - and the ones I lost during a harddisk crash - SH really dislikes misunligned accesses - I gotta go, see ya guys later -**** ENDING LOGGING AT Fri Apr 19 14:34:13 2002 - diff --git a/www/irc/rockbox-20020423.log b/www/irc/rockbox-20020423.log deleted file mode 100644 index 153c700e06..0000000000 --- a/www/irc/rockbox-20020423.log +++ /dev/null @@ -1,1012 +0,0 @@ -**** BEGIN LOGGING AT Tue Apr 23 07:54:50 2002 - ---> Bagder (~daniel@as3-3-2.ras.s.bonet.se) has joined #rockbox ---- Topic for #rockbox is Open Source Jukebox Firmware - http://bjorn.haxx.se/rockbox/ ---- Topic for #rockbox set by Zagor at Fri Apr 12 15:45:52 ->nickserv< identify nintendo --NickServ- Password accepted - you are now recognized ---- services. sets mode +e Bagder --MemoServ- You have no new memos ->chanserv< op #rockbox ---- ChanServ gives channel operator status to Bagder - man o man.. am i behind..... - heheh - hey - hows it going? - just fine - I finally got my usb2 working, then everything must be fine doesn't it? ;-) ---> Linus (~linus@labb.contactor.se) has joined #rockbox - morning - Morning! - Man, I just went to bed... :-) - ugh - :-) - Fells like it anyway - feels - Sleep is overrated - indeed, you do too little good work then ;-) - But I do no harm either. :-) - The threading kernel rocks! - you've ran it on target now? - Yup. Yesterday evening. - *neat* - It wasn't *that* hard. Half of the SH registers are scratch registers. - The PR was the tricky part. - I hate that gcc doesnt inline functions unless you optimize with -O. - right, there should be some way to force that - I tried a few preprocessor tricks but it messed up my stack frame. - The next thing is a timer tick to sleep() on. - yeps -* Linus goes to fetch a cup of coffee -* Linus says "aaaaaah" - I modded Zagors serial port yesterday. No contact. :-( - oh pain - I wonder how many Player users have tried the remote control. -* adiamas quotes "rest is for the weary and sleep is for the dead" - Good morning! - i ment to ask.. was there a decision reached about what type of filesystem we will be using? - bah.. gettin ready for bed - FAT32. - Or have I missed something? - have we implimented open() and stuff? - for file opens and closes.. etc - no - but we intend to - I mean, follow the standard file paradigms - That doesn't really depend on what filesystem we use. - Linus: do you know how to see what device the Archos appears as under Linux? I mean for /dev/sdaX... - is that just the scsi devices enumerated? - Not a good way. The storage driver outputs the string "sda1" (or whatever) in the kernel log. - right -* Bagder documents some of the USB madness - Yes they are enumerated. So the first storage device you plug in gets sda1, the next gets sdb1 and so on. - right, but ive never written anything that low level.. i mean for file IO... - Björn may have som info about that... - I mean the USB madness. - yes - The file I/O API will most likely look like POSIX -* Bagder found some rather good (small and clean) id3-tag code he'll dissect today - You mean version 2? - both v1 and v2 - Nice. It's a pity that ID3 V2 tags arent small and clean... - hehe - Some people should reaaly be shot - Why do I always type double "a" when I want double "l"??? - I guess it's a matter of brains size. - :-) - (and there was an extra "s" after "brain" ...) - we'll need a seek for the id3 tag stuff to work - Of course ---> Zagor2 (~bjst@labb.contactor.se) has joined #rockbox ---- Zagor2 is now known as Zagor - morning - morn - of course you're supposed to start the archos before you load the modules. ;-) - you know why? - yeah, that's the timing issue they mentioned. the recorder takes too long to initialize - that's probably also why you can't have it in the kernel, you're forced to use modules - yes - Zagor: I have a first id3 code approach - ah, nice! - Zagor: why does it work for you? - (the recorder) - because I've always done what you just discovered - I just never thought it was special - So you had it working out of sheer luck! - well, sort of yes. it's a habit I established since writing the isd200 driver, to always load usb-storage last - Grrr - Zagor: I've tried to summarize the Linux/USB/Archos stuff in a little HOWTO - I'd be glad to get some Player info added too - ok, good. - should I add it to the www module somewhere? - sure, call it usb.t - or usb-howto - in docs/ ? - no, in the www root - ok - docs is for data sheets - added, it is plain ascii for now - ok ---> wavey (~wavey@dlan1431.dircon.co.uk) has joined #rockbox - good goddamn morning to y'all -* Bagder waves - hi there -* wavey badgers - reading v1 and v2 tags mostly working now - even estimates song length in seconds - Rock'n'roll! - wavey.. any particular reason you have a dir named after yourself in the CVS? - Bagder: excellent! - ad: it's where I'll be developing stuff - hehe k :) - hehe tetris.. i love it. - do we have any generic data structure code yet? - i wanna toy with playlist impl ideas - no.. what do you need? - lists, stacks - hmmm and it's not c++ so stl is outta the question... - yus - i could hack you out a quick list class if you want... - we have a list class - heh - so could I - just not in the cvs - :) - it's about reuse :) - a "class"? - hehehe i know :) - not class, file :-) - nods -* adiamas has c++ terms on the brain. -* Zagor is polluted too - apparently glib has all that inside it -* wavey investigates -* Bagder all of a sudden realizes that now he can check the total playtime of his entire mp3 collectin using his new tool ;-) - hehe - Title: Forever Young - Artist: Alphaville - Album: Forever Young - Length: 225 seconds - Bitrate: 128 - Frequency: 44100 - Bagder: you have source up yet? - bad: you decoded the file according to the spec, or you stole the source from elsewhere? - I stole it - from Ample - GPLed - stole in the best possible way, of coiurse :) - nods - heh yeah - what about id3? - you said you ahve id2 and 1 down yes? - yes - id3v1 and id3v2 - nice little command line util i pulled off of sf the other day... - got ya.. - been hacking on that... - now, I'll make the estimated time to not use floats... - so before i continue playing.. is there any use to the little battery display i tosed up? - Daniel: how to remove all TABs in a file in emacs? - untabify - adiamas: i think it's useful, as soon as we get a UI going -adiamas adi|atWork adiamas: you should port it to use the proper lcd API though - nods - Bagder: Yeah right. Any better idea? - thats what i was talkin about... - in emacs? no idea.. vi its easy. - Linus: "Convert all tabs in region to multiple spaces, preserving columns." - "in region" Ah. - vi is never easy :) -* Zagor ducks - hehehe - bah.. - :%s// /g - that just replaces it, then you have to reindent your whole source - untabify does it right - glib looks reasonably complete. - reasonably slimmed, too? - need to check the way it allocates memory - we using malloc? - if I wanna add test code for the id3 stuff, should I create a new dir in test/? - not if we can avoid it - Bagder: yes. test/bagder or test/id3 - what i figure - d - ok, will use test/id3 - did we ever straighten logging out? - like what funcst were using? - logging? - for simulators etc - nod - debugf()? - I think you could use the same API as debug.h - glib is a MONSTER - The glib lists require malloc() - Well, most lists do... :-) - I suggest that we use my list functions for lists. Daniel and Björn know what I'm talking about. - I can commit them in a minute. - sure - ok, I admit: - we need a subdir :-) -* Bagder chuckles - for all standard code such as lists etc - those will quickly grow to many files - OK here we go. Here comes the "common" directory! :-) - Aaaaaah! - no! not "common" aaaaaaaaaaagh! -* Linus fears the "common" directory - i still (stubbornly) think it's a good idea to have the current code in a single dir, though - I hope it is fine to commit the id3.c source even though it still contains a few malloc? -* Linus wants to brain wash Zagor - sure - So what shall it be? A "common"? - would you rather call the lower level funcs that malloc references? -* adiamas doesn't understand the problem about malloc - i would rather avoid dynamic allocation alltogether, as far as possible - No. it's just allergy to dynamic memory. - adiamas: Say after me "memory leak" :-) - say after me: code properly -* Bagder committed his id3 code - a single c file - it's not just memory leak problems. it's memory use predictability - we have *VERY* tight memory requirements, so control is of the essence - memory use predictability? -* adiamas figured it was that.. - How much memory is used when -* Zagor is not always too fluent in english ;) -* Linus is waiting for a response about the "common" - do we have a bid for a better name? - nah.. i think that works... - cause im against "stuff_that_everyone_is_probably_going_to_use_kept_in_one_spot" - so am I. but I don't like the name "common" :-) - 'shared'? - we can always rename later - id rather common over shared -* Zagor grudgingly accepts 'common' - mumble mumble - ALOOS (A Load Of Old Shit)? - ALOUS (A Load Of Useful Shit) ? - okay.. battery.c in - use it whenever you want, or ignore it.. whatever - we have a few other widgets in Gary's code too - apos (A Pile Of Stuff) - poe - (pieces of excriment) - poetic :) -* adiamas winks - oh.. oh.. how about... - "stuff" - hehehe - haha - A winner -* adiamas bows deeply - and my mothe said i would never amount to anything... - s/mothe/mother - what other widgets are in garys code? - "Draw battery level indicator" ;-) - lol figures :) - progress bar - horizontal slider - vertical slider - perhaps a "widgets" file would make more sense... - "Draw function key labels at bottom of screen" - is gary's code in the cvs yet? - no -* Zagor has a revelation - "drivers" - :) - for all the current stuff - hmmm that don't seem right... - heck, I'm man enough to admit I'm wrong - sometimes I am, anyway ;) - Bagder if you want to either a: mail me or b: submit to the cvs, ill try and update to current lcd code - adiamas: you can find it on the web page - Zagor: I think it might be a hit - where? - http://bjorn.haxx.se/rockbox/gary/ - found a nice non-float random number generator - tiny too - that works. - with references to knuth throughout the code :) - would it make more sense to have a 'widgets' file that has this sorta stuff in it? - adiamas: don't put everything in the lcd.c, though - right - yes - k - maybe we should even have a 'ui' directory - wow - hmmm don't think we need that yet... - Zagor's in the mood today ;-) - hehe. it's either 0 or 1, you know ;) - we cold always create it later when the need suits.. - yes - I have sinned - ? - I added a "common" directory - you mean apart from toasing my jukebox? ;) - toasting - Prove it. :-) -* adiamas runs around screaming that the sky is falling - hehe - we'll have a mailreader.c before you know it... - :) - netscape syndrome - lol - "Every software evolves until it can read mail" - and it won't be mailreader.c, it'll be mail/Imap.c mail/pop.c mail/smtp.c - because i'm committing them now ;) - hehe, right - heh - well the hell with you guys... im commiting common/Solitare.[ch] outta spite. - :) - ...i already committed tetris.c. neener neener ;) - i know.. i played withit.. - Sorry. I'll have to move them to common/mail/pop.c etc. -* wavey chuckles - I'm off for a few hours, back later... - CU! - now a really cool tetris would be able to increase and decrease in size ;) -* wavey Bagders - later - adiamas: yeah, mine is a bit small :) - coolness is related to the ability to pulsate? - that's a new one - whats was the final word on src format? - 4 spaces on indent yes? - yes - and i_am_a_function, not IAmAFunction - right? - yes - and IAMAMACRO - right - or I_AM_A_MACRO is acceptable too - any word on comments? - glad to hear it :) - C style - namely, multiline? - there's // comments already in there - wavey: yeah, but their about to go extinct - they're -* adiamas will fix those as much as he can as he goes - ok cool -* adiamas wonders if the src formats should be added to the FAQ - yes - we have a CONTRIBUTING file describing it. that should be mentioned in the faq - and CONTRIB -* adiamas nods - ok guys, commit what you have. I'm about to move all drivers - OK Zagor. Define driver. - good point - here's my thought about which files go into "drivers": - pile.c - hammer.c - andretti.c - ata, button, fat, i2c, lcd, led, mas, serial -* adiamas cackles happily -* Linus falls asleep -* adiamas nods - seems sensible - Kick it! - CLEAR -* Linus ducks - heh - with cvs, as long as i do an update -dP, do i still ahve to do a checkout before i work on and submit code? - you should - to avoid complex conflicts - k. - how should i reference the CONTRIB in the FAQ? - just tell them to check out CONTRIB in the source? - yes, or bjorn.haxx.se/firmware/CONTRIBUTING - ok i'm done - that url doen'st work - ah, forgot "rockbox" - http://bjorn.haxx.se/rockbox/firmware/CONTRIBUTING - node - nod - okay.. all fixed - web page updated - my cvs update didn't create the drivers subdirectory within firmware. isn't it recursive? - you should use "update -dP" - ok, cheers - as it says on the web page :) ---- Linus is now known as Linus|lunch - doh - whats the address to send _to_ the mailing list?> - rockbox@cool.haxx.se ---- Zagor is now known as Zagor|lunch - okay.. last addition to FAQ for the night.. bed time now... - night - night ---- adiamas is now known as adi|sleep - oh... btw.. if my humor gets a bit much.. tell me... - i tend to wander a bit on the 'acceptable' scale - weird behaviour on my recorder - all sound ceased - a shutdown and restart with dc power didn't change that - a battery pull with no dc woke it up - piece of shit ---> alkorr (jbcoax@srs03v-6-237.n.club-internet.fr) has joined #rockbox - hiya alan - hi everybody - 'hi doctor nick!' -* wavey chuckles - simpson's reference - s/'// - :) -<-- alkorr has quit (Client Quit) - does id3 have upper size limits for strings? - for memory saving, it seems sensible to me to extract the values from a track we want to display at runtime using the id3 code, (with a fallback to the filename if id3 is empty ) rather than having the track entry in the playlist duplicate those values. - i know that makes almost no sense - so ignore it - until i can express myself clearly :) - i keep having a file that lists as 'read only' but the permissions are set otherwise... - ive had this before.. - how do i change it. - on unix? - yup - i've never had that - chmod 777 fails? - are you accessing the file from the cmdline or some tool? - and aren't you asleep? :) - cmdline - i kno i know... - and i have had it before.. - linux? - ext2? - learned it when a box i was working on was cracked... - yeah.. its not related to the chmod perms - and you are su? - yup... tried it that way to.. i know its not tht.. - you're saying that root is being told a file is read only? - that only happens when the fs is read only - yes... dude.. ive had this before... trust me.. - no.. its not.. - i know what im talking about here ;) - sounds fucked to me :( ---- Zagor|lunch is now known as Zagor ---- Linus|lunch is now known as Linus - by the way, i've started coding playlist.c to provide a simple list of tracks - it'll use linus' lists.c - and some randomising code i found - add, remove, get next, get previous, etc - sounds good - wavey: we're using newlib, which includes rand() - wavey: rand() is part of stdlib. - how large is newlib - i didn't expect to be using any libs - a lot smaller than glib :) - ok cool - Pretty large if you link it all. Stdio and stdlib takes about 30k. - (i was going to extract stuff from glib, not use it ;) - and you intend to use it all? - Yes. In the beginning. After a while we will find out what we need and what we don't, and replace newlibs functions with our own. - ok - sounds reasonable :) ---- wavey is now known as wav_lunch - latersss - Yeah, we want to develop the archos specific stuff first. -* Bagder returns - Welcome Bagder -* Bagder bows - lots of commits - yup - I'm writing a progress mail for the list. any specific points I should include? - The thread API - yes, run on target - that's included - ran even - the need for documentation of APIs :-) - id3 code -* Bagder is gonna cut off the malloc()s now - Bagder: It's actually double work to try to simulate the threading code. :-) - indeed - So obviously it is only run on target. - yes, but the point would be to tell that it has run - Of course. - as we already have mentioned the thread api before - I think the threading code it quite neat and even cool. - I like it. Very little extra, only the very stuff that needs to be there - yes, it's beautiful -* Bagder committs - hmm, how do we glue together newlib and our fat code? - anyone done it before? -* Bagder shakes his head -* Linus hides - if you build the id3 test program now, it is easily tested on large amounts of files - have you tried writing tags, or only reading them? - only reading - writing isn't that important, is it? - ok. good enough for now - no, not until much later ---- wav_lunch is now known as wavey - wavey: how are you designing the playlist code? - simple abstract list at the moment - i see a track_t struct - and the playlist is a list of these - or a list of meta info about each track perhaps - sounds like a lot of ram for 999 songs? - i only wanna hold the filename in the struct at the moment - ideally - i don't think we can hold any less than that in mem - alternative is the inode for each title - you can have a byte index for the start of the line in the playlist file - (there are no inodes) - ah :) - ok - so playlist is always a file based entity? - ack phone - yes, i think we will always use files for playlists - if we make one on-the-fly I would say we still want to save it before using it - ok no problem - the more ram we keep free the better - exactly - so we need to store the filename in question and the line number - makes the playlist code rather simple :) - we don't really need to store the filename either - course we do - in the file we do - playlist file - oh, of course - index the list file, looking for newlines. keep a list of the index of each new line. that is the play list in ram - we gonna persist all other normally memory resident information too? - such as? - user settings - vol - balance - etc - I want them persistent, yes - all in one file? - or using the pre-fat sector that the player uses - how much space is in there? - are we supporting ext2? :) - *g* - how about ext3? - :p - heh - journalling baby, do these devices good :p - each sector is 512 bytes, and i think there are 63 unused sectors - course with other filesystem support we still need to have a fat root - 32k - 512 bytes is plenty for these settings - be nice to have a good API abstracting that space for our storage - yes - this is getting quite sexy - ok - playlist is in-memory indexes into our playlist file. - if user abandons that playlist - by selecting a new playlist from disk - we copy the contents to our special playlist file? - and recalc the indexes - no - or - you know another thing that'd be kinda nice is to be able to make a playlist of playlists sorta deal - what do you mean "special playlist file"? - um - i understood that - PsycoXul: metalist. yeah, good idea. next version :) - we would be storing filenames for our playlist in a special file - to save ram - but we already have the filenames, in the playlist...? - the playlist on disk *is* the file names - and if the playlist is constructed on the fly? - interactively - then it must be stored - they must be saved on disk too - shouldn't be a problem - yes - but the user shouldn't have to name the file - so we have a special one - yes - ah - just like a tmp file - i guess - ok, so with pre-existing playlists, we store the filename and indexes in memory - for an on-the-fly list, we create a special file and do the same as befor - e - sounds fine - cool - ok, makes for trivial code. which is good :) - trivial is good - simplicity is golden - indeed :) - also makes the on-the-fly lists easy to persist - yup - we could have an option to "save" (rename) an on-the-fly list - zag: sure - yeah - later :) - and randomise simply changes the order of the indexes - yup - to do disk-wide random play, our playlist file idea gets a little more complex - or a little larger, at least :) - do you have a good randomize algorithm? - I want randomize-among-all - to randomise a bit array - but it takes some thinking - big array - my exp isn't that good with randomising, but we'll get something working -* Bagder nods - perhaps knuth has an archos and will be willing to help out :) - yeppers - hehe - anyone feel like writing lcd-charcell emulation for the simulator? - you said there are no inodes - :) - do we have aything similar that we can access files by? - wavey: we have clusters, almost the same thing - Yup. FAT entries - so we could do disk-wide random by examining these clusters by index? - Zagor: charcell LCD simulated could just use the recorder's lcd string output function, two lines 11 chars - the problem with those is that you have to look them up for each file, which is what takes so long in the current firmware - hang on - Bagder: of course. good idea - it would probably need a more complete charset simulation though - and some icons - will the fat32 code give us these clusters by index? - oh - you mean it's file->cluster relationship? - nor cluster->file? - yes - bugger - so it's not really useful for indexing - it might still be an option.. pre calc all file->cluster entries ready for later use - i.e. a user option - (go make a large cup of coffee option) - yeah, but what for? there's no gain - because later use of these indexes means instant random file access - for disk-wide random play - perhaps my ignorance of the fat layer is confusing me :/ - instant, as opposed to 200ms delay for looking up the file? - disk-wide - you can't have the file names then - yeah, but disk-wide we still need an index file - so why save clusters rather than filenames? - it would make a smaller file - but I agree - hmm, given a cluster id, can't we get the filename easily? - No - ok, scratch that idea then - worth a try - the alternative is to create the special playlist file with every filename on disk in it before we can do random play - The directories point out the start cluster of each file, but reverse lookup is not possible - wavey: we need the playlist file in any case. i vote for filenames - which again is a big hit, but only once, compared to the archo's firmware solution - zag: we don't seem to have a choice anyway :) - nope :) - ok cool - and it's consistent too - which simplifies things - precisely. an on-the-fly list is handle by the same code as manually created lists - so with something like 12-16 bytes in ram per mp3, we make can have a 4000 song playlist on 64K - start of new song in playlist pushes that song index to prefat storage? - mid song end pushes the time to prefat storage? - mid song end = user decision - are those sentences are mystifying as they read to me? :) - s/are/as ! - I understand your point - goddamnit I can't talk today - about pre-fat storage: - we should have a "queue" of such things that "wants" to be stored - both points to enable resume - zag: nice - then store it when/if the disk spins up for some other reason - hmm - that sounds like it might need a priority system - why? - stop button on a song - to allow resume - would need to persist immediately in case user powers off too - that could be a user option - yup - not so much a priority, but a wait or no wait option - yes - shall I write up some of this for the list? - be good to capture it while it's fresh - sure - please do - i'll advertise irc again too - so damn useful - i just did in my last mail :) - over and over again - ;-) - :) - how long until you envisage fat32 in place? - few weeks? - it depends - could happen next week, could take a couple - cool - my plan is to start with fat32 and no long-filename support - when that works we can test the MAS interface - then we add long filenames - sounds like a plan ---- ChanServ gives channel operator status to Zagor ---> edx (edx@pD950D24B.dip.t-dialin.net) has joined #rockbox - hi :) - hey - Welcome edx! - ah, edx! - the simulator is working for lcd.c - Cool! - neat - scanned my JBR and took it as the interface :) - hehe - hm i am not sure whether code for the JB (not recorder) will work - ill have to try that - http://bjorn.haxx.se/rockbox/devcon/show.cgi?img4083.jpg - good comparison pic - what is the resolution of teh JBS displays? - jbs? - jukebox studio - (normal jukebox) - ah, 11x2 - characters - we call it "player" - edx: if you just get the kets too, you could play tetris soon! ;-) - keys - can we agree to refer to individual mp3s as 'tracks' rather than 'songs' - sure - the current firmware refers to songs when loading spoken word tracks and it annoys me :) - hm how is the lcd controller accessed - completely different way i guess.. ? - (i mean from a higher level view...) - yes - they are two different APIs, at least now - http://bjorn.haxx.se/rockbox/devcon/ - btw - the id3 code uses ftell - just for getting the size of the file - ok - shouldn't be a problem - we didn't define any function to get the size, nor ftell ;-) - (reading the devcon notes) - our api definition is a little outdated, since we'll be using newlib anyway - ya - it contains all those functions - but we don't yet know how to map them to the fat code, do we? - can i send to your list from an account it doesn't recognise? - yes - cool - we love spam :) - heheh - Implementing those functions in newlib isn't that hard. - lots of fine closeups on Archoses! - ok - ah, forgot one picture: The Virgins! :-) - :-) - Pile'em'up! - an almost offensive number of archoses... - the devcon page is cool (jsut had a look at it :D) - It was cool! - we should have more devcons! - The event of the year! ;-) - i would have liked to join you :) - too far - hey... could you give all cvs-registered ppl ops for this channel :D ---- Bagder gives channel operator status to edx - :-) - thx - hmm, i think we're all cvs registered actually :) - LOL - op everybody *lol* ---> ironi (xircon@m213-101-132-20.swipnet.se) has joined #rockbox - ello - i read the progress report, fascinating =) - wavey, Linus - alooh! - getting crowded! - Zagor, hi - Zagor i am curious where oyu got the nick - Yoooo! - i know about a italian comic strip called zagor - oh, it's an old one - ironi hi - I made it up for a D&D character some time around ~83 - ok so you just made it up? cool. - he was a herb collecting monk, if i recall correctly :) - heh - i am really looking forward to the win32 simulator - yeah, I made it up. didn't know about the comic strip until mid-90s - oh, so you do know about it. - =) - yes, I do now :) - i dont think it really exists in sweden, does it? - ironi: say boo to edx, he has made it work ;-) - never seen it at least - edx, good job - ironi: want an alpha version? (im coding it) - Bagder, i wanna try it , i wnna try i - want - edx, how big is it? - edx, cause im on gprs right now - hmmm lets see... i can send you a release compile of the simulator (you cant test your own code then) - it is 44 kb - oh ok i tohught we were talking > 1 mb - send it - good mail, wavey - not graphic, then? - Indeed. Well done! - cool ta -* wavey goes for coffee - it is graphic - it only supports graphics right now actually (nothing else [like keystrokes - ok well hand it over - what do you code it in? - MSVC++ (7) - but it is straight c code ---> elinenbe (~chatzilla@bgp01080511bgs.wanarb01.mi.comcast.net) has joined #rockbox - so you can compile it on any windows compiler - hi elinenbe - do you get the dcc request? - Hey there. I have some great ideas for browsing/playlist implementation... - edx, i see. i do know some c++ - DOes anyone here have a riocar/empeg player? - edx, not working? - elinenbe: nope :) -* Bagder has none - give me your email adress.. ill mail it then - edx, cvitan@zworg.com - ehm, what wa si going to say... - well, the way it works is based on ID3 tags, but that is not the way this player is designed, so we will just use the folders instead. - what you do is start a playlist or just play songs. - yeah; well my linux-on-jukebox is not working well - i guess someone else could make it owrk in 5 minutes, but.. - if you want i can attatch source as well (only a few kb too) - and then if you browse to a new sond and you hold down play for 2 seconds, it comes up with an option. - edx, do that - elinenbe: option for what? - edx, i am getting interested in installing my vc++ - 1)insert after current song (does what is says) 2)append (this will cue the song to be played after whatever else is queued) - got that somewhere - and if you just want to play the sond you just hit play (no hold down necessary) - hehe - this works VERY well.... - elinenbe: sounds like a good interface - elinenbe: sounds clever and convinient, yes - ok.. sent it - they have a really sweet interface for only a few buttons... - ah.. Zagor: what dir (cvs) should i put the simulator (w32) in? - edx: uisimulator/win32 - we could possibly move the x11 stuff into a separate dir too - right now (on my computer) i have it in uisimulator/uisw32 but doesnt matter anyways (just for the relative paths... they all go to ../../firmware) - Bagder: at your convenience - ok, I'll save that work for later ;-) - edx: win32 is a better name imho - it is. - i chose the other name because i had to create msvc project file (and win32 is a stupid project name IMO) - what headphones do you guys use with your player/recorder? - I have found the koss portapro to work really nice with my player - ironi: (standard headphones) - some Sony plugs - I use the ones that come with it... I have no problem, and they are nice because I can put them into my bag without worries (fold up) - edx, shouldn't it be IMHO - =) - ironi: I use the Sony EX70 earplugs. best I've ever heard. - heh - portapro are also fold - Zagor, ex70...don't know about them... - irony: why? - you guys should try the EX70s. you haven't heard what the Archos can to until you've tried them - i don't like plugs very much myself - edx, just joking - ok - LOL - Zagor, how much are they - yea how much - (and where do i get 'em) - ironi: don't remember really. $70 or some such. - http://www.etronics.com/product.asp?stk_code=sonymdrex70lp - $35 USD - Zagor, aeh? oh - alot for plugs - I have a pair of Sony VDR-700 for $250 and the EX70 compares very favorably... - LOOOOL @ $250 - what can I say, I like good stuff... - i wonder how they compare to portapro, which are considered to be the best portable headphones in the >$70 class (>$100 in europe) - for like 10 years now - another thing: how long (in msecs) does a lcd_update take an a JB? - ironi: In my opinion the Portapros are overrated. Narrow range not much oomph. - because i have to simulate slowness as well :) - but that's just my opinion :) - Germany: (Sony headphones): 38,95 Euros - LOOOL "avaibility: 2 to 6 weeks" argh! - edx: I think Gary spoke about 20 frames per sec or somehing like that - ok, so I remembered wrong :) - lcd_update() I mean - ah ok.. that makes... hmm 50msecs - Zagor, well I mean for a device like archos they deliver the base and solid clarity - oh this s a recorder simulator - I was just wondering -- how much is Archos going to pay you guys once the popularity of the jukebox explodes... every open source / Linux nut will go nutty ofr an open source mp3 player (just wait until the slashdot crowd finds out about this...) - hm it has the design of a recorder - but it will work for a JBP as well - elinenbe: I wouldn't bet them even acknowledging our existence - hehe -* Zagor has written a "slashdot protection" script for the website :) - Zagor? - what is slashdot protection lol - index.cgi counts hits. >10 hits in 10 seconds triggers a redirect to a mirror at sourceforge.net - ahhh - ok.. - what does the word slashdot mean than - like spamming? - are you serious about that? - I have no idea if it's enough, but it's an attempt... - elinenbe: yup - slashdot is a website: slashdot.org - slashdot is a site all about geek news... - aha - when a story is posted there nearly everyone reads up on it... - ahhhhhh - ok now i got it all :) - sorry for being that slow ;) - therefore if your site is where the story came from, then you have 1000)+ hits very fast... - boom! crash! lock! <-- there goes your server - yea.. hehe - your site gets "slashdotted" - /. - are they gonna post about rockbox there? lol - well, gotta go, have a meeting with the student television - cu - later, you guys. - bye - maybe i should do my masters thesis with the rockbox as an example - and interview you ppl - ironi: sure, i'm game - do a thesis with something about open source - it's a n interesting subject - =) - well worth to think aobut - i will talk to a ph.d. that does research on oss organisation forms, etc. -<-- ironi has quit ("later ") - edx: i expect we will be on slashdot some day. I just hope it will be after we have something to "show" rather than in the current state - first impression, and all that - so don't tell anyone :) - ... 91 subscribers today - Gotta go! l8r! - bye Linus -<-- Linus (~linus@labb.contactor.se) has left #rockbox - zag: ex70 are the plug type yeah? - i have them - they're great - wavey: they are then new type that you literally insert into the ear canal - if bass-heavy - yes - i have to turn the bass down on the archos - too boomy otherwise - pull down the bass on the recorder, and they give you exceptional range - LOL - yes, me too - yus - they're great - and close out the rest of the world very nicely :) - yep - I bought the Etymotic ER-4P - $350 plugin headphones - yow - they sucked, big time! - i saw refs to them when researching plugs - yeah, they are considered the top of the top of the top - ppl loved 'em or hated 'em - said you need to learn to 'relisten' to your music - to compensate for no bass, or something? - LOOOOL I cant get you are spending 350 bucks on headphones - yeah, that's just an euphemism for "I can't admit I spent my money on crap" - I sent them back and got a refund - edx: the argument is why spend big bux on a decent sound system, then peanuts on the delivery mechanism - they really have *NO* bass. it's pathetic - How do you lcd_init for char displays with currend lcd.c? - i get the feeling we cant get around writing two seperate OSs... I mean I want real fancy graphics on my recorder (not the f*** char display graphics) :P - we will probably write more or less two separate UI threads, yes - +write - one for each LCD - the user interfaces will be different code, yes - so how do i init char displays? - lcd_init (); - wont work - (LCD_BITMAP_blah not defined) - hey! - load-file alert - bad paths - looks like lcd_init is missing - for charcells - Bagder: ? - lol the lcd.h does not define lcd_init for char cell lcds (yet?) - Zagor: the emacs magic in the bottom of the files... - ah ok - Zagor: uses wrong file name - ah, yes - ill wait until it is released then - if i have enoguh time ill wirte a JBP GUI for the player then :) - i'll take a look at it - do our fat32 fs entries have the archive flag? - I wouldn't count on it - i'm responding too :) - heh cool - besides, scanning for archive bits isn't any faster than scanning for files - *and* you can build the huge play list with an external tool while USB connected - well, the scanning is unavoidable, the comparison of a bit flag is certainly easier than a filename comparison - but more uncertain - i've sent my mail, read it :) - will do - be back later... cu - bye ---- edx is now known as edx|bbl - i was also wondering if we should pre-fetch the previous and next playlist entry details to ensure smoother operation - probably - wavey: yes. maybe even several entries. sometimes you want to skip a few tracks - a compile-time option, ideally - yus - open source. the only way forward :) - yus ;) - i'm going home. see you soon, guys :) - byee -<-- Zagor (~bjst@labb.contactor.se) has left #rockbox - I'll need to dash too, I might pop by a little later or tomorrow. See ya -**** ENDING LOGGING AT Tue Apr 23 17:30:11 2002 diff --git a/www/irc/rockbox-20020426.log b/www/irc/rockbox-20020426.log deleted file mode 100644 index 8a74aaa859..0000000000 --- a/www/irc/rockbox-20020426.log +++ /dev/null @@ -1,2238 +0,0 @@ -**** BEGIN LOGGING AT Fri Apr 26 05:32:08 2002 - ---> adiamas (~adiamas@as5300-9.216-194-23-95.nyc.ny.metconnect.net) has joined #rockbox ---- Topic for #rockbox is Open Source Jukebox Firmware - http://bjorn.haxx.se/rockbox/ ---- Topic for #rockbox set by Zagor at Fri Apr 12 09:45:52 -* adiamas heads off to bed now that logging works - good night ---- You are now known as adi|asleep -* Bagder heads off for the lunch meeting ---- Linus is now known as Linus|lunch - is there any way to turn logging off on certain channels? - in xchat - grrr.. what did you guys break? - tr: too many arguments - Try `tr --help' for more information. - cvs server: Pre-commit check failed - cvs [server aborted]: correct above errors first! - cvs commit: saving log message in /tmp/cvsoX6Lpv -<-- wavey has quit (Read error: 104 (Connection reset by peer)) ---> calpefrosch (~calpefros@62.52.174.30) has joined #rockbox ---> wavey (~wavey@dlan1431.dircon.co.uk) has joined #rockbox - too busy at work :( - wanna code more for the rockster box :) - me too - i have code to manage settings and an outline of the playlist func - but I just started to get used to C - no better way to learn, cal :) - hope so - what do you do at work ß - ? -<-- calpefr|ipaq has quit ("Smartsoft PocketCHAT for PocketPCs - Http://www.sspocketchat.com") - i'm a java enterprise consultant - he, cool. I want to make the Java Certified Prorammer this year. - cool. java's a lovely language - bit c is sexy :) - s/bit/but - hmm, let's try to put JINI on the Jukebox ;-) - I never did C before, so it's difficult for me to understand the code - or JME - and now to something completely different... - is the code in the cvs ? - my code? - not yet - can you send it to me ? - it'll go in today, hopefully. not much point seeing it now unless you're desperate? - ok - what do you do at work? - java too? - yes. I make PL/SQL with Oracle8i and some Java-Tools for our product that is written in java - cool. what company? - look at www.empolis.com - oh, you make rubics cubes? :) -* wavey chuckles - no :-( - you're german then? - i'm listening to a german band on my archos as we speak :) - rammstein - i don't understand any of the words, but it's fantastic music anyhow :) - yes, and the words are not important, you can believe me - you're a fan? - which archos do you have ? - recorder - not a fan, but I can listen to some songs. I have to recorder, too. And the firmware is running on it ? ( a bit ) - i haven't put the code on the recorder yet - i don't trust it :) - yeah, because of the hd-lock - yus :) ---- Linus|lunch is now known as Linus - Linus: did you try the firmware on a recorder ? - I haven't dared to... :-) - Büch dich! - (about the only Rammstein song I know) - I think it's "Bück dich" - I suppose. Ich kann nicht deutsch sprechen. - oh, that was very good. - I just read the lyrics, and it makes not much sense - the song - adi|asleep: you still awake? - is he working at night, or living on the other side of the sea - s/sea/world - he's american - ah ---> alkorr (jbcoax@srs07v-8-205.n.club-internet.fr) has joined #rockbox -* Bagder yawns - is the recorder display really 64 height, not 80 lines ? - what makes you think it is 80? - the simulator-windows is not full filled - window - the controller can only work with 65 pixels height - hmmm, then the scale is not correct - that's possible - I'm working on that problem, tnx ---- ChanServ gives channel operator status to Zagor ---- Zagor gives channel operator status to Bagder ---- Zagor gives channel operator status to Linus -* Zagor is bored :) - is the simulator's job to simulate the ui alone, or can it pretend to be the entire device, enabling us to compile our code against it and test it without putting the mod on the device itself? - my desire is to get display, keys and filesystem simulation to work, primarily - that's what we need to develop the UI - but those 3 parts are the entire device, save the music output.. - which is good :) - yup :) - what I mean is that the simulator only has to simulate the highest-level APIs - yes - agreed - what are you working on right now? - doom.mod? ;) - fat - hehe, no i'm saving that for the weekend - hehe - is the fat hard to test? - not so hard, actually - you testing it on linux or the device? - i'm writing a simulated ATA layer - on linux - aha. ok - can the makefile 'clean' target deal with subdirectories in the sameway that the SRC define is done? - yes, but it doesn't right now - never seen: - SRC := $(wildcard drivers/*.c - before - its a gnu extension - gmake - ok s'cool :) - very useful - indeed :) - there are others - there are indeed lots of others - indeed there are indeed lots of others indeed - just do under cygwin : "info -f /usr/info/make" - and you will find a lot of things -* wavey installs info - ;) - if you are not familiar with "info" : just place your cursor on a "*" to jump at the matching page - i'm an emacs user :) - to go back, press "u" (up) - but thanks :) - okay :) - see you (must eat now) -* wavey tries to work out which package info is in within cygwin -* wavey remembers emacs -* wavey slaps his forehead - M-x info - :-) ---- Linus is now known as Linus|meeting - does anybody know the simulator-code ? - for win32 ? - nope - :-( , so I wait for edx - he has duplicated the lcd code. i'll smack him for that :) - hehe - I extract all words from all my mp3 song titles now - ah, how many? - 3009 files - guess the most common words! ;-) - "The" - "Mix" - umm, in your collection? - "hate" ;) - nah - bwahaha - Of of You I mix Love In A To You Remix to Me in remix My - I should lowercase them - yes -<-- alkorr has quit (Read error: 110 (Connection timed out)) - the: 259 times - funny enough, on 259 hours of music - one "the" per hour ;-) - "distention" 4 times - hehe - how many different words? - how many >once - 3106 - good q - so it's one unique word per song? seems a bit high - Number of words unsed more than once: 1027 - is that with lc ? - lowercase - yes - I'll have a look in the list... - ah, your filenames include artist+album, right? - this is only id3 tags - so only song name? - supposedly - interesting - "technophobybitstreamdreammix": 1 time - :-) - I thought the "unique words/song" would be much lower - it seems correct, juding from the look of the list - now, running this list with wavey's script, I wonder how large percentage we'll cover - Total Length: 932753 seconds: 259:05:53 - Different artists: 302 - Number of files: 3009 - Number of files without id3 title: 183 - cool - I must go now - ok - bye -<-- calpefrosch (~calpefros@62.52.174.30) has left #rockbox - i'll check my perl script into the tools section :) -* Bagder considers running a spell check on his id3 titles ;-) ---> edx|school (edx@pD4B9E95C.dip.t-dialin.net) has joined #rockbox ---- edx|school is now known as edx - hi edx - hi ---- edx is now known as edx_ ---- edx_ is now known as edx ---- ChanServ gives channel operator status to edx - edx: you shouldn't copy the lcd code into your win32 lcd.c - why? - shall i link both files with it? - yes, like the X11 simulator does - compile the drivers/lcd with the SIMULATOR flag set - ok - then in win32/lcd.c just include the code that is win32 specific - got it. - you should probably rename it lcd-win32.c to avoid collision - ill do that later - *away* - ok ---- edx is now known as edx|away ---> elinenbe (trilluser@bgp01029830bgs.sanarb01.mi.comcast.net) has joined #rockbox - Hello. - hi - How is the status coming? - coming along nicely. did you see the new status matrix on the web page? - yeah -- that is nice. - i'm working on the fat code right now ---> alkorr (alkorr@srs07v-2-177.n.club-internet.fr) has joined #rockbox - Fat32? I thought the fat16 code was finished? - I have a question about the File System code... - How does this work? The files system is implememnted in the firmware? But what does the USB chip detect? - ? - What I mean is could you have an open interface to implement more file systems on the drive? - for the moment no - what are you speaking about ? - For isntace could a Mac user format it HFS+ and then the player could use it like that? - about the filesystem or the chipset USB ? - nope - if you are speaking about arch*s firmware, nope ---> jb1081 (~jb1081@lime.ircam.fr) has joined #rockbox - the chipset USB only services generic scsi transfers between the computer and the harddisk - i think he's asking about the possibility of using other filesystems with the device with the opensource firmware in the future - or ata transfers if you like - elinenbe: i think the only thing is you'd have to have a small fat32 partition at the beginning for the ROM firmware to load the new firmware from the drive - just a sec - if you plan to read mp3 files with your jukebox on a non-fat32 partition, it is impossible - alkorr: impossible? - alkorr: with why couldn't the firmware support other filesystems? - but if you want to create a HFS+ on the harddisk knowing that your jukebox could not read it, yes you can - but at your own risk ---- Linus|meeting is now known as Linus - if you are speaking about rockbox which is in fact a software, not a firmware - there still a possibility to handle any kind of filesystem - 's - but it is not our priority - I see. - heh - You can format it right now HFS+ and it will work fine as a portable hard drive for the Mac, but it will not work as a player. - exactly - unless some courageous people code a HFS+ filesystem for rockbox (when of course it would have features enough to compete against the firmware) - for the moment it is too earlier :) - can the USB-ATA access really handle other fses? - Mine is formatted as a QNX 4.x partition - heh - the purpose of that chipset is not to handle filesystem - bagd: its in the manual and everything that you can format it different things.. just without mp3 player functionality - Bagder: i've run ext2 on my archos - ok, I get it - that is not controlled in the archos end - but to give to the computer the access on the harddisk - that's all - but still, the firmware reads the software from a fat32 filesystem - yeah - so that would at least be required - ah.... I see - but that way there is nothing to have with the chipset USB - right - and yes we still need a first FAT32 partition -<-- elinenbe has quit ("Leaving") - just to download our software - yep - unless you have a flash instead a rom and you can change the firmware in the flash - of - still very dangerous ;) - I'm curious. What are we talking about? - someone was asking if other filesystems can be read - we could replace the SH7034 with a PROM version and have our software PROMed! ;-) -* Bagder ducks - no i'm speaking about a software way to overwrite the flash - without hardware mods - isn't it a masked ROM version? - i'm speaking about the external rom - not the internal rom -* Bagder is a bit out of his leage here - Bagder: the firmware is located in an external (flash) ROM. - so what's in the internal rom? - I guess the code that sets up the oscillator stuff and some chip selects and stuff, to be able to execute from the flash. - the internal rom would read the external rom and unscramble it - if you used my digrom, the second file it produces comes from external rom and it is unreadable because it is indeed scrambled - okay i explain - my digrom creates two files - the first is smaller and contains the internal rom - the second is larger and contains the external rom - the first is readable and has a vector table at the begining of the file -<-- Bagder has quit ("http://daniel.haxx.se") - c u -<-- alkorr has quit () -<-- Linus (~linus@labb.contactor.se) has left #rockbox ---> Linus (~linus@labb.contactor.se) has joined #rockbox -<-- jb1081 has quit ("[x]chat") - how close is the simulator to faking the device's filesystem? has that work started at all? - I'm pretty sure that the simulator only simulates the GUI. - today, maybe :) - we want to simulate the fs, the buttons and the lcd - so that our runtime code can be tested on a pc - yep - feel free to write it :) - i'll do so, once the playlist is complete - cos i'll need it to test the playlist :) - actually, it's not much to write - at least not on unix - that's the hope - or windows - since we want to use POSIX api - windows might need some stub code - yus - i have no idea why i'm specialising this dev in windows.. - i -hate- windows - Actually, I think Windows has open(), close() and seek too. - love, hate. there's a difference? - it certainly does with cygwin installed :) - Linus: opendir and readdir too? - Getting philosophical here, eh? - heh - I guess so. Lemme check. - i've never used opendir. why not just use FILE *? - that's a silly q - but i mean - what operations does opendir give you - opendir is for reading the directory entries, not a file - it doesn't seem like Win32 has opendir() :-( - i thought not - and that's not available from a file handle? - hmm - a file handle lets you access a single file - it's been years since i did any fs operations in C - opendir returns a dir handle - ok tnx - then you do readdir(handle), which returns which files are available in the dir - i find it odd that i've never had to do that in C - java a million times.. - weird - I haven't done that many times i C either. - see you later guys - ok, bye - bye ---> alkorr (alkorr@srs06m-8-44.n.club-internet.fr) has joined #rockbox -<-- alkorr has quit (Client Quit) ---> Bagder (~daniel@as3-3-2.ras.s.bonet.se) has joined #rockbox - boo - hey ho - is everything done now? ;-) - Hacking FAT32 in 300mph - nicers - anything I can do to help on that? - No. You are lame. :-) - heheh - Go awayt. - you finally found out - darned -* Bagder hides in a corner - *slap* - if ( bpb->bpb_fatsz16 ) { - printf("This is not FAT32. Go away!\n"); - return -1; - } - this is all so far - :*) - :-) - ;-) - Gotta go away! :-) CU!!! - quit -<-- Linus (~linus@labb.contactor.se) has left #rockbox -<-- wavey has quit (Read error: 110 (Connection timed out)) -<-- Zagor (~bjst@labb.contactor.se) has left #rockbox ---> calpefrosch (calpefrosc@p5082C7D7.dip0.t-ipconnect.de) has joined #rockbox - hi again - rehi - edx is away for long? Did he said something ? - I don't know, I just recently got here myself and he hasn't said anything the last ~30 mins - tnx ---> Zagor (~bjst@as9-5-6.k.s.bonet.se) has joined #rockbox - welcome home ;-) - hehe, thanks -* Zagor just realized ata-sim.c can actually work on real devices - ln -s /dev/hda1 disk.img - *voila* - and does it work? - I think I want to comment out ata_write_sectors() first, though :) - haven't tried yet. it should - me needs food... - you could dd the device to a file and then try - I've already done that from a floppy - ok - worked fine (although the fat code isn't done yet) -* Bagder looks around for food too - so what worked? - the dd? - we could list a dir - neat - or part of, rather - fat32's root dir isn't consecutive - so we only got the first sector yet - its a beginning -<-- mid has quit (Remote closed the connection) - it's a relief only having to support fat32 and not -16 or (horror) -12 - fat12 is a mess - the page at linux-usb.org is updated now, btw - neato -<-- calpefrosch has quit () -* Zagor got a note from the post office today - I think it's the donated Archos ---> ironi (xircon@m213-101-132-36.swipnet.se) has joined #rockbox - hello - hi ironi - hi Bagder - nice with the double-space font - that's a fun trick indeed - yeah - i wonder what it could be used for - the "Rockbox" startup text! ;-) - thats the only thing i could come to think of - i would love to contribute to this project. too bad i dont know anything to be able to help - many people have requested bigger fonts for use in the car - Zagor, true, true - Zagor/Bagder: off topic question: have you ever experienced that your bostream modem only has one lamp on? - =) - not yet :) - i've only had it about two weeks - nope - oh ok - i got mine in january - I've had mine since... september - last year - used it for 4 months, and then i moved out but have been paying all the time until now - and finally i got my own place again, and they connected it, but it wont work - I have a friend who's bostream modem just stopped working one day - didn't sync anymore - took him weeks to convince the service guys to get there, check it and then it took some more weeks to replace it - oh. really? - might be same with mine, who knows - they's *not* service minded - "When you release the spec, six crazy Russians you never heard of will write an insanely fast encoder that implements it." - they're - (discussion about Vorbis not having proper specs) - Ogg talk? - yeha - saw that one too - i just enjoyed the "six crazy russians" - hehe kinda funny - hehe - hehe, do you guys know what TWAIN stands for? - no idea - Toolkit Without An Interesting Name ! - I love it! - technology - ok - i tohught it was tehcnology and not toolkit - thought :) - i was away for a second - i actually knew that one :) - hehe - http://base-linux.com/webcam.jpg - it's a great name, nonetheless - thats a crazy nic to have for private use - Zagor, well yeah i guess a deeper meaning could be extracted - twain -> mark twain -> riverboats -> carrier -> supporter -> driver -> twain - ehm.....nah. - =) - kinda far-fetched - very =) - http://www.scannerplace.com.au/twain.htm - http://dmoz.org/Computers/Hardware/Standards/TWAIN/desc.html - no deeper meaning necessary - hum, i'm reading the boot sector wrong... - i want to develop something - like anything - =) - what are your skills? - i think i told you - im more of a web stuff guy - in addition i have very basic knowledge of c++ and java - ok, sorry I have a pretty bad memory... - you're very welcome to think up a prettier look for the web page - thats what too much drugs do to you =) - hehe - uh, brain damage. how do I round up a division without +0.5 ? - int (division) + 1? - LOL - (4/2)+1 != 2 - ohh... - too sad :/ - hehe - then i dont know actually... - number/divisor + (number%divisor!=0) - LOL - hehe. creative, i'll give you that :) - lol - is there a more efficient way? (certainly..) - yes there is, it's just fallen off my head at the moment... - % is not a cheap operation - well - you could do assembler and then % and / is one operation and it doesnt cost anything :) - someone once said: "Premature optimization is the root of all evil" :) - i think i once even new the name of this someone - but in this case it is effective. as long as you dont know any other way :) - Donald Knuth? - yup - hehe - Zagor: what exact problem/math are you trying to solve with this? ---- edx|away is now known as edx - nothing special, i'm just bugged by having forgot how - Zagor, is the webpage html - lol - ehm i mean, is it static html only - ironi: yes ---- edx is now known as edx|test ---- edx|test is now known as edx - ironi: 95% - the mail archive is a cgi, for instance. and index.cgi is a load balancer - but the rest is static - built using a "make" template system - that's why you only see .t files in cvs - the webpage is in cvs too, so go there and look - nick edx|testagain - Zagor, okay... - ./nick edx|testagain ---- edx is now known as edx|testagain - LOL ---- edx|testagain is now known as edx - Zagor, a make template system...well i have no clue how that works :/ - Zagor, what's the point of that? - the point is that all headers are in head.t instead of copied in every .html file - so I just write the page-relevant data in the .t files and then run "make", which assembles head.t, page.t and foot.t into page.html - that makes it very simple to change things - ehm - don't worry about that, just get us a better look :) - ever heard of SSI - SSI is the devil's work - why? - why do it dynamically when the data is static - dynamic pages are for dynamic data, not for lazy web authors :) - well you do have a point - at least when the page is done - but to run make while oyu develop is a bit time-consuming - not really. it takes about 0.3 seconds - it's mapped to Alt-C in emacs - heh ok - well i use include in php - it is pretty common to do it that way, as far as i know - SSI also has problems with parameters - how do you mean - never mind. i like static pages and i like this system :) - i do some dynamic includes - and so on - just give me better colors :) -* Zagor is on his knees - but ok - Zagor, is there php support btw - nope - Zagor, ok =) - dynamic pages are 99% of the reason most web sites don't handle high traffic - Zagor, hey do you like the show on tv2? - what is it? - its annika lantz - ah - she is hilarious - =) - ok well lemme see what I can do about the colors - yeah, she's fun. I don't watch much tv anymore, though - ok, good - heh ok - btw it doen't have to support lynx or somethingh like that right -* Bagder accidentally mentions that he doesn't like that blue bgcolor ;-) - Bagder, i'm on it - too bad the jukebox doesn't have nice colors - ironi: not really, but I'm not fond of too complex designs either - Keep It Simple - Zagor, i like simplicity - KISS - good - i kinda like the logo - see if i can do something around that concept - ok, good ---- edx is now known as edx|finaltest - the colors of the activity table could use a looking-over too... :) ---- edx|finaltest removes channel operator status from edx|finaltest ---- edx|finaltest is now known as edx - edx ---- ChanServ gives channel operator status to edx - haha *auto op script for edx on rockbox* lol - amazing - really. - Zagor, hehe sure - i think the logo should have a intropage - =) - maybe not. - haha - welcome to 1998 :) - well a lot of pages have that in some kind of introduction phase - to create a image - it sucks - we're a bare-bones to-the-metal project - and I know users all over think so too - our web page should reflect that - but that doesn't mean it have to be this ugly :) - Zagor, u got a point - i have a thought - can you get the layered image of the logo? - i.e. do you have one - I can get it - I don't have it here - ok - i like it just the way it is, im just interested in changing the yellow - a bit - this is what i thought - ok - the jukebox has blue, gray and yellow - the 6000 is in some orange color - it fits very nice on the silver - a little too strong for a background color, don't you think? - well the purple-ish below the display too, but i'd like to disregard from that - not for the logo - well maybe, but giving it a shot would be cool - also, we shouldn't borrow design elements from the archos - gray is nice as bgcolor - i'll see if I can get it layered so you can play with it - well using it as inspiration couldnt hurt - no - *yawn* - ironi: photoshop image coming soon -<-- Bagder has quit ("http://daniel.haxx.se") - Zagor, i was bored so i played way out - :) - heh - ehm - 4 mb - im on gprs - oh - ok :) - will take forever - that the only one?` - can u perhaps pack it - i'll see what I can do - that one's ~3500x1000 too, which may be a bit more than you need :) - heh - i'd say so, yes - hmm, which file formats have layers? gimp can't save in psd format - i use layered .png images - in fireworks - so try saving it as such - "PNG can't handle layers" it says :( ---- edx is now known as edx|away ---- edx|away is now known as edx|sleeping - cya guys - good night - oh ok - well the fireworks is using some special png - seems like it - i guess you can't read XCF files? (gimp's format) - i dont know - i guess not - probably not - well - ill try to do something tomorrow or so - nlinks.org/dev/test.gif <-- just something i played around with, for fun - .jpg - http://nlinks.org/dev/test.jpg - hey, cool! - you're good! - thanks :) - well, I'm going to relax in front of the tv now...talk to you tomorrow... - yeah, bye - i think we can use the colors....well, talk to u later -<-- ironi has quit ("zz ") - wow.. that is cool... - sure is -* adi|asleep thinks we just found our web guy ;) ---- You are now known as adi|awake ---- You are now known as adiamas ---> Moufle (~moof@195.101.176.125) has joined #rockbox - hi - hi - I just bought a recorder 20g, and I run it on linux - it's charging right now - it looks exciting - :) - Is rockbox somewhat usable, or is it alpha right now? - it's pre-alpha :) - we're still writing parts of the code - i'm working on the fat32 code right now - hmm ok :) - you've got previous experience in programming that kind of stuff? - yes, i do embedded programming for a living - I've got a very good general computer culture, but I don't speak C fluently ;) - ok - In fact, it's just a matter of changing bits on the chips and doing simple logic operation....? - I know it's hard - well, all programming is "just a matter of changing bits" :-) - but you look well documented - we have most of the documentation we need - I'm gonna read your chat logs on the website - ok :) - But this project excites me a lot - I hope i'll ba able to help you later - you're welcome! - BTW, what's needed to compile the firware, a special gcc (for the archos CPU?) - yes. the sh-gcc. there's a page on the web site describing how to build it - there's rpms available too - Ok, I'm going to look at it and build it - thanks a lot, good coding :) - hehe, thanks -<-- edx|sleeping has quit (Read error: 110 (Connection timed out)) -<-- Zagor has quit (devlin.openprojects.net irc.openprojects.net) -<-- Moufle has quit (devlin.openprojects.net irc.openprojects.net) -<-- PsycoXul has quit (devlin.openprojects.net irc.openprojects.net) ---> Moufle (~moof@195.101.176.125) has joined #rockbox ---> Zagor (~bjst@as9-5-6.k.s.bonet.se) has joined #rockbox ---> PsycoXul (psyco@adsl-63-205-41-159.dsl.lsan03.pacbell.net) has joined #rockbox ---- ChanServ removes channel operator status from adi|work -<-- Zagor has quit (devlin.openprojects.net irc.openprojects.net) -<-- Moufle has quit (devlin.openprojects.net irc.openprojects.net) -<-- PsycoXul has quit (devlin.openprojects.net irc.openprojects.net) ---> Moufle (~moof@195.101.176.125) has joined #rockbox ---> Zagor (~bjst@as9-5-6.k.s.bonet.se) has joined #rockbox ---> PsycoXul (psyco@adsl-63-205-41-159.dsl.lsan03.pacbell.net) has joined #rockbox -<-- Zagor has quit (devlin.openprojects.net irc.openprojects.net) -<-- Moufle has quit (devlin.openprojects.net irc.openprojects.net) -<-- PsycoXul has quit (devlin.openprojects.net irc.openprojects.net) ---> Moufle (~moof@195.101.176.125) has joined #rockbox ---> Zagor (~bjst@as9-5-6.k.s.bonet.se) has joined #rockbox ---> PsycoXul (psyco@adsl-63-205-41-159.dsl.lsan03.pacbell.net) has joined #rockbox -<-- Zagor has quit (devlin.openprojects.net irc.openprojects.net) -<-- Moufle has quit (devlin.openprojects.net irc.openprojects.net) -<-- PsycoXul has quit (devlin.openprojects.net irc.openprojects.net) ---> Moufle (~moof@195.101.176.125) has joined #rockbox ---> Zagor (~bjst@as9-5-6.k.s.bonet.se) has joined #rockbox ---> PsycoXul (psyco@adsl-63-205-41-159.dsl.lsan03.pacbell.net) has joined #rockbox -<-- Zagor has quit (devlin.openprojects.net irc.openprojects.net) -<-- Moufle has quit (devlin.openprojects.net irc.openprojects.net) -<-- PsycoXul has quit (devlin.openprojects.net irc.openprojects.net) ---> Moufle (~moof@195.101.176.125) has joined #rockbox ---> Zagor (~bjst@as9-5-6.k.s.bonet.se) has joined #rockbox ---> PsycoXul (psyco@adsl-63-205-41-159.dsl.lsan03.pacbell.net) has joined #rockbox ---- Disconnected (Remote host closed socket). -**** ENDING LOGGING AT Fri Apr 26 20:11:53 2002 - -**** BEGIN LOGGING AT Fri Apr 26 20:12:05 2002 - ---> adiamas (~adiamas@as5300-9.216-194-23-95.nyc.ny.metconnect.net) has joined #rockbox ---- Topic for #rockbox is Open Source Jukebox Firmware - http://bjorn.haxx.se/rockbox/ ---- Topic for #rockbox set by Zagor at Fri Apr 12 09:45:52 ---> adi|work (~adiamas@pool-151-204-140-140.ny325.east.verizon.net) has joined #rockbox ---> coyote- (coyote@dreamhosted.borlange.se) has joined #rockbox -<-- Moufle has quit (Read error: 113 (No route to host)) - wooooohoooooo -* Zagor just manage to parse a multisector directory :) - phew - sweet... -* adiamas doesn't have a clue how difficult that is. - it shouldn't be difficult, but when it's late and you have a silly bug that taunts you, it is... - basically, it means the fat32 part of fat.c now works - what's left is vfat (long filenames) - fat.c just went YELLOW on the activity table :) - time for bed. see you later -<-- Zagor has quit ("bye") ---> edx (edx@pD4B9E95C.dip.t-dialin.net) has joined #rockbox ---- edx is now known as edx|good_morning ---- edx|good_morning is now known as edx ---- ChanServ gives channel operator status to edx ---- edx is now known as edx|breakfast ---> Linus (~linus@labb.contactor.se) has joined #rockbox -<-- Linus (~linus@labb.contactor.se) has left #rockbox ---> calpefrosch (calpefrosc@p5082C1BF.dip0.t-ipconnect.de) has joined #rockbox - hi - hi ---- edx|breakfast is now known as edx ---- edx is now known as edx|away ---> alkorr (alkorr@srs01v-2-239.n.club-internet.fr) has joined #rockbox -<-- alkorr has quit (Client Quit) -<-- calpefrosch has quit (Read error: 110 (Connection timed out)) ---> calpefrosch (calpefrosc@p5082C4C6.dip0.t-ipconnect.de) has joined #rockbox ---- calpefrosch is now known as calpefrosch|away ---> Linus (~linus@labb.contactor.se) has joined #rockbox -<-- Linus (~linus@labb.contactor.se) has left #rockbox -<-- edx|away has quit (Read error: 110 (Connection timed out)) ---> Bagder (~daniel@as3-3-2.ras.s.bonet.se) has joined #rockbox -<-- calpefrosch|away has quit (Read error: 110 (Connection timed out)) ---> Zagor (~bjst@as9-5-6.k.s.bonet.se) has joined #rockbox - hiya guys - hey - just got the donated archos - cool - very! - new/old lcd? - it's also very dead :-) but I knew that - ah - actually, it looks like an old - i'll open up and take a look - you gonna swap CPUs with this or what? - well I can't if it's an old. I guess then I'll convince Peter to trade back with me :) -* Bagder giggless - he'll love me... -* Bagder is engaged in a hair-tearing debug-per-email session - hehe - that mail on the curl list about 6.5.2 working but not 7.9.6 - ok - try and talk them into #curl :) - yeah -* Zagor notices the label over one the screws is labeled "Warrenty seal" - what's warrenty? ;) - Isn't that an actor? warrenbeaty? - :-) - haha - fat.c went from status red to yellow yesterday - wow - so you can simulate a few things with it now? - yeah, i can read a directory now - short names only, so far - still cool -* Bagder watches a line formerly read now being yellow... - s/read/red - yup. it doesn't feel quite as obscure anymore, which is always good - indeed - getting a feel for the source and how things work is a huge part of things - even before the functionality is there - yes. i've simplified it a lot too. so now it's much more penetrable - that's very good - i can smell burnt electronics from the new archos :) - hah - whoa, it's almost as old as mine and linus - a 20th century archos! - gosh - it's made 0052, just six weeks after ours 0046 ---> edx|away (edx@pD950D222.dip.t-dialin.net) has joined #rockbox ---- edx|away is now known as edx ---- ChanServ gives channel operator status to edx - hi edx - lol just gave my private rockbox shirt in print ;) - we wanna see pictures of you wearing it later - hehe. you have to post photos! - nlinks.org/dev/test.jpg <-- just something i played around with, for fun - hey this is cool! - wow - i think we'll soon get a prettier web page :) - he knows his stuff - yup - hehe... i will - i just had to put some names on the shirt hihi - ppl of the list who develop stuff ;) - hehe - i put the internet site and the irc channel on it.. - sounds like a cool shirt - the site ironi is developing has one problem: - the font he uses is Verdana i guess - it is not supported by linux - i know, it's just a mockup - hehe - we'll use arial or helvetica or something - zagor.. are you currently working on a linux machine? - yes - http://codeforce.d2g.com/ - always - does it look fucked up? - lol - no - looks ok - how is that? - what font type is it? - I dunno - sans-serif - arial, i think - ok ... (is verdana on windows) - i guess i put arial as alternative font then... - well, web pages don't go blank if they can't find the font anyway - yes you did :) - font-family: Verdana, Tahoma, Arial; - ok hehe - you should att "sans-serif" to the end of that list - add - .. ok - that's the fallback font - whatever the browser can find - otherwise most fonts will use Times when they can't find any of these three fonts - most browsers - *just added it* - :) - (heh it doesnt matter anyways because it is a msvc++ site so nobody from linux will ever go there haha) - haha - but maybe some mac people - (unless i make them, like you) - damn.. got a bunch of homework for this weekend... - class test on monday :/ that all sucks.. - me too: fat driver, x11 simulator... ;) - edx: i received the donated archos today - it's really cool how people want to help the project -* Bagder agrees - a donated archos.. great... you know who sent it? - yes, a guy called Julien Labruyére - he has too much monay?! lol - no, he broke it and got a new recorder insteda - so we have to fix the power circuit, but that's no problem - be careful, one day archos is gonna "donate" you a jukebox with a free letter bomb - hehe - i played lotto today - if i get the 9 million Euro jackpot, ill donate something as well (haha) - a t-shirt? ;-) - a tshirt would be cool - t-shirts for everyone.. in every color lol - (do you knwo what lotto is btw...)? - great! i'll never have to wash again! - yes, it's the same word in swedish -* Bagder has been offered a donated t-shirt in another project - ok.. - http://www.karelia.com/images/tshirt.jpg - a 10% size-little-messed-up-version of the t-shirt: - http://codeforce.d2g.com/rockbox/tshirt.jpg - rock n' roll - ok.. time to eat some thing... ---- edx is now known as edx|eating - what's "Watson"? - it's a commerical Mac OS X program heavily based on libcurl - ah - gotta run an errend, back in while - whats errend? lol ---- edx|eating is now known as edx - :) - please, tell me... :D - errand: [noun] A short trip taken to perform a specified task, usually for another. - huh.. wasnt even in the online dictionary i use :/ - ok thanks :) - dictionary.com - dict.leo.org isnt too bad either - it is German-English tho - he spelled it wrong, maybe that's why didn't find it - jup - a short journey in order to do something for someone, for example delivering or getting something for them - © Pearson Education Limited 2000 - lol - @ t-shirts.. if shipping wasn't too expensive we could have a t-shirt order service hehe - hehe -<-- coyote- has quit (carter.openprojects.net irc.openprojects.net) ---> coyote- (coyote@dreamhosted.borlange.se) has joined #rockbox -<-- edx has quit () ---> edx (edx@pD950D222.dip.t-dialin.net) has joined #rockbox ---- ChanServ gives channel operator status to edx - hmmmmm... damn.. i put irc.openprojects.org on the t-shirt *noooooo!!* - oops... - well... nobody will be inspired to join the irc channel because of my shirt anyways ---- edx removes channel operator status from edx ---> calpefrosch (~hotrana@62.52.178.189) has joined #rockbox - hi edx - hi - I have to go in 5 minutes - but, can we meet later ? - sure - I would like to discuss some things about the simulator - ill be here for at least 6 hours from now.. - no problem - ok, then cu l8r - cu - tnx - bye -<-- calpefrosch (~hotrana@62.52.178.189) has left #rockbox ---> calpefrosch (~hotrana@p5082C472.dip0.t-ipconnect.de) has joined #rockbox ---- calpefrosch is now known as calpefrosch|away - I'll be away about half an hour ---- Zagor is now known as Zagor|out -* Bagder is back -* edx greets Bagder - and I nailed a bug! - hehe.. what bug? - unrelated to rockbox - ah ok - congrats anyways ;D - heh, thanks - curl => http://curl.haxx.se is my biggest open source project I'm involved in - *looking at it* - or, that's what takes my most time - hmm i think i heard of curl before... - not impossible - it's getting quite widespread use these days - there's also a commercial web language named curl, but that's another subject - you are "haxx" (haxx.se) then... - Haxx is our company, haxx.se is our domain - jup - Björn, me, Linus and a fourth friend - that is cool.. you are four people together? - yeps - but we're employed by another company where we work full time - Haxx is just a spare time company ;-) - ah ok.. i was already wondering why bjorn told me he was at work yesterday - i guess you dont have you own office rooms for haxx hehe - correct - we work for Contactor => www.contactor.se (site in swedish only) - as consultants - hehe - dont understand a word :)_ - how old are you? - so Björn and Linus spend their days on Siemens - I'm 31 - then you are a little younger than bjorn, right? - no, he's my kid brother. Björn's "only" 29 - oh the int was linus who's 33 - the int = then it - right - our "old man" ;-) - hehe - "programming since 85".. thats a lot (from you site).. - yeah - i was born in 86 hehe - half my life - wow - more than my life - I and Björn bought our first computer 1985 - he was 12, I was 14 - i started programming in 96 i think.. Quick Basic lol - i was 10 - what computer was it? - C64 - my first as an ATARI ST something - it wasnt really mine but i used it a lot - after that came a pc.. win95 - stuff we made on the C64 => http://www.contactor.se/~kjer/horizon/ - so i was nearly directly involved in windows business - I took the route C64 => Amiga => Linux - hehe ---> edx|disconnected (edx@pD950D222.dip.t-dialin.net) has joined #rockbox -<-- edx has quit (Read error: 104 (Connection reset by peer)) -* edx|disconnected was disconnected ---- edx|disconnected is now known as edx - connection problems? - i dont know - just was disconencted - the horizon stuff you did must have been really great and a lot of work for that time... - oh yes - we spent *many* hours on that - and we did pretty good on the "demo competitions" - i can imagine that.. :) - Zagor is a really old nick ;) - is indeed - mine is only from 1987 ;-) - old enough - mine is less than a year old - didnt have a nick before.. just didnt find one that fit my taste ;) - you did a lot with this sinus stuff - did you write the sin functions by your self (it is calculating the sinus values)? - no, we usually generated sinus tables from a basic program - ah :) - "69248 chars in one single scroller." - Wow. - Where did you get that much text from? - we had a machine on "copy party" and whoever wanted could write - hehe - remember that the machine only had 64K ram... - what were those parties like? competitions..? - the parties were like a couple of hundreds guys who brought their computers - set up everything in a school or something - LAN-Parties? hehe - they call it that these days, yes - but lanparties are like playing stuf.. - we had no LANs back then - and we didn't play - hehe of course not - we coded - demos - jup. - night and day - and had a competition in the end - i could never find enough ppl in my age to make a "coding party" - where the demos were usually screened using a bigscreen - and people could vote - hehe cool - too bad, coding is that makes computers most fun ;-) - I still think so - how did you draw the pictures btw..? - yea i think so too - the pics were made like today, with paint programs - only more basic programs and less colors available - hmm they look so perfect hehe... did the programs support emboss effects or something like that or did you draw it yourself? - manually - pretty much everything was manual - wow.. - but since we became successful - things really develop fast. :) - we got lots of friends who wanted to help us with things like that - so we got lots of pics and logos etc from other people - yes, things were quite different back then - not better, different - i wish i would have started a little earlier. but 10 years is about as early as possible. - it is - you seem to have learned quite a lot anywaya - heh i love my computer :P - i spent as much time with it as possible. ---> alkorr (alkorr@srs06m-3-20.n.club-internet.fr) has joined #rockbox - hey Alan - hi - hi everbody - Björn got his donated Archos - Björn is out ? - yes - good news - and a working archos ? - he should be back soon though - no - yea.. a few mins.. - it doesn't work, but Björn thought he'd be able to fix it - what it is the third archos with a broken serial !? - we don't know yet on this one - i'm reworking my ata stuff to have an interrupt-driven code - cool - we don't need a thread for working with ata - just a queue of requests - i think the same thing can be achieved for MAS - it would probably be good, pretty efficiant - i mean a queue to serialize operations should be enough and more efficient in performance terms - yes - unhopefully your devcon doesn't tell me why you want those three tasks nor what they really do -* PsycoXul blinks - if i could know what you exactly need, i can give the best way to implement since I know very the internals of SH1 - hum... i'll be back. I hope Björn will be here when back -<-- alkorr has quit () ---- edx is now known as edx|away -* Bagder drinks tea ---- Zagor|out is now known as Zagor -<-- calpefrosch|away has quit (Read error: 104 (Connection reset by peer)) ---> calpefrosch (calpefrosc@p5082C472.dip0.t-ipconnect.de) has joined #rockbox ---- calpefrosch is now known as calpefrosch|away ---> alkorr (alkorr@srs05v-4-251.n.club-internet.fr) has joined #rockbox - wakeup here ! :) -* Zagor wakes up -* Bagder yawns - so you new toy ? - yes, but it has a power problem so Linus is going to look at it - (I knew it had this problem) - what kind of problem ? - I think he reversed the polarity of the charger and fried something - well i suppose our generous donator was not so generous as to give you a working one ;P - I still think it's very generous - i mean i was atonished that a person will give a working archos - i would be - ok - yes, I agree there's a difference - but I'm very happy for this donation anyway - because i thought it was a working archos :) - but now i understand why ---- edx|away is now known as edx - sure we must gratulate this person for his donation - yes, I have written it on the front page - Björn, i need some details about you devcon, especially about the tasks - Linus told me that you wanted a special thread to do ata stuff - maybe, yes - either that, or the interrupt handles everything - because you thought we cannot use interrupts with the ata controller - i explained him that if my ata.c had no interrupt code, it is because I was lazy - quite now, i coding an ata driven-interrupt code where all what regards ata handling are done in the interrupt. - yes but I think that's ok. we can start with polled and then do interrupts - ok, nice - it means that there is no thread but a queue for requests - yes - i'm committing my last ata changes now so I have no local modifications - i'm still wondering if we need read-ahead - not now - i don't change your ata.c - I want to do things very simple at first and add more complexity later - please be cautious, i read your ata.c and see you oversimplify the code to an extent i fear that code generated for sh1 is worse. - I know - that's deliberate - when the code works, then we make it small&fast - I have gathered a little list of contributors in a CREDITS file, should I just commit it and have you fill in more/edit it? - please do - is the firmware dir fine? ---> alan (alkorr@srs05v-4-251.n.club-internet.fr) has joined #rockbox -<-- alkorr has quit (Read error: 104 (Connection reset by peer)) - yup - done - btw.. could anyone write a file defining the file access functions (just the header) so i can implement them on the simulator? ---- calpefrosch|away is now known as calpefrosch - or shall i write the file (but i dont know the "devcon standard") - hi all together - imho, you can write it - ok - then we can just edit/discuss things we don't agree with - ill try - you can still change them later - exactly - what name? and what dir? (the header file) - edx, if you don't mind I would like to help you wuth the simulator. -* Bagder leaves that decision to Björn - sure, i dont mind -* edx asks björn... - ummm... - cool, then I have some questions to you. - fileio.h - fs.h ? - go ahead, calpefrosch - tnx, hmmm... - Zagor: I scanned the list archives quickly, checked the web and stuff to figure out the initial CREDITS but I'm sure I've missed a few names - i'll take a look at it - hm.. say a header name ;) - I did no C before, so I have no idea how to change the struc with the colors. - file.h - ok - the only thing you have to change are two lines in uisw32.h: - my idea was to change the background-color in the struc - #define UI_LCD_COLOR 46, 67, 49 // bkgnd color of LCD - #define UI_LCD_BLACK 0, 0, 0 // black - sure - the first line is the background color - but I want to change the color at runtime... - oh... - hm - then you have to change the bmi structure. - right - but I had some problems with the location, where to change it. - we would have to define an extra function for this... - wait 1 minute, please - Bjorn, is there a function to change backlight color in the lcd code (no) - could we define it (even if it is not yet implemented outside the simulator) - edx: why would we want that? the color is green. there's no way to change that - ahmm backlight - ok, extern void lcd_backlight(bool on); - and contrast... - you can regulate backlight i think... with the menu -<-- calpefrosch has quit (Read error: 104 (Connection reset by peer)) ---> calpefrosch (calpefrosc@p5082C472.dip0.t-ipconnect.de) has joined #rockbox - hey who change DISP_X to LCD_WIDTH constant ;) - yeah, I saw this on Friday,too. - it was LCD_WIDTH all the time - arhg, I had to reboot. - but it was DISP_X too - edx: that was me. they both existed, I just removed the one with the worse name. - allways, at the second time a switch on the archos with USB connected I get this damned BSOD ... :-( - ok - calpefrosch: ugha - calpefrosch: hey... you use USB 2? - no - ok.. i have a similar problem but i think it is related to my usb2 adapter (it works with usb1.1) - the first time after reboot everything is working. But at the 2. there comes this page fault at .. - ok, but now to the bmi struc - well.. changing background color only makes sense if we have a backlight function - Zagor: can backlight be changed? - I have to checkout the newest code... - edx: just on and off - wait im still editing - calpefrosch: you just need to update - at the recorder we can could the intensity, I think - -can - argh, ok again... we could change the ... - yea thats what i thoguht too - Zagor: what is this line and shall i use it in my files too? - * $Id$ - edx: yes - is it automatically filled by cvs? - yes - (just removed unneeded lcd code) how do I delete the file lcd.c in the cvs (renamed it to lcd-win32.c) - cvs rm file - after it was deleted for real - hmm, i have to fondle my girlfriend. sorry. edx: can we discuss this on monday ? when do you go to school ? - is this usb2 really fast? - yes - :-) - damn it rocks - maybe I should by a controller. - but my damn adapter is damaged or something. it works with win98/me/2k whatever but not with winxp - hehe you have anything but windowsxp, calpefrosch? - hehe, don't use xp ;-) - I have w2k, xp, linux. what you want ! - edx: sounds more like an XP problem and not an adapter problem - sure it is an xp problem - ok, cu. bye. - bye calpefrosch - cu - edx: monday ? - Zagor: do you have my 'cvscheck' tool? -<-- calpefrosch has quit () - no, what's that? - a tiny script to display which files that are modified, by you or in the repository - I find it handy to use - haha ;) with windows xp i got a shell extension that displays modified files in red others in green and i can click-commit/add/remove etc :o) - but what about "needs patch" ? - you need to check with the server to know that ;-) - what is "needs patch"? - when the file has been modifed on the server - hm now i just rightclick -> update then - righ - t - but my script displays the status, it doesn't change it - hm. damn. the tetris code is not working anymore :/ - uh - ok.. got the bug :) -* Bagder salutes edx -* edx smiles - would it be useful to have getbacklight function returing a bool... ? - edx: why? - yes why ? - hmm if we have a settings menu it need to determine whether bl is on or off - *needs - not necesserally - settings should say how long the bl timeout should be, not permanent "on/off" - ahhh that is what this setting does - ok - im working on the file functions now.. - of course we *could* have an on/off setting too, but who wants backlight on all day? - yea.. - Zagor: possibly the guys using them in cars or similar - file.h - into firmware or firmware/drivers/ or where? - and during night - Bagder: good point - edx: common - ok - firmware/common - i think we had a port pin that said when the charger is attached, don't we? - PA0 according to my notes - let me check - are you speaking about DCIN ? - yes - yes - int open (char *filename); - is that ok, file.h? - according to my notes too - an int ? - int open(const char *pathname, int flags); - flags is fake ? - edx: ssh into your sourceforge account and run "man open" etc, then you see the posix syntax - no, flags for read or write etc - only read supported for starters - oh... yea.. - *stupid me* -* Zagor is #ifdef:ing out the write code in the first version :) - i don't see the point to check if we can read or write on a file - ? - we might want to write a file - it's not a check. it's wether to open it for reading or writing - if you want that function for posix compliance - like playlists? - but we are not forced to handle all access rights - yea.. *really important* a built-in playlist editor - it's not about access - it isn't worth extra code - that's why there's only two arguments - it's about if you want to read or write the file. truncate or not etc. - it sucks that you have to write playlists on your pc... - the access rights is in the *3rd* argument - the third.. do we need that? - no - no - k - ah yes... but i was speaking read-only checking - ok - okay we can use that flag to determine if we open OR create a file - exactly - or append - but we don't bother with checking for read-only file or stuff like it - no - open returns an int - seems totaly useless - what do you return in reatlity - file handle - that's an index in a table - Does it matter - we make it support N opened files - yes - because that's how posix open() works - ... uhm.. guys.. take a look at that: - int open (char *filename, int flags); - int close (int handle); - int read (int handle, void *buffer, unsigned int count); - int write (int hnalde, void *buffer, unsigned int count); - int seek (int handle, long offset, int origin); - int unlink (char *filename); - int rename (char *filename, char *newname); - is that ok? - lseek - edx: yup - it says seek @ devcon - not lseek - it's wrong - it should be lseek - it should be lseek(), right? - i don't remember a posix seek - ok - lseek is posix - then.. the opendir.. what is it supposed to do? -* Zagor wonders what the 'l' is for -* edx thinks it is for long (?) - edx: return a dir handle - aha... - hmm - man opendir ;) - it's for doing readdir() on - hmhm... it is for scanning a directory? - yes - you need some man pages edx ;-) - zagor, it is for long seek with a 32-bit offset with 16-bit cpu (?) - i don't remember exactly - ok - what does readdir do? (sorry.. win32 functions are different there..) - ie. what parameters does it get? - edx: it's like findfirst/findnext - "returns a pointer to a dirent structure representing the next directory entry in the directory stream pointed to by dir." - let me check - int readdir(unsigned int fd, struct dirent *dirp, unsigned int count); - no - struct dirent *readdir(DIR *dir); - Zagor: wrong readdir ;-) - ok thanks. i will not include disk operations into file.h, right? - oh - edx: opendir and readdir goes into file.h - opendir returns DIR then? - DIR * - just a minute, are you sure ? - yes - DIR *opendir (char *dirname); - int closedir (DIR *dir); - struct dirent *readdir(DIR *dir); - is that ok? - and readdir() takes a DIR * - looks fine - hm.. i gotta think up a way to do that in windows - edx: cygwin ? - well, we don't have any code using that function yet, so you have your time ;-) - nah.. not cygwin - linux ? - clean windows code.. :) - edx : you are under Windows or Linux ? - if under Cygwin, try to find the file ".../cygwin/usr/include/sys/dirent.h" - you will find the functions and structure which would likely be changed - or maybe not some fields are junks - DIR *opendir (const char *);struct dirent *readdir (DIR *);void rewinddir (DIR *);int closedir (DIR *); ---> ironi (xircon@m213-101-132-24.swipnet.se) has joined #rockbox - hey ironi - I just love that web thing - Bagder, that web thing? - ??? -* Bagder tries to find the URL - ah ok - Zagor pointed me to it - Bagder, http://nlinks.org/dev/test.jpg -* Zagor has leaked :) - yeah i did it for fun while i was bored last night heh - :-P - that's the one, yes - hey .. could anyone send me his dirent.h (the directory structure definitions) - ironi: the page looks great :) - who is the sexy girl ? - Bagder, cool that you like it, maybe I could do something with it as inspiration - edx, thx - edx: i can - edx: I think you'll reach results better if you just write up your own win32 version - alan, some girl from photodisk.com :) - i did not buy the image, though :) - arf - badger: yes, but i need to know what entries are in the DIR, dirent structires - it's intersting how a photo can change the appearance of a very simple page - are you okay for DDC SEND ? - me? i guess so - edx: actually, you don't. use whatever contents you like. it's just a pointer used as a handle - Zagor: except for the one single one used for the file name - posix defines a inode number, which you'll have a hard time emulating :) - thanks, alan! - Bagder: right, he needs d_name - "char d_name[] of unspecified size, with at most NAME_MAX characters preceding the terminating null character." - inode number is a junk for cygwin - yes - Zagor, the news entries, are they static? - in fact we can use to have start cluster - ironi: yes - Zagor, ok - alan: not a bad idea - but edx won't need that in the simulator - when you rename a file in ext2fs, you change its inode ? - i don't think so - Bagder: right, some fileds can be removed - mv doesn't change inode, no - inode number is what exactly - ? - it identifies a single file entry - I'm not very good on fs internals though - i wonder if an inode is a cluster equivalent - no - start-cluster equivalent I guess - a file can change position and keep the same nodeid - i'm pretty sure - there's a difference between inode and nodeid ? - hopefully i have explore2fs under windows, i can browse linuw source - explore2fs is amazingly slow :) - true - hmm.. this might be enough: typedef HANDLE DIR; - is it ok to allocate memory for DIR and return the allocated memory and free it in closedir? - but with udma 100, it becomes less slower :) - for you it is - edx: in your emulator anything is ok - hmm not necessarily ;) - how do you do it on the jukebox device - where do you free the returned *DIR pointer> - ? - no - edx: well have an array of structs - static - hmm - ok - and just return a pointer to the first unused - isnt that a vaste of memory - we want to avoid dynamic memory use - and wouldnt it be nicer to have as many dirs open as memory is avaialbe? - why - we don't want many dirs open - why not ;) - it takes more memory - oh well.. that is not that bad... those few bytes.. - dynamic memory causes fragmentation - okok.. - fragmentation causes instability - or at least non-determinism - i'm not sure about that - oh yes now i aggree - dynamic memory will be used eventually anyway - oh yes - but we don't want to overuse it - but we should stay out of it as much as possible in core stuff - static array : space wasted when underused but simpler to start with - yes - dynamic array: - if you use the same range for non pertinent structures - there would be few fragmentation - sorry i mean persistent - indeed you must avoid to use persistent structures to avoid fragmentation. - quite now use static array - it is very easy to use malloc and free with windows but in our firmare it is another story :) - heh - hmm i actually do have a problem. - the simulator needs to call the open function (from io.h) with the same parameters.. how can i make it understand which function is meant? - for files you have open files, the same you have foe directories, open directory (DIR *) - and how are you gonna do that in linux? - i don't understand the question - just a minute, what do you want to do ? - edx: why simular that at all? - simulate - use the windows version - the openfunction has a little different parameters.. - file_open - or something similar - yea.. we could change names to file_open... -* Bagder would prefer not to - hm - ok - stop ! - there are two sides - the posix side and the specific side for file handling - ? - you mean there's an API - i suppose if we want posix files it is for programming commodity - and an implementation? - yes - #ifndef SIMULATOR define functions #else #include the windwos header file - i mean an "open" is handling a table of open file and call the true open_file. - to code a fat "open" is not a good idea - I still don't get it - yes, open will need to do stuff - it could call open_file - fat_open() - fat functions are the real part, and posix functions wrappers with additional stuff - yes - the posix is an api - okay - so edx for its simulator just neet to code an "open" which call the true "FileOpen" (?) - exactly - sorry for mistakes - but... - yes ? - windows already has an open(), doesn't it? - you mean a posix compliant library ? - hmm.. opendir.. does the first parameter contain wildcards??? - no - maybe... - posix compliant open - edx: no - hm - ok - speaking of that, do we need wildcard support anywhere? - what does opendir return if it fails btw..? -1? - i don't see what for - or rather NULL - edx: you really need those man pages :) - edx: NULL, right - ok - http://www.die.net/doc/linux/man/man3/opendir.3.html - thx - Bagder: for the moment, i don't think so - jukebox has no keyboard - i don't see how we can put wildcard * and ? :) - it hasn't? B-] - well - we put code in it - the code could use wildcards - I think it *could* be done - give me an example :) - i cannot find one myself - show only files that matchs "*.mp3" - we don't write it until we need it - wrong - not a very good one - anyway - very true - just a note about extension - we don't need to include extension in the name, just add an extension type along with the filename - ? - the file name is stored via USB - when will the extension be cut off? - no, i'm speaking about the way rockbox can handle files - you mean the dir browser? - yea - right - once yo scan a directory - that should be a lot smarter, indeed - so "*.mp3" is a wrong example ;) - no - the files are still named .mp3 - suppose author "Mr Doe" wants to write his own app - continue - he wants to store movies on his archos - and ? - and then scan for them recursively - then we could use wildcards - we=>he - ??? - never mind - or he has to write his own wildcard function ;) - exactly - or do it another way - i'm just speaking a way to disguish directory, playlists and mp3 files from others files - I'm not - usually you want only those three kinds of files - usually yes - using "*.[mp3|m3u]" is not the best way, without speaking about directories - oh yes i see a problem - can readdir see a directory ? - yes - all directory entries - ok but how can you know if it is a directory ? - there's a flag field too or something - i hope - c:\Programming\CVS Checkout\RockBox\uisimulator\win32\file-win32.cpp(33): error C2065: 'new' : undeclared identifier - what the heck! -* Zagor groans. C++ ! - ;) - ohhh - just kidding - edx, you compile as a C or a C++ ? - C - used malloc. works - but you use a cpp file - another thing.. _finddata_t is not defined - yea a cpp file - but i compile as c - heh - okay the trouble is here - odd choice of name for a C file... - that's confusing - for C, operator new is not defined - hmhmhm - now if i use c it is also compatible to cpp files ;) - no matter.. ill rename them - and don't use cpp, but c extension - i'm sure you create this file without having a look on the extension ;) - yea - i used c extension now - well i had a look at the extension - thought about it too late - cpp is standard extension so i just didnt change it - normally compiler, when it finds a .cpp extension switchs to c++ - i disabled that. - hmm it still has a very strange error. - yes but just remember it for the next time - typedef _finddata_t DIR; - it does not recoginize _finddata_t - what is _finddata_t DIR; ? - i included io.h - i define the type DIR - nope - it is supposed to be _finddata_t - you need to commit some files if you want our help properly - i mean the other structure - it is a "system internal" strucutre - definde in io.h - yes i see - by the way i see a filename of 260 chars instead of 256 - you're right, Bagder, open is defined in io.h... - "Long names are limited to 255 characters, not including the trailing NUL." -- Microsoft FAT32 document - it is for a filename - but 260 should be for a pathname - path lengts are max 260 yes - in fat? - yes - nope for windows :) - right :) - so we know there is no point to try to handle pathnames longer then 260 in rockbox - if windows can do it -* Bagder snickers devlishly.... - yeah, they'll love us if we create files they can't read in windows... - but otoh, who would create them? - we :) - fat_create_dir(), fat_create_file() - "to be able to use this product, you must first put a file here => [261 letters]" ;-) - hehe -* Zagor hungre -* Zagor needs food - hey try to imagine that we have a longer pathname created with rockbox, how will windows react ? truncated files ? -* Zagor go shop - me too - im going to order a pizza -* Bagder considers pizza too... - i had pizza yesterday - edx: you use _findfirst/next/close ? - i updated cvs files for ui simulator.. anyone who has a win32 compiler and can tell me what is wrong? - alan: yea - alan: only findfirst right now - hum it is really rare i compile with VC - alan: even typedef of DIR doesnt work :( - i can try - ok.. :) ---- Zagor is now known as Zagor|shopping - hwo come you can go shoppign on saturdays.. - not in Germany :( - lol - Bagder, =) - Bagder, a kebab-pizza in jönköping is soooo good. - he's not in Germany... :-) - they don't make them like that in 08 - a bit far for me to order I guess ;-) - so you can go shopping on saturdays in Sweden? - yes - hmm we should have that in Germany too :? - on sundays too - edx, dont you have malls? - edx, but of course the grocery stores are open all day in weekens also in germany - i would love to have ALDI here, itä's so cheap - ironi, im afraid not - oh sh*t it takes time to checkout :(( - ironi, no - when i wa sin st. louis i shopped a lot at aldi's, cause it was so good prices - poor modem - LOL @ Aldi - LADI rocks - ALDI - prices are ok, indeed :) - edx, what file i must open ? - .sln ? - alan, re-checkout... i added a few files that were missing - sorry - the vcprj file - my VC has no associate application with vcprj !? shouldn't be .prj ? - ok you got VC++ 6? - then you have to recreate a project file :/ - i use vc7 - yea vc6 - edx: you might want a slightly different solution anyway - hmm i gotta go eating... - bagder: makefile? ---- edx is now known as edx|eating - edx|eating: the DIR struct myst have a d_name[] entry - so you need to have your own DIR struct - the dirent has that.. the DIR as well? - ah - silly me - :) - you're right - cya in a few mins -* Bagder hides - heh - edx: please generate a makefile - not all people have vc7 - you should find a way to allow other vc version to compile your program. -* Bagder thinks alan is right - edx: normally your vc7 has an option to generate this makefile - hum, i wonder if i wouldn't use SDL... ---- Zagor|shopping is now known as Zagor - :-) -<-- ironi has quit (Read error: 104 (Connection reset by peer)) - just for info, here is the link for SDL : http://www.libsdl.org/intro/toc.html - yes i know you wouldn't code with it - :) - heh - but I don't need to if you do it ;-) - I could do it too actually - one day - see you -<-- alan has quit () -* Zagor just realized fat_open() has no purpose - linus just called to say the donated archos works fine -* Bagder horrays - it's a 4.53g version, so it's got a new lcd after all - did he try the serial port? - not yet. we want to be more careful this time, so we'll wait until monday when we can test with the remote control first - good idea - but that means they stopped using the old lcd very early - i'm curious how many people actually have the old model - can't be that many - no - we want the full donated-archos-story on the web/mailling list later - yep - didn't someone offer to produce irc digests? - adiamas did - that would be great, since so much discussion is off-list - yep - no commit mails so far today... - i woke up late :) - but things have been committed - only not arrived by mail - ah, ok - problem with the sf mailserver then, I guess - likely, yes ---- edx|eating is now known as edx - hey... cool i am about to get my first makefile working lol - :-) - welcome to the bright side :) - always the same lame comment :P - hihi - how are resources compiled *unskilled* - that's a windows question. we're all unix ponytails here :) - but I think there's a Resource Compiler. maybe rc.exe ? - I don't even know what "ressources" are - ok - lol - we have complete faith in you :) - edx is our man! - lol - the makefile is working *great* - goodie - ok.. cleanup code missing - hmm.. maybe someone of you could look over the makefile again.. i am sure i did some stupid things in there - is it committed? - yup - the last all: line looks a bit odd - what should it look like? - you should probably have this instead - uisw32.exe: $(OBJS) - $(CC) $(LDFLAGS) $(OBJS) - i think - hmmm aha - but i'm not sure how to link on win32 - i dont really know what it all means - i just guess ;) - you want $(LIBS) there too - ok, then you need a crash course in make! - uisw32.exe: $(OBJS) - $(CC) $(CFLAGS) $(SRCS) $(LIBS) $(LDFLAGS) - make is a golden tool, you should learn it. - if i have this it says it doesnt know how to make blabla.o - the second line is the command line you want to use to link the appliction together - which make are you using? - nmake? - yea - i know what whas wrong - its not .o it is .obj - ah, change OBJS = $(SRCS:.c=.o) to OBJS = $(SRCS:.c=.obj) - yup - just did that - works - nice - but it does much more than it did before - it compiles everything twice (?) - lol - twice? - like once for each object and then the command line that follows - $(CC) $(CFLAGS) $(SRCS) $(LIBS) $(LDFLAGS) - thsi one - yes - you should remove the SRCS from the link line - i only need this one line actually - ah ok - ahhh yes - missed that -* Zagor realizes that fat_read() gets very complex without fat_open(), so adds it again :) - LINK : fatal error LNK1181: cannot open input file '../../firmware/drivers/lcd.o - bj' - hm - the output file is generated inside the current dir - can i specify the source directories via a compiler parameter> - ? - yes - but this should work - i does not - it produces the output file inside the wrong directory - what is the parameter.. ? - that's compiler specific - bbl -<-- Bagder has quit ("http://daniel.haxx.se") - hmmmm... - ahh - i see how daniel did it.. *testing* - yay. fat_read() now works. - cool :) - i fixed the makefile - it works now - nice - shall it remove the obj files after linking? - no - ok - the obj files are used to check which source files are modified - i know.. just thought ;) - so it doesn't have to recomile unmodified sources - hehe - make a "clean" target that removes obj files - that's the normal way - now alan can try to compile and help me fix the other error with the file-win32.h file :/ - that's good - when is this clean target processed? - manually - "make clean" - $(RM) *.obj - ? - only if you have an RM variable defined - yea i just defined it - otherwise just "del $(OBJS)" - you don't need a variable, really - im about to understand the makefile thing :) - yeah, it's not difficult. but very useful. - yup. - but a finished makefile looks damn freaky for a newbie like me :) - hehe, yeah maybe. but then again all kinds of files look freaky when you don't understand them - yea... - do you get a mail for everything i commit *sorry for committing that much* - normally, yes. but currently there seems to be something wrong with the sourceforge mail server - don't worry about committing much. that's what cvs is here for - maybe its down because i spammed it with commits (haha) - :) -* edx can't wait to wear his rockbox shirt -* edx is angry that he misspelled irc server - hehe - irc.openprojects.net... why dont they set up an irc server there? - aehmm. org - irc.openprojects.org - lol - yeah, i was surprised their dns hasn't fixed that - well.. maybe it will be someday... then the shirt is fixed too lol - why not mail them and ask/suggest? - hmm good idea - (don't mention the tshirt :) - Ladies and Gentlemen, due to the fact that i misspelled your server on a *very* important shirt, i want you to open an irc server on irc.openprojects.org ... - LOL - maybe not the best chance of success :) - that was rather a joke ;) - yes, i understood - i need somebeody do fix that bug in file-win32.h i just cant do it - i'll take a look - hm you cant compile it... you want to see the error messages? - ok - c:\Programming\CVS Checkout\RockBox\uisimulator\win32\file-win32.h(27): error C2061: syntax error : identifier 'DIR' - c:\Programming\CVS Checkout\RockBox\uisimulator\win32\file-win32.h(27): error C2059: syntax error : ';' - well where is DIR defined? - that means that _filedata_t is not defined for any reason. but i do include io.h - dir is defined right in that line - typedef _finddata_t DIR; - ah - strange - indeed... - you should probably free(p) before return NULL; - that is a good idea - i did nto code any further when the DIR thing didnt work - i understand - hmmmm that is so strange - looking at io.hi find something really interesting: - #ifndef _POSIX_ - maybe io.h supports the posix functions :D - yes i think it might - ok.. one more thing i can try.. just rip the definition out of io.h an paste them before the DIR typedef lol - (this is not afinal solution of course) - haha - whatever works - hmmm if i include io.h AND define the struct it says redefinition - something is *very* bad about this... - #define DIR _finddata_t - lol - the problem is not the DIR thing. the problem is teh _finddata_t definition - it must be somewhat strange - what if it's a macro? - it is not a macro - i looked at it - ok - struct _finddata_t { - unsigned attrib; - time_t time_create; /* -1 for FAT file systems */ - time_t time_access; /* -1 for FAT file systems */ - time_t time_write; - _fsize_t size; - char name[260]; - }; - does typedef work with structs in C? - lol - yes - it must be somethign really stuped - stupid - if I put dirent there it wont work either - maybe it is the DIR - it is defined somewhere else??!!! - hm no it is not ---> elinenbe (trilluser@bgp01080511bgs.wanarb01.mi.comcast.net) has joined #rockbox - hi - hi elinenbe - hey there. You sure have been busy. - brb - I looks like the fat32 code is coming along. -<-- edx has quit () - are you getting the mails? - i dont ---> edx (edx@pD950D222.dip.t-dialin.net) has joined #rockbox - cvs mails, i mean - oh finally.. it hadnt logged the irc sessions before ---- edx is now known as edx| ---- edx| is now known as edx - but, yes, the fat32 code is coming along nicely. i just got read() working and am writing seek() right now - In a Mr. Burns tone: exxxxcellent - hehe ---> Bagder (~daniel@as3-3-2.ras.s.bonet.se) has joined #rockbox - hi - hi again -* Zagor grooves to Electric Skychurc - is that a band? lol - if that ain't a trip :) - what is that? - it's ambient dub - electronic smooth beats - heh - silk for your soul :) -* Zagor is a poet -* edx grooves to emil bulls hard-rock (lol) - you dont know emil bulls in Sweden, do you? - well at least I don't. hard rock is not my taste. - hehe :) they are German - they sing English but I guess they are not known anywhere but in Germany - seek() done, time for long filenames - kewlness - great -* Zagor is in The Zone :) -* Bagder thinks Zagor listens to weird music - what music do you listen to, Bagder ;) - http://storebror.haxx.se:443 - oh, he's very middle-of-the-road... - try my stream - just doing :) - cool... - what a quality - i like the music :) - what is this? - *hey stream's gone* - what does your player? - say - heh - nothing - look in the player window, the title shows there - youst wont play anyithin.. - press play again - try again - some tracks don't have an id3 tag - my server runs all the time - they should appear based on file name I think - lol it says nothing for the title... - but what is it -* edx needs that as well - heh - I have only 3000 files on that stream - Bagder: I found some tracks just don't show anything -* edx laughs out loudly! - which player do you have edx? - *only* 3000 files??! - windows media player ;) - hm ok - how many GB of mp3s do you have? - I've mainly listened with winamp - that's about 15-16 - (wmp = the lames music listen tool there is haha) - bjorn:~/music>find . -name "*.mp3" | wc -l - 5588 - :) - heh - 3189 here actually - the best part: they all fit on my archos - edx: try this http://storebror.haxx.se/mp3/ - hehe -* edx found 6783 mp3s on his hd - that music repository is cool :) -* elinenbe found 10095 MP3s <-- all Depeche Mode! - hehe - loool - they sure are productive, those DMers - what tool do you use to set up those streams? - ample - ampl.sf.net - ample.sf.net -* edx does not know that - dead simple little thing - as it should be - is it for windows too? - its full source - but *nix style - so you'd need to fiddle ;-) - too sad :) - get cygwin and it'll be less fiddling :-) - is it command line or xwindow? - neither - its a server - it says nothing, it just runs ;-) - even better - the way it should be, imho - but the file accessing functions will have to be changed.. *too much work* - not if you build with cygnus - yea well... - how much unix-specific code can it be? - dir-reading - socket stuff, yeah - just about - nah, most socket stuff works the same - ok - "most" - like close needs to be replaced with closesocket() - hmmm ... ill have a look at it.. - hey.. only 10 files - that looks like one could actually do it - its only 6 source files - hey, I bet that if you do it nicely and mail back a diff to the guy, he'll be grateful -* Bagder did that already - hmmm - waht does config.h - in linux? - its is commonly generated by a script - defining what features your particular machine/OS/CPU/environment has - it is not included with the source though - no, since it is generated - you wanna see how mine looks like? - ok - vsnprintf - is that the smae as sprintf - almost - http://storebror.haxx.se/ample-config.h - whats the difference? - thanks - check vsprintf(), you must have that in windows too - the 'v' means it takes variable arguments from your input parameters - the extra n is only for the extra argument specifying the maximum output length - but it does not take int as second parameter -<-- elinenbe has quit ("ChatZilla 0.8.6 [Mozilla rv:0.9.9+/20020414]") -* edx does not have the time to work through all that right now - I fully understand that - heh.. i guess it would need a week of free time to fully translate it - there are tools for windows, certainly - sure - but finding a good free one is another issue probably - windows is polluted with silly shareware and expensive software - sure - well - it is like free software most of the time - I dont spend too much money on software ;) - i just found a mp3server.. im gonna try it :) - 16kb/sek arent enough anyways lol - check this out: - http://codeforce.d2g.com:12345/file - username: edx / pw: edxmp3 - is a stream somewhere too? - is there - click on a file... should work.. - well it just links to the mp3 - hmm - yes, then I download the mp3 - well in windows you listen to it directly if you want to - but only one file at a time - *cool - accessing all my mp3s from school* - jup - ha - not comparable to ample - fun anyway ;-) - yea - hm i have to reconfigure.. right now it acccesses mp3s via LAN - ill store only a few mp3s on the server - then they are even accessable if my computer is not turned on - well... gotta go... - good n8 :)_ - bye edx ---- edx is now known as edx|sleeping - bye - good neight? ;-) - sounds dutch - LOL - I wonder what it means? ;-) - haha - if somebody with windows ever gets here tell him to debug my code :o) - cya - yes sir! -* Zagor just realised he has a strawberry/cheesecake ice cream in the freezer - mmmm... - yikes - vfat is a mess - fat32 is alright, but vfat is really bad - each name is split into (up to) 13 entries - each entry is split into 3 parts - and to top it off - the entries are stored backwards -* Zagor is crying - vfat, that's for the long file names only? - yes - you committed any working code? ---> Linus (~linus@labb.contactor.se) has joined #rockbox - not yet - hey, linus! - Yo! - I'm curious - hej Linus - Hejsan! - Whazzup? - fat32 is working. open/read/seek is done. grinding away on vfat now. - Ninja! - Bagder: clarification: I have committed the working fat32 code, but not any vfat code - so, theoreticly we should be closing in on reading a file now -* Bagder updates - yes. but we need the upper layer written - right - the fat code handles sectors, not bytes - i figured that would be a fair tradeoff - so the upper layer handles accesses for bytes within a sector - agreed? - Fair enough. - indeed - yesss... single-entry longnames working. - I bet they hardly ever occur ;-) - hehe - are they fixed-size per entry? - all files get longname entries, no matter the length, since longname entries have fewer restrictions on the name - yes, 13 characters per entry - wooooooooooooooooooooooooooo - works - C:\> dir - ata: Reading sector 76 - config-player.h (59) - config-playerold.h (60) - now on to cross-sector names... - really neat prompt you made for your test program ;-) - good old DOS-style -* Zagor blames Linus - yeah yeah we all do that - :-) - hehe -* Linus denies everything - bläääää, longnames can span THREE sectors :-( -* Zagor needs a new strategy -* Linus need som sleep to cope with the MAS music orgy tomorrow... :-) - hehe. good night - :-) - nighty nighty - Zagor. The charger is fried on your new archos. I will try to find out what needs to be replaced. - ok - Nighty. -<-- Linus (~linus@labb.contactor.se) has left #rockbox diff --git a/www/irc/rockbox-20020427.log b/www/irc/rockbox-20020427.log deleted file mode 100644 index 504e5f0444..0000000000 --- a/www/irc/rockbox-20020427.log +++ /dev/null @@ -1,938 +0,0 @@ -**** BEGIN LOGGING AT Sat Apr 27 18:02:19 2002 - ---> adiamas (~adiamas@as5300-9.216-194-23-95.nyc.ny.metconnect.net) has joined #rockbox ---- Topic for #rockbox is Open Source Jukebox Firmware - http://bjorn.haxx.se/rockbox/ ---- Topic for #rockbox set by Zagor at Fri Apr 12 09:45:52 - okay... logging again :) - i mailed the log from the 26th out - to the list? - sorry.. not mailed... cvs'd - ah - did you update the .t file too? - nope.. ill get that.. - done - I tried to add a cron job, but got some permission problems so it's still manual - lids related? - I don't know. I'll find the error mail - Subject: Cron (cd $HOME/bjorn_html/rockbox; cvs update; make) - rcmd: socket: Permission denied - cvs [update aborted]: end of file from server (consult above messages if any) - ah - it's not having CVS_RSH=ssh - but it shouldn't - you should update anonymously - ah, yes. I *should* :-) - aaaaah - say no more ;-) - trying again - GOTCHA - cross-sector filenames now work too - it ain't pretty, but it works :) - heh, I hope you smack on some comments explaining the non-prettiness - i'm trying... - it's the sector caching that makes a mess - i'll check it in so you can take a look - sure! - it's in - at the bottom, fat_getnext() - one sec - its not that bad really - i found an unnecessary line: ptr = ent->cached_buf - on 963? - no, 971 - ah - right - since it's already being done on 963 - removing that, I can collapse the ifs a bit - i'd say this moves the fat code into GREEN status -* Bagder horrays - what a difference a day makes :) -* Bagder presses reload on the rockbox page like crazy - hehe - now - plopp - 7 green ones - 9 yellow to go - yeah - we should write a little converter for pics to our internal pixmap format - did you write one for gifs to some odd format? - thinking about the rockbox logo now - no that was hand-pixeled by thomas - yes, but I recall something about you doing something like that on Siemens? - a converter that is - ah, yes - umm, i can't remember the name of the format :) - in fact - just loading a software showing the logo will make a *great* foto - yup - PPM i think the format is called - portable pixmap - ah yes - I'll hack up a little app embryo right now - the simulator should be able to do this, right? - do what? - run this app, showing the logo - yes - if you run it, include the ata code and run ata_init(). that should prevent it locking the disk. - ah, the cron job works now - fine - but I'm not gonna try running it on target yet - I can understand that :) - we should fix an unlock patch for the usb 2.0 driver too. - that would be really good - I'll make it possible to start tetris from the app's menu - :-) - :) - hm, doesn't work - what's the problem? - I can't manage to get the "cursor" to show up - cursor? - I have three lines in a "menu" - ah - and I want to move a "marker" along the side of them - i see - hm - I need to force a screen update somehow I guess - of course I do - silly me - yes :) - yes, and clear the marker when I move away... :-) - ok, time for file.c - roxxers - hehe, now I can start tetris from the menu ;-) - nice! - gotta clear the screen first though - hmm, both the man pages for remove() and unlink() claim POSIX conformance - remove() is undoubtedly a better name - it is - well.. depends on how you look at it... - you aren't really 'removing' the file from the system... - you are more so 'unlink'ing it from the system - you're removing it from view :) - but your also unlinking it from the file system ;) - hey you can't drop the block in tetris! - no, only speed it up -* Bagder made the x11 lcd display flicker free now - try the new uisim - just committed - lots of updates :) - how do you select an entry? - right - ah - but you can't leave tetris ;-) - I better fix that - still, our first menu! - I like that big font - hehe - now - should I move the X11 stuff into a subdir? - or should I put the app stuff in a subdir? - put X11 in a subdir - it makes sense - then we put all apps in the root and just link to win32 or x11 - of course, the app stuff should probably be in the firmware dir... - yeah, but I expect we'll have lots of little "toy apps" mainly for the simulator - oh yes! - do we have a sleep() yet? - well we have it - but it's not working right on target, since we haven't set up the timer interrupt yet - I was just thinking how I should proceed to slow my app down ;-) - sleep(ticks) - why not sleep(ms) - prevents ms/MS_PER_TICK all over ;-) - use HZ/freq instead - no reason really, it's just the simplest implementation - doesn't really matter, we can have both ;-) - yup - now, which key do we stop tetris with? - a function key - or OFF - I'll use off for now - oh what fun ;-) - :) - add a big "Tetris" text too for the fun of it - ´ed - bed time ---- Bagder is now known as Bagderzzz -<-- Zagor has quit ("bye") - ummm.. what happened to the makefile for uisim? - nevermind -<-- Bagderzzz has quit (carter.openprojects.net irc.openprojects.net) ---> Bagderzzz (~daniel@as3-3-2.ras.s.bonet.se) has joined #rockbox -* adiamas screams at this stupid person - my god.. i wasn't happy totally with this guys id3 editor.. - so i started digging into it... - heh - it has to be -the- worst design and execution of code i have ever seen - i did the same thing with grip - lets have a struct of data, that also has bools in it that tell you if that data field needs to be edited. - why? - so you can pass it around your functions. - but lets be_really_ lazy and use getopt and rely on the externs -* adiamas screams softly into the night - who hacked out the tetris file again? ---- edx|sleeping is now known as edx|studying -* edx|studying thinks he's sick sleeping more than 10 hours the last two nights :? ---- Bagderzzz is now known as Bagder - hi bagder :) - hey - I moved the x11 sim stuff to its own dir yesterday - yea i just updated :) - so now we both could use the app.c and tetris.c in the uisimulator root - good idea. - nods - who wrote the tetris originally? - "Mattis Wadman" - there is another problem with the tetris code. - that give me a macro redefinition: - #define HAVE_RECORDER_KEYPAD - what do i do about it? - ahh hehhe - (you need this define there?) - i compile with ARCHOS_RECORDER defined the this is defined automatically. - uh, no it shouldn't be there - ok ill delete it - im trying to understand wtf is happening with the block_dat - data - another thing... - unistd.h - is not for windows - same #define is in the x11 should it be there? - so im gonna do that: - #ifndef _WIN32 - #include - #endif - right edx - also, for sleep, kernel.h must be included by tetris.c - (or app.c) - well, there is no target version of sleep() yet - there is. - kernel.c i think - i have seen it.. - yes - but it doesn't work - Bagder in tetris.c could you tell me what 'frame' is with respect to block_data? - eeeh - I don't know really - k... ill figure it out one way or another.. - Bagder: how do yo uselect a menu entry? :) -* adiamas begins to think that the numbness in his left pinky and ring finger is _not_ a good thing - go right - but tetris is the only one you can select ;-) - ok - :) - ill upload updated files that are compatible with win32 simulator. - ok? - do that - I'll make sure the x11 runs fine with em - yep - go ahead ;) - edx.. do you understand the block struct? - done, and modified the app.c and tetris.c slightly - no more unistd.h :-) - ok - neither for linux nor for windows :) - have you commited them yet? - yes - ok - you can press 'off' to abort tetris now - (which is the numerical keypad enter in my case) - yea - i use the same keycodes - ok great :) - the menu still moves a little fast :) - (tetris too) - how is it on linux? - that sleep is 1 second for mee - which makes everything a bit too slow ;-) - oh lol - sleep 1 is defined Sleep (1000/HZ * 1) for me - which is 1/10 second ;) - heh - the target sleep() takes 'ticks' as argument and we don't know yet how fast that is - so I haven't bothered - yea - bjorn said it was deifined with HZ (but maybe that value is not accurate yet) - its 1/100 second btw.. - not 1/10 - edx... do you understand the block_data structure? - no matter.. thats the least problem. - adiamas: no i didnt really read the code - edx|studying: oh, right, haven't seen that - k... - adi: wait a sec - hmm strange... - does it already contain rotoation... ? - lcd_drawpixel(start_x+x+block_data[block][frame][0][i], - looking at that.. the first array parameter contains the block #.. - the second one the frame (?) - maybe rotation? - the third parameter is either 0 or 1.. but i dont know why - nods - nods? - "To lower and raise the head quickly, as in agreement or acknowledgment." - ahh -* edx|studying nods too - was just irritated because you didnt write it as a /me msg ;) - i guess the four integers are the directions.. (block_data is seperated into 4-int blocks) - i just don't see the blocks there... -* adiamas shrugs - the first block is the square thingie.. - im playing around with it now - aha.. uhm.. - so: {{0,1,0,1},{0,0,1,1}} is a square? - i got it! - k.. shoot - *snip!* - one block always consists of four pixels! - {0,1,0,1},{0,0,1,1} - coordinate of first pixel: - (0,0) - of second pixel: (1,0) ; of third pix (0,1) of fourth pixel (1,1) - can you see how i do it - nth pixel coord = (data[0][n],data[1][n]) - ahhhh!!! got ya... - can you do me a favor.. write that in a comment above it? -* adiamas likes comments that make sense. - heheh sure :) -* adiamas is toast... - is it: - x - | - | - ----y - or is it - y| - | - | - sencond one - ------x - ? - nod - // - // block_data is built up the following way - // - // first array index specifies the block number - // second array index specifies the rotation of the block - // third array index specifies: - // 0: x-coordinates of pixels - // 1: y-coordinates of pixels - // fourth array index specifies the coordinate of a pixel - // - c comments mate ;) - like that? - no c|| -* edx|studying is not a very good formulator - c++ even - ok - /* - block_data is built up the following way - first array index specifies the block number - second array index specifies the rotation of the block - third array index specifies: - 0: x-coordinates of pixels - 1: y-coordinates of pixels - fourth array index specifies the coordinate of a pixel - */ - is that understandable... :/ - looks fine to me ---> edx|disconnected (edx@pD4B9E91F.dip.t-dialin.net) has joined #rockbox ---- edx|disconnected is now known as edx - int block_data[7][4][2][4] = - { - { - {{0,1,0,1},{0,0,1,1}} - }, - is that translated to: - int block_data[7][4][2][4] = - { - { - {{0,1,0,1},{0,0,1,1}}, - {{0,1,0,1},{0,0,1,1}}, - {{0,1,0,1},{0,0,1,1}}, - {{0,1,0,1},{0,0,1,1}} - }, - ? - because the block needs rotation - (but its the same in any direction) - i would assume so. -* edx commited tetris.c - yeah, seems every block pivits on (1,1) - or there in abouts ---- ChanServ gives channel operator status to edx -<-- edx has kicked edx|studying from #rockbox (Stupid irc corpse!) ---- edx removes channel operator status from edx ---- edx is now known as edx|studying ---> Zagor (~bjst@as9-5-6.k.s.bonet.se) has joined #rockbox - hi :) - hi - edx|studying: that tetris.c in the win32 dir should be removed now shouldn't it? - aehm - yea wait a sec - ok it is - :-) - is there any way to make 'sed' not use / for its' regex? - yes -* edx|studying doesnt understand a word - Zagor: just use it after the s - sxmooxpoo - ok. strange that the man page doesn't say that - what's 'sed' - one of those secret tricks ;-) - heh give me the man page ;) - sed is a dead cool unix command line tool - what does it do? - uh, replaces regexes in a stream ;-) - what are regexes - (sorry for asking so much) - regex is a pattern, similar to wildcard but a lot more advanced and powerful - ah ok - that is like *.[mp3|m3u] or something like that? - ".*(mp3|m3u)$" would be good regex for that - aha - that $ indicates that the ( and ) do not belong to the name? - no, $ matches end of string - so that the mp3 or m3u must end it - ahh - ok - really advanced ;) - right, and this is only scratching on the surface - hehe - what does sxmooxpoo do? - lol - it replaces all occurrances of 'moo' with 'poo' :-) - so sed can also rename files? - no, it replaces text in a stream - cat file | sed -e s/replace/this > newfile - ok - couldnt one use it for filenames as well.. i have needed something like that a couple of times ;) - sure you can - in unix you just write up a quick script to do it - hehe - its easier in bash than with sed unless you wanna do things that bash can't do - heh -* Bagder jumps, PsycoXul is alive ;-) - like 'for f in *;do mv $f `echo $f | sed -e s/bleh/blah/g`;done' or 'for f in *;do mv $f ${f//bleh/blah};done' - heh - or whatever :p - Bagder: yeah - that's precisely what I was doing, only "bleh" contained a full path with / characters - dependency generation now fixed for 'firmware' -* edx|studying shakes awestruck -* adiamas cocks his head to the side and stares at edx - what awestrikes you? - "like 'for f in *;do mv $f `echo $f | sed -e s/bleh/blah/g`;done' or 'for f in *;do mv $f ${f//bleh/blah};done'" - unix in a nutshell - actually, it's only: for d in $(DEPDIRS); do { if [ ! -d $$d ]; then mkdir $$d; fi; }; done - but then - what the heck das that do? - $(CC) -MM $(CFLAGS) $< |sed '\''s|\($*\)\.o[ :]*|\1.o $(<:%.c=%.d) : |g'\'' > $@; [ -s $@ ] || rm -f $@ -* Bagder falls off his chair laughing - it creates the directories listed in $(DEPDIRS) if they don't already exists -* edx|studying cries out despairing - what does "fi;" do there? - it's the end of "if" - ahh lol - think: if(true){ } - hmm - what does the second thing do? - it runs the dependency generator, with, umm, correct parameters :) - heh - hm.. aha -* adiamas thinks we need to get edx to dual boot his box ;) - yup - i can use vmware ;) - you guys know that, right? - $< |sed '\''s|\($*\)\.o[ :]*|\1.o $(<:%.c=%.d) : |g'\'' > that inserts the return value of sed ?? - edx trust me dude... once you get off windows, you don't go back... - adi: i have tried that a lot of times - i always came back ;) - i dont even have the latest linux installation file - where do i get it :) - can i d/l it somewhere? -* adiamas has always done his installs off cd, so i cant tell you. - heh - linux installation file? - well .. the cd image or whatever - http://mirrors.sunsite.dk/debian-netinst-cd/ - you use debian? - Zagor: if it has / chars its easier with sed using like sed -e #eh/blah/bleh#eh/blah/blah#g - not for this machine, but for others - "these images are intended for developers, administrators, and advanced users" ** ohoh - PsycoXul: I know, i'm using | in this expression - with bash's substitution you have to use / chars for the sub so you have to escape any /'s within it - yeah, with sed you can use i think any char -* edx|studying loads the iso @ 40kb/sek - why is it only 30 megs? - because it's a netinstall - because its net install - heh - ok - that wont work - i bet! - why not? - it's linux - why would net install work on linux :P - it works fine, but maybe you're not ripe for debian yet :) - heh - i will install with vmware - so it is no problem to remove it any time :P - forget vmware :p - you can't *really* use an os in vmware :p - why noy - well - what're you gonna do with it? - try the console commands you post lol - i mean its like making a system thats half of your real one but without direct hardware access - i use w2k on vmware too - what are you really running? - heh - winxp ;) -* adiamas runs screaming into the night - the most-bloaty-dummy-user-system there is haha - but it's cool :) - heh - this iso is a boot cd? - or what does it do? - should be - how many hd space do you recommend for a linux hd ? - all of it :) - haha - how much hd space do you have :) - 80 gigs - but actually, I have a 4 gig win95 partition for playing games - ok.. now i have 110 gigs.. then ill take 4 gigs for linux :P - hehe -* edx|studying booting vmware from debian image - do i want to retain linux kernel 2.0 compability? - :? - I doubt it - ok - "please choos the path inside the CD-ROM where the Debian Archive resides." - anyone knows where that is? -* Bagder shakes his head - just press enter - ok -* edx|studying is too stupid to just press enter - heh.. it works so far.. - but wait till it comes to the internet update - i am sure it will mess up!! - there it begins.. it cannot find teh basedbs.tgz :/ -* adiamas heads off to bedd for a bit - well did it find a network interface? vmware is no standard pc - see you all in a while ---- You are now known as adi|napping - i am not that far yet - night adiamas - Next: Install the base system - night.. - *pressing enter* - Please selecte the medium you will use to install blah.. - that is CDRom Drive, right? - network - heh.. ok network is n/a - bah. told you vmware was no good - i didnt configure drivers yet.. wait a sec - bah.. it does not contain a device driver for my card - you're not having a card, you're having vmware - i do have a card - it uses a special virtual network interface - vmware makes it :o) - yes - it would not support my adapter anyways - it only has 2 dlink cards listed - which dlink do you have? - most dlinks are NE2000 compatible - yea i was gonna try that - D-Link DFE-530TX - PCI NE2000 support - that's ok? - "Cheap, drivers installed perfectly, Linux support. " - (googled quote) - sounds ok - "installation failed" - why cant it do like windows and determine drivers itself? - :P -* Bagder smacks edx - it did for me. try native and you'll se - never ever am i gonna try native unless i want to destroy my windows :P - the via-rhine driver it should be - http://www.dlink.co.uk/support/linux_supp.html - repartition the disk so you get a couple of gigs free, then there's no worry - thanks bagder.. tulip aha - wont work either - tulip? - via-rhine - that is the driver name - ooops! - right, thanks - fails anyways -* edx|studying does not know any command-line arguments - for the network adapter - what filesystem shall i install on the hd? - ext2 - k - and a linux swap? - yes - Extended = ext2? - yes - I'll run off and shop some food, back in an hour or so - *all thse sunday-shopping people* - i wish that was possible in Germany - it's really strange that you can't buy stuff on weekends - it is strange that you can ;) - on saturdays we can till 1PM (on every fourth saturday till 4PM) - but that is all - Are gas stations open? - yea - but they are expensive - of course, they have no competition - government mandated monopolies are usually quite expensive... - debian is still checking for bad blocks on the hd.. ill see what i can do after that.. - yea - how big partition are you using? - 4GB and 300mB for swap - ok - i guess the bigges problem is the vmware network adapter - it shouldn't take long, but i guess everything is a bit slower under vmware - yea - its 2/3 finished - i'll try an ethernet driver maybe... ---> calpefrosch (calpefrosc@p5082C485.dip0.t-ipconnect.de) has joined #Rockbox - hi - hi - have to done something at the simulator ? - Zagor: Note: If the virtual machine's Ethernet adapter has been enabled, the installation program will auto-detect and load the AMD PC/Net 32 driver - yea - but the file system thing is not working :/ - it gives me an error i just cant fix! - edx|studying: I added file.h and dir.h to firmware/common yesterday, so you know the API - we renamed unlink() to remove() - I will update the code tomorrow at work. I have no VC++ at home. - oh.. I added that file to - but didnt commit - ok - hehe - At the "Network Configuration" screen, respond OK to use the default: Use bootp/dhcp. - do you have a fixed ip or dhcp? - in LAN i have dhcp - then use that - well i am not that far yet - k - AMD PC/Net 32 driver.. i hope that one exists - (and works) - what do you use to organize the MP3 files ? I have about 10 GB. - heh ntfs file system - nothing actually :) - directories :) - mhh, good idea. but how to search one song ? - I mean, on the archos... - oh - you need a good system... - in your head and in your archos :) - genre/artist/album/name.mp3 - hmm, I think I'm to lazy... ;-) - ok, I have to organzie some files, hehe - cu - what is the device path of the cdr drive? - cu ---- calpefrosch is now known as calpefrosch|drea ---- calpefrosch|drea is now known as calpefrosch|away - /dev/cdrom usually - *hard reboot and redo it all* - hehe - *keep pressing enter* - *beeing further than before* - brb - what file systems do i install to the kerbnel? -* Bagder crawls back into his chair - hi - hey - (that is re) - no success installing debian :( - it wont work with the network adapter - annoying - really. - anybody ever seen these things? http://www.thinkgeek.com/stuff/computing/5a15.shtml - edx|studying: what network adapter - debian should have no problems with vmware's emulated nic - PsycoXul: D-LINK 530X - weird gadget - yea its the vmware bridged network adapter - what does this soundbug do? - play music aloud? - " A single Soundbug can generate sound levels of up to 75 dBm peak, easily loud enough for a group of people to enjoy music together, or listen to the sound output from a laptop presentation or a camcorder video. " ---> alkorr (alkorr@srs07v-7-188.n.club-internet.fr) has joined #rockbox - hi alkorr - hi Bag' - hum... Bagd' - hi alan. - i made a makefile for uisw32 - good - did you commit ? - yea - it'll probably need adjusting though after yesterday night - maybe.. - no actually not - teh file.h inside the firmware dir needs tho - weird i didn't receive any new CVS commits in my emailbox... - nobody does currently i think - the commits mails are absent right now - we've commited like crazy, but no mails... - but i did receive a test from Björn - edx: you should have a lookup in this page : http://www.gamedev.net/reference/articles/article1598.asp - but writing in SDL is so much more work.. - SDL is a nice interface :) - but it is not thought for such use - i don't think so, there would be less code to write - i dont think there would be less code to write. - look at it now - its less than 100 lines win32 specific code - yes but the main goal is to have the same code for Linux and Windows, even people from MacOS and other unixes should be able to use the same code - anyway you are not interested by a SDL port ? - alkorr: if you make one, we'll surely be interested - Bagd': we will see - quite now i'm looking for simple examples - see you -<-- alkorr has quit () -<-- calpefrosch|away has quit () - see ya tomorrow, gotta go now -<-- Bagder has quit ("http://daniel.haxx.se") ---> calpefrosch (~hotrana@p5082C485.dip0.t-ipconnect.de) has joined #rockbox - is there somewhere a file.c ? - only for simulator. - file-win32.c - you dont really need it tho. - al teh functions are native (stdio.h , io.h) - yes, but I have a book "C Programmierung lernen" in my hands. - hehe - and wanted to know why there is a "extern" statement but no implementation - well - the impelementation is missing. - please don't laugh ;-) - no way.. :) - the implementation is indeed missing for the firmware.. but not for the simulator - I'm coming from the pascal ( Turbo Pascal, Delphi ) edge - i put an #ifndef SIMULATOR there - yea i did that too once ;) - yeah, I saw that. so there are no firmware-file function? - and java - i never did java - right, no firmware file functions - okay. - and the dir is also missing = - yea - even the predefinitions are missing - my file.h contained them but Zagor commited faster then i did ;) - oh - can I talk to you tomorrow morning til 8 ? - i gotta go to school at 7.. - i might not even be online before :/ - hmm, okay. can you try to put some compiling/working code to the cvs ? - so I can "play" around with it ? - the code is working - you resmove the file-win32.c from the project. - the int works perfectly. - *int = it - tnx, are you working on the file-win32.c ? - currently not... - i cannot spot the mistake *shame on me* - he, you are 15 (right?) and a good programmer. do you want to do this as a job in future = - ? - sure.. :) - cool - I love this job. sometimes I cannot sleep because I'm thinking about a problem. - hehe i have had this since I was 10 :) - And if I get the clue, I cannot wait to get to job. I really love it. - yea - it is amazing - sometimes I get up at 5 AM just to try something :) - yeah. Everybody calls me a "hacker", only because I'm not such a clean Projectmanager. - like some others. - hehe, there are many really bad coders in the company. - hehe - I'm just lokking at your file-win32.c - hm the c file is rather uninteresting - the file-win32.h causes the problem - ah - typedef _finddata_t DIR; - it wont recognize _finddata_t though it is definded or something - I really have no clue. - what means the _ before the name ? - it is just definde that way. in io.h - its not defined by me or anyone of this project. it is a standard type - yes, I see. and what means the typedef ? - if it's already defined ? - I found an example in the www: struct _finddata_t FFBLK1; - ahhhhhhhhhhhhh! - THANKS - i guess you fixed it.. - *wait a sec* - * rejoice * - look at this: http://www.dma.org/~deand/potm.html - sorry, my girlfried yells. ;-) - hehe - I have to go. good luck. I try some things tomorrow. l8r ---- calpefrosch is now known as calpefrosch|away - yeah! i got it - thanks calpefrosch :) - ill udate cvs now - Zagor, are you there? ---- edx|studying is now known as edx|away ---- edx|away is now known as edx - are you there now, Zag? ---> Linus (~linus@labb.contactor.se) has joined #rockbox - hi - Hi - humdidum -<-- Linus (~linus@labb.contactor.se) has left #rockbox ---- Zagor is now known as Zagor|away ---- calpefrosch|away is now known as calpefrosch - hey - hi - jeez thanks heaps! - i fixed it ;) - cool - didnt commit yet... wait a sec. - I just install VC .NET and test the sim - ah.. well it is useless anyways - the functions need to be defined in file.h and i was gonna ask zagor whether i may do that.. hes not in right now -<-- calpefrosch has quit (Read error: 104 (Connection reset by peer)) ---> calpefrosch (~calpefros@p5082C485.dip0.t-ipconnect.de) has joined #rockbox - sorry, the setup has done a reset - without asking me :-( - edx, ru there? - yea - hey, this damned .NET Setup is not working - I can't install VC++ - do you have the beta, or the origin version ---- calpefrosch is now known as calpefrosch|away ---- calpefrosch|away is now known as calpefrosch - edx: have you commited the file-win32.* ??? -<-- calpefrosch has quit () ---> calpefrosch (calpefrosc@p5082C485.dip0.t-ipconnect.de) has joined #rockbox ---- calpefrosch is now known as calpefrosch|away - hmmmm - i have the original version - beta worked for me too - but i have heard from other ppl that beta did not work for them ---- calpefrosch|away is now known as calpefrosch - hmm, do you commit ? - .. - your work ? - committed the two files.. - tnx - but they dont work and are unneeded yet. - at least they compile - why don't they work ? - uhm i dont know - couldt really test them - i dont know what those functions do in linux - so you want to write function for directory-access ? ---- calpefrosch is now known as calpefrosch|away - they will be needed at some point of time ---- edx is now known as edx|away ---- coyote- is now known as Tumm ---- Zagor|away is now known as Zagor ---- edx|away is now known as edx - hi Zagor.. - hi - i have a question - ok - reagrding the directory functions: - where do i put declaration of the functions? - also file.h - they're already in dir.h - ah ok! - i know what was wrong with the dir definition :) - :) - typedef struct _findfata_t DIR; - ***struct*** - ah - another thing.. what parts of the dirent struct will be used? - i saw it contains an offset to the next dirent entry (??) - no, it contains the name - and a few other thigns. - it will also contain an attribyte - attribute - and a file size - that's about all it will contain - struct direnttag - { - long d_ino; /* inode number */ - long d_off; /* offset to the next dirent */ - unsigned short d_reclen;/* length of this record */ - unsigned char d_type; /* type of file */ - char d_name[256]; /* filename */ - }; - don't look at that - look at dir.h - aha - wait a sec - oh.. - good.. well may I put a define in there - the DIR thing has to be different for the simulator? - why? - oh, ok - what does the offset thing in the dir do? - array index? - it's implementation specific - but i do not have to keep it for my implementation, do i? - no you can #ifdef your own implementation - i will do that in a separet header file.. - dir-win32.h - ok, if you want - then.. i need to update file.h - ok, with what? - because if you compile with the simulator, you do not need to define open close etc.. (also not with linux, right)? - right - then.. the compiler gives me an error with your current dirent definition... - of course. it's the definition for the firmware, not the simulator - is that ok: - typedef struct { - int d_name[256]; - } dirent; - the simulator does not have to change the dirent definition after all. - (at least in windows) - dirent *readdir (DIR *dir); <--- this will give an error otherwise (if i dont take the typedef above) - so what is the problem? - i need to replace you definition of dirent with mine ;) - fine, go ahead - use a file-win32.h - extern struct dirent* readdir(DIR* dir); then you could replce this with: - extern dirent *readdir (DIR *dir); - or is the struct thing somehow important? - yes, the API is important - it must stay the same - the struct must remain there? - it's a struct called dirent. it's not a type called dirent - tehn ill apply it to my functions as well and it wont matter. - good - the struct contents can change, but the function definitions must be exact - ok. - done. - ill commit what i changed - done. - don't use _WIN32. use WIN32 - hmm grummel.. - umm you smashed my last commit... - hm not really. - no, sorry. - i updated before i commited - i saw wrong :) - heh :) - ok.. WIN32 instead of _WIN32 - commited. - how can i receive mails for cvs updates? - is there a cvs-update-mailing list lol - yes there is - rockbox-cvs@cool.haxx.se - how can I sign up for that? - send a mail to majordomo@cool.haxx.se with the text (no subject): subscribe rockbox-cvs - thanks. - right now there's a problem with the cvs mails but I hope it will be worked out soon - yea i know of the problem. - hey.. other people can unsubscribe me ;) - if the know my e-mail adress - yup - I have to approve all requests for mail addresses which differ from the one you send from - ok then.. i gotta go (school tomorrow again *crying out loudly*) - cya - bye -* edx is looking forward to the rockbox shirt he gets tomorrow - oh - abunsh of cvs notices just arrived ;) - really? - like 10 - nice - they append the complete files. that is cool. - ah, now I got them too - they append the diffs - LOOL even more - they are not the latest commits though - no but I guess their mail server is a bit busy at the moment... - hehe - well.. good night then - cu tomorrow (ill send you a picture of me wearing the shirt then) - hehe. good night -<-- edx has quit () -<-- Zagor has quit (Remote closed the connection) ---> Bagder (~daniel@as3-3-2.ras.s.bonet.se) has joined #rockbox -<-- calpefrosch|away (calpefrosc@p5082C485.dip0.t-ipconnect.de) has left #rockbox diff --git a/www/lock.t b/www/lock.t deleted file mode 100644 index 0e6944f2b8..0000000000 --- a/www/lock.t +++ /dev/null @@ -1,44 +0,0 @@ -#define _PAGE_ Unlocking a password protected harddisk -#include "head.t" - -

During development of the Rockbox firmware, on several occations the harddisk has become locked, i.e. password protected. This results in the Archos displaying: -

-Part. Error
-Pls Chck HD
-
- -

We are still not 100% sure why it happens. Theories range from -low-power conditions to accidental chip select failure. -It has also happened for normal users, -using the standard Archos-supplied firmware, although it's more frequent for -us developers. - -

We do however know how to unlock the disk: - -

Windows/DOS unlock

- -

Note: This requires taking the Archos apart, which will void your warranty! - -

    -
  1. Grab -atapwd -(written by -Alex Mina) -
  2. Create a bootable DOS floppy disk, and put atapwd.exe on it -
  3. Remove the harddisk from your Archos and plug it into a laptop (or a standard PC, using a 3.5" => 2.5" IDE adapter) -
  4. Boot from the floppy and run atapwd.exe -
  5. Select the locked harddrive and press enter for the menu -
  6. For Fujitsu disks: Choose "unlock with user password", then "disable with user password". The password is empty, so just press enter at the prompt. -
  7. For Toshiba disks, if the above doesn't work: Choose "unlock with master password", then "disable with master password". The password is all spaces. -
  8. Your disk is now unlocked. Shut down the computer and remove the disk. -
- -

Big thanks to Magnus Andersson for discovering the Fujitsu (lack of) user password! - -

Linux unlock

- -

For those of us using Linux, we have written -an isd200 driver patch for unlocking the disk. -This modified driver will automatically unlock the disk when you connect your Archos via USB, so you don't have to do anything special. Apply the patch to a 2.4.18 linux kernel tree. - -#include "foot.t" diff --git a/www/main.t b/www/main.t deleted file mode 100644 index ed7b0ac9af..0000000000 --- a/www/main.t +++ /dev/null @@ -1,155 +0,0 @@ -#define _LOGO_ -#define _PAGE_ Open Source Jukebox Firmware -#define MAIN_PAGE -#include "head.t" - -

Purpose

- -

The purpose of this project is to write an Open Source replacement -firmware for the Archos Jukebox 6000, Studio and Recorder MP3 players. - -

Activity

- -#include "activity.html" - -

News

- -

2002-05-27: All v1.0 code is written. We are now entering debug phase. - -

2002-05-26: New web design. First player release drawing closer. - -

2002-05-03: SOUND! Linus' experimental MAS code has -played our first 4 seconds of music. - -

2002-04-27: Julien Labruyére has generously donated an Archos Jukebox 6000 to the project. Thank you! - -

2002-04-25: Grant Wier has tested the Player LCD's double-height capability: - - -

2002-04-23: Report from the Rockbox Spring Developer Conference 2002 ;-) - -

2002-04-22: Gentlemen, we have threading. - -

2002-04-11: The Recorder charset has been mapped. - -

2002-03-28: Lots of new stuff on the web page: -faq, -irc logs, -tools and -photos. - -

2002-03-25: New section for -hardware modifications. -First out is the long awaited -serial port mod. - -

2002-03-25: New instructions for -how to build an SH-1 cross-compiler. - -

2002-03-14: New linux patch and instructions for -unlocking the archos harddisk if you have the "Part. Error" problem. - -

2002-03-08: Uploaded a simple example, showing -how to build a program for the Archos. - -

2002-03-05: The -harddisk password lock problem is solved! -Development can now resume at full speed! - -

2002-01-29: If you have feature requests or suggestions, -please submit them to our -Sourceforge page. - -

2002-01-19: Cool logo submitted by Thomas Saeys. - -

2002-01-16: The project now has a proper name: Rockbox. -Logos are welcome! :-) -
Also, Felix Arends wrote a quick tutorial -for how to get sh-gcc running under windows. - -

2002-01-09: Nicolas Sauzede -found out -how to -display icons and custom characters on the Jukebox LCD. - -

2002-01-08: The two LCD charsets have been -mapped and drawn. - -

2002-01-07: -Jukebox LCD code. -I have written a small test program that scrolls some text on the display. -You need -this file -for units with ROM earlier than 4.50 and -this file -for all others. (The files are gzipped, you need to unzip them before they will work.) - -

2001-12-29: Recorder LCD code. Gary Czvitkovicz knew the Recorder LCD controller since before and wrote some -code -that writes text on the Recorder screen. - -

2001-12-13: First program -released! -A 550 bytes long -archos.mod -that performs the amazing magic of flashing the red LED. :-) - -

2001-12-11: Checksum algorithm solved, thanks to Andy Choi. A new "scramble" utility is available. - -

2001-12-09: Working my way through the setup code. The notes are being updated continously. - -

2001-12-08: Analyzed the exception vector table. See the notes. Also, a mailing list archive is up. - -

2001-12-07: - I just wrote this web page to announce descramble.c. -I've disassembled one firmware version and looked a bit on the code, but no real analysis yet. -Summary: Lots of dreams, very little reality. :-) - -

I've set up a mailing list: rockbox@cool.haxx.se. -To subscribe, send a message to majordomo@cool.haxx.se with the words "subscribe rockbox" in the body. - - -

About the hardware

- -

I wrote a "dissection" page some months ago, -showing the inside of the Archos and listing the main components. -I have also collected a couple of data sheets. -Also, don't miss the research notes -from my reverse-engineering the firmware. - -

About the software

- -

The player has one version of the firmware burnt into flash ROM. -The first thing this version does after boot is to look for a file called -"archos.mod" in the root directory of the harddisk. -If it exists, it is loaded into RAM and started. -This is how firmware upgrades are loaded. - -

Dreams

-

Ok, forget about reality, what could we do with this? - -

    -
  • All those simple mp3-play features we sometimes miss: -
      -
    • No pause between songs -
    • Mid-song resume -
    • Mid-playlist resume -
    • No-scan playlists -
    • Unlimited playlist size -
    • Autobuild playlists (such as "all songs in this directory tree") -
    • Auto-continue play in the next directory -
    • Current folder and all sub-folder random play -
    • Full disk random play -
    • REAL random (if press back it goes to the previous song that was played) -
    • Multi song queue (folder queue) -
    -
  • Faster scroll speed -
  • Archos Recorder support. Most of the hardware is the same, but the display and some other things differ. -
  • All kinds of cool features done from the wire remote control, including controlling your Archos from your car radio (req hw mod) -
  • Ogg Vorbis support [unverified: the MAS is somewhat programmable, but enough?] -
  • Support for megabass switch (req hw mod) [unverified: I just saw the DAC docs shows how to do it switchable. we need a free port pin to be able to switch] -
  • Player control via USB [unverified] -
  • Memory expansion? [doubtful: the current DRAM chip only has 10 address lines. we'd have to pull off one heck of a hw mod to expand that] -
- -#include "foot.t" diff --git a/www/mods/Makefile b/www/mods/Makefile deleted file mode 100644 index 751a62f256..0000000000 --- a/www/mods/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -ACTION=@echo preprocessing $@; rm -f $@; $(HOME)/bin/fcpp -WWW -I.. -Uunix -H -C -V -LL >$@ - -SRC := $(wildcard *.t) -OBJS := $(SRC:%.t=%.html) - -all: $(OBJS) - -%.html : %.t - $(ACTION) $< diff --git a/www/mods/a1.jpg b/www/mods/a1.jpg deleted file mode 100644 index ff28b2b653..0000000000 Binary files a/www/mods/a1.jpg and /dev/null differ diff --git a/www/mods/a2.jpg b/www/mods/a2.jpg deleted file mode 100644 index 147f93aa90..0000000000 Binary files a/www/mods/a2.jpg and /dev/null differ diff --git a/www/mods/a3.jpg b/www/mods/a3.jpg deleted file mode 100644 index a78c4ce9c1..0000000000 Binary files a/www/mods/a3.jpg and /dev/null differ diff --git a/www/mods/a4.jpg b/www/mods/a4.jpg deleted file mode 100644 index 612874d7d4..0000000000 Binary files a/www/mods/a4.jpg and /dev/null differ diff --git a/www/mods/a5.jpg b/www/mods/a5.jpg deleted file mode 100644 index 378c101238..0000000000 Binary files a/www/mods/a5.jpg and /dev/null differ diff --git a/www/mods/a6.jpg b/www/mods/a6.jpg deleted file mode 100644 index 2e3db070af..0000000000 Binary files a/www/mods/a6.jpg and /dev/null differ diff --git a/www/mods/a7.jpg b/www/mods/a7.jpg deleted file mode 100644 index 3708468555..0000000000 Binary files a/www/mods/a7.jpg and /dev/null differ diff --git a/www/mods/a7b.jpg b/www/mods/a7b.jpg deleted file mode 100644 index 729b021f19..0000000000 Binary files a/www/mods/a7b.jpg and /dev/null differ diff --git a/www/mods/a8.jpg b/www/mods/a8.jpg deleted file mode 100644 index f17e332eaa..0000000000 Binary files a/www/mods/a8.jpg and /dev/null differ diff --git a/www/mods/a8b.jpg b/www/mods/a8b.jpg deleted file mode 100644 index caf2667735..0000000000 Binary files a/www/mods/a8b.jpg and /dev/null differ diff --git a/www/mods/b1.jpg b/www/mods/b1.jpg deleted file mode 100644 index f720194b4a..0000000000 Binary files a/www/mods/b1.jpg and /dev/null differ diff --git a/www/mods/b10.jpg b/www/mods/b10.jpg deleted file mode 100644 index 677b924e58..0000000000 Binary files a/www/mods/b10.jpg and /dev/null differ diff --git a/www/mods/b11.jpg b/www/mods/b11.jpg deleted file mode 100644 index 03c523ae07..0000000000 Binary files a/www/mods/b11.jpg and /dev/null differ diff --git a/www/mods/b2.jpg b/www/mods/b2.jpg deleted file mode 100644 index f21bf9312a..0000000000 Binary files a/www/mods/b2.jpg and /dev/null differ diff --git a/www/mods/b3.jpg b/www/mods/b3.jpg deleted file mode 100644 index 9669b5f10b..0000000000 Binary files a/www/mods/b3.jpg and /dev/null differ diff --git a/www/mods/b4.jpg b/www/mods/b4.jpg deleted file mode 100644 index f7f2e7ed40..0000000000 Binary files a/www/mods/b4.jpg and /dev/null differ diff --git a/www/mods/b5.jpg b/www/mods/b5.jpg deleted file mode 100644 index f64132826e..0000000000 Binary files a/www/mods/b5.jpg and /dev/null differ diff --git a/www/mods/b6.jpg b/www/mods/b6.jpg deleted file mode 100644 index daf04a46e8..0000000000 Binary files a/www/mods/b6.jpg and /dev/null differ diff --git a/www/mods/b7.jpg b/www/mods/b7.jpg deleted file mode 100644 index 43ac6d7cae..0000000000 Binary files a/www/mods/b7.jpg and /dev/null differ diff --git a/www/mods/b8.jpg b/www/mods/b8.jpg deleted file mode 100644 index 91387e8b18..0000000000 Binary files a/www/mods/b8.jpg and /dev/null differ diff --git a/www/mods/b9.jpg b/www/mods/b9.jpg deleted file mode 100644 index 403acbbeee..0000000000 Binary files a/www/mods/b9.jpg and /dev/null differ diff --git a/www/mods/d1.jpg b/www/mods/d1.jpg deleted file mode 100644 index 23567ce4f1..0000000000 Binary files a/www/mods/d1.jpg and /dev/null differ diff --git a/www/mods/disassemble.t b/www/mods/disassemble.t deleted file mode 100644 index e5941bd2ee..0000000000 --- a/www/mods/disassemble.t +++ /dev/null @@ -1,30 +0,0 @@ -#define _PAGE_ Disassembling the Archos -#include "head.t" - -

There are several ways to disassemble the Archos Jukeboxes. -Here is an approach where you don't need to bend any metal parts. - - -

-
-First, remove the battery covers and unscrew all 8 visible screws: 2 torx screws on the left and right sides, and 2 small philips head screws on the top and bottom. Then you simply lift off the plastic top cover. -


- -

-
-Use your thumb nails to compress the thin edge of the rubber while gently pulling the metal plate over it. -


- -

-
-Do the same on the side. -


- -

-
-You have now freed one end of the Archos. -Now lift the blue rubber bumbers up from the circuit board on the other end, and simply slide the Archos out of its' back plate. - -

Björn - -#include "foot.t" diff --git a/www/mods/disassemble2.t b/www/mods/disassemble2.t deleted file mode 100644 index 7cdbc636fa..0000000000 --- a/www/mods/disassemble2.t +++ /dev/null @@ -1,38 +0,0 @@ -#define _PAGE_ Taking the electronics apart -#include "head.t" - -

First, disassemble the Archos. - -

-
-Locate the three solder points where the top board is soldered to the frame. -


- -

-
-Remove the solder from these points. -


- -

-
-Now carefully lift the top board... -


- -

-
-...while pushing down on the CPU board below it. -

The CPU board is connected with a 40-pin connector, that you have to disconnect by carefully pushing it down on both sides. Use a semi-soft rounded plastic tool. DO NOT USE A SCREWDRIVER! There are delicate traces on the CPU board that you DON'T want to damage! -


- -

-
-Ah, there. The top board is separated from the bottom (CPU) board and folded out to the side. - -

The CPU board can now be removed by carefully pulling it off its' connector to the MP3REAR board. - -

Most likely, your unit will have less patch wires than this and might have a different set of power components on the left. That's because this is a Really Old Model™, made back in the 20th century (week 44, 2000) :-) -


- -

Björn - -#include "foot.t" diff --git a/www/mods/esd.jpg b/www/mods/esd.jpg deleted file mode 100644 index 96e9d95f5c..0000000000 Binary files a/www/mods/esd.jpg and /dev/null differ diff --git a/www/mods/harddisk.t b/www/mods/harddisk.t deleted file mode 100644 index 9ff8222155..0000000000 --- a/www/mods/harddisk.t +++ /dev/null @@ -1,8 +0,0 @@ -#define _PAGE_ Replacing the harddisk -#include "head.t" - -

First, disassemble the Archos. - -

-
-Here's the first serial line put in place. It's a little difficult to see, but it goes from the pad on the right to the rightmost connector of the LINE IN jack on the left. Click the image for a 1244x764 version. diff --git a/www/mods/index.t b/www/mods/index.t deleted file mode 100644 index 38b637ebcb..0000000000 --- a/www/mods/index.t +++ /dev/null @@ -1,23 +0,0 @@ -#define _PAGE_ Hardware modifications -#include "head.t" - -

- -

-
Practice safe modding! - -#include "foot.t" diff --git a/www/mods/reassemble.t b/www/mods/reassemble.t deleted file mode 100644 index d14f6ea85a..0000000000 --- a/www/mods/reassemble.t +++ /dev/null @@ -1,10 +0,0 @@ -#define _PAGE_ Getting the bumbers into place -#include "head.t" - -

-
-Use a thin flat-headed screwdriver to carefully "lift out" the bumpers to the right position. - -

Björn - -#include "foot.t" diff --git a/www/mods/rs232.t b/www/mods/rs232.t deleted file mode 100644 index 6abcea310b..0000000000 --- a/www/mods/rs232.t +++ /dev/null @@ -1,69 +0,0 @@ -#define _PAGE_ RS232 converter -#include "head.t" - -

What is this?

-

-This is an RS232 converter for interfacing a PC with an Archos Jukebox (or any other device with a 3.3V serial port). It converts the PC serial port signals to 3.3V levels. The design is very straightforward, using a standard MAX3232 transceiver. - -

How to power it the easy way

-

-It takes its power from the DTR signal in the serial port, so the communication software in the PC must set the DTR signal ACTIVE for this to work. It might still not work on some laptops, that may have a weak driver for the DTR signal. - - -

How to power it the safe way

-

-If your PC is a laptop or otherwise might risk having too little power in the serial port, it is also possible to take power from the USB port or another 5-10V source. Just remove the D1 diode and connect the power to the +5V and GND pads. - -

How to make one

- -

-
Circuit board bottom layout -(PDF) - -

-
Circuit board top layout -(PDF) - -

-
Circuit board component placement -(PDF) - -

-
Schematic -(big PNG 33kb) -(PDF) - -

Bill of materials

-
-Part  Value      Device        Package  Description
-C1    0.1uF      C-EUC0805     C0805    Capacitor
-C2    0.1uF      C-EUC0805     C0805    Capacitor
-C3    0.1uF      C-EUC0805     C0805    Capacitor
-C4    0.1uF      C-EUC0805     C0805    Capacitor
-C5    1uF        CPOL-EUCT3216 CT3216   Polarized Capacitor
-D1    BAS32      DIODE-SOD80C  SOD80C   Diode
-IC1   LP2980IM5  LP2980IM5     SOT23-5  3.3V Voltage regulator
-IC2   MAX3232CWE MAX3232CWE    SO16     RS232 Transceiver
-P1    DSUB9      DSUB9         DSUB9    9-pin board mounted D-SUB, 90 deg. angle
-
- -

To make your life complete, here is Linus' -complete schematics made in Eagle 4.08r2. - -

Contents: -

-Archive:  Rs232.zip
-  Length     Date   Time    Name
- --------    ----   ----    ----
-    14175  03-26-02 11:13   eagle.epf
-     7588  03-06-02 16:28   gerber.cam
-    10271  03-06-02 15:32   linus.lbr
-      848  03-26-02 13:50   README
-      570  03-26-02 13:18   RS232 Converter.bom
-    13443  03-26-02 10:57   RS232 Converter.brd
-   187210  03-06-02 16:18   RS232 Converter.sch
- --------                   -------
-   234105                   7 files
-
- -#include "foot.t" diff --git a/www/mods/rs232_board_bottom.pdf b/www/mods/rs232_board_bottom.pdf deleted file mode 100644 index 566dd8bb5c..0000000000 Binary files a/www/mods/rs232_board_bottom.pdf and /dev/null differ diff --git a/www/mods/rs232_board_bottom.png b/www/mods/rs232_board_bottom.png deleted file mode 100644 index 6623f8e0a1..0000000000 Binary files a/www/mods/rs232_board_bottom.png and /dev/null differ diff --git a/www/mods/rs232_board_place.pdf b/www/mods/rs232_board_place.pdf deleted file mode 100644 index 75c4bdc04d..0000000000 Binary files a/www/mods/rs232_board_place.pdf and /dev/null differ diff --git a/www/mods/rs232_board_place.png b/www/mods/rs232_board_place.png deleted file mode 100644 index 69c1139802..0000000000 Binary files a/www/mods/rs232_board_place.png and /dev/null differ diff --git a/www/mods/rs232_board_top.pdf b/www/mods/rs232_board_top.pdf deleted file mode 100644 index 507f381c96..0000000000 Binary files a/www/mods/rs232_board_top.pdf and /dev/null differ diff --git a/www/mods/rs232_board_top.png b/www/mods/rs232_board_top.png deleted file mode 100644 index e6eb6feadd..0000000000 Binary files a/www/mods/rs232_board_top.png and /dev/null differ diff --git a/www/mods/rs232_eagle.zip b/www/mods/rs232_eagle.zip deleted file mode 100644 index f319a73b9a..0000000000 Binary files a/www/mods/rs232_eagle.zip and /dev/null differ diff --git a/www/mods/rs232_schematic.pdf b/www/mods/rs232_schematic.pdf deleted file mode 100644 index d7f539657a..0000000000 Binary files a/www/mods/rs232_schematic.pdf and /dev/null differ diff --git a/www/mods/rs232_schematic.png b/www/mods/rs232_schematic.png deleted file mode 100644 index b65d20137d..0000000000 Binary files a/www/mods/rs232_schematic.png and /dev/null differ diff --git a/www/mods/rs232_schematic_big.png b/www/mods/rs232_schematic_big.png deleted file mode 100644 index d32daf69ed..0000000000 Binary files a/www/mods/rs232_schematic_big.png and /dev/null differ diff --git a/www/mods/serialport.t b/www/mods/serialport.t deleted file mode 100644 index ce52ea67ec..0000000000 --- a/www/mods/serialport.t +++ /dev/null @@ -1,22 +0,0 @@ -#define _PAGE_ Making LINE IN a serial port -#include "head.t" - -

Here's how you connect the LINE IN jack to the 7034 serial port, in order -to use it for remote debugging: - -

First, disassemble the Archos and -take apart the electronics. - -

-
-Here's the first serial line put in place. It's a little difficult to see, but it goes from the pad on the right to the rightmost connector of the LINE IN jack on the left. Click the image for a 1244x764 version. - -


- -

-
-And here's how the second line should be connected. Click for bigger image. - -

Björn - -#include "foot.t" diff --git a/www/mods/toast.jpg b/www/mods/toast.jpg deleted file mode 100644 index bd3aae8437..0000000000 Binary files a/www/mods/toast.jpg and /dev/null differ diff --git a/www/notes.t b/www/notes.t deleted file mode 100644 index f3ad4c3774..0000000000 --- a/www/notes.t +++ /dev/null @@ -1,416 +0,0 @@ -#define _PAGE_ Jukebox notes -#include "head.t" - -

Exception vectors

- -

The first 0x200 bytes of the image appears to be the exception vector table. -The vectors are explained on pages 54 and 70-71 in the SH-1 Hardware Manual, - -

Here's the vector table for v5.03a: - - - - - - - - - - - - - - - - - -
VectorAddressDescription/interrupt source
009000200Power-on reset PC
10903f2bcPower-on reset SP
209000200Manual reset PC
30903f2bcManual reset SP
1109000cacNMI
640900c060IRQ0
7009004934IRQ6
7809004a38DMAC3 DEI3
800900dfd0ITU0 IMIA0
880900df60ITU2 IMIA2
900900df60ITU2 OVI2
10409004918SCI1 ERI1
105090049e0SCI1 Rxl1
10909010270A/D ITI
- -

From the use of address 0x0903f2bc as stack pointer, we can deduce -that the DRAM is located at address 0x09000000. -This is backed by the HW manual p102, which says that DRAM can only be at put on CS1, which is either 0x01000000 (8-bit) or 0x09000000 (16-bit). - -

The vector table also corresponds with the fact that there is code at address 0x200 of the image file. 0x200 is thus the starting point for all code. - -

Port pins

-

- -

Port A pin function configuration summary: - - - - - - - - - - - - - - - - - - -
PinFunctionInput/outputInitial valueUsed for
PA0i/oInputDC adapter detect
PA1/RASOutputDRAM
PA2/CS6OutputIDE
PA3/WAIT
PA4/WROutputDRAM+Flash
PA5i/oInputKey: ON
PA6/RDOutputIDE
PA7i/oOutput0
PA8i/oOutput0
PA9i/oOutput1
PA10i/oOutput
PA11i/oInputKey: STOP
PA12/IRQ0
PA13i/o
PA14i/o
PA15i/oInputUSB cable detect
- -

- -

Port B pin function configuration summary: - - - - - - - - - - - - - - - - - - -
PinFunctionInput/outputInitial valueUsed for
PB0i/oOutputLCD
PB1i/oOutputLCD
PB2i/oOutputLCD
PB3i/oOutputLCD
PB4i/oInput
PB5i/oOutput1MAS WSEN
PB6i/oOutput0
PB7i/oOutputI²C data
PB8i/o
PB9TxD0OutputMPEG
PB10RxD1InputRemote
PB11TxD1OutputRemote?
PB12SCK0OutputMPEG
PB13i/oOutputI²C clock
PB14/IRQ6InputMAS demand
PB15i/oInputMAS MP3 frame sync
- - -

- -

Port C pin function configuration summary: - - - - - - - - - - -
PinFunctionInput/outputUsed for
PC0i/oInputKey: - / PREV
PC1i/oInputKey: MENU
PC2i/oInputKey: + / NEXT
PC3i/oInputKey: PLAY
PC4i/oInput
PC5i/oInput
PC6i/oInput
PC7i/oInput
- - -

Labels

-

Note: Everything is about v5.03a. - -

    -
  • 0x0200: Start point -
  • 0x383d: Text: "Archos Jukebox hard drive is not bootable! Please insert a bootable floppy and press any key to try again" :-) -
  • 0xc390: Address of "Update" string shown early on LCD. -
  • 0xc8c0: Start of setup code -
  • 0xc8c8: DRAM setup -
  • 0xc4a0: Serial port 1 setup -
  • 0xc40a: Port configuration setup -
  • 0xe3bc: Character set conversion table -
  • 0xfcd0: ITU setup -
  • 0xc52a: Memory area #6 setup -
  • 0x114b0: Start of menu strings -
- - -

Setup

- -

The startup code at 0x200 (0x09000200) naturally begins with setting up the system. - -

Vector Base Register

- -

The first thing the code does is setting the VBR, Vector Base Register, -and thus move the exception vector table from the internal ROM at address 0 -to the DRAM at address 0x09000000: - -

-0x00000200: mov.l  @(0x02C,pc),r1  ; 0x0000022C (0x09000000)
-0x00000202: ldc	   r1,vbr
-
- -

Stack

- -

The next instruction loads r15 with the contents of 0x228, which is 0x0903f2bc. This is the stack pointer, which is used all over the code. - -

-0x00000204: mov.l  @(0x024,pc),r15 ; 0x00000228 (0x0903F2BC)
-
- -

After that the code jumps to the hardware setup at 0xc8c0. -

-0x00000206: mov.l  @(0x01C,pc),r0   ; 0x00000220 (0x0900C8C0)
-0x00000208: jsr    @r0
-
- -

DRAM controller

- -

First up is DRAM setup, at 0xc8c8. It sets the memory controller registers: - -

-0x0000C8C8: mov.l  @(0x068,pc),r2  ; 0x0000C930 (0x05FFFFA8)
-0x0000C8CA: mov.w  @(0x05A,pc),r1  ; 0x0000C924 (0x1E00)
-0x0000C8CC: mov.l  @(0x068,pc),r7  ; 0x0000C934 (0x0F0001C0)
-0x0000C8CE: mov.w  r1,@r2          ; 0x1e00 -> DCR
-0x0000C8D0: mov.l  @(0x068,pc),r2  ; 0x0000C938 (0x05FFFFAC)
-0x0000C8D2: mov.w  @(0x054,pc),r1  ; 0x0000C926 (0x5AB0)
-0x0000C8D4: mov.w  r1,@r2          ; 0x5ab0 -> RCR
-0x0000C8D6: mov.l  @(0x068,pc),r2  ; 0x0000C93C (0x05FFFFB2)
-0x0000C8D8: mov.w  @(0x050,pc),r1  ; 0x0000C928 (0x9605)
-0x0000C8DA: mov.w  r1,@r2          ; 0x9505 -> RTCOR
-0x0000C8DC: mov.l  @(0x064,pc),r2  ; 0x0000C940 (0x05FFFFAE)
-0x0000C8DE: mov.w  @(0x04C,pc),r1  ; 0x0000C92A (0xA518)
-0x0000C8E0: mov.w  r1,@r2          ; 0xa518 -> RTCSR
-
- -

Serial port 0

- -

Code starting at 0x483c. - -

As C code: - -
-
-void setup_sci0(void)
-{
-    /* set PB12 to output */
-    PBIOR |= 0x1000;
-     
-    /* Disable serial port */
-    SCR0 = 0x00;
- 
-    /* Syncronous, 8N1, no prescale */
-    SMR0 = 0x80;
- 
-    /* Set baudrate 1Mbit/s */
-    BRR0 = 0x03;
- 
-    /* use SCK as serial clock output */
-    SCR0 = 0x01;
- 
-    /* Clear FER and PER */
-    SSR0 &= 0xe7;
- 
-    /* Set interrupt D priority to 0 */
-    IPRD &= 0x0ff0;
- 
-    /* set IRQ6 and IRQ7 to edge detect */
-    ICR |= 0x03;
- 
-    /* set PB15 and PB14 to inputs */
-    PBIOR &= 0x7fff;
-    PBIOR &= 0xbfff;
- 
-    /* set IRQ6 prio 8 and IRQ7 prio 0 */
-    IPRB = ( IPRB & 0xff00 ) | 0x80;
- 
-    /* Enable Tx (only!) */
-    SCR0 = 0x20;
-}
-
-
- - -

Serial port 1

- -

Code starting at 0x47a0. - -

As C code: - -
-
-#define SYSCLOCK 12000000
-#define PRIORITY 8
- 
-void setup_sci1(int baudrate)
-{
-    /* Disable serial port */
-    SCR1 = 0;
-     
-    /* Set PB11 to Tx and PB10 to Rx */
-    PBCR1 = (PBCR1 & 0xff0f) | 0xa0;
- 
-    /* Asynchronous, 8N1, no prescaler */
-    SMR1 = 0;
- 
-    /* Set baudrate */
-    BRR1 = SYSCLOCK / (baudrate * 32) - 1;
- 
-    /* Clear FER and PER */
-    SSR1 &= 0xe7;
- 
-    /* Set interrupt priority to 8 */
-    IPRE = (IPRE & 0x0fff) | (PRIORITY << 12);
- 
-    /* Enable Rx, Tx and Rx interrupt */
-    SCR1 = 0x70;
-}
-
-
- -

Pin configuration

- -

Starting at 0xc40a: - -

CASCR = 0xafff: Column Address Strobe Pin Control Register. Set bits CASH MD1 and CASL MD1. - -

Port A

-
PACR1 = 0x0102: Set pin functions -
PACR2 = 0xbb98: Set pin functions -
PAIOR &= 0xfffe: PA0 is input -
PAIOR &= 0xffdf: PA5 is input -
PADR &= 0xff7f: Set pin PA7 low -
PAIOR |= 0x80: PA7 is output -
PAIOR |= 0x100: PA8 is output -
PADR |= 0x200: Set pin PA9 high -
PAIOR |= 0x200: PA9 is output -
PAIOR |= 0x400: PA10 is output -
PAIOR &= 0xf7ff: PA11 is input -
PAIOR &= 0xbfff: PA14 is input -
PAIOR = 0x7fff: PA15 is input -
PADR &= 0xfeff: Set pin PA8 low - -

Port B

-
PBCR1 = 0x12a8: Set pin functions -
PBCR2 = 0x0000: Set pin functions -
PBDR &= 0xffef: Set pin PB4 low -
PBIOR &= 0xffef: PB4 is input -
PBIOR |= 0x20: PB5 is output -
PBIOR |= 0x40: PA6 is output -
PBDR &= 0xffbf: Set pin PB6 low -
PBDR |= 0x20: Set pin PB5 high - -

ITU (Integrated Timer Pulse Unit)

- -

Starting at 0xfcd0: - -

TSNC &= 0xfe: The timer counter for channel 0 (TCNT0) operates independently of other channels -
TMDR &= 0xfe: Channel 0 operates in normal (not PWM) mode -
GRA0 = 0x1d4c: -
TCR0 &= 0x67; TCR0 |= 0x23: TCNT is cleared by general register A (GRA) compare match or input capture. Counter clock = f/8 -
TIOR0 = 0x88: Compare disabled -
TIER0 = 0xf9: Enable interrupt requests by IMFA (IMIA) -
IPRC &= 0xff0f; IPRC |= 0x30: Set ITU0 interrupt priority level 3. -
TSTR |= 0x01: Start TCNT0 - -

Memory area #6 ?

- -

From 0xc52a: - -

PADR |= 0x0200: Set PA13 high -
WCR1 = 0x40ff: Enable /WAIT support for memory area 6. Hmmm, what's on CS6? -
WCR1 &= 0xfdfd: Turn off RW5 (was off already) and WW1 (enable short address output cycle). -
WCR3 &= 0xe7ff: Turn off A6LW1 and A6LW0; 1 wait state for CS6. -
ICR |= 0x80: Interrupt is requested on falling edge of IRQ0 input - -

Remote control

-

Tjerk Schuringa reports: -"Finally got that extra bit going on my bitpattern generator. So far I fed only -simple characters to my jukebox, and this is the result: - -

-START D0 1 2 3 4 5 6 7 STOP FUNCTION
-0      0 0 0 0 0 1 1 1    1 VOL- (the one I got already)
-       0 0 0 0 1 0 1 1      VOL+ (figures)
-       0 0 0 1 0 0 1 1      +
-       0 0 1 0 0 0 1 1      -
-       0 1 0 0 0 0 1 1      STOP
-       1 0 0 0 0 0 1 1      PLAY
-
- -

I also found that "repeat" functions (keep a button depressed) needs to be -faster than 0.5 s. If it is around 1 second or more it is interpreted as a -seperate keypress. So far I did not get the "fast forward" function because the -fastest I can get is 0.5 s. - -

Very important: the baudrate is indeed 9600 baud! These pulses are fed to the -second ring on the headphone jack, and (if I understood correctly) go to RxD1 -of the SH1." - -

LCD display

- -

The Recorder uses a Shing Yih Technology G112064-30 graphic LCD display with 112x64 pixels. The controller is a Solomon SSD1815Z. - -

It's not yet known what display/controller the Jukebox has, but I'd be surprised if it doesn't use a similar controller. - -

Starting at 0xE050, the code flicks PB2 and PB3 a great deal and then some with PB1 and PB0. Which gives us the following connections: - - - - - - -
CPU pinLCD pin
PB0DC
PB1CS1
PB2SCK
PB3SDA
- -

The Recorder apparently has the connections this way (according to Gary Czvitkovicz): - - - - - -
CPU pinLCD pin
PB0SDA
PB1SCK
PB2DC
PB3CS1
- -

The player charsets: - -

- -

-Old LCD charset (before v4.50)

-New LCD charset (after v4.50)
- -

And the Recorder charset looks like this: -
- - -

Code

- -

This C snippet write a byte to the Jukebox LCD controller. -The 'data' flag inticates if the byte is a command byte or a data byte. - -
-
-#define DC  1
-#define CS1 2
-#define SDA 4
-#define SCK 8
- 
-void lcd_write(int byte, int data)
-{
-   int i;
-   char on,off;
- 
-   PBDR &= ~CS1; /* enable lcd chip select */
- 
-   if ( data ) {
-      on=~(SDA|SCK);
-      off=SCK|DC;
-   }
-   else {
-      on=~(SDA|SCK|DC);
-      off=SCK;
-   }
-   /* clock out each bit, MSB first */
-   for (i=0x80;i;i>>=1)
-   {
-      PBDR &= on;
-      if (i & byte)
-         PBDR |= SDA;
-      PBDR |= off;
-   }
- 
-   PBDR |= CS1; /* disable lcd chip select */
-}
-
-
- -

Firmware size

- -

Joachim Schiffer found out that firmware files have to be at least 51200 -bytes to be loaded by newer firmware ROMs. -So my "first program" only works on players with older firmware in ROM -(my has 3.18). Joachim posted a -padded version that works everywhere. - -

Tests have shown that firmware sizes above 200K won't load. - -#include "foot.t" diff --git a/www/rockbox100.png b/www/rockbox100.png deleted file mode 100644 index 4c7cdcb426..0000000000 Binary files a/www/rockbox100.png and /dev/null differ diff --git a/www/rockbox400.png b/www/rockbox400.png deleted file mode 100644 index 84d940abe9..0000000000 Binary files a/www/rockbox400.png and /dev/null differ diff --git a/www/schematics/6k_schematic.pdf b/www/schematics/6k_schematic.pdf deleted file mode 100644 index 611e501faf..0000000000 Binary files a/www/schematics/6k_schematic.pdf and /dev/null differ diff --git a/www/schematics/Makefile b/www/schematics/Makefile deleted file mode 100644 index 751a62f256..0000000000 --- a/www/schematics/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -ACTION=@echo preprocessing $@; rm -f $@; $(HOME)/bin/fcpp -WWW -I.. -Uunix -H -C -V -LL >$@ - -SRC := $(wildcard *.t) -OBJS := $(SRC:%.t=%.html) - -all: $(OBJS) - -%.html : %.t - $(ACTION) $< diff --git a/www/schematics/PCB_composite_print.pdf b/www/schematics/PCB_composite_print.pdf deleted file mode 100644 index a3deddf6f2..0000000000 Binary files a/www/schematics/PCB_composite_print.pdf and /dev/null differ diff --git a/www/schematics/PCB_final_print.pdf b/www/schematics/PCB_final_print.pdf deleted file mode 100644 index 69cfd88c47..0000000000 Binary files a/www/schematics/PCB_final_print.pdf and /dev/null differ diff --git a/www/schematics/index.t b/www/schematics/index.t deleted file mode 100644 index 68e7a2e72f..0000000000 --- a/www/schematics/index.t +++ /dev/null @@ -1,13 +0,0 @@ -#define _PAGE_ Schematics -#include "head.t" - -

Jukebox 6000 R3 - -

Jukebox Recorder main board, rev2 -
Jukebox Recorder interface board, rev2.1 - -

Remoclone schematics -
Remoclone PCB composite print -
Remoclone PCB final print - -#include "foot.t" diff --git a/www/schematics/rec_interface.pdf b/www/schematics/rec_interface.pdf deleted file mode 100644 index 803e3521b2..0000000000 Binary files a/www/schematics/rec_interface.pdf and /dev/null differ diff --git a/www/schematics/rec_main.pdf b/www/schematics/rec_main.pdf deleted file mode 100644 index 5c3fb290a6..0000000000 Binary files a/www/schematics/rec_main.pdf and /dev/null differ diff --git a/www/schematics/remoclone_schem.pdf b/www/schematics/remoclone_schem.pdf deleted file mode 100644 index b2620ce476..0000000000 Binary files a/www/schematics/remoclone_schem.pdf and /dev/null differ diff --git a/www/sh-win/LCDv2Win.zip b/www/sh-win/LCDv2Win.zip deleted file mode 100644 index 33e7872be9..0000000000 Binary files a/www/sh-win/LCDv2Win.zip and /dev/null differ diff --git a/www/sh-win/Makefile b/www/sh-win/Makefile deleted file mode 100644 index 751a62f256..0000000000 --- a/www/sh-win/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -ACTION=@echo preprocessing $@; rm -f $@; $(HOME)/bin/fcpp -WWW -I.. -Uunix -H -C -V -LL >$@ - -SRC := $(wildcard *.t) -OBJS := $(SRC:%.t=%.html) - -all: $(OBJS) - -%.html : %.t - $(ACTION) $< diff --git a/www/sh-win/empty.zip b/www/sh-win/empty.zip deleted file mode 100644 index a1b354fbf7..0000000000 Binary files a/www/sh-win/empty.zip and /dev/null differ diff --git a/www/sh-win/enviro.jpg b/www/sh-win/enviro.jpg deleted file mode 100644 index eb90f6d47e..0000000000 Binary files a/www/sh-win/enviro.jpg and /dev/null differ diff --git a/www/sh-win/enviro2.jpg b/www/sh-win/enviro2.jpg deleted file mode 100644 index 706adaff4f..0000000000 Binary files a/www/sh-win/enviro2.jpg and /dev/null differ diff --git a/www/sh-win/enviro3.jpg b/www/sh-win/enviro3.jpg deleted file mode 100644 index 1eb15f8b8b..0000000000 Binary files a/www/sh-win/enviro3.jpg and /dev/null differ diff --git a/www/sh-win/index.t b/www/sh-win/index.t deleted file mode 100644 index a85b5e8453..0000000000 --- a/www/sh-win/index.t +++ /dev/null @@ -1,277 +0,0 @@ -#define _PAGE_ Setting up an SH-1 compiler for Windows -#include "head.t" -

-by Felix Arends, 1/8/2002 -
- -

-NOTE: THIS COMPILER DOES NOT YET WORK WITH WINDOWS XP!!! - -

-I have spent a long time figuring out how to compile SH1 code in windows (using -the sh-elf-gcc compiler) and when I finally compiled the first OS for my -Jukebox I decided to write a little tutorial explaining the setup process. - -

-The GNU-SH Tool Chain for Windows -

-

-This is actually all you need to download. It includes the binutils, gcc and -newlib. Download the GNUSH Tool Chain for ELF format (13 MB). - -

-The GNUSH website can be found at -http://www.kpit.com/download/downloadgnush.htm (source code is also -available there). The new v0202 version now uses MinGW instead of Cygwin. - -

-Setting up the Compiler -

-

-Install the GNUSH Tool Chain (nothing you really have to care about during the -installation process). After that you should add some paths to your PATH system -environment variable. If you have Windows 95/98/Me you can do that by modifying -your autoexec.bat: - -

-Add the following line to your autoexec.bat: - -

- - - - - - -
-SET PATH=%PATH%;C:\Programs\kpit\GNU-SH v0101 -[ELF]\Sh-elf\bin\;C:\Programs\kpit\GNU-SH v0101 -[ELF]\Sh-elf\lib\gcc-lib\sh-elf\2.9-GNU-SH-v0101\;C:\Programs\kpit\GNU-SH v0101 -[ELF]\Other Utilities -
- -

-(Note: This is just one single line) - -

-Replace the beginning of the paths with the path-name you chose to installt the -tools in. Reboot. - -

-In Windows 2000 it is a bit different. You can find the PATH-environment -variable if you right-click the "My Computer" icon on your desktop and choose -"Properties" in the popup-menu. Go to the "Advanced" tab and click -"Environment-Variables": - -

- - -

-(Note: There is also a PATH-variable in the "System variables" list, it does -not matter which one you edit) - -

-To the value the PATH-variable already has, add: - -

- - - - -
-;C:\Programs\kpit\GNU-SH v0101 [ELF]\Sh-elf\bin\;C:\Programs\kpit\GNU-SH -v0101 [ELF]\Sh-elf\lib\gcc-lib\sh-elf\2.9-GNU-SH-v0101\;C:\Programs\kpit\GNU-SH -v0101 [ELF]\Other Utilities -
- -

-Replace the program path with the path you chose for the program. You do not -have to reboot. - -

-An "empty" System -

-

-First of all, I'll explain what to do to compile an "empty" system. It just -initializes and calls the main function, but does not do anything -else. You can add some code to the main function and simply recompile. -It is actually like this: You don't have to care about any of those files, -because you won't have to change much of them (except the main.cpp of -course!!). - -

-main.cpp: -
-
- - - - -
-

-int __main(void){} -
-
-int main(void) -
-{ -
-    // add code here -
-} -
-
-extern const -void stack(void); -
-
-const void* vectors[] -__attribute__ ((section (".vectors"))) = -
-{ -
-    main, /* Power-on reset */ -
-    stack, /* Power-on reset (stack pointer) -*/ -
-    main, /* Manual reset */ -
-    stack /* Manual reset (stack pointer) */ -
-}; -
-
- -

- -

-We need a start-up assembler code: - -

-start.asm -
-
- - - - -
- -
! note: sh-1 has a "delay cycle" after every branch where you can
-! execute another instruction "for free".
-
-.file"start.asm"
-.section.text.start
-.extern_main
-.extern _vectors
-.extern _stack
-.global _start
-.align  2
-
-_start:
-mov.l1f, r1
-mov.l3f, r3
-mov.l2f, r15
-jmp@r3
-ldcr1, vbr
-nop
-
-1:.long_vectors
-2:.long_stack
-3:.long_main
-.type_start,@function
-
-
- -

-(I took this code from Björn's LCDv2 source) - -

-Then we need a linker configuration file: - -

-linker.cfg -
- - - - -
-

- -

ENTRY(_start)
-OUTPUT_FORMAT(elf32-sh)
-SECTIONS
-{
-    .vectors 0x09000000 :
-    {
-        *(.vectors);
-        . = ALIGN(0x200);
-        *(.text.start)
-        *(.text)
-        *(.rodata)
-    }
-
-    .bss :
-    {
-       _stack = . + 0x1000;
-    }
-
-    .pad 0x0900C800 :
-    {
-        LONG(0);
-    }
-  }
- -
- -

-(This code comes from Börn's LCDv2 as well) - -

-Last but not least, we need a batch file to link all this and output a usable -.mod file (you don't really need a batch file if you want to enter all the -commands over and over angain :]) - -

-make.bat -
- - - - -
-

- -

SET INCLUDES=
-SET SOURCEFILES=main.c
-SET OBJECTS=main.o start.o
-
-sh-elf-as start.asm -o start.o -L -a
-sh-elf-gcc -O2 -m1 -o main.o -c -nostdlib %INCLUDES% %SOURCEFILES%
-sh-elf-ld -o main.out %OBJECTS% -Tlinker.cfg
-padit main.out
-scramble main.out archos.mod
-
-PAUSE
- -
- -

-And that's it! I have prepared all those files in a .zip archive for you so you -don't have to copy'n'paste that much :). I have also prepared a package with -the LCDv2 code Björn wrote (ready to compile with Windows). - -

-empty.zip -
-LCDv2Win.zip - -

-I hope this tutorial helped you to compile an Archos firmware with windows. If -you have any questions, comments or corrections, please mail to -edx@codeforce.d2g.com - -#include "foot.t" - diff --git a/www/style.css b/www/style.css deleted file mode 100644 index 6bf88b0144..0000000000 --- a/www/style.css +++ /dev/null @@ -1,51 +0,0 @@ -BODY { - background-color: #b6c6e5; - color: black; - margin: 0px; -} - -H1 { - text-decoration: none; - font-family: Verdana,Arial,Helvetica,sans-serif; - font-style: normal; - font-weight: bold; - font-size: 20pt; -} - -H2 { - text-decoration: none; - font-family: Verdana,Arial,Helvetica,sans-serif; - font-style: normal; - font-weight: bold; - font-size: 12pt; -} - -H3 { - text-decoration: none; - font-family: Verdana,Arial,Helvetica,sans-serif; - font-style: normal; - font-weight: bold; - font-size: 10pt; -} - -BODY, P, DIV, TD, TH, TR, FORM, OL, UL, LI, INPUT, TEXTAREA, SELECT, A -{ - text-decoration: none; - font-family: Verdana,Arial,Helvetica,sans-serif; - font-style: normal; - font-size: 10pt; -} - -A { - text-decoration: underline; -} - -.bgbox { - left-border-width: 1px; - border-color: black; -} - -.menulink { - color: #f0f0f0; - line-height: 140%; -} diff --git a/www/tools.t b/www/tools.t deleted file mode 100644 index ad469ecba9..0000000000 --- a/www/tools.t +++ /dev/null @@ -1,63 +0,0 @@ -#define _PAGE_ Tools -#include "head.t" - -

Descrambler / Scrambler

- -

The archos.mod file is scrambled, but luckily not using encryption. - -

Each data byte is inverted and ROLed 1 bit. -The data is then spread over four memory segments. The two least significant bits of the address is used as segment number and the rest as offset in the segment. So, basically: - -

    -
  • segment number = address % 4 -
  • segment offset = address / 4 -
  • segment length = imgsize / 4 -
- -

A 6-byte header is added to the beginning of the scrambled image: -

    -
  • 32 bit length (big-endian) -
  • 16 bit checksum -
- -

I've written a small utility to descramble the firmware files: -

    -
  • descramble.c - 1835 bytes - The source code (pure ANSI C, should work everywhere). GPL licensed. -
  • descramble - 4280 bytes - Dynamically linked i386 linux executable -
  • descramble.static.bz2 - 176015 bytes - bzip2 compressed statically linked i386 linux executable -
  • descramble.exe - 45056 bytes - win32 executable -
- -

...and one to scramble files: -

    -
  • scramble.c - 2242 bytes - The source code (pure ANSI C, should work everywhere). GPL licensed. -
  • scramble - 4376 bytes - Dynamically linked i386 linux executable -
  • scramble.static.bz2 - 176117 bytes - bzip2 compressed statically linked i386 linux executable -
  • scramble.exe - 93385 bytes - win32 executable -
- -

Disassembler

- -

I found a nice public domain SH-1/SH-2 disassembler written by Bart Trzynadlowski, called sh2d: -

Update: I've added address lookup and register name translation to the disassembler (2001-12-09) -

    -
  • sh2d.c - 28 kB - Source code -
  • sh2d - 15 kB - Dynamically linked i386 linux executable -
  • sh2d.static.bz2 - 170 kB - bzip2 compressed statically linked i386 linux executable -
  • sh2d.exe - 40 kB - win32 executable (original version; no lookup) -
- -

Compiler

- -

GCC supports the SH processor. Just -cook yourself a cross-compiler -(sh-elf-gcc) and voila, instant SH-1 code. - -

There are also - -pre-cooked RH7.1 RPMs available from sh-linux.org - -

Felix Arends has written a page about -setting up an SH-1 compiler for Windows. - -#include "foot.t" diff --git a/www/usb-howto.t b/www/usb-howto.t deleted file mode 100644 index aa8d73209f..0000000000 --- a/www/usb-howto.t +++ /dev/null @@ -1,93 +0,0 @@ - How To Connect your Archos to Your Linux - ======================================== - -Author: Daniel Stenberg -Version: $Revision$ -Date: $Date$ - - Archos Recorder - - The Recorder does not need Björn's ISD200 driver, that was written for and - is required for Linux to communicate with the Archos Player (and others). - - The Recorder supports both USB1.1 and USB2.0, and thus you can use either - version, depending on what your host supports. - - CONFIGURE YOUR KERNEL - - (I've tried this using both 2.4.17 and 2.4.18) - - o Make sure your kernel is configured with SCSI, USB and USB mass storage - support. - - USB1.1 ONLY - - o On USB config page, select 'UHCI' as a (m)odule, as only then will the - "Alternate Driver" appear in the config. Set that one to (m)odule as - well. Failing to do this might cause you problems. It sure gave me - some. - - USB2.0 ONLY - - o Make sure you've patched your kernel with the correct USB2 patches: - [the following is a single URL, split here to look nicer] - http://sourceforge.net/tracker/index.php?func=detail&aid=503534& \ - group_id=3581&atid=303581 - - o On USB config page, select 'EHCI' as a (m)odule - - o Rebuild kernel, install, bla bla, reboot the new one - - - - MAKE YOUR KERNEL SEE YOUR ARCHOS - - After having booted your shiny new USB+SCSI kernel, do this: - - o Very important *first* start your Archos Recorder, and get it connected to - the USB. Not starting your Archos first might lead to spurious errors. - - USB 1.1 ONLY - - o insmod usb-uhci - - USB 2.0 ONLY - - o insmod ehci-hcd - - o insmod usb-storage - - Now, your Archos Recorder might appear something like this: - - $ cat /proc/scsi/scsi - Attached devices: - Host: scsi0 Channel: 00 Id: 00 Lun: 00 - Vendor: FUJITSU Model: MHN2200AT Rev: 7256 - Type: Direct-Access ANSI SCSI revision: 02 - - And you can also see it as an identified device by checking out the file - /proc/bus/usb/devices. - - - - MOUNT THE ARCHOS' FILESYSTEM - - In my system, my kernel tells me a 'sda1' SCSI device appears. Using this - info, I proceed to mount the filesystem of my Archos on my Linux: - - $ mount -f vfat -oumask=0 /dev/sda1 /mnt/archos - - (/dev/sda1 may of course not be exactly this name on your machine) - - You can also make the mount command easier by appending a line to /etc/fstab - that looks like: - - /dev/sda1 /mnt/archos vfat noauto,umask=0 0 0 - - So then the mount command can be made as simple as this instead: - - $ mount /mnt/archos - - The umask stuff makes it possible for all users to write and delete files on - the archos file system, not only root. The 'noauto' prevents the startup - sequence to attempt to mount this file system.