Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
projects:ape65 [2015/03/12 07:58] – [Simulation] darronprojects:ape65 [2024/07/10 12:32] (current) – external edit 127.0.0.1
Line 6: Line 6:
 {{:projects:ape65_mx170_2.jpg?200}} {{:projects:ape65_mx170_2.jpg?200}}
 \\ \\ \\ \\
-{{:projects:mps6502a.jpg?100}}+{{:projects:65zero2.jpg?200}} 
 +\\ \\  
 +{{:projects:apesdxl.jpg?200}} 
 +\\ \\  
 +{{:projects:mps6502a.jpg?200}}
 </wrap> </wrap>
  
Line 32: Line 36:
 The POSIX simulator has 48KB of usable RAM. The rest of the 64KB addressable is for ROM and console I/O. The POSIX simulator has 48KB of usable RAM. The rest of the 64KB addressable is for ROM and console I/O.
  
-== PIC32MX150F128B at 40 Mhz ==+== PIC32MX150F128B or PIC32MX250128B at 40 Mhz ==
  
-For the MX150 this simple schematic can be used to realise the simulator.+For the MX150/MX250 this simple schematic can be used to realise the simulator.
  
-{{:projects:pic6520.png?200|}}+{{:projects:pic6502.png?200|}}
  
-[[:projects:pickle|Pickle]] is used to program the MX150 chip on the RPi. [[:tools:pic32prog|PIC32Prog]] can be used with an Arduino.+[[:projects:pickle|Pickle]] is used to program the chip on the RPi. [[:tools:pic32prog|PIC32Prog]] can be used with an Arduino.
  
 +For the MX150
 <code> <code>
 p32 program mx150.hex p32 program mx150.hex
 +</code>
 +or, the MX250
 +<code>
 +p32 program mx250.hex
 </code> </code>
  
-The MX150 has 16KB of usable RAM set aside for the simulator. There is also 10KB ROM, a console and an I/O port.+The MX150/MX250 has 16KB of usable RAM set aside for the simulator. There is also 10KB ROM, a console and an I/O port.
  
-== PIC32MX170F256B at 48 Mhz ==+== PIC32MX170F256B or PIC32MX270F256B at 48 Mhz ==
  
-The MX170 is an enhanced version of the MX150. The MX150 schematic above can be used for this chip.+The MX170/MX270 is an enhanced version of the MX150/MX250. The MX150/MX250 schematic above can be used for this chip.
  
-[[:projects:pickle|Pickle]] is used in this example to program the MX170 chip on the RPi.+[[:projects:pickle|Pickle]] is used in this example to program the chip on the RPi.
  
 +For the MX170
 <code> <code>
 p32 program mx170.hex p32 program mx170.hex
 +</code>
 +or, the MX270
 +<code>
 +p32 program mx270.hex
 </code> </code>
  
-The MX170 has more RAM than the MX150 and 48KB is free for the simulator along with the ROM, console and an I/O port.+The MX170/MX270 has more RAM than the MX150/MX250 and 48KB is free for the simulator along with the ROM, console and an I/O port.
  
 == chipKIT Pi MX250 at 40 Mhz == == chipKIT Pi MX250 at 40 Mhz ==
Line 65: Line 79:
  
 <code> <code>
-pload program /dev/ttyAMA0 mx250_ckpi.hex 24+pctrl restore && pload program /dev/ttyAMA0 mx250_ckpi.hex 24
 </code> </code>
  
Line 75: Line 89:
  
 <code> <code>
-pload program /dev/ttyAMA0 mx270_ckpi.hex 24+pctrl restore && pload program /dev/ttyAMA0 mx270_ckpi.hex 24
 </code> </code>
  
Line 102: Line 116:
 </code> </code>
  
