Thanks to the work of David Given (who developed CP/M-65) and Eduardo Casino (who ported CP/M-65 to the KIM-1 with the SD-Shield (developed by Bob Applegate of Corsham Technology) and the addition of the SD-Shield simulation to the KIM-1 Simulator by Eduardo Casino I can run my Pascal-M compiler (written by Mark Rustad in 1977 and ported my Hans Otten to Lazarus and ported by david Given to CP/M-65)) on my PC in the KIM-1 Simulator (developed by me Hans Otten since 2019) compiling itself and showing it can compile ‘hello world’ program.
Pfff, long sentence showing that all this is made possible by many clever people!
Here a log of a session (captured by Teraterm connected to the KIM-1 Simulator).
[CODE]
KIM
0200 D8
KIM
0200 D8 G
CP/M-65 for the KIM-1
A>dir
A: SCRVT100 COM : IMU COM
A: IMU TXT : SYS COM
A: PASC PAS : ASM TXT
A: HELLO ASM : DEMO SUB
A: ASM COM : ATTR COM
A: BEDIT COM : CAPSDRV COM
A: COPY COM : CPUINFO COM
A: DEVICES COM : DINFO COM
A: DUMP COM : LS COM
A: STAT COM : SUBMIT COM
A: MORE COM : BEDIT ASM
A: BEDIT TXT : DUMP ASM
A: LS ASM : CPM65 INC
A: DRIVERS INC : ATBASIC COM
A: ATBASIC TXT : OBJDUMP COM
A: MKFS COM : ADM3ADRV COM
A: ADM3ATST COM : CLS COM
A: LIFE COM : QE COM
A: SCRNTEST COM : VT52DRV COM
A: VT52TEST COM : KBDTEST COM
A: MBROT COM : DS COM
A: DS TXT : PINT COM
A: PASC OBB : PLOAD COM
A: HELLO PAS : IMU3 TXT
A: HELLO SYM
A>pint PASC.OBB PASC.PAS PASC.OBS
Pascal-M interpreter for CP/M-65: B66F bytes free
Pascal-M compiler V2k1 for CP/M-65
Processing: writeerr
Processing: beginlin
Processing: endline
Processing: error
Processing: stringsi
Processing: nextchar
Processing: insymbol
Processing: enterid
Processing: searchse
Processing: searchid
Processing: getbound
Processing: hexout
Processing: writeout
Processing: bytegen
Processing: wordgen
Processing: genujpen
Processing: plantwor
Processing: skip
Processing: test1
Processing: test2
Processing: intest
Processing: constant
Processing: comptype
Processing: isstring
Processing: simplety
Processing: fieldlis
Processing: typ
Processing: constdec
Processing: typedecl
Processing: vardecla
Processing: paramete
Processing: procdecl
Processing: ldcigen
Processing: ldagen
Processing: lodgen
Processing: condgen
Processing: loadsetc
Processing: cspgen
Processing: incgen
Processing: load
Processing: store
Processing: loadaddr
Processing: falsejum
Processing: calluser
Processing: selector
Processing: variable
Processing: processt
Processing: readproc
Processing: processt
Processing: writepro
Processing: newstate
Processing: releases
Processing: resetrew
Processing: closepro
Processing: assignpr
Processing: getcomma
Processing: ordfunc
Processing: succfunc
Processing: predfunc
Processing: chrfunc
Processing: oddfunc
Processing: eofeolns
Processing: callnons
Processing: call
Processing: opgen
Processing: setexpre
Processing: factor
Processing: term
Processing: simpleex
Processing: expressi
Processing: assignme
Processing: compound
Processing: ifstatem
Processing: casestat
Processing: repeatst
Processing: whilesta
Processing: forstate
Processing: statemen
Processing: body
Processing: block
Processing: stdnames
Processing: enterstd
Processing: enterstn
Processing: enterund
Processing: initiali
Processing: compileh
Processing: compilep
Processing: skipspac
Processing: getword
Processing: findend
Processing: openfile
Processing: closefil
Processing: dumperro
Processing: cpascalm
Compilation successful.
No compilation errors PASC.PAS
A>pload PASC.OBS PASC.OBB
Opening input file…
Opening output file…
Reading OBP…
Seen 94 procedures
Writing output file…
Closing output file…
Success.
A>type HELLO.PAS
program HelloWorld;
begin
writeln(‘Hello from Pascal!’)
end.
A>
A>pint PASC.OBB HELLO.PAS HELLO.OBS
Pascal-M interpreter for CP/M-65: B66F bytes free
Pascal-M compiler V2k1 for CP/M-65
Processing: hellowor
Compilation successful.
No compilation errors HELLO.PAS
B>A:pload A:HELLO.OBS HELLO.OBB
Opening input file…
Opening output file…
Reading OBP…
Seen 1 procedures
Writing output file…
Closing output file…
Success.
B>A:pint HELLO.OBB
Pascal-M interpreter for CP/M-65: B66F bytes free
Hello from Pascal!
B>