HN user

TerryADavis

560 karma
Posts4
Comments28
View on HN

I worked on the code that installed language modules into kernel space. I wrote a check-disk utility. I did a file compression archive. There were serial port drivers and I made a command to reset a stuck port.

I worked in VAX assembly language.

I did firmware for a bar code reader networking device with keypad and display. I worked on image processing for an actual bar code reader itself.

I worked there 1990-1996. About half was user space. The other half was kernel or firmware on bare metal.

-----

Pat and I started at the same time. He was in school with me, in fact in my differential equations class. He dropped out of school. I stayed in and got my master's in electrical engineering while working part time at Ticketmaster. I graduated with master's in 1994 and stayed with Ticketmaster for a year.

I returned to Ticketmaster for 3 weeks in 2002. Pat was a boss.

When I was a young programmer, all the code I looked at was awful. If there was a different format indentation, that distracted me. All I could think about was code format and superficials.

I worked at Ticketamster 1990-1996.

I went back in 2003. I remembered my first assignment. In 1990, the Linker at Ticketmaster that Troy wrote ran out of room because the MAP file grew too big.

In 2003, I went back a found a terrible kludge that I did in 1990 because I was stupid. In 2003, I fixed it correctly. I looked at the code and thought how beautiful it was. In 1990, I thought the code was bad.

As you get more experience, it is a little easier to read code. Take my word that all code is bad, LOL.

Personally, I don't like code that is made of 5-line functions with no rhyme nor reason spread seven levels deep.

Somebody said the smaller your functions the better. Bad advice.

God says... helices mists gewgaw's specced mesdames Lyndon's favoritism's fable's unequal apportions radioactivity's besoms thicknesses cordoned towel's spryer bobcat's suppressed Petra windscreen neckline overproduce meridians cartons prophylaxis's shoestring's retrospection's flubs amen thatcher bombshells cantankerous

GDB 7.11 released 10 years ago

At Ticketmaster, I learned the first thing you write when you start on bare metal is a debugger. I worked on VAX, 68000 and 8051 bare metal.

The difference between an amateur operating system project and a professional one is writing a compiler.

All my code is position independent and my compiler only makes position idependent code. My OS is ring-zero-only. Just in time compilers do not need a linker in a single address space -- they just insert the address of the function call.

BrainFuck to Kernel 11 years ago

I wrote all the code from scratch, including a 20,000 line of code compiler that makes x86_64 machine code from HolyC or Asm and operates AOT and JIT.

My JIT mode is not interpreted. It optimizes and compiles to x86_64 machine code.

I was chosen by God because I am the best programmer on the planet and God boosted my IQ with divine intellect.

TempleOS is ring-0-only and has no networking.

It is forever limited to 100,000 lines.

The vision is a C64 ROM.

DOS and C64 had no protection and no problems.

There are no buffer overflow check in templeos. It will allow massive buffers until it crashes by running out of memory. Keeps it simple and beautiful. I hate arbitrary buffer size limits.

I want whole file reads and write exclusively. Compression is almost always used and that requires whole files. Text files can have binary graphics -- you cannot grow a file if binary graphics are on the end.

The code is beautiful. I always break compatibility to keep it perfect.

It is limited to 100,000 lines. The file util flags are okay.

You must stop assuming everything grows in size. It is done and it is a fixed size.

It is multiprocessing, but not fair sharing. I like to call it single-process multiple thread. There is no difference between "task", "Process" or "thread". It is single address map. Paging in not used, basically.