跳转到主要内容

MZ-700 – MAKE A COPY OF S-BASIC

URL:https://www.sharpmz.no/articles/the-mz-series/mz-700/mz-700-make-a-copy-of-s-basic/

Making a copy of your S-Basic tape

SHARP 1Z013B

Copy procedure

Make a copy of your original interpreter tape and use only this copy to prevent a loss of your original BASIC interpreter tape Sharp 1Z-013B.

Follow these instructions:

    • Turn your MZ-700 on. The monitor 1Z-013A becomes active and you get the following message on your screen:

    • Type in the following program to load your BASIC interpreter without execution:

The values (FF/00) shown in the second column are meaningless. Other values are possible. MZ-700 displays the actual contents of your RAM starting at location $CF00.

 

 

 

  • Press SHIFT and BREAK now coincidentally to stop the input mode.
  • Put your BASIC interpreter tape into the data recorder.
  • Type in: JCF00 to start the tiny program you have typed in. MZ-700 displays:
  • Press the PLAY button at your data recorder. Your BASIC will be loaded without execution.
    No message should be displayed. If you get an error message, retry the procedure again.
  • Wait for the end of the load. When the MZ-700 returns to the input mode,
    an asterisk ( “*” ) is displayed and the blinking cursor is shown. The data recorder and its counter has stopped.

 

 

  • Press the STOP/EJECT button at your data recorder.
  • Press the REWIND button at your data recorder to rewind the original S-Basic tape.
  • Press the STOP/EJECT button and remove the S-BASIC tape from your data recorder.
  • Put a tape into the data recorder which will become your new BASIC interpreter tape. It contains the copy of your BASIC interpreter at the end of the following steps. If it is a fresh tape position it manually to its beginning area first ( brown tape material starts ) either by hand or by using the FFWD button at the data recorder for a short time. If it is no fresh tape delete a short part from its beginning first by using the RECORD and PLAY button, then rewind the tape and position it to its beginning area as described above.
  • Type in J1108.
    The response of the MZ-700 will be:
  • Press any key on your keyboard.
    The MZ-700 response will be:
  • Press the RECORD button and the PLAY button coincidentally at your data recorder.
    The MZ-700 response will be:
  • Your BASIC interpreter file will be copied now.
  • At the end the MZ-700 beeps and the following message will be displayed:
  • Press the RESET button at the reverse side of your MZ-700. The monitor starts again.
  • Rewind your tape and stop the tape at end of rewinding. To this press the STOP/EJECT button first and the REWIND button next.
  • Type in JCF0E to verify the copy of the file. ( Resetting the MZ doesn’t delete the program you’ve typed in ).
    The MZ-700 response will be:
  • Press the PLAY button. The verify function will be performed now.
    The function ends with:
  • If an error message will be displayed, you have to restart this procedure. In this case, try another tape.
  • Rewind your tape.
  • You should have a usable copy of your BASIC interpreter tape now.

Further detailed information

You have typed in a tiny program into the storage starting at location $CF00. Here are the assembler instructions:

CF00 CD2700	CALL	$0027	; read info record from tape
CF03 3803	JR	C,$CF08	; if any error then stop
CF05 CD2A00	CALL	$002A	; load data from tape into storage
CF08 DA0701	JP	C,$0107	; if any error then stop with message
CF0B C3AD00	JP	$00AD	; goback to monitor

CF0E C3CB0F	JP	$0FCB	; execute the verify routine 
                                ; from monitor

The first part loads the BASIC interpreter into the storage, normally starting at location $1200 and ending at location $7D9F.

If the load was successfully completed, the program returns to the monitor. No start of the BASIC interpreter will be done from the original execution address $7D79. The BASIC interpreter is only loaded into the storage and is ready now for copying.

This will be done in the following step when you type in J1108. A tiny save program is resident in the comment area of the tape header of your original load tape from Sharp. The contents of the tape header of your original tape is listed here:

:10F0=01 20 53 2D 42 41 53 49  /. S-BASI 
:10F8=43 0D 0D 0D 00 00 00 00  /C....... 
:1100=00 00 A0 6B 00 12 79 7D  /..P.a.a.
1108 113011	LD	DE,$1130 ; address to msg "S-BASICEX...." 
110B CD0900	CALL	$0009	 ; position cursor to next line 
110E CD1500	CALL	$0015	 ; print the message 
1111 CD0900	CALL	$0009	 ; position cursor to next line 
1114 114811	LD	DE,$1148 ; address to msg "HIT ANY KEY?" 
1117 CD1500	CALL	$0015	 ; print the message 
111A CDB309	CALL	$09B3	 ; wait on any key 
111D CD0900	CALL	$0009	 ; position cursor to next line 
1120 CD2100	CALL	$0021	 ; write info record to tape 
1123 D42400	CALL	NC,$0024 ; write data (BASIC) to tape 
1126 CD3E00	CALL	$003E	 ; beep 
1129 CD3E00	CALL	$003E	 ; 2nd beep,
                                 ; because you have 2 ears  
112C C30811	JP	$1108	 ; loop, if any copy else
:112F=00 16 53 2D 42 41 53 49  /..S-BASI ; note, 1130=16 clears 
:1137=43 45 58 20 53 41 56 45  /CEX SAVE ;       the screen
:113F=52 20 30 35 71 31 36 70  /R 05.16. 
:1147=0D 48 49 54 20 41 4E 59  /.HIT ANY 
:114F=20 4B 45 59 3F 0D 00 00  / KEY?... 
:1157=00 00 00 00 00 00 00 00  /........ 
:115F=00 00 00 00 00 00 00 00  /........ 
:1167=00 00 00 00 00 00 00 00  /........ 
:116F=00		       /.

If you type in J1108 the program starts at location $1108 and some messages will be displayed first ( see listing above ).

The program stops after execution of the CALL command at $111A and waits until you type in any key. Then it copies the BASIC interpreter from RAM to tape.

S-BASICEX SAVER 05_16 was written and stored to tape by Sharp.