#531

Nato 07

Nato

1.344 lines of code

RasterbarsRSTRMusicSIDScrollerSCRL

History

Released
27 July 1988
Code
Megasnail
Music
JCH (Jens-Christian Huus) — "Can't Stop"; Rob Hubbard — "Lightforce"; Mad (Marcel Donne) — "Ikari Intro"
Charset
801 DC, Kevin Bulmer, Banshee
Group
Nato — United Kingdom, founded 1 January 1988

Another multi-SID showcase from Nato — Megasnail coded while three heavyweight composers provide the soundtrack: JCH contributing "Can't Stop," Rob Hubbard's legendary "Lightforce," and Mad (Marcel Donne) supplying "Ikari Intro." All three are preserved in the HVSC. Three charset artists contributed: 801 DC, Kevin Bulmer, and Banshee. Released on 27 July 1988, this arrived seven months after Nato's founding on 1 January 1988. The British group's tagline "Nobodies Are Taking Over" belied their access to top-tier SID compositions. This is the seventh numbered Nato intro, appearing alongside #48 Nato-01 and #65 Nato-03. Rob Hubbard's "Lightforce" appears here as it did in the earlier Nato-01 — a clear group favourite. Doc Snyder's page preserves scrolltexts showing Nato's extensive greetings network across the UK scene.

Sources: CSDb · Doc Snyder

nato-07.asm 1.344 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:58
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $1c49  (5194 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $0e00 (3584)
// IRQ handler:  $0e54 (irq_0e54)
//
// Code: 1634 bytes, Data: 3560 bytes
// Labels: 122, Subroutines: 5
//
// Cross-references: all OK
// ============================================


// --- Region $0e00-$0f55 ---
.pc = $0e00 "main_0e00"

main_0e00:
        jsr sub_0fa4
        jsr sub_107c
        ldy #$00

loc_0e08:
        lda $18dd,y
        eor #$a0
        sta $0400,y
        lda $19dd,y
        eor #$a0
        sta $0500,y
        lda $1add,y
        eor #$a0
        sta $0600,y
        iny
        bne loc_0e08
        ldy #$0c
        sty $fc
        jsr sub_170c
        lda #$1b
        sta $fd
        lda #$54
        sta $0314
        lda #$0e
        sta $0315
        lda #$1b
        sta $d011
        ldy #$01
        sty $d01a
        dey
        sty $dc0e

loc_0e46:
        lda #$fc
        pha
        jmp loc_0fc1

chr_0e4c:
        // === Charset data (8 bytes, $0e4c-$0e53) ===
        .byte $00,$00,$00,$00,$00,$00,$00,$00       // char 0 @+0

irq_0e54:
        .byte $0f,$19,$d0                           // slo $d019 // ILLEGAL
        bne loc_0e5c
        jmp loc_0f70

loc_0e5c:
        ldy #$32
        sty $d012
        ldy #$f2

loc_0e63:
        iny
        bne loc_0e63
        .byte $a7,$02                               // lax $02 // ILLEGAL

loc_0e68:
        iny
        sta $d016
        jmp loc_0e72

loc_0e6f:
        ldy #$ff
        .byte $1a                                   // nop // ILLEGAL

loc_0e72:
        inx
        lda dat_1800,x
        sta $d021
        sta $d020
        lda $186d,x
        cpy #$06
        beq loc_0e6f
        asl $186d,x
        asl $186d,x
        asl $186d,x
        sta $186d,x
        cpx #$6c
        bne loc_0e68
        lda #$00
        tay
        .byte $8f,$20,$d0                           // sax $d020 // ILLEGAL
        .byte $8f,$21,$d0                           // sax $d021 // ILLEGAL
        lda #$c8
        .byte $8f,$16,$d0                           // sax $d016 // ILLEGAL
        ldx $186d

loc_0ea4:
        lda $186e,y
        sta $186d,y
        iny
        cpy #$70
        bne loc_0ea4
        stx $18dc
        .byte $0c,$8d,$ad                           // nop $ad8d // ILLEGAL
        lda $fb
        sta $d016

loc_0eba:
        lda $d012
        cmp #$d2
        bne loc_0eba
        lda #$00
.label smc_0ec4 = * + 1
        ldx #$fe                                    // !SMC: modified by $0f06, $0f0e, $0f16, $0f1e, $0fe8, $0ffc
        tay

loc_0ec6:
        dec $fb
        inx
        bne loc_0ec6
        lda $fb
        bpl loc_0f3c
        lda #$07
        sta $fb

loc_0ed3:
        lda $0721,x
        sta $0720,x
        lda $06f9,x
        sta $06f8,x
        lda #$01
        sta $db20,x
        lda #$0a
        sta $daf8,x
        inx