A super duper 8-bit CPU on steroids, part IV

A quick update. I completed my modifications to use ncurses and the user interface looks like this:

User Interface implemented with ncurses
Posted in Electronics | Leave a comment

Mohamed mohamed, le pourfendeur du mensonge

Un youtubeur s’est donné comme but de dénoncer le mensonge des sciences. Son canal propose plusieurs vidéos qui présentent son point de vue.

C’est essentiellement une version simplifié du platisme, c’est à dire la terre plate.

Ses vidéos sont basés sur une mauvaise compréhension de la physique et du modèle héliocentrique.

J’ai reproduit le modèle héliocentrique selon la science officielle. Pour commencer, on reproduit le plan de l’écliptique et on utilise le soleil comme source de lumière. On peut voir qu’il est ajusté correctement avec l’ombre de la planche sur le sol.

Le plan de l’écliptique devient notre plan de référence pour le modèle.

Le plan de l’écliptique
Ajustement de l’angle

On place ensuite un globe pour représenter les équinoxes et les solstices. Pour faire court, voici le solstice d’hiver pour l’hémisphère nord. Au même moment, c’est le solstice d’été pour l’hémisphère sud.

On voit assez bien la partie dans l’ombre. Le terminateur passe par les cercles arctiques et antarctiques.

Solstice été-sud/hiver-nord

Dans les photos suivantes, on voit que pour un observateur en France, le soleil se lève un peu de temps après 6h00 du matin et se couche avant 18h00. On voit comment le terminateur plonge une partie du globe dans l’ombre (= nuit). Dans cette vue, la terre tourne dans le sens anti-horaire.

Remarquez aussi que l’ombre couvre plus de la moitié de l’hémisphère nord. Comme on est au dessus du pôle nord du modèle, le drapeau va faire une trajectoire circulaire.

Matin d’hiver en France
Au coucher du soleil en hiver en France

Comme il peut être difficile pour certaines personnes de visualiser ou même d’imaginer ou faire des abstractions, voici un vidéo qui montre plus exactement ce qui se passe.

Simulation d’une journée d’hiver en France

Une image gif animée montre la rotation avec l’heure (numérique) en France. Il y a 1 image pour chaque heure. L’observateur n’est pas exactement au dessus du pôle, mais c’est suffisant pour la démonstration.

Une ligne de repère (en jaune) passant par la France permet de constater que la longueur du jour est plus courte que 12h. Le point bleu montre un point fixe sur le globe, situé en France.

Solstice d’hiver en France

Posted in Astronomy, flat earth (debunking) physics, Science | Tagged , | Leave a comment

A super duper 8-bit CPU on steroids, part III

I made a upgrade to a version 0.2 of the instruction set, and the simulator would be in need of new features such as a memory viewer. I recently added support for ncurses to help with the use of terminals.

Now if I want to add text mode windows for displaying registers, stack, memory, and PC, the use of ncurses is quickly becoming difficult and hard to make it work. Other alternatives to ncurses exists, but a quick search leaded to a change of plans.

I just found a CPU simulator running on Java that can simulate a custom made CPU.

https://www.cs.colby.edu/djskrien/CPUSim/

So far, I implemented the RAM, registers and flags. There is a limitation of 64 bits on the register size. My design has 128-bit registers.

More later, as I implement the instruction set.

Posted in assembler, softputer, Software | Tagged , , , | Leave a comment

A super duper 8-bit microprocessor on steroids, part II

After doing a simulator, I found a configurable assembler that’s easy to use. See https://github.com/hlorenzi/customasm

It’s very flexible, being able to generate a load of a 128-bit constant! I was able to implement the whole instruction set of the software micro I designed. Here is the CPU definition: https://github.com/physnoct/softmicro/blob/master/softmicro.cpu

It’s a very good example of the capabilities of the custom assembler! While it can’t generate object files or linking. It’s already useful for small projects.

With the assembler, structured macros can be used to make higher level features such as do-while loops, if-then-else, switches and others.

This file gives an outlook of what can be done: https://github.com/physnoct/softmicro/blob/master/structures.txt

Posted in assembler, Monsputer, Software | Tagged , , , | Leave a comment

How many launches are needed to build the Enterprise D?

The Enterprise D is the spaceship in the Star Trek The Next Generation series. The calculations assume it would be assembled in low earth orbit.