-On the PIC32 version, rather than run, we attach to the serial port of the micro. We can use picocom or screen, for example.+On the PIC32 version, rather than run, we attach to the serial port of the micro. For example, we can use screen,
 <code> <code>
 screen /dev/ttyAMA0 115200 screen /dev/ttyAMA0 115200
 X X
 </code> </code>
 +
 +or picocom.
 +<code>
 +picocom -b 115200 /dev/ttyUSB0
 +X
 +</code>
 +
 +To exit from screen, perform CTRL + A k, to exit picocom it's CTRL + a q.
  
 With both versions we will see something similar to what is below. With both versions we will see something similar to what is below.
Line 138: Line 160:
 All the commands documented in the plus/4 user manual on page 182 onward are implemented on the POSIX version of Ape65. There is some variation, however, with the file operations. Ape65 omits the device parameter found in the original TEDMON since it serves no purpose here. All the commands documented in the plus/4 user manual on page 182 onward are implemented on the POSIX version of Ape65. There is some variation, however, with the file operations. Ape65 omits the device parameter found in the original TEDMON since it serves no purpose here.
  
-See this [[http://www.commodore16.com/images/tedmon.pdf|TEDMON]] help file for a better overview of the commands.+See this {{downloads:tedmon.pdf|TEDMON}} help file for a better overview of the commands.
  
 EhBASIC is also included. EhBASIC is a BASIC interpreter written in 6502 assembly code. It can be started with the B command and stopped with CONTROL-S. EhBASIC is also included. EhBASIC is a BASIC interpreter written in 6502 assembly code. It can be started with the B command and stopped with CONTROL-S.
Line 168: Line 190:
 </code> </code>
  
-As per the original TEDMON, the display is updated with the opcode and operand data as each line is completed. This is is what is shown in the terminal as the above is entered.+As per the original TEDMON, the display is updated with the opcode and operand data as each line is completed. This is what is shown in the terminal as the above is entered.
  
 <code> <code>
Line 202: Line 224:
 |0xF004    | READ| |0xF004    | READ|
  
-== PIC32MX150F128B PIC32MX170F256B ==+== MX150, MX170, MX250 MX270 ==
  
-For the MX150 & MX170, a virtual MOS 6529B I/O port is implemented at $FD10. This I/O port works as the original chip in an open-drain mode of operation. The virtual I/O port utilises pins B0 through to B7 on PORT B.+For these MX devices a virtual MOS 6529B I/O port is implemented at $FD10. This I/O port works as the original chip in an open-drain mode of operation. The virtual I/O port utilises pins B0 through to B7 on PORT B.
  
 Writing a 0 results in the pin going LOW, writing a one leaves the pin to be pulled high or low externally. When writing a one, the port can be read as an input. Writing a 0 results in the pin going LOW, writing a one leaves the pin to be pulled high or low externally. When writing a one, the port can be read as an input.
Line 238: Line 260:
 G 1000 G 1000
 </code> </code>
 +
 +CTRL-C will break the emulation.
  
 == Majenko SDXL == == Majenko SDXL ==
Line 245: Line 269:
 === BASIC === === BASIC ===
  
-From TEDMON entering B will start EhBASIC. There are two start up methods. Enter C for cold initially and enter W for warm after BASIC has been stopped with CTRL-S or after a RESET.+From TEDMON entering B will start EhBASIC. There are two start up methods. Enter C for cold initially and enter W for warm after BASIC has been stopped with CTRL-S.
  
 For the memory size option, just press enter and EhBASIC will work out the RAM size available. For the memory size option, just press enter and EhBASIC will work out the RAM size available.
Line 321: Line 345:
  
 === Resources === === Resources ===
-[[http://archive.6502.org/datasheets/synertek_programming_manual.pdf|6502 programming manual]]\\ +[[http://archive.6502.org/datasheets/synertek_programming_manual.pdf|6502 programming manual]] 
-[[https://web.archive.org/web/20060520020051/http://www.themotionstore.com/leeedavison/6502/ehbasic/index.html|EhBASIC]]\\ + 
-[[http://www.commodore16.com/images/tedmon.pdf|TEDMON]]+[[https://web.archive.org/web/20060520020051/http://www.themotionstore.com/leeedavison/6502/ehbasic/index.html|EhBASIC]] 
 + 
 +{{downloads:tedmon.pdf|TEDMON}}