CP/M-68K simulator - Fedora

CP/M-68K on Fedora

back to CP/M-68K simulator page.

History

2021-11-15: I re-created this page on my self-hosted web server.

2017-06-08: run it

[tingo@kg-elitebook cpm68k]$ ./cpmsim
Read 32768 bytes from boot track


CP/M-68K(tm) Version 1.2  03/20/84
Copyright (c) 1984 Digital Research, Inc.

CP/M-68K BIOS Version 1.0
Simulated system of April 2014
TPA =16251  K

C>AUTOST.SUB
AUTOST.SUB?
C>
yes, it works. Explore
C>dir
C: RELOC    68K : DUMP     68K : PIP      68K : STAT     68K : INIT     REL
C: LINK68   68K : SENDC68  68K : DDT      68K : DDT68000 68K : AS68     68K
C: CP68     68K : AS68INIT     : LIBF     A   : C068     68K : C168     68K
C: AR68     68K : CONFIG   68K : LO68     68K : MORE     68K : NM68     68K
C: LIBE     A   : SIZE68   68K : ASSERT   H   : CTYPE    H   : COPY     SUB
C: ERRNO    H   : OPTION   H   : OSIFERR  H   : PORTAB   H   : SETJMP   H  
C: CLIB         : CE       SUB : CLINKE   SUB : CLINKF   SUB : CLINK    SUB
C: AS68SYMB DAT : C        SUB : RELOC3   SUB : SGTTY    H   : SIGNAL   H  
C: STDIO    H   : STDINT   H   : ENDIAN   H   : ED       68K : S        O  
C: CC       REL : CC       68K : WHEREIS  68K : BBYE     68K : UEMACS   68K
C: F83      BIN : PUTBOOT  68K : BYE      68K : CPM      SYS : GREEN    68K
C: MAKE     REL : MAKE     68K : ARC      68K : EMACS    68K : F83      68K
C: SPLIT    68K
C>dir 0:
0:?
C>0:
0:?
C>user 0

C>dir
C: RELOC    68K : DUMP     68K : PIP      68K : STAT     68K : INIT     REL
C: LINK68   68K : SENDC68  68K : DDT      68K : DDT68000 68K : AS68     68K
C: CP68     68K : AS68INIT     : LIBF     A   : C068     68K : C168     68K
C: AR68     68K : CONFIG   68K : LO68     68K : MORE     68K : NM68     68K
C: LIBE     A   : SIZE68   68K : ASSERT   H   : CTYPE    H   : COPY     SUB
C: ERRNO    H   : OPTION   H   : OSIFERR  H   : PORTAB   H   : SETJMP   H  
C: CLIB         : CE       SUB : CLINKE   SUB : CLINKF   SUB : CLINK    SUB
C: AS68SYMB DAT : C        SUB : RELOC3   SUB : SGTTY    H   : SIGNAL   H  
C: STDIO    H   : STDINT   H   : ENDIAN   H   : ED       68K : S        O  
C: CC       REL : CC       68K : WHEREIS  68K : BBYE     68K : UEMACS   68K
C: F83      BIN : PUTBOOT  68K : BYE      68K : CPM      SYS : GREEN    68K
C: MAKE     REL : MAKE     68K : ARC      68K : EMACS    68K : F83      68K
C: SPLIT    68K
C>user 1

1C>dir
C: ASSERT   H   : CTYPE    H   : ERRNO    H   : OPTION   H   : OSIFERR  H  
C: PORTAB   H   : SETJMP   H   : SGTTY    H   : SIGNAL   H   : STDIO    H  
C: ENDIAN   H   : STDINT   H   : BYTESWAP H   : BYTESWAP S   : BYTESWAP O  
1C>user 2

2C>dir
C: PUTBOOT  REL : PUTBOOT  O   : SIMBIOS  S   : SIMBIOS  O   : CPMLIB      
C: CPMLDR   SYS : CPM      REL : CPM      SYS : LCPM     SUB : LCPM10   SUB
C: NEWCON   C   : NEWCON   DOC : MAKELDR  SUB : LDRBIOS  S   : RELCPM   SUB
C: LDRBIOS  O   : BYTESWAP O   : CPMLDR   REL : NEWCON   O   : BYE      S  
C: GREEN    S   : GREEN    O   : GREEN    REL : MAKECPM  SUB : BBYE     68K
C: LDRLIB       : PUTBOOT  68K : PUTBOOT  S  
2C>user 3