https://en.wikipedia.org/wiki/USS_Enterprise_(NCC-1701-D)

Its mass is 4,960,000 metric tons or 1.0934928e+10 lbs.

Checking the currently (or soon) availables launchers:

https://en.wikipedia.org/wiki/Super_heavy-lift_launch_vehicle

With the Starship from SpaceX, we have 150 tons/launch or 330000 lbs.

A simple division gives us the number of launches needed: 33136.

Posted in Physics, Science | Tagged , , , , | Leave a comment

A super duper 8-bit microprocessor on steroids

I’m one of many people growing with microprocessors. While not a gamer myself, I built my own Z80 computer (monsputer) over a span of 20 years! I redone a couple of boards a few times because of reliability/design issues, but now, the technology I use is much stable.

One thing however that one may find inconvenient is the limited choice of instructions on a 8-bit microprocessor. So I just thought about my own multi-byte instruction set and with the Covid-19 inactivity, I made a simulator for it. It took about 2 weeks to do.

The basic architecture is a set of 16 registers of 16 bytes each. A size prefix sets the operation on either a word (16-bit), double, quad or octet(?) (128-bits). Default size is 8-bit.

Most byte operations would take 1 or 2 bytes, while more advanced operations would take a size prefix, an addressing mode prefix and maybe a counter prefix. Some operations are available through an extension prefix.

The simulator opens a file memory.bin, which can be edited by an external editor (thus I avoided to write an editor when some exist already). When saving memory in the simulator, the external editor can reload it.

A view of the simulator in action.

The files are available on GitHub with a spreadsheet describing the instruction. This project is in a draft stage now with almost all the instructions implemented. Many things remain to be done.

Posted in assembler, Monsputer, Software, Z80 | Tagged , , , | Leave a comment

Photo de Jupiter avec P1000

Voici une photo que j’ai prise récemment de Jupiter avec 3 de ses satellites. En comparant avec Stellarium, les satellites sont Ganymède, Europe et Callisto. En haut, c’est l’étoile HIP95077. Mon setup était plutôt rudimentaire.

Jupiter et 3 satellites, ainsi que HIP95077

Posted in Astronomy, Science | Tagged , , , , , | Leave a comment

A parallel port for your Z80

The circuit for a legacy parallel port can be made with common MSI chips. For the monsputer, I stuffed all that in a CPLD instead. It could then be easily integrated with any designs such as the RC2014 and many others.

All the code fits inside an Atmel CPLD: the ATF1504AS. (Atmel is now Microchip).

These devices use WinCUPL for programming. For instructions how to program and burn your designs into chips, see Programming Atmel CPLDs with a simple parallel dongle.

You’ll need a parallel port on your computer. If it’s not built-in, you can use a ISA, PCI or PCIexpress parallel adapter card. USB to parallel port won’t work.

Here is the CPLD code below.

Name     Parallel;
PartNo   ;
Date     2004/02/06;
Revision ;
Designer JP;
Company  ;
Assembly ;
Location ;
Device	  f1504ispplcc44;

/* 
.AP/.AR
.CE 	compiler generated
.CK
.D
.OE
.OEMUX
.CKMUX
.IO
.IOD
.IOL
.IOCK
.IOAR

.DQ	registered input
.INT	internal feedback path
.J/.K
.L	latch
.LE/LQ
.S/.R	SR register
.T	Toggle
*/

/* PROPERTY ATMEL {preassign TRY}; */

/* Interface */
/*===========*/
/* CPU SIDE */
/* Inputs */
pin 1  = !RESET;
pin 36 = !CS;
pin 37 = !WR;
pin 40 = !RD;

pin [34,33] = [A1,A0];
pin [19,20,18,17,16,31,28,29] = [D7..D0];

/* Outputs */
pin 27 = !IRQ;

/* Parallel port side */
/* Status
7	6	5	4	3	2	1	0
!BUSY	ACK	PE	SLCT	ERROR	-	-	-
*/
pin 44 = BUSY;	/* DB25 pin 11 */
pin 39 = !ACK;	/* DB25 pin 10 */
pin 43 = PE;		/* DB25 pin 12 */
pin 41 = SLCT;	/* DB25 pin 13 */
pin 2 = !ERROR;	/* DB25 pin 15 */

