Close

Touched up bin2mif.py

A project log for PDP-8 FPGA

Building a PDP-8 on an FPGA

land-boardscomland-boards.com 05/27/2021 at 10:210 Comments

I touched up the binary to MIF utility (bin2mif.py) to set the address to octal. That makes it easier to map to the PAL list file. The top of the MIF file now looks like:

-- File: sievePlusLoaders.mif
-- Generated by bin2mif.py
-- 
DEPTH = 4096;
WIDTH = 12;
ADDRESS_RADIX = OCTAL;
DATA_RADIX = OCTAL;
CONTENT BEGIN
0000: 0000 0000 0000 0000 0000 0000 0000 0000;
0010: 0000 0000 0000 0000 0000 0000 0000 0000;
0020: 0000 0000 0000 0000 0000 0000 0000 0000;
0030: 0000 0000 0000 0000 0000 0000 0000 0000;
0040: 0000 0000 0000 0000 0000 0000 0000 0000;
0050: 0000 0000 0000 0000 0000 0000 0000 0000;
0060: 0000 0000 0000 0000 0000 0000 0000 0000;
0070: 0000 0000 0000 0000 0000 0000 0000 0000;
0100: 0000 0000 0000 0000 0000 0000 0000 0000;
0110: 0000 0000 0000 0000 0000 0000 0000 0000;
0120: 0000 0000 0000 0000 0000 0000 0000 0000;
0130: 0000 0000 0000 0000 0000 0000 0000 0000;
0140: 0000 0000 0000 0000 0000 0000 0000 0000;
0150: 0000 0000 0000 0000 0000 0000 0000 0000;
0160: 0000 0000 0000 0000 0000 0000 0000 0000;
0170: 0000 0000 0000 0000 0000 0000 0000 0000;
0200: 7300 6046 7200 1377 3010 1376 3022 3410;
0210: 2022 5207 7305 3020 7200 1020 4775 1423;
0220: 0024 7440 5247 7200 1020 3021 7300 1021;
0230: 1020 7430 5247 3021 1021 4775 1024 7040;

 This correlates to the lst file:

   13             
   14       0010  *10
   15 00010 0000  incval, 0       / For autoincrementing
   16       0020  *20             / Our variables
   17 00020 0000  checking, 0
   18 00021 0000  multiple, 0
   19 00022 0000  ii, 0
   20 00023 0000  ptr, 0          / Calculated memory location and mask
   21 00024 0000  memmask, 0
   22       5000  *5000
   23 05000 0000  sieve, 0        / Sieve is 512 words, so location 5000 to 5777
   24             
   25       0200  *200            / start of program
   26 00200 7300  main,   CLA CLL
   27 00201 6046          TLS     / Reset the TTY
   28             
   29             / Clear the array
   30 00202 7200          CLA
   31 00203 1377          TAD     (sieve-1)       / put address of array-1 in incval
   32 00204 3010          DCA     incval
   33 00205 1376          TAD     (-words)        / Put -size of array in i
   34 00206 3022          DCA     ii
   35 00207 3410  loop1,  DCA     I incval        / Store 0 in successive locations
   36 00210 2022          ISZ     ii              / until end of array
   37 00211 5207          JMP     loop1
   38             
   39             / Do the marking
   40 00212 7305          CLA CLL IAC RAL         / 2
   41 00213 3020          DCA     checking        / initialize checking variable
   42 00214 7200  loop2,  CLA
   43 00215 1020          TAD     checking        / get checking variable
   44 00216 4775@         JMS     calcpm
   45 00217 1423          TAD     I ptr           / get memory word
   46 00220 0024          AND     memmask         / get the bit
 

 Now I'm trying to get the bin loader working over the serial port. Not sure what the serial protocol is. Must 8 bits of data, though.

Discussions