mirror of
https://github.com/blondie7575/WeeGUI.git
synced 2025-01-10 13:29:21 +00:00
122 lines
1.7 KiB
ArmAsm
122 lines
1.7 KiB
ArmAsm
;
|
|
; gui.s
|
|
; Top level management routines
|
|
;
|
|
; Created by Quinn Dunki on 8/15/14.
|
|
; Copyright (c) 2014 One Girl, One Laptop Productions. All rights reserved.
|
|
;
|
|
|
|
|
|
.org $4000
|
|
|
|
|
|
; Common definitions
|
|
|
|
.include "zeropage.s"
|
|
.include "switches.s"
|
|
.include "macros.s"
|
|
|
|
; Main
|
|
|
|
main:
|
|
jsr WGInit
|
|
jsr WG80
|
|
rts
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; WGInit
|
|
; Initialization. Should be called once at app startup
|
|
WGInit:
|
|
SAVE_AXY
|
|
|
|
jsr WGInitApplesoft
|
|
|
|
ldy #15 ; Clear our block allocators
|
|
WGInit_clearMemLoop:
|
|
tya
|
|
asl
|
|
asl
|
|
asl
|
|
asl
|
|
tax
|
|
lda #0
|
|
sta WG_STRINGS,x
|
|
dey
|
|
bpl WGInit_clearMemLoop
|
|
|
|
lda #$ff
|
|
sta WG_PENDINGACTIONVIEW
|
|
sta WG_FOCUSVIEW
|
|
|
|
RESTORE_AXY
|
|
rts
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; WG80
|
|
; Enables 80 column mode (and enhanced video firmware)
|
|
WG80:
|
|
pha
|
|
|
|
; lda #3
|
|
; jsr $fe95
|
|
|
|
lda #$a0
|
|
jsr $c300
|
|
|
|
SETSWITCH TEXTON
|
|
SETSWITCH PAGE2OFF
|
|
SETSWITCH COL80ON
|
|
SETSWITCH STORE80ON
|
|
|
|
pla
|
|
rts
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; waitForKey
|
|
; Spinlocks until a key is pressed
|
|
waitForKey:
|
|
lda KBDSTRB
|
|
bpl waitForKey
|
|
rts
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; read80ColSwitch
|
|
; Returns value of the 80 col switch on //c and //c+ machines
|
|
; OUT A: Switch state (non-zero=80 cols)
|
|
; NOTE: Untested
|
|
read80ColSwitch:
|
|
lda $c060
|
|
bpl read80ColSwitch_40
|
|
lda #$1
|
|
rts
|
|
|
|
read80ColSwitch_40:
|
|
lda #$0
|
|
rts
|
|
|
|
|
|
; Code modules
|
|
.include "utility.s"
|
|
.include "painting.s"
|
|
.include "rects.s"
|
|
.include "views.s"
|
|
.include "mouse.s"
|
|
.include "applesoft.s"
|
|
;.include "unit_test.s"
|
|
.include "memory.s"
|
|
|
|
|
|
|
|
|
|
; Suppress some linker warnings - Must be the last thing in the file
|
|
.SEGMENT "ZPSAVE"
|
|
.SEGMENT "EXEHDR"
|
|
.SEGMENT "STARTUP"
|
|
.SEGMENT "INIT"
|
|
.SEGMENT "LOWCODE"
|
|
|