/* Data Outputs */
pin [14,9,11,8,12,6,5,4] = [P7..P0];

/* Control
7	6	5	4	3		2	1		0
-	-	-	-	!SLCTIN 	INIT	!AUTOFEED	!STB
*/

pin 24 = !STB;	/* DB25 pin 1 */
pin 25 = !AUTOFD;	/* DB25 pin 14 */
pin 21 = INIT;	/* DB25 pin 16 */
pin 26 = !SLCTIN;	/* DB25 pin 17 */

/* Implementation */
/*================*/
FIELD DATA = [D7..D0];

pinnode = [PC5..PC0];
/*
[PC0..5].D = [D0..D5].IO;
[PC0..5].CK = !A0 & A1 & CS & WR;

[P0..7].D = [D0..D7].IO;
[P0..7].CK = !A0 & !A1 & CS & WR;
[P0..7].OE = !PC5;
[P0..7].AR = RESET;
*/

[PC0..5].L = [D0..D5].IO;
[PC0..5].LE = !A0 & A1 & CS & WR;
[PC0..5].AR = RESET;

[P0..7].L = [D0..D7].IO;
[P0..7].LE = !A0 & !A1 & CS & WR;
[P0..7].OE = !PC5;
[P0..7].AR = RESET;

STB = PC0;
AUTOFD = PC1;
INIT = PC2;
SLCTIN = PC3;

