Look what I found in storage

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Iron Woode

Elite Member
Super Moderator
Oct 10, 1999
31,120
12,631
136
Shouldn't there be a ,1 too?
the ,1 is used to load a file to the memory location it was created in.

This is used mainly for machine code programs and basic programs created using memory expanders or data used in other programs that need to be stored in a specific block of memory.
 

FoBoT

No Lifer
Apr 30, 2001
63,084
14
81
fobot.com
LOL 2004....wtf is that big wheel for?

it is a photoshopped picture , it caught my eye because those three panels in the picture are from a submarine 'maneuvering room' (i served on a US nuclear powered submarine) , the 3 sections of the panel are , left, throttle control panel, center, reactor plant control panel, right, electric plant control panel

they just added a TV and teletype to make it look like a computer type thingy

so, that big wheel is really a throttle wheel to control the speed of the submarine propeller, that was one of my jobs


http://www.snopes.com/inboxer/hoaxes/computer.asp
 

Paperdoc

Platinum Member
Aug 17, 2006
2,422
337
126
The general form of the LOAD command was LOAD"(argument)",n,(0 or 1)
(argument) could be: a program name, the $ character meaning "the directory", or the asterisk meaning "the very first file you find". there were other fine refinements to this syntax for special uses.

n, the first number, was the device number. As others have said, default value of 1 was the tape drive, 4 was printer, 8 was the default floppy drive, and 9-14 were alternative drive numbers. The device number was hardware-encoded on the printed circuit board in the device. For example, for the 1571 floppy drive units, you could find instructions to cut through a board trace between two points to make the device become number 9 (your second floppy) instead of 8.

0 or 1, the second number, was the "secondary address" used to code certain actions. In the case of a floppy disk LOAD command, "0" (default if omitted) meant "Load to the "standard" address for programs, which was something like 1024, and then return to the BASIC screen prompt to wait for the next command entry. "1" in this place meant: Load to the specific starting point this file came from in the first place (which was encoded at the start of the file) and then execute a RUN command. The RUN command, by default, always executed from the address specified in a particular RAM location, and by default was the "standard" program stating point. But you could set up a program with a different beginning point specified at this memory location, and then use this loading mode to load that data into that location as part of the load. The included immediate RUN command then looked at that location, jumped to that address, and ran. That was how auto-running programs were executed.

So LOAD"$",8
LIST
was two separate BASIC commands. They meant Load the Directory file from device 8 and return to command prompt (1st line), then execute the LIST command which displayed that "program" on the screen. The format of the data looked internally like a program file, but displayed as a readable directory listing.

LOAD"*",8,1
meant Load the first file name you find from device 8, beginning at the location specified at the start of the file, and execute immediately from the location you find in the fixed location (I cannot remember exactly where) that points to the machine-language start point.

LOAD"*"
meant load the first file you find from the (unspecified default device) tape drive into the "normal" location and return to the command prompt for further instructions.

LOAD"*",1,1
meant (similar to absolute load-and-run from floppy disk) load the first file you find from device 1 (Tape drive) to the address it specifies, then execute beginning at the address found in (that special location I cannot remember).

On the tape drive you had to insert the tape, position it to just before the start of the file you wanted, execute the command on the computer keyboard / screen, then push the tape drive's PLAY button to start it up. The screen would go blank while it searched the tape data stream, pause briefly to display the file name it found, then blank out again as it loaded the file. When it finished loading the file the tape drive would stop (you could push its STOP button them) and the screen would come back on until some further action was taken.

All of the peripherals uses the unique C64 serial bus. It was adapted from the Commodore PET parallel bus, which in turn really was an IEEE parallel bus widely used by Hewlett-Packard and other manufacturers as a general data communication bus for lab instruments. But the C64 bus was a serial version of that with many fewer wires in the cable, configured to hook up in a daisy-chain manner. All such C64 peripherals had two bus sockets (interchangeable) so you just ran cords from one device to the next and they all shared the common bus, each device having its own hard-coded device address.
 

Train

Lifer
Jun 22, 2000
13,579
75
91
www.bing.com
... That was how auto-running programs were executed.

Holy crap do you know how long I searched for the answer to that question when coding on the C64? I eventually gave up. But it drove me nuts that some commercial programs/games would autorun. Must have dug through 20 programming books and a few years worth of Computes Gazette and still never found the answer.

If only we had google back then.
 

Iron Woode

Elite Member
Super Moderator
Oct 10, 1999
31,120
12,631
136
check out my C128:

C128_box.JPG


C128.JPG


:awe:
 

Iron Woode

Elite Member
Super Moderator
Oct 10, 1999
31,120
12,631
136
All of the peripherals uses the unique C64 serial bus. It was adapted from the Commodore PET parallel bus, which in turn really was an IEEE parallel bus widely used by Hewlett-Packard and other manufacturers as a general data communication bus for lab instruments. But the C64 bus was a serial version of that with many fewer wires in the cable, configured to hook up in a daisy-chain manner. All such C64 peripherals had two bus sockets (interchangeable) so you just ran cords from one device to the next and they all shared the common bus, each device having its own hard-coded device address.
while essentially correct, there is one issue not addressed here:

device #'s were hard coded to the same #. Floppy drives (1541 or 1571) were coded device 8. Printers were coded to device 4. Hooking up 2 or more floppy drives would result in a system freeze unless device numbers were changed.

2 methods exist: 1. software change. 2. alter the hardware #.

The best is #2. #1 has to be done one drive at a time.
 

Train

Lifer
Jun 22, 2000
13,579
75
91
www.bing.com
while essentially correct, there is one issue not addressed here:

device #'s were hard coded to the same #. Floppy drives (1541 or 1571) were coded device 8. Printers were coded to device 4. Hooking up 2 or more floppy drives would result in a system freeze unless device numbers were changed.

2 methods exist: 1. software change. 2. alter the hardware #.

The best is #2. #1 has to be done one drive at a time.

I seem to remember some 1541's (or maybe it was 1571) that had an 8/9 selector switch on the back, for when you wanted two drives at once.

Those came in handy. But the earlier drives didnt have that switch. Though this may have even been an after market mod.