3C>dir
No file
3C>user 4

4C>dir
C: BDOSDEF  H   : BDOSIF   S   : BDOSMAIN C   : BDOSREAD C   : BIOSDEF  H  
C: CPMLDR   C   : DSKUTIL  C   : FILEIO   C   : IOSYS    C   : LDRIF    S  
C: M        SUB : PKTIO    H   : LDRLIB       : MAKE     SUB : BDOSIF   O  
C: LDRIF    O   : BDOSMAIN O   : BDOSREAD O   : CPMLDR   O   : DSKUTIL  O  
C: FILEIO   O   : IOSYS    O   : STDIO    H  
4C>user 5

5C>dir
No file
5C>user 6

6C>dir
C: SPLIT    S   : SPLIT    REL : RELMOD   C   : RELMOD   REL
6C>user 7

7C>dir
No file
7C>user 8

8C>dir
No file
8C>user 9

9C>dir
No file
9C>user 10

10C>dir
C: MAKE     C   : ATRIBUTE C   : CHDIR    C   : MAKE     68K : UTIL     C  
C: MOVMEM   O   : MAKE     BAK : MAKEFILE     : MAKELOAD S   : STRSAVE  O  
C: UTIL     O   : MOVMEM   C   : MAKE     O   : STRSAVE  C   : ATRIBUTE O  
C: MAKE     SUB : CHDIR    O  
10C>user 11

11C>dir
C: CALLSYSA S   : CC       68K : CC       C   : CC       DOC : CCLINK      
C: CCLOAD   S   : CC       REL : PEXEC    C  
11C>user 12

12C>dir
C: 00_INDEX TXT : AMIGA    RC  : AZMAP    CMD : BDATA    CMD : BLOCK    CMD
C: BOXMAC   CMD : CG197_0I 003 : COMP         : EMACS    HLP : EMACSRC     
C: EMACS    RC  : EMACS    TUT : EMACS    TXT : FINDCOM  CMD : FUNC     CMD
C: HEADER   CUG : INDENT   CMD : ME110    RC  : ME150    RC  : MENU1       
C: MENU     CMD : README       : SUBMIT   DSK : TRAND    CMD
12C>user 13

13C>dir
C: EMACS    68K : ANSI     C   : BASIC    C   : BIOS     H   : BIOS     S  
C: BUFFER   C   : DISPLAY  C   : ED       H   : FILE     C   : FILEIO   C  
C: LINE     C   : MAIN     C   : ME       TXT : PORTAB   H   : RANDOM   C  
C: REGION   C   : SEARCH   C   : SPAWN    C   : STDIO    H   : TCAP     C  
C: TERMIO   C   : VT52     C   : WINDOW   C   : WORD     C   : EMACS    REL
C: NOTES    TXT
13C>user 14

14C>dir
C: SPAWN    C   : ANSI     C   : BASIC    C   : BIND     C   : EBIND    H  
C: EDEF     H   : EFUNC    H   : EPATH    H   : ESTRUCT  H   : BUFFER   C  
C: DISPLAY  C   : UEMACS   68K : FILE     C   : FILEIO   C   : HP150    C  
C: LINE     C   : LOCK     C   : MAIN     C   : RANDOM   C   : REGION   C  
C: SEARCH   C   : BIOS     S   : TCAP     C   : TERMIO   C   : NOTES    TXT
C: VT52     C   : WORD     C   : WINDOW   C   : UEMACS   REL : BIOS     H  
14C>user 15

15C>dir
C: ESTRUCT  H   : ANSI     O   : CRYPT    O   : BASIC    O   : BIND     O  
C: BUFFER   O   : DG10     O   : NOTES    TXT : 00_INDEX TXT : ANSI     C  
C: BADER    DOC : BASIC    C   : BIND     C   : BUFFER   C   : CG198_1I 008
C: CRYPT    C   : CUG      DOC : DG10     C   : DISPLAY  C   : DOLOCK   C  
C: EBIND    H   : EDEF     H   : EFUNC    H   : EMACS    C   : EMACS    KEY
C: EPATH    H   : EVAL     C   : EVAR     H   : EXEC     C   : FILE     C  
C: FILEIO   C   : HEADER   CUG : HP110    C   : HP150    C   : IBMPC    C  
C: INPUT    C   : ISEARCH  C   : LINE     C   : LOCK     C   : MAIN     C  
C: MAKEFILE     : MENU     C   : MISC         : RANDOM   C   : REGION   C  
C: SEARCH   C   : SPAWN    C   : ST520    C   : SUBMIT   DSK : TCAP     C  
C: TERMIO   C   : TIPC     C   : UNIX     MK  : VMSVT    C   : VT52     C  
C: WINDOW   C   : WORD     C   : Z309     C  
15C>user 16
User # range is [0-15]
15C>

