Look at Mojo… after confusion on my part

Apparently released on September 7, 2023.

curl -s https://get.modular.com | sh -
bill@bill-MS-7B79:~$ modular --version
modular 0.8.0 (39a426b5)
bill@bill-MS-7B79:~$
bill@bill-MS-7B79:~/MyStuff/Mojo$ python3 -m venv mojo-venv && source mojo-venv/bin/activate
(mojo-venv) bill@bill-MS-7B79:~/MyStuff/Mojo$ modular install mojo
# Found release for https://packages.modular.com/mojo @ 24.3.0
# Downloading archive: packages/24.3.0/mojo-x86_64-unknown-linux-gnu-24.3.0-13-0.tar.zst
Downloaded           [ █████████████████ ] 100% 107MiB/107MiB                 
# Extracting downloaded archives. 
Extracted            [ █████████████████ ] 100% 107MiB/107MiB                 
# Running post-install scripts...
Installed            [ █████████████████ ] 100%                               
???? Mojo installed! ????

Mojo's Python virtual environment created at /home/bill/.modular/pkg/packages.modular.com_mojo/venv

If you are using ZSH (default on macOS), run the following commands:

echo 'export MODULAR_HOME="/home/bill/.modular"' >> ~/.zshrc
echo 'export PATH="/home/bill/.modular/pkg/packages.modular.com_mojo/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

If you are using bash, run the following commands:

BASHRC=$( [ -f "$HOME/.bash_profile" ] && echo "$HOME/.bash_profile" || echo "$HOME/.bashrc" )
echo 'export MODULAR_HOME="/home/bill/.modular"' >> "$BASHRC"
echo 'export PATH="/home/bill/.modular/pkg/packages.modular.com_mojo/bin:$PATH"' >> "$BASHRC"
source "$BASHRC"

Then enter 'mojo' to start the Mojo REPL.

For tool help, enter 'mojo --help'.
For more docs, see https://docs.modular.com/mojo.

(mojo-venv) bill@bill-MS-7B79:~/MyStuff/Mojo$ 

Using the REPL

bill@bill-MS-7B79:~$ mojo --version
mojo 24.3.0 (9882e19d)
bill@bill-MS-7B79:~$
bill@bill-MS-7B79:~$ mojo
Welcome to Mojo! ????

Expressions are delimited by a blank line.
Type `:quit` to exit the REPL and `:mojo help` for further assistance.

  1> print("Hello, world!") 
  2. <Enter>
Hello, world!
  2>  

Test a source program then build an executable

bill@bill-MS-7B79:~/MyStuff/Mojo$ ls -la
total 36
drwxrwxr-x  4 bill bill  4096 May 18 20:54 .
drwxrwxr-x 52 bill bill 12288 May 18 20:24 ..
-rw-rw-r--  1 bill bill    39 May 18 20:25 hello.mojo
drwxrwxr-x  2 bill bill  4096 May 18 20:27 info
drwxrwxr-x  8 bill bill  4096 May 18 20:30 mojo
bill@bill-MS-7B79:~/MyStuff/Mojo$ cat hello.mojo 
fn main():
    print("Hello, world!")

bill@bill-MS-7B79:~/MyStuff/Mojo$ mojo hello.mojo 
Hello, world!
bill@bill-MS-7B79:~/MyStuff/Mojo$ mojo build hello.mojo
bill@bill-MS-7B79:~/MyStuff/Mojo$ ls -la
total 3452
drwxrwxr-x  4 bill bill    4096 May 18 20:55 .
drwxrwxr-x 52 bill bill   12288 May 18 20:24 ..
-rwxrwxr-x  1 bill bill 3486528 May 18 20:55 hello
-rw-rw-r--  1 bill bill      39 May 18 20:25 hello.mojo
drwxrwxr-x  2 bill bill    4096 May 18 20:27 info
drwxrwxr-x  8 bill bill    4096 May 18 20:30 mojo
bill@bill-MS-7B79:~/MyStuff/Mojo$ ./hello 
Hello, world!
bill@bill-MS-7B79:~/MyStuff/Mojo$

Not yet available for MS-Windows!

I’m watching a freecodecamp vid about Mojo. And the guy is talking about the Modular discord channel, which I can’t find for the life of me.

Perhaps it’s too much of a moving target right now. Tutorial from a few months ago, describe using Let to define constants, and now that’s not valid. Now you get… error: ‘let’ is being removed, please use ‘var’ instead. Although you would think version 24.3.0 would be more settled. However version 24… really? How can a language released in 2023 be at version 24? I’ve seen too many weird versions from other products, like this that make no sense.

