From stuart at gathman.org Sat Sep 2 18:53:03 2006 From: stuart at gathman.org (Stuart D. Gathman) Date: Sat, 02 Sep 2006 18:53:03 -0400 Subject: [Verba] Used computers Message-ID: <44FA0B4F.90609@gathman.org> I have a number of free upgrades for those who want: 1. 433Mhz Celeron 128M 20G 2. 800Mhz Celeron 128M 20G Nvidia Vanta LT 3. 800Mhz Celeron 384M 20G Nvidia Vanta LT 4. 1.6Ghz AMD 128M 40G Sis 300 5. 1.6Ghz AMD 128M 40G Sis 300 All have audio and network as well. Rebecca and Jilian, this is your chance to get something to play with. I will be happy to install Fedora Core. The Windows installations will get wiped (license doesn't transfer - you could get raided by BSA). I just got the 1.6G systems - they boot and run, but I haven't vacuumed them or added RAM yet. I have been running Fedora Core on the 800Mhz systems. You need 256M for current GUI systems (XP, Fedora Core). I recommend 384. The 1.6G systems came with 17" CRT monitors. From stuart at gathman.org Sat Sep 2 19:20:08 2006 From: stuart at gathman.org (Stuart D. Gathman) Date: Sat, 02 Sep 2006 19:20:08 -0400 Subject: [Verba] Used computers In-Reply-To: <44FA0B4F.90609@gathman.org> References: <44FA0B4F.90609@gathman.org> Message-ID: <44FA11A8.10703@gathman.org> Stuart D. Gathman wrote: > I have a number of free upgrades for those who want: > > 4. 1.6Ghz AMD 128M 40G Sis 300 > 5. 1.6Ghz AMD 128M 40G Sis 300 > > All have audio and network (NC 100) as well. I've opened up the new systems. The 1.6G systems have some electrolytic capacitor leakage. The AMD CPU runs hot. > The 1.6G systems came with 17" CRT monitors. From stuart at gathman.org Sat Sep 2 19:35:44 2006 From: stuart at gathman.org (Stuart D. Gathman) Date: Sat, 02 Sep 2006 19:35:44 -0400 Subject: [Verba] Used computers In-Reply-To: <44FA11A8.10703@gathman.org> References: <44FA0B4F.90609@gathman.org> <44FA11A8.10703@gathman.org> Message-ID: <44FA1550.3040403@gathman.org> Stuart D. Gathman wrote: > I've opened up the new systems. The 1.6G systems have some > electrolytic capacitor leakage. The AMD CPU runs hot. Description of capacitor problem: http://www.pcstats.com/articleview.cfm?articleID=195 Repair service available: http://www.motherboardrepair.com/mother_board_repair.do Could be worth it, motherboards relatively recent. From stuart at gathman.org Wed Sep 20 20:17:12 2006 From: stuart at gathman.org (Stuart D. Gathman) Date: Wed, 20 Sep 2006 20:17:12 -0400 Subject: [Verba] Computer Club - Fall 2006 Review of first two lectures Message-ID: <4511DA08.4090601@gathman.org> This year, we are diving into the low level. Week 1 Numbering Number system bases in history: base 2 Binary binary computers (most modern computers) base 3 Trinary http://www.icfcst.kiev.ua/MUSEUM/PHOTOS/Setun-1.html base 5 Riven computer game, sequel to Myst base 8 Octal Used by software as shorthand for binary base 9 Nonary Used by software for trinary computers base 10 Decimal Roman empire, some early computers base 12 Saxons (dozen, gross) base 16 Hexadecimal Used by software as shorthand for binary base 20 Mayan empire base 60 Sexagecimal Babylonian http://en.wikipedia.org/wiki/Sexagesimal base 64 Used in MIME (email attachments) and other software base 95 A less common encoding also used in MIME and elsewhere A bit is the smallest unit of information. It has two states. A byte is composed of 8 bits. Four bits are called a nybble. A 3 state digit in a base 3 computer is called a trit. One kilobyte is 2^10, or 1024 bytes. One megabyte is 2^20 bytes. Binary prefix Decimal 2^10 kilo 10^3 2^20 mega 10^6 2^30 giga 10^9 2^40 tera 10^12 2^50 peta 10^15 2^60 exa 10^18 2^70 zetta 10^21 2^80 yotta 10^24 Week 2 Coding Coding in history: Godel's theorem uses coding to create self reference in Typographic Number Theory (TNT) by mapping symbols of TNT to codons. Morse code used a system of two symbols plus spacing to represent letters, digits, and punctuation on the telegraph. Early teletypewriters used 5-bit baudot code. Several codes are reserved as control codes to allow letters and figures to share the same code space: http://en.wikipedia.org/wiki/Baudot_code EBCDIC was an 8-bit code used by IBM punched cards. ASCII is a 7-bit code which is the basis of all modern character codes. Extended ASCII extends ASCII to 8-bits. Each region invented their own coding for the 128 additional characters. These were called "code pages". Unicode extends ASCII to 16 bits. All extended ASCII code pages are assigned code space. In addition, simplified chinese is represented. Unicode32 extends Unicode to 32 bits to handle traditional chinese, fictional (Klingon, Elvish, etc), and ancient alphabets. Our initial goal is to understand machine language, like in the following: Address Machine Code Mnemonic Operands 0: 55 push %ebp 1: 89 e5 mov %esp,%ebp 3: 83 ec 08 sub $0x8,%esp 6: 8b 45 0c mov 0xc(%ebp),%eax 9: 03 45 08 add 0x8(%ebp),%eax c: 79 13 jns 21 e: 83 ec 08 sub $0x8,%esp 11: 50 push %eax 12: 68 00 00 00 00 push $0x0 17: e8 fc ff ff ff call 18 1c: 83 c4 10 add $0x10,%esp 1f: eb 11 jmp 32 21: 83 ec 08 sub $0x8,%esp 24: 50 push %eax 25: 68 05 00 00 00 push $0x5 2a: e8 fc ff ff ff call 2b 2f: 83 c4 10 add $0x10,%esp 32: b8 00 00 00 00 mov $0x0,%eax 37: c9 leave 38: c3 ret The Intel "architecture" of our computer describes the format of instructions, data, and addresses. It is called i386. Address Our class computer has 256 megabytes of memory. Each byte is numbered from 0 to 2^28-1. The architecture provides for up to 2^32 bytes of memory. A full i386 address is usually written as 8 hexadecimal digits. This listing shows the offset from some arbitrary starting address. Machine Code The program instructions are stored in memory. This displays the bits of the instruction opcodes and operands in hexadecimal. Mnemonic This shows the assembler mnemonic for the machine instructions. http://www.online.ee/~andre/i80386/Opcodes/index.html Operands This shows the operands specified for the machine instructions. In this listing, '$' introduces an immediate value - a value that is part of the instruction stream. '%' introduces a register name. Hexadecimal values start with '0x' (except for jmp and call - which I'll explain later). The i386 instructions directly operate on data in several formats: Format Sizes signed integer 8,16,32,64 two's complement unsigned integer 8,16,32 binary coded decimal 8 IEEE floating point 32,64,80 Additional formats can be handled with multiple instructions, limited only be the imagination of the programmer. From stuart at gathman.org Wed Sep 20 20:34:20 2006 From: stuart at gathman.org (Stuart D. Gathman) Date: Wed, 20 Sep 2006 20:34:20 -0400 Subject: [Verba] Meta issues Message-ID: <4511DE0C.7050003@gathman.org> You can see the reviews I posted for last year at http://gathman.org/pipermail/verba/ Last year, we used a very high level language called Python. We still had to learn about coding. This is not a class - and although I have plenty of stuff to present via lecture, the goal is to have you, the students, drive the club. Last year, we explored a number of interesting topics, including group theory. I think that a look at what is happening "under the covers" will help you understand a high level language better. That is why I am starting there this year. From there, if you wanted to, we could apply low level skills to creating a linux device driver. (I have an old device with a partial driver as a starting point.) There is a *lot* of nitty gritty detail in such a project. Or we could continue the project of writing a game. When clubs ended, Rebecca and Jilian were in the middle of reimplementing the classic "robots" game in python. Games are a good way to learn programming. Another project I thought of is to use an Intel 4004 emulator, and write a program for a Microwave oven or other appliance (definitely low level). Finally, "G?del, Escher, Bach" is recommended reading for understanding computer concepts.