00001 *************************
00002 *
00003 * INIT.ASM
00004 * MDJ 12-03-90
00005 *
00006 * INITIALIZATION
00007 * ROUTINE
00008 *
00009 * INITIALIZES CORE
00010 * PARAMETERS AND JUMPS
00011 * TO PROGRAM START
00012 *
00013 * "START" IS EITHER THE
00014 * ACTUAL PROGRAM START
00015 * LOCATION, OR A JMP
00016 * INSTRUCTION TO THAT
00017 * LOCATION
00018 *
00019 *************************
00020 *
00021 ALLRAM  EQU     $FFDF   ALL RAM MODE
00022 CASFLG  EQU     $011A   CASE FLAG (<>0 = UPPER CASE)
00023 BASEL   EQU     $FC     NUMBER BASE
00024 JMPADR  EQU     $0168   CONSOLE OUT JUMP ADDRESS
00025 INTSET  EQU     $4717   COCO2 INTERRUPTS SET-UP ROUTINE
00026 ENDGRP  EQU     $B7     END OF CURRENT GRAPHICS PAGE
00027 BEGGRP  EQU     $BA     START OF CURRENT GRAPHICS PAGE
00028 GRPRAM  EQU     $BC     START OF GRAPHICS RAM
00029 SETSCR  EQU     $3ED4   STANDARD SCREEN SET-UP ROUTINE
00030 XCURS   EQU     $F3     CURSOR X-LOCATION
00031 YCURS   EQU     $F5     CURSOR Y-LOCATION
00032 ADVCOD  EQU     $F7     ADVANCE CODE
00033 BAKCOD  EQU     $F8     BACKUP CODE
00034 TIB     EQU     $01DA   START OF TERMINAL INPUT BUFFER
00035 TTIB    EQU     $02DA   TIB TERMINATORS
00036 LBP     EQU     $FA     LINE BUFFER POINTER
00037 NTIBL   EQU     $01D8   NUMBER OF CHARACTERS IN TIB
00038 S0      EQU     $FE     BOTTOM OF STACK ADDRESS
00039 TOINL   EQU     $01D1   PRESENT CHARACTER OFFSET WITHIN
00040 *                         INPUT STREAM
00041 DPL     EQU     $01D3   NUMBER OF PLACES AFTER FRACTIONAL
00042 *                         POINT FOR INPUT CONVERSION
00043 FLD     EQU     $01D4   FIELD LENGTH RESERVED FOR A NUMBER
00044 *                         DURING OUTPUT CONVERSION
00045 SPANL   EQU     $01D5   COUNT OF CHARACTERS RECEIVED AND
00046 *                         STORED BY LAST EXPCT
00047 START   EQU     $5300   PROGRAM START LOCATION
00048         ORG     $5200
00049 INIT    STA     ALLRAM  SET ALL RAM MODE
00050         CLR     CASFLG  SET LOWER CASE
00051         LDX     #10
00052         STX     BASEL   SET BASE = DECIMAL
00053         LDX     #$CC1C
00054         STX     JMPADR  RESTORE LOADM JUMP TO CONSOLE OUT
00055         LDU     #$FE00  TEMPORARY U-STACK
00056         LDS     #$FD00  TEMPORARY S-STACK
00057         LDX     $FFFE   CHECK IF COCO2 OR COCO3
00058         CMPX    #40999  IS IT A COCO2
 
 
 
 
 
 
 
 
00059         BNE     COCO3   GO IF NO
00060 COCO2   JSR     INTSET
00061 COCO3   LDX     #$2200
00062         STX     ENDGRP  SET END OF GRAPHICS RAM
00063         LDX     #$0A00
00064         STX     BEGGRP  SET START OF GRAPHICS RAM
00065         LDA     #$0A
00066         STA     GRPRAM
00067         JSR     SETSCR  GO SET-UP STANDARD SCREEN
00068         LDU     #$0600  PERMANENT U-STACK
00069         LDS     #$0800  PERMANENT S-STACK
00070         LDX     #0      SET SCREEN PARAMETERS
00071         STX     XCURS
00072         STX     YCURS
00073         CLR     ADVCOD
00074         CLR     BAKCOD
00075         LDX     #$2020
00076         STX     TTIB    INITIALIZE TIB TERMINATORS
00077         LDX     #TIB
00078         STX     LBP     INITIALIZE LINE BUFFER POINTER
00079         CLR     NTIBL   CLEAR TIB CHARACTER COUNTER
00080         CLR     NTIBL+1
00081         LDX     #$600   SET BOTTOM OF STACK VARIABLE
00082         STX     S0
00083         CLR     TOINL   INITIALIZE SYSTEM VARIABLES
00084         CLR     TOINL+1
00085         CLR     DPL
00086         CLR     FLD
00087         CLR     SPANL
00088         CLR     SPANL+1
00089 ZENDM2  JMP     START
00090         END
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