Python, which has been around for decades… is only at version 3.10

bill@bill-MS-7B79:~$ python --version
Python 3.10.12
bill@bill-MS-7B79:~$

bash reverse search broke

WTH happened to my reverse search (Ctrl-R). No sooner than I write that sentence than it starts working.

Tried to reverse search ping… because I’m lazy.

Returned results were totally nonsense, and it didn’t find it!

Part of my .bash_history
find . -iname “speed
ping google.com
cd “/home/bill/MyStuff/Pascal/” && fpc class01.pp && “/home/bill/MyStuff/Pascal/”class01

Atari 2600 game improvements

As unbelievable as it is people are still making/improving games on the Atari 2600, released almost 50 years ago in 1977. I was shocked… because some are amazing. I guess it’s called Atari 2600 homebrew.

I mentioned before that these game consoles are computers, and this is further confirmation.

I initially got interested in Atari 2600 emulation, when I downloaded the Commodore 64 emulator, and found it also emulated the Atari 2600. However it didn’t recognize my USB controller, which made games hard to play. So I became more interested when I realize how much fun some of these 45+ yo games are. I wasn’t even interested in Atari 2600 emulation at the time.

I have the roms that I can play on the Stella 2600 emulator. But my game play is so bad that it’s just better to look at the comparisons between versions on YouTube. The 2600 used the MOS Technology 6507 processor, a cheaper version of the 6502. I know the DK remake is in assembler, pretty sure the Pac-Man version too. If you look at some of the discussions, they’re talking about saving 20 bytes here and 20 bytes there. I guess when you have a 4K cartridge every byte counts. Some 2600 games were released on 8k cartridges. The DK version is 32K, a cartridge that big would most likely be cost prohibitive back then. They really pushed the limits of the 2600 and it’s very impressive!

There are more cool looking games that I’ve never see before, in another collection such as Assault (AKA Sky Alien) (1983) (Bomb – Onbase), it say 1983. But who is it from. The demo certainly seems, superior (graphics and sound) to many games I remember at the time.

Put my altered ibsys_kit on github

Every time I use github, I have to figure it out, all over again.

bill@bill-MS-7B79:~/Downloads/Computers/Emulation/simh/IBM/7090/FIXED$ git push -u origin master
Username for 'https://github.com': billb2050
Password for 'https://billb2050@github.com': 
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/billb2050/ibsys_kit.git/'
bill@bill-MS-7B79:~/Downloads/Computers/Emulation/simh/IBM/7090/FIXED$ 

In the interest of time I just used browser drag&drop

My IBM 7094 changes worked!

These days, I just want things to work. I rarely dig this hard to make something work, anymore. But I put more effort into this because I really enjoyed the movie, Hidden Figures, that I mention here.

As stated in the previous post below, I changed ./i7090 to ./i7094. And with that in mind…

A FORTRAN Job

bill@bill-MS-7B79:~/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit$ ./i7094

IBM 7094 simulator Open SIMH V4.1-0 Current        simh git commit id: ffe537a6
sim> do do_ibsys.txt primes.job primes.out
rm: cannot remove 'print.*': No such file or directory
rm: cannot remove 'sysou1.*': No such file or directory
rm: cannot remove 'sys*.bin': No such file or directory
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-6> ! rm punch.* print.* sysou1.* sys*.bin
Error 256
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-12> att -er cdr ibsys.ctl
%SIM-INFO: CDR: unit is read only
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-13> att cdp punch.txt
%SIM-INFO: CDP: creating new file
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-15> att -ef mta1 p7b ASYS1.BIN
%SIM-INFO: MTA1: Tape Image 'ASYS1.BIN' scanned as P7B format
%SIM-INFO: contains 1242665 bytes of tape data (105 records, 16 tapemarks)
%SIM-INFO: A potentially unreasonable number of record sizes(70) vs tape marks (16) have been found
%SIM-INFO: The tape format (P7B) might not be correct for the 'ASYS1.BIN' tape image
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-16> att -ef mta2 p7b ASYS8.BIN
%SIM-INFO: MTA2: Tape Image 'ASYS8.BIN' scanned as P7B format
%SIM-INFO: contains 775352 bytes of tape data (167 records, 10 tapemarks)
%SIM-INFO: A potentially unreasonable number of record sizes(74) vs tape marks (10) have been found
%SIM-INFO: The tape format (P7B) might not be correct for the 'ASYS8.BIN' tape image
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-17> att -f mta3 p7b sysin.bcd
%SIM-INFO: MTA3: Tape Image 'sysin.bcd' scanned as P7B format
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-18> att -f mta4 p7b sysou1.bcd
%SIM-INFO: MTA4: creating new file
%SIM-INFO: MTA4: Tape Image 'sysou1.bcd' scanned as P7B format
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-19> att mta5 sysut1.bin
%SIM-INFO: MTA5: creating new file
%SIM-INFO: MTA5: Tape Image 'sysut1.bin' scanned as SIMH format
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-20> att mta6 sysut3.bin
%SIM-INFO: MTA6: creating new file
%SIM-INFO: MTA6: Tape Image 'sysut3.bin' scanned as SIMH format
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-21> att mta7 sysut2.bin
%SIM-INFO: MTA7: creating new file
%SIM-INFO: MTA7: Tape Image 'sysut2.bin' scanned as SIMH format
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-22> att mta8 syspp1.bin
%SIM-INFO: MTA8: creating new file
%SIM-INFO: MTA8: Tape Image 'syspp1.bin' scanned as SIMH format
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-23> att mta9 sysut4.bin
%SIM-INFO: MTA9: creating new file
%SIM-INFO: MTA9: Tape Image 'sysut4.bin' scanned as SIMH format
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-24> att mta10 sysck2.bin
%SIM-INFO: MTA10: creating new file
%SIM-INFO: MTA10: Tape Image 'sysck2.bin' scanned as SIMH format
$LIST
$DATE          051124