[D0..D7].OE = (!A0 & !A1 # A0 & !A1 # !A0 & A1) & CS & RD;
D0 = !A0 & !A1 & P0 #                     !A0 & A1 & STB;
D1 = !A0 & !A1 & P1 #                     !A0 & A1 & AUTOFD;
D2 = !A0 & !A1 & P2 #                     !A0 & A1 & PC2;
D3 = !A0 & !A1 & P3 # A0 & !A1 & ERROR  # !A0 & A1 & SLCTIN;
D4 = !A0 & !A1 & P4 # A0 & !A1 & SLCT   # !A0 & A1 & PC4;
D5 = !A0 & !A1 & P5 # A0 & !A1 & PE;
D6 = !A0 & !A1 & P6 # A0 & !A1 & ACK;
D7 = !A0 & !A1 & P7 # A0 & !A1 & !BUSY;

IRQ.OE = PC4;
IRQ = ACK;
Posted in Electronics, Z80 | Tagged , , , , , , | Leave a comment

NASA Losing Telemetry Data and Stuff

Moon landing deniers commonly use the NASA losing telemetry data and other similar arguments. Here is an interesting comment from RockinRobbins13 on a YouTube comment section (copied with permission):

The irony is that none of the telemetry from any of the Apollo missions was lost. It was initially recorded on a special 14 track tape that could be read by only a dozen or so machines on Earth. These were transferred to more accessible media for wider use than just whoever owned one of these multi-million dollar tape machines. Makes sense they would do that? No?

During the Landsat missions, NASA, working on a poverty budget, needed tape. They reused the Apollo original telemetry tapes for that purpose. But all the telemetry had already been transferred to other media: media that could actually be used by scientists, universities and the public.

Moon Hoax Lunatic meme: “If you tell a lie big enough and keep repeating it, people will eventually come to believe it.” A perfect description of Moon Hoax Lunatic lies. They were all disproven before 1980, the new generation has no imagination or ability, so they merely repeat the pathetic lies of their patron Saint Bill Kaysing, over and over and over….. They get stuffed, the Lunatics repeat the mangled husk of an unskillful, badly executed lie, over and over.

The difference here is that the Lunatics don’t have the ability to convince. They can’t enforce their insane contentions, even through their use of Nazi storm trooper tactics, like invading science videos, profanity, name-calling, straw man attacks, and blatant lying:

“sorry we lost the telemetry data” a lie. It’s entirely made up by Moon Hoax Lunatics. The telemetry is intact, saved for posterity, as you can clearly see here, with many tracks of Apollo 11 telemetry stacked so you can experience it http://www.firstmenonthemoon.com. This is all telemetry from Apollo 11. If it was lost, why…… I’ll let you complete the statement. Moon Hoax Lunatics lie.

“sorry we lost all the original video footage” another lie. https://www.history.nasa.gov/alsj/a11/video11.html Apollo 11 https://www.hq.nasa.gov/alsj/a12/video12.html Apollo 12 https://www.hq.nasa.gov/alsj/a14/video14.html Apollo 14 https://www.hq.nasa.gov/alsj/a15/video15.html Apollo 15 https://www.hq.nasa.gov/alsj/a16/video16.html Apollo 16 https://www.hq.nasa.gov/alsj/a17/video17.html and Apollo 17 film video libraries.

Yes, this is all film loaded onto the spacecraft on Earth, transported to the Moon where astronauts exposed the film, all returned safely to Earth where the film was developed, digitized and posted. They’re open source, public domain and available for every member of humanity to download. Obviously Moon Hoax Lunatics, who apologize that they’ve lost the video footage, are not members of humanity.

“oops sorry we lost all the original photos too” A complete lie. https://www.hq.nasa.gov/alsj/main.html, the Apollo Surface Journal web page links you to all the photos that returned from the moon, again public domain, open source, available for every member of humanity to scrutinize at their leisure. Except for the Moon Hoax Lunatics, who will lie to your face and tell you these photos don’t exist. Why would they be so stupid? Insanity needs no reasons.

“_sorry we lost the technology to be able to take us back there”_ truth being mangled into a complete lie. Let me make an analogy. We used to have dirigibles that took passengers across the Atlantic on scheduled flights. We used to have supersonic jets that anyone could buy a ticket and fly the Atlantic. We used to have fabric covered wooden biplanes as fighter aircraft. We used to have large propeller driven passenger airplanes. All those technologies have been abandoned and we no longer use them. Is that valid evidence that they never existed? That is what the Moon Hoax Lunatics are trying to say here: that if we could do it we would still be doing it. That’s a monstrous lie, badly told, ridiculous in its comedy.

NASA didn’t reuse the Saturn V rockets to return to the moon for many reasons. The technology is already obsolete. Since then, scientists invented new materials and new technologies. Also, the requirements for the next missions on the moon will not be the same.

Posted in Conspiracy theories, Science | Tagged , , , | Leave a comment

Toast-Guard

A common household problem is when the smoke alarm is triggered by burning toasts. The problem gets worse when the smoke alarm is connected to a central and the firetruck comes at your house. Not only that, but sometimes you’ll have to pay a fine for false alarms.

A simple solution would be to use a dedicated smoke detector right over the toaster. We don’t need to connect anything to that detector, since the sound will be detected by a circuit. The smoke detector can be any battery operated, independant of any central.

The circuit can be any common microprocessor. Here, I used a RedBoard from Sparkfun, a Grove shield for Arduino boards and a couple of Grove devices:

potentiometer to adjust the threshold level,

sound sensor,

button,

relay and LED.

The relay should be big enough to switch the toaster’s current. It is connected to the Normally Close contact; a fan can be connected to the Normally Open contact.

When the smoke alarm starts, the sound volume is detected and compared to a threshold value set by the potentiometer. If the volume is high enough, the relay will be activated, thus shutting off the toaster while the fan cools off the toasts emitting smoke.

The relay stays activated until the button is pressed. Below, there is the code for an Arduino compatible board.

const int pinSound = A0;
const int pinPot = A1;
const int pinLed = 7;
const int pinRelay = 6;
const int pinButton = 5;

void setup() {
  //Serial.begin(9600);
  pinMode(pinLed, OUTPUT);
  pinMode(pinRelay, OUTPUT);
  pinMode(pinButton, INPUT);
  digitalWrite(pinRelay,LOW);
}

void loop() {
  int thresholdValue = analogRead(pinPot);
  int sensorValue = analogRead(pinSound);

  if (sensorValue > thresholdValue)
  {
    digitalWrite(pinLed,HIGH);
    digitalWrite(pinRelay,HIGH);
  }
  else
  {
    digitalWrite(pinLed,LOW);
  }

  if (digitalRead(pinButton) == 1)
  {
    digitalWrite(pinRelay,LOW);
  }
  
  //Serial.print("Threshold = ");
  //Serial.print(thresholdValue);
  //Serial.print(", Mic = ");
  //Serial.println(sensorValue);
  //Serial.println(digitalRead(pinButton));
  //delay(200);
}

As usual, stay safe when working with high voltages.

Posted in Arduino, Electronics, Software | Tagged , , , , , | Leave a comment