00001 *************************
00002 *
00003 * GETNUM.ASM
00004 * ( -- flag), OR
00005 * ( -- u flag), OR
00006 * ( -- ud flag)
00007 * MDJ 01-23-91
00008 *
00009 * RECEIVES UP TO 34 ASCII
00010 * CHARACTERS FROM THE
00011 * KEYBOARD AND THEN DOES
00012 * AN ASCII TO NUMBER 
00013 * CONVERSION
00014 *
00015 * IF NOT A VALID NUMBER,
00016 * 16-BIT FALSE flag
00017 * ($0000) IS LEFT ON THE
00018 * U-STACK
00019 *
00020 * IF A VALID 16-BIT 
00021 * NUMBER, 16-BIT TRUE
00022 * flag ($FFFF) IS LEFT ON
00023 * THE U-STACK ABOVE THE 
00024 * 16-BIT NUMBER u
00025 *
00026 * IF A VALID 32-BIT
00027 * NUMBER, 16-BIT MODIFIED
00028 * TRUE flag ($00FF) IS
00029 * LEFT ON THE U-STACK
00030 * ABOVE THE 32-BIT
00031 * NUMBER ud
00032 *
00033 *************************
00034 *
00035 PAD     EQU     $4D01
00036 EXPCT   EQU     $504E
00037 SPAN    EQU     $5037
00038 AT      EQU     $4B45
00039 ATONCV  EQU     $44A9
00040         ORG     $5A89
00041 GETNUM  PSHS    X,Y
00042         JSR     PAD     TEMPORARY STORAGE ADDRESS
00043         LDX     #34     MAXIMUM NUMBER OF CHARACTERS
00044         PSHU    X
00045         JSR     EXPCT   GO GET ASCII CHARACTERS
00046         JSR     PAD     TEMPORARY STORAGE ADDRESS
00047         PULU    Y       STRING START LOCATION
00048         JSR     SPAN    CHARACTER COUNT ADDRESS
00049         JSR     AT      CHARACTER COUNT
00050         PULU    X       NUMBER OF CHARACTERS
00051         JSR     ATONCV  ASCII TO NUMBER CONVERSION
00052         PULS    X,Y
00053 ZEND    RTS
00054         END
 
 
 
 
 
 
 
 
 
 
 
 