bbye is exit

15C>bbye
CP/M-68K terminating normally

Final PC=00008106
[tingo@kg-elitebook cpm68k]$

ok.

2017-06-08: try to compile it

[tingo@kg-elitebook cpm68k]$ make
mkdir obj
gcc -Wall -O2 -c -Iobj -I. cpmsim.c -o obj/sim.o
gcc -Wall m68kmake.c -o obj/m68kmake
obj/m68kmake obj m68k_in.c

        Musashi v3.3 68000, 68010, 68EC020, 68020 emulator
        Copyright 1998-2000 Karl Stenerud (karl@mame.net)

Generated 1962 opcode handlers from 503 primitives
gcc -Wall -O2 -c -Iobj -I. m68kcpu.c -o obj/m68kcpu.o
gcc -Wall -O2 -c -Iobj -I. obj/m68kops.c -o obj/m68kops.o
gcc -Wall -O2 -c -Iobj -I. obj/m68kopac.c -o obj/m68kopac.o
gcc -Wall -O2 -c -Iobj -I. obj/m68kopdm.c -o obj/m68kopdm.o
gcc -Wall -O2 -c -Iobj -I. obj/m68kopnz.c -o obj/m68kopnz.o
gcc -Wall -O2 -c -Iobj -I. m68kdasm.c
gcc -Wall obj/sim.o obj/m68kcpu.o obj/m68kops.o obj/m68kopac.o obj/m68kopdm.o obj/m68kopnz.o m68kdasm.o -o cpmsim

ok.

2017-06-08: unzip cpmsim sources

[tingo@kg-elitebook cpm68k]$ unzip ~/dl/cpmsim.zip
Archive:  /home/tingo/dl/cpmsim.zip
  inflating: cpmsim.c               
  inflating: simbios.s              
  inflating: simbios.bin            
  inflating: cpm400.bin             
  inflating: diskc.cpm.fs           
  inflating: makefile               
  inflating: sim.h                  
  inflating: m68kconf.h             
  inflating: cpmsim                 

run dos2unix on the makefile

[tingo@kg-elitebook cpm68k]$ dos2unix makefile
dos2unix: converting file makefile to Unix format...

ok.

2017-06-08: unzip musashi sources

[tingo@kg-elitebook cpm68k]$ unzip ~/dl/musashi331.zip
Archive:  /home/tingo/dl/musashi331.zip
  inflating: example.zip            
  inflating: history.txt            
  inflating: m68k.h                 
  inflating: m68k_in.c              
  inflating: m68kconf.h             
  inflating: m68kcpu.c              
  inflating: m68kcpu.h              
  inflating: m68kdasm.c             
  inflating: m68kmake.c             
  inflating: readme.txt             

run dos2unix on the files

[tingo@kg-elitebook cpm68k]$ dos2unix *
dos2unix: Binary symbol 0x03 found at line 1
dos2unix: Skipping binary file example.zip
dos2unix: converting file history.txt to Unix format...
dos2unix: converting file m68kconf.h to Unix format...
dos2unix: converting file m68kcpu.c to Unix format...
dos2unix: converting file m68kcpu.h to Unix format...
dos2unix: converting file m68kdasm.c to Unix format...
dos2unix: converting file m68k.h to Unix format...
dos2unix: converting file m68k_in.c to Unix format...
dos2unix: converting file m68kmake.c to Unix format...
dos2unix: converting file readme.txt to Unix format...

move one file out of the way

[tingo@kg-elitebook cpm68k]$ mv m68kconf.h m68kconf.h_org

ok.

2017-06-08: a place for it

[tingo@kg-elitebook ~]$ cd ~/work/cpm68k
[tingo@kg-elitebook cpm68k]$

ok.

2017-06-08: today I got the old sources onto my Fedora laptop, currently running F25:

[tingo@kg-elitebook ~]$ cat /etc/fedora-release
Fedora release 25 (Twenty Five)
[tingo@kg-elitebook ~]$ uname -a
Linux kg-elitebook.kg4.no 4.10.10-200.fc25.x86_64 #1 SMP Thu Apr 13 01:11:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

now, let me see if I can make this compile and run here.