## 80-Bus News |
## May–June 1983 · Volume 2 · Issue 3 |

Page 34 of 59 |
---|

The workings of Nascom ROM BASIC Ver 4.7 | PAGE 14 | ||
---|---|---|---|

DIM | EF28 | DIM routine. Flag “create” variable and join common. | |

GETVAR | EF2D |
Look for specified variable. Use FORFLG to:– | |

FRE | F0D0 | FRE(X) routine. If X is a numeric expression then return the amount of memory between ARREND and the stack. If X is a string expression then do a “Garbage collection” and return the number of unused bytes in the string area. | |

POS | F0FE | POS(X) routine. Return the current cursor position (CURPOS). | |

DEF | F106 |
DEF FN routine. Define a user defined function. | |

DQFN | F133 | Call an FN function. Save any previous argument name and value on the stack, Evaluate the function an then restore the previous argument name and value. | |

TDTEST | F17B | If in direct mode then output “?ID Error” else return. | |

CHEKFN | F189 | Make sure “FN” follows and flag find FN function definition. | |

STR | F19A | STR$ routine. Convert current numeric value to ASCII and create a temporary string for it. | |

SAVSTR | F1AA | Save current string in string area. | |

MKTMST | F1BF | Make a temporary string. | |

PRNUMS | F20F | Print number string at HL. | |

PRS | F210 | Print string at HL. | |

TESTR | F229 | Test if enough string space. If insufficient then GRBAGE collect and test again. If still insufficient space then output “?0S Error”. | |

GRBAGE | F253 |
Do a “Garbage collection” on string area. | |

CONCAT | F306 | Concatenate two strings (Eg A$+B$). | |

GETSTR | F350 | Get a string routine. | |

LEN | F382 | LEN(X$) routine. | |

ASC | F391 | ASC(X$) routine. | |

CHR | F3A2 | CHR$(X) routine. |

The workings of Nascom ROM BASIC Ver 4.7 | PAGE 15 | ||
---|---|---|---|

LEFT | F3B2 | LEFT$(X$,X) routine. | |

RIGHT | F3E2 | RIGHT$ (X$,X) routine. | |

MID | F3EC |
MID$(X$,P[,L]) routine. | |

VAL | F41C | VAL(X$) routine. | |

INP | F441 | INP(X) routine. Set up port number in work space and call INPSUB skeleton. Return value from port. | |

POUT | F44D | OUT P,N routine. Set up port number in work space and call OUTSUB skeleton to output value to the port. | |

WAIT | F453 | WAIT P,A,X routine. Set up port number in work space. Call INPSUB to get byte, XOR value with X if X is supplied and then AND the value with A. If this value is zero then go back to WAITLP until value is non-zero. | |

FNDNUM | F481 | Get next number from code string. | |

CSAVE | F4C3 | CSAVE routine. If CSAVE* jump to array save routine ARRSV1. Evaluate string expression for name and save program. | |

CLOAD | F4F9 | CLOAD routine. If CLOAD* jump to array load routine ARRLD1. See if CLOAD? and save status. Evaluate string expression for file name (None given – any file will do) and search for that file. When found load it into memory. | |

PEEK | F5A3 | PEEK(X) routine. | |

POKE | F5AA | POKE A,V routine. | |

ROUND | F5BB | Round number up by adding 0.5 to it. | |

ADDPHL | F5BE | Add floating point number at HL to the current value in FPREG. | |

SUBPHL | F5C4 | Subtract the current value from the value at HL and leave the result in FPREG. | |

PSUB | F5C8 | Subtract FPREG from the value on the stack and leave the result in PPREG. | |

SUBCDE | F5CA | Subtract FPREG from the value in BCDE and leave the result in FPREG. | |

FPADD | F5CD | Add the value in BCDE to the value in FPREG. | |

MINCDE | F60D | Subtract value in FPREG from value in BCDE. | |

NORMAL | F638 | Normalise value in BCDE. | |

PLUCDE | F672 | Add value in FPREG to value in BCDE. | |

COMPL | F67E | Complement value in BCDE. |

NASCOM ROM BASIC dis-assembled is available in ASM and LST file format.

Page 34 of 59 |
---|