diff --git a/emulator.pas b/emulator.pas index c75a8cc..a3cf199 100644 --- a/emulator.pas +++ b/emulator.pas @@ -66,7 +66,7 @@ begin else write (Ch); end; -//Wait to emulate CPU speed of ~500 KIPS +//Wait to emulate CPU speed of roughly 500 KIPS {$ifndef fast} procedure wait; begin @@ -117,6 +117,7 @@ begin else if W = $fffd then begin {$ifndef fast} wait; + sleep (1); {$endif} assign (State, ExpandFileName ('~/.tapes.thingamajig')); //Check the reader state @@ -175,9 +176,6 @@ begin //Printer {$ifdef printer} else if W = $fffe then begin - {$ifndef fast} - wait; - {$endif} assign (Prn, '/dev/usb/lp0'); try rewrite (Prn); @@ -192,6 +190,7 @@ begin else if W = $fffd then begin {$ifndef fast} wait; + sleep (19); {$endif} assign (State, ExpandFileName ('~/.tapes.thingamajig')); //Check the punch state diff --git a/readme.md b/readme.md index 4825b2e..211243c 100644 --- a/readme.md +++ b/readme.md @@ -117,12 +117,12 @@ standard uses. The backspace and delete keys input their respective characters and non-character keys null. In Linux the emulator can be compiled with support for a character -printer and an emulated high speed paper tape reader and punch with the -arguments -dprinter and -dtape respectively. The printer is mapped to -address FFFE and the tape reader and punch to FFFD. The printer prints -into /dev/usb/lp0 and the tape files read from and punched to are -(re)set using the program tapectl with the arguments -r and -p -respectively. +printer and an emulated high speed (roughly 500 CPS in and 50 CPS out) +paper tape reader and punch with the arguments -dprinter and -dtape +respectively. The printer is mapped to address FFFE and the tape reader +and punch to FFFD. The printer prints into /dev/usb/lp0 and the tape +files read from and punched to are (re)set using the program tapectl +with the arguments -r and -p respectively. The IPL loads the program specified as an argument when running the emulator.