00001 *************************
00002 *
00003 * GPAGE.ASM
00004 * (+n -- )
00005 * MDJ 01-23-91
00006 *
00007 * IF PAGE NUMBER +n ON 
00008 * THE TOP OF THE U-STACK
00009 * IS VALID, GPAGE GETS
00010 * THE PAGE
00011 *
00012 *************************
00013 *
00014 CKPGNV  EQU     $5899
00015 CKPGN   EQU     $58B6
00016 PLN     EQU     $58D3
00017 PLXLAT  EQU     $5657
00018 SSECT   EQU     $563B
00019 PAGEIN  EQU     $55A9
00020 PRMT1A  EQU     $567E
00021 PRMT2B  EQU     $56D3
00022 CPRMT1  EQU     $571D
00023 CPRMT2  EQU     $5747
00024 DUP     EQU     $4836
00025 TYPF    EQU     $4F02
00026 DOTF    EQU     $4F46
00027 KEY     EQU     $5041
00028 XCURS   EQU     $F3
00029 YCURS   EQU     $F5
00030 XCURSH  EQU     $56CE
00031 YCURSH  EQU     $56D0
00032 MAXPP   EQU     $3104
00033         ORG     $58E3
00034 GPAGE   PSHS    X
00035         PULU    X       GET PAGE NUMBER
00036         PSHU    X       RE-PUSH IT
00037         CMPX    PNV     SAME AS CURRENT PAGE NUMBER?
00038         LBEQ    GPSP    GO IF YES
00039         STX     PNTV    STORE TARGET PAGE NUMBER
00040         JSR     CKPGNV  IS IT A VALID PAGE NUMBER?
00041         PULU    X
00042         CMPX    #0
00043         BNE     GP1     GO IF YES
00044         JSR     CPRMT1  GO CLEAR PROMPT #1
00045         JSR     CPRMT2  GO CLEAR PROMPT #2
00046         LDX     XCURS   SAVE X-LOCATION
00047         STX     XCURSH
00048         LDX     YCURS   SAVE Y-LOCATION
00049         STX     YCURSH
00050         CLR     XCURS   SET X-LOCATION
00051         CLR     XCURS+1
00052         LDX     #184    SET Y-LOCATION
00053         STX     YCURS
00054         LDX     #MSG1D  MESSAGE ADDRESS
00055         PSHU    X
00056         LDX     MSGN1D  CHARACTER COUNT
00057         PSHU    X
00058         JSR     TYPF    GO TYPE MESSAGE TO SCREEN
 
 
 
 
 
 
 
 
00059         LDX     MAXPP   MAXIMUM PAGE NUMBER (MPN)
00060         PSHU    X
00061         JSR     DOTF    GO TYPE MPN TO SCREEN
00062         LDX     XCURSH  RESTORE X-LOCATION
00063         STX     XCURS
00064         LDX     YCURSH  RESTORE Y-LOCATION
00065         STX     YCURS
00066         BRA     GPSP    EXIT
00067 GP1     JSR     CKPGN   IS PAGE NUMBER ON DISK?
00068         PULU    X
00069         CMPX    #0
00070         BNE     GP2     GO IF YES
00071         JSR     CPRMT1  GO CLEAR PROMPT #1
00072         JSR     PRMT1A  GO TYPE PROMPT TO SCREEN
00073         LDX     #124    SET X-LOCATION
00074         STX     XCURS
00075         LDX     #176    SET Y-LOCATION
00076         STX     YCURS
00077         JSR     DUP     DUPLICATE PAGE NUMBER (PN)
00078         JSR     DOTF    GO TYPE PN TO SCREEN
00079         LDX     XCURSH  RESTORE X-LOCATION
00080         STX     XCURS
00081         LDX     YCURSH  RESTORE Y-LOCATION
00082         STX     YCURS
00083         JSR     CPRMT2  GO CLEAR PROMPT2
00084         JSR     PRMT2B  GO TYPE PROMPT TO SCREEN
00085         JSR     KEY     WAIT FOR KEYPRESS
00086         PULU    X       DROP KEYCODE FROM U-STACK
00087         JSR     SSECT   GO READ SPECIAL SECTOR
00088         BRA     GP1     GO RECHECK PAGE NUMBER
00089 GP2     JSR     PLN     GO GET PAGE LOCATION NUMBER
00090         JSR     PLXLAT  GO GET DISK PARAMETERS
00091         JSR     PAGEIN  GO LOAD THE PAGE
00092         LDX     PNTV    UPDATE CURRENT PAGE NUMBER
00093         STX     PNV
00094         JSR     CPRMT1  GO CLEAR PROMPTS
00095         JSR     CPRMT2
00096 GPSP    PULU    X       CLEAN THE U-STACK
00097         PULS    X
00098         RTS
00099 PNV     RMB     2
00100 PNTV    RMB     2
00101 MSGN1D  FDB     34
00102 MSG1D   FCC     'Page Number must be between 1 and '
00103 ZEND    NOP
00104         END
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