$JOB           PRIME NUMBERS
$EXECUTE       IBJOB


EXECUTION
   736 LINES OUTPUT.
$IBSYS
$STOP

 PERIPHERAL UNIT POSITIONS AT END OF JOBS
 SYSPP1  IS   A8    REC. 00001, FILE 00000
 SYSOU1  IS   A4    REC. 00745, FILE 00000
 SYSIN1  IS   A3    REC. 00002, FILE 00001
END OF JOBS


HALT instruction, PC: 07465 (SXA 7510,4)
rm: cannot remove 'reader.*': No such file or directory
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit/do_ibsys.txt-32> ! rm reader.* sys*.bin
Error 256
sim> 

A COBOL Job!

The execution (just the end)…

$JOB           COBOL HELLO WORLD
$EXECUTE       IBJOB


EXECUTION
HELLO WORLD
STOP RUN
   590 LINES OUTPUT.
$IBSYS
$STOP

 PERIPHERAL UNIT POSITIONS AT END OF JOBS
 SYSPP1  IS   A8    REC. 00001, FILE 00000
 SYSOU1  IS   A4    REC. 00599, FILE 00000
 SYSIN1  IS   A3    REC. 00002, FILE 00001
END OF JOBS


HALT instruction, PC: 07465 (SXA 7510,4)
rm: cannot remove 'reader.*': No such file or directory
/home/bill/Downloads/Computers/Emulation/simh/IBM/7090/ibsys_kit(works)/do_ibsys.txt-32> ! rm reader.* sys*.bin
Error 256
sim> 

And here is the listing…

Look at IBM 7090 emulation again

Apparently I got something working before…

bill@bill-MS-7B79:~/Downloads/Computers/Emulation/simh/OpenSimh/open-simh-simh-ffe537a/BIN$ ./i7090 

IBM 7090 simulator Open SIMH V4.1-0 Current        simh git commit id: ffe537a6
sim> 

That’s the hardware, not the software.

This is all I have previously noted. The above executable has the same date (4/22/2024) as this one, but in a different directory. This one seems to include IBSYS which was a tape based OS for the 7090/7094 and actually 709 (which used vacuum tubes) too. The 7090 did not use tubes! And evidently the 704 was the predecessor of the 709.

According to Wikipedia… The first 7090 installation was in December 1959. But also according to Wikipedia IBSYS came out in 1960. Which I realize was only one month later… but what month? Did the first installation just sit there until IBSYS came out?

I guess you can’t mention some of these without mentioning another OS… The Compatible Time-Sharing System (CTSS), developed at MIT for the 709 in 1961. And later the 7090/7094. And this brings us to the DEC PDP-10 which used a OS, also created at MIT called ITS, Incompatible Timesharing System, that I mentioned here.

Programming projects

Regarding my previous post. I started looking at some newer Go tutorials. And I found one just put out 11 months ago. It sounded interesting… at first. And then he started talking about something I really hate… Programming projects. I realize I’m probably in the minority on this one. Because these projects seem very popular. But he stared talking about building a “production ready back-end server in Go”. I have almost no interest in web related stuff at this time. Part of my problem is I really don’t have any great project in mind… but I know, I have no interest in building a “production ready back-end server in Go”!