PAGE SBTTL "--- MACHINE COLDSTART: CBM64 ---" ORG ZIP ; --------- ; COLDSTART ; --------- COLD: LDA R6510 AND #%11111110 ; SWITCH OUT BASIC ROM STA R6510 ; KERNAL ROM & I/O ENABLED LDA #1 ; WHITE STA COLOR ; TEXT LDA #12 ; GRAY STA EXTCOL ; BORDER STA BGCOLO ; AND BACKGROUND LDA #$0E JSR CHROUT ; USE UPPER/LOWER CHARS LDA #$80 ; PROHIBIT FURTHER STA MODE ; CHARSET CHANGES LDA #0 STA MSGFLG ; DISABLE KERNAL MESSAGES STA SFLAG ; NO PREVIOUS SCRIPTING (BM 5/14/85) ; INITIALIZE THE SOUND SYSTEM LDX #$1C ; CLEAR LDA #0 ; ALL CLD0: STA FRELO1,X ; SID REGISTERS DEX BPL CLD0 LDA #2 ; SET VOICE #1 STA PWLO1 ; PULSE WIDTH LDA #8 ; FOR A STA PWHI1 ; 50% DUTY CYCLE LDA #%10000000 ; DISABLE OUTPUT STA SIGVOL ; FROM VOICE #3 LDA #$EE STA FRELO3 ; SET VOICE #3 TO STA FREHI3 ; AN AMUSING FREQUENCY LDA #%10000000 ; SPECIFY NOISY WAVEFORM STA VCREG3 ; FOR RANDOMNESS ; INITIALIZE THE SPRITE CURSOR LDX #63 ; CLEAR SPRITE #13 RAM LDA #0 CN0: STA CURSOR,X DEX BPL CN0 STA XXPAND ; NORMAL HORIZONTAL STA YXPAND ; AND VERTICAL SPRITE SIZE STA SPBGPR ; MAXIMUM SPRITE PRIORITY STA SPMC ; HI-RES SPRITES STA SP0COL ; BLACK CURSOR JMP WARM1 ; --------------- ; WARMSTART ENTRY ; --------------- SLOAD: DB "The story is loading ..." DB EOL SLOADL EQU $-SLOAD WARM1: CLD LDX #$FF TXS ; RESET MACHINE STACK JSR CLALL ; CLOSE EVERYTHING JSR CLS ; CLEAR SCREEN, ETC. LDY #8 ; POSITION "STORY LOADING" MESSAGE LDX #11 ; AT (8,11) CLC JSR PLOT LDX #LOW SLOAD LDA #HIGH SLOAD LDY #SLOADL JSR DLINE ; "THE STORY IS LOADING ..." LDA #8 ; MAKE BOOT DRIVE JSR DOPEN ; AND OPEN IT LDA FAST ; FAST DISK? BEQ WARM2 ; NO, CONTINUE JSR FINIT ; ELSE INIT FAST DISK ; FALL THROUGH TO ZIP WARMSTART AT "WARM2" END